&ocean_kappa_shear_nml: shear-driven interior turbulence (Jackson,
Hallberg & Legg 2008). Coexists with KPP/EPBL/PP81 — kappa is ADDED
to the interior diffusivities. Default off ⇒ bit-identical.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | at_vertex | = | .false. |
Solve the JHL08 columns at C-grid CORNERS (vorticity points)
from the native face velocities, then average the corner Kd
back to tracer points (MOM6 VERTEX_SHEAR — the OM5-class
production setting). Default off ⇒ bit-identical. v1 scope
is Kd only: Kv stays |
|
| real(kind=wp), | public | :: | c_n | = | 0.24_wp |
TKE decay-rate coefficient vs stratification N (JHL08). |
|
| real(kind=wp), | public | :: | c_s | = | 0.14_wp |
TKE decay-rate coefficient vs shear S (JHL08). |
|
| logical, | public | :: | enable | = | .false. |
Master switch. Requires |
|
| real(kind=wp), | public | :: | fri_curvature | = | -0.97_wp |
Ri-function curvature in the shear source (JHL08). |
|
| real(kind=wp), | public | :: | kappa_0 | = | 1.0e-7_wp |
Background diffusivity, m^2/s; also the pre-step kappa (JHL08). |
|
| real(kind=wp), | public | :: | kappa_seed | = | 1.0_wp |
Iteration seed diffusivity, m^2/s (JHL08). |
|
| real(kind=wp), | public | :: | kappa_trunc | = | 1.0e-9_wp |
Diffusivity below this is truncated to 0, m^2/s (JHL08). |
|
| real(kind=wp), | public | :: | lambda | = | 0.82_wp |
Buoyancy mixing-length-scale coefficient (JHL08). |
|
| real(kind=wp), | public | :: | lz_rescale | = | 1.0_wp |
Boundary-distance length-scale rescale factor (JHL08). |
|
| logical, | public | :: | massless_merge | = | .false. |
sub-grid before the column solve (vs the blunt gather floor). Default off (bit-identical); identity columns bypass the merge. |
|
| integer, | public | :: | max_inner_it | = | 50 |
Inner Picard iteration cap (JHL08). |
|
| integer, | public | :: | max_substep_it | = | 13 |
Outer adaptive-substep iteration cap (JHL08). |
|
| real(kind=wp), | public | :: | prandtl_turb | = | 1.0_wp |
Kv = prandtl_turb * Kd into the momentum solve (JHL08). |
|
| real(kind=wp), | public | :: | ri_crit | = | 0.25_wp |
Critical Richardson number (JHL08 Ri_c). |
|
| real(kind=wp), | public | :: | shearmix_rate | = | 0.089_wp |
Shear-source-rate coefficient (JHL08). |
|
| real(kind=wp), | public | :: | src_max_chg | = | 10.0_wp |
Adaptive-dt source-change tolerance band (JHL08). |
|
| real(kind=wp), | public | :: | tke_bg | = | 0.0_wp |
Background TKE, m^2/s^2; Q is a denominator, floored (JHL08). |
|
| real(kind=wp), | public | :: | tol_err | = | 0.1_wp |
Picard convergence tolerance (JHL08). |
|
| real(kind=wp), | public | :: | vel_underflow | = | 0.0_wp |
Velocity snap-to-zero magnitude, m/s, in the projection (JHL08). |
|
| real(kind=wp), | public | :: | vertex_geomean_kdmin | = | 0.0_wp |
Floor, m^2/s, applied to each corner Kd BEFORE the geometric
mean (MOM6 VERTEX_SHEAR_GEOMETRIC_MEAN_KDMIN; inert unless
|
|
| logical, | public | :: | vertex_geometric_mean | = | .false. |
Geometric (vs arithmetic) mean in the corner->centre Kd
average (MOM6 VERTEX_SHEAR_GEOMETRIC_MEAN). Pair with
|
type :: ocean_kappa_shear_config_t !! `&ocean_kappa_shear_nml`: shear-driven interior turbulence (Jackson, !! Hallberg & Legg 2008). Coexists with KPP/EPBL/PP81 — kappa is ADDED !! to the interior diffusivities. Default off ⇒ bit-identical. logical :: enable = .false. !! Master switch. Requires `vmix%use_closure` + thermodynamics !! (validated at configure). real(wp) :: ri_crit = 0.25_wp !! Critical Richardson number (JHL08 Ri_c). real(wp) :: shearmix_rate = 0.089_wp !! Shear-source-rate coefficient (JHL08). real(wp) :: fri_curvature = -0.97_wp !! Ri-function curvature in the shear source (JHL08). real(wp) :: c_n = 0.24_wp !! TKE decay-rate coefficient vs stratification N (JHL08). real(wp) :: c_s = 0.14_wp !! TKE decay-rate coefficient vs shear S (JHL08). real(wp) :: lambda = 0.82_wp !! Buoyancy mixing-length-scale coefficient (JHL08). real(wp) :: lz_rescale = 1.0_wp !! Boundary-distance length-scale rescale factor (JHL08). real(wp) :: kappa_0 = 1.0e-7_wp !! Background diffusivity, m^2/s; also the pre-step kappa (JHL08). real(wp) :: kappa_seed = 1.0_wp !! Iteration seed diffusivity, m^2/s (JHL08). real(wp) :: kappa_trunc = 1.0e-9_wp !! Diffusivity below this is truncated to 0, m^2/s (JHL08). real(wp) :: tke_bg = 0.0_wp !! Background TKE, m^2/s^2; Q is a denominator, floored (JHL08). real(wp) :: tol_err = 0.1_wp !! Picard convergence tolerance (JHL08). integer :: max_inner_it = 50 !! Inner Picard iteration cap (JHL08). integer :: max_substep_it = 13 !! Outer adaptive-substep iteration cap (JHL08). real(wp) :: src_max_chg = 10.0_wp !! Adaptive-dt source-change tolerance band (JHL08). real(wp) :: prandtl_turb = 1.0_wp !! Kv = prandtl_turb * Kd into the momentum solve (JHL08). real(wp) :: vel_underflow = 0.0_wp !! Velocity snap-to-zero magnitude, m/s, in the projection (JHL08). logical :: massless_merge = .false. !! D4: merge vanished (< H_VANISHED) layers onto the massive !! sub-grid before the column solve (vs the blunt gather floor). !! Default off (bit-identical); identity columns bypass the merge. logical :: at_vertex = .false. !! Solve the JHL08 columns at C-grid CORNERS (vorticity points) !! from the native face velocities, then average the corner Kd !! back to tracer points (MOM6 VERTEX_SHEAR — the OM5-class !! production setting). Default off ⇒ bit-identical. v1 scope !! is Kd only: Kv stays `prandtl_turb * kd_int` at cell centres !! (the corner->face viscosity seam is a follow-up PR). logical :: vertex_geometric_mean = .false. !! Geometric (vs arithmetic) mean in the corner->centre Kd !! average (MOM6 VERTEX_SHEAR_GEOMETRIC_MEAN). Pair with !! `vertex_geomean_kdmin` — with a 0 floor the geometric mean !! hard-zeros Kd along every shear-zone edge. real(wp) :: vertex_geomean_kdmin = 0.0_wp !! Floor, m^2/s, applied to each corner Kd BEFORE the geometric !! mean (MOM6 VERTEX_SHEAR_GEOMETRIC_MEAN_KDMIN; inert unless !! `vertex_geometric_mean`). OM5 configs use 1e-9. end type ocean_kappa_shear_config_t