MOM6
mom_kpp::kpp_cs Type Reference

Detailed Description

Control structure for containing KPP parameters/data.

Definition at line 48 of file MOM_KPP.F90.

Collaboration diagram for mom_kpp::kpp_cs:
[legend]

Public variables and constants

real ri_crit
 Critical bulk Richardson number (defines OBL depth) More...
 
real vonkarman
 von Karman constant (dimensionless) More...
 
real cs
 Parameter for computing velocity scale function (dimensionless) More...
 
real cs2
 Parameter for multiplying by non-local term. More...
 
logical enhance_diffusion
 If True, add enhanced diffusivity at base of boundary layer. More...
 
character(len=10) interptype
 Type of interpolation in determining OBL depth. More...
 
logical computeekman
 If True, compute Ekman depth limit for OBLdepth. More...
 
logical computemoninobukhov
 If True, compute Monin-Obukhov limit for OBLdepth. More...
 
logical passivemode
 If True, makes KPP passive meaning it does NOT alter the diffusivity. More...
 
real deepobloffset
 If non-zero, is a distance from the bottom that the OBL can not penetrate through (m) More...
 
real minobldepth
 If non-zero, is a minimum depth for the OBL (m) More...
 
real surf_layer_ext
 Fraction of OBL depth considered in the surface layer (nondim) More...
 
real minvtsqr
 Min for the squared unresolved velocity used in Rib CVMix calculation (m2/s2) More...
 
logical fixedobldepth
 If True, will fix the OBL depth at fixedOBLdepth_value. More...
 
real fixedobldepth_value
 value for the fixed OBL depth when fixedOBLdepth==True. More...
 
logical debug
 If True, calculate checksums and write debugging information. More...
 
character(len=30) matchtechnique
 Method used in CVMix for setting diffusivity and NLT profile functions. More...
 
integer nlt_shape
 MOM6 over-ride of CVMix NLT shape function. More...
 
logical applynonlocaltrans
 If True, apply non-local transport to heat and scalars. More...
 
logical kppzerodiffusivity
 If True, will set diffusivity and viscosity from KPP to zero; for testing purposes. More...
 
logical kppisadditive
 If True, will add KPP diffusivity to initial diffusivity. If False, will replace initial diffusivity wherever KPP diffusivity is non-zero. More...
 
real min_thickness
 A minimum thickness used to avoid division by small numbers in the vicinity of vanished layers. More...
 
logical correctsurflayeravg
 If true, applies a correction to the averaging of surface layer properties. More...
 
real surflayerdepth
 A guess at the depth of the surface layer (which should 0.1 of OBLdepth) (m) More...
 
integer sw_method
 Sets method for using shortwave radiation in surface buoyancy flux. More...
 
type(cvmix_kpp_params_type), pointer kpp_params => NULL()
 CVmix parameters. More...
 
type(diag_ctrl), pointer diag => NULL()
 
integer id_obldepth = -1
 
integer id_bulkri = -1
 
integer id_n = -1
 
integer id_n2 = -1
 
integer id_ws = -1
 
integer id_vt2 = -1
 
integer id_bulkuz2 = -1
 
integer id_bulkdrho = -1
 
integer id_ustar = -1
 
integer id_buoyflux = -1
 
integer id_qminussw = -1
 
integer id_nets = -1
 
integer id_sigma = -1
 
integer id_kv_kpp = -1
 
integer id_kt_kpp = -1
 
integer id_ks_kpp = -1
 
integer id_tsurf = -1
 
integer id_ssurf = -1
 
integer id_usurf = -1
 
integer id_vsurf = -1
 
integer id_kd_in = -1
 
integer id_nltt = -1
 
integer id_nlts = -1
 
integer id_nlt_dsdt = -1
 
integer id_nlt_dtdt = -1
 
integer id_nlt_temp_budget = -1
 
integer id_nlt_saln_budget = -1
 
real, dimension(:,:), allocatable obldepth
 Depth (positive) of OBL (m) More...
 
real, dimension(:,:,:), allocatable drho
 Bulk difference in density (kg/m3) More...
 
real, dimension(:,:,:), allocatable uz2
 Square of bulk difference in resolved velocity (m2/s2) More...
 
real, dimension(:,:,:), allocatable bulkri
 Bulk Richardson number for each layer (dimensionless) More...
 
real, dimension(:,:,:), allocatable sigma
 Sigma coordinate (dimensionless) More...
 
real, dimension(:,:,:), allocatable ws
 Turbulent velocity scale for scalars (m/s) More...
 
real, dimension(:,:,:), allocatable n
 Brunt-Vaisala frequency (1/s) More...
 
real, dimension(:,:,:), allocatable n2
 Squared Brunt-Vaisala frequency (1/s2) More...
 
real, dimension(:,:,:), allocatable vt2
 Unresolved squared turbulence velocity for bulk Ri (m2/s2) More...
 
real, dimension(:,:,:), allocatable kt_kpp
 Temp diffusivity from KPP (m2/s) More...
 
real, dimension(:,:,:), allocatable ks_kpp
 Scalar diffusivity from KPP (m2/s) More...
 
real, dimension(:,:,:), allocatable kv_kpp
 Viscosity due to KPP (m2/s) More...
 
real, dimension(:,:), allocatable tsurf
 Temperature of surface layer (C) More...
 
real, dimension(:,:), allocatable ssurf
 Salinity of surface layer (ppt) More...
 
real, dimension(:,:), allocatable usurf
 i-velocity of surface layer (m/s) More...
 
real, dimension(:,:), allocatable vsurf
 j-velocity of surface layer (m/s) More...
 

Variables and constants

◆ applynonlocaltrans

logical mom_kpp::kpp_cs::applynonlocaltrans

If True, apply non-local transport to heat and scalars.

Definition at line 70 of file MOM_KPP.F90.

70  logical :: applynonlocaltrans !< If True, apply non-local transport to heat and scalars

◆ bulkri

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::bulkri

Bulk Richardson number for each layer (dimensionless)

Definition at line 108 of file MOM_KPP.F90.

108  real, allocatable, dimension(:,:,:) :: bulkri !< Bulk Richardson number for each layer (dimensionless)

◆ computeekman

logical mom_kpp::kpp_cs::computeekman

If True, compute Ekman depth limit for OBLdepth.

Definition at line 58 of file MOM_KPP.F90.

58  logical :: computeekman !< If True, compute Ekman depth limit for OBLdepth

◆ computemoninobukhov

logical mom_kpp::kpp_cs::computemoninobukhov

If True, compute Monin-Obukhov limit for OBLdepth.

Definition at line 59 of file MOM_KPP.F90.

59  logical :: computemoninobukhov !< If True, compute Monin-Obukhov limit for OBLdepth

◆ correctsurflayeravg

logical mom_kpp::kpp_cs::correctsurflayeravg

If true, applies a correction to the averaging of surface layer properties.

Definition at line 76 of file MOM_KPP.F90.

76  logical :: correctsurflayeravg !< If true, applies a correction to the averaging of surface layer properties

◆ cs

real mom_kpp::kpp_cs::cs

Parameter for computing velocity scale function (dimensionless)

Definition at line 53 of file MOM_KPP.F90.

53  real :: cs !< Parameter for computing velocity scale function (dimensionless)

◆ cs2

real mom_kpp::kpp_cs::cs2

Parameter for multiplying by non-local term.

Definition at line 54 of file MOM_KPP.F90.

54  real :: cs2 !< Parameter for multiplying by non-local term

◆ debug

logical mom_kpp::kpp_cs::debug

If True, calculate checksums and write debugging information.

Definition at line 67 of file MOM_KPP.F90.

67  logical :: debug !< If True, calculate checksums and write debugging information

◆ deepobloffset

real mom_kpp::kpp_cs::deepobloffset

If non-zero, is a distance from the bottom that the OBL can not penetrate through (m)

Definition at line 61 of file MOM_KPP.F90.

61  real :: deepobloffset !< If non-zero, is a distance from the bottom that the OBL can not penetrate through (m)

◆ diag

type(diag_ctrl), pointer mom_kpp::kpp_cs::diag => NULL()

Definition at line 85 of file MOM_KPP.F90.

85  type(diag_ctrl), pointer :: diag => null()

◆ drho

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::drho

Bulk difference in density (kg/m3)

Definition at line 106 of file MOM_KPP.F90.

106  real, allocatable, dimension(:,:,:) :: drho !< Bulk difference in density (kg/m3)

◆ enhance_diffusion

logical mom_kpp::kpp_cs::enhance_diffusion

If True, add enhanced diffusivity at base of boundary layer.

Definition at line 56 of file MOM_KPP.F90.

56  logical :: enhance_diffusion !< If True, add enhanced diffusivity at base of boundary layer.

◆ fixedobldepth

logical mom_kpp::kpp_cs::fixedobldepth

If True, will fix the OBL depth at fixedOBLdepth_value.

Definition at line 65 of file MOM_KPP.F90.

65  logical :: fixedobldepth !< If True, will fix the OBL depth at fixedOBLdepth_value

