mom_cvmix_shear module reference¶
Interface to CVMix interior shear schemes.
Data Types¶
Control structure including parameters for CVMix interior shear schemes. |
Functions/Subroutines¶
Subroutine for calculating (internal) vertical diffusivities/viscosities. |
|
Initialized the CVMix internal shear mixing routine. |
|
Reads the parameters “USE_LMD94” and “USE_PP81” and returns true if either is true. |
|
Clear pointers and deallocate memory. |
Detailed Description¶
Interface to CVMix interior shear schemes.
Type Documentation¶
-
type
mom_cvmix_shear/
cvmix_shear_cs
¶ Control structure including parameters for CVMix interior shear schemes.
- Type fields:
%
id_n2
[integer] :: Diagnostic handles.%
id_s2
[integer] :: Diagnostic handles.%
id_ri_grad
[integer] :: Diagnostic handles.%
id_kv
[integer] :: Diagnostic handles.%
id_kd
[integer] :: Diagnostic handles.%
id_ri_grad_orig
[integer] :: Diagnostic handles.%
use_lmd94
[logical] :: Flags to use the LMD94 scheme.%
use_pp81
[logical] :: Flags to use Pacanowski and Philander (JPO 1981)%
n_smooth_ri
[integer] :: Number of times to smooth Ri using a 1-2-1 filter.%
ri_zero
[real] :: LMD94 critical Richardson number [nondim].%
nu_zero
[real] :: LMD94 maximum interior diffusivity [Z2 T-1 ~> m2 s-1].%
kpp_exp
[real] :: Exponent of unitless factor of diffusivities for KPP internal shear mixing scheme [nondim].%
n2
[real(:,:,:),allocatable] :: Squared Brunt-Vaisala frequency [T-2 ~> s-2].%
s2
[real(:,:,:),allocatable] :: Squared shear frequency [T-2 ~> s-2].%
ri_grad
[real(:,:,:),allocatable] :: Gradient Richardson number [nondim].%
ri_grad_orig
[real(:,:,:),allocatable] :: Gradient Richardson number after smoothing [nondim].%
mix_scheme
[character (10)] :: Mixing scheme name (string)%
diag
[type( diag_ctrl ),pointer] :: Pointer to the diagnostics control structure.
Function/Subroutine Documentation¶
-
subroutine
mom_cvmix_shear/
calculate_cvmix_shear
(u_H, v_H, h, tv, kd, kv, G, GV, US, CS)¶ Subroutine for calculating (internal) vertical diffusivities/viscosities.
- Parameters:
g :: [in] Grid structure.
gv :: [in] Vertical grid structure.
us :: [in] A dimensional unit scaling type
u_h :: [in] Initial zonal velocity on T points [L T-1 ~> m s-1]
v_h :: [in] Initial meridional velocity on T points [L T-1 ~> m s-1]
h :: [in] Layer thickness [H ~> m or kg m-2].
tv :: [in] Thermodynamics structure.
kd :: [out] The vertical diffusivity at each interface (not layer!) [H Z T-1 ~> m2 s-1 or kg m-1 s-1]
kv :: [out] The vertical viscosity at each interface (not layer!) [H Z T-1 ~> m2 s-1 or Pa s]
cs :: The control structure returned by a previous call to CVMix_shear_init.
-
function
mom_cvmix_shear/
cvmix_shear_init
(Time, G, GV, US, param_file, diag, CS) [logical]¶ Initialized the CVMix internal shear mixing routine.
Todo
Does this note require emphasis?
- Parameters:
time :: [in] The current time.
g :: [in] Grid structure.
gv :: [in] Vertical grid structure.
us :: [in] A dimensional unit scaling type
param_file :: [in] Run-time parameter file handle
diag :: [inout] Diagnostics control structure.
cs :: This module’s control structure.
- Call to:
mom_kappa_shear::kappa_shear_is_used
mdl
mom_error_handler::mom_error
-
function
mom_cvmix_shear/
cvmix_shear_is_used
(param_file) [logical]¶ Reads the parameters “USE_LMD94” and “USE_PP81” and returns true if either is true. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry.
- Parameters:
param_file :: [in] Run-time parameter files handle.
- Call to:
mdl
- Called from:
mom_diabatic_driver::diabatic_driver_init
mom_set_visc::set_visc_register_restarts
-
subroutine
mom_cvmix_shear/
cvmix_shear_end
(CS)¶ Clear pointers and deallocate memory.
- Parameters:
cs :: [inout] Control structure for this module that will be deallocated in this subroutine
- Called from: