Closed iangrooms closed 2 years ago
Passing tests in mom_aux and Cheyenne-MOM6-examples.
MOM_input parameters added:
USE_STANLEY_ISO = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in isopycnal slope
! code.
USE_STANLEY_GM = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in GM code.
STOCH_EOS = False ! [Boolean] default = False
! If true, stochastic perturbations are applied to the EOS in the PGF.
STANLEY_COEFF = -1.0 ! [not defined] default = -1.0
! Coefficient correlating the temperature gradient and SGS T variance.
STANLEY_A = 1.0 ! [not defined] default = 1.0
! Coefficient a which scales chi in stochastic perturbation of the SGS T
! variance.
USE_STANLEY_PGF = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in PGF code.
USE_STANLEY_ML = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in ML restrat code.
MOM_input parameters there were removed:
STANLEY_PRM_DET_COEFF = -1.0 ! [nondim] default = -1.0
! The coefficient correlating SGS temperature variance with the mean temperature
! gradient in the deterministic part of the Stanley parameterization. Negative
! values disable the scheme.
PGF_STANLEY_T2_DET_COEFF = -1.0 ! [nondim] default = -1.0
! The coefficient correlating SGS temperature variance with the mean temperature
! gradient in the deterministic part of the Stanley form of the Brankart
! correction. Negative values disable the scheme.
This PR builds on https://github.com/mom-ocean/MOM6/pull/1156 and https://github.com/mom-ocean/MOM6/pull/1209, implementing a correction to the computation of cell-averaged density in various parts of the model. A description of the parameterization and results can be found in these papers.
The main updates in this PR are the ability to use a new stochastic version of the correction, and the ability to turn on the density correction in the calculation of the mixed layer lateral density gradient in the mixed layer restratification parameterization. In addition, the code related to this parameterization has been re-factored a bit, along with some small bug fixes.
The parameterization can be toggled on/off in different parts of the code using the following flags:
USE_STANLEY_PGF
turns it on in computation of the pressure gradient forceUSE_STANLEY_ML
turns it on in the mixed layer restratification parameterizationUSE_STANLEY_ISO
turns it on in the computation of isopycnal slopes in MOM_isopycnal_slopes.F90. This doesn't necessarily turn it on in MOM_thickness_diffuse.F90 though, since MOM_thickness_diffuse.F90 sometimes computes its own isopycnal slopes. See belowUSE_STANLEY_GM
turns it on in the computation of isopycnal slopes in GM. Specifically, it setsuse_stanley
to.TRUE.
in these lines of MOM_thickness_diffuse.F90 https://github.com/NCAR/MOM6/blob/3d6242847bbec4e9a5ebf10e5ad5f3296b1f12c3/src/parameterizations/lateral/MOM_thickness_diffuse.F90#L797-L798.The tunable coefficients of the parameterization are controlled by
STANLEY_COEFF
this is the main tunable coefficient, denoted c in the papers linked above. The SGS temperature variance is parameterized as c times squared temperature differences.STANLEY_A
allows you to tune the amplitude of the noise in the stochastic version. The multiplicative noise isexp(a * chi)
. With a default of1.0
you get the stochastic parameterization described in the papers. With a value of0.0
you get a deterministic parameterization.