Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.25deg config] Vertical Mixing #189

Open
minghangli-uni opened this issue Jul 16, 2024 · 2 comments
Open

[0.25deg config] Vertical Mixing #189

minghangli-uni opened this issue Jul 16, 2024 · 2 comments
Labels

Comments

@minghangli-uni
Copy link
Contributor

minghangli-uni commented Jul 16, 2024

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.

  • KPP provides a first order closure for the vertical turbulent correlation within Ocean Boundary Layer (OBL).
  • As found by Van Roekel et al. 2018, the KPP BLD is more consistent with LES at coarse grid resolution. For higher vertical resolution configurations (75?), we may tend to use the ePBL model, which employs 2nd order parameterisation, along with the shear-driven mixing using Jackson et al. (2008).
  • The following parameters enable KPP boundary layer mixing and internal mixing.
! === 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
Copy link
Contributor

aekiss commented Jul 16, 2024

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
Copy link
Contributor Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants