-
Notifications
You must be signed in to change notification settings - Fork 132
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
Residual ice #645
Comments
@rgrumbine @TillRasmussen @proteanplanet I suspect it's a coupled thermo + dynamics problem that can not be solved just in Icepack, and it may be a more broad coupling issue. @apcraig @JFLemieux73 since you've both recently run QC cases, could you look for this in the output to see if it shows up in the stand-alone CICE model? I think it does. |
For discussion, I think we ran into this issue recently. Liz Douglass here at NRL is using our coupled HYCOM+CICE5.1.2 (yes, older CICE…) without data assimilation, and was investigating the different thermo schemes. She started from Jan 15, 2017. When she uses the ‘mushy’ thermo (ktherm=2), her run is successful. When she changes to ‘linear_salt’ (and ktherm=1), after 17 hours it crashed with a very small ice concentration, 2.85e-6. The log info is below (it only write aice, not vice). I’m looking through the mushy vs. linear_salt methods, but I don’t see if there is a difference in the minimum ice area or thickness. Is this what others are seeing?
Thermo energy conservation error
istep1, my_task, i, j: 16442727 72 100 100
Flux error (W/m^2) = 1.523171639483836E-003
Energy error (J) = 0.274170895107090
Initial energy = -454195.357306166
Final energy = -375892.611155715
efinal - einit = 78302.7461504512
fsurfn,flatn,fswint,fhocn, fsnow*Lfresh:
2.13535318803204 -18.5648469793598 0.000000000000000E+000
-414.313533052364 0.000000000000000E+000
Input energy = 78302.4719795561
fbot(i,j),fcondbot(ij):
-414.313533052364 46.7704253736093
Intermediate energy = -462229.396128675
efinal - einter = 86336.7849729600
einter - einit = -8034.03882250877
Conduction Error = 5.489471579767269E-002
Melt/Growth Error = 0.329065610904763
Advection Error = 0.000000000000000E+000
dt*(fsurfn, flatn, fswint, fhocn, fsnow*Lfresh, fadvocn):
384.363573845766 -3341.67245628477 0.000000000000000E+000
-74576.4359494256 0.000000000000000E+000 0.000000000000000E+000
istep1, my_task, iblk = 16442727 72 1
category n = 1
Global block: 73
Global i and j: 899 603
Lat, Lon: 68.4469529589150 -18.7899398812531
aice: 2.856320136459712E-006
n: 1 aicen: 2.851444384406774E-006
ice: Vertical thermo error
[edited to remove original email text]
|
@daveh150 I think that is a different issue - the thermodynamics is running (although it crashes). I suspect that it does not run at all for the residual ice amounts that are the subject of this issue, although I'm not sure about that. |
@daveh150 This look a lot like what I saw in our system (also HYCOM CICE). Is she running with form drag? |
Thank you Till! In this case she is not using formdrag. I need to do some research on the effect of using formdrag, Would that be potential problem for the latent heat?
Thanks!
David
|
I dont know if this is limited to formdrag, but in our HYCOM-CICE model we experienced issues with the iteration in the function atmo_boundary_layer. Maybe try to use the constant boundary layer. |
There are two separate issues associated with very small ice areas: I'm tackling A first, initially via increased lateral melt. Unfortunately I am not finding these large areas of small ice concentration in the standard gx3 test case, so debugging is challenging. Please, would someone provide a standalone configuration where this problem is visible? Preferably gx3, to allow quicker runs and debugging. As aice decreases, the relative importance of lateral melting should increase relative to bottom melting, given the same ice thickness. When the FSD is not in use, we assume a constant floe diameter of 300 m. However, when aice is very small, there is often not enough ice in a grid cell to form even one floe of that diameter, which is physically inconsistent. I've tried 2 things so far:
(2) seems like a sledgehammer approach, but (1) doesn't seem to make much difference. This could possibly aggravate B, if thinner ice melts out first and small areas of the thickest ice remain. @TillRasmussen @mhrib I would like to know whether either of these choices helps. My code is here:
Currently, it is set up for item (1) above. The (2) configuration can be run by uncommenting the
line in icepack_therm_vertical.F90. Could you try it out in your problematic case, please? If increasing lateral melting doesn't work, then we can introduce a namelist parameter to optionally zap these small areas for A. (I'm also curious as to whether turning on the FSD helps with this problem, but we can save that for later.) |
Actually for case (2), uncomment these 3 lines:
|
I will look at it. We have not tested on gx3 only on our own grids. I will see what happens with your modifications and send a test example |
If the mods to lateral melting are insufficient, then I will add a method to remove all ice less than some input concentration, conservatively. I already modified the code to do that using the zap_small_areas routine, but haven't added namelist etc. Either method will require a new parameter in Icepack, which has to be defined and passed back and forth through the driver/Icepack interface. I'd prefer to let the physics do the job instead of brute force removal, so will wait for your tests before fully implementing either option. @proteanplanet if you have other ideas for how to do this, which I'm missing, please pass them along. |
I have updated the code to make testing a little easier, although namelist options still are not implemented, pending @TillRasmussen's feedback on what's helpful. It's in the same place: my fork, residual branch for cice and iresidual branch for icepack.
Note: I also changed a conditional in icepack_therm_vertical.F90 from |
I put the test example on ftp.dmi.dk user anonymous folder tarftp, file testNAAf.tgz. Running @eclare108213 's branch with the modifcation as seen in The low conentration values are removed. It makes sense that there is a scaling issue between the 300 meter floe size and the concentration of a grid cell when the grid size changes. This setup is a 10km pan arctic run. |
@TillRasmussen I'm having trouble connecting to ftp.dmi.dk. Error says "the share doesn't exist on the server". If you can send a complete link to the file via email, maybe it would let me in. Glad to know the low concentration values disappear -- the last option is a pretty big hammer, so not surprising. The next thing is to understand which of the three modifications are needed, and which ones aren't helpful. If I'm not able to get your test problem, could you test these cases individually? Or maybe @apcraig can? |
@TillRasmussen I've downloaded the tarball and now understand your test problem a bit better. I think that to truly test the options that I've implemented, the runs will need to be done in the coupled system. The standalone ice test serves to check that the changes can get rid of existing residual ice, but I think that's probably because we're bludgeoning it (item 3 below). I'd like to know whether changing the lateral melting implementation provides a more physically based solution, and ice-ocean interactions probably will be critical for whether or not this works. I suggest doing 3 separate tests:
Thanks for helping with this! |
After running all 8 combinations of possible test the low ice concentrations are removed when using bullet 1 and 2 or all 3 bullets. My first conclusion is therefore that using bullet 1 and 2 should do it. |
Great! So bullet 3 alone doesn't work? I was thinking that we could keep that one (fix it if necessary) to provide more flexibility for operational uses. It should be equivalent to @mhrib 's approach but conservative. |
I have now run two simulations from the 1/9 1990 to the 1/7 1991. Conclusion is the same. Use the first two bullet points then the bug should be fixed. Output on the 1/ 1991 can be found on base is the original code, cor is the run using the corrected code and diff.nc is the difference between the two. |
@TillRasmussen could you run another test? I found a bug in my alternative floediameter calculation, which will increase the amount of heat used for lateral melting by a factor of 4. I'd like to see if this is sufficient using just bullet 1, not 2 or 3. |
I did run the updated code with only bullet 1. This do not remove the low concentration ice. |
Okay, thank you. I need to think about this some more. |
@TillRasmussen which thermodynamics option are you using? mushy? |
Yes it is with the mushy thermodynamics. |
At long last, I'm working routinely on this. The issue is still present and discoverable in gx3 runs with the current ice_in and then option file with: npt_unit = 'd' At the end of 2005, there are over 5 million km^2 of ice extent with concentration between 1e-2 and 1e-4 The initial conditions have much more ice extent than it finishes the year with, by about 4 million km^2 (and this is pretty independent of whether I use 1e-2, 1e-4, or 0.15 as the concentration criterion). So I'm going to look at removing low concentration or thin ice from the initial conditions and rerun. Some perhaps large fraction of the issue is simply initial conditions. Can't be all of it as the model retains large areas of low concentration even after running for a year. |
Following up: I was using the 2017 gx3 initial conditions. Will rerun with the 2021 conditions. |
2017 was the gx3 v5 conditions. so back to seeing about editing the initial conditions. Alas, simply zeroing aice and hi doesn't work due to the other places affected by nonzero values for them. |
Finally a clean experimental narrowing of the issue. tl;dr -- much of the issue derives from the transport scheme, the rest seems to be failure to melt away the last little bit of ice.
This occurs for both 'upwind' and 'remap' advection. 'upwind' suffers more from the problem than 'remap', but only ca. 25% advection.ts: Test Grid PEs Sets BFB-comparesmoke gx3 1x1 med3,yr_out,nodyn set_nml.notrans: set_nml.nodyn set_nml.upwind: set_env.med3: (1 processor on gaea takes about 2.5 hours for a gx3 year) set_nml.yr_out: When no dynamics are allowed (velocities remain zero throughout) results are not identical, which surprised me: The deviations are largest in the summer hemisphere, as if ice melts to low concentration/thickness, but the last bits never go away. NH minimum extent about 8.6 million km^2, SH min about 12.5 million km^2 (in late April!) With dynamics turned on, the disparities are larger: Since dynamics, upwind, transport is the worst-behaving, I'll continue with that. |
@rgrumbine did you test the approaches described in the comment above (#645 (comment))? I believe @TillRasmussen found that doing bullets 1 and 2 together took care of the residual ice issue. This must not have made it into the code, formally. Another change that has helped in E3SM (but not entirely removed the problem) is to reduce the parameter values for a_min and m_min to 1.e-11 and 1.e-10, respectively, something we should also test/fix in the Consortium codebase. |
Thanks for the pointer. While I've been scrupulous about keeping my codes up to the consortium code base, I haven't always kept them up to the discussions. I have a couple of things running, and will add these to my trials. |
I'm not sure if this is useful to the discussion, but I'm attaching this to share our experience in E3SM with regard to residual ice: |
Hi Andrew, Bob and Elizabeth
I can add that at least in CICE the criterion for a_min is based on two
different ice concentration. Aice for tmask and aice_init for umask. This
can allow umask to be active without tmask being aktive. I think that is a
bug but I am not sure.
Till
ons. 29. maj 2024 17.33 skrev Andrew Roberts ***@***.***>:
… I'm not sure if this is useful to the discussion, but I'm attaching this
to share our experience in E3SM with regard to residual ice:
2024_Andrew_Roberts_CAMAS_Poster.pdf
<https://github.com/CICE-Consortium/CICE/files/15486715/2024_Andrew_Roberts_CAMAS_Poster.pdf>
—
Reply to this email directly, view it on GitHub
<#645 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AH7N7DVGU7Y2BN3N7VB5LUTZEXYOFAVCNFSM5GCEABQKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMJTG43TANRQGU4A>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
All: Following Andrew, I tried dropping a_min and m_min to 1.e-11 and 1.e-10, respectively, in ice_dyn_shared.F90. That made year end extent over 75 million km^2 Note: I'm using aice > 0 in determining extents. I don't really expect high quality match to observations, but do think even gx3 should be closer to year end (2005) observed extents than this. |
Further thoughts:
|
Does the model rely on ocean fluxes to remove the trace amounts of ice? One test I've completed is to confirm that state_to_work is cleanly inverted by work_to_state. Not a surprise, but good to know that the transport-related issue is strictly with the upwind (and remap) routines. |
The model should rely on ocean fluxes to remove the trace amounts of ice. In stand-alone mode these should come from a forcing file. Sounds like you aren't testing with the changes from my 'residual' and 'iresidual' branches, so you wouldn't see the same results that Till did. We'll need to pull the commits onto that branch into a new one. When melting, the ice takes the heat that it needs from the ocean, and the changes in my branches allowed it to take more. |
Very small volumes of ice appear and/or remain in grid cells with no mechanism for getting rid of them.
If there is already an issue in either CICE or Icepack repos for this, please point it out. Potentially related issues are #564, CICE-Consortium/Icepack#148 and CICE-Consortium/Icepack#149.
There are a few other potential contributing factors:
These 2 factors are obviously a catch-22 and there could easily be a gap in those parameters where nothing will ever happen.
add_new_ice
and is closely tied to the ITD.Factor 3 handles frazil ice appropriately upon freezing, provided the parameters are consistent with item 2 above. But the ice could partially melt in the next time step, dropping below the minimums in 1 and 2.
Under freezing conditions, a volume of ice could potentially be spread out over the whole grid cell at a thickness near or below the minimums in 1 and 2. The large concentration would limit the atmosphere-ocean exchanges that would allow the ocean to warm up enough to subsequently melt the ice (and could be affecting things like ocean circulation/AMOC). This scenario could be occurring in models with sub-daily coupling at times of the year when the ice forms during colder hours and should melt during warmer hours but doesn't due to inconsistencies between assumptions in the ice (e.g. factors 1 and 2) and the coupler (high ice concentration implies little solar flux to ocean). Some models have a parameter to control the division of ice volume between area and thickness; I do not think we do, and maybe we should.
Averaging in the history files also could contribute to this issue, if there's ice present only for a few timesteps and the rest of the month is ice-free. There is an "ice-present" history variable available to help understand this type of thing.
There may be other parameters or factors that I'm not thinking of at the moment.
The text was updated successfully, but these errors were encountered: