MOM6
mom_diabatic_driver::diabatic_cs Type Reference

Detailed Description

Control structure for this module.

Definition at line 92 of file MOM_diabatic_driver.F90.

Collaboration diagram for mom_diabatic_driver::diabatic_cs:
[legend]

Public variables and constants

logical use_legacy_diabatic
 If true (default), use the a legacy version of the diabatic algorithm. This is temporary and is needed to avoid change in answers. More...
 
logical bulkmixedlayer
 If true, a refined bulk mixed layer is used with nkml sublayers (and additional buffer layers). More...
 
logical use_energetic_pbl
 If true, use the implicit energetics planetary boundary layer scheme to determine the diffusivity in the surface boundary layer. More...
 
logical use_kpp
 If true, use CVMix/KPP boundary layer scheme to determine the OBLD and the diffusivities within this layer. More...
 
logical use_kappa_shear
 If true, use the kappa_shear module to find the shear-driven diapycnal diffusivity. More...
 
logical use_cvmix_shear
 If true, use the CVMix module to find the shear-driven diapycnal diffusivity. More...
 
logical use_cvmix_ddiff
 If true, use the CVMix double diffusion module. More...
 
logical use_tidal_mixing
 If true, activate tidal mixing diffusivity. More...
 
logical use_cvmix_conv
 If true, use the CVMix module to get enhanced mixing due to convection. More...
 
logical use_sponge
 If true, sponges may be applied anywhere in the domain. The exact location and properties of those sponges are set by calls to initialize_sponge and set_up_sponge_field. More...
 
logical use_geothermal
 If true, apply geothermal heating. More...
 
logical use_int_tides
 If true, use the code that advances a separate set of equations for the internal tide energy density. More...
 
logical epbl_is_additive
 If true, the diffusivity from ePBL is added to all other diffusivities. Otherwise, the larger of kappa- shear and ePBL diffusivities are used. More...
 
integer nmode = 1
 Number of baroclinic modes to consider. More...
 
real uniform_test_cg
 Uniform group velocity of internal tide for testing internal tides [L T-1 ~> m s-1]. More...
 
logical usealealgorithm
 If true, use the ALE algorithm rather than layered isopycnal/stacked shallow water mode. This logical passed by argument to diabatic_driver_init. More...
 
logical aggregate_fw_forcing
 Determines whether net incoming/outgoing surface FW fluxes are applied separately or combined before being applied. More...
 
real ml_mix_first
 The nondimensional fraction of the mixed layer algorithm that is applied before diffusive mixing. The default is 0, while 0.5 gives Strang splitting and 1 is a sensible value too. Note that if there are convective instabilities in the initial state, the first call may do much more than the second. More...
 
integer nkbl
 The number of buffer layers (if bulk_mixed_layer) More...
 
logical massless_match_targets
 If true (the default), keep the T & S consistent with the target values. More...
 
logical mix_boundary_tracers
 If true, mix the passive tracers in massless layers at the bottom into the interior as though a diffusivity of Kd_min_tr (see below) were operating. More...
 
real kd_bbl_tr
 A bottom boundary layer tracer diffusivity that will allow for explicitly specified bottom fluxes [Z2 T-1 ~> m2 s-1]. The entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) over the same distance. More...
 
real kd_min_tr
 A minimal diffusivity that should always be applied to tracers, especially in massless layers near the bottom [Z2 T-1 ~> m2 s-1]. More...
 
real minimum_forcing_depth
 The smallest depth over which heat and freshwater fluxes are applied [H ~> m or kg m-2]. More...
 
real evap_cfl_limit = 0.8
 The largest fraction of a layer that can be evaporated in one time-step [nondim]. More...
 
integer halo_ts_diff = 0
 The temperature, salinity and thickness halo size that must be valid for the diffusivity calculations. More...
 
logical usekpp = .false.
 use CVMix/KPP diffusivities and non-local transport More...
 
logical salt_reject_below_ml
 If true, add salt below mixed layer (layer mode only) More...
 
logical kppispassive
 If true, KPP is in passive mode, not changing answers. More...
 
logical debug
 If true, write verbose checksums for debugging purposes. More...
 
logical debugconservation
 If true, monitor conservation and extrema. More...
 
logical tracer_tridiag
 If true, use tracer_vertdiff instead of tridiagTS for vertical diffusion of T and S. More...
 
logical debug_energy_req
 If true, test the mixing energy requirement code. More...
 
type(diag_ctrl), pointer diag
 structure used to regulate timing of diagnostic output More...
 
real mlddensitydifference
 Density difference used to determine MLD_user [R ~> kg m-3]. More...
 
real dz_subml_n2
 The distance over which to calculate a diagnostic of the average stratification at the base of the mixed layer [Z ~> m]. More...
 
integer id_cg1 = -1
 Diagnostic IDs. More...
 
integer, dimension(:), allocatable id_cn
 Diagnostic IDs. More...
 
integer id_wd = -1
 Diagnostic IDs. More...
 
integer id_ea = -1
 Diagnostic IDs. More...
 
integer id_eb = -1
 Diagnostic IDs. More...
 
integer id_dudt_dia = -1
 Diagnostic IDs. More...
 
integer id_dvdt_dia = -1
 Diagnostic IDs. More...
 
integer id_ea_s = -1
 Diagnostic IDs. More...
 
integer id_eb_s = -1
 Diagnostic IDs. More...
 
integer id_ea_t = -1
 Diagnostic IDs. More...
 
integer id_eb_t = -1
 Diagnostic IDs. More...
 
integer id_kd_heat = -1
 Diagnostic IDs. More...
 
integer id_kd_salt = -1
 Diagnostic IDs. More...
 
integer id_kd_interface = -1
 Diagnostic IDs. More...
 
integer id_kd_epbl = -1
 Diagnostic IDs. More...
 
integer id_tdif = -1
 Diagnostic IDs. More...
 
integer id_tadv = -1
 Diagnostic IDs. More...
 
integer id_sdif = -1
 Diagnostic IDs. More...
 
integer id_sadv = -1
 Diagnostic IDs. More...
 
integer id_mld_003 = -1
 Diagnostic IDs. More...
 
integer id_mld_0125 = -1
 Diagnostic IDs. More...
 
integer id_mld_user = -1
 Diagnostic IDs. More...
 
integer id_mlotstsq = -1
 Diagnostic IDs. More...
 
integer id_submln2 = -1
 Diagnostic IDs. More...
 
integer id_brine_lay = -1
 Diagnostic IDs. More...
 
integer id_u_predia = -1
 Diagnostic IDs. More...
 
integer id_v_predia = -1
 Diagnostic IDs. More...
 
integer id_h_predia = -1
 Diagnostic IDs. More...
 
integer id_t_predia = -1
 Diagnostic IDs. More...
 
integer id_s_predia = -1
 Diagnostic IDs. More...
 
integer id_e_predia = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_temp_tend = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_saln_tend = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_heat_tend = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_salt_tend = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_heat_tend_2d = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_salt_tend_2d = -1
 Diagnostic IDs. More...
 
integer id_diabatic_diff_h = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_h = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_h_tendency = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_temp_tend = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_saln_tend = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_heat_tend = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_salt_tend = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_heat_tend_2d = -1
 Diagnostic IDs. More...
 
integer id_boundary_forcing_salt_tend_2d = -1
 Diagnostic IDs. More...
 
integer id_frazil_h = -1
 Diagnostic IDs. More...
 
integer id_frazil_temp_tend = -1
 Diagnostic IDs. More...
 
integer id_frazil_heat_tend = -1
 Diagnostic IDs. More...
 
integer id_frazil_heat_tend_2d = -1
 Diagnostic IDs. More...
 
logical diabatic_diff_tendency_diag = .false.
 If true calculate diffusive tendency diagnostics. More...
 
logical boundary_forcing_tendency_diag = .false.
 If true calculate frazil diagnostics. More...
 
logical frazil_tendency_diag = .false.
 If true calculate frazil tendency diagnostics. More...
 
real, dimension(:,:,:), allocatable frazil_heat_diag
 diagnose 3d heat tendency from frazil More...
 
real, dimension(:,:,:), allocatable frazil_temp_diag
 diagnose 3d temp tendency from frazil More...
 
type(diabatic_aux_cs), pointer diabatic_aux_csp => NULL()
 Control structure for a child module. More...
 
type(entrain_diffusive_cs), pointer entrain_diffusive_csp => NULL()
 Control structure for a child module. More...
 
type(bulkmixedlayer_cs), pointer bulkmixedlayer_csp => NULL()
 Control structure for a child module. More...
 
type(energetic_pbl_cs), pointer energetic_pbl_csp => NULL()
 Control structure for a child module. More...
 
type(regularize_layers_cs), pointer regularize_layers_csp => NULL()
 Control structure for a child module. More...
 
type(geothermal_cs), pointer geothermal_csp => NULL()
 Control structure for a child module. More...
 
type(int_tide_cs), pointer int_tide_csp => NULL()
 Control structure for a child module. More...
 
type(int_tide_input_cs), pointer int_tide_input_csp => NULL()
 Control structure for a child module. More...
 
type(int_tide_input_type), pointer int_tide_input => NULL()
 Control structure for a child module. More...
 
type(opacity_cs), pointer opacity_csp => NULL()
 Control structure for a child module. More...
 
type(set_diffusivity_cs), pointer set_diff_csp => NULL()
 Control structure for a child module. More...
 
type(sponge_cs), pointer sponge_csp => NULL()
 Control structure for a child module. More...
 
type(ale_sponge_cs), pointer ale_sponge_csp => NULL()
 Control structure for a child module. More...
 
type(tracer_flow_control_cs), pointer tracer_flow_csp => NULL()
 Control structure for a child module. More...
 
type(optics_type), pointer optics => NULL()
 Control structure for a child module. More...
 
type(kpp_cs), pointer kpp_csp => NULL()
 Control structure for a child module. More...
 
type(tidal_mixing_cs), pointer tidal_mixing_csp => NULL()
 Control structure for a child module. More...
 
type(cvmix_conv_cs), pointer cvmix_conv_csp => NULL()
 Control structure for a child module. More...
 
type(diapyc_energy_req_cs), pointer diapyc_en_rec_csp => NULL()
 Control structure for a child module. More...
 
type(group_pass_type) pass_hold_eb_ea
 For group halo pass. More...
 
type(group_pass_type) pass_kv
 For group halo pass. More...
 
type(diag_grid_storage) diag_grids_prev
 Stores diagnostic grids at some previous point in the algorithm. More...
 
real, dimension(:,:,:), allocatable kpp_nltheat
 KPP non-local transport for heat [m s-1]. More...
 
real, dimension(:,:,:), allocatable kpp_nltscalar
 KPP non-local transport for scalars [m s-1]. More...
 
real, dimension(:,:,:), allocatable kpp_buoy_flux
 KPP forcing buoyancy flux [L2 T-3 ~> m2 s-3]. More...
 
real, dimension(:,:), allocatable kpp_temp_flux
 KPP effective temperature flux [degC m s-1]. More...
 
real, dimension(:,:), allocatable kpp_salt_flux
 KPP effective salt flux [ppt m s-1]. More...
 
type(time_type), pointer time
 Pointer to model time (needed for sponges) More...
 

Variables and constants

◆ aggregate_fw_forcing

logical mom_diabatic_driver::diabatic_cs::aggregate_fw_forcing

Determines whether net incoming/outgoing surface FW fluxes are applied separately or combined before being applied.

Definition at line 128 of file MOM_diabatic_driver.F90.

128  logical :: aggregate_FW_forcing !< Determines whether net incoming/outgoing surface

◆ ale_sponge_csp

type(ale_sponge_cs), pointer mom_diabatic_driver::diabatic_cs::ale_sponge_csp => NULL()

Control structure for a child module.

Definition at line 226 of file MOM_diabatic_driver.F90.

226  type(ALE_sponge_CS), pointer :: ALE_sponge_CSp => null() !< Control structure for a child module

◆ boundary_forcing_tendency_diag

logical mom_diabatic_driver::diabatic_cs::boundary_forcing_tendency_diag = .false.

If true calculate frazil diagnostics.

Definition at line 209 of file MOM_diabatic_driver.F90.

209  logical :: boundary_forcing_tendency_diag = .false. !< If true calculate frazil diagnostics

◆ bulkmixedlayer

logical mom_diabatic_driver::diabatic_cs::bulkmixedlayer

If true, a refined bulk mixed layer is used with nkml sublayers (and additional buffer layers).

Definition at line 97 of file MOM_diabatic_driver.F90.

97  logical :: bulkmixedlayer !< If true, a refined bulk mixed layer is used with

◆ bulkmixedlayer_csp

type(bulkmixedlayer_cs), pointer mom_diabatic_driver::diabatic_cs::bulkmixedlayer_csp => NULL()

Control structure for a child module.

Definition at line 216 of file MOM_diabatic_driver.F90.

216  type(bulkmixedlayer_CS), pointer :: bulkmixedlayer_CSp => null() !< Control structure for a child module

◆ cvmix_conv_csp

type(cvmix_conv_cs), pointer mom_diabatic_driver::diabatic_cs::cvmix_conv_csp => NULL()

Control structure for a child module.

Definition at line 231 of file MOM_diabatic_driver.F90.

231  type(CVMix_conv_cs), pointer :: CVMix_conv_csp => null() !< Control structure for a child module

◆ debug

logical mom_diabatic_driver::diabatic_cs::debug

If true, write verbose checksums for debugging purposes.

Definition at line 160 of file MOM_diabatic_driver.F90.

160  logical :: debug !< If true, write verbose checksums for debugging purposes.

◆ debug_energy_req

logical mom_diabatic_driver::diabatic_cs::debug_energy_req

If true, test the mixing energy requirement code.

Definition at line 164 of file MOM_diabatic_driver.F90.

164  logical :: debug_energy_req !< If true, test the mixing energy requirement code.

◆ debugconservation

logical mom_diabatic_driver::diabatic_cs::debugconservation

If true, monitor conservation and extrema.

Definition at line 161 of file MOM_diabatic_driver.F90.

161  logical :: debugConservation !< If true, monitor conservation and extrema.

◆ diabatic_aux_csp

type(diabatic_aux_cs), pointer mom_diabatic_driver::diabatic_cs::diabatic_aux_csp => NULL()

Control structure for a child module.

Definition at line 214 of file MOM_diabatic_driver.F90.

214  type(diabatic_aux_CS), pointer :: diabatic_aux_CSp => null() !< Control structure for a child module

◆ diabatic_diff_tendency_diag

logical mom_diabatic_driver::diabatic_cs::diabatic_diff_tendency_diag = .false.

If true calculate diffusive tendency diagnostics.

Definition at line 208 of file MOM_diabatic_driver.F90.

208  logical :: diabatic_diff_tendency_diag = .false. !< If true calculate diffusive tendency diagnostics

◆ diag

type(diag_ctrl), pointer mom_diabatic_driver::diabatic_cs::diag

structure used to regulate timing of diagnostic output

Definition at line 165 of file MOM_diabatic_driver.F90.

165  type(diag_ctrl), pointer :: diag !< structure used to regulate timing of diagnostic output

◆ diag_grids_prev

type(diag_grid_storage) mom_diabatic_driver::diabatic_cs::diag_grids_prev

Stores diagnostic grids at some previous point in the algorithm.

Definition at line 236 of file MOM_diabatic_driver.F90.

236  type(diag_grid_storage) :: diag_grids_prev!< Stores diagnostic grids at some previous point in the algorithm

◆ diapyc_en_rec_csp

type(diapyc_energy_req_cs), pointer mom_diabatic_driver::diabatic_cs::diapyc_en_rec_csp => NULL()

Control structure for a child module.

Definition at line 232 of file MOM_diabatic_driver.F90.

232  type(diapyc_energy_req_CS), pointer :: diapyc_en_rec_CSp => null() !< Control structure for a child module

◆ dz_subml_n2

real mom_diabatic_driver::diabatic_cs::dz_subml_n2

The distance over which to calculate a diagnostic of the average stratification at the base of the mixed layer [Z ~> m].

Definition at line 167 of file MOM_diabatic_driver.F90.

167  real :: dz_subML_N2 !< The distance over which to calculate a diagnostic of the

◆ energetic_pbl_csp

type(energetic_pbl_cs), pointer mom_diabatic_driver::diabatic_cs::energetic_pbl_csp => NULL()

Control structure for a child module.

Definition at line 217 of file MOM_diabatic_driver.F90.

217  type(energetic_PBL_CS), pointer :: energetic_PBL_CSp => null() !< Control structure for a child module

◆ entrain_diffusive_csp

type(entrain_diffusive_cs), pointer mom_diabatic_driver::diabatic_cs::entrain_diffusive_csp => NULL()

Control structure for a child module.

Definition at line 215 of file MOM_diabatic_driver.F90.

215  type(entrain_diffusive_CS), pointer :: entrain_diffusive_CSp => null() !< Control structure for a child module

◆ epbl_is_additive

logical mom_diabatic_driver::diabatic_cs::epbl_is_additive

If true, the diffusivity from ePBL is added to all other diffusivities. Otherwise, the larger of kappa- shear and ePBL diffusivities are used.

Definition at line 119 of file MOM_diabatic_driver.F90.

119  logical :: ePBL_is_additive !< If true, the diffusivity from ePBL is added to all

◆ evap_cfl_limit

real mom_diabatic_driver::diabatic_cs::evap_cfl_limit = 0.8

The largest fraction of a layer that can be evaporated in one time-step [nondim].

Definition at line 153 of file MOM_diabatic_driver.F90.

153  real :: evap_CFL_limit = 0.8 !< The largest fraction of a layer that can be

◆ frazil_heat_diag

real, dimension(:,:,:), allocatable mom_diabatic_driver::diabatic_cs::frazil_heat_diag

diagnose 3d heat tendency from frazil

Definition at line 211 of file MOM_diabatic_driver.F90.

211  real, allocatable, dimension(:,:,:) :: frazil_heat_diag !< diagnose 3d heat tendency from frazil

◆ frazil_temp_diag

real, dimension(:,:,:), allocatable mom_diabatic_driver::diabatic_cs::frazil_temp_diag

diagnose 3d temp tendency from frazil

Definition at line 212 of file MOM_diabatic_driver.F90.

212  real, allocatable, dimension(:,:,:) :: frazil_temp_diag !< diagnose 3d temp tendency from frazil

◆ frazil_tendency_diag

logical mom_diabatic_driver::diabatic_cs::frazil_tendency_diag = .false.

If true calculate frazil tendency diagnostics.

Definition at line 210 of file MOM_diabatic_driver.F90.

210  logical :: frazil_tendency_diag = .false. !< If true calculate frazil tendency diagnostics

◆ geothermal_csp

type(geothermal_cs), pointer mom_diabatic_driver::diabatic_cs::geothermal_csp => NULL()

Control structure for a child module.

Definition at line 219 of file MOM_diabatic_driver.F90.

219  type(geothermal_CS), pointer :: geothermal_CSp => null() !< Control structure for a child module

◆ halo_ts_diff

integer mom_diabatic_driver::diabatic_cs::halo_ts_diff = 0

The temperature, salinity and thickness halo size that must be valid for the diffusivity calculations.

Definition at line 155 of file MOM_diabatic_driver.F90.

155  integer :: halo_TS_diff = 0 !< The temperature, salinity and thickness halo size that

◆ id_boundary_forcing_h

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_h = -1

Diagnostic IDs.

Definition at line 193 of file MOM_diabatic_driver.F90.

193  integer :: id_boundary_forcing_h = -1

◆ id_boundary_forcing_h_tendency

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_h_tendency = -1

Diagnostic IDs.

Definition at line 194 of file MOM_diabatic_driver.F90.

194  integer :: id_boundary_forcing_h_tendency = -1

◆ id_boundary_forcing_heat_tend

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_heat_tend = -1

Diagnostic IDs.

Definition at line 197 of file MOM_diabatic_driver.F90.

197  integer :: id_boundary_forcing_heat_tend = -1

◆ id_boundary_forcing_heat_tend_2d

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_heat_tend_2d = -1

Diagnostic IDs.

Definition at line 199 of file MOM_diabatic_driver.F90.

199  integer :: id_boundary_forcing_heat_tend_2d = -1

◆ id_boundary_forcing_saln_tend

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_saln_tend = -1

Diagnostic IDs.

Definition at line 196 of file MOM_diabatic_driver.F90.

196  integer :: id_boundary_forcing_saln_tend = -1

◆ id_boundary_forcing_salt_tend

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_salt_tend = -1

Diagnostic IDs.

Definition at line 198 of file MOM_diabatic_driver.F90.

198  integer :: id_boundary_forcing_salt_tend = -1

◆ id_boundary_forcing_salt_tend_2d

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_salt_tend_2d = -1

Diagnostic IDs.

Definition at line 200 of file MOM_diabatic_driver.F90.

200  integer :: id_boundary_forcing_salt_tend_2d = -1

◆ id_boundary_forcing_temp_tend

integer mom_diabatic_driver::diabatic_cs::id_boundary_forcing_temp_tend = -1

Diagnostic IDs.

Definition at line 195 of file MOM_diabatic_driver.F90.

195  integer :: id_boundary_forcing_temp_tend = -1

◆ id_brine_lay

integer mom_diabatic_driver::diabatic_cs::id_brine_lay = -1

Diagnostic IDs.

Definition at line 179 of file MOM_diabatic_driver.F90.

◆ id_cg1

integer mom_diabatic_driver::diabatic_cs::id_cg1 = -1

Diagnostic IDs.

Definition at line 171 of file MOM_diabatic_driver.F90.

171  integer :: id_cg1 = -1 ! diag handle for mode-1 speed (BDM)

◆ id_cn

integer, dimension(:), allocatable mom_diabatic_driver::diabatic_cs::id_cn

Diagnostic IDs.

Definition at line 172 of file MOM_diabatic_driver.F90.

172  integer, allocatable, dimension(:) :: id_cn ! diag handle for all mode speeds (BDM)

◆ id_diabatic_diff_h

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_h = -1

Diagnostic IDs.

Definition at line 191 of file MOM_diabatic_driver.F90.

191  integer :: id_diabatic_diff_h= -1

◆ id_diabatic_diff_heat_tend

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_heat_tend = -1

Diagnostic IDs.

Definition at line 187 of file MOM_diabatic_driver.F90.

187  integer :: id_diabatic_diff_heat_tend = -1

◆ id_diabatic_diff_heat_tend_2d

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_heat_tend_2d = -1

Diagnostic IDs.

Definition at line 189 of file MOM_diabatic_driver.F90.

189  integer :: id_diabatic_diff_heat_tend_2d = -1

◆ id_diabatic_diff_saln_tend

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_saln_tend = -1

Diagnostic IDs.

Definition at line 186 of file MOM_diabatic_driver.F90.

186  integer :: id_diabatic_diff_saln_tend = -1

◆ id_diabatic_diff_salt_tend

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_salt_tend = -1

Diagnostic IDs.

Definition at line 188 of file MOM_diabatic_driver.F90.

188  integer :: id_diabatic_diff_salt_tend = -1

◆ id_diabatic_diff_salt_tend_2d

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_salt_tend_2d = -1

Diagnostic IDs.

Definition at line 190 of file MOM_diabatic_driver.F90.

190  integer :: id_diabatic_diff_salt_tend_2d = -1

◆ id_diabatic_diff_temp_tend

integer mom_diabatic_driver::diabatic_cs::id_diabatic_diff_temp_tend = -1

Diagnostic IDs.

Definition at line 185 of file MOM_diabatic_driver.F90.

185  integer :: id_diabatic_diff_temp_tend = -1

◆ id_dudt_dia

integer mom_diabatic_driver::diabatic_cs::id_dudt_dia = -1

Diagnostic IDs.

Definition at line 174 of file MOM_diabatic_driver.F90.

174  integer :: id_dudt_dia = -1, id_dvdt_dia = -1, id_ea_s = -1, id_eb_s = -1

◆ id_dvdt_dia

integer mom_diabatic_driver::diabatic_cs::id_dvdt_dia = -1

Diagnostic IDs.

Definition at line 174 of file MOM_diabatic_driver.F90.

◆ id_e_predia

integer mom_diabatic_driver::diabatic_cs::id_e_predia = -1

Diagnostic IDs.

Definition at line 183 of file MOM_diabatic_driver.F90.

◆ id_ea

integer mom_diabatic_driver::diabatic_cs::id_ea = -1

Diagnostic IDs.

Definition at line 173 of file MOM_diabatic_driver.F90.

◆ id_ea_s

integer mom_diabatic_driver::diabatic_cs::id_ea_s = -1

Diagnostic IDs.

Definition at line 174 of file MOM_diabatic_driver.F90.

◆ id_ea_t

integer mom_diabatic_driver::diabatic_cs::id_ea_t = -1

Diagnostic IDs.

Definition at line 175 of file MOM_diabatic_driver.F90.

175  integer :: id_ea_t = -1, id_eb_t = -1

◆ id_eb

integer mom_diabatic_driver::diabatic_cs::id_eb = -1

Diagnostic IDs.

Definition at line 173 of file MOM_diabatic_driver.F90.

◆ id_eb_s

integer mom_diabatic_driver::diabatic_cs::id_eb_s = -1

Diagnostic IDs.

Definition at line 174 of file MOM_diabatic_driver.F90.

◆ id_eb_t

integer mom_diabatic_driver::diabatic_cs::id_eb_t = -1

Diagnostic IDs.

Definition at line 175 of file MOM_diabatic_driver.F90.

◆ id_frazil_h

integer mom_diabatic_driver::diabatic_cs::id_frazil_h = -1

Diagnostic IDs.

Definition at line 202 of file MOM_diabatic_driver.F90.

202  integer :: id_frazil_h = -1

◆ id_frazil_heat_tend

integer mom_diabatic_driver::diabatic_cs::id_frazil_heat_tend = -1

Diagnostic IDs.

Definition at line 204 of file MOM_diabatic_driver.F90.

204  integer :: id_frazil_heat_tend = -1

◆ id_frazil_heat_tend_2d

integer mom_diabatic_driver::diabatic_cs::id_frazil_heat_tend_2d = -1

Diagnostic IDs.

Definition at line 205 of file MOM_diabatic_driver.F90.

205  integer :: id_frazil_heat_tend_2d = -1

◆ id_frazil_temp_tend

integer mom_diabatic_driver::diabatic_cs::id_frazil_temp_tend = -1

Diagnostic IDs.

Definition at line 203 of file MOM_diabatic_driver.F90.

203  integer :: id_frazil_temp_tend = -1

◆ id_h_predia

integer mom_diabatic_driver::diabatic_cs::id_h_predia = -1

Diagnostic IDs.

Definition at line 182 of file MOM_diabatic_driver.F90.

◆ id_kd_epbl

integer mom_diabatic_driver::diabatic_cs::id_kd_epbl = -1

Diagnostic IDs.

Definition at line 176 of file MOM_diabatic_driver.F90.

◆ id_kd_heat

integer mom_diabatic_driver::diabatic_cs::id_kd_heat = -1

Diagnostic IDs.

Definition at line 176 of file MOM_diabatic_driver.F90.

176  integer :: id_Kd_heat = -1, id_kd_salt = -1, id_kd_interface = -1, id_kd_epbl = -1

◆ id_kd_interface

integer mom_diabatic_driver::diabatic_cs::id_kd_interface = -1

Diagnostic IDs.

Definition at line 176 of file MOM_diabatic_driver.F90.

◆ id_kd_salt

integer mom_diabatic_driver::diabatic_cs::id_kd_salt = -1

Diagnostic IDs.

Definition at line 176 of file MOM_diabatic_driver.F90.

◆ id_mld_003

integer mom_diabatic_driver::diabatic_cs::id_mld_003 = -1

Diagnostic IDs.

Definition at line 178 of file MOM_diabatic_driver.F90.

178  integer :: id_MLD_003 = -1, id_mld_0125 = -1, id_mld_user = -1, id_mlotstsq = -1

◆ id_mld_0125

integer mom_diabatic_driver::diabatic_cs::id_mld_0125 = -1

Diagnostic IDs.

Definition at line 178 of file MOM_diabatic_driver.F90.

◆ id_mld_user

integer mom_diabatic_driver::diabatic_cs::id_mld_user = -1

Diagnostic IDs.

Definition at line 178 of file MOM_diabatic_driver.F90.

◆ id_mlotstsq

integer mom_diabatic_driver::diabatic_cs::id_mlotstsq = -1

Diagnostic IDs.

Definition at line 178 of file MOM_diabatic_driver.F90.

◆ id_s_predia

integer mom_diabatic_driver::diabatic_cs::id_s_predia = -1

Diagnostic IDs.

Definition at line 183 of file MOM_diabatic_driver.F90.

◆ id_sadv

integer mom_diabatic_driver::diabatic_cs::id_sadv = -1

Diagnostic IDs.

Definition at line 177 of file MOM_diabatic_driver.F90.

◆ id_sdif

integer mom_diabatic_driver::diabatic_cs::id_sdif = -1

Diagnostic IDs.

Definition at line 177 of file MOM_diabatic_driver.F90.

◆ id_submln2

integer mom_diabatic_driver::diabatic_cs::id_submln2 = -1

Diagnostic IDs.

Definition at line 179 of file MOM_diabatic_driver.F90.

179  integer :: id_subMLN2 = -1, id_brine_lay = -1

◆ id_t_predia

integer mom_diabatic_driver::diabatic_cs::id_t_predia = -1

Diagnostic IDs.

Definition at line 183 of file MOM_diabatic_driver.F90.

183  integer :: id_T_predia = -1, id_s_predia = -1, id_e_predia = -1

◆ id_tadv

integer mom_diabatic_driver::diabatic_cs::id_tadv = -1

Diagnostic IDs.

Definition at line 177 of file MOM_diabatic_driver.F90.

◆ id_tdif

integer mom_diabatic_driver::diabatic_cs::id_tdif = -1

Diagnostic IDs.

Definition at line 177 of file MOM_diabatic_driver.F90.

177  integer :: id_Tdif = -1, id_tadv = -1, id_sdif = -1, id_sadv = -1

◆ id_u_predia

integer mom_diabatic_driver::diabatic_cs::id_u_predia = -1

Diagnostic IDs.

Definition at line 182 of file MOM_diabatic_driver.F90.

182  integer :: id_u_predia = -1, id_v_predia = -1, id_h_predia = -1

◆ id_v_predia

integer mom_diabatic_driver::diabatic_cs::id_v_predia = -1

Diagnostic IDs.

Definition at line 182 of file MOM_diabatic_driver.F90.

◆ id_wd

integer mom_diabatic_driver::diabatic_cs::id_wd = -1

Diagnostic IDs.

Definition at line 173 of file MOM_diabatic_driver.F90.

173  integer :: id_wd = -1, id_ea = -1, id_eb = -1 ! used by layer diabatic

◆ int_tide_csp

type(int_tide_cs), pointer mom_diabatic_driver::diabatic_cs::int_tide_csp => NULL()

Control structure for a child module.

Definition at line 220 of file MOM_diabatic_driver.F90.

220  type(int_tide_CS), pointer :: int_tide_CSp => null() !< Control structure for a child module

◆ int_tide_input

type(int_tide_input_type), pointer mom_diabatic_driver::diabatic_cs::int_tide_input => NULL()

Control structure for a child module.

Definition at line 222 of file MOM_diabatic_driver.F90.

222  type(int_tide_input_type), pointer :: int_tide_input => null() !< Control structure for a child module

◆ int_tide_input_csp

type(int_tide_input_cs), pointer mom_diabatic_driver::diabatic_cs::int_tide_input_csp => NULL()

Control structure for a child module.

Definition at line 221 of file MOM_diabatic_driver.F90.

221  type(int_tide_input_CS), pointer :: int_tide_input_CSp => null() !< Control structure for a child module

◆ kd_bbl_tr

real mom_diabatic_driver::diabatic_cs::kd_bbl_tr

A bottom boundary layer tracer diffusivity that will allow for explicitly specified bottom fluxes [Z2 T-1 ~> m2 s-1]. The entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) over the same distance.

Definition at line 144 of file MOM_diabatic_driver.F90.

144  real :: Kd_BBL_tr !< A bottom boundary layer tracer diffusivity that

◆ kd_min_tr

real mom_diabatic_driver::diabatic_cs::kd_min_tr

A minimal diffusivity that should always be applied to tracers, especially in massless layers near the bottom [Z2 T-1 ~> m2 s-1].

Definition at line 148 of file MOM_diabatic_driver.F90.

148  real :: Kd_min_tr !< A minimal diffusivity that should always be

◆ kpp_buoy_flux

real, dimension(:,:,:), allocatable mom_diabatic_driver::diabatic_cs::kpp_buoy_flux

KPP forcing buoyancy flux [L2 T-3 ~> m2 s-3].

Definition at line 240 of file MOM_diabatic_driver.F90.

240  real, allocatable, dimension(:,:,:) :: KPP_buoy_flux !< KPP forcing buoyancy flux [L2 T-3 ~> m2 s-3]

◆ kpp_csp

type(kpp_cs), pointer mom_diabatic_driver::diabatic_cs::kpp_csp => NULL()

Control structure for a child module.

Definition at line 229 of file MOM_diabatic_driver.F90.

229  type(KPP_CS), pointer :: KPP_CSp => null() !< Control structure for a child module

◆ kpp_nltheat

real, dimension(:,:,:), allocatable mom_diabatic_driver::diabatic_cs::kpp_nltheat

KPP non-local transport for heat [m s-1].

Definition at line 238 of file MOM_diabatic_driver.F90.

238  real, allocatable, dimension(:,:,:) :: KPP_NLTheat !< KPP non-local transport for heat [m s-1]

◆ kpp_nltscalar

real, dimension(:,:,:), allocatable mom_diabatic_driver::diabatic_cs::kpp_nltscalar

KPP non-local transport for scalars [m s-1].

Definition at line 239 of file MOM_diabatic_driver.F90.

239  real, allocatable, dimension(:,:,:) :: KPP_NLTscalar !< KPP non-local transport for scalars [m s-1]

◆ kpp_salt_flux

real, dimension(:,:), allocatable mom_diabatic_driver::diabatic_cs::kpp_salt_flux

KPP effective salt flux [ppt m s-1].

Definition at line 242 of file MOM_diabatic_driver.F90.

242  real, allocatable, dimension(:,:) :: KPP_salt_flux !< KPP effective salt flux [ppt m s-1]

◆ kpp_temp_flux

real, dimension(:,:), allocatable mom_diabatic_driver::diabatic_cs::kpp_temp_flux

KPP effective temperature flux [degC m s-1].

Definition at line 241 of file MOM_diabatic_driver.F90.

241  real, allocatable, dimension(:,:) :: KPP_temp_flux !< KPP effective temperature flux [degC m s-1]

◆ kppispassive

logical mom_diabatic_driver::diabatic_cs::kppispassive

If true, KPP is in passive mode, not changing answers.

Definition at line 159 of file MOM_diabatic_driver.F90.

159  logical :: KPPisPassive !< If true, KPP is in passive mode, not changing answers.

◆ massless_match_targets

logical mom_diabatic_driver::diabatic_cs::massless_match_targets

If true (the default), keep the T & S consistent with the target values.

Definition at line 138 of file MOM_diabatic_driver.F90.

138  logical :: massless_match_targets !< If true (the default), keep the T & S

◆ minimum_forcing_depth

real mom_diabatic_driver::diabatic_cs::minimum_forcing_depth

The smallest depth over which heat and freshwater fluxes are applied [H ~> m or kg m-2].

Definition at line 151 of file MOM_diabatic_driver.F90.

151  real :: minimum_forcing_depth !< The smallest depth over which heat and freshwater

◆ mix_boundary_tracers

logical mom_diabatic_driver::diabatic_cs::mix_boundary_tracers

If true, mix the passive tracers in massless layers at the bottom into the interior as though a diffusivity of Kd_min_tr (see below) were operating.

Definition at line 140 of file MOM_diabatic_driver.F90.

140  logical :: mix_boundary_tracers !< If true, mix the passive tracers in massless

◆ ml_mix_first

real mom_diabatic_driver::diabatic_cs::ml_mix_first

The nondimensional fraction of the mixed layer algorithm that is applied before diffusive mixing. The default is 0, while 0.5 gives Strang splitting and 1 is a sensible value too. Note that if there are convective instabilities in the initial state, the first call may do much more than the second.

Definition at line 131 of file MOM_diabatic_driver.F90.

131  real :: ML_mix_first !< The nondimensional fraction of the mixed layer

◆ mlddensitydifference

real mom_diabatic_driver::diabatic_cs::mlddensitydifference

Density difference used to determine MLD_user [R ~> kg m-3].

Definition at line 166 of file MOM_diabatic_driver.F90.

166  real :: MLDdensityDifference !< Density difference used to determine MLD_user [R ~> kg m-3]

◆ nkbl

integer mom_diabatic_driver::diabatic_cs::nkbl

The number of buffer layers (if bulk_mixed_layer)

Definition at line 137 of file MOM_diabatic_driver.F90.

137  integer :: NKBL !< The number of buffer layers (if bulk_mixed_layer)

◆ nmode

integer mom_diabatic_driver::diabatic_cs::nmode = 1

Number of baroclinic modes to consider.

Definition at line 122 of file MOM_diabatic_driver.F90.

122  integer :: nMode = 1 !< Number of baroclinic modes to consider

◆ opacity_csp

type(opacity_cs), pointer mom_diabatic_driver::diabatic_cs::opacity_csp => NULL()

Control structure for a child module.

Definition at line 223 of file MOM_diabatic_driver.F90.

223  type(opacity_CS), pointer :: opacity_CSp => null() !< Control structure for a child module

◆ optics

type(optics_type), pointer mom_diabatic_driver::diabatic_cs::optics => NULL()

Control structure for a child module.

Definition at line 228 of file MOM_diabatic_driver.F90.

228  type(optics_type), pointer :: optics => null() !< Control structure for a child module

◆ pass_hold_eb_ea

type(group_pass_type) mom_diabatic_driver::diabatic_cs::pass_hold_eb_ea

For group halo pass.

Definition at line 234 of file MOM_diabatic_driver.F90.

234  type(group_pass_type) :: pass_hold_eb_ea !< For group halo pass

◆ pass_kv

type(group_pass_type) mom_diabatic_driver::diabatic_cs::pass_kv

For group halo pass.

Definition at line 235 of file MOM_diabatic_driver.F90.

235  type(group_pass_type) :: pass_Kv !< For group halo pass

◆ regularize_layers_csp

type(regularize_layers_cs), pointer mom_diabatic_driver::diabatic_cs::regularize_layers_csp => NULL()

Control structure for a child module.

Definition at line 218 of file MOM_diabatic_driver.F90.

218  type(regularize_layers_CS), pointer :: regularize_layers_CSp => null() !< Control structure for a child module

◆ salt_reject_below_ml

logical mom_diabatic_driver::diabatic_cs::salt_reject_below_ml

If true, add salt below mixed layer (layer mode only)

Definition at line 158 of file MOM_diabatic_driver.F90.

158  logical :: salt_reject_below_ML !< If true, add salt below mixed layer (layer mode only)

◆ set_diff_csp

type(set_diffusivity_cs), pointer mom_diabatic_driver::diabatic_cs::set_diff_csp => NULL()

Control structure for a child module.

Definition at line 224 of file MOM_diabatic_driver.F90.

224  type(set_diffusivity_CS), pointer :: set_diff_CSp => null() !< Control structure for a child module

◆ sponge_csp

type(sponge_cs), pointer mom_diabatic_driver::diabatic_cs::sponge_csp => NULL()

Control structure for a child module.

Definition at line 225 of file MOM_diabatic_driver.F90.

225  type(sponge_CS), pointer :: sponge_CSp => null() !< Control structure for a child module

◆ tidal_mixing_csp

type(tidal_mixing_cs), pointer mom_diabatic_driver::diabatic_cs::tidal_mixing_csp => NULL()

Control structure for a child module.

Definition at line 230 of file MOM_diabatic_driver.F90.

230  type(tidal_mixing_cs), pointer :: tidal_mixing_csp => null() !< Control structure for a child module

◆ time

type(time_type), pointer mom_diabatic_driver::diabatic_cs::time

Pointer to model time (needed for sponges)

Definition at line 244 of file MOM_diabatic_driver.F90.

244  type(time_type), pointer :: Time !< Pointer to model time (needed for sponges)

◆ tracer_flow_csp

type(tracer_flow_control_cs), pointer mom_diabatic_driver::diabatic_cs::tracer_flow_csp => NULL()

Control structure for a child module.

Definition at line 227 of file MOM_diabatic_driver.F90.

227  type(tracer_flow_control_CS), pointer :: tracer_flow_CSp => null() !< Control structure for a child module

◆ tracer_tridiag

logical mom_diabatic_driver::diabatic_cs::tracer_tridiag

If true, use tracer_vertdiff instead of tridiagTS for vertical diffusion of T and S.

Definition at line 162 of file MOM_diabatic_driver.F90.

162  logical :: tracer_tridiag !< If true, use tracer_vertdiff instead of tridiagTS for

◆ uniform_test_cg

real mom_diabatic_driver::diabatic_cs::uniform_test_cg

Uniform group velocity of internal tide for testing internal tides [L T-1 ~> m s-1].

Definition at line 123 of file MOM_diabatic_driver.F90.

123  real :: uniform_test_cg !< Uniform group velocity of internal tide

◆ use_cvmix_conv

logical mom_diabatic_driver::diabatic_cs::use_cvmix_conv

If true, use the CVMix module to get enhanced mixing due to convection.

Definition at line 110 of file MOM_diabatic_driver.F90.

110  logical :: use_CVMix_conv !< If true, use the CVMix module to get enhanced

◆ use_cvmix_ddiff

logical mom_diabatic_driver::diabatic_cs::use_cvmix_ddiff

If true, use the CVMix double diffusion module.

Definition at line 108 of file MOM_diabatic_driver.F90.

108  logical :: use_CVMix_ddiff !< If true, use the CVMix double diffusion module.

◆ use_cvmix_shear

logical mom_diabatic_driver::diabatic_cs::use_cvmix_shear

If true, use the CVMix module to find the shear-driven diapycnal diffusivity.

Definition at line 106 of file MOM_diabatic_driver.F90.

106  logical :: use_CVMix_shear !< If true, use the CVMix module to find the

◆ use_energetic_pbl

logical mom_diabatic_driver::diabatic_cs::use_energetic_pbl

If true, use the implicit energetics planetary boundary layer scheme to determine the diffusivity in the surface boundary layer.

Definition at line 99 of file MOM_diabatic_driver.F90.

99  logical :: use_energetic_PBL !< If true, use the implicit energetics planetary

◆ use_geothermal

logical mom_diabatic_driver::diabatic_cs::use_geothermal

If true, apply geothermal heating.

Definition at line 116 of file MOM_diabatic_driver.F90.

116  logical :: use_geothermal !< If true, apply geothermal heating.

◆ use_int_tides

logical mom_diabatic_driver::diabatic_cs::use_int_tides

If true, use the code that advances a separate set of equations for the internal tide energy density.

Definition at line 117 of file MOM_diabatic_driver.F90.

117  logical :: use_int_tides !< If true, use the code that advances a separate set

◆ use_kappa_shear

logical mom_diabatic_driver::diabatic_cs::use_kappa_shear

If true, use the kappa_shear module to find the shear-driven diapycnal diffusivity.

Definition at line 104 of file MOM_diabatic_driver.F90.

104  logical :: use_kappa_shear !< If true, use the kappa_shear module to find the

◆ use_kpp

logical mom_diabatic_driver::diabatic_cs::use_kpp

If true, use CVMix/KPP boundary layer scheme to determine the OBLD and the diffusivities within this layer.

Definition at line 102 of file MOM_diabatic_driver.F90.

102  logical :: use_KPP !< If true, use CVMix/KPP boundary layer scheme to determine the

◆ use_legacy_diabatic

logical mom_diabatic_driver::diabatic_cs::use_legacy_diabatic

If true (default), use the a legacy version of the diabatic algorithm. This is temporary and is needed to avoid change in answers.

Definition at line 94 of file MOM_diabatic_driver.F90.

94  logical :: use_legacy_diabatic !< If true (default), use the a legacy version of the diabatic

◆ use_sponge

logical mom_diabatic_driver::diabatic_cs::use_sponge

If true, sponges may be applied anywhere in the domain. The exact location and properties of those sponges are set by calls to initialize_sponge and set_up_sponge_field.

Definition at line 112 of file MOM_diabatic_driver.F90.

112  logical :: use_sponge !< If true, sponges may be applied anywhere in the

◆ use_tidal_mixing

logical mom_diabatic_driver::diabatic_cs::use_tidal_mixing

If true, activate tidal mixing diffusivity.

Definition at line 109 of file MOM_diabatic_driver.F90.

109  logical :: use_tidal_mixing !< If true, activate tidal mixing diffusivity.

◆ usealealgorithm

logical mom_diabatic_driver::diabatic_cs::usealealgorithm

If true, use the ALE algorithm rather than layered isopycnal/stacked shallow water mode. This logical passed by argument to diabatic_driver_init.

Definition at line 125 of file MOM_diabatic_driver.F90.

125  logical :: useALEalgorithm !< If true, use the ALE algorithm rather than layered

◆ usekpp

logical mom_diabatic_driver::diabatic_cs::usekpp = .false.

use CVMix/KPP diffusivities and non-local transport

Definition at line 157 of file MOM_diabatic_driver.F90.

157  logical :: useKPP = .false. !< use CVMix/KPP diffusivities and non-local transport

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