.true. only for a Coriolis-advection variant that has a real
kernel wired into coriolis_adv_compute_tendencies
(SADOURNY / SADOURNY_HK / SADOURNY_ENERGY). PV_VARIANT_AL81
returns .false. — the constant is reserved but the
Arakawa-Lamb kernel is not yet written, and the AL81 promise
(simultaneous energy + enstrophy conservation) must not be
silently substituted by the enstrophy-only Sadourny kernel.
PV_VARIANT_INVALID also returns .false.. The predicate is
the single gate validate_config consumes (PR-6 fail-loud).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | code |
pure function pv_variant_is_implemented(code) result(ok) !! `.true.` only for a Coriolis-advection variant that has a real !! kernel wired into `coriolis_adv_compute_tendencies` !! (SADOURNY / SADOURNY_HK / SADOURNY_ENERGY). `PV_VARIANT_AL81` !! returns `.false.` — the constant is reserved but the !! Arakawa-Lamb kernel is not yet written, and the AL81 promise !! (simultaneous energy + enstrophy conservation) must not be !! silently substituted by the enstrophy-only Sadourny kernel. !! `PV_VARIANT_INVALID` also returns `.false.`. The predicate is !! the single gate `validate_config` consumes (PR-6 fail-loud). integer, intent(in) :: code logical :: ok ok = (code == PV_VARIANT_SADOURNY) .or. & (code == PV_VARIANT_SADOURNY_HK) .or. & (code == PV_VARIANT_SADOURNY_ENERGY) end function pv_variant_is_implemented