ocean_meke_config_t Derived Type

type, public :: ocean_meke_config_t

&ocean_meke_nml: mesoscale eddy kinetic energy — a 2D prognostic eddy-energy field fed back as a thickness/tracer diffusivity into VarMix’s KhTh/KhTr. Reads gm%gm_src. Default off ⇒ no-op.


Inherited by

type~~ocean_meke_config_t~~InheritedByGraph type~ocean_meke_config_t ocean_meke_config_t type~ocean_config_t ocean_config_t type~ocean_config_t->type~ocean_meke_config_t meke 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
real(kind=wp), public :: advection_factor = 0.0_wp

Barotropic-transport advection scaling (nondim); 0 ⇒ off (v1).

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

Weight on the deformation length scale (nondim).

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

Weight on the Eady length scale (needs VarMix SN) (nondim).

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

Weight on the frictional-arrest length scale (nondim).

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

Weight on the grid length scale (nondim).

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

Weight on the Rhines length scale (nondim); v1 default 0 ⇒ inert.

logical, public :: backscatter = .false.

Enable the MEKE → momentum harmonic backscatter (negative viscosity) energy return (Gap 2, v1). Default off ⇒ bit-identical. Requires a flow-aware lateral closure (lateral_closure /= none) for the returned energy to reach the momentum tendency.

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

MOM6 MEKE_VISCOSITY_COEFF_KU — harmonic backscatter efficiency Ku = coeff·sqrt(2·gamma_t²·E)·Lmix (m²/s). Subtracted (face- averaged, CFL-floored) from the resolved harmonic viscosity. 0 (default) ⇒ inert. HARMONIC only in v1 (biharmonic Au + EBT/SQG vertical structure deferred).

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

Background energy source (m^2/s^3).

real(kind=wp), public :: cb = 25.0_wp

Coefficient in the gamma_bot (bottomFac2) expression (nondim).

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

Bottom/column eddy-velocity ratio (nondim); enters bottomFac2.

real(kind=wp), public :: cdrag = 2.5e-3_wp

Bottom drag coefficient for MEKE (nondim); enters drag_rate + Lfrict. Set from &ocean_bdrag_nml cdrag_side at configure if that is > 0, else this default.

real(kind=wp), public :: ct = 50.0_wp

Coefficient in the gamma_bt (barotrFac2) expression (nondim).

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

Local depth-independent linear MEKE dissipation rate (1/s).

real(kind=wp), public :: dtscale = 1.0_wp

Scale factor accelerating MEKE time-stepping (nondim).

logical, public :: enable = .false.

Master switch. Default off. Requires &ocean_gm_nml enable=.true. (configure-time error).

real(kind=wp), public :: frcoeff = -1.0_wp

Frictional mean->eddy conversion efficiency (nondim); < 0 ⇒ off (default). When >= 0 the lateral-viscosity KE dissipation rate is sourced into MEKE.

real(kind=wp), public :: gmcoeff = -1.0_wp

Efficiency of PE->MEKE conversion (nondim); < 0 ⇒ GM source off.

real(kind=wp), public :: k4 = -1.0_wp

Background biharmonic diffusion of MEKE (m^4/s); < 0 ⇒ off.

real(kind=wp), public :: kh = -1.0_wp

Background lateral diffusion of MEKE (m^2/s); < 0 ⇒ off.

real(kind=wp), public :: khcoeff = 1.0_wp

Scaling converting MEKE into Kh (nondim); <= 0 ⇒ closure off.

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

Factor relating meke%kh to MEKE’s own lateral diffusivity (nondim).

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

Factor on the geom-mean kh added into VarMix KhTh (nondim). 0 (default) ⇒ feedback inert ⇒ bit-identical seam.

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

Factor on the geom-mean kh added into VarMix KhTr (nondim).

real(kind=wp), public :: min_gamma2 = 1.0e-4_wp

Floor on gamma_b^2 / gamma_t^2 (nondim).

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

Background eddy velocity scale for bottom drag (m/s).

logical, public :: use_bbl_drag = .false.

Add the resolved bottom-boundary-layer eddy velocity to the MEKE bottom-drag rate: drag_rate = rho0·i_mass·sqrt(cdrag²·(2·bf2·E + |u_bed|² + uscale²)) (MOM6 drag_rate_visc term, here the bed-layer speed). Default .false. ⇒ the |u_bed|² term is 0 ⇒ bit-identical to the prior MEKE drag.


