COSIMA / access-om3

ACCESS-OM3 global ocean-sea ice-wave coupled model
13 stars 6 forks source link

[0.25deg config] Vertical Mixing #189

Open minghangli-uni opened 1 month ago

minghangli-uni commented 1 month ago

As discussed in the namelist discussion,

use KPP with existing for now but test EPBL for future configs.

Hence KPP is implemented for OM3. Further tests using EPBL are required afterwards.

! === module MOM_set_visc ===
KV = 1.0E-04                    !   [m2 s-1]
                                ! The background kinematic viscosity in the interior. The molecular value, ~1e-6
                                ! m2 s-1, may be used.
! === module MOM_diabatic_driver ===
KD_MIN_TR = 2.0E-6              !   [m2 s-1] default = 0.0
                                ! A minimal diffusivity that should always be applied to tracers, especially in
                                ! massless layers near the bottom. The default is 0.1*KD.
! === module MOM_CVMix_KPP ===
USE_KPP = True                  !   [Boolean] default = False
                                ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate
                                ! diffusivities and non-local transport in the OBL.
KPP%
N_SMOOTH = 3                    ! default = 0
                                ! The number of times the 1-1-4-1-1 Laplacian filter is applied on OBL depth.
DEEPEN_ONLY_VIA_SMOOTHING = False !   [Boolean] default = False
                                ! If true, apply OBLdepth smoothing at a cell only if the OBLdepth gets deeper
                                ! via smoothing.
RI_CRIT = 0.3                   !   [nondim] default = 0.3
                                ! Critical bulk Richardson number used to define depth of the surface Ocean
                                ! Boundary Layer (OBL).
MATCH_TECHNIQUE = "MatchGradient" ! default = "SimpleShapes"
                                ! CVMix method to set profile function for diffusivity and NLT, as well as
                                ! matching across OBL base. Allowed values are:
                                !    SimpleShapes      = sigma*(1-sigma)^2 for both diffusivity and NLT
                                !    MatchGradient     = sigma*(1-sigma)^2 for NLT; diffusivity profile from
                                !      matching
                                !    MatchBoth         = match gradient for both diffusivity and NLT
                                !    ParabolicNonLocal = sigma*(1-sigma)^2 for diffusivity; (1-sigma)^2 for NLT
KPP_IS_ADDITIVE = False         !   [Boolean] default = True
                                ! If true, adds KPP diffusivity to diffusivity from other schemes.
                                ! If false, KPP is the only diffusivity wherever KPP is non-zero.
ENHANCE_DIFFUSION = True        !   [Boolean] default = True
                                ! If True, adds enhanced diffusion at the based of the boundary layer.
%KPP

! === module MOM_CVMix_ddiff ===
USE_CVMIX_DDIFF = True          !   [Boolean] default = False
                                ! If true, turns on double diffusive processes via CVMix. Note that double
                                ! diffusive processes on viscosity are ignored in CVMix, see
                                ! http://cvmix.github.io/ for justification.
! === module MOM_bkgnd_mixing ===
KD = 0.0                        !   [m2 s-1] default = 0.0
                                ! The background diapycnal diffusivity of density in the interior. Zero or the
                                ! molecular value, ~1e-7 m2 s-1, may be used.
KD_MAX = 0.1                    !   [m2 s-1] default = -1.0
                                ! The maximum permitted increment for the diapycnal diffusivity from TKE-based
                                ! parameterizations, or a negative value for no limit.
! === module MOM_CVMix_shear ===
USE_LMD94 = True                !   [Boolean] default = False
                                ! If true, use the Large-McWilliams-Doney (JGR 1994) shear mixing
                                ! parameterization.
N_SMOOTH_RI = 1                 ! default = 0
                                ! If > 0, vertically smooth the Richardson number by applying a 1-2-1 filter
                                ! N_SMOOTH_RI times.

! === module MOM_CVMix_conv ===
USE_CVMix_CONVECTION = True     !   [Boolean] default = False
                                ! If true, turns on the enhanced mixing due to convection via CVMix. This scheme
                                ! increases diapycnal diffs./viscs. at statically unstable interfaces. Relevant
                                ! parameters are contained in the CVMix_CONVECTION% parameter block.

Comments

  1. KV: constant background vertical viscosity:
  2. KD: constant background vertical diffusivity:
  3. KD_MAX: max Kd is suggested to be 0.1 from MOM5 manual
  4. N_SMOOTH = 3: The Laplacian filter differs from the one in OM2, which smooths the diffusivity instead of OBL depth in OM3. Not sure if this implementation will affect stability. If using this smoothing parameter, DEEPEN_ONLY_VIA_SMOOTHING can be tuned to ensure OBL depth smoothing is applied only if it deepens via smoothing.
  5. No depth-dependent background mixing was applied in OM2, hence BRYAN_LEWIS_DIFFUSIVITY, HORIZ_VARYING_BACKGROUND, and HENYEY_IGW_BACKGROUND are off.
  6. USE_CVMIX_DDIFF: double diffusion is applied using this parameter via CVMix.
  7. ENHANCE_DIFFUSION: enhances diffusivity at the OBL depth as described in Appendix D of Large et al. 1994 (equation D6, implemented by cvmix_kpp_compute_enhanced_diff). Can be used to partially mitigate resolution-dependent biases with nk=50? With a higher vertical resolution (e.g., 75), this parameter may be disabled.
  8. N_SMOOTH_RI: rapid changes in Ri can cause gravitational instabilities in the vertical. This can be controlled by vertically smoothing Ri using this parameter.
  9. KPP_IS_ADDITIVE: In some conditions, adding diffusivity may increase noise and mean biases in the OSBL (Van Roekel et al. 2018), while this was off in OM2, hence leaving False here. (vert_diff_back_via_max=.true.)
  10. USE_LMD94: Large et al. 1994 is widely used for the shear-driven mixing in CVMix.
  11. USE_CVMix_CONVECTION: Enhance mixing via CVMix.
  12. RI_CRIT: the critical value is set to be 0.3 by default, consistent with OM2. However, this is not considered the optimal value, as explained by Jackson et al. (2008).
  13. KD_MIN_TR: Minimal diffusivity for tracers. It is recommended to always apply this to tracers, especially in the massless layer near the bottom. The default value is 0.1KD. Since KD is 0.0 in this configuration, KD_MIN_TR is manually set to a small value of 2.0e-6.
aekiss commented 1 month ago

Thanks for this very helpful and detailed post @minghangli-uni! I took the liberty of editing to add a few more links and also some more detail on ENHANCE_DIFFUSION.

minghangli-uni commented 1 month ago

No worries @aekiss. I might not cover everything so feel free to add more.