New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
chap_ZDF.tex in NEMO/trunk/doc/latex/NEMO/subfiles – NEMO

source: NEMO/trunk/doc/latex/NEMO/subfiles/chap_ZDF.tex

Last change on this file was 15557, checked in by amoulin, 2 years ago

Manual updates for wave-coupling interaction - ticket #2744

File size: 100.2 KB
Line 
1\documentclass[../main/NEMO_manual]{subfiles}
2
3\begin{document}
4
5\chapter{Vertical Ocean Physics (ZDF)}
6\label{chap:ZDF}
7
8\chaptertoc
9
10\paragraph{Changes record} ~\\
11
12{\footnotesize
13  \begin{tabularx}{\textwidth}{l||X|X}
14    Release & Author(s) & Modifications \\
15    \hline
16    {\em  next} & {\em A. Moulin, E. Clementi} & {\em Update of \autoref{subsec:ZDF_tke} in for wave coupling}\\[2mm]
17    {\em   4.0} & {\em ...} & {\em ...} \\
18    {\em   3.6} & {\em ...} & {\em ...} \\
19    {\em   3.4} & {\em ...} & {\em ...} \\
20    {\em <=3.4} & {\em ...} & {\em ...}
21  \end{tabularx}
22}
23
24\clearpage
25
26\cmtgm{ Add here a small introduction to ZDF and naming of the different physics
27(similar to what have been written for TRA and DYN).}
28
29%% =================================================================================================
30\section{Vertical mixing}
31\label{sec:ZDF}
32
33The discrete form of the ocean subgrid scale physics has been presented in
34\autoref{sec:TRA_zdf} and \autoref{sec:DYN_zdf}.
35At the surface and bottom boundaries, the turbulent fluxes of momentum, heat and salt have to be defined.
36At the surface they are prescribed from the surface forcing (see \autoref{chap:SBC}),
37while at the bottom they are set to zero for heat and salt,
38unless a geothermal flux forcing is prescribed as a bottom boundary condition (\ie\ \np{ln_trabbc}{ln\_trabbc} defined,
39see \autoref{subsec:TRA_bbc}), and specified through a bottom friction parameterisation for momentum
40(see \autoref{sec:ZDF_drg}).
41
42In this section we briefly discuss the various choices offered to compute the vertical eddy viscosity and
43diffusivity coefficients, $A_u^{vm}$ , $A_v^{vm}$ and $A^{vT}$ ($A^{vS}$), defined at $uw$-, $vw$- and $w$- points,
44respectively (see \autoref{sec:TRA_zdf} and \autoref{sec:DYN_zdf}).
45These coefficients can be assumed to be either constant, or a function of the local Richardson number,
46or computed from a turbulent closure model (either TKE or GLS or OSMOSIS formulation).
47The computation of these coefficients is initialized in the \mdl{zdfphy} module and performed in
48the \mdl{zdfric}, \mdl{zdftke} or \mdl{zdfgls} or \mdl{zdfosm} modules.
49The trends due to the vertical momentum and tracer diffusion, including the surface forcing,
50are computed and added to the general trend in the \mdl{dynzdf} and \mdl{trazdf} modules, respectively.
51%These trends can be computed using either a forward time stepping scheme
52%(namelist parameter \np[=.true.]{ln_zdfexp}{ln\_zdfexp}) or a backward time stepping scheme
53%(\np[=.false.]{ln_zdfexp}{ln\_zdfexp}) depending on the magnitude of the mixing coefficients,
54%and thus of the formulation used (see \autoref{chap:TD}).
55
56\begin{listing}
57  \nlst{namzdf}
58  \caption{\forcode{&namzdf}}
59  \label{lst:namzdf}
60\end{listing}
61
62%% =================================================================================================
63\subsection[Constant (\forcode{ln_zdfcst})]{Constant (\protect\np{ln_zdfcst}{ln\_zdfcst})}
64\label{subsec:ZDF_cst}
65
66Options are defined through the \nam{zdf}{zdf} namelist variables.
67When \np{ln_zdfcst}{ln\_zdfcst} is defined, the momentum and tracer vertical eddy coefficients are set to
68constant values over the whole ocean.
69This is the crudest way to define the vertical ocean physics.
70It is recommended to use this option only in process studies, not in basin scale simulations.
71Typical values used in this case are:
72\begin{align*}
73  A_u^{vm} = A_v^{vm} &= 1.2\ 10^{-4}~m^2.s^{-1}   \\
74  A^{vT} = A^{vS} &= 1.2\ 10^{-5}~m^2.s^{-1}
75\end{align*}
76
77These values are set through the \np{rn_avm0}{rn\_avm0} and \np{rn_avt0}{rn\_avt0} namelist parameters.
78In all cases, do not use values smaller that those associated with the molecular viscosity and diffusivity,
79that is $\sim10^{-6}~m^2.s^{-1}$ for momentum, $\sim10^{-7}~m^2.s^{-1}$ for temperature and
80$\sim10^{-9}~m^2.s^{-1}$ for salinity.
81
82%% =================================================================================================
83\subsection[Richardson number dependent (\forcode{ln_zdfric})]{Richardson number dependent (\protect\np{ln_zdfric}{ln\_zdfric})}
84\label{subsec:ZDF_ric}
85
86\begin{listing}
87  \nlst{namzdf_ric}
88  \caption{\forcode{&namzdf_ric}}
89  \label{lst:namzdf_ric}
90\end{listing}
91
92When \np[=.true.]{ln_zdfric}{ln\_zdfric}, a local Richardson number dependent formulation for the vertical momentum and
93tracer eddy coefficients is set through the \nam{zdf_ric}{zdf\_ric} namelist variables.
94The vertical mixing coefficients are diagnosed from the large scale variables computed by the model.
95\textit{In situ} measurements have been used to link vertical turbulent activity to large scale ocean structures.
96The hypothesis of a mixing mainly maintained by the growth of Kelvin-Helmholtz like instabilities leads to
97a dependency between the vertical eddy coefficients and the local Richardson number
98(\ie\ the ratio of stratification to vertical shear).
99Following \citet{pacanowski.philander_JPO81}, the following formulation has been implemented:
100\[
101  % \label{eq:ZDF_ric}
102  \left\{
103    \begin{aligned}
104      A^{vT} &= \frac {A_{ric}^{vT}}{\left( 1+a \; Ri \right)^n} + A_b^{vT}       \\
105      A^{vm} &= \frac{A^{vT}        }{\left( 1+ a \;Ri  \right)   } + A_b^{vm}
106    \end{aligned}
107  \right.
108\]
109where $Ri = N^2 / \left(\partial_z \textbf{U}_h \right)^2$ is the local Richardson number,
110$N$ is the local Brunt-Vais\"{a}l\"{a} frequency (see \autoref{subsec:TRA_bn2}),
111$A_b^{vT} $ and $A_b^{vm}$ are the constant background values set as in the constant case
112(see \autoref{subsec:ZDF_cst}), and $A_{ric}^{vT} = 10^{-4}~m^2.s^{-1}$ is the maximum value that
113can be reached by the coefficient when $Ri\leq 0$, $a=5$ and $n=2$.
114The last three values can be modified by setting the \np{rn_avmri}{rn\_avmri}, \np{rn_alp}{rn\_alp} and
115\np{nn_ric}{nn\_ric} namelist parameters, respectively.
116
117A simple mixing-layer model to transfer and dissipate the atmospheric forcings
118(wind-stress and buoyancy fluxes) can be activated setting the \np[=.true.]{ln_mldw}{ln\_mldw} in the namelist.
119
120In this case, the local depth of turbulent wind-mixing or "Ekman depth" $h_{e}(x,y,t)$ is evaluated and
121the vertical eddy coefficients prescribed within this layer.
122
123This depth is assumed proportional to the "depth of frictional influence" that is limited by rotation:
124\[
125  h_{e} = Ek \frac {u^{*}} {f_{0}}
126\]
127where, $Ek$ is an empirical parameter, $u^{*}$ is the friction velocity and $f_{0}$ is the Coriolis parameter.
128
129In this similarity height relationship, the turbulent friction velocity:
130\[
131  u^{*} = \sqrt \frac {|\tau|} {\rho_o}
132\]
133is computed from the wind stress vector $|\tau|$ and the reference density $ \rho_o$.
134The final $h_{e}$ is further constrained by the adjustable bounds \np{rn_mldmin}{rn\_mldmin} and \np{rn_mldmax}{rn\_mldmax}.
135Once $h_{e}$ is computed, the vertical eddy coefficients within $h_{e}$ are set to
136the empirical values \np{rn_wtmix}{rn\_wtmix} and \np{rn_wvmix}{rn\_wvmix} \citep{lermusiaux_JMS01}.
137
138%% =================================================================================================
139\subsection[TKE turbulent closure scheme (\forcode{ln_zdftke})]{TKE turbulent closure scheme (\protect\np{ln_zdftke}{ln\_zdftke})}
140\label{subsec:ZDF_tke}
141
142\begin{listing}
143  \nlst{namzdf_tke}
144  \caption{\forcode{&namzdf_tke}}
145  \label{lst:namzdf_tke}
146\end{listing}
147
148The vertical eddy viscosity and diffusivity coefficients are computed from a TKE turbulent closure model based on
149a prognostic equation for $\bar{e}$, the turbulent kinetic energy,
150and a closure assumption for the turbulent length scales.
151This turbulent closure model has been developed by \citet{bougeault.lacarrere_MWR89} in the atmospheric case,
152adapted by \citet{gaspar.gregoris.ea_JGR90} for the oceanic case, and embedded in OPA, the ancestor of \NEMO,
153by \citet{blanke.delecluse_JPO93} for equatorial Atlantic simulations.
154Since then, significant modifications have been introduced by \citet{madec.delecluse.ea_NPM98} in both the implementation and
155the formulation of the mixing length scale.
156The time evolution of $\bar{e}$ is the result of the production of $\bar{e}$ through vertical shear,
157its destruction through stratification, its vertical diffusion, and its dissipation of \citet{kolmogorov_IANS42} type:
158\begin{equation}
159  \label{eq:ZDF_tke_e}
160  \frac{\partial \bar{e}}{\partial t} =
161  \frac{K_m}{{e_3}^2 }\;\left[ {\left( {\frac{\partial u}{\partial k}} \right)^2
162      +\left( {\frac{\partial v}{\partial k}} \right)^2} \right]
163  -K_\rho\,N^2
164  +\frac{1}{e_3}  \;\frac{\partial }{\partial k}\left[ {\frac{A^{vm}}{e_3 }
165      \;\frac{\partial \bar{e}}{\partial k}} \right]
166  - c_\epsilon \;\frac{\bar {e}^{3/2}}{l_\epsilon }
167\end{equation}
168\[
169  % \label{eq:ZDF_tke_kz}
170  \begin{split}
171    K_m &= C_k\  l_k\  \sqrt {\bar{e}\; }    \\
172    K_\rho &= A^{vm} / P_{rt}
173  \end{split}
174\]
175where $N$ is the local Brunt-Vais\"{a}l\"{a} frequency (see \autoref{subsec:TRA_bn2}),
176$l_{\epsilon }$ and $l_{\kappa }$ are the dissipation and mixing length scales,
177$P_{rt}$ is the Prandtl number, $K_m$ and $K_\rho$ are the vertical eddy viscosity and diffusivity coefficients.
178The constants $C_k =  0.1$ and $C_\epsilon = \sqrt {2} /2$ $\approx 0.7$ are designed to deal with
179vertical mixing at any depth \citep{gaspar.gregoris.ea_JGR90}.
180They are set through namelist parameters \np{nn_ediff}{nn\_ediff} and \np{nn_ediss}{nn\_ediss}.
181$P_{rt}$ can be set to unity or, following \citet{blanke.delecluse_JPO93}, be a function of the local Richardson number, $R_i$:
182\begin{align*}
183  % \label{eq:ZDF_prt}
184  P_{rt} =
185  \begin{cases}
186    \ \ \ 1 &      \text{if $\ R_i \leq 0.2$}   \\
187    5\,R_i &      \text{if $\ 0.2 \leq R_i \leq 2$}   \\
188    \ \ 10 &      \text{if $\ 2 \leq R_i$}
189  \end{cases}
190\end{align*}
191The choice of $P_{rt}$ is controlled by the \np{nn_pdl}{nn\_pdl} namelist variable.
192
193At the sea surface, the value of $\bar{e}$ is prescribed from the wind stress field as
194$\bar{e}_o = e_{bb} |\tau| / \rho_o$, with $e_{bb}$ the \np{rn_ebb}{rn\_ebb} namelist parameter.
195The default value of $e_{bb}$ is 3.75. \citep{gaspar.gregoris.ea_JGR90}), however a much larger value can be used when
196taking into account the surface wave breaking (see below \autoref{eq:ZDF_Esbc}).
197The bottom value of TKE is assumed to be equal to the value of the level just above.
198The time integration of the $\bar{e}$ equation may formally lead to negative values because
199the numerical scheme does not ensure its positivity.
200To overcome this problem, a cut-off in the minimum value of $\bar{e}$ is used (\np{rn_emin}{rn\_emin} namelist parameter).
201Following \citet{gaspar.gregoris.ea_JGR90}, the cut-off value is set to $\sqrt{2}/2~10^{-6}~m^2.s^{-2}$.
202This allows the subsequent formulations to match that of \citet{gargett_JMR84} for the diffusion in
203the thermocline and deep ocean :  $K_\rho = 10^{-3} / N$.
204In addition, a cut-off is applied on $K_m$ and $K_\rho$ to avoid numerical instabilities associated with
205too weak vertical diffusion.
206They must be specified at least larger than the molecular values, and are set through \np{rn_avm0}{rn\_avm0} and
207\np{rn_avt0}{rn\_avt0} (\nam{zdf}{zdf} namelist, see \autoref{subsec:ZDF_cst}).
208
209%% =================================================================================================
210\subsubsection{Turbulent length scale}
211
212For computational efficiency, the original formulation of the turbulent length scales proposed by
213\citet{gaspar.gregoris.ea_JGR90} has been simplified.
214Four formulations are proposed, the choice of which is controlled by the \np{nn_mxl}{nn\_mxl} namelist parameter.
215The first two are based on the following first order approximation \citep{blanke.delecluse_JPO93}:
216\begin{equation}
217  \label{eq:ZDF_tke_mxl0_1}
218  l_k = l_\epsilon = \sqrt {2 \bar{e}\; } / N
219\end{equation}
220which is valid in a stable stratified region with constant values of the Brunt-Vais\"{a}l\"{a} frequency.
221The resulting length scale is bounded by the distance to the surface or to the bottom
222(\np[=0]{nn_mxl}{nn\_mxl}) or by the local vertical scale factor (\np[=1]{nn_mxl}{nn\_mxl}).
223\citet{blanke.delecluse_JPO93} notice that this simplification has two major drawbacks:
224it makes no sense for locally unstable stratification and the computation no longer uses all
225the information contained in the vertical density profile.
226To overcome these drawbacks, \citet{madec.delecluse.ea_NPM98} introduces the \np[=2, 3]{nn_mxl}{nn\_mxl} cases,
227which add an extra assumption concerning the vertical gradient of the computed length scale.
228So, the length scales are first evaluated as in \autoref{eq:ZDF_tke_mxl0_1} and then bounded such that:
229\begin{equation}
230  \label{eq:ZDF_tke_mxl_constraint}
231  \frac{1}{e_3 }\left| {\frac{\partial l}{\partial k}} \right| \leq 1
232  \qquad \text{with }\  l =  l_k = l_\epsilon
233\end{equation}
234\autoref{eq:ZDF_tke_mxl_constraint} means that the vertical variations of the length scale cannot be larger than
235the variations of depth.
236It provides a better approximation of the \citet{gaspar.gregoris.ea_JGR90} formulation while being much less
237time consuming.
238In particular, it allows the length scale to be limited not only by the distance to the surface or
239to the ocean bottom but also by the distance to a strongly stratified portion of the water column such as
240the thermocline (\autoref{fig:ZDF_mixing_length}).
241In order to impose the \autoref{eq:ZDF_tke_mxl_constraint} constraint, we introduce two additional length scales:
242$l_{up}$ and $l_{dwn}$, the upward and downward length scales, and
243evaluate the dissipation and mixing length scales as
244(and note that here we use numerical indexing):
245\begin{figure}[!t]
246  \centering
247  \includegraphics[width=0.66\textwidth]{ZDF_mixing_length}
248  \caption[Mixing length computation]{Illustration of the mixing length computation}
249  \label{fig:ZDF_mixing_length}
250\end{figure}
251\[
252  % \label{eq:ZDF_tke_mxl2}
253  \begin{aligned}
254    l_{up\ \ }^{(k)} &= \min \left(  l^{(k)} \ , \ l_{up}^{(k+1)} + e_{3t}^{(k)}\ \ \ \;  \right)
255    \quad &\text{ from $k=1$ to $jpk$ }\ \\
256    l_{dwn}^{(k)} &= \min \left(  l^{(k)} \ , \ l_{dwn}^{(k-1)} + e_{3t}^{(k-1)\right)
257    \quad &\text{ from $k=jpk$ to $1$ }\ \\
258  \end{aligned}
259\]
260where $l^{(k)}$ is computed using \autoref{eq:ZDF_tke_mxl0_1}, \ie\ $l^{(k)} = \sqrt {2 {\bar e}^{(k)} / {N^2}^{(k)} }$.
261
262In the \np[=2]{nn_mxl}{nn\_mxl} case, the dissipation and mixing length scales take the same value:
263$ l_k=  l_\epsilon = \min \left(\ l_{up} \;,\;  l_{dwn}\ \right)$, while in the \np[=3]{nn_mxl}{nn\_mxl} case,
264the dissipation and mixing turbulent length scales are give as in \citet{gaspar.gregoris.ea_JGR90}:
265\[
266  % \label{eq:ZDF_tke_mxl_gaspar}
267  \begin{aligned}
268    & l_k          = \sqrt{\  l_{up} \ \ l_{dwn}\ }   \\
269    & l_\epsilon = \min \left(\ l_{up} \;,\;  l_{dwn}\ \right)
270  \end{aligned}
271\]
272
273At the ocean surface, a non zero length scale is set through the  \np{rn_mxl0}{rn\_mxl0} namelist parameter.
274Usually the surface scale is given by $l_o = \kappa \,z_o$ where $\kappa = 0.4$ is von Karman's constant and
275$z_o$ the roughness parameter of the surface.
276Assuming $z_o=0.1$~m \citep{craig.banner_JPO94} leads to a 0.04~m, the default value of \np{rn_mxl0}{rn\_mxl0}.
277In the ocean interior a minimum length scale is set to recover the molecular viscosity when
278$\bar{e}$ reach its minimum value ($1.10^{-6}= C_k\, l_{min} \,\sqrt{\bar{e}_{min}}$ ).
279
280%% =================================================================================================
281\subsubsection{Surface wave breaking parameterization (No information from an external wave model)}
282\label{subsubsec:ZDF_tke_wave} 
283
284Following \citet{mellor.blumberg_JPO04}, the TKE turbulence closure model has been modified to
285include the effect of surface wave breaking energetics.
286This results in a reduction of summertime surface temperature when the mixed layer is relatively shallow.
287The \citet{mellor.blumberg_JPO04} modifications acts on surface length scale and TKE values and
288air-sea drag coefficient.
289The latter concerns the bulk formulae and is not discussed here.
290
291Following \citet{craig.banner_JPO94}, the boundary condition on surface TKE value is :
292\begin{equation}
293  \label{eq:ZDF_Esbc}
294  \bar{e}_o = \frac{1}{2}\,\left(  15.8\,\alpha_{CB} \right)^{2/3} \,\frac{|\tau|}{\rho_o}
295\end{equation}
296where $\alpha_{CB}$ is the \citet{craig.banner_JPO94} constant of proportionality which depends on the ''wave age'',
297ranging from 57 for mature waves to 146 for younger waves \citep{mellor.blumberg_JPO04}.
298The boundary condition on the turbulent length scale follows the Charnock's relation:
299\begin{equation}
300  \label{eq:ZDF_Lsbc}
301  l_o = \kappa \beta \,\frac{|\tau|}{g\,\rho_o}
302\end{equation}
303where $\kappa=0.40$ is the von Karman constant, and $\beta$ is the Charnock's constant.
304\citet{mellor.blumberg_JPO04} suggest $\beta = 2.10^{5}$ the value chosen by
305\citet{stacey_JPO99} citing observation evidence, and
306$\alpha_{CB} = 100$ the Craig and Banner's value.
307As the surface boundary condition on TKE is prescribed through $\bar{e}_o = e_{bb} |\tau| / \rho_o$,
308with $e_{bb}$ the \np{rn_ebb}{rn\_ebb} namelist parameter, setting \np[=67.83]{rn_ebb}{rn\_ebb} corresponds
309to $\alpha_{CB} = 100$.
310
311Further setting  \np[=.true.]{ln_mxl0}{ln\_mxl0},  applies \autoref{eq:ZDF_Lsbc} as the surface boundary condition on the length scale, with $\beta$ hard coded to the Stacey's value. Note that a minimal threshold of \np{rn_emin0}{rn\_emin0}$=10^{-4}~m^2.s^{-2}$ (namelist parameters) is applied on the surface $\bar{e}$ value.\\
312
313\subsubsection{Surface wave breaking parameterization (using information from an external wave model)}
314\label{subsubsec:ZDF_tke_waveco} 
315
316Surface boundary conditions for the turbulent kinetic energy, the mixing length scale and the dissipative length scale can be defined using wave fields provided from an external wave model (see \autoref{chap:SBC}, \autoref{sec:SBC_wave}).
317The injection of turbulent kinetic energy at the surface can be given by the dissipation of the wave field usually dominated by wave breaking. In coupled mode, the wave to ocean energy flux term ($\Phi_o$) from an external wave model can be provided and then converted into an ocean turbulence source by setting ln\_phioc=.true.
318
319The surface TKE can be defined by a Dirichlet boundary condition setting $nn\_bc\_surf=0$ in \nam{zdf}{tke} namelist:
320\begin{equation}
321  \bar{e}_o  = \frac{1}{2}\,\left( 15.8 \, \frac{\Phi_o}{\rho_o}\right) ^{2/3}
322\end{equation}
323
324Nevertheless, due to the definition of the computational grid, the TKE flux is not applied at the free surface but at the centre of the topmost grid cell ($z = z1$). To be more accurate, a Neumann boundary condition amounting to interpreter the half-grid cell at the top as a constant flux layer (consistent with the surface layer Monin–Obukhov theory) can be applied setting $nn\_bc\_surf=1$ in  \nam{zdf}{tke} namelist \citep{couvelard_2020}:
325
326\begin{equation}
327  \left(\frac{Km}{e_3}\,\partial_k e \right)_{z=z1} = \frac{\Phi_o}{\rho_o}
328\end{equation}
329
330
331The mixing length scale surface value $l_0$ can be estimated from the surface roughness length z0:
332\begin{equation}
333  l_o = \kappa \, \frac{ \left( C_k\,C_\epsilon \right) ^{1/4}}{C_k}\, z0
334\end{equation}
335where $z0$ is directly estimated from the significant wave height ($Hs$) provided by the external wave model as $z0=1.6Hs$. To use this option ln\_mxhsw as well as ln\_wave and ln\_sdw have to be set to .true.
336
337%% =================================================================================================
338\subsubsection{Langmuir cells}
339\label{subsubsec:ZDF_tke_langmuir}
340
341Langmuir circulations (LC) can be described as ordered large-scale vertical motions in
342the surface layer of the oceans.
343Although LC have nothing to do with convection, the circulation pattern is rather similar to
344so-called convective rolls in the atmospheric boundary layer.
345The detailed physics behind LC is described in, for example, \citet{craik.leibovich_JFM76}.
346The prevailing explanation is that LC arise from a nonlinear interaction between the Stokes drift and
347wind drift currents.
348
349Here we introduced in the TKE turbulent closure the simple parameterization of Langmuir circulations proposed by
350\citep{axell_JGR02} for a $k-\epsilon$ turbulent closure.
351The parameterization, tuned against large-eddy simulation, includes the whole effect of LC in
352an extra source term of TKE, $P_{LC}$.
353The presence of $P_{LC}$ in \autoref{eq:ZDF_tke_e}, the TKE equation, is controlled by setting \np{ln_lc}{ln\_lc} to
354\forcode{.true.} in the \nam{zdf_tke}{zdf\_tke} namelist.
355
356By making an analogy with the characteristic convective velocity scale (\eg, \citet{dalessio.abdella.ea_JPO98}),
357$P_{LC}$ is assumed to be :
358\[
359P_{LC}(z) = \frac{w_{LC}^3(z)}{H_{LC}}
360\]
361where $w_{LC}(z)$ is the vertical velocity profile of LC, and $H_{LC}$ is the LC depth.
362
363For the vertical variation, $w_{LC}$ is assumed to be zero at the surface as well as at
364a finite depth $H_{LC}$ (which is often close to the mixed layer depth),
365and simply varies as a sine function in between (a first-order profile for the Langmuir cell structures).
366The resulting expression for $w_{LC}$ is :
367\[
368  w_{LC}  =
369  \begin{cases}
370    c_{LC} \,\|u_s^{LC}\| \,\sin(- \pi\,z / H_{LC} )    &      \text{if $-z \leq H_{LC}$}    \\
371    0                             &      \text{otherwise}
372  \end{cases}
373\]
374
375
376In the absence of information about the wave field, $w_{LC}$ is assumed to be proportional to
377the surface Stokes drift ($u_s^{LC}=u_{s0} $) empirically estimated by $ u_{s0} = 0.377\,\,|\tau|^{1/2}$, where $|\tau|$ is the surface wind stress module
378\footnote{Following \citet{li.garrett_JMR93}, the surface Stoke drift velocity may be expressed as
379  $u_{s0} =  0.016 \,|U_{10m}|$.
380  Assuming an air density of $\rho_a=1.22 \,Kg/m^3$ and a drag coefficient of
381  $1.5~10^{-3}$ give the expression used of $u_{s0}$ as a function of the module of surface stress
382}.
383
384In case of online coupling with an external wave model (see \autoref{chap:SBC} \autoref{sec:SBC_wave}), $w_{LC}$ is proportional to the component of the Stokes drift aligned with the wind \citep{couvelard_2020} and $ u_s^{LC}  = \max(u_{s0}.e_\tau,0)$ where $e_\tau$ is the unit vector in the wind stress direction and $u_{s0}$ is the surface Stokes drift provided by the external wave model.
385
386
387$c_{LC} = 0.15$ has been chosen by \citep{axell_JGR02} as a good compromise to fit LES data.
388The chosen value yields maximum vertical velocities $w_{LC}$ of the order of a few centimetres per second.
389The value of $c_{LC}$ is set through the \np{rn_lc}{rn\_lc} namelist parameter,
390having in mind that it should stay between 0.15 and 0.54 \citep{axell_JGR02}.
391
392The $H_{LC}$ is estimated in a similar way as the turbulent length scale of TKE equations:
393$H_{LC}$ is the depth to which a water parcel with kinetic energy due to Stoke drift can reach on its own by
394converting its kinetic energy to potential energy, according to
395\[
396- \int_{-H_{LC}}^0 { N^2\;\;dz} = \frac{1}{2} \|u_s^{LC}\|^2
397\]
398
399%% =================================================================================================
400\subsubsection{Mixing just below the mixed layer}
401
402Vertical mixing parameterizations commonly used in ocean general circulation models tend to
403produce mixed-layer depths that are too shallow during summer months and windy conditions.
404This bias is particularly acute over the Southern Ocean.
405To overcome this systematic bias, an ad hoc parameterization is introduced into the TKE scheme \cite{rodgers.aumont.ea_B14}.
406The parameterization is an empirical one, \ie\ not derived from theoretical considerations,
407but rather is meant to account for observed processes that affect the density structure of
408the ocean’s planetary boundary layer that are not explicitly captured by default in the TKE scheme
409(\ie\ near-inertial oscillations and ocean swells and waves).
410
411When using this parameterization (\ie\ when \np[=1]{nn_etau}{nn\_etau}),
412the TKE input to the ocean ($S$) imposed by the winds in the form of near-inertial oscillations,
413swell and waves is parameterized by \autoref{eq:ZDF_Esbc} the standard TKE surface boundary condition,
414plus a depth depend one given by:
415\begin{equation}
416  \label{eq:ZDF_Ehtau}
417  S = (1-f_i) \; f_r \; e_s \; e^{-z / h_\tau}
418\end{equation}
419where $z$ is the depth, $e_s$ is TKE surface boundary condition, $f_r$ is the fraction of the surface TKE that
420penetrates in the ocean, $h_\tau$ is a vertical mixing length scale that controls exponential shape of
421the penetration, and $f_i$ is the ice concentration
422(no penetration if $f_i=1$, \ie\ if the ocean is entirely covered by sea-ice).
423The value of $f_r$, usually a few percents, is specified through \np{rn_efr}{rn\_efr} namelist parameter.
424The vertical mixing length scale, $h_\tau$, can be set as a 10~m uniform value (\np[=0]{nn_etau}{nn\_etau}) or
425a latitude dependent value (varying from 0.5~m at the Equator to a maximum value of 30~m at high latitudes
426(\np[=1]{nn_etau}{nn\_etau}).
427
428Note that two other option exist, \np[=2, 3]{nn_etau}{nn\_etau}.
429They correspond to applying \autoref{eq:ZDF_Ehtau} only at the base of the mixed layer,
430or to using the high frequency part of the stress to evaluate the fraction of TKE that penetrates the ocean.
431Those two options are obsolescent features introduced for test purposes.
432They will be removed in the next release.
433
434% This should be explain better below what this rn_eice parameter is meant for:
435In presence of Sea Ice, the value of this mixing can be modulated by the \np{rn_eice}{rn\_eice} namelist parameter.
436This parameter varies from \forcode{0} for no effect to \forcode{4} to suppress the TKE input into the ocean when Sea Ice concentration
437is greater than 25\%.
438
439% from Burchard et al OM 2008 :
440% the most critical process not reproduced by statistical turbulence models is the activity of
441% internal waves and their interaction with turbulence. After the Reynolds decomposition,
442% internal waves are in principle included in the RANS equations, but later partially
443% excluded by the hydrostatic assumption and the model resolution.
444% Thus far, the representation of internal wave mixing in ocean models has been relatively crude
445% (\eg\ Mellor, 1989; Large et al., 1994; Meier, 2001; Axell, 2002; St. Laurent and Garrett, 2002).
446
447%% =================================================================================================
448\subsection[GLS: Generic Length Scale (\forcode{ln_zdfgls})]{GLS: Generic Length Scale (\protect\np{ln_zdfgls}{ln\_zdfgls})}
449\label{subsec:ZDF_gls}
450
451\begin{listing}
452  \nlst{namzdf_gls}
453  \caption{\forcode{&namzdf_gls}}
454  \label{lst:namzdf_gls}
455\end{listing}
456
457The Generic Length Scale (GLS) scheme is a turbulent closure scheme based on two prognostic equations:
458one for the turbulent kinetic energy $\bar {e}$, and another for the generic length scale,
459$\psi$ \citep{umlauf.burchard_JMR03, umlauf.burchard_CSR05}.
460This later variable is defined as: $\psi = {C_{0\mu}}^{p} \ {\bar{e}}^{m} \ l^{n}$,
461where the triplet $(p, m, n)$ value given in Tab.\autoref{tab:ZDF_GLS} allows to recover a number of
462well-known turbulent closures ($k$-$kl$ \citep{mellor.yamada_RG82}, $k$-$\epsilon$ \citep{rodi_JGR87},
463$k$-$\omega$ \citep{wilcox_AJ88} among others \citep{umlauf.burchard_JMR03,kantha.carniel_JMR03}).
464The GLS scheme is given by the following set of equations:
465\begin{equation}
466  \label{eq:ZDF_gls_e}
467  \frac{\partial \bar{e}}{\partial t} =
468  \frac{K_m}{\sigma_e e_3 }\;\left[ {\left( \frac{\partial u}{\partial k} \right)^2
469      +\left( \frac{\partial v}{\partial k} \right)^2} \right]
470  -K_\rho \,N^2
471  +\frac{1}{e_3}\,\frac{\partial}{\partial k} \left[ \frac{K_m}{e_3}\,\frac{\partial \bar{e}}{\partial k} \right]
472  - \epsilon
473\end{equation}
474
475\[
476  % \label{eq:ZDF_gls_psi}
477  \begin{split}
478    \frac{\partial \psi}{\partial t} =& \frac{\psi}{\bar{e}} \left\{
479      \frac{C_1\,K_m}{\sigma_{\psi} {e_3}}\;\left[ {\left( \frac{\partial u}{\partial k} \right)^2
480          +\left( \frac{\partial v}{\partial k} \right)^2} \right]
481      - C_3 \,K_\rho\,N^2   - C_2 \,\epsilon \,Fw   \right\}             \\
482    &+\frac{1}{e_3\;\frac{\partial }{\partial k}\left[ {\frac{K_m}{e_3 }
483        \;\frac{\partial \psi}{\partial k}} \right]\;
484  \end{split}
485\]
486
487\[
488  % \label{eq:ZDF_gls_kz}
489  \begin{split}
490    K_m    &= C_{\mu} \ \sqrt {\bar{e}} \ l         \\
491    K_\rho &= C_{\mu'}\ \sqrt {\bar{e}} \ l
492  \end{split}
493\]
494
495\[
496  % \label{eq:ZDF_gls_eps}
497  {\epsilon} = C_{0\mu} \,\frac{\bar {e}^{3/2}}{l} \;
498\]
499where $N$ is the local Brunt-Vais\"{a}l\"{a} frequency (see \autoref{subsec:TRA_bn2}) and
500$\epsilon$ the dissipation rate.
501The constants $C_1$, $C_2$, $C_3$, ${\sigma_e}$, ${\sigma_{\psi}}$ and the wall function ($Fw$) depends of
502the choice of the turbulence model.
503Four different turbulent models are pre-defined (\autoref{tab:ZDF_GLS}).
504They are made available through the \np{nn_clo}{nn\_clo} namelist parameter.
505
506\begin{table}[htbp]
507  \centering
508  % \begin{tabular}{cp{70pt}cp{70pt}cp{70pt}cp{70pt}cp{70pt}cp{70pt}c}
509  \begin{tabular}{ccccc}
510    &   $k-kl$   & $k-\epsilon$ & $k-\omega$ &   generic   \\
511    % & \citep{mellor.yamada_RG82} &  \citep{rodi_JGR87}       & \citep{wilcox_AJ88} &                 \\
512    \hline
513    \hline
514    \np{nn_clo}{nn\_clo}     & \textbf{0} &   \textbf{1}  &   \textbf{2}   &    \textbf{3}   \\
515    \hline
516    $( p , n , m )$         &   ( 0 , 1 , 1 )   & ( 3 , 1.5 , -1 )   & ( -1 , 0.5 , -1 )    &  ( 2 , 1 , -0.67 )  \\
517    $\sigma_k$      &    2.44         &     1.              &      2.                &      0.8          \\
518    $\sigma_\psi$  &    2.44         &     1.3            &      2.                 &       1.07       \\
519    $C_1$              &      0.9         &     1.44          &      0.555          &       1.           \\
520    $C_2$              &      0.5         &     1.92          &      0.833          &       1.22       \\
521    $C_3$              &      1.           &     1.              &      1.                &       1.           \\
522    $F_{wall}$        &      Yes        &       --             &     --                  &      --          \\
523    \hline
524    \hline
525  \end{tabular}
526  \caption[Set of predefined GLS parameters or equivalently predefined turbulence models available]{
527    Set of predefined GLS parameters, or equivalently predefined turbulence models available with
528    \protect\np[=.true.]{ln_zdfgls}{ln\_zdfgls} and controlled by
529    the \protect\np{nn_clos}{nn\_clos} namelist variable in \protect\nam{zdf_gls}{zdf\_gls}.}
530  \label{tab:ZDF_GLS}
531\end{table}
532
533In the Mellor-Yamada model, the negativity of $n$ allows to use a wall function to force the convergence of
534the mixing length towards $\kappa z_b$ ($\kappa$ is the Von Karman constant and $z_b$ the rugosity length scale) value near physical boundaries
535(logarithmic boundary layer law).
536$C_{\mu}$ and $C_{\mu'}$ are calculated from stability function proposed by \citet{galperin.kantha.ea_JAS88},
537or by \citet{kantha.clayson_JGR94} or one of the two functions suggested by \citet{canuto.howard.ea_JPO01}
538(\np[=0, 3]{nn_stab_func}{nn\_stab\_func}, resp.).
539The value of $C_{0\mu}$ depends on the choice of the stability function.
540
541The surface and bottom boundary condition on both $\bar{e}$ and $\psi$ can be calculated thanks to Dirichlet or
542Neumann condition through \np{nn_bc_surf}{nn\_bc\_surf} and \np{nn_bc_bot}{nn\_bc\_bot}, resp.
543As for TKE closure, the wave effect on the mixing is considered when
544\np[ > 0.]{rn_crban}{rn\_crban} \citep{craig.banner_JPO94, mellor.blumberg_JPO04}.
545The \np{rn_crban}{rn\_crban} namelist parameter is $\alpha_{CB}$ in \autoref{eq:ZDF_Esbc} and
546\np{rn_charn}{rn\_charn} provides the value of $\beta$ in \autoref{eq:ZDF_Lsbc}.
547
548The $\psi$ equation is known to fail in stably stratified flows, and for this reason
549almost all authors apply a clipping of the length scale as an \textit{ad hoc} remedy.
550With this clipping, the maximum permissible length scale is determined by $l_{max} = c_{lim} \sqrt{2\bar{e}}/ N$.
551A value of $c_{lim} = 0.53$ is often used \citep{galperin.kantha.ea_JAS88}.
552\cite{umlauf.burchard_CSR05} show that the value of the clipping factor is of crucial importance for
553the entrainment depth predicted in stably stratified situations,
554and that its value has to be chosen in accordance with the algebraic model for the turbulent fluxes.
555The clipping is only activated if \np[=.true.]{ln_length_lim}{ln\_length\_lim},
556and the $c_{lim}$ is set to the \np{rn_clim_galp}{rn\_clim\_galp} value.
557
558The time and space discretization of the GLS equations follows the same energetic consideration as for
559the TKE case described in \autoref{subsec:ZDF_tke_ene} \citep{burchard_OM02}.
560Evaluation of the 4 GLS turbulent closure schemes can be found in \citet{warner.sherwood.ea_OM05} in ROMS model and
561 in \citet{reffray.bourdalle-badie.ea_GMD15} for the \NEMO\ model.
562
563% -------------------------------------------------------------------------------------------------------------
564%        OSM OSMOSIS BL Scheme
565% -------------------------------------------------------------------------------------------------------------
566\subsection[OSM: OSMOSIS boundary layer scheme (\forcode{ln_zdfosm = .true.})]
567{OSM: OSMOSIS boundary layer scheme (\protect\np{ln_zdfosm}{ln\_zdfosm})}
568\label{subsec:ZDF_osm}
569
570\begin{listing}
571  \nlst{namzdf_osm}
572  \caption{\forcode{&namzdf_osm}}
573  \label{lst:namzdf_osm}
574\end{listing}
575
576%--------------------------------------------------------------------------------------------------------------
577\paragraph{Namelist choices}
578Most of the namelist options refer to how to specify the Stokes
579surface drift and penetration depth. There are three options:
580\begin{description}
581  \item \protect\np[=0]{nn_osm_wave}{nn\_osm\_wave} Default value in \texttt{namelist\_ref}. In this case the Stokes drift is
582      assumed to be parallel to the surface wind stress, with
583      magnitude consistent with a constant turbulent Langmuir number
584    $\mathrm{La}_t=$ \protect\np{rn_m_la} {rn\_m\_la} i.e.\
585    $u_{s0}=\tau/(\mathrm{La}_t^2\rho_0)$.  Default value of
586    \protect\np{rn_m_la}{rn\_m\_la} is 0.3. The Stokes penetration
587      depth $\delta = $ \protect\np{rn_osm_dstokes}{rn\_osm\_dstokes}; this has default value
588      of 5~m.
589
590  \item \protect\np[=1]{nn_osm_wave}{nn\_osm\_wave} In this case the Stokes drift is
591      assumed to be parallel to the surface wind stress, with
592      magnitude as in the classical Pierson-Moskowitz wind-sea
593      spectrum.  Significant wave height and
594      wave-mean period taken from this spectrum are used to calculate the Stokes penetration
595      depth, following the approach set out in  \citet{breivik.janssen.ea_JPO14}.
596
597    \item \protect\np[=2]{nn_osm_wave}{nn\_osm\_wave} In this case the Stokes drift is
598      taken from  ECMWF wave model output, though only the component parallel
599      to the wind stress is retained. Significant wave height and
600      wave-mean period from ECMWF wave model output are used to calculate the Stokes penetration
601      depth, again following \citet{breivik.janssen.ea_JPO14}.
602
603    \end{description}
604
605    Others refer to the treatment of diffusion and viscosity beneath
606    the surface boundary layer:
607\begin{description}
608   \item \protect\np{ln_kpprimix} {ln\_kpprimix}  Default is \np{.true.}. Switches on KPP-style Ri \#-dependent
609     mixing below the surface boundary layer. If this is set
610     \texttt{.true.}  the following variable settings are honoured:
611    \item \protect\np{rn_riinfty}{rn\_riinfty} Critical value of local Ri \# below which
612      shear instability increases vertical mixing from background value.
613    \item \protect\np{rn_difri} {rn\_difri} Maximum value of Ri \#-dependent mixing at $\mathrm{Ri}=0$.
614    \item \protect\np{ln_convmix}{ln\_convmix} If \texttt{.true.} then, where water column is unstable, specify
615       diffusivity equal to \protect\np{rn_dif_conv}{rn\_dif\_conv} (default value is 1 m~s$^{-2}$).
616 \end{description}
617 Diagnostic output is controlled by:
618  \begin{description}
619    \item \protect\np{ln_dia_osm}{ln\_dia\_osm} Default is \np{.false.}; allows XIOS output of OSMOSIS internal fields.
620  \end{description}
621Obsolete namelist parameters include:
622\begin{description}
623\item \protect\np{ln_use_osm_la}\np{ln\_use\_osm\_la} With \protect\np[=0]{nn_osm_wave}{nn\_osm\_wave},
624  \protect\np{rn_osm_dstokes} {rn\_osm\_dstokes} is always used to specify the Stokes
625  penetration depth.
626\item \protect\np{nn_ave} {nn\_ave} Choice of averaging method for KPP-style Ri \#
627  mixing. Not taken account of.
628\item \protect\np{rn_osm_hbl0} {rn\_osm\_hbl0} Depth of initial boundary layer is now set
629  by a density criterion similar to that used in calculating \emph{hmlp} (output as \texttt{mldr10\_1}) in \mdl{zdfmxl}.
630\end{description}
631
632\subsubsection{Summary}
633Much of the time the turbulent motions in the ocean surface boundary
634layer (OSBL) are not given by
635classical shear turbulence. Instead they are in a regime known as
636`Langmuir turbulence',  dominated by an
637interaction between the currents and the Stokes drift of the surface waves \citep[e.g.][]{mcwilliams.sullivan.ea_JFM97}.
638This regime is characterised by strong vertical turbulent motion, and appears when the surface Stokes drift $u_{s0}$ is much greater than the friction velocity $u_{\ast}$. More specifically Langmuir turbulence is thought to be crucial where the turbulent Langmuir number $\mathrm{La}_{t}=(u_{\ast}/u_{s0}) > 0.4$.
639
640The OSMOSIS model is fundamentally based on results of Large Eddy
641Simulations (LES) of Langmuir turbulence and aims to fully describe
642this Langmuir regime. The description in this section is of necessity incomplete and further details are available in Grant. A (2019); in prep.
643
644The OSMOSIS turbulent closure scheme is a similarity-scale scheme in
645the same spirit as the K-profile
646parameterization (KPP) scheme of \citet{large.mcwilliams.ea_RG94}.
647A specified shape of diffusivity, scaled by the (OSBL) depth
648$h_{\mathrm{BL}}$ and a turbulent velocity scale, is imposed throughout the
649boundary layer
650$-h_{\mathrm{BL}}<z<\eta$. The turbulent closure model
651also includes fluxes of tracers and momentum that are``non-local'' (independent of the local property gradient).
652
653Rather than the OSBL
654depth being diagnosed in terms of a bulk Richardson number criterion,
655as in KPP, it is set by a prognostic equation that is informed by
656energy budget considerations reminiscent of the classical mixed layer
657models of \citet{kraus.turner_T67}.
658The model also includes an explicit parametrization of the structure
659of the pycnocline (the stratified region at the bottom of the OSBL).
660
661Presently, mixing below the OSBL is handled by the Richardson
662number-dependent mixing scheme used in \citet{large.mcwilliams.ea_RG94}.
663
664Convective parameterizations such as described in \autoref{sec:ZDF_conv}
665below should not be used with the OSMOSIS-OBL model: instabilities
666within the OSBL are part of the model, while instabilities below the
667ML are handled by the Ri \# dependent scheme.
668
669\subsubsection{Depth and velocity scales}
670The model supposes a boundary layer of thickness $h_{\mathrm{bl}}$ enclosing a well-mixed layer of thickness $h_{\mathrm{ml}}$ and a relatively thin pycnocline at the base of thickness $\Delta h$; \autoref{fig:OSBL_structure} shows typical (a) buoyancy structure and (b) turbulent buoyancy flux profile for the unstable boundary layer (losing buoyancy at the surface; e.g.\ cooling).
671\begin{figure}[!t]
672  \begin{center}
673    %\includegraphics[width=0.7\textwidth]{ZDF_OSM_structure_of_OSBL}
674    \caption{
675      \protect\label{fig:OSBL_structure}
676     The structure of the entraining  boundary layer. (a) Mean buoyancy profile. (b) Profile of the buoyancy flux.
677    }
678  \end{center}
679\end{figure}
680The pycnocline in the OSMOSIS scheme is assumed to have a finite thickness, and may include a number of model levels. This means that the OSMOSIS scheme must parametrize both the thickness of the pycnocline, and the turbulent fluxes within the pycnocline.
681
682Consideration of the power input by wind acting on the Stokes drift suggests that the Langmuir turbulence has velocity scale:
683\begin{equation}
684  \label{eq:ZDF_w_La}
685  w_{*L}= \left(u_*^2 u_{s\,0}\right)^{1/3};
686\end{equation}
687but at times the Stokes drift may be weak due to e.g.\ ice cover, short fetch, misalignment with the surface stress, etc.\ so  a composite velocity scale is assumed for the stable (warming) boundary layer:
688\begin{equation}
689  \label{eq:ZDF_composite-nu}
690  \nu_{\ast}= \left\{ u_*^3 \left[1-\exp(-.5 \mathrm{La}_t^2)\right]+w_{*L}^3\right\}^{1/3}.
691\end{equation}
692For the unstable boundary layer this is merged with the standard convective velocity scale $w_{*C}=\left(\overline{w^\prime b^\prime}_0 \,h_\mathrm{ml}\right)^{1/3}$, where $\overline{w^\prime b^\prime}_0$ is the upwards surface buoyancy flux, to give:
693\begin{equation}
694  \label{eq:ZDF_vel-scale-unstable}
695  \omega_* = \left(\nu_*^3 + 0.5 w_{*C}^3\right)^{1/3}.
696\end{equation}
697
698\subsubsection{The flux gradient model}
699The flux-gradient relationships used in the OSMOSIS scheme take the form:
700
701\begin{equation}
702  \label{eq:ZDF_flux-grad-gen}
703  \overline{w^\prime\chi^\prime}=-K\frac{\partial\overline{\chi}}{\partial z} + N_{\chi,s} +N_{\chi,b} +N_{\chi,t},
704\end{equation}
705
706where $\chi$ is a general variable and $N_{\chi,s}, N_{\chi,b} \mathrm{and} N_{\chi,t}$  are the non-gradient terms, and represent the effects of the different terms in the turbulent flux-budget on the transport of $\chi$. $N_{\chi,s}$ represents the effects that the Stokes shear has on the transport of $\chi$, $N_{\chi,b}$  the effect of buoyancy, and $N_{\chi,t}$ the effect of the turbulent transport.  The same general form for the flux-gradient relationship is used to parametrize the transports of momentum, heat and salinity.
707
708In terms of the non-dimensionalized depth variables
709
710\begin{equation}
711  \label{eq:ZDF_sigma}
712  \sigma_{\mathrm{ml}}= -z/h_{\mathrm{ml}}; \;\sigma_{\mathrm{bl}}= -z/h_{\mathrm{bl}},
713\end{equation}
714
715in unstable conditions the eddy diffusivity ($K_d$) and eddy viscosity ($K_\nu$) profiles are parametrized as:
716
717\begin{align}
718  \label{eq:ZDF_diff-unstable}
719  K_d=&0.8\, \omega_*\, h_{\mathrm{ml}} \, \sigma_{\mathrm{ml}} \left(1-\beta_d \sigma_{\mathrm{ml}}\right)^{3/2}
720  \\
721  \label{eq:ZDF_visc-unstable}
722  K_\nu =& 0.3\, \omega_* \,h_{\mathrm{ml}}\, \sigma_{\mathrm{ml}} \left(1-\beta_\nu \sigma_{\mathrm{ml}}\right)\left(1-\tfrac{1}{2}\sigma_{\mathrm{ml}}^2\right)
723\end{align}
724
725where $\beta_d$ and $\beta_\nu$ are parameters that are determined by matching \autoref{eq:ZDF_diff-unstable} and \autoref{eq:ZDF_visc-unstable} to the eddy diffusivity and viscosity at the base of the well-mixed layer, given by
726
727\begin{equation}
728  \label{eq:ZDF_diff-wml-base}
729  K_{d,\mathrm{ml}}=K_{\nu,\mathrm{ml}}=\,0.16\,\omega_* \Delta h.
730\end{equation}
731
732For stable conditions the eddy diffusivity/viscosity profiles are given by:
733
734\begin{align}
735  \label{eq:ZDF_diff-stable}
736  K_d= & 0.75\,\, \nu_*\, h_{\mathrm{ml}}\,\,  \exp\left[-2.8
737       \left(h_{\mathrm{bl}}/L_L\right)^2\right]\sigma_{\mathrm{ml}}
738       \left(1-\sigma_{\mathrm{ml}}\right)^{3/2} \\
739  \label{eq:ZDF_visc-stable}
740  K_\nu = & 0.375\,\,  \nu_*\, h_{\mathrm{ml}} \,\, \exp\left[-2.8 \left(h_{\mathrm{bl}}/L_L\right)^2\right] \sigma_{\mathrm{ml}} \left(1-\sigma_{\mathrm{ml}}\right)\left(1-\tfrac{1}{2}\sigma_{\mathrm{ml}}^2\right).
741\end{align}
742
743The shape of the eddy viscosity and diffusivity profiles is the same as the shape in the unstable OSBL. The eddy diffusivity/viscosity depends on the stability parameter $h_{\mathrm{bl}}/{L_L}$ where $ L_L$ is analogous to the Obukhov length, but for Langmuir turbulence:
744\begin{equation}
745  \label{eq:ZDF_L_L}
746  L_L=-w_{*L}^3/\left<\overline{w^\prime b^\prime}\right>_L,
747\end{equation}
748with the mean turbulent buoyancy flux averaged over the boundary layer given in terms of its surface value $\overline{w^\prime b^\prime}_0$ and (downwards) )solar irradiance $I(z)$ by
749\begin{equation}
750  \label{eq:ZDF_stable-av-buoy-flux}
751  \left<\overline{w^\prime b^\prime}\right>_L = \tfrac{1}{2} {\overline{w^\prime b^\prime}}_0-g\alpha_E\left[\tfrac{1}{2}(I(0)+I(-h))-\left<I\right>\right].
752\end{equation}
753
754In unstable conditions the eddy diffusivity and viscosity depend on stability through the velocity scale $\omega_*$, which depends on the two velocity scales $\nu_*$ and $w_{*C}$.
755
756Details of the non-gradient terms in \autoref{eq:ZDF_flux-grad-gen} and of the fluxes within the pycnocline $-h_{\mathrm{bl}}<z<h_{\mathrm{ml}}$ can be found in Grant (2019).
757
758\subsubsection{Evolution of the boundary layer depth}
759
760The prognostic equation for the depth of the neutral/unstable boundary layer is given by \iffalse \citep{grant+etal18?}, \fi
761
762\begin{equation}
763  \label{eq:ZDF_dhdt-unstable}
764%\frac{\partial h_\mathrm{bl}}{\partial t} + \mathbf{U}_b\cdot\nabla h_\mathrm{bl}= W_b - \frac{{\overline{w^\prime b^\prime}}_\mathrm{ent}}{\Delta B_\mathrm{bl}}
765   \frac{\partial h_\mathrm{bl}}{\partial t} = W_b - \frac{{\overline{w^\prime b^\prime}}_\mathrm{ent}}{\Delta B_\mathrm{bl}}
766\end{equation}
767where $h_\mathrm{bl}$ is the horizontally-varying depth of the OSBL,
768$\mathbf{U}_b$ and $W_b$ are the mean horizontal and vertical
769velocities at the base of the OSBL, ${\overline{w^\prime
770    b^\prime}}_\mathrm{ent}$ is the buoyancy flux due to entrainment
771and $\Delta B_\mathrm{bl}$ is the difference between the buoyancy
772averaged over the depth of the OSBL (i.e.\ including the ML and
773pycnocline) and the buoyancy just below the base of the OSBL. This
774equation for the case when the pycnocline has a finite thickness,
775based on the potential energy budget of the OSBL, is the leading term
776\iffalse \citep{grant+etal18?} \fi of a generalization of that used in mixed-layer
777models e.g.\ \citet{kraus.turner_T67}, in which the thickness of the pycnocline is taken to be zero.
778
779The entrainment flux for the combination of convective and Langmuir turbulence is given by
780\begin{equation}
781  \label{eq:ZDF_entrain-flux}
782  {\overline{w^\prime b^\prime}}_\mathrm{ent} = -\alpha_{\mathrm{B}} {\overline{w^\prime b^\prime}}_0 - \alpha_{\mathrm{S}} \frac{u_*^3}{h_{\mathrm{ml}}}
783  + G\left(\delta/h_{\mathrm{ml}} \right)\left[\alpha_{\mathrm{S}}e^{-1.5\, \mathrm{La}_t}-\alpha_{\mathrm{L}} \frac{w_{\mathrm{*L}}^3}{h_{\mathrm{ml}}}\right]
784\end{equation}
785where the factor $G\equiv 1 - \mathrm{e}^ {-25\delta/h_{\mathrm{bl}}}(1-4\delta/h_{\mathrm{bl}})$ models the lesser efficiency of Langmuir mixing when the boundary-layer depth is much greater than the Stokes depth, and $\alpha_{\mathrm{B}}$, $\alpha_{S}$  and $\alpha_{\mathrm{L}}$ depend on the ratio of the appropriate eddy turnover time to the inertial timescale $f^{-1}$. Results from the LES suggest $\alpha_{\mathrm{B}}=0.18 F(fh_{\mathrm{bl}}/w_{*C})$, $\alpha_{S}=0.15 F(fh_{\mathrm{bl}}/u_*$  and $\alpha_{\mathrm{L}}=0.035 F(fh_{\mathrm{bl}}/u_{*L})$, where $F(x)\equiv\tanh(x^{-1})^{0.69}$.
786
787For the stable boundary layer, the equation for the depth of the OSBL is:
788
789\begin{equation}
790  \label{eq:ZDF_dhdt-stable}
791\max\left(\Delta B_{bl},\frac{w_{*L}^2}{h_\mathrm{bl}}\right)\frac{\partial h_\mathrm{bl}}{\partial t} = \left(0.06 + 0.52\,\frac{ h_\mathrm{bl}}{L_L}\right) \frac{w_{*L}^3}{h_\mathrm{bl}} +\left<\overline{w^\prime b^\prime}\right>_L.
792\end{equation}
793
794\autoref{eq:ZDF_dhdt-unstable} always leads to the depth of the entraining OSBL increasing (ignoring the effect of the mean vertical motion), but the change in the thickness of the stable OSBL given by \autoref{eq:ZDF_dhdt-stable} can be positive or negative, depending on the magnitudes of $\left<\overline{w^\prime b^\prime}\right>_L$ and $h_\mathrm{bl}/L_L$. The rate at which the depth of the OSBL can decrease is limited by choosing an effective buoyancy $w_{*L}^2/h_\mathrm{bl}$, in place of $\Delta B_{bl}$ which will be $\approx 0$ for the collapsing OSBL.
795
796
797%% =================================================================================================
798\subsection[ Discrete energy conservation for TKE and GLS schemes]{Discrete energy conservation for TKE and GLS schemes}
799\label{subsec:ZDF_tke_ene}
800
801\begin{figure}[!t]
802  \centering
803  \includegraphics[width=0.66\textwidth]{ZDF_TKE_time_scheme}
804  \caption[Subgrid kinetic energy integration in GLS and TKE schemes]{
805    Illustration of the subgrid kinetic energy integration in GLS and TKE schemes and
806    its links to the momentum and tracer time integration.}
807  \label{fig:ZDF_TKE_time_scheme}
808\end{figure}
809
810The production of turbulence by vertical shear (the first term of the right hand side of
811\autoref{eq:ZDF_tke_e}) and  \autoref{eq:ZDF_gls_e}) should balance the loss of kinetic energy associated with the vertical momentum diffusion
812(first line in \autoref{eq:MB_zdf}).
813To do so a special care has to be taken for both the time and space discretization of
814the kinetic energy equation \citep{burchard_OM02,marsaleix.auclair.ea_OM08}.
815
816Let us first address the time stepping issue. \autoref{fig:ZDF_TKE_time_scheme} shows how
817the two-level Leap-Frog time stepping of the momentum and tracer equations interplays with
818the one-level forward time stepping of the equation for $\bar{e}$.
819With this framework, the total loss of kinetic energy (in 1D for the demonstration) due to
820the vertical momentum diffusion is obtained by multiplying this quantity by $u^t$ and
821summing the result vertically:
822\begin{equation}
823  \label{eq:ZDF_energ1}
824  \begin{split}
825    \int_{-H}^{\eta}  u^t \,\partial_z &\left( {K_m}^t \,(\partial_z u)^{t+\rdt}  \right) \,dz   \\
826    &= \Bigl[  u^t \,{K_m}^t \,(\partial_z u)^{t+\rdt} \Bigr]_{-H}^{\eta}
827    - \int_{-H}^{\eta}{ {K_m}^t \,\partial_z{u^t} \,\partial_z u^{t+\rdt} \,dz }
828  \end{split}
829\end{equation}
830Here, the vertical diffusion of momentum is discretized backward in time with a coefficient, $K_m$,
831known at time $t$ (\autoref{fig:ZDF_TKE_time_scheme}), as it is required when using the TKE scheme
832(see \autoref{sec:TD_forward_imp}).
833The first term of the right hand side of \autoref{eq:ZDF_energ1} represents the kinetic energy transfer at
834the surface (atmospheric forcing) and at the bottom (friction effect).
835The second term is always negative.
836It is the dissipation rate of kinetic energy, and thus minus the shear production rate of $\bar{e}$.
837\autoref{eq:ZDF_energ1} implies that, to be energetically consistent,
838the production rate of $\bar{e}$ used to compute $(\bar{e})^t$ (and thus ${K_m}^t$) should be expressed as
839${K_m}^{t-\rdt}\,(\partial_z u)^{t-\rdt} \,(\partial_z u)^t$
840(and not by the more straightforward $K_m \left( \partial_z u \right)^2$ expression taken at time $t$ or $t-\rdt$).
841
842A similar consideration applies on the destruction rate of $\bar{e}$ due to stratification
843(second term of the right hand side of \autoref{eq:ZDF_tke_e} and \autoref{eq:ZDF_gls_e}).
844This term must balance the input of potential energy resulting from vertical mixing.
845The rate of change of potential energy (in 1D for the demonstration) due to vertical mixing is obtained by
846multiplying the vertical density diffusion tendency by $g\,z$ and and summing the result vertically:
847\begin{equation}
848  \label{eq:ZDF_energ2}
849  \begin{split}
850    \int_{-H}^{\eta} g\,z\,\partial_z &\left( {K_\rho}^t \,(\partial_k \rho)^{t+\rdt}   \right) \,dz    \\
851    &= \Bigl[  g\,z \,{K_\rho}^t \,(\partial_z \rho)^{t+\rdt} \Bigr]_{-H}^{\eta}
852    - \int_{-H}^{\eta}{ g \,{K_\rho}^t \,(\partial_k \rho)^{t+\rdt} } \,dz   \\
853    &= - \Bigl[  z\,{K_\rho}^t \,(N^2)^{t+\rdt} \Bigr]_{-H}^{\eta}
854    + \int_{-H}^{\eta}{  \rho^{t+\rdt} \, {K_\rho}^t \,(N^2)^{t+\rdt} \,dz  }
855  \end{split}
856\end{equation}
857where we use $N^2 = -g \,\partial_k \rho / (e_3 \rho)$.
858The first term of the right hand side of \autoref{eq:ZDF_energ2} is always zero because
859there is no diffusive flux through the ocean surface and bottom).
860The second term is minus the destruction rate of  $\bar{e}$ due to stratification.
861Therefore \autoref{eq:ZDF_energ1} implies that, to be energetically consistent,
862the product ${K_\rho}^{t-\rdt}\,(N^2)^t$ should be used in \autoref{eq:ZDF_tke_e} and  \autoref{eq:ZDF_gls_e}.
863
864Let us now address the space discretization issue.
865The vertical eddy coefficients are defined at $w$-point whereas the horizontal velocity components are in
866the centre of the side faces of a $t$-box in staggered C-grid (\autoref{fig:DOM_cell}).
867A space averaging is thus required to obtain the shear TKE production term.
868By redoing the \autoref{eq:ZDF_energ1} in the 3D case, it can be shown that the product of eddy coefficient by
869the shear at $t$ and $t-\rdt$ must be performed prior to the averaging.
870Furthermore, the time variation of $e_3$ has be taken into account.
871
872The above energetic considerations leads to the following final discrete form for the TKE equation:
873\begin{equation}
874  \label{eq:ZDF_tke_ene}
875  \begin{split}
876    \frac { (\bar{e})^t - (\bar{e})^{t-\rdt} } {\rdt}  \equiv
877    \Biggl\{ \Biggr.
878    &\overline{ \left( \left(\overline{K_m}^{\,i+1/2}\right)^{t-\rdt} \,\frac{\delta_{k+1/2}[u^{t+\rdt}]}{{e_3u}^{t+\rdt} }
879        \ \frac{\delta_{k+1/2}[u^ t         ]}{{e_3u}^ t          }  \right) }^{\,i} \\
880    +&\overline{  \left( \left(\overline{K_m}^{\,j+1/2}\right)^{t-\rdt} \,\frac{\delta_{k+1/2}[v^{t+\rdt}]}{{e_3v}^{t+\rdt} }
881        \ \frac{\delta_{k+1/2}[v^ t         ]}{{e_3v}^ t          }  \right) }^{\,j}
882    \Biggr. \Biggr\}   \\
883    %
884    - &{K_\rho}^{t-\rdt}\,{(N^2)^t}    \\
885    %
886    +&\frac{1}{{e_3w}^{t+\rdt}}  \;\delta_{k+1/2} \left[   {K_m}^{t-\rdt} \,\frac{\delta_{k}[(\bar{e})^{t+\rdt}]} {{e_3w}^{t+\rdt}}   \right]   \\
887    %
888    - &c_\epsilon \; \left( \frac{\sqrt{\bar {e}}}{l_\epsilon}\right)^{t-\rdt}\,(\bar {e})^{t+\rdt}
889  \end{split}
890\end{equation}
891where the last two terms in \autoref{eq:ZDF_tke_ene} (vertical diffusion and Kolmogorov dissipation)
892are time stepped using a backward scheme (see\autoref{sec:TD_forward_imp}).
893Note that the Kolmogorov term has been linearized in time in order to render the implicit computation possible.
894%The restart of the TKE scheme requires the storage of $\bar {e}$, $K_m$, $K_\rho$ and $l_\epsilon$ as
895%they all appear in the right hand side of \autoref{eq:ZDF_tke_ene}.
896%For the latter, it is in fact the ratio $\sqrt{\bar{e}}/l_\epsilon$ which is stored.
897
898%% =================================================================================================
899\section{Convection}
900\label{sec:ZDF_conv}
901
902Static instabilities (\ie\ light potential densities under heavy ones) may occur at particular ocean grid points.
903In nature, convective processes quickly re-establish the static stability of the water column.
904These processes have been removed from the model via the hydrostatic assumption so they must be parameterized.
905Three parameterisations are available to deal with convective processes:
906a non-penetrative convective adjustment or an enhanced vertical diffusion,
907or/and the use of a turbulent closure scheme.
908
909%% =================================================================================================
910\subsection[Non-penetrative convective adjustment (\forcode{ln_tranpc})]{Non-penetrative convective adjustment (\protect\np{ln_tranpc}{ln\_tranpc})}
911\label{subsec:ZDF_npc}
912
913\begin{figure}[!htb]
914  \centering
915  \includegraphics[width=0.66\textwidth]{ZDF_npc}
916  \caption[Unstable density profile treated by the non penetrative convective adjustment algorithm]{
917    Example of an unstable density profile treated by
918    the non penetrative convective adjustment algorithm.
919    $1^{st}$ step: the initial profile is checked from the surface to the bottom.
920    It is found to be unstable between levels 3 and 4.
921    They are mixed.
922    The resulting $\rho$ is still larger than $\rho$(5): levels 3 to 5 are mixed.
923    The resulting $\rho$ is still larger than $\rho$(6): levels 3 to 6 are mixed.
924    The $1^{st}$ step ends since the density profile is then stable below the level 3.
925    $2^{nd}$ step: the new $\rho$ profile is checked following the same procedure as in $1^{st}$ step:
926    levels 2 to 5 are mixed.
927    The new density profile is checked.
928    It is found stable: end of algorithm.}
929  \label{fig:ZDF_npc}
930\end{figure}
931
932Options are defined through the \nam{zdf}{zdf} namelist variables.
933The non-penetrative convective adjustment is used when \np[=.true.]{ln_zdfnpc}{ln\_zdfnpc}.
934It is applied at each \np{nn_npc}{nn\_npc} time step and mixes downwards instantaneously the statically unstable portion of
935the water column, but only until the density structure becomes neutrally stable
936(\ie\ until the mixed portion of the water column has \textit{exactly} the density of the water just below)
937\citep{madec.delecluse.ea_JPO91}.
938The associated algorithm is an iterative process used in the following way (\autoref{fig:ZDF_npc}):
939starting from the top of the ocean, the first instability is found.
940Assume in the following that the instability is located between levels $k$ and $k+1$.
941The temperature and salinity in the two levels are vertically mixed, conserving the heat and salt contents of
942the water column.
943The new density is then computed by a linear approximation.
944If the new density profile is still unstable between levels $k+1$ and $k+2$,
945levels $k$, $k+1$ and $k+2$ are then mixed.
946This process is repeated until stability is established below the level $k$
947(the mixing process can go down to the ocean bottom).
948The algorithm is repeated to check if the density profile between level $k-1$ and $k$ is unstable and/or
949if there is no deeper instability.
950
951This algorithm is significantly different from mixing statically unstable levels two by two.
952The latter procedure cannot converge with a finite number of iterations for some vertical profiles while
953the algorithm used in \NEMO\ converges for any profile in a number of iterations which is less than
954the number of vertical levels.
955This property is of paramount importance as pointed out by \citet{killworth_iprc89}:
956it avoids the existence of permanent and unrealistic static instabilities at the sea surface.
957This non-penetrative convective algorithm has been proved successful in studies of the deep water formation in
958the north-western Mediterranean Sea \citep{madec.delecluse.ea_JPO91, madec.chartier.ea_DAO91, madec.crepon_iprc91}.
959
960The current implementation has been modified in order to deal with any non linear equation of seawater
961(L. Brodeau, personnal communication).
962Two main differences have been introduced compared to the original algorithm:
963$(i)$ the stability is now checked using the Brunt-V\"{a}is\"{a}l\"{a} frequency
964(not the difference in potential density);
965$(ii)$ when two levels are found unstable, their thermal and haline expansion coefficients are vertically mixed in
966the same way their temperature and salinity has been mixed.
967These two modifications allow the algorithm to perform properly and accurately with TEOS10 or EOS-80 without
968having to recompute the expansion coefficients at each mixing iteration.
969
970%% =================================================================================================
971\subsection[Enhanced vertical diffusion (\forcode{ln_zdfevd})]{Enhanced vertical diffusion (\protect\np{ln_zdfevd}{ln\_zdfevd})}
972\label{subsec:ZDF_evd}
973
974Options are defined through the  \nam{zdf}{zdf} namelist variables.
975The enhanced vertical diffusion parameterisation is used when \np[=.true.]{ln_zdfevd}{ln\_zdfevd}.
976In this case, the vertical eddy mixing coefficients are assigned very large values
977in regions where the stratification is unstable
978(\ie\ when $N^2$ the Brunt-Vais\"{a}l\"{a} frequency is negative) \citep{lazar_phd97, lazar.madec.ea_JPO99}.
979This is done either on tracers only (\np[=0]{nn_evdm}{nn\_evdm}) or
980on both momentum and tracers (\np[=1]{nn_evdm}{nn\_evdm}).
981
982In practice, where $N^2\leq 10^{-12}$, $A_T^{vT}$ and $A_T^{vS}$, and if \np[=1]{nn_evdm}{nn\_evdm},
983the four neighbouring $A_u^{vm} \;\mbox{and}\;A_v^{vm}$ values also, are set equal to
984the namelist parameter \np{rn_avevd}{rn\_avevd}.
985A typical value for $rn\_avevd$ is between 1 and $100~m^2.s^{-1}$.
986This parameterisation of convective processes is less time consuming than
987the convective adjustment algorithm presented above when mixing both tracers and
988momentum in the case of static instabilities.
989
990Note that the stability test is performed on both \textit{before} and \textit{now} values of $N^2$.
991This removes a potential source of divergence of odd and even time step in
992a leapfrog environment \citep{leclair_phd10} (see \autoref{sec:TD_mLF}).
993
994%% =================================================================================================
995\subsection[Handling convection with turbulent closure schemes (\forcode{ln_zdf_}\{\forcode{tke,gls,osm}\})]{Handling convection with turbulent closure schemes (\forcode{ln_zdf{tke,gls,osm}})}
996\label{subsec:ZDF_tcs}
997
998The turbulent closure schemes presented in \autoref{subsec:ZDF_tke}, \autoref{subsec:ZDF_gls} and
999\autoref{subsec:ZDF_osm} (\ie\ \np{ln_zdftke}{ln\_zdftke} or \np{ln_zdfgls}{ln\_zdfgls} or \np{ln_zdfosm}{ln\_zdfosm} defined) deal, in theory,
1000with statically unstable density profiles.
1001In such a case, the term corresponding to the destruction of turbulent kinetic energy through stratification in
1002\autoref{eq:ZDF_tke_e} or \autoref{eq:ZDF_gls_e} becomes a source term, since $N^2$ is negative.
1003It results in large values of $A_T^{vT}$ and  $A_T^{vT}$, and also of the four neighboring values at
1004velocity points $A_u^{vm} {and}\;A_v^{vm}$ (up to $1\;m^2s^{-1}$).
1005These large values restore the static stability of the water column in a way similar to that of
1006the enhanced vertical diffusion parameterisation (\autoref{subsec:ZDF_evd}).
1007However, in the vicinity of the sea surface (first ocean layer), the eddy coefficients computed by
1008the turbulent closure scheme do not usually exceed $10^{-2}m.s^{-1}$,
1009because the mixing length scale is bounded by the distance to the sea surface.
1010It can thus be useful to combine the enhanced vertical diffusion with the turbulent closure scheme,
1011\ie\ setting the \np{ln_zdfnpc}{ln\_zdfnpc} namelist parameter to true and
1012defining the turbulent closure (\np{ln_zdftke}{ln\_zdftke} or \np{ln_zdfgls}{ln\_zdfgls} = \forcode{.true.}) all together.
1013
1014The OSMOSIS turbulent closure scheme already includes enhanced vertical diffusion in the case of convection,
1015%as governed by the variables $bvsqcon$ and $difcon$ found in \mdl{zdfkpp},
1016therefore \np[=.false.]{ln_zdfevd}{ln\_zdfevd} should be used with the OSMOSIS scheme.
1017% gm%  + one word on non local flux with KPP scheme trakpp.F90 module...
1018
1019%% =================================================================================================
1020\section[Double diffusion mixing (\forcode{ln_zdfddm})]{Double diffusion mixing (\protect\np{ln_zdfddm}{ln\_zdfddm})}
1021\label{subsec:ZDF_ddm}
1022
1023%\nlst{namzdf_ddm}
1024
1025This parameterisation has been introduced in \mdl{zdfddm} module and is controlled by the namelist parameter
1026\np{ln_zdfddm}{ln\_zdfddm} in \nam{zdf}{zdf}.
1027Double diffusion occurs when relatively warm, salty water overlies cooler, fresher water, or vice versa.
1028The former condition leads to salt fingering and the latter to diffusive convection.
1029Double-diffusive phenomena contribute to diapycnal mixing in extensive regions of the ocean.
1030\citet{merryfield.holloway.ea_JPO99} include a parameterisation of such phenomena in a global ocean model and show that
1031it leads to relatively minor changes in circulation but exerts significant regional influences on
1032temperature and salinity.
1033
1034Diapycnal mixing of S and T are described by diapycnal diffusion coefficients
1035\begin{align*}
1036  % \label{eq:ZDF_ddm_Kz}
1037  &A^{vT} = A_o^{vT}+A_f^{vT}+A_d^{vT} \\
1038  &A^{vS} = A_o^{vS}+A_f^{vS}+A_d^{vS}
1039\end{align*}
1040where subscript $f$ represents mixing by salt fingering, $d$ by diffusive convection,
1041and $o$ by processes other than double diffusion.
1042The rates of double-diffusive mixing depend on the buoyancy ratio
1043$R_\rho = \alpha \partial_z T / \beta \partial_z S$, where $\alpha$ and $\beta$ are coefficients of
1044thermal expansion and saline contraction (see \autoref{subsec:TRA_eos}).
1045To represent mixing of $S$ and $T$ by salt fingering, we adopt the diapycnal diffusivities suggested by Schmitt
1046(1981):
1047\begin{align}
1048  \label{eq:ZDF_ddm_f}
1049  A_f^{vS} &=
1050             \begin{cases}
1051               \frac{A^{\ast v}}{1+(R_\rho / R_c)^n   } &\text{if  $R_\rho > 1$ and $N^2>0$ } \\
1052               0                              &\text{otherwise}
1053             \end{cases}
1054  \\         \label{eq:ZDF_ddm_f_T}
1055  A_f^{vT} &= 0.7 \ A_f^{vS} / R_\rho
1056\end{align}
1057
1058\begin{figure}[!t]
1059  \centering
1060  \includegraphics[width=0.66\textwidth]{ZDF_ddm}
1061  \caption[Diapycnal diffusivities for temperature and salt in regions of salt fingering and
1062  diffusive convection]{
1063    From \citet{merryfield.holloway.ea_JPO99}:
1064    (a) Diapycnal diffusivities $A_f^{vT}$ and $A_f^{vS}$ for temperature and salt in
1065    regions of salt fingering.
1066    Heavy curves denote $A^{\ast v} = 10^{-3}~m^2.s^{-1}$ and
1067    thin curves $A^{\ast v} = 10^{-4}~m^2.s^{-1}$;
1068    (b) diapycnal diffusivities $A_d^{vT}$ and $A_d^{vS}$ for temperature and salt in
1069    regions of diffusive convection.
1070    Heavy curves denote the Federov parameterisation and thin curves the Kelley parameterisation.
1071    The latter is not implemented in \NEMO.}
1072  \label{fig:ZDF_ddm}
1073\end{figure}
1074
1075The factor 0.7 in \autoref{eq:ZDF_ddm_f_T} reflects the measured ratio $\alpha F_T /\beta F_S \approx  0.7$ of
1076buoyancy flux of heat to buoyancy flux of salt (\eg, \citet{mcdougall.taylor_JMR84}).
1077Following  \citet{merryfield.holloway.ea_JPO99}, we adopt $R_c = 1.6$, $n = 6$, and $A^{\ast v} = 10^{-4}~m^2.s^{-1}$.
1078
1079To represent mixing of S and T by diffusive layering,  the diapycnal diffusivities suggested by
1080Federov (1988) is used:
1081\begin{align}
1082  % \label{eq:ZDF_ddm_d}
1083  A_d^{vT} &=
1084             \begin{cases}
1085               1.3635 \, \exp{\left( 4.6\, \exp{ \left[  -0.54\,( R_{\rho}^{-1} - 1 )  \right] }    \right)}
1086               &\text{if  $0<R_\rho < 1$ and $N^2>0$ } \\
1087               0                       &\text{otherwise}
1088             \end{cases}
1089                                       \nonumber \\
1090  \label{eq:ZDF_ddm_d_S}
1091  A_d^{vS} &=
1092             \begin{cases}
1093               A_d^{vT}\ \left( 1.85\,R_{\rho} - 0.85 \right) &\text{if  $0.5 \leq R_\rho<1$ and $N^2>0$ } \\
1094               A_d^{vT} \ 0.15 \ R_\rho               &\text{if  $\ \ 0 < R_\rho<0.5$ and $N^2>0$ } \\
1095               0                       &\text{otherwise}
1096             \end{cases}
1097\end{align}
1098
1099The dependencies of \autoref{eq:ZDF_ddm_f} to \autoref{eq:ZDF_ddm_d_S} on $R_\rho$ are illustrated in
1100\autoref{fig:ZDF_ddm}.
1101Implementing this requires computing $R_\rho$ at each grid point on every time step.
1102This is done in \mdl{eosbn2} at the same time as $N^2$ is computed.
1103This avoids duplication in the computation of $\alpha$ and $\beta$ (which is usually quite expensive).
1104
1105%% =================================================================================================
1106\section[Bottom and top friction (\textit{zdfdrg.F90})]{Bottom and top friction (\protect\mdl{zdfdrg})}
1107\label{sec:ZDF_drg}
1108
1109\begin{listing}
1110  \nlst{namdrg}
1111  \caption{\forcode{&namdrg}}
1112  \label{lst:namdrg}
1113\end{listing}
1114
1115\begin{listing}
1116  \nlst{namdrg_top}
1117  \caption{\forcode{&namdrg_top}}
1118  \label{lst:namdrg_top}
1119\end{listing}
1120
1121\begin{listing}
1122  \nlst{namdrg_bot}
1123  \caption{\forcode{&namdrg_bot}}
1124  \label{lst:namdrg_bot}
1125\end{listing}
1126
1127Options to define the top and bottom friction are defined through the \nam{drg}{drg} namelist variables.
1128The bottom friction represents the friction generated by the bathymetry.
1129The top friction represents the friction generated by the ice shelf/ocean interface.
1130As the friction processes at the top and the bottom are treated in and identical way,
1131the description below considers mostly the bottom friction case, if not stated otherwise.
1132
1133Both the surface momentum flux (wind stress) and the bottom momentum flux (bottom friction) enter the equations as
1134a condition on the vertical diffusive flux.
1135For the bottom boundary layer, one has:
1136 \[
1137   % \label{eq:ZDF_bfr_flux}
1138   A^{vm} \left( \partial {\textbf U}_h / \partial z \right) = {{\cal F}}_h^{\textbf U}
1139 \]
1140where ${\cal F}_h^{\textbf U}$ is represents the downward flux of horizontal momentum outside
1141the logarithmic turbulent boundary layer (thickness of the order of 1~m in the ocean).
1142How ${\cal F}_h^{\textbf U}$ influences the interior depends on the vertical resolution of the model near
1143the bottom relative to the Ekman layer depth.
1144For example, in order to obtain an Ekman layer depth $d = \sqrt{2\;A^{vm}} / f = 50$~m,
1145one needs a vertical diffusion coefficient $A^{vm} = 0.125$~m$^2$s$^{-1}$
1146(for a Coriolis frequency $f = 10^{-4}$~m$^2$s$^{-1}$).
1147With a background diffusion coefficient $A^{vm} = 10^{-4}$~m$^2$s$^{-1}$, the Ekman layer depth is only 1.4~m.
1148When the vertical mixing coefficient is this small, using a flux condition is equivalent to
1149entering the viscous forces (either wind stress or bottom friction) as a body force over the depth of the top or
1150bottom model layer.
1151To illustrate this, consider the equation for $u$ at $k$, the last ocean level:
1152\begin{equation}
1153  \label{eq:ZDF_drg_flux2}
1154  \frac{\partial u_k}{\partial t} = \frac{1}{e_{3u}} \left[ \frac{A_{uw}^{vm}}{e_{3uw}} \delta_{k+1/2}\;[u] - {\cal F}^u_h \right] \approx - \frac{{\cal F}^u_{h}}{e_{3u}}
1155\end{equation}
1156If the bottom layer thickness is 200~m, the Ekman transport will be distributed over that depth.
1157On the other hand, if the vertical resolution is high (1~m or less) and a turbulent closure model is used,
1158the turbulent Ekman layer will be represented explicitly by the model.
1159However, the logarithmic layer is never represented in current primitive equation model applications:
1160it is \emph{necessary} to parameterize the flux ${\cal F}^u_h $.
1161Two choices are available in \NEMO: a linear and a quadratic bottom friction.
1162Note that in both cases, the rotation between the interior velocity and the bottom friction is neglected in
1163the present release of \NEMO.
1164
1165In the code, the bottom friction is imposed by adding the trend due to the bottom friction to
1166 the general momentum trend in \mdl{dynzdf}.
1167For the time-split surface pressure gradient algorithm, the momentum trend due to
1168the barotropic component needs to be handled separately.
1169For this purpose it is convenient to compute and store coefficients which can be simply combined with
1170bottom velocities and geometric values to provide the momentum trend due to bottom friction.
1171 These coefficients are computed in \mdl{zdfdrg} and generally take the form $c_b^{\textbf U}$ where:
1172\begin{equation}
1173  \label{eq:ZDF_bfr_bdef}
1174  \frac{\partial {\textbf U_h}}{\partial t} =
1175  - \frac{{\cal F}^{\textbf U}_{h}}{e_{3u}} = \frac{c_b^{\textbf U}}{e_{3u}} \;{\textbf U}_h^b
1176\end{equation}
1177where $\textbf{U}_h^b = (u_b\;,\;v_b)$ is the near-bottom, horizontal, ocean velocity.
1178Note than from \NEMO\ 4.0, drag coefficients are only computed at cell centers (\ie\ at T-points) and refer to as $c_b^T$ in the following. These are then linearly interpolated in space to get $c_b^\textbf{U}$ at velocity points.
1179
1180%% =================================================================================================
1181\subsection[Linear top/bottom friction (\forcode{ln_lin})]{Linear top/bottom friction (\protect\np{ln_lin}{ln\_lin})}
1182\label{subsec:ZDF_drg_linear}
1183
1184The linear friction parameterisation (including the special case of a free-slip condition) assumes that
1185the friction is proportional to the interior velocity (\ie\ the velocity of the first/last model level):
1186\[
1187  % \label{eq:ZDF_bfr_linear}
1188  {\cal F}_h^\textbf{U} = \frac{A^{vm}}{e_3} \; \frac{\partial \textbf{U}_h}{\partial k} = r \; \textbf{U}_h^b
1189\]
1190where $r$ is a friction coefficient expressed in $m s^{-1}$.
1191This coefficient is generally estimated by setting a typical decay time $\tau$ in the deep ocean,
1192and setting $r = H / \tau$, where $H$ is the ocean depth.
1193Commonly accepted values of $\tau$ are of the order of 100 to 200 days \citep{weatherly_JMR84}.
1194A value $\tau^{-1} = 10^{-7}$~s$^{-1}$ equivalent to 115 days, is usually used in quasi-geostrophic models.
1195One may consider the linear friction as an approximation of quadratic friction, $r \approx 2\;C_D\;U_{av}$
1196(\citet{gill_bk82}, Eq. 9.6.6).
1197For example, with a drag coefficient $C_D = 0.002$, a typical speed of tidal currents of $U_{av} =0.1$~m\;s$^{-1}$,
1198and assuming an ocean depth $H = 4000$~m, the resulting friction coefficient is $r = 4\;10^{-4}$~m\;s$^{-1}$.
1199This is the default value used in \NEMO. It corresponds to a decay time scale of 115~days.
1200It can be changed by specifying \np{rn_Uc0}{rn\_Uc0} (namelist parameter).
1201
1202 For the linear friction case the drag coefficient used in the general expression \autoref{eq:ZDF_bfr_bdef} is:
1203\[
1204  % \label{eq:ZDF_bfr_linbfr_b}
1205    c_b^T = - r
1206\]
1207When \np[=.true.]{ln_lin}{ln\_lin}, the value of $r$ used is \np{rn_Uc0}{rn\_Uc0}*\np{rn_Cd0}{rn\_Cd0}.
1208Setting \np[=.true.]{ln_drg_OFF}{ln\_drg\_OFF} (and \forcode{ln_lin=.true.}) is equivalent to setting $r=0$ and leads to a free-slip boundary condition.
1209
1210These values are assigned in \mdl{zdfdrg}.
1211Note that there is support for local enhancement of these values via an externally defined 2D mask array
1212(\np[=.true.]{ln_boost}{ln\_boost}) given in the \textit{bfr\_coef.nc} input NetCDF file.
1213The mask values should vary from 0 to 1.
1214Locations with a non-zero mask value will have the friction coefficient increased by
1215$mask\_value$ * \np{rn_boost}{rn\_boost} * \np{rn_Cd0}{rn\_Cd0}.
1216
1217%% =================================================================================================
1218\subsection[Non-linear top/bottom friction (\forcode{ln_non_lin})]{Non-linear top/bottom friction (\protect\np{ln_non_lin}{ln\_non\_lin})}
1219\label{subsec:ZDF_drg_nonlinear}
1220
1221The non-linear bottom friction parameterisation assumes that the top/bottom friction is quadratic:
1222\[
1223  % \label{eq:ZDF_drg_nonlinear}
1224  {\cal F}_h^\textbf{U} = \frac{A^{vm}}{e_3 }\frac{\partial \textbf {U}_h
1225  }{\partial k}=C_D \;\sqrt {u_b ^2+v_b ^2+e_b } \;\; \textbf {U}_h^b
1226\]
1227where $C_D$ is a drag coefficient, and $e_b $ a top/bottom turbulent kinetic energy due to tides,
1228internal waves breaking and other short time scale currents.
1229A typical value of the drag coefficient is $C_D = 10^{-3} $.
1230As an example, the CME experiment \citep{treguier_JGR92} uses $C_D = 10^{-3}$ and
1231$e_b = 2.5\;10^{-3}$m$^2$\;s$^{-2}$, while the FRAM experiment \citep{killworth_JPO92} uses $C_D = 1.4\;10^{-3}$ and
1232$e_b =2.5\;\;10^{-3}$m$^2$\;s$^{-2}$.
1233The CME choices have been set as default values (\np{rn_Cd0}{rn\_Cd0} and \np{rn_ke0}{rn\_ke0} namelist parameters).
1234
1235As for the linear case, the friction is imposed in the code by adding the trend due to
1236the friction to the general momentum trend in \mdl{dynzdf}.
1237For the non-linear friction case the term computed in \mdl{zdfdrg} is:
1238\[
1239  % \label{eq:ZDF_drg_nonlinbfr}
1240    c_b^T = - \; C_D\;\left[ \left(\bar{u_b}^{i}\right)^2 + \left(\bar{v_b}^{j}\right)^2 + e_b \right]^{1/2}
1241\]
1242
1243The coefficients that control the strength of the non-linear friction are initialised as namelist parameters:
1244$C_D$= \np{rn_Cd0}{rn\_Cd0}, and $e_b$ =\np{rn_bfeb2}{rn\_bfeb2}.
1245Note that for applications which consider tides explicitly, a low or even zero value of \np{rn_bfeb2}{rn\_bfeb2} is recommended. A local enhancement of $C_D$ is again possible via an externally defined 2D mask array
1246(\np[=.true.]{ln_boost}{ln\_boost}).
1247This works in the same way as for the linear friction case with non-zero masked locations increased by
1248$mask\_value$ * \np{rn_boost}{rn\_boost} * \np{rn_Cd0}{rn\_Cd0}.
1249
1250%% =================================================================================================
1251\subsection[Log-layer top/bottom friction (\forcode{ln_loglayer})]{Log-layer top/bottom friction (\protect\np{ln_loglayer}{ln\_loglayer})}
1252\label{subsec:ZDF_drg_loglayer}
1253
1254In the non-linear friction case, the drag coefficient, $C_D$, can be optionally enhanced using
1255a "law of the wall" scaling. This assumes that the model vertical resolution can capture the logarithmic layer which typically occur for layers thinner than 1 m or so.
1256If  \np[=.true.]{ln_loglayer}{ln\_loglayer}, $C_D$ is no longer constant but is related to the distance to the wall (or equivalently to the half of the top/bottom layer thickness):
1257\[
1258  C_D = \left ( {\kappa \over {\mathrm log}\left ( 0.5 \; e_{3b} / rn\_{z0} \right ) } \right )^2
1259\]
1260
1261\noindent where $\kappa$ is the von-Karman constant and \np{rn_z0}{rn\_z0} is a roughness length provided via the namelist.
1262
1263The drag coefficient is bounded such that it is kept greater or equal to
1264the base \np{rn_Cd0}{rn\_Cd0} value which occurs where layer thicknesses become large and presumably logarithmic layers are not resolved at all. For stability reason, it is also not allowed to exceed the value of an additional namelist parameter:
1265\np{rn_Cdmax}{rn\_Cdmax}, \ie
1266\[
1267  rn\_Cd0 \leq C_D \leq rn\_Cdmax
1268\]
1269
1270\noindent The log-layer enhancement can also be applied to the top boundary friction if
1271under ice-shelf cavities are activated (\np[=.true.]{ln_isfcav}{ln\_isfcav}).
1272%In this case, the relevant namelist parameters are \np{rn_tfrz0}{rn\_tfrz0}, \np{rn_tfri2}{rn\_tfri2} and \np{rn_tfri2_max}{rn\_tfri2\_max}.
1273
1274%% =================================================================================================
1275\subsection[Explicit top/bottom friction (\forcode{ln_drgimp=.false.})]{Explicit top/bottom friction (\protect\np[=.false.]{ln_drgimp}{ln\_drgimp})}
1276\label{subsec:ZDF_drg_stability}
1277
1278Setting \np[=.false.]{ln_drgimp}{ln\_drgimp} means that bottom friction is treated explicitly in time, which has the advantage of simplifying the interaction with the split-explicit free surface (see \autoref{subsec:ZDF_drg_ts}). The latter does indeed require the knowledge of bottom stresses in the course of the barotropic sub-iteration, which becomes less straightforward in the implicit case. In the explicit case, top/bottom stresses can be computed using \textit{before} velocities and inserted in the overall momentum tendency budget. This reads:
1279
1280At the top (below an ice shelf cavity):
1281\[
1282  \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{t}
1283  = c_{t}^{\textbf{U}}\textbf{u}^{n-1}_{t}
1284\]
1285
1286At the bottom (above the sea floor):
1287\[
1288  \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{b}
1289  = c_{b}^{\textbf{U}}\textbf{u}^{n-1}_{b}
1290\]
1291
1292Since this is conditionally stable, some care needs to exercised over the choice of parameters to ensure that the implementation of explicit top/bottom friction does not induce numerical instability.
1293For the purposes of stability analysis, an approximation to \autoref{eq:ZDF_drg_flux2} is:
1294\begin{equation}
1295  \label{eq:ZDF_Eqn_drgstab}
1296  \begin{split}
1297    \Delta u &= -\frac{{{\cal F}_h}^u}{e_{3u}}\;2 \rdt    \\
1298    &= -\frac{ru}{e_{3u}}\;2\rdt\\
1299  \end{split}
1300\end{equation}
1301\noindent where linear friction and a leapfrog timestep have been assumed.
1302To ensure that the friction cannot reverse the direction of flow it is necessary to have:
1303\[
1304  |\Delta u| < \;|u|
1305\]
1306\noindent which, using \autoref{eq:ZDF_Eqn_drgstab}, gives:
1307\[
1308  r\frac{2\rdt}{e_{3u}} < 1 \qquad  \Rightarrow \qquad r < \frac{e_{3u}}{2\rdt}\\
1309\]
1310This same inequality can also be derived in the non-linear bottom friction case if
1311a velocity of 1 m.s$^{-1}$ is assumed.
1312Alternatively, this criterion can be rearranged to suggest a minimum bottom box thickness to ensure stability:
1313\[
1314  e_{3u} > 2\;r\;\rdt
1315\]
1316\noindent which it may be necessary to impose if partial steps are being used.
1317For example, if $|u| = 1$ m.s$^{-1}$, $rdt = 1800$ s, $r = 10^{-3}$ then $e_{3u}$ should be greater than 3.6 m.
1318For most applications, with physically sensible parameters these restrictions should not be of concern.
1319But caution may be necessary if attempts are made to locally enhance the bottom friction parameters.
1320To ensure stability limits are imposed on the top/bottom friction coefficients both
1321during initialisation and at each time step.
1322Checks at initialisation are made in \mdl{zdfdrg} (assuming a 1 m.s$^{-1}$ velocity in the non-linear case).
1323The number of breaches of the stability criterion are reported as well as
1324the minimum and maximum values that have been set.
1325The criterion is also checked at each time step, using the actual velocity, in \mdl{dynzdf}.
1326Values of the friction coefficient are reduced as necessary to ensure stability;
1327these changes are not reported.
1328
1329Limits on the top/bottom friction coefficient are not imposed if the user has elected to
1330handle the friction implicitly (see \autoref{subsec:ZDF_drg_imp}).
1331The number of potential breaches of the explicit stability criterion are still reported for information purposes.
1332
1333%% =================================================================================================
1334\subsection[Implicit top/bottom friction (\forcode{ln_drgimp=.true.})]{Implicit top/bottom friction (\protect\np[=.true.]{ln_drgimp}{ln\_drgimp})}
1335\label{subsec:ZDF_drg_imp}
1336
1337An optional implicit form of bottom friction has been implemented to improve model stability.
1338We recommend this option for shelf sea and coastal ocean applications. %, especially for split-explicit time splitting.
1339This option can be invoked by setting \np{ln_drgimp}{ln\_drgimp} to \forcode{.true.} in the \nam{drg}{drg} namelist.
1340%This option requires \np{ln_zdfexp}{ln\_zdfexp} to be \forcode{.false.} in the \nam{zdf}{zdf} namelist.
1341
1342This implementation is performed in \mdl{dynzdf} where the following boundary conditions are set while solving the fully implicit diffusion step:
1343
1344At the top (below an ice shelf cavity):
1345\[
1346  % \label{eq:ZDF_dynZDF__drg_top}
1347  \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{t}
1348  = c_{t}^{\textbf{U}}\textbf{u}^{n+1}_{t}
1349\]
1350
1351At the bottom (above the sea floor):
1352\[
1353  % \label{eq:ZDF_dynZDF__drg_bot}
1354  \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{b}
1355  = c_{b}^{\textbf{U}}\textbf{u}^{n+1}_{b}
1356\]
1357
1358where $t$ and $b$ refers to top and bottom layers respectively.
1359Superscript $n+1$ means the velocity used in the friction formula is to be calculated, so it is implicit.
1360
1361%% =================================================================================================
1362\subsection[Bottom friction with split-explicit free surface]{Bottom friction with split-explicit free surface}
1363\label{subsec:ZDF_drg_ts}
1364
1365With split-explicit free surface, the sub-stepping of barotropic equations needs the knowledge of top/bottom stresses. An obvious way to satisfy this is to take them as constant over the course of the barotropic integration and equal to the value used to update the baroclinic momentum trend. Provided \np[=.false.]{ln_drgimp}{ln\_drgimp} and a centred or \textit{leap-frog} like integration of barotropic equations is used (\ie\ \forcode{ln_bt_fw=.false.}, cf \autoref{subsec:DYN_spg_ts}), this does ensure that barotropic and baroclinic dynamics feel the same stresses during one leapfrog time step. However, if \np[=.true.]{ln_drgimp}{ln\_drgimp},  stresses depend on the \textit{after} value of the velocities which themselves depend on the barotropic iteration result. This cyclic dependency makes difficult obtaining consistent stresses in 2d and 3d dynamics. Part of this mismatch is then removed when setting the final barotropic component of 3d velocities to the time splitting estimate. This last step can be seen as a necessary evil but should be minimized since it interferes with the adjustment to the boundary conditions.
1366
1367The strategy to handle top/bottom stresses with split-explicit free surface in \NEMO\ is as follows:
1368\begin{enumerate}
1369\item To extend the stability of the barotropic sub-stepping, bottom stresses are refreshed at each sub-iteration. The baroclinic part of the flow entering the stresses is frozen at the initial time of the barotropic iteration. In case of non-linear friction, the drag coefficient is also constant.
1370\item In case of an implicit drag, specific computations are performed in \mdl{dynzdf} which renders the overall scheme mixed explicit/implicit: the barotropic components of 3d velocities are removed before seeking for the implicit vertical diffusion result. Top/bottom stresses due to the barotropic components are explicitly accounted for thanks to the updated values of barotropic velocities. Then the implicit solution of 3d velocities is obtained. Lastly, the residual barotropic component is replaced by the time split estimate.
1371\end{enumerate}
1372
1373Note that other strategies are possible, like considering vertical diffusion step in advance, \ie\ prior barotropic integration.
1374
1375%% =================================================================================================
1376\section[Internal wave-driven mixing (\forcode{ln_zdfiwm})]{Internal wave-driven mixing (\protect\np{ln_zdfiwm}{ln\_zdfiwm})}
1377\label{subsec:ZDF_tmx_new}
1378
1379\begin{listing}
1380  \nlst{namzdf_iwm}
1381  \caption{\forcode{&namzdf_iwm}}
1382  \label{lst:namzdf_iwm}
1383\end{listing}
1384
1385The parameterization of mixing induced by breaking internal waves is a generalization of
1386the approach originally proposed by \citet{st-laurent.simmons.ea_GRL02}.
1387A three-dimensional field of internal wave energy dissipation $\epsilon(x,y,z)$ is first constructed,
1388and the resulting diffusivity is obtained as
1389\[
1390  % \label{eq:ZDF_Kwave}
1391  A^{vT}_{wave} =  R_f \,\frac{ \epsilon }{ \rho \, N^2 }
1392\]
1393where $R_f$ is the mixing efficiency and $\epsilon$ is a specified three dimensional distribution of
1394the energy available for mixing.
1395If the \np{ln_mevar}{ln\_mevar} namelist parameter is set to \forcode{.false.}, the mixing efficiency is taken as constant and
1396equal to 1/6 \citep{osborn_JPO80}.
1397In the opposite (recommended) case, $R_f$ is instead a function of
1398the turbulence intensity parameter $Re_b = \frac{ \epsilon}{\nu \, N^2}$,
1399with $\nu$ the molecular viscosity of seawater, following the model of \cite{bouffard.boegman_DAO13} and
1400the implementation of \cite{de-lavergne.madec.ea_JPO16}.
1401Note that $A^{vT}_{wave}$ is bounded by $10^{-2}\,m^2/s$, a limit that is often reached when
1402the mixing efficiency is constant.
1403
1404In addition to the mixing efficiency, the ratio of salt to heat diffusivities can chosen to vary
1405as a function of $Re_b$ by setting the \np{ln_tsdiff}{ln\_tsdiff} parameter to \forcode{.true.}, a recommended choice.
1406This parameterization of differential mixing, due to \cite{jackson.rehmann_JPO14},
1407is implemented as in \cite{de-lavergne.madec.ea_JPO16}.
1408
1409The three-dimensional distribution of the energy available for mixing, $\epsilon(i,j,k)$,
1410is constructed from three static maps of column-integrated internal wave energy dissipation,
1411$E_{cri}(i,j)$, $E_{pyc}(i,j)$, and $E_{bot}(i,j)$, combined to three corresponding vertical structures:
1412
1413\begin{align*}
1414  F_{cri}(i,j,k) &\propto e^{-h_{ab} / h_{cri} }\\
1415  F_{pyc}(i,j,k) &\propto N^{n_p}\\
1416  F_{bot}(i,j,k) &\propto N^2 \, e^{- h_{wkb} / h_{bot} }
1417\end{align*}
1418In the above formula, $h_{ab}$ denotes the height above bottom,
1419$h_{wkb}$ denotes the WKB-stretched height above bottom, defined by
1420\[
1421  h_{wkb} = H \, \frac{ \int_{-H}^{z} N \, dz' } { \int_{-H}^{\eta} N \, dz'  } \; ,
1422\]
1423The $n_p$ parameter (given by \np{nn_zpyc}{nn\_zpyc} in \nam{zdf_iwm}{zdf\_iwm} namelist)
1424controls the stratification-dependence of the pycnocline-intensified dissipation.
1425It can take values of $1$ (recommended) or $2$.
1426Finally, the vertical structures $F_{cri}$ and $F_{bot}$ require the specification of
1427the decay scales $h_{cri}(i,j)$ and $h_{bot}(i,j)$, which are defined by two additional input maps.
1428$h_{cri}$ is related to the large-scale topography of the ocean (etopo2) and
1429$h_{bot}$ is a function of the energy flux $E_{bot}$, the characteristic horizontal scale of
1430the abyssal hill topography \citep{goff_JGR10} and the latitude.
1431% Jc: input files names ?
1432
1433%% =================================================================================================
1434\section[Surface wave-induced mixing (\forcode{ln_zdfswm})]{Surface wave-induced mixing (\protect\np{ln_zdfswm}{ln\_zdfswm})}
1435\label{subsec:ZDF_swm}
1436
1437Surface waves produce an enhanced mixing through wave-turbulence interaction.
1438In addition to breaking waves induced turbulence (\autoref{subsec:ZDF_tke}),
1439the influence of non-breaking waves can be accounted introducing
1440wave-induced viscosity and diffusivity as a function of the wave number spectrum.
1441Following \citet{qiao.yuan.ea_OD10}, a formulation of wave-induced mixing coefficient
1442is provided  as a function of wave amplitude, Stokes Drift and wave-number:
1443
1444\begin{equation}
1445  \label{eq:ZDF_Bv}
1446  B_{v} = \alpha {A} {U}_{st} {exp(3kz)}
1447\end{equation}
1448
1449Where $B_{v}$ is the wave-induced mixing coefficient, $A$ is the wave amplitude,
1450${U}_{st}$ is the Stokes Drift velocity, $k$ is the wave number and $\alpha$
1451is a constant which should be determined by observations or
1452numerical experiments and is set to be 1.
1453
1454The coefficient $B_{v}$ is then directly added to the vertical viscosity
1455and diffusivity coefficients.
1456
1457In order to account for this contribution set: \forcode{ln_zdfswm=.true.},
1458then wave interaction has to be activated through \forcode{ln_wave=.true.},
1459the Stokes Drift can be evaluated by setting \forcode{ln_sdw=.true.}
1460(see \autoref{subsec:SBC_wave_sdw})
1461and the needed wave fields (significant wave height and mean wave number) can be provided either in forcing or coupled mode
1462(for more information on wave parameters and settings see \autoref{sec:SBC_wave})
1463
1464%% =================================================================================================
1465\section[Adaptive-implicit vertical advection (\forcode{ln_zad_Aimp})]{Adaptive-implicit vertical advection(\protect\np{ln_zad_Aimp}{ln\_zad\_Aimp})}
1466\label{subsec:ZDF_aimp}
1467
1468The adaptive-implicit vertical advection option in NEMO is based on the work of
1469\citep{shchepetkin_OM15}.  In common with most ocean models, the timestep used with NEMO
1470needs to satisfy multiple criteria associated with different physical processes in order
1471to maintain numerical stability. \citep{shchepetkin_OM15} pointed out that the vertical
1472CFL criterion is commonly the most limiting. \citep{lemarie.debreu.ea_OM15} examined the
1473constraints for a range of time and space discretizations and provide the CFL stability
1474criteria for a range of advection schemes. The values for the Leap-Frog with Robert
1475asselin filter time-stepping (as used in NEMO) are reproduced in
1476\autoref{tab:ZDF_zad_Aimp_CFLcrit}. Treating the vertical advection implicitly can avoid these
1477restrictions but at the cost of large dispersive errors and, possibly, large numerical
1478viscosity. The adaptive-implicit vertical advection option provides a targetted use of the
1479implicit scheme only when and where potential breaches of the vertical CFL condition
1480occur. In many practical applications these events may occur remote from the main area of
1481interest or due to short-lived conditions such that the extra numerical diffusion or
1482viscosity does not greatly affect the overall solution. With such applications, setting:
1483\forcode{ln_zad_Aimp=.true.} should allow much longer model timesteps to be used whilst
1484retaining the accuracy of the high order explicit schemes over most of the domain.
1485
1486\begin{table}[htbp]
1487  \centering
1488  % \begin{tabular}{cp{70pt}cp{70pt}cp{70pt}cp{70pt}}
1489  \begin{tabular}{r|ccc}
1490    \hline
1491    spatial discretization  & 2$^nd$ order centered & 3$^rd$ order upwind & 4$^th$ order compact \\
1492    advective CFL criterion &                 0.904 &              0.472  &                0.522 \\
1493    \hline
1494  \end{tabular}
1495  \caption[Advective CFL criteria for the leapfrog with Robert Asselin filter time-stepping]{
1496    The advective CFL criteria for a range of spatial discretizations for
1497    the leapfrog with Robert Asselin filter time-stepping
1498    ($\nu=0.1$) as given in \citep{lemarie.debreu.ea_OM15}.}
1499  \label{tab:ZDF_zad_Aimp_CFLcrit}
1500\end{table}
1501
1502In particular, the advection scheme remains explicit everywhere except where and when
1503local vertical velocities exceed a threshold set just below the explicit stability limit.
1504Once the threshold is reached a tapered transition towards an implicit scheme is used by
1505partitioning the vertical velocity into a part that can be treated explicitly and any
1506excess that must be treated implicitly. The partitioning is achieved via a Courant-number
1507dependent weighting algorithm as described in \citep{shchepetkin_OM15}.
1508
1509The local cell Courant number ($Cu$) used for this partitioning is:
1510
1511\begin{equation}
1512  \label{eq:ZDF_Eqn_zad_Aimp_Courant}
1513  \begin{split}
1514    Cu &= {2 \rdt \over e^n_{3t_{ijk}}} \bigg (\big [ \texttt{Max}(w^n_{ijk},0.0) - \texttt{Min}(w^n_{ijk+1},0.0) \big ]    \\
1515       &\phantom{=} +\big [ \texttt{Max}(e_{{2_u}ij}e^n_{{3_{u}}ijk}u^n_{ijk},0.0) - \texttt{Min}(e_{{2_u}i-1j}e^n_{{3_{u}}i-1jk}u^n_{i-1jk},0.0) \big ]
1516                     \big / e_{{1_t}ij}e_{{2_t}ij}            \\
1517       &\phantom{=} +\big [ \texttt{Max}(e_{{1_v}ij}e^n_{{3_{v}}ijk}v^n_{ijk},0.0) - \texttt{Min}(e_{{1_v}ij-1}e^n_{{3_{v}}ij-1k}v^n_{ij-1k},0.0) \big ]
1518                     \big / e_{{1_t}ij}e_{{2_t}ij} \bigg )    \\
1519  \end{split}
1520\end{equation}
1521
1522\noindent and the tapering algorithm follows \citep{shchepetkin_OM15} as:
1523
1524\begin{align}
1525  \label{eq:ZDF_Eqn_zad_Aimp_partition}
1526Cu_{min} &= 0.15 \nonumber \\
1527Cu_{max} &= 0.3  \nonumber \\
1528Cu_{cut} &= 2Cu_{max} - Cu_{min} \nonumber \\
1529Fcu    &= 4Cu_{max}*(Cu_{max}-Cu_{min}) \nonumber \\
1530\cf &=
1531     \begin{cases}
1532        0.0                                                        &\text{if $Cu \leq Cu_{min}$} \\
1533        (Cu - Cu_{min})^2 / (Fcu +  (Cu - Cu_{min})^2)             &\text{else if $Cu < Cu_{cut}$} \\
1534        (Cu - Cu_{max}) / Cu                                       &\text{else}
1535     \end{cases}
1536\end{align}
1537
1538\begin{figure}[!t]
1539  \centering
1540  \includegraphics[width=0.66\textwidth]{ZDF_zad_Aimp_coeff}
1541  \caption[Partitioning coefficient used to partition vertical velocities into parts]{
1542    The value of the partitioning coefficient (\cf) used to partition vertical velocities into
1543    parts to be treated implicitly and explicitly for a range of typical Courant numbers
1544    (\forcode{ln_zad_Aimp=.true.}).}
1545  \label{fig:ZDF_zad_Aimp_coeff}
1546\end{figure}
1547
1548\noindent The partitioning coefficient is used to determine the part of the vertical
1549velocity that must be handled implicitly ($w_i$) and to subtract this from the total
1550vertical velocity ($w_n$) to leave that which can continue to be handled explicitly:
1551
1552\begin{align}
1553  \label{eq:ZDF_Eqn_zad_Aimp_partition2}
1554    w_{i_{ijk}} &= \cf_{ijk} w_{n_{ijk}}     \nonumber \\
1555    w_{n_{ijk}} &= (1-\cf_{ijk}) w_{n_{ijk}}
1556\end{align}
1557
1558\noindent Note that the coefficient is such that the treatment is never fully implicit;
1559the three cases from \autoref{eq:ZDF_Eqn_zad_Aimp_partition} can be considered as:
1560fully-explicit; mixed explicit/implicit and mostly-implicit.  With the settings shown the
1561coefficient (\cf) varies as shown in \autoref{fig:ZDF_zad_Aimp_coeff}. Note with these values
1562the $Cu_{cut}$ boundary between the mixed implicit-explicit treatment and 'mostly
1563implicit' is 0.45 which is just below the stability limited given in
1564\autoref{tab:ZDF_zad_Aimp_CFLcrit}  for a 3rd order scheme.
1565
1566The $w_i$ component is added to the implicit solvers for the vertical mixing in
1567\mdl{dynzdf} and \mdl{trazdf} in a similar way to \citep{shchepetkin_OM15}.  This is
1568sufficient for the flux-limited advection scheme (\forcode{ln_traadv_mus}) but further
1569intervention is required when using the flux-corrected scheme (\forcode{ln_traadv_fct}).
1570For these schemes the implicit upstream fluxes must be added to both the monotonic guess
1571and to the higher order solution when calculating the antidiffusive fluxes. The implicit
1572vertical fluxes are then removed since they are added by the implicit solver later on.
1573
1574The adaptive-implicit vertical advection option is new to NEMO at v4.0 and has yet to be
1575used in a wide range of simulations. The following test simulation, however, does illustrate
1576the potential benefits and will hopefully encourage further testing and feedback from users:
1577
1578\begin{figure}[!t]
1579  \centering
1580  \includegraphics[width=0.66\textwidth]{ZDF_zad_Aimp_overflow_frames}
1581  \caption[OVERFLOW: time-series of temperature vertical cross-sections]{
1582    A time-series of temperature vertical cross-sections for the OVERFLOW test case.
1583    These results are for the default settings with \forcode{nn_rdt=10.0} and
1584    without adaptive implicit vertical advection (\forcode{ln_zad_Aimp=.false.}).}
1585  \label{fig:ZDF_zad_Aimp_overflow_frames}
1586\end{figure}
1587
1588%% =================================================================================================
1589\subsection{Adaptive-implicit vertical advection in the OVERFLOW test-case}
1590
1591The \href{https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/test\_cases.html\#overflow}{OVERFLOW test case}
1592provides a simple illustration of the adaptive-implicit advection in action. The example here differs from the basic test case
1593by only a few extra physics choices namely:
1594
1595\begin{forlines}
1596     ln_dynldf_OFF = .false.
1597     ln_dynldf_lap = .true.
1598     ln_dynldf_hor = .true.
1599     ln_zdfnpc     = .true.
1600     ln_traadv_fct = .true.
1601        nn_fct_h   =  2
1602        nn_fct_v   =  2
1603\end{forlines}
1604
1605\noindent which were chosen to provide a slightly more stable and less noisy solution. The
1606result when using the default value of \forcode{nn_rdt=10.} without adaptive-implicit
1607vertical velocity is illustrated in \autoref{fig:ZDF_zad_Aimp_overflow_frames}. The mass of
1608cold water, initially sitting on the shelf, moves down the slope and forms a
1609bottom-trapped, dense plume. Even with these extra physics choices the model is close to
1610stability limits and attempts with \forcode{nn_rdt=30.} will fail after about 5.5 hours
1611with excessively high horizontal velocities. This time-scale corresponds with the time the
1612plume reaches the steepest part of the topography and, although detected as a horizontal
1613CFL breach, the instability originates from a breach of the vertical CFL limit. This is a good
1614candidate, therefore, for use of the adaptive-implicit vertical advection scheme.
1615
1616The results with \forcode{ln_zad_Aimp=.true.} and a variety of model timesteps
1617are shown in \autoref{fig:ZDF_zad_Aimp_overflow_all_rdt} (together with the equivalent
1618frames from the base run).  In this simple example the use of the adaptive-implicit
1619vertcal advection scheme has enabled a 12x increase in the model timestep without
1620significantly altering the solution (although at this extreme the plume is more diffuse
1621and has not travelled so far).  Notably, the solution with and without the scheme is
1622slightly different even with \forcode{nn_rdt=10.}; suggesting that the base run was
1623close enough to instability to trigger the scheme despite completing successfully.
1624To assist in diagnosing how active the scheme is, in both location and time, the 3D
1625implicit and explicit components of the vertical velocity are available via XIOS as
1626\texttt{wimp} and \texttt{wexp} respectively.  Likewise, the partitioning coefficient
1627(\cf) is also available as \texttt{wi\_cff}. For a quick oversight of
1628the schemes activity the global maximum values of the absolute implicit component
1629of the vertical velocity and the partitioning coefficient are written to the netCDF
1630version of the run statistics file (\texttt{run.stat.nc}) if this is active (see
1631\autoref{sec:MISC_opt} for activation details).
1632
1633\autoref{fig:ZDF_zad_Aimp_maxCf} shows examples of the maximum partitioning coefficient for
1634the various overflow tests.  Note that the adaptive-implicit vertical advection scheme is
1635active even in the base run with \forcode{nn_rdt=10.0s} adding to the evidence that the
1636test case is close to stability limits even with this value. At the larger timesteps, the
1637vertical velocity is treated mostly implicitly at some location throughout the run. The
1638oscillatory nature of this measure appears to be linked to the progress of the plume front
1639as each cusp is associated with the location of the maximum shifting to the adjacent cell.
1640This is illustrated in \autoref{fig:ZDF_zad_Aimp_maxCf_loc} where the i- and k- locations of the
1641maximum have been overlaid for the base run case.
1642
1643\medskip
1644\noindent Only limited tests have been performed in more realistic configurations. In the
1645ORCA2\_ICE\_PISCES reference configuration the scheme does activate and passes
1646restartability and reproducibility tests but it is unable to improve the model's stability
1647enough to allow an increase in the model time-step. A view of the time-series of maximum
1648partitioning coefficient (not shown here)  suggests that the default time-step of 5400s is
1649already pushing at stability limits, especially in the initial start-up phase. The
1650time-series does not, however, exhibit any of the 'cuspiness' found with the overflow
1651tests.
1652
1653\medskip
1654\noindent A short test with an eORCA1 configuration promises more since a test using a
1655time-step of 3600s remains stable with \forcode{ln_zad_Aimp=.true.} whereas the
1656time-step is limited to 2700s without.
1657
1658\begin{figure}[!t]
1659  \centering
1660  \includegraphics[width=0.66\textwidth]{ZDF_zad_Aimp_overflow_all_rdt}
1661  \caption[OVERFLOW: sample temperature vertical cross-sections from mid- and end-run]{
1662    Sample temperature vertical cross-sections from mid- and end-run using
1663    different values for \forcode{nn_rdt} and with or without adaptive implicit vertical advection.
1664    Without the adaptive implicit vertical advection
1665    only the run with the shortest timestep is able to run to completion.
1666    Note also that the colour-scale has been chosen to confirm that
1667    temperatures remain within the original range of 10$^o$ to 20$^o$.}
1668  \label{fig:ZDF_zad_Aimp_overflow_all_rdt}
1669\end{figure}
1670
1671\begin{figure}[!t]
1672  \centering
1673  \includegraphics[width=0.66\textwidth]{ZDF_zad_Aimp_maxCf}
1674  \caption[OVERFLOW: maximum partitioning coefficient during a series of test runs]{
1675    The maximum partitioning coefficient during a series of test runs with
1676    increasing model timestep length.
1677    At the larger timesteps,
1678    the vertical velocity is treated mostly implicitly at some location throughout the run.}
1679  \label{fig:ZDF_zad_Aimp_maxCf}
1680\end{figure}
1681
1682\begin{figure}[!t]
1683  \centering
1684  \includegraphics[width=0.66\textwidth]{ZDF_zad_Aimp_maxCf_loc}
1685  \caption[OVERFLOW: maximum partitioning coefficient for the case overlaid]{
1686    The maximum partitioning coefficient for the \forcode{nn_rdt=10.0} case overlaid with
1687    information on the gridcell i- and k-locations of the maximum value.}
1688  \label{fig:ZDF_zad_Aimp_maxCf_loc}
1689\end{figure}
1690
1691\subinc{\input{../../global/epilogue}}
1692
1693\end{document}
Note: See TracBrowser for help on using the repository browser.