-
Couldn't load subscription status.
- Fork 149
Zap residual ice #543
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
base: main
Are you sure you want to change the base?
Zap residual ice #543
Conversation
|
An accompanying CICE PR (CICE-Consortium/CICE#1055) initializes the parameters to the dynamics values. In my brief CICE tests so far, the Icepack default values produce BFB results but I expect they will not be BFB in longer tests. To recover perfectly BFB results, set them both to zero to prevent extra zapping. I have intentionally not used zeroes as the default values even though that might not be BFB -- I'm happy to hear arguments to the contrary and change it, if you think it would be better. I have not completed full standalone test suites in either model. While I'm doing that, I hope that others of you will test this in your coupled systems to make sure that it really does work as advertised, and perhaps to test the sensitivity of the parameter values. |
|
I've got your residual zap branch up and running now and I'm going to do some longer comparison runs w/ our current develop branch and the ICs that start w/ residual ice. For sensitivity, are there suggested 'non-large' values of |
I'd start with the two end points and one in the middle: |
Yay! This mostly makes sense to me. After it settles down, the green line indicates about how much ice you have with concentrations between 1.e-7 and 1.e-6. The larger criteria used for the orange line zaps everything less than 1.e-6 and then some. By changing I think you should choose the parameters you use based on validation against whatever observational data you use. There might actually be 1.e-7 bits of ice in some grid cell at some time, but it shouldn't matter much for the simulation and I would guess that you can use larger cutoff values to better match your statistics. Does this all make sense to you? |
|
There are some more places with "minimum" thresholds like hi_min=p01 for icepack_therm_itd, aice>p001 in neutral_drag_coeffs in icepack_atmo, dh_min=p001 in icepack_brine. Are these independent of the parameters here? |
|
@NickSzapiro-NOAA, good catch. We have tried to pull out all the hardwired parameters but clearly missed some of them.
The @njeffery, the brine height parameterization uses both |
|
@eclare108213 : They should be larger than or equal to the thermodynamic minimum thickness, but not smaller. |
but |
|
Then it shouldn't be making a difference. That's not a problem though. It just means we always calculate brine height changes rather than assuming its the same as ice thickness. |
|
Let me know if you want me to run a full test suite on Derecho with the updated implementation in Icepack and CICE, when ready, before we merge. |
That would be awesome, thank you. Since this is not BFB, a QC test will also be needed. But I think there also needs to be broader testing by the various modeling centers before this is merged. AND I would really like to get opinions on the parameter values. Should we recommend reducing dyn_area_min and dyn_mass_min in the CICE PR? And if so, to what? I'd rather not use the large values we currently have for zapping, but that is how the code is currently set up in that PR. Thinking out loud... maybe 2 QC tests could help decide, one with the parameters as currently set in the CICE PR, and a second one with parameters set at the other extreme, as they are currently in Icepack. Compare both test simulations with the present code and with each other. I wouldn't expect either to be climate changing in that test, but who knows? (Caveat: I'm not sure whether the QC configuration has residual ice.) |
|
OK, happy to help with testing. I can run the test suite when we have final parameters chosen. Do you want me to run the QC tests with the current PR. What values for the parameters should I use for the two tests. I will compare them to each other and to the baseline. Also understand there may be no zapping, so we'll see how it goes. |
|
Running the QC tests with the current PR will capture the extremes of potential parameters, I think. The two tests would be and The baseline run will have the dynamics parameters as in A but no extra zapping. |
That's excellent news! So at least in this configuration, the parameter cutoff values don't matter. Do the QC test diagnostics consider all the output, or do they cut it off at e.g. aice=0.15? Searching the QC directory for 0.15 didn't turn up anything for me, but a plotting or analysis cutoff could have a different value. |
|
I do not see any cutoff values in the QC test. The test reads only 'hi' as far as I can tell. There is a mask generated for gridcells that never have hi > 0.01 but that is not an aice criteria. I think the QC test considers all gridcells. It could be that zapping plays little role. What's interesting is that baseline - A has the most differences. This suggests that the baseline is operating a lot like B with, I assume, less zapping happening in both vs B. My conclusion is that the new implementation is zapping more than the current implementation. I think that's what we expected. Whether it's doing that mainly at the ice edge seems like an open question though. |
In cice.t-test.py: The hi > 0.01 criterion is probably masking out most small-area cells. Why this is done here is understandable, to prevent comparing cells that have a little bit of ice in one run with cells that never have any in the other run, which probably shouldn't matter for climate. But we are looking for exactly those cells! What happens if the criterion value is reduced? Could it be set to EDIT: On the other hand, the criterion is for every timestep, and our small values may be moving around. So maybe some of the cells are being tested? I would guess that the "not climate-changing" tests will pass, regardless. |
|
Right. It's a cutoff for "every timestep". That means the test is probably assessing most of the ice edge for most of the year and would only exclude gridcells that only have very small amounts of ice probably just at the peak of the ice season at the far edge. |
|
@anton-seaice thanks for running a test! Is this a one-year run or longer? Resolution? It looks like you have some larger areas of low-concentration ice developing. They are in reasonable locations; the problem is that they persist through the melting season and shouldn't. Do you see that behavior? |
This is end of 52 years, Its 0.25deg global - data atmosphere, interactive ocean.
Ok thanks - I did a plot of the test above AND ice is present for the entire final year. (So ice is present in all daily diagnostics for one year, and is less than 1e-6 in the last day):
The same figure for ice present for several years is similar. So that looks like the same problem. So I think I could do two tests with the build from CICE-Consortium/CICE#1055 with:
and re-run the last 2/4/10 years of the experiment? |
|
@anton-seaice That would be fantastic! Is this a coupled configuration? |
|
Coupled with an ocean, and using a data-atmosphere forcing |
|
|
||
| zap_residual = .false. | ||
| if (aice < max(min_area, puny) .or. & | ||
| aice*rhoi < max(min_mass, puny)) zap_residual = .true. ! all categories |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about aborting if min_area or min_mass is less than `puny? Those setings mean the user has tried to do something which the model doesn't support.
e.g. could implementing as max(min_area, puny) leave people confused about why there is no ice with concentration less than puny, greater than min_area
|
To be able to keep current answers and test change, can this come in via a "zap_residual" namelist option? |













Adds minimum area and mass parameters and zaps grid-cell volumes of ice less than those.
@eclare108213, @DeniseWorthen
ENTER INFORMATION HERE
This PR addresses the long-standing residual ice problem in CICE by zapping grid-cell volumes with area or mass less than the new namelist parameters
min_areaandmin_mass. To work properly, these parameters should likely be set to the same values as the dynamics area and mass minimum valuesdyn_area_minanddyn_area_mass. Since those parameters in CICE are quite large (and everyone should decrease them), the default values in Icepack are currently set to 1.e-11 and 1.e-10, respectively, maintaining the area/mass=0.1 relationship of the dynamics parameters. The driver (e.g. CICE) should initialize them as needed via anicepack_init_parameterscall.