cpl(__oifs): coupled-slab ice surface temperature + sea-ice-thickness exchange - #957
Open
JanStreffing wants to merge 1 commit into
Open
cpl(__oifs): coupled-slab ice surface temperature + sea-ice-thickness exchange#957JanStreffing wants to merge 1 commit into
JanStreffing wants to merge 1 commit into
Conversation
… exchange Under OIFS coupled-slab mode (LNEMOLIMTEMP=.false., LNEMOLIMTHK=.true.) the atmosphere solves the ice-tile skin temperature itself, using slab conduction through the coupled ice/snow thickness. This adds the FESOM side of that coupling: - Send the effective sea-ice thickness to the atmosphere as a new coupled field sit_feom (cpl_send slot 8, nsend 7->8 under __oifs) so the atmosphere's slab conduction uses the real ice thickness instead of a fixed nominal. Sent grid-mean (per-ice * concentration), weighted convention like ist/alb. - ist_ref anchor: remember the ice surface temperature as actually transmitted at the OASIS send (the temperature the atmosphere evaluated its ice-tile flux at), captured only on real transmissions. - ice_surftemp: replace the explicit skin update with a dQ/dT-linearized (implicit) solve anchored at ist_ref, zlam = 4*eps*sigma*tref**3 + turbulent sensitivity. This is unconditionally stable regardless of snow/ice insulation and leaves the fixed point unchanged where the surface tracks the coupling temperature. It sets the internal skin temperature used for albedo/melt-pond state only. - Growth budget: the atmosphere owns the surface energy balance in coupled-slab mode, so Qatmice = -a2ihf (the received atmosphere flux) directly. Inert for non-OIFS builds (all changes are #ifdef __oifs / __ifsinterface).
JanStreffing
requested review from
FinnHeu,
dsidoren,
lettie-roach and
patrickscholz
July 23, 2026 10:04
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.
What
Adds the FESOM side of OIFS coupled-slab sea-ice coupling. Under coupled-slab mode (
LNEMOLIMTEMP=.false.,LNEMOLIMTHK=.true.) the atmosphere solves the ice-tile skin temperature itself, using slab conduction through the coupled ice/snow thickness rather than a fixed nominal slab. This wires FESOM to feed that scheme and to book the growth flux consistently.Changes (all
#ifdef __oifs/__ifsinterface)sit_feom(cpl_sendslot 8,nsend7→8 under__oifs;gen_forcing_couple). Sent grid-mean (per-ice × concentration), weighted convention likeist/alb, so the atmosphere's slab conduction uses the real ice thickness.ist_refanchor — remember the ice surface temperature as actually transmitted at the OASIS send (the temperature the atmosphere evaluated its ice-tile flux at), captured only on real transmissions.ice_surftemp:dQ/dT-linearized (implicit) skin solve anchored atist_ref,zlam = 4·ε·σ·tref³ + turbulent sensitivity. Unconditionally stable regardless of snow/ice insulation; leaves the fixed point unchanged where the surface tracks the coupling temperature. It sets the internal skin temperature used for albedo / melt-pond state only.Qatmice = -a2ihf(received atmosphere flux) directly.Compatibility
Inert for non-OIFS builds. For OIFS builds,
sit_feomis defined viaoasis_def_varas an extra send; OASIS leaves it uncoupled (a no-opput) wherever the namcouple does not reference it, so this does not require a coordinated namcouple change to remain runnable — only a namcouple that addssit_feomneeds a FESOM that provides it.Validation
Multi-year AWI-ESM3 (FESOM2-CORE3-cavity + OIFS-48r1) coupled spin-ups run stably with this + the OIFS receive-side; the implicit solve holds through the polar-night temperature range with no cold runaway.