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] Sub-mesoscale parameterisation #181

Open
minghangli-uni opened this issue Jun 26, 2024 · 4 comments
Open

[0.25deg config] Sub-mesoscale parameterisation #181

minghangli-uni opened this issue Jun 26, 2024 · 4 comments

Comments

@minghangli-uni
Copy link
Contributor

minghangli-uni commented Jun 26, 2024

This parameterisation is used to account for the unresolved submesoscale mixed layer restratification.

As discussed in the namelist discussion,

the mixed layer restratification is not very sensitive to these parameters, so use the same as OM2 for consistency.

However, there are some differences in implementation between MOM5 and MOM6.

MIXEDLAYER_RESTRAT = True       !   [Boolean] default = False
                                ! If true, a density-gradient dependent re-stratifying flow is imposed in the
                                ! mixed layer. Can be used in ALE mode without restriction but in layer mode can
                                ! only be used if BULKMIXEDLAYER is true.
FOX_KEMPER_ML_RESTRAT_COEF = 1.0 !   [nondim] default = 0.0
                                ! A nondimensional coefficient that is proportional to the ratio of the
                                ! deformation radius to the dominant lengthscale of the submesoscale mixed layer
                                ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic
                                ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of
                                ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al.
                                ! (2010)
MLE_FRONT_LENGTH = 500.0       !   [m] default = 0.0
                                ! If non-zero, is the frontal-length scale used to calculate the upscaling of
                                ! buoyancy gradients that is otherwise represented by the parameter
                                ! FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is non-zero, it is recommended
                                ! to set FOX_KEMPER_ML_RESTRAT_COEF=1.0.
MLE_MLD_DECAY_TIME = 2.592E+06  !   [s] default = 0.0
                                ! The time-scale for a running-mean filter applied to the mixed-layer depth used
                                ! in the MLE restratification parameterization. When the MLD deepens below the
                                ! current running-mean the running-mean is instantaneously set to the current
                                ! MLD.
MLE_USE_PBL_MLD = True          !   [Boolean] default = False
                                ! If true, the MLE parameterization will use the mixed-layer depth provided by
                                ! the active PBL parameterization. If false, MLE will estimate a MLD based on a
                                ! density difference with the surface using the parameter MLE_DENSITY_DIFF.
MLE_MLD_STRETCH = 1.0           !   [nondim] default = 1.0
                                ! A scaling coefficient for stretching/shrinking the MLD used in the MLE scheme.
                                ! This simply multiplies MLD wherever used.

Comments:

  • The efficiency coefficient ($C_e$) of the overturning streamfunction is set to 0.05 in OM2, but is hard-coded to 0.0625 in MOM6. This hardcoding likely has a specific reason? I havent found any sources related to this coefficient.
  • MLE_MLD_DECAY_TIME = 2.592E+06, (30 days) accounts for the diurnal circle. The time-filtering method is unique to MOM6 and not used in MOM5.
  • MLE_FRONT_LENGTH is set to 500.0 now instead of 5000.0 in OM2. This is because, in OM2, the front length acts as a floor value calculated as front_length_inv = min(front_length_const_inv, coriolis_param/(epsln+wrk1_2d*buoy_freq_ave)). In MOM6, it is a single value globally. That might be the reason why OM4 did a few tests in their paper, using either 200m or 500m but only for 1/2 deg configurations. Further testing is needed for our 0.25deg configuration. In another ACCESS configuration, they use 500.0 for MLE_FRONT_LENGTH, hence we have adopted the same value for our 0.25deg setup.
  • MLE_USE_PBL_MLD = True, because the GFDL OM4 paper found that the MLD estimation based on density differences with the surface was unreliable. This is consistent with the usage of use_hblt_equal_mld = .true. of OM2.
  • There are other differences between MOM5 and MOM6. For example the timescale for mixing momentum across the mixed layer is a constant value of 1 day in MOM5, whereas in MOM6, this timescale is calculated dynamically.

Other relevant discussions can be found here #104.

@aekiss
Copy link
Contributor

aekiss commented Jul 17, 2024

I don't know why the MOM6 efficiency coefficient ($C_e$) is 0.0625. This value seems to have come from GOLD many years ago. Fox-Kemper et al 2008 discuss the value of $C_e$ - it seems fairly poorly constrained, but they suggest 0.06 - 0.08.

@aekiss
Copy link
Contributor

aekiss commented Jul 17, 2024

I also don't recall why we used coefficient_ce = $C_e=0.05$ in ACCESS-OM2, since MOM5 recommends the range 0.06 - 0.08, with a default of 0.07.

@aekiss
Copy link
Contributor

aekiss commented Jul 17, 2024

  • MLE_USE_PBL_MLD = True, because the GFDL OM4 paper found that the MLD estimation based on density differences with the surface was unreliable. This is consistent with the usage of use_hblt_equal_mld = .true. of OM2.

I think use_hblt_equal_mld = .true. actually has the opposite meaning from MLE_USE_PBL_MLD = True?
Apparently use_hblt_equal_mld = .true. diagnoses MLD rather than using what KPP provides - see code here and here.

@minghangli-uni
Copy link
Contributor Author

Thanks @aekiss you are right. They are the opposite.

So there are basically 2 options:

  • Since we are using the time-filtering method (MLE_MLD_DECAY_TIME) to handle the diurnal cycle, it might be better to set the instantaneous BLD as the MLD, which sets MLE_USE_PBL_MLD=True. (GFDL OM4 paper)
  • To be consistent with OM2, MLE_USE_PBL_MLD should to be False by default, the density difference used to detect the MLD is 0.03 (Fox-Kemper et al. (2010)), and MLE_MLD_DECAY_TIME=0.0 by default.

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

No branches or pull requests

2 participants