tidal_mixing_is_inert Function

public pure function tidal_mixing_is_inert(enable, e_uniform, e_compute) result(inert)

.true. iff tidal mixing is enabled but has no energy source (PR-6 fail-loud): enable .and. e_uniform <= 0 .and. .not. e_compute. The bottom-intensified diffusivity Kd ∝ E, so a zero prescribed e_uniform with the e_compute estimator off makes Kd ≡ 0 exactly — the closure runs its whole flux sweep for nothing. e_compute=.true. supplies E internally, so that is NOT inert; a disabled closure is not “inert” either (it is simply off). Drives a configure abort.

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: enable
real(kind=wp), intent(in) :: e_uniform
logical, intent(in) :: e_compute

Return Value logical


Called by

proc~~tidal_mixing_is_inert~~CalledByGraph proc~tidal_mixing_is_inert tidal_mixing_is_inert proc~validate_config validate_config proc~validate_config->proc~tidal_mixing_is_inert 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 tidal_mixing_is_inert(enable, e_uniform, e_compute) result(inert)
      !! `.true.` iff tidal mixing is enabled but has no energy source
      !! (PR-6 fail-loud): `enable .and. e_uniform <= 0 .and. .not.
      !! e_compute`.  The bottom-intensified diffusivity `Kd ∝ E`, so a
      !! zero prescribed `e_uniform` with the `e_compute` estimator off
      !! makes `Kd ≡ 0` exactly — the closure runs its whole flux sweep
      !! for nothing.  `e_compute=.true.` supplies E internally, so that
      !! is NOT inert; a disabled closure is not "inert" either (it is
      !! simply off).  Drives a configure abort.
      logical, intent(in) :: enable, e_compute
      real(wp), intent(in) :: e_uniform
      logical :: inert
      inert = enable .and. (e_uniform <= 0.0_wp) .and. (.not. e_compute)
   end function tidal_mixing_is_inert