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 ::
integerDiagnostic handles.% id_s2 ::
integerDiagnostic handles.% id_ri_grad ::
integerDiagnostic handles.% id_kv ::
integerDiagnostic handles.% id_kd ::
integerDiagnostic handles.% id_ri_grad_orig ::
integerDiagnostic handles.% use_lmd94 ::
logicalFlags to use the LMD94 scheme.% use_pp81 ::
logicalFlags to use Pacanowski and Philander (JPO 1981)% n_smooth_ri ::
integerNumber of times to smooth Ri using a 1-2-1 filter.% ri_zero ::
realLMD94 critical Richardson number [nondim].% nu_zero ::
realLMD94 maximum interior diffusivity [Z2 T-1 ~> m2 s-1].% kpp_exp ::
realExponent of unitless factor of diffusivities for KPP internal shear mixing scheme [nondim].% n2 ::
real, dimension(:,:,:), allocatableSquared Brunt-Vaisala frequency [T-2 ~> s-2].% s2 ::
real, dimension(:,:,:), allocatableSquared shear frequency [T-2 ~> s-2].% ri_grad ::
real, dimension(:,:,:), allocatableGradient Richardson number [nondim].% ri_grad_orig ::
real, dimension(:,:,:), allocatableGradient Richardson number after smoothing [nondim].% mix_scheme ::
character(10)Mixing scheme name (string)% diag ::
type(diag_ctrl), pointerPointer 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 ::
h[in] Layer thickness [H ~> m or kg m-2].tv ::
tv[in] Thermodynamics structure.kd ::
kd[out] The vertical diffusivity at each interface (not layer!) [H Z T-1 ~> m2 s-1 or kg m-1 s-1]kv ::
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)
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 ::
param_file[in] Run-time parameter file handlediag ::
diag[inout] Diagnostics control structure.cs :: This module’s control structure.
- Call to:
mom_kappa_shear::kappa_shear_is_usedmdlmom_error_handler::mom_error
- function mom_cvmix_shear/cvmix_shear_is_used(param_file)
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 ::
param_file[in] Run-time parameter files handle.- Call to:
mdl- Called from:
mom_diabatic_driver::diabatic_driver_initmom_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: