!----------------------------------------------------------------------- &namzdf ! vertical physics !----------------------------------------------------------------------- rn_avm0 = 1.2e-4 ! vertical eddy viscosity [m2/s] (background Kz if not "key_zdfcst") rn_avt0 = 1.2e-5 ! vertical eddy diffusivity [m2/s] (background Kz if not "key_zdfcst") nn_avb = 0 ! profile for background avt & avm (=1) or not (=0) nn_havtb = 0 ! horizontal shape for avtb (=1) or not (=0) ln_zdfevd = .true. ! enhanced vertical diffusion (evd) (T) or not (F) nn_evdm = 0 ! evd apply on tracer (=0) or on tracer and momentum (=1) rn_avevd = 100. ! evd mixing coefficient [m2/s] ln_zdfnpc = .false. ! Non-Penetrative Convective algorithm (T) or not (F) nn_npc = 1 ! frequency of application of npc nn_npcp = 365 ! npc control print frequency ln_zdfexp = .false. ! time-stepping: split-explicit (T) or implicit (F) time stepping nn_zdfexp = 3 ! number of sub-timestep for ln_zdfexp=T /
Static instabilities (i.e. light potential densities under heavy ones) may occur at particular ocean grid points. In nature, convective processes quickly re-establish the static stability of the water column. These processes have been removed from the model via the hydrostatic assumption so they must be parameterized. Three parameterisations are available to deal with convective processes: a non-penetrative convective adjustment or an enhanced vertical diffusion, or/and the use of a turbulent closure scheme.
!----------------------------------------------------------------------- &namzdf ! vertical physics !----------------------------------------------------------------------- rn_avm0 = 1.2e-4 ! vertical eddy viscosity [m2/s] (background Kz if not "key_zdfcst") rn_avt0 = 1.2e-5 ! vertical eddy diffusivity [m2/s] (background Kz if not "key_zdfcst") nn_avb = 0 ! profile for background avt & avm (=1) or not (=0) nn_havtb = 0 ! horizontal shape for avtb (=1) or not (=0) ln_zdfevd = .true. ! enhanced vertical diffusion (evd) (T) or not (F) nn_evdm = 0 ! evd apply on tracer (=0) or on tracer and momentum (=1) rn_avevd = 100. ! evd mixing coefficient [m2/s] ln_zdfnpc = .false. ! Non-Penetrative Convective algorithm (T) or not (F) nn_npc = 1 ! frequency of application of npc nn_npcp = 365 ! npc control print frequency ln_zdfexp = .false. ! time-stepping: split-explicit (T) or implicit (F) time stepping nn_zdfexp = 3 ! number of sub-timestep for ln_zdfexp=T /
![]() |
Options are defined through the namzdf namelist variables.
The non-penetrative convective adjustment is used when ln_zdfnpc = true.
It is applied at each nn_npc time step and mixes downwards instantaneously
the statically unstable portion of the water column, but only until the density
structure becomes neutrally stable ( until the mixed portion of the water
column has exactly the density of the water just below) [Madec et al., 1991b].
The associated algorithm is an iterative process used in the following way
(Fig. 10.3): starting from the top of the ocean, the first instability is
found. Assume in the following that the instability is located between levels
and
. The temperature and salinity in the two levels are
vertically mixed, conserving the heat and salt contents of the water column.
The new density is then computed by a linear approximation. If the new
density profile is still unstable between levels
and
, levels
,
and
are then mixed. This process is repeated until stability is
established below the level
(the mixing process can go down to the
ocean bottom). The algorithm is repeated to check if the density profile
between level
and
is unstable and/or if there is no deeper instability.
This algorithm is significantly different from mixing statically unstable levels two by two. The latter procedure cannot converge with a finite number of iterations for some vertical profiles while the algorithm used in NEMO converges for any profile in a number of iterations which is less than the number of vertical levels. This property is of paramount importance as pointed out by Killworth [1989]: it avoids the existence of permanent and unrealistic static instabilities at the sea surface. This non-penetrative convective algorithm has been proved successful in studies of the deep water formation in the north-western Mediterranean Sea [Madec and Crépon, 1991, Madec et al., 1991b, Madec et al., 1991a].
The current implementation has been modified in order to deal with any non linear
equation of seawater (L. Brodeau, personnal communication).
Two main differences have been introduced compared to the original algorithm:
the stability is now checked using the Brunt-Väisälä frequency
(not the the difference in potential density) ;
when two levels are found unstable, their thermal and haline expansion coefficients
are vertically mixed in the same way their temperature and salinity has been mixed.
These two modifications allow the algorithm to perform properly and accurately
with TEOS10 or EOS-80 without having to recompute the expansion coefficients at each
mixing iteration.
!----------------------------------------------------------------------- &namzdf ! vertical physics !----------------------------------------------------------------------- rn_avm0 = 1.2e-4 ! vertical eddy viscosity [m2/s] (background Kz if not "key_zdfcst") rn_avt0 = 1.2e-5 ! vertical eddy diffusivity [m2/s] (background Kz if not "key_zdfcst") nn_avb = 0 ! profile for background avt & avm (=1) or not (=0) nn_havtb = 0 ! horizontal shape for avtb (=1) or not (=0) ln_zdfevd = .true. ! enhanced vertical diffusion (evd) (T) or not (F) nn_evdm = 0 ! evd apply on tracer (=0) or on tracer and momentum (=1) rn_avevd = 100. ! evd mixing coefficient [m2/s] ln_zdfnpc = .false. ! Non-Penetrative Convective algorithm (T) or not (F) nn_npc = 1 ! frequency of application of npc nn_npcp = 365 ! npc control print frequency ln_zdfexp = .false. ! time-stepping: split-explicit (T) or implicit (F) time stepping nn_zdfexp = 3 ! number of sub-timestep for ln_zdfexp=T /
Options are defined through the namzdf namelist variables.
The enhanced vertical diffusion parameterisation is used when ln_zdfevd=true.
In this case, the vertical eddy mixing coefficients are assigned very large values
(a typical value is
in regions where the stratification is unstable
(
when
the Brunt-Vaisälä frequency is negative)
[Lazar et al., 1999, Lazar, 1997]. This is done either on tracers only
(nn_evdm=0) or on both momentum and tracers (nn_evdm=1).
In practice, where
,
and
, and
if nn_evdm=1, the four neighbouring
and
values also, are set equal to the namelist parameter rn_avevd. A typical value
for
is between 1 and
. This parameterisation of
convective processes is less time consuming than the convective adjustment
algorithm presented above when mixing both tracers and momentum in the
case of static instabilities. It requires the use of an implicit time stepping on
vertical diffusion terms (i.e. ln_zdfexp=false).
Note that the stability test is performed on both before and now
values of . This removes a potential source of divergence of odd and
even time step in a leapfrog environment [Leclair, 2010] (see §3.5).
The turbulent closure scheme presented in §10.1.3 and §10.1.5
(key_ zdftke or key_ zdftke is defined) in theory solves the problem of statically
unstable density profiles. In such a case, the term corresponding to the
destruction of turbulent kinetic energy through stratification in (10.4)
or (10.19) becomes a source term, since is negative.
It results in large values of
and
, and also the four neighbouring
(up to
. These large values
restore the static stability of the water column in a way similar to that of the
enhanced vertical diffusion parameterisation (§10.2.2). However,
in the vicinity of the sea surface (first ocean layer), the eddy coefficients
computed by the turbulent closure scheme do not usually exceed
,
because the mixing length scale is bounded by the distance to the sea surface.
It can thus be useful to combine the enhanced vertical
diffusion with the turbulent closure scheme,
setting the ln_zdfnpc
namelist parameter to true and defining the turbulent closure CPP key all together.
The KPP turbulent closure scheme already includes enhanced vertical diffusion
in the case of convection, as governed by the variables and
found in zdfkpp.F90, therefore ln_zdfevd=false should be used with the KPP
scheme.
Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17