◆ fixedobldepth_value

real mom_kpp::kpp_cs::fixedobldepth_value

value for the fixed OBL depth when fixedOBLdepth==True.

Definition at line 66 of file MOM_KPP.F90.

66  real :: fixedobldepth_value !< value for the fixed OBL depth when fixedOBLdepth==True.

◆ id_bulkdrho

integer mom_kpp::kpp_cs::id_bulkdrho = -1

Definition at line 89 of file MOM_KPP.F90.

◆ id_bulkri

integer mom_kpp::kpp_cs::id_bulkri = -1

Definition at line 86 of file MOM_KPP.F90.

◆ id_bulkuz2

integer mom_kpp::kpp_cs::id_bulkuz2 = -1

Definition at line 89 of file MOM_KPP.F90.

89  integer :: id_bulkuz2 = -1, id_bulkdrho = -1

◆ id_buoyflux

integer mom_kpp::kpp_cs::id_buoyflux = -1

Definition at line 90 of file MOM_KPP.F90.

◆ id_kd_in

integer mom_kpp::kpp_cs::id_kd_in = -1

Definition at line 96 of file MOM_KPP.F90.

96  integer :: id_kd_in = -1

◆ id_ks_kpp

integer mom_kpp::kpp_cs::id_ks_kpp = -1

Definition at line 93 of file MOM_KPP.F90.

◆ id_kt_kpp

integer mom_kpp::kpp_cs::id_kt_kpp = -1

Definition at line 93 of file MOM_KPP.F90.

93  integer :: id_kt_kpp = -1, id_ks_kpp = -1

◆ id_kv_kpp

integer mom_kpp::kpp_cs::id_kv_kpp = -1

Definition at line 92 of file MOM_KPP.F90.

◆ id_n

integer mom_kpp::kpp_cs::id_n = -1

Definition at line 87 of file MOM_KPP.F90.

87  integer :: id_n = -1, id_n2 = -1

◆ id_n2

integer mom_kpp::kpp_cs::id_n2 = -1

Definition at line 87 of file MOM_KPP.F90.

◆ id_nets

integer mom_kpp::kpp_cs::id_nets = -1

Definition at line 91 of file MOM_KPP.F90.

◆ id_nlt_dsdt

integer mom_kpp::kpp_cs::id_nlt_dsdt = -1

Definition at line 99 of file MOM_KPP.F90.

99  integer :: id_nlt_dsdt = -1

◆ id_nlt_dtdt

integer mom_kpp::kpp_cs::id_nlt_dtdt = -1

Definition at line 100 of file MOM_KPP.F90.

100  integer :: id_nlt_dtdt = -1

◆ id_nlt_saln_budget

integer mom_kpp::kpp_cs::id_nlt_saln_budget = -1

Definition at line 102 of file MOM_KPP.F90.

102  integer :: id_nlt_saln_budget = -1

◆ id_nlt_temp_budget

integer mom_kpp::kpp_cs::id_nlt_temp_budget = -1

Definition at line 101 of file MOM_KPP.F90.

101  integer :: id_nlt_temp_budget = -1

◆ id_nlts

integer mom_kpp::kpp_cs::id_nlts = -1

Definition at line 98 of file MOM_KPP.F90.

98  integer :: id_nlts = -1

◆ id_nltt

integer mom_kpp::kpp_cs::id_nltt = -1

Definition at line 97 of file MOM_KPP.F90.

97  integer :: id_nltt = -1

◆ id_obldepth

integer mom_kpp::kpp_cs::id_obldepth = -1

Definition at line 86 of file MOM_KPP.F90.

86  integer :: id_obldepth = -1, id_bulkri = -1

◆ id_qminussw

integer mom_kpp::kpp_cs::id_qminussw = -1

Definition at line 91 of file MOM_KPP.F90.

91  integer :: id_qminussw = -1, id_nets = -1

◆ id_sigma

integer mom_kpp::kpp_cs::id_sigma = -1

Definition at line 92 of file MOM_KPP.F90.

92  integer :: id_sigma = -1, id_kv_kpp = -1

◆ id_ssurf

integer mom_kpp::kpp_cs::id_ssurf = -1

Definition at line 94 of file MOM_KPP.F90.

◆ id_tsurf

integer mom_kpp::kpp_cs::id_tsurf = -1

Definition at line 94 of file MOM_KPP.F90.

94  integer :: id_tsurf = -1, id_ssurf = -1

◆ id_ustar

integer mom_kpp::kpp_cs::id_ustar = -1

Definition at line 90 of file MOM_KPP.F90.

