Improve Soca2Cice (use icepack to cleanup after rescaling) #1111
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
There are several improvements to Soca2Cice here:
cleanup_itd
after rescaling to rebin thickness categories if necessary, remove very small ice areas and remove snow if snow enthalpy indicates out-of-bounds temperatures (see details incleanup_itd
).Notes:
icepack_init_itd
. I am not sure this is always the correct way to set up ice categories; does anyone know? It's important for rebinning.cleanup_itd
.icepack time step
with pseudorandom default 300.cleanup_itd
indicates that icepack aborted, the code will abort. This can be replaced (or optionally replaced) by shuffling if thecleanup_itd
aborts.cleanup_itd
, but I can add more tracers (e.g. melt ponds?)sea ice edge
value from rescaling. Previously the code both shuffled and rescaled where background ==sea ice edge
. This fix is mostly to cover an edge case whensea ice edge
is set to zero. In this case, when the background is zero, we definitely don't want to rescale (i.e. divide by zero)cleanup_ice
on develop covers the case where the restart fields updated after shuffling and rescaling are zero, but doesn't cover the case where they should have been updated to zero).Note: I kept Guillaume's update to the ice/snow temperature as icepack's
liquidus_temperature_mush
.shuffle stencil size
as a yaml option (default is 9) to add some flexibility for testingIssue(s) addressed
fixes #993 in a roundabout way (instead of adding the fixes suggested here,
cleanup_itd
is used to do that and more)Testing
Tested on orion with gnu and unit tests, the current test mostly rebins categories up and down, and zaps small areas on a few occasions.
Tested on hera with intel with high res gdas 3DVar experiment, setting ice edge to 0.15 and running a few cycles.
cleanup_itd
mostly rebins categories and zaps snow with low snow volumes and zero snow enthalpies.