Source Code

   type :: ocean_meke_config_t
      !! `&ocean_meke_nml`: mesoscale eddy kinetic energy — a 2D prognostic
      !! eddy-energy field fed back as a thickness/tracer diffusivity into
      !! VarMix's KhTh/KhTr.  Reads `gm%gm_src`.  Default off ⇒ no-op.
      logical :: enable = .false.
         !! Master switch.  Default off.  Requires `&ocean_gm_nml
         !! enable=.true.` (configure-time error).
      real(wp) :: gmcoeff = -1.0_wp
         !! Efficiency of PE->MEKE conversion (nondim); < 0 ⇒ GM source off.
      real(wp) :: frcoeff = -1.0_wp
         !! Frictional mean->eddy conversion efficiency (nondim); < 0 ⇒ off
         !! (default).  When >= 0 the lateral-viscosity KE dissipation rate
         !! is sourced into MEKE.
      real(wp) :: bgsrc = 0.0_wp
         !! Background energy source (m^2/s^3).
      real(wp) :: damping = 0.0_wp
         !! Local depth-independent linear MEKE dissipation rate (1/s).
      real(wp) :: kh = -1.0_wp
         !! Background lateral diffusion of MEKE (m^2/s); < 0 ⇒ off.
      real(wp) :: k4 = -1.0_wp
         !! Background biharmonic diffusion of MEKE (m^4/s); < 0 ⇒ off.
      real(wp) :: khcoeff = 1.0_wp
         !! Scaling converting MEKE into Kh (nondim); <= 0 ⇒ closure off.
      real(wp) :: cd_scale = 0.0_wp
         !! Bottom/column eddy-velocity ratio (nondim); enters bottomFac2.
      real(wp) :: cb = 25.0_wp
         !! Coefficient in the gamma_bot (bottomFac2) expression (nondim).
      real(wp) :: ct = 50.0_wp
         !! Coefficient in the gamma_bt (barotrFac2) expression (nondim).
      real(wp) :: min_gamma2 = 1.0e-4_wp
         !! Floor on gamma_b^2 / gamma_t^2 (nondim).
      real(wp) :: uscale = 0.0_wp
         !! Background eddy velocity scale for bottom drag (m/s).
      real(wp) :: dtscale = 1.0_wp
         !! Scale factor accelerating MEKE time-stepping (nondim).
      real(wp) :: khth_fac = 0.0_wp
         !! Factor on the geom-mean kh added into VarMix KhTh (nondim).
         !! 0 (default) ⇒ feedback inert ⇒ bit-identical seam.
      real(wp) :: khtr_fac = 0.0_wp
         !! Factor on the geom-mean kh added into VarMix KhTr (nondim).
      logical :: backscatter = .false.
         !! Enable the MEKE → momentum harmonic backscatter (negative
         !! viscosity) energy return (Gap 2, v1).  Default off ⇒ bit-identical.
         !! Requires a flow-aware lateral closure (`lateral_closure /= none`)
         !! for the returned energy to reach the momentum tendency.
      real(wp) :: backscatter_visc_coeff_ku = 0.0_wp
         !! MOM6 `MEKE_VISCOSITY_COEFF_KU` — harmonic backscatter efficiency
         !! `Ku = coeff·sqrt(2·gamma_t²·E)·Lmix` (m²/s).  Subtracted (face-
         !! averaged, CFL-floored) from the resolved harmonic viscosity.
         !! 0 (default) ⇒ inert.  HARMONIC only in v1 (biharmonic `Au` +
         !! EBT/SQG vertical structure deferred).
      real(wp) :: khmeke_fac = 0.0_wp
         !! Factor relating meke%kh to MEKE's own lateral diffusivity (nondim).
      real(wp) :: advection_factor = 0.0_wp
         !! Barotropic-transport advection scaling (nondim); 0 ⇒ off (v1).
      real(wp) :: cdrag = 2.5e-3_wp
         !! Bottom drag coefficient for MEKE (nondim); enters drag_rate +
         !! Lfrict.  Set from `&ocean_bdrag_nml cdrag_side` at configure if
         !! that is > 0, else this default.
      logical :: use_bbl_drag = .false.
         !! Add the resolved bottom-boundary-layer eddy velocity to the MEKE
         !! bottom-drag rate: `drag_rate = rho0·i_mass·sqrt(cdrag²·(2·bf2·E +
         !! |u_bed|² + uscale²))` (MOM6 `drag_rate_visc` term, here the
         !! bed-layer speed).  Default `.false.` ⇒ the `|u_bed|²` term is 0 ⇒
         !! bit-identical to the prior MEKE drag.
      real(wp) :: alpha_deform = 0.0_wp
         !! Weight on the deformation length scale (nondim).
      real(wp) :: alpha_rhines = 0.0_wp
         !! Weight on the Rhines length scale (nondim); v1 default 0 ⇒ inert.
      real(wp) :: alpha_eady = 0.0_wp
         !! Weight on the Eady length scale (needs VarMix SN) (nondim).
      real(wp) :: alpha_frict = 0.0_wp
         !! Weight on the frictional-arrest length scale (nondim).
      real(wp) :: alpha_grid = 0.0_wp
         !! Weight on the grid length scale (nondim).
   end type ocean_meke_config_t