Is &ocean_bt_nml substep_drag blind to the configured bottom
drag?
compute_bt_rem builds the barotropic substep damping
Htot/(Htot + r·hbbl·dt_inner) from the LINEAR coefficient
&ocean_bdrag_nml r alone. Under any form other than
"linear" the slow bottom drag is not that operator, so the
knob either does nothing at all (r = 0, the default — the
factor is identically 1) or damps the barotropic mode with a
linear drag the slow step never applies. Neither is what the
user asked for; the configure WARNING that names both knobs
reads this predicate. A warning, not a refusal: the knob is
harmless-if-useless in the default case, and a deliberate
BT-only linear sponge is a legitimate (if unusual) request.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(config_t), | intent(in) | :: | cfg |
pure function substep_drag_ignores_bdrag_form(cfg) result(ignores) !! Is `&ocean_bt_nml substep_drag` blind to the configured bottom !! drag? !! !! `compute_bt_rem` builds the barotropic substep damping !! `Htot/(Htot + r·hbbl·dt_inner)` from the LINEAR coefficient !! `&ocean_bdrag_nml r` alone. Under any `form` other than !! `"linear"` the slow bottom drag is not that operator, so the !! knob either does nothing at all (`r = 0`, the default — the !! factor is identically 1) or damps the barotropic mode with a !! linear drag the slow step never applies. Neither is what the !! user asked for; the configure WARNING that names both knobs !! reads this predicate. A warning, not a refusal: the knob is !! harmless-if-useless in the default case, and a deliberate !! BT-only linear sponge is a legitimate (if unusual) request. type(config_t), intent(in) :: cfg logical :: ignores ignores = cfg%ocean%bt%substep_drag .and. & trim(adjustl(cfg%ocean%bdrag%form)) /= "linear" end function substep_drag_ignores_bdrag_form