&ocean_varmix_nml: spatially-varying GM/Redi lateral-diffusivity
coefficients = (background + Visbeck) × resolution_fn, clamped.
Reads the slopes + wavespeed slots. Default off ⇒ GM keeps constant khth.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | enable | = | .false. |
Master switch. Default off. Requires |
|
| logical, | public | :: | gill_equatorial_ld | = | .true. |
Gill (1982) equatorial-Ld convention (factor 2 in beta_dx2). |
|
| logical, | public | :: | interpolate_res_fn | = | .false. |
Interpolate the centre Res_fn to faces ( |
|
| integer, | public | :: | kh_res_fn_power | = | 2 |
Resolution-function power p (even). |
|
| real(kind=wp), | public | :: | kh_res_scale_coef | = | 1.0_wp |
Resolution-function alpha (the |
|
| real(kind=wp), | public | :: | khth | = | 0.0_wp |
Background thickness diffusivity KhTh (m²/s) the Visbeck term + Res_fn scale. |
|
| real(kind=wp), | public | :: | khth_max | = | 0.0_wp |
Upper clamp on KhTh (m²/s); ≤ 0 ⇒ no cap. |
|
| real(kind=wp), | public | :: | khth_min | = | 0.0_wp |
Lower clamp on the assembled KhTh (m²/s). |
|
| real(kind=wp), | public | :: | khth_slope_cff | = | 0.0_wp |
Visbeck coefficient α_s for the KhTh chain. |
|
| real(kind=wp), | public | :: | khtr | = | 0.0_wp |
Background tracer diffusivity KhTr (m²/s) for the future Redi. |
|
| real(kind=wp), | public | :: | khtr_max | = | 0.0_wp |
Upper clamp on KhTr (m²/s); ≤ 0 ⇒ no cap. |
|
| real(kind=wp), | public | :: | khtr_min | = | 0.0_wp |
Lower clamp on KhTr (m²/s). |
|
| real(kind=wp), | public | :: | khtr_slope_cff | = | 0.0_wp |
Visbeck coefficient for the KhTr chain. |
|
| logical, | public | :: | resoln_scaled_khth | = | .false. |
Scale the assembled KhTh by the resolution function. |
|
| logical, | public | :: | resoln_scaled_khtr | = | .false. |
Scale the assembled KhTr by the resolution function. |
|
| logical, | public | :: | use_visbeck | = | .false. |
Add the Visbeck/Eady |
|
| real(kind=wp), | public | :: | visbeck_l_scale | = | 0.0_wp |
Visbeck length scale L (m); if < 0, |L|²·areaCu is used. |
|
| real(kind=wp), | public | :: | visbeck_max_slope | = | 0.0_wp |
S² limiter scale; ≤ 0 ⇒ no S² limit. |
type :: ocean_varmix_config_t !! `&ocean_varmix_nml`: spatially-varying GM/Redi lateral-diffusivity !! coefficients = (background + Visbeck) × resolution_fn, clamped. !! Reads the slopes + wavespeed slots. Default off ⇒ GM keeps constant khth. logical :: enable = .false. !! Master switch. Default off. Requires `&ocean_slopes_nml enable` !! + `&ocean_wavespeed_nml enable` (configure-time errors). logical :: use_visbeck = .false. !! Add the Visbeck/Eady `khth_slope_cff·L²·SN` baroclinicity term. logical :: resoln_scaled_khth = .false. !! Scale the assembled KhTh by the resolution function. logical :: resoln_scaled_khtr = .false. !! Scale the assembled KhTr by the resolution function. logical :: gill_equatorial_ld = .true. !! Gill (1982) equatorial-Ld convention (factor 2 in beta_dx2). logical :: interpolate_res_fn = .false. !! Interpolate the centre Res_fn to faces (`.true.`) vs interpolate !! cg1 to faces then recompute Res_fn (`.false.`, MOM6 default). integer :: kh_res_fn_power = 2 !! Resolution-function power p (even). real(wp) :: kh_res_scale_coef = 1.0_wp !! Resolution-function alpha (the `(alpha·cg1)^p` denom coefficient). real(wp) :: khth = 0.0_wp !! Background thickness diffusivity KhTh (m²/s) the Visbeck term + !! Res_fn scale. real(wp) :: khtr = 0.0_wp !! Background tracer diffusivity KhTr (m²/s) for the future Redi. real(wp) :: khth_slope_cff = 0.0_wp !! Visbeck coefficient α_s for the KhTh chain. real(wp) :: khtr_slope_cff = 0.0_wp !! Visbeck coefficient for the KhTr chain. real(wp) :: khth_min = 0.0_wp !! Lower clamp on the assembled KhTh (m²/s). real(wp) :: khth_max = 0.0_wp !! Upper clamp on KhTh (m²/s); ≤ 0 ⇒ no cap. real(wp) :: khtr_min = 0.0_wp !! Lower clamp on KhTr (m²/s). real(wp) :: khtr_max = 0.0_wp !! Upper clamp on KhTr (m²/s); ≤ 0 ⇒ no cap. real(wp) :: visbeck_l_scale = 0.0_wp !! Visbeck length scale L (m); if < 0, |L|²·areaCu is used. real(wp) :: visbeck_max_slope = 0.0_wp !! S² limiter scale; ≤ 0 ⇒ no S² limit. end type ocean_varmix_config_t