Some entrainment scenarios

This test case describes three idealised entrainment scenarios as discussed in the review paper of Umlauf and Burchard (2005). These are: wind-driven entrainment into a linearly stratified fluid, wind-driven entrainment into a two-layer fluid, and entrainment in free convection. As in the cases before, the input files for different turbulence closure models are contained in a number of sub-directories. The entrainment test cases is also the first test for the GOTM implementation of the KPP turbulence model described in section 4.8.

For all input files, the default is a linear density stratification due to a not necessarly linear temperature stratification (because the equation of state is not necessarily linear). The stratification corresponds to $ N^2=1 \cdot 10^{-4}$ s$ ^{-2}$. Salinity is constant. Have look into obs.nml to understand how different types of initial stratifcations can be specified in GOTM. The water depth is $ H=50$ m, deep enough for the surface induced mixing not to reach the bed within the $ 24$ h of simulation. Rotation is neglected. By default, a constant wind stress of $ \tau_x= 0.1027$ Pa is set in airsea.nml.

Note, that for all turbulence models, except the Mellor-Yamada model, we set compute_c3 = .true. in gotmturb.nml, which means that the model constant $ c_{\epsilon 3}$ in (163) (or its counterpart in all other models) is computed from a prescribed steady-state Richardson-number, $ Ri_{st}$ (see discussion in the context of (114)). Some more discussion is given in Burchard and Bolding (2001) and Umlauf and Burchard (2005). As pointed out in these papers, it is the value of the steady-state Richardson number (and thus the value of $ c_{\epsilon 3}$) that determines the mixed layer depth in almost all shear-driven entrainment scenarios.

To run the Mellor-Yamada model, use the input files in MellorYamada_nml/. Looking at the results you will realize that this model is not at all in accordance with the experimental results of Price (1979) for the entrainment in a linearly stratified fluid. The reason can be traced back to the behaviour of the turbulent length scale in the strongly stratified thermocline. Galperin et al. (1988) suggested to clip the length scale at a certain value to circumvent this problem. Their solution can be activated by setting length_lim = .true. in gotmturb.nml. A second solution has been suggested by Burchard (2001b), who computed the model constant $ E_3$ in (160) from the steady-state Richardson-number as described above. To activate this method, select compute_c3 = .true. (and length_lim = .false. because clipping is not needed any more).

This scenario has been used by us in several publications as a test for vertical mixing schemes, see Burchard et al. (1998), Burchard et al. (1999), Burchard and Petersen (1999), Burchard and Bolding (2001) Burchard and Deleersnijder (2001), Deleersnijder and Burchard (2003), and Umlauf et al. (2003).

The second entrainment scenario discussed in Umlauf and Burchard (2005) is essentially identical to the one just described, however, it starts from a two layer stratification. To use this kind of initial condition, first set analyt_method=2 in obs.nml, and specify the desired temperatures, t_1 and t_2 for the upper and lower layer, respectively. The thickness of the upper layer is z_t1. For a pure two-layer stratification, set z_t2=z_t1, otherwise you will get a linear transition between the upper and the lower layer.

For convective entrainment, you simply need to set the momentum flux, const_tx, to zero and specify an appropriate negative heat flux, const_heat, in airsea.nml, see Umlauf and Burchard (2005).

If you run the KPP-model, some model parameters can be set in the extra input file kpp.nml found in kpp_nml/. With this model, the depth of the mixing layer depends mostly on the value of the critical bulk Richardson number that can also be set in this file. When you work with the KPP-model in free convection, don't forget to check if the pre-processor macro NONLOCAL is defined cppdefs.h (after changes in this file, don't forget to re-compile the whole code!). If NONLOCAL is defined, the KPP model also computes the non-local fluxes of heat (and salinity, if the salinity equation is active). In any case, the $ z$-coordinate of the edges of the upper and lower mixing layers are given as zsbl and zbbl, respectively, in the netCDF output file.

Karsten Bolding 2012-01-24