Outer shim (outer-shim + flat-impl pattern, mirrors
ice_adjust_categories). No-op when the ice slot is not live
(is_init gate) or when par%conc_config == ICE_IC_CONC_ZERO
(the default-off bit-identity contract — nothing is written, not
even sal_ice/enth_ice). ice is intent(inout) (not
out): h_lim/mh_lim were filled at init and must survive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(hgrid_t), | intent(in) | :: | grid | |||
| type(multilayer_state_t), | intent(in) | :: | ms |
READ-ONLY: only |
||
| type(ocean_metrics_t), | intent(in) | :: | metrics |
READ-ONLY: only |
||
| type(ocean_sea_ice_t), | intent(inout) | :: | ice | |||
| type(ice_ic_params_t), | intent(in) | :: | par |
pure subroutine ice_init_apply(grid, ms, metrics, ice, par) !! Outer shim (outer-shim + flat-impl pattern, mirrors !! `ice_adjust_categories`). No-op when the ice slot is not live !! (`is_init` gate) or when `par%conc_config == ICE_IC_CONC_ZERO` !! (the default-off bit-identity contract — nothing is written, not !! even `sal_ice`/`enth_ice`). `ice` is `intent(inout)` (not !! `out`): `h_lim`/`mh_lim` were filled at `init` and must survive. type(hgrid_t), intent(in) :: grid type(multilayer_state_t), intent(in) :: ms !! READ-ONLY: only `wet_mask` is read. type(ocean_metrics_t), intent(in) :: metrics !! READ-ONLY: only `geolatT` is read (`"latitudes"` mode). type(ocean_sea_ice_t), intent(inout) :: ice type(ice_ic_params_t), intent(in) :: par if (.not. ice%is_init) return if (par%conc_config == ICE_IC_CONC_ZERO) return call ice_init_apply_impl(ms%wet_mask, metrics%geolatT, & ice%part_size, ice%m_ice, ice%m_snow, & ice%enth_ice, ice%enth_snow, ice%sal_ice, & ice%mh_lim, & par%conc_config, par%conc, par%h_ice, par%h_snow, & par%t_ice, par%s_ice, par%arctic_edge, par%antarctic_edge, & ice%ncat, ice%nk_ice, grid%nx_total, grid%ny_total) end subroutine ice_init_apply