90  integer :: id_ustar = -1, id_buoyflux = -1

◆ id_usurf

integer mom_kpp::kpp_cs::id_usurf = -1

Definition at line 95 of file MOM_KPP.F90.

95  integer :: id_usurf = -1, id_vsurf = -1

◆ id_vsurf

integer mom_kpp::kpp_cs::id_vsurf = -1

Definition at line 95 of file MOM_KPP.F90.

◆ id_vt2

integer mom_kpp::kpp_cs::id_vt2 = -1

Definition at line 88 of file MOM_KPP.F90.

◆ id_ws

integer mom_kpp::kpp_cs::id_ws = -1

Definition at line 88 of file MOM_KPP.F90.

88  integer :: id_ws = -1, id_vt2 = -1

◆ interptype

character(len=10) mom_kpp::kpp_cs::interptype

Type of interpolation in determining OBL depth.

Definition at line 57 of file MOM_KPP.F90.

57  character(len=10) :: interptype !< Type of interpolation in determining OBL depth

◆ kpp_params

type(cvmix_kpp_params_type), pointer mom_kpp::kpp_cs::kpp_params => NULL()

CVmix parameters.

Definition at line 82 of file MOM_KPP.F90.

82  type(cvmix_kpp_params_type), pointer :: kpp_params => null()

◆ kppisadditive

logical mom_kpp::kpp_cs::kppisadditive

If True, will add KPP diffusivity to initial diffusivity. If False, will replace initial diffusivity wherever KPP diffusivity is non-zero.

Definition at line 72 of file MOM_KPP.F90.

72  logical :: kppisadditive !< If True, will add KPP diffusivity to initial diffusivity.

◆ kppzerodiffusivity

logical mom_kpp::kpp_cs::kppzerodiffusivity

If True, will set diffusivity and viscosity from KPP to zero; for testing purposes.

Definition at line 71 of file MOM_KPP.F90.

71  logical :: kppzerodiffusivity !< If True, will set diffusivity and viscosity from KPP to zero; for testing purposes.

◆ ks_kpp

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::ks_kpp

Scalar diffusivity from KPP (m2/s)

Definition at line 115 of file MOM_KPP.F90.

115  real, allocatable, dimension(:,:,:) :: ks_kpp !< Scalar diffusivity from KPP (m2/s)

◆ kt_kpp

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::kt_kpp

Temp diffusivity from KPP (m2/s)

Definition at line 114 of file MOM_KPP.F90.

114  real, allocatable, dimension(:,:,:) :: kt_kpp !< Temp diffusivity from KPP (m2/s)

◆ kv_kpp

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::kv_kpp

Viscosity due to KPP (m2/s)

Definition at line 116 of file MOM_KPP.F90.

116  real, allocatable, dimension(:,:,:) :: kv_kpp !< Viscosity due to KPP (m2/s)

◆ matchtechnique

character(len=30) mom_kpp::kpp_cs::matchtechnique

Method used in CVMix for setting diffusivity and NLT profile functions.

Definition at line 68 of file MOM_KPP.F90.

68  character(len=30) :: matchtechnique !< Method used in CVMix for setting diffusivity and NLT profile functions

◆ min_thickness

real mom_kpp::kpp_cs::min_thickness

A minimum thickness used to avoid division by small numbers in the vicinity of vanished layers.

Definition at line 74 of file MOM_KPP.F90.

74  real :: min_thickness !< A minimum thickness used to avoid division by small numbers in the vicinity of vanished layers.

◆ minobldepth

real mom_kpp::kpp_cs::minobldepth

If non-zero, is a minimum depth for the OBL (m)

Definition at line 62 of file MOM_KPP.F90.

62  real :: minobldepth !< If non-zero, is a minimum depth for the OBL (m)

◆ minvtsqr

real mom_kpp::kpp_cs::minvtsqr

Min for the squared unresolved velocity used in Rib CVMix calculation (m2/s2)

Definition at line 64 of file MOM_KPP.F90.

64  real :: minvtsqr !< Min for the squared unresolved velocity used in Rib CVMix calculation (m2/s2)

◆ n

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::n

Brunt-Vaisala frequency (1/s)

Definition at line 111 of file MOM_KPP.F90.

111  real, allocatable, dimension(:,:,:) :: n !< Brunt-Vaisala frequency (1/s)

◆ n2

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::n2

Squared Brunt-Vaisala frequency (1/s2)

Definition at line 112 of file MOM_KPP.F90.

112  real, allocatable, dimension(:,:,:) :: n2 !< Squared Brunt-Vaisala frequency (1/s2)

◆ nlt_shape

integer mom_kpp::kpp_cs::nlt_shape

MOM6 over-ride of CVMix NLT shape function.

Definition at line 69 of file MOM_KPP.F90.

69  integer :: nlt_shape !< MOM6 over-ride of CVMix NLT shape function

◆ obldepth

real, dimension(:,:), allocatable mom_kpp::kpp_cs::obldepth

Depth (positive) of OBL (m)

Definition at line 105 of file MOM_KPP.F90.

105  real, allocatable, dimension(:,:) :: obldepth !< Depth (positive) of OBL (m)

◆ passivemode

logical mom_kpp::kpp_cs::passivemode

If True, makes KPP passive meaning it does NOT alter the diffusivity.

Definition at line 60 of file MOM_KPP.F90.

60  logical :: passivemode !< If True, makes KPP passive meaning it does NOT alter the diffusivity

◆ ri_crit

real mom_kpp::kpp_cs::ri_crit

Critical bulk Richardson number (defines OBL depth)

Definition at line 51 of file MOM_KPP.F90.

51  real :: ri_crit !< Critical bulk Richardson number (defines OBL depth)

◆ sigma

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::sigma

Sigma coordinate (dimensionless)

Definition at line 109 of file MOM_KPP.F90.

109  real, allocatable, dimension(:,:,:) :: sigma !< Sigma coordinate (dimensionless)

◆ ssurf

real, dimension(:,:), allocatable mom_kpp::kpp_cs::ssurf

Salinity of surface layer (ppt)

Definition at line 118 of file MOM_KPP.F90.

118  real, allocatable, dimension(:,:) :: ssurf !< Salinity of surface layer (ppt)

◆ surf_layer_ext

real mom_kpp::kpp_cs::surf_layer_ext

Fraction of OBL depth considered in the surface layer (nondim)

Definition at line 63 of file MOM_KPP.F90.

63  real :: surf_layer_ext !< Fraction of OBL depth considered in the surface layer (nondim)

◆ surflayerdepth

real mom_kpp::kpp_cs::surflayerdepth

A guess at the depth of the surface layer (which should 0.1 of OBLdepth) (m)

Definition at line 77 of file MOM_KPP.F90.

77  real :: surflayerdepth !< A guess at the depth of the surface layer (which should 0.1 of OBLdepth) (m)

◆ sw_method

integer mom_kpp::kpp_cs::sw_method

Sets method for using shortwave radiation in surface buoyancy flux.

Definition at line 79 of file MOM_KPP.F90.

79  integer :: sw_method !<Sets method for using shortwave radiation in surface buoyancy flux

◆ tsurf

real, dimension(:,:), allocatable mom_kpp::kpp_cs::tsurf

Temperature of surface layer (C)

Definition at line 117 of file MOM_KPP.F90.

117  real, allocatable, dimension(:,:) :: tsurf !< Temperature of surface layer (C)

◆ usurf

real, dimension(:,:), allocatable mom_kpp::kpp_cs::usurf

i-velocity of surface layer (m/s)

Definition at line 119 of file MOM_KPP.F90.

119  real, allocatable, dimension(:,:) :: usurf !< i-velocity of surface layer (m/s)

◆ uz2

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::uz2

Square of bulk difference in resolved velocity (m2/s2)

Definition at line 107 of file MOM_KPP.F90.

107  real, allocatable, dimension(:,:,:) :: uz2 !< Square of bulk difference in resolved velocity (m2/s2)

◆ vonkarman

real mom_kpp::kpp_cs::vonkarman

von Karman constant (dimensionless)

Definition at line 52 of file MOM_KPP.F90.

52  real :: vonkarman !< von Karman constant (dimensionless)

◆ vsurf

real, dimension(:,:), allocatable mom_kpp::kpp_cs::vsurf

j-velocity of surface layer (m/s)

Definition at line 120 of file MOM_KPP.F90.

120  real, allocatable, dimension(:,:) :: vsurf !< j-velocity of surface layer (m/s)

◆ vt2

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::vt2

Unresolved squared turbulence velocity for bulk Ri (m2/s2)

Definition at line 113 of file MOM_KPP.F90.

113  real, allocatable, dimension(:,:,:) :: vt2 !< Unresolved squared turbulence velocity for bulk Ri (m2/s2)

◆ ws

real, dimension(:,:,:), allocatable mom_kpp::kpp_cs::ws

Turbulent velocity scale for scalars (m/s)

Definition at line 110 of file MOM_KPP.F90.

110  real, allocatable, dimension(:,:,:) :: ws !< Turbulent velocity scale for scalars (m/s)

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