Repository navigation
Conversation
- IcePhysics: VolumeRedistribution {Headroom (default), Proportional} for
adjustThicknessCategories. Proportional scales every free category's thickness
by one factor and caps the open top category's rebin bound at max(2 x its lower
edge, its current thickness), so thin top-category slivers cannot absorb volume
residuals and ratchet toward the top bound.
- PostProcessIce: `itd: volume redistribution` (headroom | proportional) and
`max new ice thickness` for noice->ice seeding (0 = off).
- TestIcePhysics: cases for both rules (sliver gain, volume loss, Phase-2 top seed).
Defaults keep the previous behaviour.
…ice cap
Fixes the runaway ice volume seen in the SFS scout run (Arctic volume
doubling over 25 days, cell-mean thickness pinned near the 1000 m top
category bound).
- IcePhysics: remove the headroom volume-redistribution rule. With an open
top category it put almost every volume gain into category ncat, and
Phase 2 seeded newly populated top categories as ~500-1000 m slivers.
Proportional scaling with the capped top bound (max(2 x its lower edge,
its current thickness)) is now the only rule; `itd: volume
redistribution` is gone.
- Thermo: split `update snow thermo` into `clamp Tsfc` (default on),
`update snow thermo` (qsno rebuild only, default on) and
`cap surface ice enthalpy` (default off). The top-layer qice cap forced
qice001 down to BL99(Tsfcn) on almost every category in winter, adding
cold content every cycle (~0.06-0.09 x 10^3 km^3 of equivalent ice per
6-h cycle per hemisphere in the SFS run).
- `max new ice thickness` now defaults to 5 m (0 disables the cap), so
noice->ice cells are not seeded from donors with inflated thickness.
- Tests: unit tests use the single rule; soca2cice_new{,_freeboard,_seed}
refs regenerated (freeboard enforcement reacts to the new ITD shape;
mean hice changes by ~2e-5 relative).
…me option
CICE leaves thick ice remnants (tens of m) on cells with ~1e-3
concentration (SFS initial state: 1318 NH cells thicker than 10 m, median
concentration 7e-4). Keeping their thickness while the analysis raises the
concentration multiplies that volume.
- `low concentration: min background aice` (default 1e-3): background cells
below it are treated as ice-free. Where the analysis has ice they are
seeded as NOICE2ICE cells (neighbour thickness, capped at `max new ice
thickness`, no snow), ignoring the remnant's analysis thickness and snow;
otherwise the remnant is removed. Remnants are never used as donors and
count as empty categories for the new-ice thermo seed.
- `low concentration: max aice / max thickness` (defaults 0.01 / 5 m):
where the background or analysis concentration is below `max aice`, the
ICE2ICE thickness target is capped at `max thickness`.
- `concentration increment: keep thickness | keep volume` (default keep
thickness, the previous behaviour). With keep volume, ICE2ICE cells keep
the background volume (plus the analysis thickness increment over the
analysis area) when the analysis changes the concentration. Keeping
thickness adds volume wherever concentration rises over thick ice
(+0.14 x 10^3 km^3 per cycle in the SH in the SFS_v3 run on 9 Jan).
- New test soca2cice_new_keepvolume. soca2cice_new{,_freeboard,_seed,
_bgfallback} refs regenerated: the test grid has 78 background remnant
cells (43 re-seeded, 35 removed); concentration is unchanged and all
other differences are surface temperature / snow enthalpy on new-ice
slots whose donor changed.
- `keep volume` with a volume analysis (`sea_ice_volume` in `analysis variables`) now takes the analysed volume. It used to add the analysed volume to the background volume a second time. - New-ice Tsfc seeds honour `clamp Tsfc: false`. - The thermo stage again returns early when all its options are off. - Unit-test comments no longer refer to removed code or run names.
shlyaeva
requested review from
DmitryDukhovskoy,
Dooruk and
guillaumevernieres
November 5, 2026 20:23
…ependent donorMeanIce took the first donor with ice in the KDTree neighbour list. On regular grids mirror neighbours are equidistant, and which of them the KDTree lists first depends on rounding, so new-ice thickness and Tsfc could differ between platforms (soca2cice_new_bgfallback failed in CI). Neighbours are now visited in order of distance rounded to 1 m, then global index. seedNewIce uses donorMeanIce instead of its own copy of the donor search. soca2cice_new* refs regenerated (mean thickness changes by ~1e-3 relative; concentration and snow unchanged).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
In Joao's @jspsl 25-day cycling run with PostProcessIce, Arctic ice volume doubled (17.7 -> 37.1 x10^3 km^3), Antarctic ice grew through austral summer, and cells reached ~1000 m (the top category bound). Causes:
Changes:
max new ice thickness(default 5 m) caps the NOICE2ICE seed.clamp Tsfcandcap surface ice enthalpysplit out ofupdate snow thermo; the enthalpy cap is now off by default.low concentration: background cells belowmin background aice(1e-3) are treated as ice-free and never used as donors; ICE2ICE thickness targets are capped atmax thickness(5 m) belowmax aice(0.01).concentration increment: keep thickness | keep volumesets whether concentration increments keep thickness (default, as before) or volume.Behavior changes with default settings: the new rebin rule, enthalpy cap off, remnant cutoff and thickness caps.
Joao reran the experiment with these changes and saw significant improvement.
Checklist