Fills ocean_sea_ice_t’s coupleable seam
(atm_sf0/atm_dsfdt/atm_sw_dn/atm_fprec) from the &ocean_ice_nml scalar
restoring knobs. SF(T) = lambda(T - T_air) => sf_0 = -lambdaT_air
(upward-positive SEB intercept), dsf_dt = lambda (thermostat slope),
sw_dn = sw_down (uniform), atm_fprec = snowfall (uniform, PR 26). The
seam is identical whether this filler, a bulk formula, or a live
coupler fills it – that is what makes the model coupleable
(PLAN_ICE_PR3c S”coupleable seam”; PLAN_PR26_snowfall.md S13 fixes
atm_fprec’s shape/units/lifecycle for PR-55 to fill from data).
v1 SCALAR/UNIFORM: every physical cell gets the same
(sf_0, dsf_dt, sw_dn, fprec). 2D-field / file inputs are the bulk-flux
subsystem’s job (deferred). Ghost rows are filled too (harmless –
ice_thermo_columns only steps physical cells). Default-off byte-
identity: never called unless ice%enable.
Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Outer shim: forward the four seam arrays + four scalars to the
device kernel. No registry indirection here, but keep the shim+_impl
split for the explicit-shape device-kernel discipline.