.true. when the GM block below this step already calls
varmix_compute (GM present + enabled + slopes present, at a
thermo step) — so the standalone Gap-1 resolution-function refresh
must NOT run it again (avoids a double compute and preserves the
GM+VarMix slope ordering bit-for-bit).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ocean_gm_t), | intent(in), | optional | :: | gm | ||
| type(ocean_slopes_t), | intent(in), | optional | :: | slopes | ||
| type(ocean_dyn_t), | intent(in) | :: | dyn |
pure function gm_refreshes_varmix(gm, slopes, dyn) result(refreshes) !! `.true.` when the GM block below this step already calls !! `varmix_compute` (GM present + enabled + slopes present, at a !! thermo step) — so the standalone Gap-1 resolution-function refresh !! must NOT run it again (avoids a double compute and preserves the !! GM+VarMix slope ordering bit-for-bit). type(ocean_gm_t), intent(in), optional :: gm type(ocean_slopes_t), intent(in), optional :: slopes type(ocean_dyn_t), intent(in) :: dyn logical :: refreshes refreshes = .false. if (.not. present(gm)) return if (.not. present(slopes)) return if (.not. gm%enable) return refreshes = dyn%enable_thermodynamics .and. dyn%is_thermo_step() end function gm_refreshes_varmix