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.
 
logical bulkmixedlayer
 If true, a refined bulk mixed layer is used with nkml sublayers (and additional buffer layers).
 
logical use_energetic_pbl
 If true, use the implicit energetics planetary boundary layer scheme to determine the diffusivity in the surface boundary layer.
 
logical use_kpp
 If true, use CVMix/KPP boundary layer scheme to determine the OBLD and the diffusivities within this layer.
 
logical use_kappa_shear
 If true, use the kappa_shear module to find the shear-driven diapycnal diffusivity.
 
logical use_cvmix_shear
 If true, use the CVMix module to find the shear-driven diapycnal diffusivity.
 
logical use_cvmix_ddiff
 If true, use the CVMix double diffusion module.
 
logical use_tidal_mixing
 If true, activate tidal mixing diffusivity.
 
logical use_cvmix_conv
 If true, use the CVMix module to get enhanced mixing due to convection.
 
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.
 
logical use_geothermal
 If true, apply geothermal heating.
 
logical use_int_tides
 If true, use the code that advances a separate set of equations for the internal tide energy density.
 
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.
 
integer nmode = 1
 Number of baroclinic modes to consider.
 
real uniform_test_cg
 Uniform group velocity of internal tide for testing internal tides [m s-1] (BDM)
 
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.
 
logical aggregate_fw_forcing
 Determines whether net incoming/outgoing surface FW fluxes are applied separately or combined before being applied.
 
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.
 
integer nkbl
 The number of buffer layers (if bulk_mixed_layer)
 
logical massless_match_targets
 If true (the default), keep the T & S consistent with the target values.
 
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.
 
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.
 
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].
 
real minimum_forcing_depth = 0.001
 The smallest depth over which heat and freshwater fluxes are applied [m].
 
real evap_cfl_limit = 0.8
 The largest fraction of a layer that can be evaporated in one time-step [nondim].
 
integer halo_ts_diff = 0
 The temperature, salinity and thickness halo size that must be valid for the diffusivity calculations.
 
logical usekpp = .false.
 use CVMix/KPP diffusivities and non-local transport
 
logical salt_reject_below_ml
 If true, add salt below mixed layer (layer mode only)
 
logical kppispassive
 If true, KPP is in passive mode, not changing answers.
 
logical debug
 If true, write verbose checksums for debugging purposes.
 
logical debugconservation
 If true, monitor conservation and extrema.
 
logical tracer_tridiag
 If true, use tracer_vertdiff instead of tridiagTS for vertical diffusion of T and S.
 
logical debug_energy_req
 If true, test the mixing energy requirement code.
 
type(diag_ctrl), pointer diag
 structure used to regulate timing of diagnostic output
 
real mlddensitydifference
 Density difference used to determine MLD_user.
 
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].
 
integer id_cg1 = -1
 Diagnostic IDs.
 
integer, dimension(:), allocatable id_cn
 Diagnostic IDs.
 
integer id_wd = -1
 Diagnostic IDs.
 
integer id_ea = -1
 Diagnostic IDs.
 
integer id_eb = -1
 Diagnostic IDs.
 
integer id_dudt_dia = -1
 Diagnostic IDs.
 
integer id_dvdt_dia = -1
 Diagnostic IDs.
 
integer id_ea_s = -1
 Diagnostic IDs.
 
integer id_eb_s = -1
 Diagnostic IDs.
 
integer id_ea_t = -1
 Diagnostic IDs.
 
integer id_eb_t = -1
 Diagnostic IDs.
 
integer id_kd_heat = -1
 Diagnostic IDs.
 
integer id_kd_salt = -1
 Diagnostic IDs.
 
integer id_kd_interface = -1
 Diagnostic IDs.
 
integer id_kd_epbl = -1
 Diagnostic IDs.
 
integer id_tdif = -1
 Diagnostic IDs.
 
integer id_tadv = -1
 Diagnostic IDs.
 
integer id_sdif = -1
 Diagnostic IDs.
 
integer id_sadv = -1
 Diagnostic IDs.
 
integer id_mld_003 = -1
 Diagnostic IDs.
 
integer id_mld_0125 = -1
 Diagnostic IDs.
 
integer id_mld_user = -1
 Diagnostic IDs.
 
integer id_mlotstsq = -1
 Diagnostic IDs.
 
integer id_submln2 = -1
 Diagnostic IDs.
 
integer id_brine_lay = -1
 Diagnostic IDs.
 
integer id_u_predia = -1
 Diagnostic IDs.
 
integer id_v_predia = -1
 Diagnostic IDs.
 
integer id_h_predia = -1
 Diagnostic IDs.
 
integer id_t_predia = -1
 Diagnostic IDs.
 
integer id_s_predia = -1
 Diagnostic IDs.
 
integer id_e_predia = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_temp_tend = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_saln_tend = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_heat_tend = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_salt_tend = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_heat_tend_2d = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_salt_tend_2d = -1
 Diagnostic IDs.
 
integer id_diabatic_diff_h = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_h = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_h_tendency = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_temp_tend = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_saln_tend = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_heat_tend = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_salt_tend = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_heat_tend_2d = -1
 Diagnostic IDs.
 
integer id_boundary_forcing_salt_tend_2d = -1
 Diagnostic IDs.
 
integer id_frazil_h = -1
 Diagnostic IDs.
 
integer id_frazil_temp_tend = -1
 Diagnostic IDs.
 
integer id_frazil_heat_tend = -1
 Diagnostic IDs.
 
integer id_frazil_heat_tend_2d = -1
 Diagnostic IDs.
 
logical diabatic_diff_tendency_diag = .false.
 If true calculate diffusive tendency diagnostics.
 
logical boundary_forcing_tendency_diag = .false.
 If true calculate frazil diagnostics.
 
logical frazil_tendency_diag = .false.
 If true calculate frazil tendency diagnostics.
 
real, dimension(:,:,:), allocatable frazil_heat_diag
 diagnose 3d heat tendency from frazil
 
real, dimension(:,:,:), allocatable frazil_temp_diag
 diagnose 3d temp tendency from frazil
 
type(diabatic_aux_cs), pointer diabatic_aux_csp => NULL()
 Control structure for a child module.
 
type(entrain_diffusive_cs), pointer entrain_diffusive_csp => NULL()
 Control structure for a child module.
 
type(bulkmixedlayer_cs), pointer bulkmixedlayer_csp => NULL()
 Control structure for a child module.
 
type(energetic_pbl_cs), pointer energetic_pbl_csp => NULL()
 Control structure for a child module.
 
type(regularize_layers_cs), pointer regularize_layers_csp => NULL()
 Control structure for a child module.
 
type(geothermal_cs), pointer geothermal_csp => NULL()
 Control structure for a child module.
 
type(int_tide_cs), pointer int_tide_csp => NULL()
 Control structure for a child module.
 
type(int_tide_input_cs), pointer int_tide_input_csp => NULL()
 Control structure for a child module.
 
type(int_tide_input_type), pointer int_tide_input => NULL()
 Control structure for a child module.
 
type(opacity_cs), pointer opacity_csp => NULL()
 Control structure for a child module.
 
type(set_diffusivity_cs), pointer set_diff_csp => NULL()
 Control structure for a child module.
 
type(sponge_cs), pointer sponge_csp => NULL()
 Control structure for a child module.
 
type(ale_sponge_cs), pointer ale_sponge_csp => NULL()
 Control structure for a child module.
 
type(tracer_flow_control_cs), pointer tracer_flow_csp => NULL()
 Control structure for a child module.
 
type(optics_type), pointer optics => NULL()
 Control structure for a child module.
 
type(kpp_cs), pointer kpp_csp => NULL()
 Control structure for a child module.
 
type(tidal_mixing_cs), pointer tidal_mixing_csp => NULL()
 Control structure for a child module.
 
type(cvmix_conv_cs), pointer cvmix_conv_csp => NULL()
 Control structure for a child module.
 
type(diapyc_energy_req_cs), pointer diapyc_en_rec_csp => NULL()
 Control structure for a child module.
 
type(group_pass_type) pass_hold_eb_ea
 For group halo pass.
 
type(group_pass_type) pass_kv
 For group halo pass.
 
type(diag_grid_storage) diag_grids_prev
 Stores diagnostic grids at some previous point in the algorithm.
 
real, dimension(:,:,:), allocatable kpp_nltheat
 KPP non-local transport for heat [m s-1].
 
real, dimension(:,:,:), allocatable kpp_nltscalar
 KPP non-local transport for scalars [m s-1].
 
real, dimension(:,:,:), allocatable kpp_buoy_flux
 KPP forcing buoyancy flux [L2 T-3 ~> m2 s-3].
 
real, dimension(:,:), allocatable kpp_temp_flux
 KPP effective temperature flux [degC m s-1].
 
real, dimension(:,:), allocatable kpp_salt_flux
 KPP effective salt flux [ppt m s-1].
 
type(time_type), pointer time
 Pointer to model time (needed for sponges)
 

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