source:NEMO/trunk/doc/latex/NEMO/subfiles/chap_DYN.tex@11179

Last change on this file since 11179 was 11179, checked in by nicolasmartin, 15 months ago

Add alternate section titles to avoid useless index links in ToC

File size: 91.4 KB
Line
1\documentclass[../main/NEMO_manual]{subfiles}
2
3\begin{document}
4% ================================================================
5% Chapter ——— Ocean Dynamics (DYN)
6% ================================================================
7\chapter{Ocean Dynamics (DYN)}
8\label{chap:DYN}
9
10\minitoc
11
12Using the representation described in \autoref{chap:DOM},
13several semi-discrete space forms of the dynamical equations are available depending on
14the vertical coordinate used and on the conservation properties of the vorticity term.
15In all the equations presented here, the masking has been omitted for simplicity.
16One must be aware that all the quantities are masked fields and
17that each time an average or difference operator is used, the resulting field is multiplied by a mask.
18
19The prognostic ocean dynamics equation can be summarized as follows:
20$21 \text{NXT} = \dbinom {\text{VOR} + \text{KEG} + \text {ZAD} } 22 {\text{COR} + \text{ADV} } 23 + \text{HPG} + \text{SPG} + \text{LDF} + \text{ZDF} 24$
25NXT stands for next, referring to the time-stepping.
26The first group of terms on the rhs of this equation corresponds to the Coriolis and advection terms that
27are decomposed into either a vorticity part (VOR), a kinetic energy part (KEG) and
28a vertical advection part (ZAD) in the vector invariant formulation,
29or a Coriolis and advection part (COR+ADV) in the flux formulation.
30The terms following these are the pressure gradient contributions
31(HPG, Hydrostatic Pressure Gradient, and SPG, Surface Pressure Gradient);
32and contributions from lateral diffusion (LDF) and vertical diffusion (ZDF),
33which are added to the rhs in the \mdl{dynldf} and \mdl{dynzdf} modules.
34The vertical diffusion term includes the surface and bottom stresses.
35The external forcings and parameterisations require complex inputs
36(surface wind stress calculation using bulk formulae, estimation of mixing coefficients)
37that are carried out in modules SBC, LDF and ZDF and are described in
38\autoref{chap:SBC}, \autoref{chap:LDF} and \autoref{chap:ZDF}, respectively.
39
40In the present chapter we also describe the diagnostic equations used to compute the horizontal divergence,
41curl of the velocities (\emph{divcur} module) and the vertical velocity (\emph{wzvmod} module).
42
43The different options available to the user are managed by namelist variables.
44For term \textit{ttt} in the momentum equations, the logical namelist variables are \textit{ln\_dynttt\_xxx},
45where \textit{xxx} is a 3 or 4 letter acronym corresponding to each optional scheme.
46If a CPP key is used for this term its name is \key{ttt}.
47The corresponding code can be found in the \textit{dynttt\_xxx} module in the DYN directory,
48and it is usually computed in the \textit{dyn\_ttt\_xxx} subroutine.
49
50The user has the option of extracting and outputting each tendency term from the 3D momentum equations
51(\key{trddyn} defined), as described in \autoref{chap:MISC}.
52Furthermore, the tendency terms associated with the 2D barotropic vorticity balance (when \key{trdvor} is defined)
53can be derived from the 3D terms.
54%%%
55\gmcomment{STEVEN: not quite sure I've got the sense of the last sentence. does
56MISC correspond to "extracting tendency terms" or "vorticity balance"?}
57
58% ================================================================
59% Sea Surface Height evolution & Diagnostics variables
60% ================================================================
61\section{Sea surface height and diagnostic variables ($\eta$, $\zeta$, $\chi$, $w$)}
62\label{sec:DYN_divcur_wzv}
63
64%--------------------------------------------------------------------------------------------------------------
65%           Horizontal divergence and relative vorticity
66%--------------------------------------------------------------------------------------------------------------
67\subsection[Horizontal divergence and relative vorticity (\textit{divcur.F90})]
68{Horizontal divergence and relative vorticity (\protect\mdl{divcur})}
69\label{subsec:DYN_divcur}
70
71The vorticity is defined at an $f$-point (\ie corner point) as follows:
72\begin{equation}
73  \label{eq:divcur_cur}
74  \zeta =\frac{1}{e_{1f}\,e_{2f} }\left( {\;\delta_{i+1/2} \left[ {e_{2v}\;v} \right]
75      -\delta_{j+1/2} \left[ {e_{1u}\;u} \right]\;} \right)
76\end{equation}
77
78The horizontal divergence is defined at a $T$-point.
79It is given by:
80$81 % \label{eq:divcur_div} 82 \chi =\frac{1}{e_{1t}\,e_{2t}\,e_{3t} } 83 \left( {\delta_i \left[ {e_{2u}\,e_{3u}\,u} \right] 84 +\delta_j \left[ {e_{1v}\,e_{3v}\,v} \right]} \right) 85$
86
87Note that although the vorticity has the same discrete expression in $z$- and $s$-coordinates,
88its physical meaning is not identical.
89$\zeta$ is a pseudo vorticity along $s$-surfaces
90(only pseudo because $(u,v)$ are still defined along geopotential surfaces,
91but are not necessarily defined at the same depth).
92
93The vorticity and divergence at the \textit{before} step are used in the computation of
94the horizontal diffusion of momentum.
95Note that because they have been calculated prior to the Asselin filtering of the \textit{before} velocities,
96the \textit{before} vorticity and divergence arrays must be included in the restart file to
97ensure perfect restartability.
98The vorticity and divergence at the \textit{now} time step are used for the computation of
99the nonlinear advection and of the vertical velocity respectively.
100
101%--------------------------------------------------------------------------------------------------------------
102%           Sea Surface Height evolution
103%--------------------------------------------------------------------------------------------------------------
104\subsection[Horizontal divergence and relative vorticity (\textit{sshwzv.F90})]
105{Horizontal divergence and relative vorticity (\protect\mdl{sshwzv})}
106\label{subsec:DYN_sshwzv}
107
108The sea surface height is given by:
109\begin{equation}
110  \label{eq:dynspg_ssh}
111  \begin{aligned}
112    \frac{\partial \eta }{\partial t}
113    &\equiv    \frac{1}{e_{1t} e_{2t} }\sum\limits_k { \left\{  \delta_i \left[ {e_{2u}\,e_{3u}\;u} \right]
114        +\delta_j \left[ {e_{1v}\,e_{3v}\;v} \right]  \right\} }
115    -    \frac{\textit{emp}}{\rho_w }   \\
116    &\equiv    \sum\limits_k {\chi \ e_{3t}}  -  \frac{\textit{emp}}{\rho_w }
117  \end{aligned}
118\end{equation}
119where \textit{emp} is the surface freshwater budget (evaporation minus precipitation),
120expressed in Kg/m$^2$/s (which is equal to mm/s),
121and $\rho_w$=1,035~Kg/m$^3$ is the reference density of sea water (Boussinesq approximation).
122If river runoff is expressed as a surface freshwater flux (see \autoref{chap:SBC}) then
123\textit{emp} can be written as the evaporation minus precipitation, minus the river runoff.
124The sea-surface height is evaluated using exactly the same time stepping scheme as
125the tracer equation \autoref{eq:tra_nxt}:
126a leapfrog scheme in combination with an Asselin time filter,
127\ie the velocity appearing in \autoref{eq:dynspg_ssh} is centred in time (\textit{now} velocity).
128This is of paramount importance.
129Replacing $T$ by the number $1$ in the tracer equation and summing over the water column must lead to
130the sea surface height equation otherwise tracer content will not be conserved
132
133The vertical velocity is computed by an upward integration of the horizontal divergence starting at the bottom,
134taking into account the change of the thickness of the levels:
135\begin{equation}
136  \label{eq:wzv}
137  \left\{
138    \begin{aligned}
139      &\left. w \right|_{k_b-1/2} \quad= 0    \qquad \text{where } k_b \text{ is the level just above the sea floor }   \\
140      &\left. w \right|_{k+1/2}     = \left. w \right|_{k-1/2}  +  \left. e_{3t} \right|_{k}\;  \left. \chi \right|_k
141      - \frac{1} {2 \rdt} \left\left. e_{3t}^{t+1}\right|_{k} - \left. e_{3t}^{t-1}\right|_{k}\right)
142    \end{aligned}
143  \right.
144\end{equation}
145
146In the case of a non-linear free surface (\key{vvl}), the top vertical velocity is $-\textit{emp}/\rho_w$,
147as changes in the divergence of the barotropic transport are absorbed into the change of the level thicknesses,
148re-orientated downward.
149\gmcomment{not sure of this...  to be modified with the change in emp setting}
150In the case of a linear free surface, the time derivative in \autoref{eq:wzv} disappears.
151The upper boundary condition applies at a fixed level $z=0$.
152The top vertical velocity is thus equal to the divergence of the barotropic transport
153(\ie the first term in the right-hand-side of \autoref{eq:dynspg_ssh}).
154
155Note also that whereas the vertical velocity has the same discrete expression in $z$- and $s$-coordinates,
156its physical meaning is not the same:
157in the second case, $w$ is the velocity normal to the $s$-surfaces.
158Note also that the $k$-axis is re-orientated downwards in the \fortran code compared to
159the indexing used in the semi-discrete equations such as \autoref{eq:wzv}
160(see \autoref{subsec:DOM_Num_Index_vertical}).
161
162
163% ================================================================
164% Coriolis and Advection terms: vector invariant form
165% ================================================================
166\section{Coriolis and advection: vector invariant form}
169
171%-------------------------------------------------------------------------------------------------------------
172
173The vector invariant form of the momentum equations is the one most often used in
174applications of the \NEMO ocean model.
175The flux form option (see next section) has been present since version $2$.
176Options are defined through the \ngn{namdyn\_adv} namelist variables Coriolis and
177momentum advection terms are evaluated using a leapfrog scheme,
178\ie the velocity appearing in these expressions is centred in time (\textit{now} velocity).
179At the lateral boundaries either free slip, no slip or partial slip boundary conditions are applied following
180\autoref{chap:LBC}.
181
182% -------------------------------------------------------------------------------------------------------------
183%        Vorticity term
184% -------------------------------------------------------------------------------------------------------------
185\subsection[Vorticity term (\textit{dynvor.F90})]
186{Vorticity term (\protect\mdl{dynvor})}
187\label{subsec:DYN_vor}
188%------------------------------------------nam_dynvor----------------------------------------------------
189
190\nlst{namdyn_vor}
191%-------------------------------------------------------------------------------------------------------------
192
193Options are defined through the \ngn{namdyn\_vor} namelist variables.
194Four discretisations of the vorticity term (\np{ln\_dynvor\_xxx}\forcode{ = .true.}) are available:
195conserving potential enstrophy of horizontally non-divergent flow (ENS scheme);
196conserving horizontal kinetic energy (ENE scheme);
197conserving potential enstrophy for the relative vorticity term and
198horizontal kinetic energy for the planetary vorticity term (MIX scheme);
199or conserving both the potential enstrophy of horizontally non-divergent flow and horizontal kinetic energy
200(EEN scheme) (see \autoref{subsec:C_vorEEN}).
201In the case of ENS, ENE or MIX schemes the land sea mask may be slightly modified to ensure the consistency of
202vorticity term with analytical equations (\np{ln\_dynvor\_con}\forcode{ = .true.}).
203The vorticity terms are all computed in dedicated routines that can be found in the \mdl{dynvor} module.
204
205%-------------------------------------------------------------
206%                 enstrophy conserving scheme
207%-------------------------------------------------------------
208\subsubsection[Enstrophy conserving scheme (\forcode{ln_dynvor_ens = .true.})]
209{Enstrophy conserving scheme (\protect\np{ln\_dynvor\_ens}\forcode{ = .true.})}
210\label{subsec:DYN_vor_ens}
211
212In the enstrophy conserving case (ENS scheme),
213the discrete formulation of the vorticity term provides a global conservation of the enstrophy
214($[ (\zeta +f ) / e_{3f} ]^2$ in $s$-coordinates) for a horizontally non-divergent flow (\ie $\chi$=$0$),
215but does not conserve the total kinetic energy.
216It is given by:
217\begin{equation}
218  \label{eq:dynvor_ens}
219  \left\{
220    \begin{aligned}
221      {+\frac{1}{e_{1u} } } & {\overline {\left( { \frac{\zeta +f}{e_{3f} }} \right)} }^{\,i}
222      & {\overline{\overline {\left( {e_{1v}\,e_{3v}\;v} \right)}} }^{\,i, j+1/2}    \\
223      {- \frac{1}{e_{2v} } } & {\overline {\left( {\frac{\zeta +f}{e_{3f} }} \right)} }^{\,j}
224      & {\overline{\overline {\left( {e_{2u}\,e_{3u}\;u} \right)}} }^{\,i+1/2, j}
225    \end{aligned}
226  \right.
227\end{equation}
228
229%-------------------------------------------------------------
230%                 energy conserving scheme
231%-------------------------------------------------------------
232\subsubsection[Energy conserving scheme (\forcode{ln_dynvor_ene = .true.})]
233{Energy conserving scheme (\protect\np{ln\_dynvor\_ene}\forcode{ = .true.})}
234\label{subsec:DYN_vor_ene}
235
236The kinetic energy conserving scheme (ENE scheme) conserves the global kinetic energy but not the global enstrophy.
237It is given by:
238\begin{equation}
239  \label{eq:dynvor_ene}
240  \left\{
241    \begin{aligned}
242      {+\frac{1}{e_{1u}}\; {\overline {\left( {\frac{\zeta +f}{e_{3f} }} \right)
243            \;  \overline {\left( {e_{1v}\,e_{3v}\;v} \right)} ^{\,i+1/2}} }^{\,j} }    \\
244      {- \frac{1}{e_{2v}}\; {\overline {\left( {\frac{\zeta +f}{e_{3f} }} \right)
245            \;  \overline {\left( {e_{2u}\,e_{3u}\;u} \right)} ^{\,j+1/2}} }^{\,i} }
246    \end{aligned}
247  \right.
248\end{equation}
249
250%-------------------------------------------------------------
251%                 mix energy/enstrophy conserving scheme
252%-------------------------------------------------------------
253\subsubsection[Mixed energy/enstrophy conserving scheme (\forcode{ln_dynvor_mix = .true.})]
254{Mixed energy/enstrophy conserving scheme (\protect\np{ln\_dynvor\_mix}\forcode{ = .true.})}
255\label{subsec:DYN_vor_mix}
256
257For the mixed energy/enstrophy conserving scheme (MIX scheme), a mixture of the two previous schemes is used.
258It consists of the ENS scheme (\autoref{eq:dynvor_ens}) for the relative vorticity term,
259and of the ENE scheme (\autoref{eq:dynvor_ene}) applied to the planetary vorticity term.
260261 % \label{eq:dynvor_mix} 262 \left\{ { 263 \begin{aligned} 264 {+\frac{1}{e_{1u} }\; {\overline {\left( {\frac{\zeta }{e_{3f} }} \right)} }^{\,i} 265 \; {\overline{\overline {\left( {e_{1v}\,e_{3v}\;v} \right)}} }^{\,i,j+1/2} -\frac{1}{e_{1u} } 266 \; {\overline {\left( {\frac{f}{e_{3f} }} \right) 267 \;\overline {\left( {e_{1v}\,e_{3v}\;v} \right)} ^{\,i+1/2}} }^{\,j} } \\ 268 {-\frac{1}{e_{2v} }\; {\overline {\left( {\frac{\zeta }{e_{3f} }} \right)} }^j 269 \; {\overline{\overline {\left( {e_{2u}\,e_{3u}\;u} \right)}} }^{\,i+1/2,j} +\frac{1}{e_{2v} } 270 \; {\overline {\left( {\frac{f}{e_{3f} }} \right) 271 \;\overline {\left( {e_{2u}\,e_{3u}\;u} \right)} ^{\,j+1/2}} }^{\,i} } \hfill 272 \end{aligned} 273 } \right. 274
275
276%-------------------------------------------------------------
277%                 energy and enstrophy conserving scheme
278%-------------------------------------------------------------
279\subsubsection[Energy and enstrophy conserving scheme (\forcode{ln_dynvor_een = .true.})]
280{Energy and enstrophy conserving scheme (\protect\np{ln\_dynvor\_een}\forcode{ = .true.})}
281\label{subsec:DYN_vor_een}
282
283In both the ENS and ENE schemes,
284it is apparent that the combination of $i$ and $j$ averages of the velocity allows for
285the presence of grid point oscillation structures that will be invisible to the operator.
286These structures are \textit{computational modes} that will be at least partly damped by
287the momentum diffusion operator (\ie the subgrid-scale advection), but not by the resolved advection term.
288The ENS and ENE schemes therefore do not contribute to dump any grid point noise in the horizontal velocity field.
289Such noise would result in more noise in the vertical velocity field, an undesirable feature.
290This is a well-known characteristic of $C$-grid discretization where
291$u$ and $v$ are located at different grid points,
292a price worth paying to avoid a double averaging in the pressure gradient term as in the $B$-grid.
293\gmcomment{ To circumvent this, Adcroft (ADD REF HERE)
294Nevertheless, this technique strongly distort the phase and group velocity of Rossby waves....}
295
296A very nice solution to the problem of double averaging was proposed by \citet{arakawa.hsu_MWR90}.
297The idea is to get rid of the double averaging by considering triad combinations of vorticity.
298It is noteworthy that this solution is conceptually quite similar to the one proposed by
299\citep{griffies.gnanadesikan.ea_JPO98} for the discretization of the iso-neutral diffusion operator (see \autoref{apdx:C}).
300
301The \citet{arakawa.hsu_MWR90} vorticity advection scheme for a single layer is modified
302for spherical coordinates as described by \citet{arakawa.lamb_MWR81} to obtain the EEN scheme.
303First consider the discrete expression of the potential vorticity, $q$, defined at an $f$-point:
304$305 % \label{eq:pot_vor} 306 q = \frac{\zeta +f} {e_{3f} } 307$
308where the relative vorticity is defined by (\autoref{eq:divcur_cur}),
309the Coriolis parameter is given by $f=2 \,\Omega \;\sin \varphi _f$ and the layer thickness at $f$-points is:
310\begin{equation}
311  \label{eq:een_e3f}
312  e_{3f} = \overline{\overline {e_{3t} }} ^{\,i+1/2,j+1/2}
313\end{equation}
314
315%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
316\begin{figure}[!ht]
317  \begin{center}
319    \caption{
321      Triads used in the energy and enstrophy conserving scheme (een) for
322      $u$-component (upper panel) and $v$-component (lower panel).
323    }
324  \end{center}
325\end{figure}
326% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
327
328A key point in \autoref{eq:een_e3f} is how the averaging in the \textbf{i}- and \textbf{j}- directions is made.
329It uses the sum of masked t-point vertical scale factor divided either by the sum of the four t-point masks
330(\np{nn\_een\_e3f}\forcode{ = 1}), or just by $4$ (\np{nn\_een\_e3f}\forcode{ = .true.}).
331The latter case preserves the continuity of $e_{3f}$ when one or more of the neighbouring $e_{3t}$ tends to zero and
332extends by continuity the value of $e_{3f}$ into the land areas.
333This case introduces a sub-grid-scale topography at f-points
334(with a systematic reduction of $e_{3f}$ when a model level intercept the bathymetry)
335that tends to reinforce the topostrophy of the flow
336(\ie the tendency of the flow to follow the isobaths) \citep{penduff.le-sommer.ea_OS07}.
337
338Next, the vorticity triads, ${^i_j}\mathbb{Q}^{i_p}_{j_p}$ can be defined at a $T$-point as
339the following triad combinations of the neighbouring potential vorticities defined at f-points
341\begin{equation}
343  _i^j \mathbb{Q}^{i_p}_{j_p}
344  = \frac{1}{12} \ \left(   q^{i-i_p}_{j+j_p} + q^{i+j_p}_{j+i_p} + q^{i+i_p}_{j-j_p}  \right)
345\end{equation}
346where the indices $i_p$ and $k_p$ take the values: $i_p = -1/2$ or $1/2$ and $j_p = -1/2$ or $1/2$.
347
348Finally, the vorticity terms are represented as:
349\begin{equation}
350  \label{eq:dynvor_een}
351  \left\{ {
352      \begin{aligned}
353        +q\,e_3 \, v    &\equiv +\frac{1}{e_{1u} }   \sum_{\substack{i_p,\,k_p}}
354        {^{i+1/2-i_p}_j}  \mathbb{Q}^{i_p}_{j_p}  \left( e_{1v}\,e_{3v} \;\right)^{i+1/2-i_p}_{j+j_p}   \\
355        - q\,e_3 \, u     &\equiv -\frac{1}{e_{2v} }    \sum_{\substack{i_p,\,k_p}}
356        {^i_{j+1/2-j_p}}  \mathbb{Q}^{i_p}_{j_p}  \left( e_{2u}\,e_{3u} \;\right)^{i+i_p}_{j+1/2-j_p}   \\
357      \end{aligned}
358    } \right.
359\end{equation}
360
361This EEN scheme in fact combines the conservation properties of the ENS and ENE schemes.
362It conserves both total energy and potential enstrophy in the limit of horizontally nondivergent flow
363(\ie $\chi$=$0$) (see \autoref{subsec:C_vorEEN}).
364Applied to a realistic ocean configuration, it has been shown that it leads to a significant reduction of
365the noise in the vertical velocity field \citep{le-sommer.penduff.ea_OM09}.
366Furthermore, used in combination with a partial steps representation of bottom topography,
367it improves the interaction between current and topography,
368leading to a larger topostrophy of the flow \citep{barnier.madec.ea_OD06, penduff.le-sommer.ea_OS07}.
369
370%--------------------------------------------------------------------------------------------------------------
371%           Kinetic Energy Gradient term
372%--------------------------------------------------------------------------------------------------------------
373\subsection[Kinetic energy gradient term (\textit{dynkeg.F90})]
374{Kinetic energy gradient term (\protect\mdl{dynkeg})}
375\label{subsec:DYN_keg}
376
377As demonstrated in \autoref{apdx:C},
378there is a single discrete formulation of the kinetic energy gradient term that,
379together with the formulation chosen for the vertical advection (see below),
380conserves the total kinetic energy:
381382 % \label{eq:dynkeg} 383 \left\{ 384 \begin{aligned} 385 -\frac{1}{2 \; e_{1u} } & \ \delta_{i+1/2} \left[ {\overline {u^2}^{\,i} + \overline{v^2}^{\,j}} \right] \\ 386 -\frac{1}{2 \; e_{2v} } & \ \delta_{j+1/2} \left[ {\overline {u^2}^{\,i} + \overline{v^2}^{\,j}} \right] 387 \end{aligned} 388 \right. 389
390
391%--------------------------------------------------------------------------------------------------------------
392%           Vertical advection term
393%--------------------------------------------------------------------------------------------------------------
397
398The discrete formulation of the vertical advection, t
399ogether with the formulation chosen for the gradient of kinetic energy (KE) term,
400conserves the total kinetic energy.
401Indeed, the change of KE due to the vertical advection is exactly balanced by
402the change of KE due to the gradient of KE (see \autoref{apdx:C}).
403404 % \label{eq:dynzad} 405 \left\{ 406 \begin{aligned} 407 -\frac{1} {e_{1u}\,e_{2u}\,e_{3u}} &\ \overline{\ \overline{ e_{1t}\,e_{2t}\;w } ^{\,i+1/2\;\delta_{k+1/2} \left[ u \right]\ }^{\,k} \\ 408 -\frac{1} {e_{1v}\,e_{2v}\,e_{3v}} &\ \overline{\ \overline{ e_{1t}\,e_{2t}\;w } ^{\,j+1/2\;\delta_{k+1/2} \left[ u \right]\ }^{\,k} 409 \end{aligned} 410 \right. 411
412When \np{ln\_dynzad\_zts}\forcode{ = .true.},
413a split-explicit time stepping with 5 sub-timesteps is used on the vertical advection term.
414This option can be useful when the value of the timestep is limited by vertical advection \citep{lemarie.debreu.ea_OM15}.
415Note that in this case,
416a similar split-explicit time stepping should be used on vertical advection of tracer to ensure a better stability,
417an option which is only available with a TVD scheme (see \np{ln\_traadv\_tvd\_zts} in \autoref{subsec:TRA_adv_tvd}).
418
419
420% ================================================================
421% Coriolis and Advection : flux form
422% ================================================================
423\section{Coriolis and advection: flux form}
426
428%-------------------------------------------------------------------------------------------------------------
429
430Options are defined through the \ngn{namdyn\_adv} namelist variables.
431In the flux form (as in the vector invariant form),
432the Coriolis and momentum advection terms are evaluated using a leapfrog scheme,
433\ie the velocity appearing in their expressions is centred in time (\textit{now} velocity).
434At the lateral boundaries either free slip,
435no slip or partial slip boundary conditions are applied following \autoref{chap:LBC}.
436
437
438%--------------------------------------------------------------------------------------------------------------
439%           Coriolis plus curvature metric terms
440%--------------------------------------------------------------------------------------------------------------
441\subsection[Coriolis plus curvature metric terms (\textit{dynvor.F90})]
442{Coriolis plus curvature metric terms (\protect\mdl{dynvor})}
443\label{subsec:DYN_cor_flux}
444
445In flux form, the vorticity term reduces to a Coriolis term in which the Coriolis parameter has been modified to account for the "metric" term.
446This altered Coriolis parameter is thus discretised at $f$-points.
447It is given by:
448\begin{multline*}
449  % \label{eq:dyncor_metric}
450  f+\frac{1}{e_1 e_2 }\left( {v\frac{\partial e_2 }{\partial i}  -  u\frac{\partial e_1 }{\partial j}} \right\\
451  \equiv   f + \frac{1}{e_{1f} e_{2f} } \left( { \ \overline v ^{i+1/2}\delta_{i+1/2} \left[ {e_{2u} } \right]
452      -  \overline u ^{j+1/2}\delta_{j+1/2} \left[ {e_{1u} } \right]  }  \ \right)
453\end{multline*}
454
455Any of the (\autoref{eq:dynvor_ens}), (\autoref{eq:dynvor_ene}) and (\autoref{eq:dynvor_een}) schemes can be used to
456compute the product of the Coriolis parameter and the vorticity.
457However, the energy-conserving scheme (\autoref{eq:dynvor_een}) has exclusively been used to date.
458This term is evaluated using a leapfrog scheme, \ie the velocity is centred in time (\textit{now} velocity).
459
460%--------------------------------------------------------------------------------------------------------------
461%           Flux form Advection term
462%--------------------------------------------------------------------------------------------------------------
466
467The discrete expression of the advection term is given by:
468469 % \label{eq:dynadv} 470 \left\{ 471 \begin{aligned} 472 \frac{1}{e_{1u}\,e_{2u}\,e_{3u}} 473 \left( \delta_{i+1/2} \left[ \overline{e_{2u}\,e_{3u}\;u }^{i } \ u_t \right] 474 + \delta_{j } \left[ \overline{e_{1u}\,e_{3u}\;v }^{i+1/2\ u_f \right] \right\ \; \\ 475 \left. + \delta_{k } \left[ \overline{e_{1w}\,e_{2w}\;w}^{i+1/2\ u_{uw} \right] \right) \\ 476 \\ 477 \frac{1}{e_{1v}\,e_{2v}\,e_{3v}} 478 \left( \delta_{i } \left[ \overline{e_{2u}\,e_{3u }\;u }^{j+1/2} \ v_f \right] 479 + \delta_{j+1/2} \left[ \overline{e_{1u}\,e_{3u }\;v }^{i } \ v_t \right] \right\ \, \, \\ 480 \left+ \delta_{k } \left[ \overline{e_{1w}\,e_{2w}\;w}^{j+1/2} \ v_{vw} \right] \right) \\ 481 \end{aligned} 482 \right. 483
484
485Two advection schemes are available:
486a $2^{nd}$ order centered finite difference scheme, CEN2,
487or a $3^{rd}$ order upstream biased scheme, UBS.
488The latter is described in \citet{shchepetkin.mcwilliams_OM05}.
489The schemes are selected using the namelist logicals \np{ln\_dynadv\_cen2} and \np{ln\_dynadv\_ubs}.
490In flux form, the schemes differ by the choice of a space and time interpolation to define the value of
491$u$ and $v$ at the centre of each face of $u$- and $v$-cells, \ie at the $T$-, $f$-,
492and $uw$-points for $u$ and at the $f$-, $T$- and $vw$-points for $v$.
493
494%-------------------------------------------------------------
495%                 2nd order centred scheme
496%-------------------------------------------------------------
497\subsubsection[CEN2: $2^{nd}$ order centred scheme (\forcode{ln_dynadv_cen2 = .true.})]
498{CEN2: $2^{nd}$ order centred scheme (\protect\np{ln\_dynadv\_cen2}\forcode{ = .true.})}
500
501In the centered $2^{nd}$ order formulation, the velocity is evaluated as the mean of the two neighbouring points:
502\begin{equation}
504  \left\{
505    \begin{aligned}
506      u_T^{cen2} &=\overline u^{i }       \quad &  u_F^{cen2} &=\overline u^{j+1/2}  \quad &  u_{uw}^{cen2} &=\overline u^{k+1/2}   \\
507      v_F^{cen2} &=\overline v ^{i+1/2} \quad & v_F^{cen2} &=\overline v^j    \quad &  v_{vw}^{cen2} &=\overline v ^{k+1/2}  \\
508    \end{aligned}
509  \right.
510\end{equation}
511
512The scheme is non diffusive (\ie conserves the kinetic energy) but dispersive (\ie it may create false extrema).
513It is therefore notoriously noisy and must be used in conjunction with an explicit diffusion operator to
514produce a sensible solution.
515The associated time-stepping is performed using a leapfrog scheme in conjunction with an Asselin time-filter,
516so $u$ and $v$ are the \emph{now} velocities.
517
518%-------------------------------------------------------------
519%                 UBS scheme
520%-------------------------------------------------------------
521\subsubsection[UBS: Upstream Biased Scheme (\forcode{ln_dynadv_ubs = .true.})]
522{UBS: Upstream Biased Scheme (\protect\np{ln\_dynadv\_ubs}\forcode{ = .true.})}
524
525The UBS advection scheme is an upstream biased third order scheme based on
526an upstream-biased parabolic interpolation.
527For example, the evaluation of $u_T^{ubs}$ is done as follows:
528\begin{equation}
530  u_T^{ubs} =\overline u ^i-\;\frac{1}{6}
531  \begin{cases}
532    u"_{i-1/2}&   \text{if $\ \overline{e_{2u}\,e_{3u} \ u}^i \geqslant 0$ }    \\
533    u"_{i+1/2}&   \text{if $\ \overline{e_{2u}\,e_{3u} \ u}^i < 0$ }
534  \end{cases}
535\end{equation}
536where $u"_{i+1/2} =\delta_{i+1/2} \left[ {\delta_i \left[ u \right]} \right]$.
537This results in a dissipatively dominant (\ie hyper-diffusive) truncation error
538\citep{shchepetkin.mcwilliams_OM05}.
539The overall performance of the advection scheme is similar to that reported in \citet{farrow.stevens_JPO95}.
540It is a relatively good compromise between accuracy and smoothness.
541It is not a \emph{positive} scheme, meaning that false extrema are permitted.
542But the amplitudes of the false extrema are significantly reduced over those in the centred second order method.
543As the scheme already includes a diffusion component, it can be used without explicit lateral diffusion on momentum
544(\ie \np{ln\_dynldf\_lap}\forcode{ = }\np{ln\_dynldf\_bilap}\forcode{ = .false.}),
545and it is recommended to do so.
546
547The UBS scheme is not used in all directions.
548In the vertical, the centred $2^{nd}$ order evaluation of the advection is preferred, \ie $u_{uw}^{ubs}$ and
549$u_{vw}^{ubs}$ in \autoref{eq:dynadv_cen2} are used.
550UBS is diffusive and is associated with vertical mixing of momentum. \gmcomment{ gm  pursue the
551sentence:Since vertical mixing of momentum is a source term of the TKE equation...  }
552
553For stability reasons, the first term in (\autoref{eq:dynadv_ubs}),
554which corresponds to a second order centred scheme, is evaluated using the \textit{now} velocity (centred in time),
555while the second term, which is the diffusion part of the scheme,
556is evaluated using the \textit{before} velocity (forward in time).
557This is discussed by \citet{webb.de-cuevas.ea_JAOT98} in the context of the Quick advection scheme.
558
559Note that the UBS and QUICK (Quadratic Upstream Interpolation for Convective Kinematics) schemes only differ by
560one coefficient.
561Replacing $1/6$ by $1/8$ in (\autoref{eq:dynadv_ubs}) leads to the QUICK advection scheme \citep{webb.de-cuevas.ea_JAOT98}.
562This option is not available through a namelist parameter, since the $1/6$ coefficient is hard coded.
563Nevertheless it is quite easy to make the substitution in the \mdl{dynadv\_ubs} module and obtain a QUICK scheme.
564
565Note also that in the current version of \mdl{dynadv\_ubs},
566there is also the possibility of using a $4^{th}$ order evaluation of the advective velocity as in ROMS.
567This is an error and should be suppressed soon.
568%%%
569\gmcomment{action :  this have to be done}
570%%%
571
572% ================================================================
573%           Hydrostatic pressure gradient term
574% ================================================================
575\section[Hydrostatic pressure gradient (\textit{dynhpg.F90})]
576{Hydrostatic pressure gradient (\protect\mdl{dynhpg})}
577\label{sec:DYN_hpg}
578%------------------------------------------nam_dynhpg---------------------------------------------------
579
580\nlst{namdyn_hpg}
581%-------------------------------------------------------------------------------------------------------------
582
583Options are defined through the \ngn{namdyn\_hpg} namelist variables.
584The key distinction between the different algorithms used for
585the hydrostatic pressure gradient is the vertical coordinate used,
586since HPG is a \emph{horizontal} pressure gradient, \ie computed along geopotential surfaces.
587As a result, any tilt of the surface of the computational levels will require a specific treatment to
588compute the hydrostatic pressure gradient.
589
590The hydrostatic pressure gradient term is evaluated either using a leapfrog scheme,
591\ie the density appearing in its expression is centred in time (\emph{now} $\rho$),
592or a semi-implcit scheme.
593At the lateral boundaries either free slip, no slip or partial slip boundary conditions are applied.
594
595%--------------------------------------------------------------------------------------------------------------
596%           z-coordinate with full step
597%--------------------------------------------------------------------------------------------------------------
598\subsection[Full step $Z$-coordinate (\forcode{ln_dynhpg_zco = .true.})]
599{Full step $Z$-coordinate (\protect\np{ln\_dynhpg\_zco}\forcode{ = .true.})}
600\label{subsec:DYN_hpg_zco}
601
602The hydrostatic pressure can be obtained by integrating the hydrostatic equation vertically from the surface.
603However, the pressure is large at great depth while its horizontal gradient is several orders of magnitude smaller.
604This may lead to large truncation errors in the pressure gradient terms.
605Thus, the two horizontal components of the hydrostatic pressure gradient are computed directly as follows:
606
607for $k=km$ (surface layer, $jk=1$ in the code)
608\begin{equation}
609  \label{eq:dynhpg_zco_surf}
610  \left\{
611    \begin{aligned}
612      \left. \delta_{i+1/2} \left[  p^h          \right] \right|_{k=km}
613      &= \frac{1}{2} g \   \left. \delta_{i+1/2} \left[  e_{3w} \ \rho \right] \right|_{k=km}   \\
614      \left. \delta_{j+1/2} \left[  p^h          \right] \right|_{k=km}
615      &= \frac{1}{2} g \   \left. \delta_{j+1/2} \left[  e_{3w} \ \rho \right] \right|_{k=km}   \\
616    \end{aligned}
617  \right.
618\end{equation}
619
620for $1<k<km$ (interior layer)
621\begin{equation}
622  \label{eq:dynhpg_zco}
623  \left\{
624    \begin{aligned}
625      \left. \delta_{i+1/2} \left[  p^h          \right] \right|_{k}
626      &=             \left. \delta_{i+1/2} \left[  p^h          \right] \right|_{k-1}
627      +    \frac{1}{2}\;g\;   \left. \delta_{i+1/2} \left[  e_{3w} \ \overline {\rho}^{k+1/2} \right] \right|_{k}   \\
628      \left. \delta_{j+1/2} \left[  p^h          \right] \right|_{k}
629      &=                \left. \delta_{j+1/2} \left[  p^h          \right] \right|_{k-1}
630      +    \frac{1}{2}\;g\;   \left. \delta_{j+1/2} \left[  e_{3w} \ \overline {\rho}^{k+1/2} \right] \right|_{k}   \\
631    \end{aligned}
632  \right.
633\end{equation}
634
635Note that the $1/2$ factor in (\autoref{eq:dynhpg_zco_surf}) is adequate because of the definition of $e_{3w}$ as
636the vertical derivative of the scale factor at the surface level ($z=0$).
637Note also that in case of variable volume level (\key{vvl} defined),
638the surface pressure gradient is included in \autoref{eq:dynhpg_zco_surf} and
639\autoref{eq:dynhpg_zco} through the space and time variations of the vertical scale factor $e_{3w}$.
640
641%--------------------------------------------------------------------------------------------------------------
642%           z-coordinate with partial step
643%--------------------------------------------------------------------------------------------------------------
644\subsection[Partial step $Z$-coordinate (\forcode{ln_dynhpg_zps = .true.})]
645{Partial step $Z$-coordinate (\protect\np{ln\_dynhpg\_zps}\forcode{ = .true.})}
646\label{subsec:DYN_hpg_zps}
647
648With partial bottom cells, tracers in horizontally adjacent cells generally live at different depths.
649Before taking horizontal gradients between these tracer points,
650a linear interpolation is used to approximate the deeper tracer as if
651it actually lived at the depth of the shallower tracer point.
652
653Apart from this modification,
654the horizontal hydrostatic pressure gradient evaluated in the $z$-coordinate with partial step is exactly as in
655the pure $z$-coordinate case.
656As explained in detail in section \autoref{sec:TRA_zpshde},
657the nonlinearity of pressure effects in the equation of state is such that
658it is better to interpolate temperature and salinity vertically before computing the density.
659Horizontal gradients of temperature and salinity are needed for the TRA modules,
660which is the reason why the horizontal gradients of density at the deepest model level are computed in
661module \mdl{zpsdhe} located in the TRA directory and described in \autoref{sec:TRA_zpshde}.
662
663%--------------------------------------------------------------------------------------------------------------
664%           s- and s-z-coordinates
665%--------------------------------------------------------------------------------------------------------------
666\subsection{$S$- and $Z$-$S$-coordinates}
667\label{subsec:DYN_hpg_sco}
668
669Pressure gradient formulations in an $s$-coordinate have been the subject of a vast number of papers
670(\eg, \citet{song_MWR98, shchepetkin.mcwilliams_OM05}).
671A number of different pressure gradient options are coded but the ROMS-like,
672density Jacobian with cubic polynomial method is currently disabled whilst known bugs are under investigation.
673
674$\bullet$ Traditional coding (see for example \citet{madec.delecluse.ea_JPO96}: (\np{ln\_dynhpg\_sco}\forcode{ = .true.})
675\begin{equation}
676  \label{eq:dynhpg_sco}
677  \left\{
678    \begin{aligned}
679      - \frac{1}                 {\rho_o \, e_{1u}} \;   \delta_{i+1/2} \left[  p^h  \right]
680      + \frac{g\; \overline {\rho}^{i+1/2}}  {\rho_o \, e_{1u}} \;   \delta_{i+1/2} \left[  z_t   \right]    \\
681      - \frac{1}                 {\rho_o \, e_{2v}} \;   \delta_{j+1/2} \left[  p^h  \right]
682      + \frac{g\; \overline {\rho}^{j+1/2}}  {\rho_o \, e_{2v}} \;   \delta_{j+1/2} \left[  z_t   \right]    \\
683    \end{aligned}
684  \right.
685\end{equation}
686
687Where the first term is the pressure gradient along coordinates,
688computed as in \autoref{eq:dynhpg_zco_surf} - \autoref{eq:dynhpg_zco},
689and $z_T$ is the depth of the $T$-point evaluated from the sum of the vertical scale factors at the $w$-point
690($e_{3w}$).
691
692$\bullet$ Traditional coding with adaptation for ice shelf cavities (\np{ln\_dynhpg\_isf}\forcode{ = .true.}).
693This scheme need the activation of ice shelf cavities (\np{ln\_isfcav}\forcode{ = .true.}).
694
695$\bullet$ Pressure Jacobian scheme (prj) (a research paper in preparation) (\np{ln\_dynhpg\_prj}\forcode{ = .true.})
696
697$\bullet$ Density Jacobian with cubic polynomial scheme (DJC) \citep{shchepetkin.mcwilliams_OM05}
698(\np{ln\_dynhpg\_djc}\forcode{ = .true.}) (currently disabled; under development)
699
700Note that expression \autoref{eq:dynhpg_sco} is commonly used when the variable volume formulation is activated
701(\key{vvl}) because in that case, even with a flat bottom,
702the coordinate surfaces are not horizontal but follow the free surface \citep{levier.treguier.ea_rpt07}.
703The pressure jacobian scheme (\np{ln\_dynhpg\_prj}\forcode{ = .true.}) is available as
704an improved option to \np{ln\_dynhpg\_sco}\forcode{ = .true.} when \key{vvl} is active.
705The pressure Jacobian scheme uses a constrained cubic spline to
706reconstruct the density profile across the water column.
707This method maintains the monotonicity between the density nodes.
708The pressure can be calculated by analytical integration of the density profile and
709a pressure Jacobian method is used to solve the horizontal pressure gradient.
710This method can provide a more accurate calculation of the horizontal pressure gradient than the standard scheme.
711
712\subsection{Ice shelf cavity}
713\label{subsec:DYN_hpg_isf}
714Beneath an ice shelf, the total pressure gradient is the sum of the pressure gradient due to the ice shelf load and
715the pressure gradient due to the ocean load (\np{ln\_dynhpg\_isf}\forcode{ = .true.}).\\
716
717The main hypothesis to compute the ice shelf load is that the ice shelf is in an isostatic equilibrium.
718The top pressure is computed integrating from surface to the base of the ice shelf a reference density profile
719(prescribed as density of a water at 34.4 PSU and -1.9\deg{C}) and
720corresponds to the water replaced by the ice shelf.
721This top pressure is constant over time.
722A detailed description of this method is described in \citet{losch_JGR08}.\\
723
724The pressure gradient due to ocean load is computed using the expression \autoref{eq:dynhpg_sco} described in
725\autoref{subsec:DYN_hpg_sco}.
726
727%--------------------------------------------------------------------------------------------------------------
728%           Time-scheme
729%--------------------------------------------------------------------------------------------------------------
730\subsection[Time-scheme (\forcode{ln_dynhpg_imp = .{true,false}.})]
731{Time-scheme (\protect\np{ln\_dynhpg\_imp}\forcode{ = .\{true,false\}}.)}
732\label{subsec:DYN_hpg_imp}
733
734The default time differencing scheme used for the horizontal pressure gradient is a leapfrog scheme and
735therefore the density used in all discrete expressions given above is the  \textit{now} density,
736computed from the \textit{now} temperature and salinity.
737In some specific cases
738(usually high resolution simulations over an ocean domain which includes weakly stratified regions)
739the physical phenomenon that controls the time-step is internal gravity waves (IGWs).
740A semi-implicit scheme for doubling the stability limit associated with IGWs can be used
741\citep{brown.campana_MWR78, maltrud.smith.ea_JGR98}.
742It involves the evaluation of the hydrostatic pressure gradient as
743an average over the three time levels $t-\rdt$, $t$, and $t+\rdt$
744(\ie \textit{before}, \textit{now} and  \textit{after} time-steps),
745rather than at the central time level $t$ only, as in the standard leapfrog scheme.
746
747$\bullet$ leapfrog scheme (\np{ln\_dynhpg\_imp}\forcode{ = .true.}):
748
749\begin{equation}
750  \label{eq:dynhpg_lf}
751  \frac{u^{t+\rdt}-u^{t-\rdt}}{2\rdt} = \;\cdots \;
752  -\frac{1}{\rho_o \,e_{1u} }\delta_{i+1/2} \left[ {p_h^t } \right]
753\end{equation}
754
755$\bullet$ semi-implicit scheme (\np{ln\_dynhpg\_imp}\forcode{ = .true.}):
756\begin{equation}
757  \label{eq:dynhpg_imp}
758  \frac{u^{t+\rdt}-u^{t-\rdt}}{2\rdt} = \;\cdots \;
759  -\frac{1}{4\,\rho_o \,e_{1u} } \delta_{i+1/2} \left[ p_h^{t+\rdt} +2\,p_h^t +p_h^{t-\rdt}  \right]
760\end{equation}
761
762The semi-implicit time scheme \autoref{eq:dynhpg_imp} is made possible without
763significant additional computation since the density can be updated to time level $t+\rdt$ before
764computing the horizontal hydrostatic pressure gradient.
765It can be easily shown that the stability limit associated with the hydrostatic pressure gradient doubles using
766\autoref{eq:dynhpg_imp} compared to that using the standard leapfrog scheme \autoref{eq:dynhpg_lf}.
767Note that \autoref{eq:dynhpg_imp} is equivalent to applying a time filter to the pressure gradient to
768eliminate high frequency IGWs.
769Obviously, when using \autoref{eq:dynhpg_imp},
770the doubling of the time-step is achievable only if no other factors control the time-step,
771such as the stability limits associated with advection or diffusion.
772
773In practice, the semi-implicit scheme is used when \np{ln\_dynhpg\_imp}\forcode{ = .true.}.
774In this case, we choose to apply the time filter to temperature and salinity used in the equation of state,
775instead of applying it to the hydrostatic pressure or to the density,
776so that no additional storage array has to be defined.
777The density used to compute the hydrostatic pressure gradient (whatever the formulation) is evaluated as follows:
778$779 % \label{eq:rho_flt} 780 \rho^t = \rho( \widetilde{T},\widetilde {S},z_t) 781 \quad \text{with} \quad 782 \widetilde{X} = 1 / 4 \left( X^{t+\rdt} +2 \,X^t + X^{t-\rdt\right) 783$
784
785Note that in the semi-implicit case, it is necessary to save the filtered density,
786an extra three-dimensional field, in the restart file to restart the model with exact reproducibility.
787This option is controlled by  \np{nn\_dynhpg\_rst}, a namelist parameter.
788
789% ================================================================
790% Surface Pressure Gradient
791% ================================================================
792\section[Surface pressure gradient (\textit{dynspg.F90})]
793{Surface pressure gradient (\protect\mdl{dynspg})}
794\label{sec:DYN_spg}
795%-----------------------------------------nam_dynspg----------------------------------------------------
796
797\nlst{namdyn_spg}
798%------------------------------------------------------------------------------------------------------------
799
800Options are defined through the \ngn{namdyn\_spg} namelist variables.
801The surface pressure gradient term is related to the representation of the free surface (\autoref{sec:PE_hor_pg}).
802The main distinction is between the fixed volume case (linear free surface) and
803the variable volume case (nonlinear free surface, \key{vvl} is defined).
804In the linear free surface case (\autoref{subsec:PE_free_surface})
805the vertical scale factors $e_{3}$ are fixed in time,
806while they are time-dependent in the nonlinear case (\autoref{subsec:PE_free_surface}).
807With both linear and nonlinear free surface, external gravity waves are allowed in the equations,
808which imposes a very small time step when an explicit time stepping is used.
809Two methods are proposed to allow a longer time step for the three-dimensional equations:
810the filtered free surface, which is a modification of the continuous equations (see \autoref{eq:PE_flt?}),
811and the split-explicit free surface described below.
812The extra term introduced in the filtered method is calculated implicitly,
813so that the update of the next velocities is done in module \mdl{dynspg\_flt} and not in \mdl{dynnxt}.
814
815
816The form of the surface pressure gradient term depends on how the user wants to
817handle the fast external gravity waves that are a solution of the analytical equation (\autoref{sec:PE_hor_pg}).
818Three formulations are available, all controlled by a CPP key (ln\_dynspg\_xxx):
819an explicit formulation which requires a small time step;
820a filtered free surface formulation which allows a larger time step by
821adding a filtering term into the momentum equation;
822and a split-explicit free surface formulation, described below, which also allows a larger time step.
823
824The extra term introduced in the filtered method is calculated implicitly, so that a solver is used to compute it.
825As a consequence the update of the $next$ velocities is done in module \mdl{dynspg\_flt} and not in \mdl{dynnxt}.
826
827
828%--------------------------------------------------------------------------------------------------------------
829% Explicit free surface formulation
830%--------------------------------------------------------------------------------------------------------------
831\subsection[Explicit free surface (texttt{\textbf{key\_dynspg\_exp}})]
832{Explicit free surface (\protect\key{dynspg\_exp})}
833\label{subsec:DYN_spg_exp}
834
835In the explicit free surface formulation (\key{dynspg\_exp} defined),
836the model time step is chosen to be small enough to resolve the external gravity waves
837(typically a few tens of seconds).
838The surface pressure gradient, evaluated using a leap-frog scheme (\ie centered in time),
839is thus simply given by :
840\begin{equation}
841  \label{eq:dynspg_exp}
842  \left\{
843    \begin{aligned}
844      - \frac{1}{e_{1u}\,\rho_o} \; \delta_{i+1/2} \left[  \,\rho \,\eta\,  \right]    \\
845      - \frac{1}{e_{2v}\,\rho_o} \; \delta_{j+1/2} \left[  \,\rho \,\eta\,  \right]
846    \end{aligned}
847  \right.
848\end{equation}
849
850Note that in the non-linear free surface case (\ie \key{vvl} defined),
851the surface pressure gradient is already included in the momentum tendency through
852the level thickness variation allowed in the computation of the hydrostatic pressure gradient.
853Thus, nothing is done in the \mdl{dynspg\_exp} module.
854
855%--------------------------------------------------------------------------------------------------------------
856% Split-explict free surface formulation
857%--------------------------------------------------------------------------------------------------------------
858\subsection[Split-explicit free surface (texttt{\textbf{key\_dynspg\_ts}})]
859{Split-explicit free surface (\protect\key{dynspg\_ts})}
860\label{subsec:DYN_spg_ts}
861%------------------------------------------namsplit-----------------------------------------------------------
862%
863%\nlst{namsplit}
864%-------------------------------------------------------------------------------------------------------------
865
866The split-explicit free surface formulation used in \NEMO (\key{dynspg\_ts} defined),
867also called the time-splitting formulation, follows the one proposed by \citet{shchepetkin.mcwilliams_OM05}.
868The general idea is to solve the free surface equation and the associated barotropic velocity equations with
869a smaller time step than $\rdt$, the time step used for the three dimensional prognostic variables
870(\autoref{fig:DYN_dynspg_ts}).
871The size of the small time step, $\rdt_e$ (the external mode or barotropic time step) is provided through
872the \np{nn\_baro} namelist parameter as: $\rdt_e = \rdt / nn\_baro$.
873This parameter can be optionally defined automatically (\np{ln\_bt\_nn\_auto}\forcode{ = .true.}) considering that
874the stability of the barotropic system is essentially controled by external waves propagation.
875Maximum Courant number is in that case time independent, and easily computed online from the input bathymetry.
876Therefore, $\rdt_e$ is adjusted so that the Maximum allowed Courant number is smaller than \np{rn\_bt\_cmax}.
877
878%%%
879The barotropic mode solves the following equations:
880% \begin{subequations}
881%  \label{eq:BT}
882\begin{equation}
883  \label{eq:BT_dyn}
884  \frac{\partial {\mathrm \overline{{\mathbf U}}_h} }{\partial t}=
885  -f\;{\mathrm {\mathbf k}}\times {\mathrm \overline{{\mathbf U}}_h}
886  -g\nabla _h \eta -\frac{c_b^{\textbf U}}{H+\eta} \mathrm {\overline{{\mathbf U}}_h} + \mathrm {\overline{\mathbf G}}
887\end{equation}
888$889 % \label{eq:BT_ssh} 890 \frac{\partial \eta }{\partial t}=-\nabla \cdot \left[ {\left( {H+\eta } \right) \; {\mathrm{\mathbf \overline{U}}}_h \,} \right]+P-E 891$
892% \end{subequations}
893where $\mathrm {\overline{\mathbf G}}$ is a forcing term held constant, containing coupling term between modes,
894surface atmospheric forcing as well as slowly varying barotropic terms not explicitly computed to gain efficiency.
895The third term on the right hand side of \autoref{eq:BT_dyn} represents the bottom stress
896(see section \autoref{sec:ZDF_bfr}), explicitly accounted for at each barotropic iteration.
897Temporal discretization of the system above follows a three-time step Generalized Forward Backward algorithm
898detailed in \citet{shchepetkin.mcwilliams_OM05}.
899AB3-AM4 coefficients used in \NEMO follow the second-order accurate,
900"multi-purpose" stability compromise as defined in \citet{shchepetkin.mcwilliams_ibk09}
901(see their figure 12, lower left).
902
903%>   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >
904\begin{figure}[!t]
905  \begin{center}
906    \includegraphics[width=\textwidth]{Fig_DYN_dynspg_ts}
907    \caption{
908      \protect\label{fig:DYN_dynspg_ts}
909      Schematic of the split-explicit time stepping scheme for the external and internal modes.
910      Time increases to the right. In this particular exemple,
911      a boxcar averaging window over $nn\_baro$ barotropic time steps is used ($nn\_bt\_flt=1$) and $nn\_baro=5$.
912      Internal mode time steps (which are also the model time steps) are denoted by $t-\rdt$, $t$ and $t+\rdt$.
913      Variables with $k$ superscript refer to instantaneous barotropic variables,
914      $< >$ and $<< >>$ operator refer to time filtered variables using respectively primary (red vertical bars) and
915      secondary weights (blue vertical bars).
916      The former are used to obtain time filtered quantities at $t+\rdt$ while
917      the latter are used to obtain time averaged transports to advect tracers.
918      a) Forward time integration: \protect\np{ln\_bt\_fw}\forcode{ = .true.},
919      \protect\np{ln\_bt\_av}\forcode{ = .true.}.
920      b) Centred time integration: \protect\np{ln\_bt\_fw}\forcode{ = .false.},
921      \protect\np{ln\_bt\_av}\forcode{ = .true.}.
922      c) Forward time integration with no time filtering (POM-like scheme):
923      \protect\np{ln\_bt\_fw}\forcode{ = .true.}, \protect\np{ln\_bt\_av}\forcode{ = .false.}.
924    }
925  \end{center}
926\end{figure}
927%>   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >
928
929In the default case (\np{ln\_bt\_fw}\forcode{ = .true.}),
930the external mode is integrated between \textit{now} and \textit{after} baroclinic time-steps
931(\autoref{fig:DYN_dynspg_ts}a).
932To avoid aliasing of fast barotropic motions into three dimensional equations,
933time filtering is eventually applied on barotropic quantities (\np{ln\_bt\_av}\forcode{ = .true.}).
934In that case, the integration is extended slightly beyond \textit{after} time step to
935provide time filtered quantities.
936These are used for the subsequent initialization of the barotropic mode in the following baroclinic step.
937Since external mode equations written at baroclinic time steps finally follow a forward time stepping scheme,
938asselin filtering is not applied to barotropic quantities.\\
939Alternatively, one can choose to integrate barotropic equations starting from \textit{before} time step
940(\np{ln\_bt\_fw}\forcode{ = .false.}).
941Although more computationaly expensive ( \np{nn\_baro} additional iterations are indeed necessary),
942the baroclinic to barotropic forcing term given at \textit{now} time step become centred in
943the middle of the integration window.
944It can easily be shown that this property removes part of splitting errors between modes,
945which increases the overall numerical robustness.
946%references to Patrick Marsaleix' work here. Also work done by SHOM group.
947
948%%%
949
950As far as tracer conservation is concerned,
951barotropic velocities used to advect tracers must also be updated at \textit{now} time step.
952This implies to change the traditional order of computations in \NEMO:
953most of momentum trends (including the barotropic mode calculation) updated first, tracers' after.
954This \textit{de facto} makes semi-implicit hydrostatic pressure gradient
955(see section \autoref{subsec:DYN_hpg_imp})
956and time splitting not compatible.
957Advective barotropic velocities are obtained by using a secondary set of filtering weights,
958uniquely defined from the filter coefficients used for the time averaging (\citet{shchepetkin.mcwilliams_OM05}).
959Consistency between the time averaged continuity equation and the time stepping of tracers is here the key to
960obtain exact conservation.
961
962%%%
963
964One can eventually choose to feedback instantaneous values by not using any time filter
965(\np{ln\_bt\_av}\forcode{ = .false.}).
966In that case, external mode equations are continuous in time,
967\ie they are not re-initialized when starting a new sub-stepping sequence.
968This is the method used so far in the POM model, the stability being maintained by
969refreshing at (almost) each barotropic time step advection and horizontal diffusion terms.
970Since the latter terms have not been added in \NEMO for computational efficiency,
971removing time filtering is not recommended except for debugging purposes.
972This may be used for instance to appreciate the damping effect of the standard formulation on
973external gravity waves in idealized or weakly non-linear cases.
974Although the damping is lower than for the filtered free surface,
975it is still significant as shown by \citet{levier.treguier.ea_rpt07} in the case of an analytical barotropic Kelvin wave.
976
977%>>>>>===============
978\gmcomment{               %%% copy from griffies Book
979
980\textbf{title: Time stepping the barotropic system }
981
982Assume knowledge of the full velocity and tracer fields at baroclinic time $\tau$.
983Hence, we can update the surface height and vertically integrated velocity with a leap-frog scheme using
984the small barotropic time step $\rdt$.
985We have
986
987$988 % \label{eq:DYN_spg_ts_eta} 989 \eta^{(b)}(\tau,t_{n+1}) - \eta^{(b)}(\tau,t_{n+1}) (\tau,t_{n-1}) 990 = 2 \rdt \left[-\nabla \cdot \textbf{U}^{(b)}(\tau,t_n) + \text{EMP}_w(\tau) \right] 991$
992\begin{multline*}
993  % \label{eq:DYN_spg_ts_u}
994  \textbf{U}^{(b)}(\tau,t_{n+1}) - \textbf{U}^{(b)}(\tau,t_{n-1}\\
995  = 2\rdt \left[ - f \textbf{k} \times \textbf{U}^{(b)}(\tau,t_{n})
996    - H(\tau) \nabla p_s^{(b)}(\tau,t_{n}) +\textbf{M}(\tau) \right]
997\end{multline*}
998\
999
1000In these equations, araised (b) denotes values of surface height and vertically integrated velocity updated with
1001the barotropic time steps.
1002The $\tau$ time label on $\eta^{(b)}$ and $U^{(b)}$ denotes the baroclinic time at which
1003the vertically integrated forcing $\textbf{M}(\tau)$
1004(note that this forcing includes the surface freshwater forcing),
1005the tracer fields, the freshwater flux $\text{EMP}_w(\tau)$,
1006and total depth of the ocean $H(\tau)$ are held for the duration of the barotropic time stepping over
1007a single cycle.
1008This is also the time that sets the barotropic time steps via
1009$1010 % \label{eq:DYN_spg_ts_t} 1011 t_n=\tau+n\rdt 1012$
1013with $n$ an integer.
1014The density scaled surface pressure is evaluated via
1015$1016 % \label{eq:DYN_spg_ts_ps} 1017 p_s^{(b)}(\tau,t_{n}) = 1018 \begin{cases} 1019 g \;\eta_s^{(b)}(\tau,t_{n}) \;\rho(\tau)_{k=1}) / \rho_o & \text{non-linear case} \\ 1020 g \;\eta_s^{(b)}(\tau,t_{n}) & \text{linear case} 1021 \end{cases} 1022$
1023To get started, we assume the following initial conditions
1024$1025 % \label{eq:DYN_spg_ts_eta} 1026 \begin{split} 1027 \eta^{(b)}(\tau,t_{n=0}) &= \overline{\eta^{(b)}(\tau)} \\ 1028 \eta^{(b)}(\tau,t_{n=1}) &= \eta^{(b)}(\tau,t_{n=0}) + \rdt \ \text{RHS}_{n=0} 1029 \end{split} 1030$
1031with
1032$1033 % \label{eq:DYN_spg_ts_etaF} 1034 \overline{\eta^{(b)}(\tau)} = \frac{1}{N+1} \sum\limits_{n=0}^N \eta^{(b)}(\tau-\rdt,t_{n}) 1035$
1036the time averaged surface height taken from the previous barotropic cycle.
1037Likewise,
1038$1039 % \label{eq:DYN_spg_ts_u} 1040 \textbf{U}^{(b)}(\tau,t_{n=0}) = \overline{\textbf{U}^{(b)}(\tau)} \\ \\ 1041 \textbf{U}(\tau,t_{n=1}) = \textbf{U}^{(b)}(\tau,t_{n=0}) + \rdt \ \text{RHS}_{n=0} 1042$
1043with
1044$1045 % \label{eq:DYN_spg_ts_u} 1046 \overline{\textbf{U}^{(b)}(\tau)} = \frac{1}{N+1} \sum\limits_{n=0}^N\textbf{U}^{(b)}(\tau-\rdt,t_{n}) 1047$
1048the time averaged vertically integrated transport.
1049Notably, there is no Robert-Asselin time filter used in the barotropic portion of the integration.
1050
1051Upon reaching $t_{n=N} = \tau + 2\rdt \tau$ ,
1052the vertically integrated velocity is time averaged to produce the updated vertically integrated velocity at
1053baroclinic time $\tau + \rdt \tau$
1054$1055 % \label{eq:DYN_spg_ts_u} 1056 \textbf{U}(\tau+\rdt) = \overline{\textbf{U}^{(b)}(\tau+\rdt)} = \frac{1}{N+1} \sum\limits_{n=0}^N\textbf{U}^{(b)}(\tau,t_{n}) 1057$
1058The surface height on the new baroclinic time step is then determined via a baroclinic leap-frog using
1059the following form
1060
1061\begin{equation}
1062  \label{eq:DYN_spg_ts_ssh}
1063  \eta(\tau+\Delta) - \eta^{F}(\tau-\Delta) = 2\rdt \ \left[ - \nabla \cdot \textbf{U}(\tau) + \text{EMP}_w \right]
1064\end{equation}
1065
1066The use of this "big-leap-frog" scheme for the surface height ensures compatibility between
1067the mass/volume budgets and the tracer budgets.
1068More discussion of this point is provided in Chapter 10 (see in particular Section 10.2).
1069
1070In general, some form of time filter is needed to maintain integrity of the surface height field due to
1071the leap-frog splitting mode in equation \autoref{eq:DYN_spg_ts_ssh}.
1072We have tried various forms of such filtering,
1073with the following method discussed in \cite{griffies.pacanowski.ea_MWR01} chosen due to
1074its stability and reasonably good maintenance of tracer conservation properties (see ??).
1075
1076\begin{equation}
1077  \label{eq:DYN_spg_ts_sshf}
1078  \eta^{F}(\tau-\Delta) =  \overline{\eta^{(b)}(\tau)}
1079\end{equation}
1080Another approach tried was
1081
1082$1083 % \label{eq:DYN_spg_ts_sshf2} 1084 \eta^{F}(\tau-\Delta) = \eta(\tau) 1085 + (\alpha/2) \left[\overline{\eta^{(b)}}(\tau+\rdt) 1086 + \overline{\eta^{(b)}}(\tau-\rdt) -2 \;\eta(\tau) \right] 1087$
1088
1089which is useful since it isolates all the time filtering aspects into the term multiplied by $\alpha$.
1090This isolation allows for an easy check that tracer conservation is exact when
1091eliminating tracer and surface height time filtering (see ?? for more complete discussion).
1092However, in the general case with a non-zero $\alpha$,
1093the filter \autoref{eq:DYN_spg_ts_sshf} was found to be more conservative, and so is recommended.
1094
1095}            %%end gm comment (copy of griffies book)
1096
1097%>>>>>===============
1098
1099
1100%--------------------------------------------------------------------------------------------------------------
1101% Filtered free surface formulation
1102%--------------------------------------------------------------------------------------------------------------
1103\subsection[Filtered free surface (\texttt{\textbf{key\_dynspg\_flt}})]
1104{Filtered free surface (\protect\key{dynspg\_flt})}
1105\label{subsec:DYN_spg_fltp}
1106
1107The filtered formulation follows the \citet{roullet.madec_JGR00} implementation.
1108The extra term introduced in the equations (see \autoref{subsec:PE_free_surface}) is solved implicitly.
1109The elliptic solvers available in the code are documented in \autoref{chap:MISC}.
1110
1111%% gm %%======>>>>   given here the discrete eqs provided to the solver
1112\gmcomment{               %%% copy from chap-model basics
1113  $1114 % \label{eq:spg_flt} 1115 \frac{\partial {\mathrm {\mathbf U}}_h }{\partial t}= {\mathrm {\mathbf M}} 1116 - g \nabla \left( \tilde{\rho} \ \eta \right) 1117 - g \ T_c \nabla \left( \widetilde{\rho} \ \partial_t \eta \right) 1118$
1119  where $T_c$, is a parameter with dimensions of time which characterizes the force,
1120  $\widetilde{\rho} = \rho / \rho_o$ is the dimensionless density,
1121  and $\mathrm {\mathbf M}$ represents the collected contributions of the Coriolis, hydrostatic pressure gradient,
1122  non-linear and viscous terms in \autoref{eq:PE_dyn}.
1123}   %end gmcomment
1124
1125Note that in the linear free surface formulation (\key{vvl} not defined),
1126the ocean depth is time-independent and so is the matrix to be inverted.
1127It is computed once and for all and applies to all ocean time steps.
1128
1129% ================================================================
1130% Lateral diffusion term
1131% ================================================================
1132\section[Lateral diffusion term and operators (\textit{dynldf.F90})]
1133{Lateral diffusion term and operators (\protect\mdl{dynldf})}
1134\label{sec:DYN_ldf}
1135%------------------------------------------nam_dynldf----------------------------------------------------
1136
1137\nlst{namdyn_ldf}
1138%-------------------------------------------------------------------------------------------------------------
1139
1140Options are defined through the \ngn{namdyn\_ldf} namelist variables.
1141The options available for lateral diffusion are to use either laplacian (rotated or not) or biharmonic operators.
1142The coefficients may be constant or spatially variable;
1143the description of the coefficients is found in the chapter on lateral physics (\autoref{chap:LDF}).
1144The lateral diffusion of momentum is evaluated using a forward scheme,
1145\ie the velocity appearing in its expression is the \textit{before} velocity in time,
1146except for the pure vertical component that appears when a tensor of rotation is used.
1147This latter term is solved implicitly together with the vertical diffusion term (see \autoref{chap:STP}).
1148
1149At the lateral boundaries either free slip,
1150no slip or partial slip boundary conditions are applied according to the user's choice (see \autoref{chap:LBC}).
1151
1152\gmcomment{
1153  Hyperviscous operators are frequently used in the simulation of turbulent flows to
1154  control the dissipation of unresolved small scale features.
1155  Their primary role is to provide strong dissipation at the smallest scale supported by
1156  the grid while minimizing the impact on the larger scale features.
1157  Hyperviscous operators are thus designed to be more scale selective than the traditional,
1158  physically motivated Laplace operator.
1159  In finite difference methods,
1160  the biharmonic operator is frequently the method of choice to achieve this scale selective dissipation since
1161  its damping time (\ie its spin down time) scale like $\lambda^{-4}$ for disturbances of wavelength $\lambda$
1162  (so that short waves damped more rapidelly than long ones),
1163  whereas the Laplace operator damping time scales only like $\lambda^{-2}$.
1164}
1165
1166% ================================================================
1167\subsection[Iso-level laplacian (\forcode{ln_dynldf_lap = .true.})]
1168{Iso-level laplacian operator (\protect\np{ln\_dynldf\_lap}\forcode{ = .true.})}
1169\label{subsec:DYN_ldf_lap}
1170
1171For lateral iso-level diffusion, the discrete operator is:
1172\begin{equation}
1173  \label{eq:dynldf_lap}
1174  \left\{
1175    \begin{aligned}
1176      D_u^{l{\mathrm {\mathbf U}}} =\frac{1}{e_{1u} }\delta_{i+1/2} \left[ {A_T^{lm}
1177          \;\chi } \right]-\frac{1}{e_{2u} {\kern 1pt}e_{3u} }\delta_j \left[
1178        {A_f^{lm} \;e_{3f} \zeta } \right] \\ \\
1179      D_v^{l{\mathrm {\mathbf U}}} =\frac{1}{e_{2v} }\delta_{j+1/2} \left[ {A_T^{lm}
1180          \;\chi } \right]+\frac{1}{e_{1v} {\kern 1pt}e_{3v} }\delta_i \left[
1181        {A_f^{lm} \;e_{3f} \zeta } \right]
1182    \end{aligned}
1183  \right.
1184\end{equation}
1185
1186As explained in \autoref{subsec:PE_ldf},
1187this formulation (as the gradient of a divergence and curl of the vorticity) preserves symmetry and
1188ensures a complete separation between the vorticity and divergence parts of the momentum diffusion.
1189
1190%--------------------------------------------------------------------------------------------------------------
1191%           Rotated laplacian operator
1192%--------------------------------------------------------------------------------------------------------------
1193\subsection[Rotated laplacian (\forcode{ln_dynldf_iso = .true.})]
1194{Rotated laplacian operator (\protect\np{ln\_dynldf\_iso}\forcode{ = .true.})}
1195\label{subsec:DYN_ldf_iso}
1196
1197A rotation of the lateral momentum diffusion operator is needed in several cases:
1198for iso-neutral diffusion in the $z$-coordinate (\np{ln\_dynldf\_iso}\forcode{ = .true.}) and
1199for either iso-neutral (\np{ln\_dynldf\_iso}\forcode{ = .true.}) or
1200geopotential (\np{ln\_dynldf\_hor}\forcode{ = .true.}) diffusion in the $s$-coordinate.
1201In the partial step case, coordinates are horizontal except at the deepest level and
1202no rotation is performed when \np{ln\_dynldf\_hor}\forcode{ = .true.}.
1203The diffusion operator is defined simply as the divergence of down gradient momentum fluxes on
1204each momentum component.
1205It must be emphasized that this formulation ignores constraints on the stress tensor such as symmetry.
1206The resulting discrete representation is:
1207\begin{equation}
1208  \label{eq:dyn_ldf_iso}
1209  \begin{split}
1210    D_u^{l\textbf{U}} &= \frac{1}{e_{1u} \, e_{2u} \, e_{3u} } \\
1211    &  \left\{\quad  {\delta_{i+1/2} \left[ {A_T^{lm}  \left(
1212              {\frac{e_{2t} \; e_{3t} }{e_{1t} } \,\delta_{i}[u]
1213                -e_{2t} \; r_{1t} \,\overline{\overline {\delta_{k+1/2}[u]}}^{\,i,\,k}}
1214            \right)} \right]}    \right. \\
1215    & \qquad +\ \delta_j \left[ {A_f^{lm} \left( {\frac{e_{1f}\,e_{3f} }{e_{2f}
1216            }\,\delta_{j+1/2} [u] - e_{1f}\, r_{2f}
1217            \,\overline{\overline {\delta_{k+1/2} [u]}} ^{\,j+1/2,\,k}}
1218        \right)} \right] \\
1219    &\qquad +\ \delta_k \left[ {A_{uw}^{lm} \left( {-e_{2u} \, r_{1uw} \,\overline{\overline
1220              {\delta_{i+1/2} [u]}}^{\,i+1/2,\,k+1/2} }
1221        \right.} \right. \\
1223    - e_{1u} \, r_{2uw} \,\overline{\overline {\delta_{j+1/2} [u]}} ^{\,j,\,k+1/2} \\
1224    & \left. {\left. { \ \qquad \qquad \qquad \ \ \ \left. {\
1225                +\frac{e_{1u}\, e_{2u} }{e_{3uw} }\,\left( {r_{1uw}^2+r_{2uw}^2}
1226                \right)\,\delta_{k+1/2} [u]} \right)} \right]\;\;\;} \right\} \\ \\
1227    D_v^{l\textbf{V}} &= \frac{1}{e_{1v} \, e_{2v} \, e_{3v} } \\
1228    &  \left\{\quad  {\delta_{i+1/2} \left[ {A_f^{lm}  \left(
1229              {\frac{e_{2f} \; e_{3f} }{e_{1f} } \,\delta_{i+1/2}[v]
1230                -e_{2f} \; r_{1f} \,\overline{\overline {\delta_{k+1/2}[v]}}^{\,i+1/2,\,k}}
1231            \right)} \right]}    \right. \\
1232    & \qquad +\ \delta_j \left[ {A_T^{lm} \left( {\frac{e_{1t}\,e_{3t} }{e_{2t}
1233            }\,\delta_{j} [v] - e_{1t}\, r_{2t}
1234            \,\overline{\overline {\delta_{k+1/2} [v]}} ^{\,j,\,k}}
1235        \right)} \right] \\
1236    & \qquad +\ \delta_k \left[ {A_{vw}^{lm} \left( {-e_{2v} \, r_{1vw} \,\overline{\overline
1237              {\delta_{i+1/2} [v]}}^{\,i+1/2,\,k+1/2} }\right.} \right. \\
1239    - e_{1v} \, r_{2vw} \,\overline{\overline {\delta_{j+1/2} [v]}} ^{\,j+1/2,\,k+1/2} \\
1240    & \left. {\left. { \ \qquad \qquad \qquad \ \ \ \left. {\
1241                +\frac{e_{1v}\, e_{2v} }{e_{3vw} }\,\left( {r_{1vw}^2+r_{2vw}^2}
1242                \right)\,\delta_{k+1/2} [v]} \right)} \right]\;\;\;} \right\}
1243  \end{split}
1244\end{equation}
1245where $r_1$ and $r_2$ are the slopes between the surface along which the diffusion operator acts and
1246the surface of computation ($z$- or $s$-surfaces).
1247The way these slopes are evaluated is given in the lateral physics chapter (\autoref{chap:LDF}).
1248
1249%--------------------------------------------------------------------------------------------------------------
1250%           Iso-level bilaplacian operator
1251%--------------------------------------------------------------------------------------------------------------
1252\subsection[Iso-level bilaplacian (\forcode{ln_dynldf_bilap = .true.})]
1253{Iso-level bilaplacian operator (\protect\np{ln\_dynldf\_bilap}\forcode{ = .true.})}
1254\label{subsec:DYN_ldf_bilap}
1255
1256The lateral fourth order operator formulation on momentum is obtained by applying \autoref{eq:dynldf_lap} twice.
1257It requires an additional assumption on boundary conditions:
1258the first derivative term normal to the coast depends on the free or no-slip lateral boundary conditions chosen,
1259while the third derivative terms normal to the coast are set to zero (see \autoref{chap:LBC}).
1260%%%
1261\gmcomment{add a remark on the the change in the position of the coefficient}
1262%%%
1263
1264% ================================================================
1265%           Vertical diffusion term
1266% ================================================================
1267\section[Vertical diffusion term (\textit{dynzdf.F90})]
1268{Vertical diffusion term (\protect\mdl{dynzdf})}
1269\label{sec:DYN_zdf}
1270%----------------------------------------------namzdf------------------------------------------------------
1271
1272\nlst{namzdf}
1273%-------------------------------------------------------------------------------------------------------------
1274
1275Options are defined through the \ngn{namzdf} namelist variables.
1276The large vertical diffusion coefficient found in the surface mixed layer together with high vertical resolution implies that in the case of explicit time stepping there would be too restrictive a constraint on the time step.
1277Two time stepping schemes can be used for the vertical diffusion term:
1278$(a)$ a forward time differencing scheme
1279(\np{ln\_zdfexp}\forcode{ = .true.}) using a time splitting technique (\np{nn\_zdfexp} $>$ 1) or
1280$(b)$ a backward (or implicit) time differencing scheme (\np{ln\_zdfexp}\forcode{ = .false.})
1281(see \autoref{chap:STP}).
1282Note that namelist variables \np{ln\_zdfexp} and \np{nn\_zdfexp} apply to both tracers and dynamics.
1283
1284The formulation of the vertical subgrid scale physics is the same whatever the vertical coordinate is.
1285The vertical diffusion operators given by \autoref{eq:PE_zdf} take the following semi-discrete space form:
12861287 % \label{eq:dynzdf} 1288 \left\{ 1289 \begin{aligned} 1290 D_u^{vm} &\equiv \frac{1}{e_{3u}} \ \delta_k \left[ \frac{A_{uw}^{vm} }{e_{3uw} } 1291 \ \delta_{k+1/2} [\,u\,] \right] \\ 1292 \\ 1293 D_v^{vm} &\equiv \frac{1}{e_{3v}} \ \delta_k \left[ \frac{A_{vw}^{vm} }{e_{3vw} } 1294 \ \delta_{k+1/2} [\,v\,] \right] 1295 \end{aligned} 1296 \right. 1297
1298where $A_{uw}^{vm}$ and $A_{vw}^{vm}$ are the vertical eddy viscosity and diffusivity coefficients.
1299The way these coefficients are evaluated depends on the vertical physics used (see \autoref{chap:ZDF}).
1300
1301The surface boundary condition on momentum is the stress exerted by the wind.
1302At the surface, the momentum fluxes are prescribed as the boundary condition on
1303the vertical turbulent momentum fluxes,
1304\begin{equation}
1305  \label{eq:dynzdf_sbc}
1306  \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{z=1}
1307  = \frac{1}{\rho_o} \binom{\tau_u}{\tau_v }
1308\end{equation}
1309where $\left( \tau_u ,\tau_v \right)$ are the two components of the wind stress vector in
1310the (\textbf{i},\textbf{j}) coordinate system.
1311The high mixing coefficients in the surface mixed layer ensure that the surface wind stress is distributed in
1312the vertical over the mixed layer depth.
1313If the vertical mixing coefficient is small (when no mixed layer scheme is used)
1314the surface stress enters only the top model level, as a body force.
1315The surface wind stress is calculated in the surface module routines (SBC, see \autoref{chap:SBC}).
1316
1317The turbulent flux of momentum at the bottom of the ocean is specified through a bottom friction parameterisation
1318(see \autoref{sec:ZDF_bfr})
1319
1320% ================================================================
1321% External Forcing
1322% ================================================================
1323\section{External forcings}
1324\label{sec:DYN_forcing}
1325
1326Besides the surface and bottom stresses (see the above section)
1327which are introduced as boundary conditions on the vertical mixing,
1328three other forcings may enter the dynamical equations by affecting the surface pressure gradient.
1329
1330(1) When \np{ln\_apr\_dyn}\forcode{ = .true.} (see \autoref{sec:SBC_apr}),
1331the atmospheric pressure is taken into account when computing the surface pressure gradient.
1332
1333(2) When \np{ln\_tide\_pot}\forcode{ = .true.} and \np{ln\_tide}\forcode{ = .true.} (see \autoref{sec:SBC_tide}),
1334the tidal potential is taken into account when computing the surface pressure gradient.
1335
1336(3) When \np{nn\_ice\_embd}\forcode{ = 2} and LIM or CICE is used
1337(\ie when the sea-ice is embedded in the ocean),
1338the snow-ice mass is taken into account when computing the surface pressure gradient.
1339
1340
1341\gmcomment{ missing : the lateral boundary condition !!!   another external forcing
1342 }
1343
1344% ================================================================
1345% Wetting and drying
1346% ================================================================
1347\section{Wetting and drying }
1348\label{sec:DYN_wetdry}
1349There are two main options for wetting and drying code (wd):
1350(a) an iterative limiter (il) and (b) a directional limiter (dl).
1351The directional limiter is based on the scheme developed by \cite{warner.defne.ea_CG13} for RO
1352MS
1353which was in turn based on ideas developed for POM by \cite{oey_OM06}. The iterative
1354limiter is a new scheme.  The iterative limiter is activated by setting $\mathrm{ln\_wd\_il} = \mathrm{.true.}$
1355and $\mathrm{ln\_wd\_dl} = \mathrm{.false.}$. The directional limiter is activated
1356by setting $\mathrm{ln\_wd\_dl} = \mathrm{.true.}$ and $\mathrm{ln\_wd\_il} = \mathrm{.false.}$.
1357
1359
1360The following terminology is used. The depth of the topography (positive downwards)
1361at each $(i,j)$ point is the quantity stored in array $\mathrm{ht\_wd}$ in the NEMO code.
1362The height of the free surface (positive upwards) is denoted by $\mathrm{ssh}$. Given the sign
1363conventions used, the water depth, $h$, is the height of the free surface plus the depth of the
1364topography (i.e. $\mathrm{ssh} + \mathrm{ht\_wd}$).
1365
1366Both wd schemes take all points in the domain below a land elevation of $\mathrm{rn\_wdld}$ to be
1367covered by water. They require the topography specified with a model
1368configuration to have negative depths at points where the land is higher than the
1369topography's reference sea-level. The vertical grid in NEMO is normally computed relative to an
1370initial state with zero sea surface height elevation.
1371The user can choose to compute the vertical grid and heights in the model relative to
1372a non-zero reference height for the free surface. This choice affects the calculation of the metrics and depths
1373(i.e. the $\mathrm{e3t\_0, ht\_0}$ etc. arrays).
1374
1375Points where the water depth is less than $\mathrm{rn\_wdmin1}$ are interpreted as dry''.
1376$\mathrm{rn\_wdmin1}$ is usually chosen to be of order $0.05$m but extreme topographies
1377with very steep slopes require larger values for normal choices of time-step. Surface fluxes
1378are also switched off for dry cells to prevent freezing, boiling etc. of very thin water layers.
1379The fluxes are tappered down using a $\mathrm{tanh}$ weighting function
1380to no flux as the dry limit $\mathrm{rn\_wdmin1}$ is approached. Even wet cells can be very shallow.
1381The depth at which to start tapering is controlled by the user by setting $\mathrm{rn\_wd\_sbcdep}$.
1382The fraction $(<1)$ of sufrace fluxes to use at this depth is set by $\mathrm{rn\_wd\_sbcfra}$.
1383
1384Both versions of the code have been tested in six test cases provided in the WAD\_TEST\_CASES configuration
1385and in realistic'' configurations covering parts of the north-west European shelf.
1386All these configurations have used pure sigma coordinates. It is expected that
1387the wetting and drying code will work in domains with more general s-coordinates provided
1388the coordinates are pure sigma in the region where wetting and drying actually occurs.
1389
1390The next sub-section descrbies the directional limiter and the following sub-section the iterative limiter.
1391The final sub-section covers some additional considerations that are relevant to both schemes.
1392
1393
1394%-----------------------------------------------------------------------------------------
1395%   Iterative limiters
1396%-----------------------------------------------------------------------------------------
1397\subsection[Directional limiter (\textit{wet\_dry.F90})]
1398{Directional limiter (\mdl{wet\_dry})}
1399\label{subsec:DYN_wd_directional_limiter}
1400The principal idea of the directional limiter is that
1401water should not be allowed to flow out of a dry tracer cell (i.e. one whose water depth is less than rn\_wdmin1).
1402
1403All the changes associated with this option are made to the barotropic solver for the non-linear
1404free surface code within dynspg\_ts.
1405On each barotropic sub-step the scheme determines the direction of the flow across each face of all the tracer cells
1406and sets the flux across the face to zero when the flux is from a dry tracer cell. This prevents cells
1407whose depth is rn\_wdmin1 or less from drying out further. The scheme does not force $h$ (the water depth) at tracer cells
1408to be at least the minimum depth and hence is able to conserve mass / volume.
1409
1410The flux across each $u$-face of a tracer cell is multiplied by a factor zuwdmask (an array which depends on ji and jj).
1411If the user sets ln\_wd\_dl\_ramp = .False. then zuwdmask is 1 when the
1412flux is from a cell with water depth greater than rn\_wdmin1 and 0 otherwise. If the user sets
1413ln\_wd\_dl\_ramp = .True. the flux across the face is ramped down as the water depth decreases
1414from 2 * rn\_wdmin1 to rn\_wdmin1. The use of this ramp reduced grid-scale noise in idealised test cases.
1415
1416At the point where the flux across a $u$-face is multiplied by zuwdmask , we have chosen
1417also to multiply the corresponding velocity on the now'' step at that face by zuwdmask. We could have
1418chosen not to do that and to allow fairly large velocities to occur in these dry'' cells.
1419The rationale for setting the velocity to zero is that it is the momentum equations that are being solved
1420and the total momentum of the upstream cell (treating it as a finite volume) should be considered
1421to be its depth times its velocity. This depth is considered to be zero at dry'' $u$-points consistent with its
1422treatment in the calculation of the flux of mass across the cell face.
1423
1424
1425\cite{warner.defne.ea_CG13} state that in their scheme the velocity masks at the cell faces for the baroclinic
1426timesteps are set to 0 or 1 depending on whether the average of the masks over the barotropic sub-steps is respectively less than
1427or greater than 0.5. That scheme does not conserve tracers in integrations started from constant tracer
1428fields (tracers independent of $x$, $y$ and $z$). Our scheme conserves constant tracers because
1429the velocities used at the tracer cell faces on the baroclinic timesteps are carefully calculated by dynspg\_ts
1430to equal their mean value during the barotropic steps. If the user sets ln\_wd\_dl\_bc = .True., the
1431baroclinic velocities are also multiplied by a suitably weighted average of zuwdmask.
1432
1433%-----------------------------------------------------------------------------------------
1434%   Iterative limiters
1435%-----------------------------------------------------------------------------------------
1436
1437\subsection[Iterative limiter (\textit{wet\_dry.F90})]
1438{Iterative limiter (\mdl{wet\_dry})}
1439\label{subsec:DYN_wd_iterative_limiter}
1440
1441\subsubsection[Iterative flux limiter (\textit{wet\_dry.F90})]
1442{Iterative flux limiter (\mdl{wet\_dry})}
1443\label{subsubsec:DYN_wd_il_spg_limiter}
1444
1445The iterative limiter modifies the fluxes across the faces of cells that are either already dry''
1446or may become dry within the next time-step using an iterative method.
1447
1448The flux limiter for the barotropic flow (devised by Hedong Liu) can be understood as follows:
1449
1450The continuity equation for the total water depth in a column
1451\begin{equation} \label{dyn_wd_continuity}
1452 \frac{\partial h}{\partial t} + \mathbf{\nabla.}(h\mathbf{u}) = 0 .
1453\end{equation}
1454can be written in discrete form  as
1455
1456\begin{align} \label{dyn_wd_continuity_2}
1457\frac{e_1 e_2}{\Delta t} ( h_{i,j}(t_{n+1}) - h_{i,j}(t_e) )
1458&= - ( \mathrm{flxu}_{i+1,j} - \mathrm{flxu}_{i,j}  + \mathrm{flxv}_{i,j+1} - \mathrm{flxv}_{i,j} ) \\
1459&= \mathrm{zzflx}_{i,j} .
1460\end{align}
1461
1462In the above $h$ is the depth of the water in the column at point $(i,j)$,
1463$\mathrm{flxu}_{i+1,j}$ is the flux out of the eastern'' face of the cell and
1464$\mathrm{flxv}_{i,j+1}$ the flux out of the northern'' face of the cell; $t_{n+1}$ is
1465the new timestep, $t_e$ is the old timestep (either $t_b$ or $t_n$) and $\Delta t = 1466t_{n+1} - t_e$; $e_1 e_2$ is the area of the tracer cells centred at $(i,j)$ and
1467$\mathrm{zzflx}$ is the sum of the fluxes through all the faces.
1468
1469The flux limiter splits the flux $\mathrm{zzflx}$ into fluxes that are out of the cell
1470(zzflxp) and fluxes that are into the cell (zzflxn).  Clearly
1471
1472\begin{equation} \label{dyn_wd_zzflx_p_n_1}
1473\mathrm{zzflx}_{i,j} = \mathrm{zzflxp}_{i,j} + \mathrm{zzflxn}_{i,j} .
1474\end{equation}
1475
1476The flux limiter iteratively adjusts the fluxes $\mathrm{flxu}$ and $\mathrm{flxv}$ until
1477none of the cells will dry out''. To be precise the fluxes are limited until none of the
1478cells has water depth less than $\mathrm{rn\_wdmin1}$ on step $n+1$.
1479
1480Let the fluxes on the $m$th iteration step be denoted by $\mathrm{flxu}^{(m)}$ and
1481$\mathrm{flxv}^{(m)}$.  Then the adjustment is achieved by seeking a set of coefficients,
1482$\mathrm{zcoef}_{i,j}^{(m)}$ such that:
1483
1484\begin{equation} \label{dyn_wd_continuity_coef}
1485\begin{split}
1486\mathrm{zzflxp}^{(m)}_{i,j} =& \mathrm{zcoef}_{i,j}^{(m)} \mathrm{zzflxp}^{(0)}_{i,j} \\
1487\mathrm{zzflxn}^{(m)}_{i,j} =& \mathrm{zcoef}_{i,j}^{(m)} \mathrm{zzflxn}^{(0)}_{i,j}
1488\end{split}
1489\end{equation}
1490
1491where the coefficients are $1.0$ generally but can vary between $0.0$ and $1.0$ around
1492cells that would otherwise dry.
1493
1494The iteration is initialised by setting
1495
1496\begin{equation} \label{dyn_wd_zzflx_initial}
1497\mathrm{zzflxp^{(0)}}_{i,j} = \mathrm{zzflxp}_{i,j} , \quad  \mathrm{zzflxn^{(0)}}_{i,j} = \mathrm{zzflxn}_{i,j} .
1498\end{equation}
1499
1500The fluxes out of cell $(i,j)$ are updated at the $m+1$th iteration if the depth of the
1501cell on timestep $t_e$, namely $h_{i,j}(t_e)$, is less than the total flux out of the cell
1502times the timestep divided by the cell area. Using (\ref{dyn_wd_continuity_2}) this
1503condition is
1504
1505\begin{equation} \label{dyn_wd_continuity_if}
1506h_{i,j}(t_e)  - \mathrm{rn\_wdmin1} <  \frac{\Delta t}{e_1 e_2} ( \mathrm{zzflxp}^{(m)}_{i,j} + \mathrm{zzflxn}^{(m)}_{i,j} ) .
1507\end{equation}
1508
1509Rearranging (\ref{dyn_wd_continuity_if}) we can obtain an expression for the maximum
1510outward flux that can be allowed and still maintain the minimum wet depth:
1511
1512\begin{equation} \label{dyn_wd_max_flux}
1513\begin{split}
1514\mathrm{zzflxp}^{(m+1)}_{i,j} = \Big[ (h_{i,j}(t_e) & - \mathrm{rn\_wdmin1} - \mathrm{rn\_wdmin2})  \frac{e_1 e_2}{\Delta t} \phantom{]} \\
1515\phantom{[} & -  \mathrm{zzflxn}^{(m)}_{i,j} \Big]
1516\end{split}
1517\end{equation}
1518
1519Note a small tolerance ($\mathrm{rn\_wdmin2}$) has been introduced here {\itshape [Q: Why is
1520this necessary/desirable?]}. Substituting from (\ref{dyn_wd_continuity_coef}) gives an
1521expression for the coefficient needed to multiply the outward flux at this cell in order
1522to avoid drying.
1523
1524\begin{equation} \label{dyn_wd_continuity_nxtcoef}
1525\begin{split}
1526\mathrm{zcoef}^{(m+1)}_{i,j} = \Big[ (h_{i,j}(t_e) & - \mathrm{rn\_wdmin1} - \mathrm{rn\_wdmin2})  \frac{e_1 e_2}{\Delta t} \phantom{]} \\
1527\phantom{[} & -  \mathrm{zzflxn}^{(m)}_{i,j} \Big] \frac{1}{ \mathrm{zzflxp}^{(0)}_{i,j} }
1528\end{split}
1529\end{equation}
1530
1531Only the outward flux components are altered but, of course, outward fluxes from one cell
1532are inward fluxes to adjacent cells and the balance in these cells may need subsequent
1533adjustment; hence the iterative nature of this scheme.  Note, for example, that the flux
1534across the eastern'' face of the $(i,j)$th cell is only updated at the $m+1$th iteration
1535if that flux at the $m$th iteration is out of the $(i,j)$th cell. If that is the case then
1536the flux across that face is into the $(i+1,j)$ cell and that flux will not be updated by
1537the calculation for the $(i+1,j)$th cell. In this sense the updates to the fluxes across
1538the faces of the cells do not compete'' (they do not over-write each other) and one
1539would expect the scheme to converge relatively quickly. The scheme is flux based so
1540conserves mass. It also conserves constant tracers for the same reason that the
1541directional limiter does.
1542
1543
1544%----------------------------------------------------------------------------------------
1545%      Surface pressure gradients
1546%----------------------------------------------------------------------------------------
1547\subsubsection[Modification of surface pressure gradients (\textit{dynhpg.F90})]
1548{Modification of surface pressure gradients (\mdl{dynhpg})}
1549\label{subsubsec:DYN_wd_il_spg}
1550
1551At dry'' points the water depth is usually close to $\mathrm{rn\_wdmin1}$. If the
1552topography is sloping at these points the sea-surface will have a similar slope and there
1553will hence be very large horizontal pressure gradients at these points. The WAD modifies
1554the magnitude but not the sign of the surface pressure gradients (zhpi and zhpj) at such
1555points by mulitplying them by positive factors (zcpx and zcpy respectively) that lie
1556between $0$ and $1$.
1557
1558We describe how the scheme works for the eastward'' pressure gradient, zhpi, calculated
1559at the $(i,j)$th $u$-point. The scheme uses the ht\_wd depths and surface heights at the
1560neighbouring $(i+1,j)$ and $(i,j)$ tracer points.  zcpx is calculated using two logicals
1561variables, $\mathrm{ll\_tmp1}$ and $\mathrm{ll\_tmp2}$ which are evaluated for each grid
1562column.  The three possible combinations are illustrated in figure \ref{Fig_WAD_dynhpg}.
1563
1564%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1565\begin{figure}[!ht] \begin{center}
1568Illustrations of the three possible combinations of the logical variables controlling the
1569limiting of the horizontal pressure gradient in wetting and drying regimes}
1570\end{center}\end{figure}
1571%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1572
1573The first logical, $\mathrm{ll\_tmp1}$, is set to true if and only if the water depth at
1574both neighbouring points is greater than $\mathrm{rn\_wdmin1} + \mathrm{rn\_wdmin2}$ and
1575the minimum height of the sea surface at the two points is greater than the maximum height
1576of the topography at the two points:
1577
1578\begin{equation} \label{dyn_ll_tmp1}
1579\begin{split}
1580\mathrm{ll\_tmp1}  = & \mathrm{MIN(sshn(ji,jj), sshn(ji+1,jj))} > \\
1581                     & \quad \mathrm{MAX(-ht\_wd(ji,jj), -ht\_wd(ji+1,jj))\  .and.} \\
1582& \mathrm{MAX(sshn(ji,jj) + ht\_wd(ji,jj),} \\
1583& \mathrm{\phantom{MAX(}sshn(ji+1,jj) + ht\_wd(ji+1,jj))} >\\
1585\end{split}
1586\end{equation}
1587
1588The second logical, $\mathrm{ll\_tmp2}$, is set to true if and only if the maximum height
1589of the sea surface at the two points is greater than the maximum height of the topography
1590at the two points plus $\mathrm{rn\_wdmin1} + \mathrm{rn\_wdmin2}$
1591
1592\begin{equation} \label{dyn_ll_tmp2}
1593\begin{split}
1594\mathrm{ ll\_tmp2 } = & \mathrm{( ABS( sshn(ji,jj) - sshn(ji+1,jj) ) > 1.E-12 )\ .AND.}\\
1595& \mathrm{( MAX(sshn(ji,jj), sshn(ji+1,jj)) > } \\
1596& \mathrm{\phantom{(} MAX(-ht\_wd(ji,jj), -ht\_wd(ji+1,jj)) + rn\_wdmin1 + rn\_wdmin2}) .
1597\end{split}
1598\end{equation}
1599
1600If $\mathrm{ll\_tmp1}$ is true then the surface pressure gradient, zhpi at the $(i,j)$
1601point is unmodified. If both logicals are false zhpi is set to zero.
1602
1603If $\mathrm{ll\_tmp1}$ is true and $\mathrm{ll\_tmp2}$ is false then the surface pressure
1604gradient is multiplied through by zcpx which is the absolute value of the difference in
1605the water depths at the two points divided by the difference in the surface heights at the
1606two points. Thus the sign of the sea surface height gradient is retained but the magnitude
1607of the pressure force is determined by the difference in water depths rather than the
1608difference in surface height between the two points. Note that dividing by the difference
1609between the sea surface heights can be problematic if the heights approach parity. An
1610additional condition is applied to $\mathrm{ ll\_tmp2 }$ to ensure it is .false. in such
1611conditions.
1612
1616
1617In the very shallow water where wetting and drying occurs the parametrisation of
1618bottom drag is clearly very important. In order to promote stability
1619it is sometimes useful to calculate the bottom drag using an implicit time-stepping approach.
1620
1621Suitable specifcation of the surface heat flux in wetting and drying domains in forced and
1622coupled simulations needs further consideration. In order to prevent freezing or boiling
1623in uncoupled integrations the net surface heat fluxes need to be appropriately limited.
1624
1625%----------------------------------------------------------------------------------------
1626%      The WAD test cases
1627%----------------------------------------------------------------------------------------
1628\subsection[The WAD test cases (\textit{usrdef\_zgr.F90})]
1629{The WAD test cases (\mdl{usrdef\_zgr})}
1631
1632See the WAD tests MY\_DOC documention for details of the WAD test cases.
1633
1634
1635
1636% ================================================================
1637% Time evolution term
1638% ================================================================
1639\section[Time evolution term (\textit{dynnxt.F90})]
1640{Time evolution term (\protect\mdl{dynnxt})}
1641\label{sec:DYN_nxt}
1642
1643%----------------------------------------------namdom----------------------------------------------------
1644
1645\nlst{namdom}
1646%-------------------------------------------------------------------------------------------------------------
1647
1648Options are defined through the \ngn{namdom} namelist variables.
1649The general framework for dynamics time stepping is a leap-frog scheme,
1650\ie a three level centred time scheme associated with an Asselin time filter (cf. \autoref{chap:STP}).
1651The scheme is applied to the velocity, except when
1652using the flux form of momentum advection (cf. \autoref{sec:DYN_adv_cor_flux})
1653in the variable volume case (\key{vvl} defined),
1654where it has to be applied to the thickness weighted velocity (see \autoref{sec:A_momentum}
1655
1656$\bullet$ vector invariant form or linear free surface
1657(\np{ln\_dynhpg\_vec}\forcode{ = .true.} ; \key{vvl} not defined):
16581659 % \label{eq:dynnxt_vec} 1660 \left\{ 1661 \begin{aligned} 1662 &u^{t+\rdt} = u_f^{t-\rdt} + 2\rdt \ \text{RHS}_u^t \\ 1663 &u_f^t \;\quad = u^t+\gamma \,\left[ {u_f^{t-\rdt} -2u^t+u^{t+\rdt}} \right] 1664 \end{aligned} 1665 \right. 1666
1667
1668$\bullet$ flux form and nonlinear free surface
1669(\np{ln\_dynhpg\_vec}\forcode{ = .false.} ; \key{vvl} defined):
16701671 % \label{eq:dynnxt_flux} 1672 \left\{ 1673 \begin{aligned} 1674 &\left(e_{3u}\,u\right)^{t+\rdt} = \left(e_{3u}\,u\right)_f^{t-\rdt} + 2\rdt \; e_{3u} \;\text{RHS}_u^t \\ 1675 &\left(e_{3u}\,u\right)_f^t \;\quad = \left(e_{3u}\,u\right)^t 1676 +\gamma \,\left[ {\left(e_{3u}\,u\right)_f^{t-\rdt} -2\left(e_{3u}\,u\right)^t+\left(e_{3u}\,u\right)^{t+\rdt}} \right] 1677 \end{aligned} 1678 \right. 1679
1680where RHS is the right hand side of the momentum equation,
1681the subscript $f$ denotes filtered values and $\gamma$ is the Asselin coefficient.
1682$\gamma$ is initialized as \np{nn\_atfp} (namelist parameter).
1683Its default value is \np{nn\_atfp}\forcode{ = 10.e-3}.
1684In both cases, the modified Asselin filter is not applied since perfect conservation is not an issue for
1685the momentum equations.
1686
1687Note that with the filtered free surface,
1688the update of the \textit{after} velocities is done in the \mdl{dynsp\_flt} module,
1689and only array swapping and Asselin filtering is done in \mdl{dynnxt}.
1690
1691% ================================================================
1692\biblio
1693
1694\pindex
1695
1696\end{document}
Note: See TracBrowser for help on using the repository browser.