substep_drag_ignores_bdrag_form Function

public 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.

Arguments

Type IntentOptional Attributes Name
type(config_t), intent(in) :: cfg

Return Value logical


Called by

proc~~substep_drag_ignores_bdrag_form~~CalledByGraph proc~substep_drag_ignores_bdrag_form substep_drag_ignores_bdrag_form proc~validate_config validate_config proc~validate_config->proc~substep_drag_ignores_bdrag_form proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~validate_config proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~build_pending_handle proc~rdb_ocean_create_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~build_pending_handle

Source Code

   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