MOM6
mom_set_diffusivity::set_diffusivity_cs Type Reference

Detailed Description

This control structure contains parameters for MOM_set_diffusivity.

Definition at line 55 of file MOM_set_diffusivity.F90.

Collaboration diagram for mom_set_diffusivity::set_diffusivity_cs:
[legend]

Public variables and constants

logical debug
 If true, write verbose checksums for debugging.
 
logical bulkmixedlayer
 If true, a refined bulk mixed layer is used with GVnk_rho_varies variable density mixed & buffer layers.
 
real fluxri_max
 The flux Richardson number where the stratification is large enough that N2 > omega2. The full expression for the Flux Richardson number is usually FLUX_RI_MAX*N2/(N2+OMEGA2). The default is 0.2.
 
logical bottomdraglaw
 If true, the bottom stress is calculated with a drag law c_drag*|u|*u.
 
logical bbl_mixing_as_max
 If true, take the maximum of the diffusivity from the BBL mixing and the other diffusivities. Otherwise, diffusivities from the BBL_mixing is added.
 
logical use_lotw_bbl_diffusivity
 If true, use simpler/less precise, BBL diffusivity.
 
logical lotw_bbl_use_omega
 If true, use simpler/less precise, BBL diffusivity.
 
real bbl_effic
 efficiency with which the energy extracted by bottom drag drives BBL diffusion [nondim]
 
real cdrag
 quadratic drag coefficient [nondim]
 
real imax_decay
 inverse of a maximum decay scale for bottom-drag driven turbulence [Z-1 ~> m-1].
 
real kv
 The interior vertical viscosity [Z2 T-1 ~> m2 s-1].
 
real kd
 interior diapycnal diffusivity [Z2 T-1 ~> m2 s-1].
 
real kd_min
 minimum diapycnal diffusivity [Z2 T-1 ~> m2 s-1].
 
real kd_max
 maximum increment for diapycnal diffusivity [Z2 T-1 ~> m2 s-1]. Set to a negative value to have no limit.
 
real kd_add
 uniform diffusivity added everywhere without filtering or scaling [Z2 T-1 ~> m2 s-1].
 
real kd_smooth
 Vertical diffusivity used to interpolate more sensible values of T & S into thin layers [Z2 T-1 ~> m2 s-1].
 
type(diag_ctrl), pointer diag => NULL()
 structure to regulate diagnostic output timing
 
logical limit_dissipation
 If enabled, dissipation is limited to be larger than the following:
 
real dissip_min
 Minimum dissipation [kg Z2 m-3 T-3 ~> W m-3].
 
real dissip_n0
 Coefficient a in minimum dissipation = a+b*N [kg Z2 m-3 T-3 ~> W m-3].
 
real dissip_n1
 Coefficient b in minimum dissipation = a+b*N [kg Z2 m-3 T-2 ~> J m-3].
 
real dissip_n2
 Coefficient c in minimum dissipation = c*N2 [kg Z2 m-3 T-1 ~> J s m-3].
 
real dissip_kd_min
 Minimum Kd [Z2 T-1 ~> m2 s-1], with dissipation Rho0*Kd_min*N^2.
 
real tke_itide_max
 maximum internal tide conversion [W m-2] available to mix above the BBL
 
real omega
 Earth's rotation frequency [T-1 ~> s-1].
 
logical ml_radiation
 allow a fraction of TKE available from wind work to penetrate below mixed layer base with a vertical decay scale determined by the minimum of (1) The depth of the mixed layer, or (2) An Ekman length scale. Energy available to drive mixing below the mixed layer is given by E = ML_RAD_COEFF*MSTAR*USTAR**3. Optionally, if ML_rad_TKE_decay is true, this is further reduced by a factor of exp(-h_ML*Idecay_len_TkE), where Idecay_len_TKE is calculated the same way as in the mixed layer code. The diapycnal diffusivity is KD(k) = E/(N2(k)+OMEGA2), where N2 is the squared buoyancy frequency [s-2] and OMEGA2 is the rotation rate of the earth squared.
 
