mom_meke module reference¶
Implements the Mesoscale Eddy Kinetic Energy framework with topographic beta effect included in computing beta in Rhines scale.
Data Types¶
Control structure that contains MEKE parameters and diagnostics handles. |
Functions/Subroutines¶
Integrates forward-in-time the MEKE eddy energy equation. |
|
Calculates the equilibrium solution where the source depends only on MEKE diffusivity and there is no lateral diffusion of MEKE. |
|
Calculates the eddy mixing length scale and \(\gamma_b\) and \(\gamma_t\) functions that are ratios of either bottom or barotropic eddy energy to the column eddy energy, respectively. |
|
Calculates the eddy mixing length scale and \(\gamma_b\) and \(\gamma_t\) functions that are ratios of either bottom or barotropic eddy energy to the column eddy energy, respectively. |
|
Initializes the MOM_MEKE module and reads parameters. |
|
Initializer for the variant of MEKE that uses ML to predict eddy kinetic energy. |
|
Calculate the various features used for the machine learning prediction. |
|
Use the machine learning interface to predict EKE. |
|
Compute average of interface quantities weighted by the thickness of the surrounding layers. |
|
Allocates memory and register restart fields for the MOM_MEKE module. |
|
Deallocates any variables allocated in MEKE_alloc_register_restart. |
Detailed Description¶
The Mesoscale Eddy Kinetic Energy (MEKE) framework¶
The MEKE framework accounts for the mean potential energy removed by the first order closures used to parameterize mesoscale eddies. It requires closure at the second order, namely dissipation and transport of eddy energy.
Monitoring the sub-grid scale eddy energy budget provides a means to predict a sub-grid eddy-velocity scale which can be used in the lower order closures.
MEKE equations¶
The eddy kinetic energy equation is:
where \(E\) is the eddy kinetic energy (variable MEKE
) with units of m 2s -2, and \(\tilde{t} = a t\) is a scaled time. The non-dimensional factor \(a\geq 1\) is used to accelerate towards equilibrium.
The MEKE equation is two-dimensional and obtained by depth averaging the the three-dimensional eddy energy equation. In the following expressions \(\left< \phi \right> = \frac{1}{H} \int^\eta_{-D} \phi \, dz\) maps three dimensional terms into the two-dimensional quantities needed.
MEKE source terms¶
The source term \(\dot{E}_b\) is a constant background source of energy intended to avoid the limit \(E\rightarrow 0\).
The “GM” source term
equals the mean potential energy removed by the Gent-McWilliams closure, and is excluded/included in the MEKE budget by the efficiency parameter \(\gamma_\eta \in [0,1]\).
The “frictional” source term
equals the mean kinetic energy removed by lateral viscous fluxes, and is excluded/included in the MEKE budget by the efficiency parameter \(\gamma_v \in [0,1]\).
MEKE dissipation terms¶
The local dissipation of \(E\) is parameterized through a linear damping, \(\lambda\), and bottom drag, \(C_d | U_d | \gamma_b^2\). The \(\gamma_b\) accounts for the weak projection of the column-mean eddy velocity to the bottom. In other words, the bottom velocity is estimated as \(\gamma_b U_e\). The bottom drag coefficient, \(C_d\) is the same as that used in the bottom friction in the mean model equations.
The bottom drag velocity scale, \(U_d\), has contributions from the resolved state and \(E\):
where the eddy velocity scale, \(U_e\), is given by:
\(U_b\) is a constant background bottom velocity scale and is typically not used (i.e. set to zero).
Following Jansen et al., 2015, the projection of eddy energy on to the bottom is given by the ratio of bottom energy to column mean energy:
MEKE smoothing terms¶
\(E\) is laterally diffused by a diffusivity \(\kappa_E + \gamma_M \kappa_M\) where \(\kappa_E\) is a constant diffusivity and the term \(\gamma_M \kappa_M\) is a “self diffusion” using the diffusivity calculated in the section Diffusivity derived from MEKE. \(\kappa_4\) is a constant bi-harmonic diffusivity.
Diffusivity derived from MEKE¶
The predicted eddy velocity scale,
\(U_e\), can be combined with a mixing length scale to form a diffusivity. The primary use of a MEKE derived diffusivity is for use in thickness diffusion (module mom_thickness_diffuse()
) and optionally in along isopycnal mixing of tracers (module ) and optionally in along isopycnal mixing of tracers (module mom_tracer_hor_diff()
). The original form used (enabled with MEKE_OLD_LSCALE=True):). The original form used (enabled with MEKE_OLD_LSCALE=True):
where \(A_\Delta\) is the area of the grid cell. Following Jansen et al., 2015, we now use
where \(\gamma_\kappa \in [0,1]\) is a non-dimensional factor and, following Jansen et al., 2015, \(\gamma_t^2\) is the ratio of barotropic eddy energy to column mean eddy energy given by
The length-scale is a configurable combination of multiple length scales:
where
\(L_c\) is a constant and \(\delta[L_c]\) is the impulse function so that the term \(\frac{\delta[L_c]}{L_c}\) evaluates to \(\frac{1}{L_c}\) when \(L_c\) is non-zero but is dropped if \(L_c=0\).
\(\beta^*\) is the effective \(\beta\) that combines both the planetary vorticity gradient (i.e. \(\beta=\nabla f\)) and the topographic \(\beta\) effect, with the latter weighed by a weighting constant, \(c_\beta\), that varies from 0 to 1, so that \(c_\beta=0\) means the topographic \(\beta\) effect is ignored, while \(c_\beta=1\) means it is fully considered. The new \(\beta^*\) therefore takes the form of
where \(D\) is water column depth at T points.
Viscosity derived from MEKE¶
As for \(\kappa_M\), the predicted eddy velocity scale can be used to form a harmonic eddy viscosity,
as well as a biharmonic eddy viscosity,
Limit cases for local source-dissipative balance¶
Note that in steady-state (or when \(a>>1\)) and there is no diffusion of \(E\) then
In the linear drag limit, where \(U_e << \min(U_b, |u|_{z=-D}, C_d^{-1}\lambda)\), the equilibrium becomes \(\overline{E} \approx \frac{ \dot{E}_b + \gamma_\eta \dot{E}_\eta + \gamma_v \dot{E}_v }{ \lambda + C_d \sqrt{ U_b^2 + |u|^2_{z=-D} } }\).
In the nonlinear drag limit, where \(U_e >> \max(U_b, |u|_{z=-D}, C_d^{-1}\lambda)\), the equilibrium becomes \(\overline{E} \approx \left( \frac{ \dot{E}_b + \gamma_\eta \dot{E}_\eta + \gamma_v \dot{E}_v }{ \sqrt{2} C_d \gamma_b^3 } \right)^\frac{2}{3}\).
MEKE module parameters¶
Symbol |
Module parameter |
---|---|
|
|
\(a\) |
|
\(\dot{E}_b\) |
|
\(\gamma_\eta\) |
|
\(\gamma_v\) |
|
\(\lambda\) |
|
\(U_b\) |
|
\(\gamma_{d0}\) |
|
\(c_{b}\) |
|
\(c_{t}\) |
|
\(\kappa_E\) |
|
\(\kappa_4\) |
|
\(\gamma_\kappa\) |
|
\(\gamma_M\) |
|
\(\gamma_u\) |
|
\(\gamma_4\) |
|
\(\gamma_{min}^2\) |
|
\(\alpha_d\) |
|
\(\alpha_f\) |
|
\(\alpha_R\) |
|
\(\alpha_e\) |
|
\(\alpha_\Delta\) |
|
\(L_c\) |
|
\(c_\beta\) |
|
|
|
|
Symbol |
Model parameter |
---|---|
\(C_d\) |
|
References¶
Jansen, M. F., A. J. Adcroft, R. Hallberg, and I. M. Held, 2015: Parameterization of eddy fluxes based on a mesoscale energy budget. Ocean Modelling, 92, 2841, http://doi.org/10.1016/j.ocemod.2015.05.007 .
Marshall, D. P., and A. J. Adcroft, 2010: Parameterization of ocean eddies: Potential vorticity mixing, energetics and Arnold first stability theorem. Ocean Modelling, 32, 188204, http://doi.org/10.1016/j.ocemod.2010.02.001 .
Type Documentation¶
-
type
mom_meke/
meke_cs
¶ Control structure that contains MEKE parameters and diagnostics handles.
- Type fields:
%
id_meke
[integer] :: Diagnostic handles.%
id_ue
[integer] :: Diagnostic handles.%
id_kh
[integer] :: Diagnostic handles.%
id_src
[integer] :: Diagnostic handles.%
id_ub
[integer] :: Diagnostic handles.%
id_ut
[integer] :: Diagnostic handles.%
id_gm_src
[integer] :: Diagnostic handles.%
id_mom_src
[integer] :: Diagnostic handles.%
id_gme_snk
[integer] :: Diagnostic handles.%
id_decay
[integer] :: Diagnostic handles.%
id_khmeke_u
[integer] :: Diagnostic handles.%
id_khmeke_v
[integer] :: Diagnostic handles.%
id_ku
[integer] :: Diagnostic handles.%
id_au
[integer] :: Diagnostic handles.%
id_le
[integer] :: Diagnostic handles.%
id_gamma_b
[integer] :: Diagnostic handles.%
id_gamma_t
[integer] :: Diagnostic handles.%
id_lrhines
[integer] :: Diagnostic handles.%
id_leady
[integer] :: Diagnostic handles.%
id_meke_equilibrium
[integer] :: Diagnostic handles.%
initialized
[logical] :: True if this control structure has been initialized.%
meke_frcoeff
[real] :: Efficiency of conversion of ME into MEKE [nondim].%
meke_gmcoeff
[real] :: Efficiency of conversion of PE into MEKE [nondim].%
meke_gmecoeff
[real] :: Efficiency of conversion of MEKE into ME by GME [nondim].%
meke_damping
[real] :: Local depth-independent MEKE dissipation rate [T-1 ~> s-1].%
meke_cd_scale
[real] :: The ratio of the bottom eddy velocity to the column mean eddy velocity, i.e. sqrt(2*MEKE), [nondim]. This should be less than 1 to account for the surface intensification of MEKE.%
meke_cb
[real] :: Coefficient in the%
meke_min_gamma
[real] :: Minimum value of gamma_b^2 allowed [nondim].%
meke_ct
[real] :: Coefficient in the%
visc_drag
[logical] :: If true use the vertvisc_type to calculate bottom drag.%
meke_geometric
[logical] :: If true, uses the GM coefficient formulation from the GEOMETRIC framework (Marshall et al., 2012)%
meke_geometric_alpha
[real] :: The nondimensional coefficient governing the efficiency of the GEOMETRIC thickness diffusion [nondim].%
meke_equilibrium_alt
[logical] :: If true, use an alternative calculation for the equilibrium value of MEKE.%
meke_equilibrium_restoring
[logical] :: If true, restore MEKE back to its equilibrium value, which is calculated at each time step.%
gm_src_alt
[logical] :: If true, use the GM energy conversion form S^2*N^2*kappa rather than the streamfunction for the MEKE GM source term.%
meke_min_depth_tot
[real] :: The minimum total thickness over which to distribute MEKE energy sources from GM energy conversion [H ~> m or kg m-2]. When the total thickness is less than this, the sources are scaled away.%
rd_as_max_scale
[logical] :: If true the length scale can not exceed the first baroclinic deformation radius.%
use_old_lscale
[logical] :: Use the old formula for mixing length scale.%
use_min_lscale
[logical] :: Use simple minimum for mixing length scale.%
lscale_maxval
[real] :: The ceiling on the MEKE mixing length scale when use_min_lscale is true [L ~> m].%
cdrag
[real] :: The bottom drag coefficient for MEKE, times rescaling factors [H L-1 ~> nondim or kg m-3].%
meke_bgsrc
[real] :: Background energy source for MEKE [L2 T-3 ~> W kg-1] (= m2 s-3).%
meke_dtscale
[real] :: Scale factor to accelerate time-stepping [nondim].%
meke_khcoeff
[real] :: Scaling factor to convert MEKE into Kh [nondim].%
meke_uscale
[real] :: MEKE velocity scale for bottom drag [L T-1 ~> m s-1].%
meke_kh
[real] :: Background lateral diffusion of MEKE [L2 T-1 ~> m2 s-1].%
meke_k4
[real] :: Background bi-harmonic diffusivity (of MEKE) [L4 T-1 ~> m4 s-1].%
khmeke_fac
[real] :: A factor relating MEKEKh to the diffusivity used for MEKE itself [nondim].%
viscosity_coeff_ku
[real] :: The scaling coefficient in the expression for viscosity used to parameterize lateral harmonic momentum mixing by unresolved eddies represented by MEKE [nondim].%
viscosity_coeff_au
[real] :: The scaling coefficient in the expression for viscosity used to parameterize lateral biharmonic momentum mixing by unresolved eddies represented by MEKE [nondim].%
lfixed
[real] :: Fixed mixing length scale [L ~> m].%
adeform
[real] :: Weighting towards deformation scale of mixing length [nondim].%
arhines
[real] :: Weighting towards Rhines scale of mixing length [nondim].%
africt
[real] :: Weighting towards frictional arrest scale of mixing length [nondim].%
aeady
[real] :: Weighting towards Eady scale of mixing length [nondim].%
agrid
[real] :: Weighting towards grid scale of mixing length [nondim].%
meke_advection_factor
[real] :: A scaling in front of the advection of MEKE [nondim].%
meke_topographic_beta
[real] :: Weight for how much topographic beta is considered when computing beta in Rhines scale [nondim].%
meke_restoring_rate
[real] :: Inverse of the timescale used to nudge MEKE toward its equilibrium value [T-1 ~> s-1].%
meke_advection_bug
[logical] :: If true, recover a bug in the calculation of the barotropic transport for the advection of MEKE, wherein only the transports in the deepest layer are used.%
fixed_total_depth
[logical] :: If true, use the nominal bathymetric depth as the estimate of the time-varying ocean depth. Otherwise base the depth on the total ocean mass per unit area.%
rho_fixed_total_depth
[real] :: A density used to translate the nominal bathymetric depth into an estimate of the total ocean mass per unit area when MEKE_FIXED_TOTAL_DEPTH is true [R ~> kg m-3].%
kh_flux_enabled
[logical] :: If true, lateral diffusive MEKE flux is enabled.%
initialize
[logical] :: If True, invokes a steady state solver to calculate MEKE.%
debug
[logical] :: If true, write out checksums of data for debugging.%
eke_src
[integer] :: Enum specifying whether EKE is stepped forward prognostically (default), read in from a file, or inferred via a neural network.%
diag
[type( diag_ctrl ),pointer] :: A type that regulates diagnostics output.%
eke_handle
[type(external_field)] :: Handle for reading in EKE from a file.%
id_clock_pass
[integer] :: Clock for group pass calls.%
pass_meke
[type(group_pass_type)] :: Group halo pass handle for MEKEMEKE and maybe MEKEKh_diff.%
pass_kh
[type(group_pass_type)] :: Group halo pass handle for MEKEKh, MEKEKu, and/or MEKEAu.%
client
[type(dbclient_type),pointer] :: Pointer to the database client.%
online_analysis
[logical] :: If true, post the EKE used in MOM6 at every timestep.%
model_key
[character (len=5)] :: Key where the ML-model is stored.%
key_suffix
[character (len=7)] :: Suffix appended to every key sent to Redis.%
eke_max
[real] :: The maximum value of EKE considered physically reasonable [L2 T-2 ~> m2 s-2].%
id_client_init
[integer] :: Clock id to time initialization of the client.%
id_put_tensor
[integer] :: Clock id to time put_tensor routine.%
id_run_model
[integer] :: Clock id to time running of the ML model.%
id_unpack_tensor
[integer] :: Clock id to time retrieval of EKE prediction.%
id_mke
[integer] :: Diagnostic id for surface mean kinetic energy.%
id_slope_z
[integer] :: Diagnostic id for vertically averaged horizontal slope magnitude.%
id_slope_x
[integer] :: Diagnostic id for isopycnal slope in the x-direction.%
id_slope_y
[integer] :: Diagnostic id for isopycnal slope in the y-direction.%
id_rv
[integer] :: Diagnostic id for surface relative vorticity.
Function/Subroutine Documentation¶
-
subroutine
mom_meke/
step_forward_meke
(MEKE, h, SN_u, SN_v, visc, dt, G, GV, US, CS, hu, hv, u, v, tv, Time)¶ Integrates forward-in-time the MEKE eddy energy equation. See MEKE equations.
- Parameters:
meke :: [inout] MEKE data.
g :: [inout] Ocean grid.
gv :: [in] Ocean vertical grid structure.
us :: [in] A dimensional unit scaling type
h :: [in] Layer thickness [H ~> m or kg m-2].
sn_u :: [in] Eady growth rate at u-points [T-1 ~> s-1].
sn_v :: [in] Eady growth rate at v-points [T-1 ~> s-1].
visc :: [in] The vertical viscosity type.
dt :: [in] Model(baroclinic) time-step [T ~> s].
cs :: [inout] MEKE control structure.
hu :: [in] Accumulated zonal mass flux [H L2 ~> m3 or kg].
hv :: [in] Accumulated meridional mass flux [H L2 ~> m3 or kg]
u :: [inout] Zonal velocity [L T-1 ~> m s-1]
v :: [inout] Meridional velocity [L T-1 ~> m s-1]
tv :: [in] Type containing thermodynamic variables
time :: [in] The time used for interpolating EKE
- Call to:
eke_dbclient
eke_file
eke_prog
meke_equilibrium
meke_equilibrium_restoring
meke_lengthscales
ml_meke_calculate_features
mom_error_handler::mom_error
predict_meke
-
subroutine
mom_meke/
meke_equilibrium
(CS, MEKE, G, GV, US, SN_u, SN_v, drag_rate_visc, I_mass, depth_tot)¶ Calculates the equilibrium solution where the source depends only on MEKE diffusivity and there is no lateral diffusion of MEKE. Results is in MEKEMEKE.
- Parameters:
g :: [inout] Ocean grid.
gv :: [in] Ocean vertical grid structure.
us :: [in] A dimensional unit scaling type
cs :: [in] MEKE control structure.
meke :: [inout] MEKE fields
sn_u :: [in] Eady growth rate at u-points [T-1 ~> s-1].
sn_v :: [in] Eady growth rate at v-points [T-1 ~> s-1].
drag_rate_visc :: [in] Mean flow velocity contribution to the MEKE drag rate [H T-1 ~> m s-1 or kg m-2 s-1]
i_mass :: [in] Inverse of column mass [R-1 Z-1 ~> m2 kg-1].
depth_tot :: [in] The thickness of the water column [H ~> m or kg m-2].
- Call to:
- Called from:
-
subroutine
mom_meke/
meke_equilibrium_restoring
(CS, G, GV, US, SN_u, SN_v, depth_tot, equilibrium_value)¶ - Parameters:
g :: [inout] Ocean grid.
gv :: [in] Ocean vertical grid structure.
us :: [in] A dimensional unit scaling type.
cs :: [in] MEKE control structure.
sn_u :: [in] Eady growth rate at u-points [T-1 ~> s-1].
sn_v :: [in] Eady growth rate at v-points [T-1 ~> s-1].
depth_tot :: [in] The thickness of the water column [H ~> m or kg m-2].
equilibrium_value :: [out] Equilbrium value of MEKE to be calculated at each time step [L2 T-2 ~> m2 s-2]
- Called from:
-
subroutine
mom_meke/
meke_lengthscales
(CS, MEKE, G, GV, US, SN_u, SN_v, EKE, depth_tot, bottomFac2, barotrFac2, LmixScale)¶ Calculates the eddy mixing length scale and \(\gamma_b\) and \(\gamma_t\) functions that are ratios of either bottom or barotropic eddy energy to the column eddy energy, respectively. See MEKE equations.
- Parameters:
cs :: [in] MEKE control structure.
meke :: [in] MEKE field
g :: [inout] Ocean grid.
gv :: [in] Ocean vertical grid structure.
us :: [in] A dimensional unit scaling type
sn_u :: [in] Eady growth rate at u-points [T-1 ~> s-1].
sn_v :: [in] Eady growth rate at v-points [T-1 ~> s-1].
eke :: [in] Eddy kinetic energy [L2 T-2 ~> m2 s-2].
depth_tot :: [in] The thickness of the water column [H ~> m or kg m-2].
bottomfac2 :: [out] gamma_b^2 [nondim]
barotrfac2 :: [out] gamma_t^2 [nondim]
lmixscale :: [out] Eddy mixing length [L ~> m].
- Call to:
- Called from:
-
subroutine
mom_meke/
meke_lengthscales_0d
(CS, US, area, beta, depth_tot, Rd_dx, SN, EKE, bottomFac2, barotrFac2, LmixScale, Lrhines, Leady)¶ Calculates the eddy mixing length scale and \(\gamma_b\) and \(\gamma_t\) functions that are ratios of either bottom or barotropic eddy energy to the column eddy energy, respectively. See MEKE equations.
- Parameters:
cs :: [in] MEKE control structure.
us :: [in] A dimensional unit scaling type
area :: [in] Grid cell area [L2 ~> m2]
beta :: [in] Planetary beta = \(\nabla f\) [T-1 L-1 ~> s-1 m-1]
depth_tot :: [in] The total thickness of the water column [H ~> m or kg m-2]
rd_dx :: [in] Resolution Ld/dx [nondim].
sn :: [in] Eady growth rate [T-1 ~> s-1].
eke :: [in] Eddy kinetic energy [L2 T-2 ~> m2 s-2].
bottomfac2 :: [out] gamma_b^2 [nondim]
barotrfac2 :: [out] gamma_t^2 [nondim]
lmixscale :: [out] Eddy mixing length [L ~> m].
lrhines :: [out] Rhines length scale [L ~> m].
leady :: [out] Eady length scale [L ~> m].
- Called from:
-
function
mom_meke/
meke_init
(Time, G, GV, US, param_file, diag, dbcomms_CS, CS, MEKE, restart_CS, meke_in_dynamics) [logical]¶ Initializes the MOM_MEKE module and reads parameters. Returns True if module is to be used, otherwise returns False.
- Parameters:
time :: [in] The current model time.
g :: [inout] The ocean’s grid structure.
gv :: [in] Ocean vertical grid structure.
us :: [in] A dimensional unit scaling type
param_file :: [in] Parameter file parser structure.
dbcomms_cs :: [in] Database communications control structure
diag :: [inout] Diagnostics structure.
cs :: [inout] MEKE control structure.
meke :: [inout] MEKE fields
restart_cs :: [in] MOM restart control structure
meke_in_dynamics :: [out] If true, MEKE is stepped forward in dynamics otherwise in tracer dynamics
- Call to:
eke_dbclient
eke_file
eke_prog
mom_string_functions::lowercase
ml_meke_init
mom_error_handler::mom_error
mom_error_handler::mom_mesg
- Called from:
-
subroutine
mom_meke/
ml_meke_init
(diag, G, US, Time, param_file, dbcomms_CS, CS)¶ Initializer for the variant of MEKE that uses ML to predict eddy kinetic energy.
- Parameters:
diag :: [inout] Diagnostics structure.
g :: [inout] The ocean’s grid structure.
us :: [in] A dimensional unit scaling type
time :: [in] The current model time.
param_file :: [in] Parameter file parser structure.
dbcomms_cs :: [in] Control structure for database communication
cs :: [inout] Control structure for this module
- Call to:
- Called from:
-
subroutine
mom_meke/
ml_meke_calculate_features
(G, GV, US, CS, Rd_dx_h, u, v, tv, h, dt, features_array)¶ Calculate the various features used for the machine learning prediction.
- Parameters:
g :: [inout] Ocean grid
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
cs :: [in] Control structure for MEKE
rd_dx_h :: [in] Rossby radius of deformation over the grid length scale [nondim]
u :: [in] Zonal velocity [L T-1 ~> m s-1]
v :: [in] Meridional velocity [L T-1 ~> m s-1]
tv :: [in] Type containing thermodynamic variables
h :: [in] Layer thickness [H ~> m or kg m-2].
dt :: [in] Model(baroclinic) time-step [T ~> s].
features_array :: [out] The array of features needed for machine learning inference, with different units for the various subarrays [various]
- Call to:
mom_isopycnal_slopes::calc_isoneutral_slopes
mke_idx
rd_dx_z_idx
rv_idx
slope_z_idx
vertical_average_interface
- Called from:
-
subroutine
mom_meke/
predict_meke
(G, CS, npts, Time, features_array, MEKE)¶ Use the machine learning interface to predict EKE.
- Parameters:
g :: [inout] Ocean grid
cs :: [in] Control structure for MEKE
npts :: [in] Number of T-grid cells on the local domain
time :: [in] The current model time
features_array :: [in] The array of features needed for machine learning inference
meke :: [out] Eddy kinetic energy [L2 T-2 ~> m2 s-2]
- Call to:
- Called from:
-
function
mom_meke/
vertical_average_interface
(h, w, h_min) [real]¶ Compute average of interface quantities weighted by the thickness of the surrounding layers.
- Parameters:
h :: [in] Layer Thicknesses [H ~> m or kg m-2]
w :: [in] Quantity to average [arbitrary]
h_min :: [in] The vanishingly small layer thickness [H ~> m or kg m-2]
- Called from:
-
subroutine
mom_meke/
meke_alloc_register_restart
(HI, US, param_file, MEKE, restart_CS)¶ Allocates memory and register restart fields for the MOM_MEKE module.
- Parameters:
hi :: [in] Horizontal index structure
us :: [in] A dimensional unit scaling type
param_file :: [in] Parameter file parser structure.
meke :: [inout] MEKE fields
restart_cs :: [inout] MOM restart control struct
- Call to:
-
subroutine
mom_meke/
meke_end
(MEKE)¶ Deallocates any variables allocated in MEKE_alloc_register_restart.
- Parameters:
meke :: [inout] A structure with MEKE-related fields.
- Called from: