MOM6
|
Control structure for this module.
Definition at line 92 of file MOM_diabatic_driver.F90.
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) | |