ocean_thermo_config_t Derived Type

type, public :: ocean_thermo_config_t

Thermodynamics master switches + scalar surface fluxes.


Inherited by

type~~ocean_thermo_config_t~~InheritedByGraph type~ocean_thermo_config_t ocean_thermo_config_t type~ocean_config_t ocean_config_t type~ocean_config_t->type~ocean_thermo_config_t thermo type~config_t config_t type~config_t->type~ocean_config_t ocean type~ocean_handle_t ocean_handle_t type~ocean_handle_t->type~config_t cfg

Components

Type Visibility Attributes Name Initial
logical, public :: enable_thermodynamics = .true.

When .true. (default), the dyn step runs EOS + tracer advection + vertical mixing. .false. = adiabatic.

logical, public :: epbl_sw_ctke = .true.

(PR-21) Charge the EPBL TKE ledger for penetrating shortwave (the in-layer PE-cost Phi(tau) shape). Inert at sw_pen_frac = 0 ⇒ bit-identical.

character(len=32), public :: kpp_sw_method = "mxl_sw"

(PR-21) KPP boundary-layer shortwave method (MOM6 KPP_SHORTWAVE_METHOD): all_sw | mxl_sw (default) | lv1_sw. Only the SW absorbed inside the boundary layer stabilises B_0. Inert at sw_pen_frac = 0 ⇒ bit-identical.

real(kind=wp), public :: q_heat = 0.0_wp

Scalar net surface heat flux (W/m^2, positive down).

real(kind=wp), public :: q_salt = 0.0_wp

Scalar net surface salt flux (kg salt/m^2/s, positive = surface salinifies).

real(kind=wp), public :: sw_band_ratio = 0.58_wp

Band-1 weight R of the two-band shortwave decay (Jerlov type I).

real(kind=wp), public :: sw_pen_frac = 0.0_wp

Penetrating fraction of q_heat as a two-band exponential (Paulson & Simpson 1977). 0 = off.

character(len=32), public :: sw_source = "net_heat"

(PR-21) Irradiance source for shortwave penetration + the boundary-layer SW coupling. "net_heat" (default, bit-identical): I0 = sw_pen_frac*q_heat. "q_sw": I0 = sw_pen_frac*q_sw (the dedicated >= 0 shortwave component) — kills the night-time negative-I0 hazard; REQUIRES &ocean_forcing_nml enable_components=.true. (validate_config aborts otherwise).

real(kind=wp), public :: sw_zeta1 = 0.35_wp

Band-1 (red/near-IR) e-folding depth (m).

real(kind=wp), public :: sw_zeta2 = 23.0_wp

Band-2 (blue/green) e-folding depth (m).


Source Code

   type :: ocean_thermo_config_t
      !! Thermodynamics master switches + scalar surface fluxes.
      logical :: enable_thermodynamics = .true.
         !! When `.true.` (default), the dyn step runs EOS + tracer
         !! advection + vertical mixing.  `.false.` = adiabatic.
      real(wp) :: q_heat = 0.0_wp
         !! Scalar net surface heat flux (W/m^2, positive down).
      real(wp) :: q_salt = 0.0_wp
         !! Scalar net surface salt flux (kg salt/m^2/s, positive =
         !! surface salinifies).
      real(wp) :: sw_pen_frac = 0.0_wp
         !! Penetrating fraction of `q_heat` as a two-band exponential
         !! (Paulson & Simpson 1977).  0 = off.
      real(wp) :: sw_band_ratio = 0.58_wp
         !! Band-1 weight `R` of the two-band shortwave decay (Jerlov type I).
      real(wp) :: sw_zeta1 = 0.35_wp
         !! Band-1 (red/near-IR) e-folding depth (m).
      real(wp) :: sw_zeta2 = 23.0_wp
         !! Band-2 (blue/green) e-folding depth (m).
      character(len=32) :: sw_source = "net_heat"
         !! (PR-21) Irradiance source for shortwave penetration + the
         !! boundary-layer SW coupling.  `"net_heat"` (default,
         !! bit-identical): `I0 = sw_pen_frac*q_heat`.  `"q_sw"`:
         !! `I0 = sw_pen_frac*q_sw` (the dedicated >= 0 shortwave
         !! component) — kills the night-time negative-`I0` hazard;
         !! REQUIRES `&ocean_forcing_nml enable_components=.true.`
         !! (validate_config aborts otherwise).
      character(len=32) :: kpp_sw_method = "mxl_sw"
         !! (PR-21) KPP boundary-layer shortwave method (MOM6
         !! `KPP_SHORTWAVE_METHOD`): `all_sw` | `mxl_sw` (default) |
         !! `lv1_sw`.  Only the SW absorbed inside the boundary layer
         !! stabilises `B_0`.  Inert at `sw_pen_frac = 0` ⇒ bit-identical.
      logical :: epbl_sw_ctke = .true.
         !! (PR-21) Charge the EPBL TKE ledger for penetrating shortwave
         !! (the in-layer PE-cost `Phi(tau)` shape).  Inert at
         !! `sw_pen_frac = 0` ⇒ bit-identical.
   end type ocean_thermo_config_t