real ml_rad_kd_max
 Maximum diapycnal diffusivity due to turbulence radiated from the base of the mixed layer [Z2 T-1 ~> m2 s-1].
 
real ml_rad_efold_coeff
 non-dim coefficient to scale penetration depth
 
real ml_rad_coeff
 coefficient, which scales MSTAR*USTAR^3 to obtain energy available for mixing below mixed layer base [nondim]
 
logical ml_rad_bug
 If true use code with a bug that reduces the energy available in the transition layer by a factor of the inverse of the energy deposition lenthscale (in m).
 
logical ml_rad_tke_decay
 If true, apply same exponential decay to ML_rad as applied to the other surface sources of TKE in the mixed layer code.
 
real ustar_min
 A minimum value of ustar to avoid numerical problems [Z T-1 ~> m s-1]. If the value is small enough, this parameter should not affect the solution.
 
real tke_decay
 ratio of natural Ekman depth to TKE decay scale [nondim]
 
real mstar
 ratio of friction velocity cubed to TKE input to the mixed layer [nondim]
 
logical ml_use_omega
 If true, use absolute rotation rate instead of the vertical component of rotation when setting the decay scale for mixed layer turbulence.
 
real ml_omega_frac
 When setting the decay scale for turbulence, use this fraction of the absolute rotation rate blended with the local value of f, as f^2 ~= (1-of)*f^2 + of*4*omega^2.
 
logical user_change_diff
 If true, call user-defined code to change diffusivity.
 
logical usekappashear
 If true, use the kappa_shear module to find the shear-driven diapycnal diffusivity.
 
logical vertex_shear
 If true, do the calculations of the shear-driven mixing at the cell vertices (i.e., the vorticity points).
 
logical use_cvmix_shear
 If true, use one of the CVMix modules to find shear-driven diapycnal diffusivity.
 
logical double_diffusion
 If true, enable double-diffusive mixing using an old method.
 
logical use_cvmix_ddiff
 If true, enable double-diffusive mixing via CVMix.
 
logical simple_tke_to_kd
 If true, uses a simple estimate of Kd/TKE that does not rely on a layer-formulation.
 
real max_rrho_salt_fingers
 max density ratio for salt fingering
 
real max_salt_diff_salt_fingers
 max salt diffusivity for salt fingers [Z2 T-1 ~> m2 s-1]
 
real kv_molecular
 molecular visc for double diff convect [Z2 T-1 ~> m2 s-1]
 
logical answers_2018
 If true, use the order of arithmetic and expressions that recover the answers from the end of 2018. Otherwise, use updated and more robust forms of the same expressions.
 
character(len=200) inputdir
 The directory in which input files are found.
 
type(user_change_diff_cs), pointer user_change_diff_csp => NULL()
 Control structure for a child module.
 
type(kappa_shear_cs), pointer kappashear_csp => NULL()
 Control structure for a child module.
 
type(cvmix_shear_cs), pointer cvmix_shear_csp => NULL()
 Control structure for a child module.
 
type(cvmix_ddiff_cs), pointer cvmix_ddiff_csp => NULL()
 Control structure for a child module.
 
type(bkgnd_mixing_cs), pointer bkgnd_mixing_csp => NULL()
 Control structure for a child module.
 
type(int_tide_cs), pointer int_tide_csp => NULL()
 Control structure for a child module.
 
type(tidal_mixing_cs), pointer tm_csp => NULL()
 Control structure for a child module.
 
integer id_maxtke = -1
 Diagnostic IDs.
 
integer id_tke_to_kd = -1
 Diagnostic IDs.
 
integer id_kd_user = -1
 Diagnostic IDs.
 
integer id_kd_layer = -1
 Diagnostic IDs.
 
integer id_kd_bbl = -1
 Diagnostic IDs.
 
integer id_n2 = -1
 Diagnostic IDs.
 
integer id_kd_work = -1
 Diagnostic IDs.
 
integer id_kt_extra = -1
 Diagnostic IDs.
 
integer id_ks_extra = -1
 Diagnostic IDs.
 

The documentation for this type was generated from the following file: