-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IAF vs RYF configurations #19
Comments
Where is the |
I've been working on this the past few days. As a test, I cut out 5 years (1970-01-01 --> 1974-12-31) of the ACCESS-OM2-01 JRA55 version 1.5 experiment. For the atmospheric forcing, as a first try, I pulled the YEAR 1 (1970) reanalysis files and stored these under the Trying to run this with the The reanalysis files are |
The executable that you're probably running is using an FMS version from like 2018. I think they've subsequently added a 'gregorian' calendar. In the meantime though just switch 'gregorian' to 'julian' and that'll work fine for all dates post 1901 |
Hopefully just adding jullian in input.nml does the trick? |
Ah I didn't realise that about the FMS version, thanks. I tried with JULIAN calendar, and get this error: |
Could you please link the run directory? I'll have a look! |
Here's the Hopefully you can open the input directory from that, otherwise the Let me know if you can't access anything! |
permission denied to rundir yeah |
How did we do this again? Should I just move the rundirectory to a scratch location? Just a minute though - I'm just going to test this roundabout way first where I'm just shifting all time values back by 1.5 hours. This matches up with the times in other forcing files so it should potentially work. It's a bit of a fudge method though so not sure if it's really valid |
Looks like you've downloaded a fresh set of JRA -55 forcing right? Nice! I haven't used it before This version is on the gregorian calendar. Further, since it starts from Jan 1900, it'll have Feb 1900 as a non leap year where julian will That means that you're one day out, and the JRA-55 data you've selected falls outside the range that input.nml is expecting |
Confusingly it looks like your JRA NETCDFs are being read correctly (since it's using the gregorian calendar as expected) but mom6 refuses to accept gregorian in the input.nml. A fix would be to re-encode the JRA forcing data onto the julian calendar OR change the index date to What I did with my era5 forcing data was reset the calendar to be 'hours since whenever-my-experiment-starts'. You can see my code at the end of the demo notebook. Keep in mind though that your data appears to be in days with decimals representing smaller times whereas mine is integer hours |
EDIT: Sorry John no you're right it's only out be a few hours not a whole day so this can't be it. Looking at your forcing files though the JRA inputs also begin at an integer day, so I'm not sure why it thinks you're starting a fraction of a day through? |
I think I've fixed that issue by shifting the times back by 1.5 hours to get all the times matched up. I'm now getting an error with the forcing files related to the "modulo" attribute. |
Success! it runs :) It takes less than a minute to run 5 days. I'll run it out to December whilst figuring out how we are going to start automating the transition between forcing files. |
There's still some underlying issues that I'll look into regarding the FMS version not accepting the "GREGORIAN" calendar, and I can have a go at setting up the IAF/RYF flag in the |
If you want to try a more recent executable here's one with up to date FMS as of earlier this year: /g/data/v45/ab8992/mom_executables/forjohn_newfms EDIT: |
Just realised that my "fudge" fix for the time errors I was getting above was completely wrong. Different variables in the JRA forcing dataset (e.g., "psl", "tas" etc.) are saved at different times of the day (e.g., 00:00:00, or 12:00:00, or 01:30:00). The error above was hit trying to interpolate those times back to the start date (00:00:00), but as these were the first time entries, there was nothing before the start date to interpolate between (and extrapolation is not possible i guess). Hence why we need to "pad" the files as mentioned in the first post on this issue for IAF. This simply sticks the last timestep of the previous year, and the first timestep of the next year to the file which has fixed my error. I used the script from this repo for this: https://github.com/raphaeldussin/pad_forcing/tree/main Also, I think the manual fix I previously attempted, which shifted the offset times back to 00:00:00 might be contributing to the errors I mentioned in this hive-post related the "eta has dropped below bathyT" problem, but I haven't confirmed that just yet. |
The way it's been written so far, I've mostly had RYF in mind. If the end user wanted IAF, they should be able to pass an IAF = True flag to ensure that the time encoding doesn't include the 'modulo' attribute, which tells MOM6 to wrap forcing around each year
To handle this though we'll need to think about how to structure our input files. Will they still be separated yearly to keep sizes down? If so I think we'll need to 'pad' the files with forcing from adjacent years as @reillyja was explaining to me this afternoon
There are probably some other things that would need to be considered to make IAF runs easy to set up out of the box. I don't have much experience with IAF in MOM6 though so don't know what these would be
The text was updated successfully, but these errors were encountered: