MOM6
|
Variable mixing coefficients.
Definition at line 25 of file MOM_lateral_mixing_coeffs.F90.
Public variables and constants | |
logical | use_variable_mixing |
If true, use the variable mixing. More... | |
logical | resoln_scaled_kh |
If true, scale away the Laplacian viscosity when the deformation radius is well resolved. More... | |
logical | resoln_scaled_khth |
If true, scale away the thickness diffusivity when the deformation radius is well resolved. More... | |
logical | resoln_scaled_khtr |
If true, scale away the tracer diffusivity when the deformation radius is well resolved. More... | |
logical | interpolate_res_fn |
If true, interpolate the resolution function to the velocity points from the thickness points; otherwise interpolate the wave speed and calculate the resolution function independently at each point. More... | |
logical | use_stored_slopes |
If true, stores isopycnal slopes in this structure. More... | |
logical | resoln_use_ebt |
If true, uses the equivalent barotropic wave speed instead of first baroclinic wave for calculating the resolution fn. More... | |
logical | khth_use_ebt_struct |
If true, uses the equivalent barotropic structure as the vertical structure of thickness diffusivity. More... | |
logical | use_visbeck_slope_bug |
If true, then retain a legacy bug in the calculation of weights applied to isoneutral slopes. There was an erroneous k-indexing for layer thicknesses. In addition, masking at coastlines was not used which introduced potential restart issues. This flag will be deprecated in a future release. More... | |
logical | calculate_cg1 |
If true, calls wave_speed() to calculate the first baroclinic wave speed and populate CScg1. This parameter is set depending on other parameters. More... | |
logical | calculate_rd_dx |
If true, calculates Rd/dx and populate CSRd_dx_h. This parameter is set depending on other parameters. More... | |
logical | calculate_res_fns |
If true, calculate all the resolution factors. This parameter is set depending on other parameters. More... | |
logical | calculate_eady_growth_rate |
If true, calculate all the Eady growth rate. This parameter is set depending on other parameters. More... | |
real, dimension(:,:), pointer | sn_u => NULL() |
S*N at u-points (s^-1) More... | |
real, dimension(:,:), pointer | sn_v => NULL() |
S*N at v-points (s^-1) More... | |
real, dimension(:,:), pointer | l2u => NULL() |
Length scale^2 at u-points (m^2) More... | |
real, dimension(:,:), pointer | l2v => NULL() |
Length scale^2 at v-points (m^2) More... | |
real, dimension(:,:), pointer | cg1 => NULL() |
The first baroclinic gravity wave speed in m s-1. More... | |
real, dimension(:,:), pointer | res_fn_h => NULL() |
Non-dimensional function of the ratio the first baroclinic. More... | |
real, dimension(:,:), pointer | res_fn_q => NULL() |
Non-dimensional function of the ratio the first baroclinic. More... | |
real, dimension(:,:), pointer | res_fn_u => NULL() |
Non-dimensional function of the ratio the first baroclinic. More... | |
real, dimension(:,:), pointer | res_fn_v => NULL() |
Non-dimensional function of the ratio the first baroclinic. More... | |
real, dimension(:,:), pointer | beta_dx2_h => NULL() |
The magnitude of the gradient of the Coriolis parameter. More... | |
real, dimension(:,:), pointer | beta_dx2_q => NULL() |
The magnitude of the gradient of the Coriolis parameter. More... | |
real, dimension(:,:), pointer | beta_dx2_u => NULL() |
The magnitude of the gradient of the Coriolis parameter. More... | |
real, dimension(:,:), pointer | beta_dx2_v => NULL() |
The magnitude of the gradient of the Coriolis parameter. More... | |
real, dimension(:,:), pointer | f2_dx2_h => NULL() |
The Coriolis parameter squared times the grid. More... | |
real, dimension(:,:), pointer | f2_dx2_q => NULL() |
The Coriolis parameter squared times the grid. More... | |
real, dimension(:,:), pointer | f2_dx2_u => NULL() |
The Coriolis parameter squared times the grid. More... | |
real, dimension(:,:), pointer | f2_dx2_v => NULL() |
The Coriolis parameter squared times the grid. More... | |
real, dimension(:,:), pointer | rd_dx_h => NULL() |
Deformation radius over grid spacing (non-dim.) More... | |
real, dimension(:,:,:), pointer | slope_x => NULL() |
Zonal isopycnal slope (non-dimensional) More... | |
real, dimension(:,:,:), pointer | slope_y => NULL() |
Meridional isopycnal slope (non-dimensional) More... | |
real, dimension(:,:,:), pointer | ebt_struct => NULL() |
Vertical structure function to scale diffusivities with (non-dim) More... | |
integer | varmix_ktop |
Top layer to start downward integrals. More... | |
real | visbeck_l_scale |
Fixed length scale in Visbeck formula. More... | |
real | res_coef_khth |
A non-dimensional number that determines the function of resolution, used for thickness and tracer mixing, as: F = 1 / (1 + (Res_coef_khth*Ld/dx)^Res_fn_power) More... | |
real | res_coef_visc |
A non-dimensional number that determines the function of resolution, used for lateral viscosity, as: F = 1 / (1 + (Res_coef_visc*Ld/dx)^Res_fn_power) More... | |
real | kappa_smooth |
A diffusivity for smoothing T/S in vanished layers (m2/s) More... | |
integer | res_fn_power_khth |
The power of dx/Ld in the KhTh resolution function. Any positive integer power may be used, but even powers and especially 2 are coded to be more efficient. More... | |
integer | res_fn_power_visc |
The power of dx/Ld in the Kh resolution function. Any positive integer power may be used, but even powers and especially 2 are coded to be more efficient. More... | |
real | visbeck_s_max |
Upper bound on slope used in Eady growth rate (nondim). More... | |
type(wave_speed_cs), pointer | wave_speed_csp => NULL() |
Wave speed control structure. More... | |
type(group_pass_type) | pass_cg1 |
For group halo pass. More... | |
logical | debug |
If true, write out checksums of data for debugging. More... | |
integer | id_sn_u =-1 |
Diagnostic identifier. More... | |
integer | id_sn_v =-1 |
Diagnostic identifier. More... | |
integer | id_l2u =-1 |
Diagnostic identifier. More... | |
integer | id_l2v =-1 |
Diagnostic identifier. More... | |
integer | id_res_fn = -1 |
Diagnostic identifier. More... | |
integer | id_n2_u =-1 |
Diagnostic identifier. More... | |
integer | id_n2_v =-1 |
Diagnostic identifier. More... | |
integer | id_s2_u =-1 |
Diagnostic identifier. More... | |
integer | id_s2_v =-1 |
Diagnostic identifier. More... | |
integer | id_rd_dx =-1 |
Diagnostic identifier. More... | |
type(diag_ctrl), pointer | diag |
A structure that is used to regulate the timing of diagnostic output. More... | |
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::beta_dx2_h => NULL() |
The magnitude of the gradient of the Coriolis parameter.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::beta_dx2_q => NULL() |
The magnitude of the gradient of the Coriolis parameter.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::beta_dx2_u => NULL() |
The magnitude of the gradient of the Coriolis parameter.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::beta_dx2_v => NULL() |
The magnitude of the gradient of the Coriolis parameter.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::calculate_cg1 |
If true, calls wave_speed() to calculate the first baroclinic wave speed and populate CScg1. This parameter is set depending on other parameters.
Definition at line 48 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::calculate_eady_growth_rate |
If true, calculate all the Eady growth rate. This parameter is set depending on other parameters.
Definition at line 55 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::calculate_rd_dx |
If true, calculates Rd/dx and populate CSRd_dx_h. This parameter is set depending on other parameters.
Definition at line 51 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::calculate_res_fns |
If true, calculate all the resolution factors. This parameter is set depending on other parameters.
Definition at line 53 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::cg1 => NULL() |
The first baroclinic gravity wave speed in m s-1.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::debug |
If true, write out checksums of data for debugging.
Definition at line 124 of file MOM_lateral_mixing_coeffs.F90.
type(diag_ctrl), pointer mom_lateral_mixing_coeffs::varmix_cs::diag |
A structure that is used to regulate the timing of diagnostic output.
Definition at line 118 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::ebt_struct => NULL() |
Vertical structure function to scale diffusivities with (non-dim)
Definition at line 89 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::f2_dx2_h => NULL() |
The Coriolis parameter squared times the grid.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::f2_dx2_q => NULL() |
The Coriolis parameter squared times the grid.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::f2_dx2_u => NULL() |
The Coriolis parameter squared times the grid.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::f2_dx2_v => NULL() |
The Coriolis parameter squared times the grid.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_l2u =-1 |
Diagnostic identifier.
Definition at line 115 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_l2v =-1 |
Diagnostic identifier.
Definition at line 115 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_n2_u =-1 |
Diagnostic identifier.
Definition at line 116 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_n2_v =-1 |
Diagnostic identifier.
Definition at line 116 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_rd_dx =-1 |
Diagnostic identifier.
Definition at line 117 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_res_fn = -1 |
Diagnostic identifier.
Definition at line 115 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_s2_u =-1 |
Diagnostic identifier.
Definition at line 116 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_s2_v =-1 |
Diagnostic identifier.
Definition at line 116 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_sn_u =-1 |
Diagnostic identifier.
Definition at line 115 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::id_sn_v =-1 |
Diagnostic identifier.
Definition at line 115 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::interpolate_res_fn |
If true, interpolate the resolution function to the velocity points from the thickness points; otherwise interpolate the wave speed and calculate the resolution function independently at each point.
Definition at line 33 of file MOM_lateral_mixing_coeffs.F90.
real mom_lateral_mixing_coeffs::varmix_cs::kappa_smooth |
A diffusivity for smoothing T/S in vanished layers (m2/s)
Definition at line 103 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::khth_use_ebt_struct |
If true, uses the equivalent barotropic structure as the vertical structure of thickness diffusivity.
Definition at line 41 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::l2u => NULL() |
Length scale^2 at u-points (m^2)
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::l2v => NULL() |
Length scale^2 at v-points (m^2)
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
type(group_pass_type) mom_lateral_mixing_coeffs::varmix_cs::pass_cg1 |
For group halo pass.
Definition at line 123 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::rd_dx_h => NULL() |
Deformation radius over grid spacing (non-dim.)
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real mom_lateral_mixing_coeffs::varmix_cs::res_coef_khth |
A non-dimensional number that determines the function of resolution, used for thickness and tracer mixing, as: F = 1 / (1 + (Res_coef_khth*Ld/dx)^Res_fn_power)
Definition at line 97 of file MOM_lateral_mixing_coeffs.F90.
real mom_lateral_mixing_coeffs::varmix_cs::res_coef_visc |
A non-dimensional number that determines the function of resolution, used for lateral viscosity, as: F = 1 / (1 + (Res_coef_visc*Ld/dx)^Res_fn_power)
Definition at line 100 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::res_fn_h => NULL() |
Non-dimensional function of the ratio the first baroclinic.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::res_fn_power_khth |
The power of dx/Ld in the KhTh resolution function. Any positive integer power may be used, but even powers and especially 2 are coded to be more efficient.
Definition at line 104 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::res_fn_power_visc |
The power of dx/Ld in the Kh resolution function. Any positive integer power may be used, but even powers and especially 2 are coded to be more efficient.
Definition at line 107 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::res_fn_q => NULL() |
Non-dimensional function of the ratio the first baroclinic.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::res_fn_u => NULL() |
Non-dimensional function of the ratio the first baroclinic.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::res_fn_v => NULL() |
Non-dimensional function of the ratio the first baroclinic.
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::resoln_scaled_kh |
If true, scale away the Laplacian viscosity when the deformation radius is well resolved.
Definition at line 27 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::resoln_scaled_khth |
If true, scale away the thickness diffusivity when the deformation radius is well resolved.
Definition at line 29 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::resoln_scaled_khtr |
If true, scale away the tracer diffusivity when the deformation radius is well resolved.
Definition at line 31 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::resoln_use_ebt |
If true, uses the equivalent barotropic wave speed instead of first baroclinic wave for calculating the resolution fn.
Definition at line 39 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::slope_x => NULL() |
Zonal isopycnal slope (non-dimensional)
Definition at line 89 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::slope_y => NULL() |
Meridional isopycnal slope (non-dimensional)
Definition at line 89 of file MOM_lateral_mixing_coeffs.F90.
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::sn_u => NULL() |
real, dimension(:,:), pointer mom_lateral_mixing_coeffs::varmix_cs::sn_v => NULL() |
S*N at v-points (s^-1)
Definition at line 57 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::use_stored_slopes |
If true, stores isopycnal slopes in this structure.
Definition at line 38 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::use_variable_mixing |
If true, use the variable mixing.
Definition at line 26 of file MOM_lateral_mixing_coeffs.F90.
logical mom_lateral_mixing_coeffs::varmix_cs::use_visbeck_slope_bug |
If true, then retain a legacy bug in the calculation of weights applied to isoneutral slopes. There was an erroneous k-indexing for layer thicknesses. In addition, masking at coastlines was not used which introduced potential restart issues. This flag will be deprecated in a future release.
Definition at line 43 of file MOM_lateral_mixing_coeffs.F90.
integer mom_lateral_mixing_coeffs::varmix_cs::varmix_ktop |
Top layer to start downward integrals.
Definition at line 95 of file MOM_lateral_mixing_coeffs.F90.
real mom_lateral_mixing_coeffs::varmix_cs::visbeck_l_scale |
Fixed length scale in Visbeck formula.
Definition at line 96 of file MOM_lateral_mixing_coeffs.F90.
real mom_lateral_mixing_coeffs::varmix_cs::visbeck_s_max |
Upper bound on slope used in Eady growth rate (nondim).
Definition at line 110 of file MOM_lateral_mixing_coeffs.F90.
type(wave_speed_cs), pointer mom_lateral_mixing_coeffs::varmix_cs::wave_speed_csp => NULL() |
Wave speed control structure.
Definition at line 122 of file MOM_lateral_mixing_coeffs.F90.