.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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | enable | |||
| real(kind=wp), | intent(in) | :: | e_uniform | |||
| logical, | intent(in) | :: | e_compute |
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