CICE6 error when trying to set up regional Arctic configuration #2657
Replies: 19 comments 21 replies
-
I suspect one issue is that you have the coupling mode set to ufs.frac.aoflux but with an active atm (FV3). The aoflux coupling mode is used for a DATM configuration; when coupled w/ FV3, the ATM uses the imported fluxes from CICE over the ice covered portion of the cell, but calculates the fluxes over the open water portion. The merged flux is what is sent to OCN. In general the best way to diagnose coupling issues is to use the mediator history functionality. You should remove the history_n = 3, history_option = nhours and history_ymd = -999 (and remove the med_phases_history_write, which you've currently commented out) and instead use in the CMEPS attributes settings like
where 'atm' can be also be ice or ocn. This will produce history files containing every field to/from the named component every step through the run sequence. I don't know about your use of the ignoreUnmatchedIndices settings. That is nothing we've ever used in the coupled configurations. I'd also suggest you do everything in debug mode while you're trying to get things running. |
Beta Was this translation helpful? Give feedback.
-
Thank you for the information. It looks like the The error does still persist, but I will look through the mediator history and see if that helps narrow things down. |
Beta Was this translation helpful? Give feedback.
-
I would still start w/ a debug compile; secondly you can add to the med attributes the setting
That will abort if any NaN appears in the exchanged fields. |
Beta Was this translation helpful? Give feedback.
-
@kristinbarton I took a look at your run directory, and I'm confused about how you're trying to set this up. It seems you're trying to use the mediator fluxes sent to ATM (frac.aoflux) but w/o the aoflux run phase and w/o several needed config variables. If you really want to use this coupling mode, see the cpld_control_noaero_p8_agrid test. Assuming you actually want ATM to function as it currently does in S2S (ufs.frac, with ATM calculating the A-O fluxes), I compiled your application in debug, set the coupling mode to ufs.frac and got a divide-by-zero in CICE
I also added the CMEPS attribute
See NOAA-EMC/CMEPS#129 for the commit which enabled this feature. This flag will produce a file (ufs.hafs.dststatus.nc) which shows how each point on the destination was mapped. The documentation is at https://earthsystemmodeling.org/docs/release/latest/ESMF_refdoc/node9.html#SECTION090152000000000000000 The following shows the mapping from ATM->ICE in your case You've got quite a few regions of status=1, which means no valid ATM value is being provided to ICE. I think this is most likely the cause of the divide-by-zero. |
Beta Was this translation helpful? Give feedback.
-
@DeniseWorthen thank you for looking into this some more. I apologize that run directory is out of date -- my most recent setup is here: I have also been looking into the issue with the ATM->ICE mapping as well. For example, I noticed these incorrect values being sent to the ice model over ocean cells. We are trying to understand where to go next. Could this be a problem with the input ice grid, or a missing setting needed to correctly set up the fractional grids? |
Beta Was this translation helpful? Give feedback.
-
@kristinbarton I copied over your second run directory and re-ran, but I compiled w/o the ![]() |
Beta Was this translation helpful? Give feedback.
-
There seems to be real issues w/ the ATM configuration. I added the attribute I also looked at the dststatus for fields TO the ATM, and they look very wrong. I can see that the mask appears the same as in the diagnostic grid file, but none of it really makes sense. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
The mask is added to the ATM grid in the Also---I must be missing something. This is a C96 ATM, so Tile3 (over the NP) should be 96x96. If you've added halos, shouldn't it be larger, not smaller? |
Beta Was this translation helpful? Give feedback.
-
@kristinbarton @DeniseWorthen I am not sure it will help or not but I have similar kind of masking issues with the land component development before. When I used inconsistent input data like static files from one place and orography etc. and initial condition from another (such as mixing v1 vs. v2 input files or getting static files from standalone run inputs but initial condition from coupled run inputs etc.), it was creating garbage or problematic land sea mask in the FV3 side like this. I could not find the real source of it but once I track the issue to the |
Beta Was this translation helpful? Give feedback.
-
Thanks @uturuncoglu. Do you remember if the mask problems you were seeing were as widespread as we see here? @kristinbarton Can you create a run-directory for just an ATM-OCN case? Or can I run it from the current sandbox in the "usual way" (removing ICE from run sequence, turning off cplice in input.nml etc) |
Beta Was this translation helpful? Give feedback.
-
@DeniseWorthen You can see the ATM-OCN case here:
A handful of settings were also changed from this version to the CICE version to match more closely with the S2S configuration. To clarify the atmosphere grid, we did not add a halo to the 96x96 grid. Rather, the goal was to set it up so the 96x96 is the version with the halo and 88x88 is the version without. That way we wouldn't need to explicitly add more cells to create a halo. The same grid files are being used for both versions (with and without CICE) so I don't think the grid itself is causing the problem, though there could still be issues with it. |
Beta Was this translation helpful? Give feedback.
-
@ShanSunNOAA for fractional grid, is there any setting besides frac_grid = .true. and coupling_mode = ufs.frac that needs to be turned on? |
Beta Was this translation helpful? Give feedback.
-
I apologize if my use of a tile3 from the global coupled model confused things. I was trying to figure out why the atm-ocn does not have a corrupted land mask and I had noticed that the original oro file from the sandbox and one we use for the global model had different fields. I was wondering if the fact some fields were missing led to the mask corruption. Specifically, there were no variables for For the global model, we take the make the mapped mask (MOM ocean mask mapped to ATM) and that is used to create the oro data. So, for example, the 1deg MOM6 mapped to C96 tiles etc. Is there some sort of analogous process being used to create the oro data file for the regional model? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@kristinbarton Two questions
|
Beta Was this translation helpful? Give feedback.
-
@kristinbarton Did you ever try setting up a configuration using DATM+MOM+CICE for your domain? |
Beta Was this translation helpful? Give feedback.
-
I have a bit more information after doing further testing. I set up two runs to see the impact of the atmosphere setup: a DATM+OCN+CICE run as suggested, and a global ATM with regional OCN+ICE. Interestingly, both of the runs fail at the same spot: a floating point exception at line 641 in One thing I noticed is that the hafs coupling uses bilinear mapping, while the ufs coupling uses conservative mapping. Given the issues I had before with the conservative mapping onto the Arctic Ocean grid, I was wondering if this could be the source of the problem. Below I share plots of the mapping from atm->ocn for both coupling modes. The hafs coupling looks okay. Only the ufs mapping has the incorrect spots. Lastly, I mentioned in the previous post that I was having issues with an "Error closing trace stream" when running with newer versions of the code. I tracked this down to being an issue with using cubed_sphere_grid output on the custom Arctic grid. The error only occurs after the fix introduced in commit f7d8b0c, so I assume that my custom regional grid is no longer compatible with that output method. |
Beta Was this translation helpful? Give feedback.
-
@DeniseWorthen We seem to have finally figured out a way to get it running.
It still isn't clear to me whether we should try to get the fractional version running, or if we can stick with non-fractional. Also, there is a noticeable line along the longitude seam in most of the ice data outputs. We're not sure if this is a problem to worry about. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I am working on setting up a regional Arctic configuration with FV3+MOM6+CICE6. I currently have the regional ocean+atmosphere working, but I am running into an error when attempting to bring CICE6 into the mix.
The error occurs immediately in the first timestep and is due to Picard nonconvergence in the ice thermodynamics calculations. The output error message shows a number of NaNs and 0s in different ice model variables. I suspect there is a problem with the fields being passed into CICE6 by the coupler, but I am not sure how to diagnose the specific source of the issue. Is there a built-in way to view or print out those fields? Any suggestions on where to start digging would be helpful.
Notes on Configuration:
A few of the changes we made to run with CICE6 regionally in the Arctic are below:
ufs.configure
:coupling_mode = ufs.frac.aoflux
ufs.configure
: addedignoreUnmatchedIndices=true
in the run sequence for ICE->MED and OCN->MED stepsice_in
: setgrid_type=’regional’
ice_in
: timestep isdt=180
Ice thermodynamics settings:
Full configuration files are attached and can also be viewed from Hera run directory:
/scratch2/BMC/gsienkf/Kristin.Barton/stmp/stmp2/Kristin.Barton/FV3_RT/sample_cice_run
ice_in
input.nml
model_configure
MOM_input
ufs.configure
Error Message:
Other details:
/scratch2/BMC/gsienkf/Kristin.Barton/stmp/stmp2/Kristin.Barton/FV3_RT/sample_cice_run
Beta Was this translation helpful? Give feedback.
All reactions