# Changeset 11577

Ignore:
Timestamp:
2019-09-19T19:01:38+02:00 (15 months ago)
Message:

New LaTeX commands \nam and \np to mention namelist content
(Partial commit to serve as a backup before other large edits)
In order to benefit of the syntax highlighting and to have a simpler syntax for
citing namelist block (\nam) and parameter (\np) with an optional variable assignment (\forcode{…}),
at this time the only viable solution I found is to require a double marker for
what it looks like the same item:

1. Marker with the real name: 'tra_adv' block or 'ln_flx' parameter
2. Marker with underscore character escaping: 'tra\_adv' block or 'ln\_flx' parameter

Despite many searches and attempts, I did not find a workaround to edit on-the-fly one or
the other marker.
In fact, the problem is on one side that the LaTeX index interprets '_' as a switch for lowering like
in math mode while on the other hand the backslash is considered for Pygments as a typo in Fortran
(red box).

For instance, \nam and \np have as of now the aforementioned 2 mandatory arguments in
the previous order (between braces) + an optional argument for \np when the parameter is defined
(between brackets at the first position):

• \nam: LaTeX code in the \nam{tra_adv}{tra\_adv} → PDF ' in the &namtra_adv (namelist X.X) ' with syntax highlighting, the hyperlink and the index entry
• \np: LaTeX code \np[=.true.]{ln_flx}{ln\_flx} → PDF ln_flux=.true. with syntax highlighting for the whole string and the entry in the 'parameters' index
Location:
NEMO/trunk/doc/latex
Files:
24 edited

Unmodified
Removed
• ## NEMO/trunk/doc/latex/NEMO/subfiles/apdx_DOMAINcfg.tex

 r11571 The user has three options available in defining a horizontal grid, which involve the namelist variable \np{jphgr\_mesh} of the \nam{dom} (\texttt{DOMAINcfg} variant only) namelist variable \np{jphgr_mesh}{jphgr\_mesh} of the \nam{dom} (\texttt{DOMAINcfg} variant only) namelist. \begin{description} \item[\np{jphgr\_mesh}=0]  The most general curvilinear orthogonal grids. \item[\np{jphgr_mesh}{jphgr\_mesh}=0]  The most general curvilinear orthogonal grids. The coordinates and their first derivatives with respect to $i$ and $j$ are provided in a input file (\ifile{coordinates}), read in \rou{hgr\_read} subroutine of the domhgr module. This is now the only option available within \NEMO\ itself from v4.0 onwards. \item[\np{jphgr\_mesh}=1 to 5] A few simple analytical grids are provided (see below). \item[\np{jphgr_mesh}{jphgr\_mesh}=1 to 5] A few simple analytical grids are provided (see below). For other analytical grids, the \mdl{domhgr} module (\texttt{DOMAINcfg} variant) must be modified by the user. In most cases, modifying the \mdl{usrdef\_hgr} module of \NEMO\ is There are two simple cases of geographical grids on the sphere. With \np{jphgr\_mesh}=1, the grid (expressed in degrees) is regular in space, with grid sizes specified by parameters \np{ppe1\_deg} and \np{ppe2\_deg}, \np{jphgr_mesh}{jphgr\_mesh}=1, the grid (expressed in degrees) is regular in space, with grid sizes specified by parameters \np{ppe1_deg}{ppe1\_deg} and \np{ppe2_deg}{ppe2\_deg}, respectively. Such a geographical grid can be very anisotropic at high latitudes because of the convergence of meridians (the zonal scale factors $e_1$ become much smaller than the meridional scale factors $e_2$). The Mercator grid (\np{jphgr\_mesh}=4) avoids this anisotropy by refining the meridional scale grid (\np{jphgr_mesh}{jphgr\_mesh}=4) avoids this anisotropy by refining the meridional scale factors in the same way as the zonal ones. In this case, meridional scale factors and latitudes are calculated analytically using the formulae appropriate for a Mercator projection, based on \np{ppe1\_deg} which is a reference grid spacing a Mercator projection, based on \np{ppe1_deg}{ppe1\_deg} which is a reference grid spacing at the equator (this applies even when the geographical equator is situated outside the model domain). In these two cases (\np{jphgr\_mesh}=1 or 4), the grid position is defined by the In these two cases (\np{jphgr_mesh}{jphgr\_mesh}=1 or 4), the grid position is defined by the longitude and latitude of the south-westernmost point (\np{ppglamt0} and \np{ppgphi0}). Note that for the Mercator grid the user need only provide Rectangular grids ignoring the spherical geometry are defined with \np{jphgr\_mesh} = 2, 3, 5. The domain is either an $f$-plane (\np{jphgr\_mesh} = 2, Coriolis factor is constant) or a beta-plane (\np{jphgr\_mesh} = 3, the Coriolis factor \np{jphgr_mesh}{jphgr\_mesh} = 2, 3, 5. The domain is either an $f$-plane (\np{jphgr\_mesh} = 2, Coriolis factor is constant) or a beta-plane (\np{jphgr_mesh}{jphgr\_mesh} = 3, the Coriolis factor is linear in the $j$-direction). The grid size is uniform in meter in each direction, and given by the parameters \np{ppe1\_m} and \np{ppe2\_m} respectively. and given by the parameters \np{ppe1_m}{ppe1\_m} and \np{ppe2_m}{ppe2\_m} respectively. The zonal grid coordinate (\textit{glam} arrays) is in kilometers, starting at zero with the first $t$-point. The meridional coordinate (gphi. arrays) is in kilometers, latitude for computation of the Coriolis parameter. In the case of the beta plane, \np{ppgphi0} corresponds to the center of the domain. Finally, the special case \np{jphgr\_mesh}=5 corresponds to a beta plane in a rotated domain for the \np{jphgr_mesh}{jphgr\_mesh}=5 corresponds to a beta plane in a rotated domain for the GYRE configuration, representing a classical mid-latitude double gyre system. The rotation allows us to maximize the jet length relative to the gyre areas \end{gather} If the ice shelf cavities are opened (\np{ln\_isfcav}\forcode{ = .true.}), the definition If the ice shelf cavities are opened (\np{ln_isfcav}{ln\_isfcav}\forcode{ = .true.}), the definition of $z_0$ is the same.  However, definition of $e_3^0$ at $t$- and $w$-points is respectively changed to: Three options are possible for defining the bathymetry, according to the namelist variable \np{nn\_bathy} (found in \nam{dom} namelist (\texttt{DOMAINCFG} variant) ): \np{nn_bathy}{nn\_bathy} (found in \nam{dom} namelist (\texttt{DOMAINCFG} variant) ): \begin{description} \item[\np{nn\_bathy}\forcode{ = 0}]: \item[\np{nn_bathy}{nn\_bathy}\forcode{ = 0}]: a flat-bottom domain is defined. The total depth $z_w (jpk)$ is given by the coordinate transformation. The domain can either be a closed basin or a periodic channel depending on the parameter \np{jperio}. \item[\np{nn\_bathy}\forcode{ = -1}]: \item[\np{nn_bathy}{nn\_bathy}\forcode{ = -1}]: a domain with a bump of topography one third of the domain width at the central latitude. This is meant for the "EEL-R5" configuration, a periodic or open boundary channel with a seamount. \item[\np{nn\_bathy}\forcode{ = 1}]: \item[\np{nn_bathy}{nn\_bathy}\forcode{ = 1}]: read a bathymetry and ice shelf draft (if needed). The \ifile{bathy\_meter} file (Netcdf format) provides the ocean depth (positive, in meters) at The \ifile{isfdraft\_meter} file (Netcdf format) provides the ice shelf draft (positive, in meters) at each grid point of the model grid. This file is only needed if \np{ln\_isfcav}\forcode{ = .true.}. This file is only needed if \np{ln_isfcav}{ln\_isfcav}\forcode{ = .true.}. Defining the ice shelf draft will also define the ice shelf edge and the grounding line position. \end{description} %        z-coordinate with constant thickness % ------------------------------------------------------------------------------------------------------------- \subsubsection[$Z$-coordinate with uniform thickness levels (\forcode{ln_zco})]{$Z$-coordinate with uniform thickness levels (\protect\np{ln\_zco})} \subsubsection[$Z$-coordinate with uniform thickness levels (\forcode{ln_zco})]{$Z$-coordinate with uniform thickness levels (\protect\np{ln_zco}{ln\_zco})} \label{subsec:DOMCFG_zco} %        z-coordinate with partial step % ------------------------------------------------------------------------------------------------------------- \subsubsection[$Z$-coordinate with partial step (\forcode{ln_zps})]{$Z$-coordinate with partial step (\protect\np{ln\_zps})} \subsubsection[$Z$-coordinate with partial step (\forcode{ln_zps})]{$Z$-coordinate with partial step (\protect\np{ln_zps}{ln\_zps})} \label{subsec:DOMCFG_zps} $250~m$).  Two variables in the namdom namelist are used to define the partial step vertical grid.  The mimimum water thickness (in meters) allowed for a cell partially filled with bathymetry at level jk is the minimum of \np{rn\_e3zps\_min} (thickness in meters, usually $20~m$) or $e_{3t}(jk)*$\np{rn\_e3zps\_rat} (a fraction, usually 10\%, of filled with bathymetry at level jk is the minimum of \np{rn_e3zps_min}{rn\_e3zps\_min} (thickness in meters, usually $20~m$) or $e_{3t}(jk)*$\np{rn_e3zps_rat}{rn\_e3zps\_rat} (a fraction, usually 10\%, of the default thickness $e_{3t}(jk)$). %        s-coordinate % ------------------------------------------------------------------------------------------------------------- \subsubsection[$S$-coordinate (\forcode{ln_sco})]{$S$-coordinate (\protect\np{ln\_sco})} \subsubsection[$S$-coordinate (\forcode{ln_sco})]{$S$-coordinate (\protect\np{ln_sco}{ln\_sco})} \label{sec:DOMCFG_sco} %------------------------------------------nam_zgr_sco--------------------------------------------------- \end{listing} %-------------------------------------------------------------------------------------------------------------- Options are defined in \nam{zgr\_sco} (\texttt{DOMAINcfg} only). In $s$-coordinate (\np{ln\_sco}\forcode{ = .true.}), the depth and thickness of the model levels are defined from Options are defined in \nam{zgr_sco}{zgr\_sco} (\texttt{DOMAINcfg} only). In $s$-coordinate (\np{ln_sco}{ln\_sco}\forcode{ = .true.}), the depth and thickness of the model levels are defined from the product of a depth field and either a stretching function or its derivative, respectively: since a mixed step-like and bottom-following representation of the topography can be used (\autoref{fig:DOM_z_zps_s_sps}) or an envelop bathymetry can be defined (\autoref{fig:DOM_z_zps_s_sps}). The namelist parameter \np{rn\_rmax} determines the slope at which The namelist parameter \np{rn_rmax}{rn\_rmax} determines the slope at which the terrain-following coordinate intersects the sea bed and becomes a pseudo z-coordinate. The coordinate can also be hybridised by specifying \np{rn\_sbot\_min} and \np{rn\_sbot\_max} as The coordinate can also be hybridised by specifying \np{rn_sbot_min}{rn\_sbot\_min} and \np{rn_sbot_max}{rn\_sbot\_max} as the minimum and maximum depths at which the terrain-following vertical coordinate is calculated. The original default \NEMO\ s-coordinate stretching is available if neither of the other options are specified as true (\np{ln\_s\_SH94}\forcode{ = .false.} and \np{ln\_s\_SF12}\forcode{ = .false.}). (\np{ln_s_SH94}{ln\_s\_SH94}\forcode{ = .false.} and \np{ln_s_SF12}{ln\_s\_SF12}\forcode{ = .false.}). This uses a depth independent $\tanh$ function for the stretching \citep{madec.delecluse.ea_JPO96}: A stretching function, modified from the commonly used \citet{song.haidvogel_JCP94} stretching (\np{ln\_s\_SH94}\forcode{ = .true.}), modified from the commonly used \citet{song.haidvogel_JCP94} stretching (\np{ln_s_SH94}{ln\_s\_SH94}\forcode{ = .true.}), is also available and is more commonly used for shelf seas modelling: %% %>>>>>>>>>>>>>>>>>>>>>>>>>>>> where $H_c$ is the critical depth (\np{rn\_hc}) at which the coordinate transitions from pure $\sigma$ to the stretched coordinate, and $\theta$ (\np{rn\_theta}) and $b$ (\np{rn\_bb}) are the surface and where $H_c$ is the critical depth (\np{rn_hc}{rn\_hc}) at which the coordinate transitions from pure $\sigma$ to the stretched coordinate, and $\theta$ (\np{rn_theta}{rn\_theta}) and $b$ (\np{rn_bb}{rn\_bb}) are the surface and bottom control parameters such that $0 \leqslant \theta \leqslant 20$, and $0 \leqslant b \leqslant 1$. $b$ has been designed to allow surface and/or bottom increase of the vertical resolution (\autoref{fig:DOMCFG_sco_function}). Another example has been provided at version 3.5 (\np{ln\_s\_SF12}) that allows a fixed surface resolution in Another example has been provided at version 3.5 (\np{ln_s_SF12}{ln\_s\_SF12}) that allows a fixed surface resolution in an analytical terrain-following stretching \citet{siddorn.furner_OM13}. In this case the a stretching function $\gamma$ is defined such that: This gives an analytical stretching of $\sigma$ that is solvable in $A$ and $B$ as a function of the user prescribed stretching parameter $\alpha$ (\np{rn\_alpha}) that stretches towards the user prescribed stretching parameter $\alpha$ (\np{rn_alpha}{rn\_alpha}) that stretches towards the surface ($\alpha > 1.0$) or the bottom ($\alpha < 1.0$) and user prescribed surface (\np{rn\_zs}) and bottom depths. user prescribed surface (\np{rn_zs}{rn\_zs}) and bottom depths. The bottom cell depth in this example is given as a function of water depth: \] where the namelist parameters \np{rn\_zb\_a} and \np{rn\_zb\_b} are $a$ and $b$ respectively. where the namelist parameters \np{rn_zb_a}{rn\_zb\_a} and \np{rn_zb_b}{rn\_zb\_b} are $a$ and $b$ respectively. %% %>>>>>>>>>>>>>>>>>>>>>>>>>>>> the critical depth $h_c$. In this example two options are available in depths shallower than $h_c$, with pure sigma being applied if the \np{ln\_sigcrit} is true and pure z-coordinates if it is false with pure sigma being applied if the \np{ln_sigcrit}{ln\_sigcrit} is true and pure z-coordinates if it is false (the z-coordinate being equal to the depths of the stretched coordinate at $h_c$). %        z*- or s*-coordinate % ------------------------------------------------------------------------------------------------------------- \subsubsection[\zstar- or \sstar-coordinate (\forcode{ln_linssh})]{\zstar- or \sstar-coordinate (\protect\np{ln\_linssh})} \subsubsection[\zstar- or \sstar-coordinate (\forcode{ln_linssh})]{\zstar- or \sstar-coordinate (\protect\np{ln_linssh}{ln\_linssh})} \label{subsec:DOMCFG_zgr_star}
• ## NEMO/trunk/doc/latex/NEMO/subfiles/apdx_algos.tex

 r11561 %        UBS scheme % ------------------------------------------------------------------------------------------------------------- \section{Upstream Biased Scheme (UBS) (\protect\np{ln\_traadv\_ubs}\forcode{ = .true.})} \section{Upstream Biased Scheme (UBS) (\protect\np{ln_traadv_ubs}{ln\_traadv\_ubs}\forcode{ = .true.})} \label{sec:ALGOS_tra_adv_ubs} the control of artificial diapycnal fluxes is of paramount importance. It has therefore been preferred to evaluate the vertical flux using the TVD scheme when \np{ln\_traadv\_ubs}\forcode{ = .true.}. \np{ln_traadv_ubs}{ln\_traadv\_ubs}\forcode{ = .true.}. For stability reasons, in \autoref{eq:TRA_adv_ubs}, the first term which corresponds to
• ## NEMO/trunk/doc/latex/NEMO/subfiles/apdx_invariants.tex

 r11558 %       Vorticity Term with ENE scheme % ------------------------------------------------------------------------------------------------------------- \subsubsection{Vorticity term with ENE scheme (\protect\np{ln\_dynvor\_ene}\forcode{ = .true.})} \subsubsection{Vorticity term with ENE scheme (\protect\np{ln_dynvor_ene}{ln\_dynvor\_ene}\forcode{ = .true.})} \label{subsec:INVARIANTS_vorENE} %       Vorticity Term with EEN scheme % ------------------------------------------------------------------------------------------------------------- \subsubsection{Vorticity term with EEN scheme (\protect\np{ln\_dynvor\_een}\forcode{ = .true.})} \subsubsection{Vorticity term with EEN scheme (\protect\np{ln_dynvor_een}{ln\_dynvor\_een}\forcode{ = .true.})} \label{subsec:INVARIANTS_vorEEN_vect} %       Vorticity Term with ENS scheme % ------------------------------------------------------------------------------------------------------------- \subsubsection{Vorticity term with ENS scheme  (\protect\np{ln\_dynvor\_ens}\forcode{ = .true.})} \subsubsection{Vorticity term with ENS scheme  (\protect\np{ln_dynvor_ens}{ln\_dynvor\_ens}\forcode{ = .true.})} \label{subsec:INVARIANTS_vorENS} %       Vorticity Term with EEN scheme % ------------------------------------------------------------------------------------------------------------- \subsubsection{Vorticity Term with EEN scheme (\protect\np{ln\_dynvor\_een}\forcode{ = .true.})} \subsubsection{Vorticity Term with EEN scheme (\protect\np{ln_dynvor_een}{ln\_dynvor\_een}\forcode{ = .true.})} \label{subsec:INVARIANTS_vorEEN}

 r11571 \newpage \section[Choice of \forcode{namtra\_ldf} namelist parameters]{Choice of \protect\nam{tra\_ldf} namelist parameters} \section[Choice of \forcode{namtra\_ldf} namelist parameters]{Choice of \protect\nam{tra_ldf}{tra\_ldf} namelist parameters} %-----------------------------------------nam_traldf------------------------------------------------------ Two scheme are available to perform the iso-neutral diffusion. If the namelist logical \np{ln\_traldf\_triad} is set true, If the namelist logical \np{ln_traldf_triad}{ln\_traldf\_triad} is set true, \NEMO\ updates both active and passive tracers using the Griffies triad representation of iso-neutral diffusion and the eddy-induced advective skew (GM) fluxes. If the namelist logical \np{ln\_traldf\_iso} is set true, If the namelist logical \np{ln_traldf_iso}{ln\_traldf\_iso} is set true, the filtered version of Cox's original scheme (the Standard scheme) is employed (\autoref{sec:LDF_slp}). In the present implementation of the Griffies scheme, the advective skew fluxes are implemented even if \np{ln\_traldf\_eiv} is false. the advective skew fluxes are implemented even if \np{ln_traldf_eiv}{ln\_traldf\_eiv} is false. Values of iso-neutral diffusivity and GM coefficient are set as described in \autoref{sec:LDF_coef}. The options specific to the Griffies scheme include: \begin{description} \item[\np{ln\_triad\_iso}] \item[\np{ln_triad_iso}{ln\_triad\_iso}] See \autoref{sec:TRIADS_taper}. If this is set false (the default), This is the same treatment as used in the default implementation \autoref{subsec:LDF_slp_iso}; \autoref{fig:LDF_eiv_slp}. Where \np{ln\_triad\_iso} is set true, Where \np{ln_triad_iso}{ln\_triad\_iso} is set true, the vertical skew flux is further reduced to ensure no vertical buoyancy flux, giving an almost pure horizontal diffusive tracer flux within the mixed layer. This is similar to the tapering suggested by \citet{gerdes.koberle.ea_CD91}. See \autoref{subsec:TRIADS_Gerdes-taper} \item[\np{ln\_botmix\_triad}] \item[\np{ln_botmix_triad}{ln\_botmix\_triad}] See \autoref{sec:TRIADS_iso_bdry}. If this is set false (the default) then the lateral diffusive fluxes If it is set true, however, then these lateral diffusive fluxes are applied, giving smoother bottom tracer fields at the cost of introducing diapycnal mixing. \item[\np{rn\_sw\_triad}] \item[\np{rn_sw_triad}{rn\_sw\_triad}] blah blah to be added.... \end{description} The options shared with the Standard scheme include: \begin{description} \item[\np{ln\_traldf\_msc}]   blah blah to be added \item[\np{rn\_slpmax}]  blah blah to be added \item[\np{ln_traldf_msc}{ln\_traldf\_msc}]   blah blah to be added \item[\np{rn_slpmax}{rn\_slpmax}]  blah blah to be added \end{description} Note that both near bottom triad slopes \triad{i}{k}{R}{1/2}{1/2} and \triad{i+1}{k}{R}{-1/2}{1/2} are masked when either of the $i,k+1$ or $i+1,k+1$ tracer points is masked, \ie\ the $i,k+1$ $u$-point is masked. The associated lateral fluxes (grey-black dashed line) are masked if \np{ln\_botmix\_triad}\forcode{ = .false.}, but left unmasked, giving bottom mixing, if \np{ln\_botmix\_triad}\forcode{ = .true.}. The default option \np{ln\_botmix\_triad}\forcode{ = .false.} is suitable when the bbl mixing option is enabled (\np{ln\_trabbl}\forcode{ = .true.}, with \np{nn\_bbl\_ldf}\forcode{ = 1}), or for simple idealized problems. For setups with topography without bbl mixing, \np{ln\_botmix\_triad}\forcode{ = .true.} may be necessary. The associated lateral fluxes (grey-black dashed line) are masked if \np{ln_botmix_triad}{ln\_botmix\_triad}\forcode{ = .false.}, but left unmasked, giving bottom mixing, if \np{ln_botmix_triad}{ln\_botmix\_triad}\forcode{ = .true.}. The default option \np{ln_botmix_triad}{ln\_botmix\_triad}\forcode{ = .false.} is suitable when the bbl mixing option is enabled (\np{ln_trabbl}{ln\_trabbl}\forcode{ = .true.}, with \np{nn_bbl_ldf}{nn\_bbl\_ldf}\forcode{ = 1}), or for simple idealized problems. For setups with topography without bbl mixing, \np{ln_botmix_triad}{ln\_botmix\_triad}\forcode{ = .true.} may be necessary. % >>>>>>>>>>>>>>>>>>>>>>>>>>>> \begin{figure}[h] \ie\ the $i,k+1$ $u$-point is masked. The associated lateral fluxes (grey-black dashed line) are masked if \protect\np{ln\_botmix\_triad}\forcode{ = .false.}, but left unmasked, giving bottom mixing, if \protect\np{ln\_botmix\_triad}\forcode{ = .true.}} \protect\np{ln_botmix_triad}{ln\_botmix\_triad}\forcode{ = .false.}, but left unmasked, giving bottom mixing, if \protect\np{ln_botmix_triad}{ln\_botmix\_triad}\forcode{ = .true.}} \label{fig:TRIADS_bdry_triads} \end{figure} \label{sec:TRIADS_lintaper} This is the option activated by the default choice \np{ln\_triad\_iso}\forcode{ = .false.}. This is the option activated by the default choice \np{ln_triad_iso}{ln\_triad\_iso}\forcode{ = .false.}. Slopes $\tilde{r}_i$ relative to geopotentials are tapered linearly from their value immediately below the mixed layer to zero at the surface, as described in option (c) of \autoref{fig:LDF_eiv_slp}, to values \label{subsec:TRIADS_Gerdes-taper} The alternative option is activated by setting \np{ln\_triad\_iso} = true. The alternative option is activated by setting \np{ln_triad_iso}{ln\_triad\_iso} = true. This retains the same tapered slope $\rML$  described above for the calculation of the $_{33}$ term of the iso-neutral diffusion tensor (the vertical tracer flux driven by vertical tracer gradients), computing the tracer advection. This is implemented if \texttt{traldf\_eiv?} is set in the default implementation, where \np{ln\_traldf\_triad} is set false. where \np{ln_traldf_triad}{ln\_traldf\_triad} is set false. This allows us to take advantage of all the advection schemes offered for the tracers (see \autoref{sec:TRA_adv}) and not just a $2^{nd}$ order advection scheme. \emph{positivity} of the advection scheme is of paramount importance. However, when \np{ln\_traldf\_triad} is set true, However, when \np{ln_traldf_triad}{ln\_traldf\_triad} is set true, \NEMO\ instead implements eddy induced advection according to the so-called skew form \citep{griffies_JPO98}. It is based on a transformation of the advective fluxes using the non-divergent nature of the eddy induced velocity. and both near bottom triad slopes $\triadt{i}{k}{R}{1/2}{1/2}$ and $\triadt{i+1}{k}{R}{-1/2}{1/2}$ are masked when either of the $i,k+1$ or $i+1,k+1$ tracer points is masked, \ie\ the $i,k+1$ $u$-point is masked. The namelist parameter \np{ln\_botmix\_triad} has no effect on the eddy-induced skew-fluxes. The namelist parameter \np{ln_botmix_triad}{ln\_botmix\_triad} has no effect on the eddy-induced skew-fluxes. \subsection{Limiting of the slopes within the interior} This is option (c) of \autoref{fig:LDF_eiv_slp}. This linear tapering for the slopes used to calculate the eddy-induced fluxes is unaffected by the value of \np{ln\_triad\_iso}. the value of \np{ln_triad_iso}{ln\_triad\_iso}. The justification for this linear slope tapering is that, for $A_e$ that is constant or varies only in \label{sec:TRIADS_sfdiag} Where the namelist parameter \np{ln\_traldf\_gdia}\forcode{ = .true.}, Where the namelist parameter \np{ln_traldf_gdia}{ln\_traldf\_gdia}\forcode{ = .true.}, diagnosed mean eddy-induced velocities are output. Each time step, streamfunctions are calculated in the $i$-$k$ and $j$-$k$ planes at
• ## NEMO/trunk/doc/latex/NEMO/subfiles/chap_ASM.tex

 r11567 These are read into the model from a NetCDF file which may be produced by separate data assimilation code. The code can also output model background fields which are used as an input to data assimilation code. This is all controlled by the namelist \nam{\_asminc}. This is all controlled by the namelist \nam{_asminc}{\_asminc}. There is a brief description of all the namelist options provided. To build the ASM code \key{asminc} must be set. Direct initialization (DI) refers to the instantaneous correction of the model background state using the analysis increment. DI is used when \np{ln\_asmdin} is set to true. DI is used when \np{ln_asmdin}{ln\_asmdin} is set to true. \section{Incremental analysis updates} This technique is referred to as Incremental Analysis Updates (IAU) \citep{bloom.takacs.ea_MWR96}. IAU is a common technique used with 3D assimilation methods such as 3D-Var or OI. IAU is used when \np{ln\_asmiau} is set to true. IAU is used when \np{ln_asmiau}{ln\_asmiau} is set to true. With IAU, the model state trajectory ${\mathbf x}$ in the assimilation window ($t_{0} \leq t_{i} \leq t_{N}$) \citep{talagrand_JAS72, dobricic.pinardi.ea_OS07}. Diffusion coefficients are defined as $A_D = \alpha e_{1t} e_{2t}$, where $\alpha = 0.2$. The divergence damping is activated by assigning to \np{nn\_divdmp} in the \nam{\_asminc} namelist The divergence damping is activated by assigning to \np{nn_divdmp}{nn\_divdmp} in the \nam{_asminc}{\_asminc} namelist a value greater than zero. This specifies the number of iterations of the divergence damping. Setting a value of the order of 100 will result in a significant reduction in the vertical velocity induced by the increments. \label{sec:ASM_details} Here we show an example \nam{\_asminc} namelist and the header of an example assimilation increments file on Here we show an example \nam{_asminc}{\_asminc} namelist and the header of an example assimilation increments file on the ORCA2 grid.

• ## NEMO/trunk/doc/latex/NEMO/subfiles/chap_ZDF.tex

 r11571 At the surface they are prescribed from the surface forcing (see \autoref{chap:SBC}), while at the bottom they are set to zero for heat and salt, unless a geothermal flux forcing is prescribed as a bottom boundary condition (\ie\ \np{ln\_trabbc} defined, unless a geothermal flux forcing is prescribed as a bottom boundary condition (\ie\ \np{ln_trabbc}{ln\_trabbc} defined, see \autoref{subsec:TRA_bbc}), and specified through a bottom friction parameterisation for momentum (see \autoref{sec:ZDF_drg}). are computed and added to the general trend in the \mdl{dynzdf} and \mdl{trazdf} modules, respectively. %These trends can be computed using either a forward time stepping scheme %(namelist parameter \np{ln\_zdfexp}\forcode{=.true.}) or a backward time stepping scheme %(\np{ln\_zdfexp}\forcode{=.false.}) depending on the magnitude of the mixing coefficients, %(namelist parameter \np{ln_zdfexp}{ln\_zdfexp}\forcode{=.true.}) or a backward time stepping scheme %(\np{ln_zdfexp}{ln\_zdfexp}\forcode{=.false.}) depending on the magnitude of the mixing coefficients, %and thus of the formulation used (see \autoref{chap:TD}). %        Constant % ------------------------------------------------------------------------------------------------------------- \subsection[Constant (\forcode{ln_zdfcst})]{Constant (\protect\np{ln\_zdfcst})} \subsection[Constant (\forcode{ln_zdfcst})]{Constant (\protect\np{ln_zdfcst}{ln\_zdfcst})} \label{subsec:ZDF_cst} Options are defined through the \nam{zdf} namelist variables. When \np{ln\_zdfcst} is defined, the momentum and tracer vertical eddy coefficients are set to When \np{ln_zdfcst}{ln\_zdfcst} is defined, the momentum and tracer vertical eddy coefficients are set to constant values over the whole ocean. This is the crudest way to define the vertical ocean physics. \end{align*} These values are set through the \np{rn\_avm0} and \np{rn\_avt0} namelist parameters. These values are set through the \np{rn_avm0}{rn\_avm0} and \np{rn_avt0}{rn\_avt0} namelist parameters. In all cases, do not use values smaller that those associated with the molecular viscosity and diffusivity, that is $\sim10^{-6}~m^2.s^{-1}$ for momentum, $\sim10^{-7}~m^2.s^{-1}$ for temperature and %        Richardson Number Dependent % ------------------------------------------------------------------------------------------------------------- \subsection[Richardson number dependent (\forcode{ln_zdfric})]{Richardson number dependent (\protect\np{ln\_zdfric})} \subsection[Richardson number dependent (\forcode{ln_zdfric})]{Richardson number dependent (\protect\np{ln_zdfric}{ln\_zdfric})} \label{subsec:ZDF_ric} %-------------------------------------------------------------------------------------------------------------- When \np{ln\_zdfric}\forcode{=.true.}, a local Richardson number dependent formulation for the vertical momentum and tracer eddy coefficients is set through the \nam{zdf\_ric} namelist variables. When \np{ln_zdfric}{ln\_zdfric}\forcode{=.true.}, a local Richardson number dependent formulation for the vertical momentum and tracer eddy coefficients is set through the \nam{zdf_ric}{zdf\_ric} namelist variables. The vertical mixing coefficients are diagnosed from the large scale variables computed by the model. \textit{In situ} measurements have been used to link vertical turbulent activity to large scale ocean structures. (see \autoref{subsec:ZDF_cst}), and $A_{ric}^{vT} = 10^{-4}~m^2.s^{-1}$ is the maximum value that can be reached by the coefficient when $Ri\leq 0$, $a=5$ and $n=2$. The last three values can be modified by setting the \np{rn\_avmri}, \np{rn\_alp} and \np{nn\_ric} namelist parameters, respectively. The last three values can be modified by setting the \np{rn_avmri}{rn\_avmri}, \np{rn_alp}{rn\_alp} and \np{nn_ric}{nn\_ric} namelist parameters, respectively. A simple mixing-layer model to transfer and dissipate the atmospheric forcings (wind-stress and buoyancy fluxes) can be activated setting the \np{ln\_mldw}\forcode{=.true.} in the namelist. (wind-stress and buoyancy fluxes) can be activated setting the \np{ln_mldw}{ln\_mldw}\forcode{=.true.} in the namelist. In this case, the local depth of turbulent wind-mixing or "Ekman depth" $h_{e}(x,y,t)$ is evaluated and \] is computed from the wind stress vector $|\tau|$ and the reference density $\rho_o$. The final $h_{e}$ is further constrained by the adjustable bounds \np{rn\_mldmin} and \np{rn\_mldmax}. The final $h_{e}$ is further constrained by the adjustable bounds \np{rn_mldmin}{rn\_mldmin} and \np{rn_mldmax}{rn\_mldmax}. Once $h_{e}$ is computed, the vertical eddy coefficients within $h_{e}$ are set to the empirical values \np{rn\_wtmix} and \np{rn\_wvmix} \citep{lermusiaux_JMS01}. the empirical values \np{rn_wtmix}{rn\_wtmix} and \np{rn_wvmix}{rn\_wvmix} \citep{lermusiaux_JMS01}. % ------------------------------------------------------------------------------------------------------------- %        TKE Turbulent Closure Scheme % ------------------------------------------------------------------------------------------------------------- \subsection[TKE turbulent closure scheme (\forcode{ln_zdftke})]{TKE turbulent closure scheme (\protect\np{ln\_zdftke})} \subsection[TKE turbulent closure scheme (\forcode{ln_zdftke})]{TKE turbulent closure scheme (\protect\np{ln_zdftke}{ln\_zdftke})} \label{subsec:ZDF_tke} %--------------------------------------------namzdf_tke-------------------------------------------------- The constants $C_k = 0.1$ and $C_\epsilon = \sqrt {2} /2$ $\approx 0.7$ are designed to deal with vertical mixing at any depth \citep{gaspar.gregoris.ea_JGR90}. They are set through namelist parameters \np{nn\_ediff} and \np{nn\_ediss}. They are set through namelist parameters \np{nn_ediff}{nn\_ediff} and \np{nn_ediss}{nn\_ediss}. $P_{rt}$ can be set to unity or, following \citet{blanke.delecluse_JPO93}, be a function of the local Richardson number, $R_i$: \begin{align*} \end{cases} \end{align*} The choice of $P_{rt}$ is controlled by the \np{nn\_pdl} namelist variable. The choice of $P_{rt}$ is controlled by the \np{nn_pdl}{nn\_pdl} namelist variable. At the sea surface, the value of $\bar{e}$ is prescribed from the wind stress field as $\bar{e}_o = e_{bb} |\tau| / \rho_o$, with $e_{bb}$ the \np{rn\_ebb} namelist parameter. $\bar{e}_o = e_{bb} |\tau| / \rho_o$, with $e_{bb}$ the \np{rn_ebb}{rn\_ebb} namelist parameter. The default value of $e_{bb}$ is 3.75. \citep{gaspar.gregoris.ea_JGR90}), however a much larger value can be used when taking into account the surface wave breaking (see below Eq. \autoref{eq:ZDF_Esbc}). The time integration of the $\bar{e}$ equation may formally lead to negative values because the numerical scheme does not ensure its positivity. To overcome this problem, a cut-off in the minimum value of $\bar{e}$ is used (\np{rn\_emin} namelist parameter). To overcome this problem, a cut-off in the minimum value of $\bar{e}$ is used (\np{rn_emin}{rn\_emin} namelist parameter). Following \citet{gaspar.gregoris.ea_JGR90}, the cut-off value is set to $\sqrt{2}/2~10^{-6}~m^2.s^{-2}$. This allows the subsequent formulations to match that of \citet{gargett_JMR84} for the diffusion in In addition, a cut-off is applied on $K_m$ and $K_\rho$ to avoid numerical instabilities associated with too weak vertical diffusion. They must be specified at least larger than the molecular values, and are set through \np{rn\_avm0} and \np{rn\_avt0} (\nam{zdf} namelist, see \autoref{subsec:ZDF_cst}). They must be specified at least larger than the molecular values, and are set through \np{rn_avm0}{rn\_avm0} and \np{rn_avt0}{rn\_avt0} (\nam{zdf} namelist, see \autoref{subsec:ZDF_cst}). \subsubsection{Turbulent length scale} For computational efficiency, the original formulation of the turbulent length scales proposed by \citet{gaspar.gregoris.ea_JGR90} has been simplified. Four formulations are proposed, the choice of which is controlled by the \np{nn\_mxl} namelist parameter. Four formulations are proposed, the choice of which is controlled by the \np{nn_mxl}{nn\_mxl} namelist parameter. The first two are based on the following first order approximation \citep{blanke.delecluse_JPO93}: which is valid in a stable stratified region with constant values of the Brunt-Vais\"{a}l\"{a} frequency. The resulting length scale is bounded by the distance to the surface or to the bottom (\np{nn\_mxl}\forcode{=0}) or by the local vertical scale factor (\np{nn\_mxl}\forcode{=1}). (\np{nn_mxl}{nn\_mxl}\forcode{=0}) or by the local vertical scale factor (\np{nn\_mxl}\forcode{=1}). \citet{blanke.delecluse_JPO93} notice that this simplification has two major drawbacks: it makes no sense for locally unstable stratification and the computation no longer uses all the information contained in the vertical density profile. To overcome these drawbacks, \citet{madec.delecluse.ea_NPM98} introduces the \np{nn\_mxl}\forcode{=2, 3} cases, To overcome these drawbacks, \citet{madec.delecluse.ea_NPM98} introduces the \np{nn_mxl}{nn\_mxl}\forcode{=2, 3} cases, which add an extra assumption concerning the vertical gradient of the computed length scale. So, the length scales are first evaluated as in \autoref{eq:ZDF_tke_mxl0_1} and then bounded such that: where $l^{(k)}$ is computed using \autoref{eq:ZDF_tke_mxl0_1}, \ie\ $l^{(k)} = \sqrt {2 {\bar e}^{(k)} / {N^2}^{(k)} }$. In the \np{nn\_mxl}\forcode{=2} case, the dissipation and mixing length scales take the same value: $l_k= l_\epsilon = \min \left(\ l_{up} \;,\; l_{dwn}\ \right)$, while in the \np{nn\_mxl}\forcode{=3} case, In the \np{nn_mxl}{nn\_mxl}\forcode{=2} case, the dissipation and mixing length scales take the same value: $l_k= l_\epsilon = \min \left(\ l_{up} \;,\; l_{dwn}\ \right)$, while in the \np{nn_mxl}{nn\_mxl}\forcode{=3} case, the dissipation and mixing turbulent length scales are give as in \citet{gaspar.gregoris.ea_JGR90}:  At the ocean surface, a non zero length scale is set through the  \np{rn\_mxl0} namelist parameter. At the ocean surface, a non zero length scale is set through the  \np{rn_mxl0}{rn\_mxl0} namelist parameter. Usually the surface scale is given by $l_o = \kappa \,z_o$ where $\kappa = 0.4$ is von Karman's constant and $z_o$ the roughness parameter of the surface. Assuming $z_o=0.1$~m \citep{craig.banner_JPO94} leads to a 0.04~m, the default value of \np{rn\_mxl0}. Assuming $z_o=0.1$~m \citep{craig.banner_JPO94} leads to a 0.04~m, the default value of \np{rn_mxl0}{rn\_mxl0}. In the ocean interior a minimum length scale is set to recover the molecular viscosity when $\bar{e}$ reach its minimum value ($1.10^{-6}= C_k\, l_{min} \,\sqrt{\bar{e}_{min}}$ ). $\alpha_{CB} = 100$ the Craig and Banner's value. As the surface boundary condition on TKE is prescribed through $\bar{e}_o = e_{bb} |\tau| / \rho_o$, with $e_{bb}$ the \np{rn\_ebb} namelist parameter, setting \np{rn\_ebb}\forcode{ = 67.83} corresponds with $e_{bb}$ the \np{rn_ebb}{rn\_ebb} namelist parameter, setting \np{rn\_ebb}\forcode{ = 67.83} corresponds to $\alpha_{CB} = 100$. Further setting  \np{ln\_mxl0}\forcode{ =.true.},  applies \autoref{eq:ZDF_Lsbc} as the surface boundary condition on the length scale, Further setting  \np{ln_mxl0}{ln\_mxl0}\forcode{ =.true.},  applies \autoref{eq:ZDF_Lsbc} as the surface boundary condition on the length scale, with $\beta$ hard coded to the Stacey's value. Note that a minimal threshold of \np{rn\_emin0}$=10^{-4}~m^2.s^{-2}$ (namelist parameters) is applied on the Note that a minimal threshold of \np{rn_emin0}{rn\_emin0}$=10^{-4}~m^2.s^{-2}$ (namelist parameters) is applied on the surface $\bar{e}$ value. The parameterization, tuned against large-eddy simulation, includes the whole effect of LC in an extra source term of TKE, $P_{LC}$. The presence of $P_{LC}$ in \autoref{eq:ZDF_tke_e}, the TKE equation, is controlled by setting \np{ln\_lc} to \forcode{.true.} in the \nam{zdf\_tke} namelist. The presence of $P_{LC}$ in \autoref{eq:ZDF_tke_e}, the TKE equation, is controlled by setting \np{ln_lc}{ln\_lc} to \forcode{.true.} in the \nam{zdf_tke}{zdf\_tke} namelist. By making an analogy with the characteristic convective velocity scale (\eg, \citet{dalessio.abdella.ea_JPO98}), where $c_{LC} = 0.15$ has been chosen by \citep{axell_JGR02} as a good compromise to fit LES data. The chosen value yields maximum vertical velocities $w_{LC}$ of the order of a few centimeters per second. The value of $c_{LC}$ is set through the \np{rn\_lc} namelist parameter, The value of $c_{LC}$ is set through the \np{rn_lc}{rn\_lc} namelist parameter, having in mind that it should stay between 0.15 and 0.54 \citep{axell_JGR02}. (\ie\ near-inertial oscillations and ocean swells and waves). When using this parameterization (\ie\ when \np{nn\_etau}\forcode{=1}), When using this parameterization (\ie\ when \np{nn_etau}{nn\_etau}\forcode{=1}), the TKE input to the ocean ($S$) imposed by the winds in the form of near-inertial oscillations, swell and waves is parameterized by \autoref{eq:ZDF_Esbc} the standard TKE surface boundary condition, the penetration, and $f_i$ is the ice concentration (no penetration if $f_i=1$, \ie\ if the ocean is entirely covered by sea-ice). The value of $f_r$, usually a few percents, is specified through \np{rn\_efr} namelist parameter. The vertical mixing length scale, $h_\tau$, can be set as a 10~m uniform value (\np{nn\_etau}\forcode{=0}) or The value of $f_r$, usually a few percents, is specified through \np{rn_efr}{rn\_efr} namelist parameter. The vertical mixing length scale, $h_\tau$, can be set as a 10~m uniform value (\np{nn_etau}{nn\_etau}\forcode{=0}) or a latitude dependent value (varying from 0.5~m at the Equator to a maximum value of 30~m at high latitudes (\np{nn\_etau}\forcode{=1}). Note that two other option exist, \np{nn\_etau}\forcode{=2, 3}. (\np{nn_etau}{nn\_etau}\forcode{=1}). Note that two other option exist, \np{nn_etau}{nn\_etau}\forcode{=2, 3}. They correspond to applying \autoref{eq:ZDF_Ehtau} only at the base of the mixed layer, or to using the high frequency part of the stress to evaluate the fraction of TKE that penetrates the ocean. % This should be explain better below what this rn_eice parameter is meant for: In presence of Sea Ice, the value of this mixing can be modulated by the \np{rn\_eice} namelist parameter. In presence of Sea Ice, the value of this mixing can be modulated by the \np{rn_eice}{rn\_eice} namelist parameter. This parameter varies from \forcode{0} for no effect to \forcode{4} to suppress the TKE input into the ocean when Sea Ice concentration is greater than 25\%. %        GLS Generic Length Scale Scheme % ------------------------------------------------------------------------------------------------------------- \subsection[GLS: Generic Length Scale (\forcode{ln_zdfgls})]{GLS: Generic Length Scale (\protect\np{ln\_zdfgls})} \subsection[GLS: Generic Length Scale (\forcode{ln_zdfgls})]{GLS: Generic Length Scale (\protect\np{ln_zdfgls}{ln\_zdfgls})} \label{subsec:ZDF_gls} the choice of the turbulence model. Four different turbulent models are pre-defined (\autoref{tab:ZDF_GLS}). They are made available through the \np{nn\_clo} namelist parameter. They are made available through the \np{nn_clo}{nn\_clo} namelist parameter. %--------------------------------------------------TABLE-------------------------------------------------- \hline \hline \np{nn\_clo}     & \textbf{0} &   \textbf{1}  &   \textbf{2}   &    \textbf{3}   \\ \np{nn_clo}{nn\_clo}     & \textbf{0} &   \textbf{1}  &   \textbf{2}   &    \textbf{3}   \\ \hline $( p , n , m )$         &   ( 0 , 1 , 1 )   & ( 3 , 1.5 , -1 )   & ( -1 , 0.5 , -1 )    &  ( 2 , 1 , -0.67 )  \\ \caption[Set of predefined GLS parameters or equivalently predefined turbulence models available]{ Set of predefined GLS parameters, or equivalently predefined turbulence models available with \protect\np{ln\_zdfgls}\forcode{=.true.} and controlled by the \protect\np{nn\_clos} namelist variable in \protect\nam{zdf\_gls}.} \protect\np{ln_zdfgls}{ln\_zdfgls}\forcode{=.true.} and controlled by the \protect\np{nn_clos}{nn\_clos} namelist variable in \protect\nam{zdf_gls}{zdf\_gls}.} \label{tab:ZDF_GLS} \end{table} $C_{\mu}$ and $C_{\mu'}$ are calculated from stability function proposed by \citet{galperin.kantha.ea_JAS88}, or by \citet{kantha.clayson_JGR94} or one of the two functions suggested by \citet{canuto.howard.ea_JPO01} (\np{nn\_stab\_func}\forcode{=0, 3}, resp.). (\np{nn_stab_func}{nn\_stab\_func}\forcode{=0, 3}, resp.). The value of $C_{0\mu}$ depends on the choice of the stability function. The surface and bottom boundary condition on both $\bar{e}$ and $\psi$ can be calculated thanks to Dirichlet or Neumann condition through \np{nn\_bc\_surf} and \np{nn\_bc\_bot}, resp. Neumann condition through \np{nn_bc_surf}{nn\_bc\_surf} and \np{nn_bc_bot}{nn\_bc\_bot}, resp. As for TKE closure, the wave effect on the mixing is considered when \np{rn\_crban}\forcode{ > 0.} \citep{craig.banner_JPO94, mellor.blumberg_JPO04}. The \np{rn\_crban} namelist parameter is $\alpha_{CB}$ in \autoref{eq:ZDF_Esbc} and \np{rn\_charn} provides the value of $\beta$ in \autoref{eq:ZDF_Lsbc}. \np{rn_crban}{rn\_crban}\forcode{ > 0.} \citep{craig.banner_JPO94, mellor.blumberg_JPO04}. The \np{rn_crban}{rn\_crban} namelist parameter is $\alpha_{CB}$ in \autoref{eq:ZDF_Esbc} and \np{rn_charn}{rn\_charn} provides the value of $\beta$ in \autoref{eq:ZDF_Lsbc}. The $\psi$ equation is known to fail in stably stratified flows, and for this reason the entrainment depth predicted in stably stratified situations, and that its value has to be chosen in accordance with the algebraic model for the turbulent fluxes. The clipping is only activated if \np{ln\_length\_lim}\forcode{=.true.}, and the $c_{lim}$ is set to the \np{rn\_clim\_galp} value. The clipping is only activated if \np{ln_length_lim}{ln\_length\_lim}\forcode{=.true.}, and the $c_{lim}$ is set to the \np{rn_clim_galp}{rn\_clim\_galp} value. The time and space discretization of the GLS equations follows the same energetic consideration as for %        OSM OSMOSIS BL Scheme % ------------------------------------------------------------------------------------------------------------- \subsection[OSM: OSMosis boundary layer scheme (\forcode{ln_zdfosm})]{OSM: OSMosis boundary layer scheme (\protect\np{ln\_zdfosm})} \subsection[OSM: OSMosis boundary layer scheme (\forcode{ln_zdfosm})]{OSM: OSMosis boundary layer scheme (\protect\np{ln_zdfosm}{ln\_zdfosm})} \label{subsec:ZDF_osm} %--------------------------------------------namzdf_osm--------------------------------------------------------- %       Non-Penetrative Convective Adjustment % ------------------------------------------------------------------------------------------------------------- \subsection[Non-penetrative convective adjustment (\forcode{ln_tranpc})]{Non-penetrative convective adjustment (\protect\np{ln\_tranpc})} \subsection[Non-penetrative convective adjustment (\forcode{ln_tranpc})]{Non-penetrative convective adjustment (\protect\np{ln_tranpc}{ln\_tranpc})} \label{subsec:ZDF_npc} Options are defined through the \nam{zdf} namelist variables. The non-penetrative convective adjustment is used when \np{ln\_zdfnpc}\forcode{=.true.}. It is applied at each \np{nn\_npc} time step and mixes downwards instantaneously the statically unstable portion of The non-penetrative convective adjustment is used when \np{ln_zdfnpc}{ln\_zdfnpc}\forcode{=.true.}. It is applied at each \np{nn_npc}{nn\_npc} time step and mixes downwards instantaneously the statically unstable portion of the water column, but only until the density structure becomes neutrally stable (\ie\ until the mixed portion of the water column has \textit{exactly} the density of the water just below) %       Enhanced Vertical Diffusion % ------------------------------------------------------------------------------------------------------------- \subsection[Enhanced vertical diffusion (\forcode{ln_zdfevd})]{Enhanced vertical diffusion (\protect\np{ln\_zdfevd})} \subsection[Enhanced vertical diffusion (\forcode{ln_zdfevd})]{Enhanced vertical diffusion (\protect\np{ln_zdfevd}{ln\_zdfevd})} \label{subsec:ZDF_evd} Options are defined through the  \nam{zdf} namelist variables. The enhanced vertical diffusion parameterisation is used when \np{ln\_zdfevd}\forcode{=.true.}. The enhanced vertical diffusion parameterisation is used when \np{ln_zdfevd}{ln\_zdfevd}\forcode{=.true.}. In this case, the vertical eddy mixing coefficients are assigned very large values in regions where the stratification is unstable (\ie\ when $N^2$ the Brunt-Vais\"{a}l\"{a} frequency is negative) \citep{lazar_phd97, lazar.madec.ea_JPO99}. This is done either on tracers only (\np{nn\_evdm}\forcode{=0}) or on both momentum and tracers (\np{nn\_evdm}\forcode{=1}). In practice, where $N^2\leq 10^{-12}$, $A_T^{vT}$ and $A_T^{vS}$, and if \np{nn\_evdm}\forcode{=1}, This is done either on tracers only (\np{nn_evdm}{nn\_evdm}\forcode{=0}) or on both momentum and tracers (\np{nn_evdm}{nn\_evdm}\forcode{=1}). In practice, where $N^2\leq 10^{-12}$, $A_T^{vT}$ and $A_T^{vS}$, and if \np{nn_evdm}{nn\_evdm}\forcode{=1}, the four neighbouring $A_u^{vm} \;\mbox{and}\;A_v^{vm}$ values also, are set equal to the namelist parameter \np{rn\_avevd}. the namelist parameter \np{rn_avevd}{rn\_avevd}. A typical value for $rn\_avevd$ is between 1 and $100~m^2.s^{-1}$. This parameterisation of convective processes is less time consuming than The turbulent closure schemes presented in \autoref{subsec:ZDF_tke}, \autoref{subsec:ZDF_gls} and \autoref{subsec:ZDF_osm} (\ie\ \np{ln\_zdftke} or \np{ln\_zdfgls} or \np{ln\_zdfosm} defined) deal, in theory, \autoref{subsec:ZDF_osm} (\ie\ \np{ln_zdftke}{ln\_zdftke} or \np{ln_zdfgls}{ln\_zdfgls} or \np{ln_zdfosm}{ln\_zdfosm} defined) deal, in theory, with statically unstable density profiles. In such a case, the term corresponding to the destruction of turbulent kinetic energy through stratification in because the mixing length scale is bounded by the distance to the sea surface. It can thus be useful to combine the enhanced vertical diffusion with the turbulent closure scheme, \ie\ setting the \np{ln\_zdfnpc} namelist parameter to true and defining the turbulent closure (\np{ln\_zdftke} or \np{ln\_zdfgls} = \forcode{.true.}) all together. \ie\ setting the \np{ln_zdfnpc}{ln\_zdfnpc} namelist parameter to true and defining the turbulent closure (\np{ln_zdftke}{ln\_zdftke} or \np{ln_zdfgls}{ln\_zdfgls} = \forcode{.true.}) all together. The OSMOSIS turbulent closure scheme already includes enhanced vertical diffusion in the case of convection, %as governed by the variables $bvsqcon$ and $difcon$ found in \mdl{zdfkpp}, therefore \np{ln\_zdfevd}\forcode{=.false.} should be used with the OSMOSIS scheme. therefore \np{ln_zdfevd}{ln\_zdfevd}\forcode{=.false.} should be used with the OSMOSIS scheme. % gm%  + one word on non local flux with KPP scheme trakpp.F90 module... % Double Diffusion Mixing % ================================================================ \section[Double diffusion mixing (\forcode{ln_zdfddm})]{Double diffusion mixing (\protect\np{ln\_zdfddm})} \section[Double diffusion mixing (\forcode{ln_zdfddm})]{Double diffusion mixing (\protect\np{ln_zdfddm}{ln\_zdfddm})} \label{subsec:ZDF_ddm} This parameterisation has been introduced in \mdl{zdfddm} module and is controlled by the namelist parameter \np{ln\_zdfddm} in \nam{zdf}. \np{ln_zdfddm}{ln\_zdfddm} in \nam{zdf}. Double diffusion occurs when relatively warm, salty water overlies cooler, fresher water, or vice versa. The former condition leads to salt fingering and the latter to diffusive convection. %       Linear Bottom Friction % ------------------------------------------------------------------------------------------------------------- \subsection[Linear top/bottom friction (\forcode{ln_lin})]{Linear top/bottom friction (\protect\np{ln\_lin})} \subsection[Linear top/bottom friction (\forcode{ln_lin})]{Linear top/bottom friction (\protect\np{ln_lin}{ln\_lin})} \label{subsec:ZDF_drg_linear} and assuming an ocean depth $H = 4000$~m, the resulting friction coefficient is $r = 4\;10^{-4}$~m\;s$^{-1}$. This is the default value used in \NEMO. It corresponds to a decay time scale of 115~days. It can be changed by specifying \np{rn\_Uc0} (namelist parameter). It can be changed by specifying \np{rn_Uc0}{rn\_Uc0} (namelist parameter). For the linear friction case the drag coefficient used in the general expression \autoref{eq:ZDF_bfr_bdef} is: c_b^T = - r \] When \np{ln\_lin} \forcode{= .true.}, the value of $r$ used is \np{rn\_Uc0}*\np{rn\_Cd0}. Setting \np{ln\_OFF} \forcode{= .true.} (and \forcode{ln_lin=.true.}) is equivalent to setting $r=0$ and leads to a free-slip boundary condition. When \np{ln_lin}{ln\_lin} \forcode{= .true.}, the value of $r$ used is \np{rn_Uc0}{rn\_Uc0}*\np{rn_Cd0}{rn\_Cd0}. Setting \np{ln_OFF}{ln\_OFF} \forcode{= .true.} (and \forcode{ln_lin=.true.}) is equivalent to setting $r=0$ and leads to a free-slip boundary condition. These values are assigned in \mdl{zdfdrg}. Note that there is support for local enhancement of these values via an externally defined 2D mask array (\np{ln\_boost}\forcode{=.true.}) given in the \ifile{bfr\_coef} input NetCDF file. (\np{ln_boost}{ln\_boost}\forcode{=.true.}) given in the \ifile{bfr\_coef} input NetCDF file. The mask values should vary from 0 to 1. Locations with a non-zero mask value will have the friction coefficient increased by $mask\_value$ * \np{rn\_boost} * \np{rn\_Cd0}. $mask\_value$ * \np{rn_boost}{rn\_boost} * \np{rn_Cd0}{rn\_Cd0}. % ------------------------------------------------------------------------------------------------------------- %       Non-Linear Bottom Friction % ------------------------------------------------------------------------------------------------------------- \subsection[Non-linear top/bottom friction (\forcode{ln_non_lin})]{Non-linear top/bottom friction (\protect\np{ln\_non\_lin})} \subsection[Non-linear top/bottom friction (\forcode{ln_non_lin})]{Non-linear top/bottom friction (\protect\np{ln_non_lin}{ln\_non\_lin})} \label{subsec:ZDF_drg_nonlinear} $e_b = 2.5\;10^{-3}$m$^2$\;s$^{-2}$, while the FRAM experiment \citep{killworth_JPO92} uses $C_D = 1.4\;10^{-3}$ and $e_b =2.5\;\;10^{-3}$m$^2$\;s$^{-2}$. The CME choices have been set as default values (\np{rn\_Cd0} and \np{rn\_ke0} namelist parameters). The CME choices have been set as default values (\np{rn_Cd0}{rn\_Cd0} and \np{rn_ke0}{rn\_ke0} namelist parameters). As for the linear case, the friction is imposed in the code by adding the trend due to The coefficients that control the strength of the non-linear friction are initialised as namelist parameters: $C_D$= \np{rn\_Cd0}, and $e_b$ =\np{rn\_bfeb2}. Note that for applications which consider tides explicitly, a low or even zero value of \np{rn\_bfeb2} is recommended. A local enhancement of $C_D$ is again possible via an externally defined 2D mask array (\np{ln\_boost}\forcode{=.true.}). $C_D$= \np{rn_Cd0}{rn\_Cd0}, and $e_b$ =\np{rn_bfeb2}{rn\_bfeb2}. Note that for applications which consider tides explicitly, a low or even zero value of \np{rn_bfeb2}{rn\_bfeb2} is recommended. A local enhancement of $C_D$ is again possible via an externally defined 2D mask array (\np{ln_boost}{ln\_boost}\forcode{=.true.}). This works in the same way as for the linear friction case with non-zero masked locations increased by $mask\_value$ * \np{rn\_boost} * \np{rn\_Cd0}. $mask\_value$ * \np{rn_boost}{rn\_boost} * \np{rn_Cd0}{rn\_Cd0}. % ------------------------------------------------------------------------------------------------------------- %       Bottom Friction Log-layer % ------------------------------------------------------------------------------------------------------------- \subsection[Log-layer top/bottom friction (\forcode{ln_loglayer})]{Log-layer top/bottom friction (\protect\np{ln\_loglayer})} \subsection[Log-layer top/bottom friction (\forcode{ln_loglayer})]{Log-layer top/bottom friction (\protect\np{ln_loglayer}{ln\_loglayer})} \label{subsec:ZDF_drg_loglayer} In the non-linear friction case, the drag coefficient, $C_D$, can be optionally enhanced using a "law of the wall" scaling. This assumes that the model vertical resolution can capture the logarithmic layer which typically occur for layers thinner than 1 m or so. If  \np{ln\_loglayer} \forcode{= .true.}, $C_D$ is no longer constant but is related to the distance to the wall (or equivalently to the half of the top/bottom layer thickness): If  \np{ln_loglayer}{ln\_loglayer} \forcode{= .true.}, $C_D$ is no longer constant but is related to the distance to the wall (or equivalently to the half of the top/bottom layer thickness): $C_D = \left ( {\kappa \over {\mathrm log}\left ( 0.5 \; e_{3b} / rn\_{z0} \right ) } \right )^2$ \noindent where $\kappa$ is the von-Karman constant and \np{rn\_z0} is a roughness length provided via the namelist. \noindent where $\kappa$ is the von-Karman constant and \np{rn_z0}{rn\_z0} is a roughness length provided via the namelist. The drag coefficient is bounded such that it is kept greater or equal to the base \np{rn\_Cd0} value which occurs where layer thicknesses become large and presumably logarithmic layers are not resolved at all. For stability reason, it is also not allowed to exceed the value of an additional namelist parameter: \np{rn\_Cdmax}, \ie the base \np{rn_Cd0}{rn\_Cd0} value which occurs where layer thicknesses become large and presumably logarithmic layers are not resolved at all. For stability reason, it is also not allowed to exceed the value of an additional namelist parameter: \np{rn_Cdmax}{rn\_Cdmax}, \ie $rn\_Cd0 \leq C_D \leq rn\_Cdmax \noindent The log-layer enhancement can also be applied to the top boundary friction if under ice-shelf cavities are activated (\np{ln\_isfcav}\forcode{=.true.}). %In this case, the relevant namelist parameters are \np{rn\_tfrz0}, \np{rn\_tfri2} and \np{rn\_tfri2\_max}. under ice-shelf cavities are activated (\np{ln_isfcav}{ln\_isfcav}\forcode{=.true.}). %In this case, the relevant namelist parameters are \np{rn_tfrz0}{rn\_tfrz0}, \np{rn_tfri2}{rn\_tfri2} and \np{rn_tfri2_max}{rn\_tfri2\_max}. % ------------------------------------------------------------------------------------------------------------- % Explicit bottom Friction % ------------------------------------------------------------------------------------------------------------- \subsection[Explicit top/bottom friction (\forcode{ln_drgimp=.false.})]{Explicit top/bottom friction (\protect\np{ln\_drgimp}\forcode{=.false.})} \subsection[Explicit top/bottom friction (\forcode{ln_drgimp=.false.})]{Explicit top/bottom friction (\protect\np{ln_drgimp}{ln\_drgimp}\forcode{=.false.})} \label{subsec:ZDF_drg_stability} Setting \np{ln\_drgimp} \forcode{= .false.} means that bottom friction is treated explicitly in time, which has the advantage of simplifying the interaction with the split-explicit free surface (see \autoref{subsec:ZDF_drg_ts}). The latter does indeed require the knowledge of bottom stresses in the course of the barotropic sub-iteration, which becomes less straightforward in the implicit case. In the explicit case, top/bottom stresses can be computed using \textit{before} velocities and inserted in the overall momentum tendency budget. This reads: Setting \np{ln_drgimp}{ln\_drgimp} \forcode{= .false.} means that bottom friction is treated explicitly in time, which has the advantage of simplifying the interaction with the split-explicit free surface (see \autoref{subsec:ZDF_drg_ts}). The latter does indeed require the knowledge of bottom stresses in the course of the barotropic sub-iteration, which becomes less straightforward in the implicit case. In the explicit case, top/bottom stresses can be computed using \textit{before} velocities and inserted in the overall momentum tendency budget. This reads: At the top (below an ice shelf cavity): % Implicit Bottom Friction % ------------------------------------------------------------------------------------------------------------- \subsection[Implicit top/bottom friction (\forcode{ln_drgimp=.true.})]{Implicit top/bottom friction (\protect\np{ln\_drgimp}\forcode{=.true.})} \subsection[Implicit top/bottom friction (\forcode{ln_drgimp=.true.})]{Implicit top/bottom friction (\protect\np{ln_drgimp}{ln\_drgimp}\forcode{=.true.})} \label{subsec:ZDF_drg_imp} An optional implicit form of bottom friction has been implemented to improve model stability. We recommend this option for shelf sea and coastal ocean applications. %, especially for split-explicit time splitting. This option can be invoked by setting \np{ln\_drgimp} to \forcode{.true.} in the \nam{drg} namelist. %This option requires \np{ln\_zdfexp} to be \forcode{.false.} in the \nam{zdf} namelist. This option can be invoked by setting \np{ln_drgimp}{ln\_drgimp} to \forcode{.true.} in the \nam{drg} namelist. %This option requires \np{ln_zdfexp}{ln\_zdfexp} to be \forcode{.false.} in the \nam{zdf} namelist. This implementation is performed in \mdl{dynzdf} where the following boundary conditions are set while solving the fully implicit diffusion step: \label{subsec:ZDF_drg_ts} With split-explicit free surface, the sub-stepping of barotropic equations needs the knowledge of top/bottom stresses. An obvious way to satisfy this is to take them as constant over the course of the barotropic integration and equal to the value used to update the baroclinic momentum trend. Provided \np{ln\_drgimp}\forcode{= .false.} and a centred or \textit{leap-frog} like integration of barotropic equations is used (\ie\ \forcode{ln_bt_fw=.false.}, cf \autoref{subsec:DYN_spg_ts}), this does ensure that barotropic and baroclinic dynamics feel the same stresses during one leapfrog time step. However, if \np{ln\_drgimp}\forcode{= .true.}, stresses depend on the \textit{after} value of the velocities which themselves depend on the barotropic iteration result. This cyclic dependency makes difficult obtaining consistent stresses in 2d and 3d dynamics. Part of this mismatch is then removed when setting the final barotropic component of 3d velocities to the time splitting estimate. This last step can be seen as a necessary evil but should be minimized since it interferes with the adjustment to the boundary conditions. With split-explicit free surface, the sub-stepping of barotropic equations needs the knowledge of top/bottom stresses. An obvious way to satisfy this is to take them as constant over the course of the barotropic integration and equal to the value used to update the baroclinic momentum trend. Provided \np{ln_drgimp}{ln\_drgimp}\forcode{= .false.} and a centred or \textit{leap-frog} like integration of barotropic equations is used (\ie\ \forcode{ln_bt_fw=.false.}, cf \autoref{subsec:DYN_spg_ts}), this does ensure that barotropic and baroclinic dynamics feel the same stresses during one leapfrog time step. However, if \np{ln\_drgimp}\forcode{= .true.}, stresses depend on the \textit{after} value of the velocities which themselves depend on the barotropic iteration result. This cyclic dependency makes difficult obtaining consistent stresses in 2d and 3d dynamics. Part of this mismatch is then removed when setting the final barotropic component of 3d velocities to the time splitting estimate. This last step can be seen as a necessary evil but should be minimized since it interferes with the adjustment to the boundary conditions. The strategy to handle top/bottom stresses with split-explicit free surface in \NEMO\ is as follows: % Internal wave-driven mixing % ================================================================ \section[Internal wave-driven mixing (\forcode{ln_zdfiwm})]{Internal wave-driven mixing (\protect\np{ln\_zdfiwm})} \section[Internal wave-driven mixing (\forcode{ln_zdfiwm})]{Internal wave-driven mixing (\protect\np{ln_zdfiwm}{ln\_zdfiwm})} \label{subsec:ZDF_tmx_new} where R_f is the mixing efficiency and \epsilon is a specified three dimensional distribution of the energy available for mixing. If the \np{ln\_mevar} namelist parameter is set to \forcode{.false.}, the mixing efficiency is taken as constant and If the \np{ln_mevar}{ln\_mevar} namelist parameter is set to \forcode{.false.}, the mixing efficiency is taken as constant and equal to 1/6 \citep{osborn_JPO80}. In the opposite (recommended) case, R_f is instead a function of In addition to the mixing efficiency, the ratio of salt to heat diffusivities can chosen to vary as a function of Re_b by setting the \np{ln\_tsdiff} parameter to \forcode{.true.}, a recommended choice. as a function of Re_b by setting the \np{ln_tsdiff}{ln\_tsdiff} parameter to \forcode{.true.}, a recommended choice. This parameterization of differential mixing, due to \cite{jackson.rehmann_JPO14}, is implemented as in \cite{de-lavergne.madec.ea_JPO16}. h_{wkb} = H \, \frac{ \int_{-H}^{z} N \, dz' } { \int_{-H}^{\eta} N \, dz' } \; ,$ The $n_p$ parameter (given by \np{nn\_zpyc} in \nam{zdf\_iwm} namelist) The $n_p$ parameter (given by \np{nn_zpyc}{nn\_zpyc} in \nam{zdf_iwm}{zdf\_iwm} namelist) controls the stratification-dependence of the pycnocline-intensified dissipation. It can take values of $1$ (recommended) or $2$. % surface wave-induced mixing % ================================================================ \section[Surface wave-induced mixing (\forcode{ln_zdfswm})]{Surface wave-induced mixing (\protect\np{ln\_zdfswm})} \section[Surface wave-induced mixing (\forcode{ln_zdfswm})]{Surface wave-induced mixing (\protect\np{ln_zdfswm}{ln\_zdfswm})} \label{subsec:ZDF_swm} % Adaptive-implicit vertical advection % ================================================================ \section[Adaptive-implicit vertical advection (\forcode{ln_zad_Aimp})]{Adaptive-implicit vertical advection(\protect\np{ln\_zad\_Aimp})} \section[Adaptive-implicit vertical advection (\forcode{ln_zad_Aimp})]{Adaptive-implicit vertical advection(\protect\np{ln_zad_Aimp}{ln\_zad\_Aimp})} \label{subsec:ZDF_aimp}
• ## NEMO/trunk/doc/latex/NEMO/subfiles/chap_cfgs.tex

 r11571 The GYRE configuration is set like an analytical configuration. Through \np{ln\_read\_cfg}\forcode{ = .false.} in \nam{cfg} namelist defined in Through \np{ln_read_cfg}{ln\_read\_cfg}\forcode{ = .false.} in \nam{cfg} namelist defined in the reference configuration \path{./cfgs/GYRE_PISCES/EXPREF/namelist_cfg} analytical definition of grid in GYRE is done in usrdef\_hrg, usrdef\_zgr routines. Its horizontal resolution (and thus the size of the domain) is determined by setting \np{nn\_GYRE} in \nam{usr\_def}: \\ \jp{jpiglo} $= 30 \times$ \np{nn\_GYRE} + 2   \\ \jp{jpjglo} $= 20 \times$ \np{nn\_GYRE} + 2   \\ setting \np{nn_GYRE}{nn\_GYRE} in \nam{usr_def}{usr\_def}: \\ \jp{jpiglo} $= 30 \times$ \np{nn_GYRE}{nn\_GYRE} + 2   \\ \jp{jpjglo} $= 20 \times$ \np{nn_GYRE}{nn\_GYRE} + 2   \\ Obviously, the namelist parameters have to be adjusted to the chosen resolution, For example, keeping a same model size on each processor while increasing the number of processor used is very easy, even though the physical integrity of the solution can be compromised. Benchmark is activate via \np{ln\_bench}\forcode{ = .true.} in \nam{usr\_def} in Benchmark is activate via \np{ln_bench}{ln\_bench}\forcode{ = .true.} in \nam{usr_def}{usr\_def} in namelist \path{./cfgs/GYRE_PISCES/EXPREF/namelist_cfg}. In particular, the AMM uses $s$-coordinates in the vertical rather than $z$-coordinates and is forced with tidal lateral boundary conditions using a Flather boundary condition from the BDY module. Also specific to the AMM configuration is the use of the GLS turbulence scheme (\np{ln\_zdfgls} \forcode{= .true.}). Also specific to the AMM configuration is the use of the GLS turbulence scheme (\np{ln_zdfgls}{ln\_zdfgls} \forcode{= .true.}). In addition to the tidal boundary condition the model may also take open boundary conditions from a North Atlantic model. Boundaries may be completely omitted by setting \np{ln\_bdy} to false. Boundaries may be completely omitted by setting \np{ln_bdy}{ln\_bdy} to false. Sample surface fluxes, river forcing and a sample initial restart file are included to test a realistic model run. The Baltic boundary is included within the river input file and is specified as a river source.
• ## NEMO/trunk/doc/latex/NEMO/subfiles/chap_misc.tex

 r11571 \begin{itemize} \item Add \texttt{e1e2u} and \texttt{e1e2v} arrays to the \np{cn\_domcfg} file. These 2D \item Add \texttt{e1e2u} and \texttt{e1e2v} arrays to the \np{cn_domcfg}{cn\_domcfg} file. These 2D arrays should contain the products of the unaltered values of: $\texttt{e1u}*\texttt{e2u}$ and $\texttt{e1u}*\texttt{e2v}$ respectively. That is the original surface areas of $u$- and $v$- cells respectively.  These areas are usually defined by the corresponding product within the \NEMO\ code but the presence of \texttt{e1e2u} and \texttt{e1e2v} in the \np{cn\_domcfg} file will suppress this calculation and use the supplied fields instead. \np{cn_domcfg}{cn\_domcfg} file will suppress this calculation and use the supplied fields instead. If the model domain is provided by user-supplied code in \mdl{usrdef\_hgr}, then this routine should also return \texttt{e1e2u} and \texttt{e1e2v} and set the integer return will suppress the calculation of the areas. \item Change values of \texttt{e2u} or \texttt{e1v} (either in the \np{cn\_domcfg} file or \item Change values of \texttt{e2u} or \texttt{e1v} (either in the \np{cn_domcfg}{cn\_domcfg} file or via code in  \mdl{usrdef\_hgr}), whereever a Strait reduction is required. The choice of whether to alter \texttt{e2u} or \texttt{e1v} depends. respectively,  on whether the maintain different sets of input fields for use with or without active ice cavities.  This subsetting operates for the j-direction only and works by optionally looking for and using a global file attribute (named: \np{open\_ocean\_jstart}) to determine the starting j-row a global file attribute (named: \np{open_ocean_jstart}{open\_ocean\_jstart}) to determine the starting j-row for input.  The use of this option is best explained with an example: \medskip This file define a horizontal domain of 362x332.  The first row with open ocean wet points in the non-isf bathymetry for this set is row 42 (\fortran\ indexing) then the formally correct setting for \np{open\_ocean\_jstart} is 41.  Using this value as then the formally correct setting for \np{open_ocean_jstart}{open\_ocean\_jstart} is 41.  Using this value as the first row to be read will result in a 362x292 domain which is the same size as the original ORCA1 domain.  Thus the extended domain configuration file can be used with all \end{cmds} \item Add the logical switch \np{ln\_use\_jattr} to \nam{cfg} in the configuration namelist (if it is not already there) and set \np{.true.} \item Add the logical switch \np{ln_use_jattr}{ln\_use\_jattr} to \nam{cfg} in the configuration namelist (if it is not already there) and set \forcode{.true.} \end{itemize} \noindent Note that with this option, the j-size of the global domain is (extended j-size minus \np{open\_ocean\_jstart} + 1 ) and this must match the \texttt{jpjglo} value j-size minus \np{open_ocean_jstart}{open\_ocean\_jstart} + 1 ) and this must match the \texttt{jpjglo} value for the configuration. This means an alternative version of \ifile{eORCA1\_domcfg.nc} must be created for when \np{ln\_use\_jattr} is active. The \texttt{ncap2} tool provides a be created for when \np{ln_use_jattr}{ln\_use\_jattr} is active. The \texttt{ncap2} tool provides a convenient way of achieving this: \texttt{open\_ocean\_jstart} attribute to the file's global attributes. In particular this is true for any field that is read by \NEMO\ using the following optional argument to the appropriate call to \np{iom\_get}. the appropriate call to \np{iom_get}{iom\_get}. \begin{forlines} This alternative method should give identical results to the default \textsc{ALLGATHER} method and is recommended for large values of \np{jpni}. The new method is activated by setting \np{ln\_nnogather} to be true (\nam{mpp}). The new method is activated by setting \np{ln_nnogather}{ln\_nnogather} to be true (\nam{mpp}). The reproducibility of results using the two methods should be confirmed for each new, non-reference configuration. \subsection{Control print} The \np{ln\_ctl} switch was originally used as a debugging option in two modes: The \np{ln_ctl}{ln\_ctl} switch was originally used as a debugging option in two modes: \begin{enumerate} \item{\np{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and \item{\np{ln_ctl}{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and ZDF modules. This option is very helpful when diagnosing the origin of an undesired change in model results. } \item{also \np{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between \item{also \np{ln_ctl}{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between mono and multi processor runs.} \end{enumerate} However, in recent versions it has also been used to force all processors to assume the reporting role. Thus when \np{ln\_ctl} is true all processors produce their own versions reporting role. Thus when \np{ln_ctl}{ln\_ctl} is true all processors produce their own versions of files such as: ocean.output, layout.dat, etc.  All such files, beyond the the normal reporting processor (narea == 1), are named with a \_XXXX extension to their name, where such as run.stat (and its netCDF counterpart: run.stat.nc) and tracer.stat contain global information and are only ever produced by the reporting master (narea == 1). For version 4.0 a start has been made to return \np{ln\_ctl} to its original function by introducing 4.0 a start has been made to return \np{ln_ctl}{ln\_ctl} to its original function by introducing a new control structure which allows finer control over which files are produced. This feature is still evolving but it does already allow the user to: select individually the
• ## NEMO/trunk/doc/latex/NEMO/subfiles/chap_model_basics_zstar.tex

 r11571 %\nlst{nam_dynspg} %------------------------------------------------------------------------------------------------------------ Options are defined through the \nam{\_dynspg} namelist variables. Options are defined through the \nam{_dynspg}{\_dynspg} namelist variables. The surface pressure gradient term is related to the representation of the free surface (\autoref{sec:MB_hor_pg}). The main distinction is between the fixed volume case (linear free surface or rigid lid) and
• ## NEMO/trunk/doc/latex/NEMO/subfiles/chap_time_domain.tex

 r11567 where the subscript $F$ denotes filtered values and $\gamma$ is the Asselin coefficient. $\gamma$ is initialized as \np{rn\_atfp} (namelist parameter). Its default value is \np{rn\_atfp}\forcode{ = 10.e-3} (see \autoref{sec:TD_mLF}), $\gamma$ is initialized as \np{rn_atfp}{rn\_atfp} (namelist parameter). Its default value is \np{rn_atfp}{rn\_atfp}\forcode{ = 10.e-3} (see \autoref{sec:TD_mLF}), causing only a weak dissipation of high frequency motions (\citep{farge-coulombier_phd87}). The addition of a time filter degrades the accuracy of the calculation from second to first order. The leapfrog environment supports a centred in time computation of the surface pressure, \ie\ evaluated at \textit{now} time step. This refers to as the explicit free surface case in the code (\np{ln\_dynspg\_exp}\forcode{=.true.}). at \textit{now} time step. This refers to as the explicit free surface case in the code (\np{ln_dynspg_exp}{ln\_dynspg\_exp}\forcode{=.true.}). This choice however imposes a strong constraint on the time step which should be small enough to resolve the propagation of external gravity waves. As a matter of fact, one rather use in a realistic setup, a split-explicit free surface (\np{ln\_dynspg\_ts}\forcode{=.true.}) in which barotropic and baroclinic dynamical equations are solved separately with ad-hoc (\np{ln_dynspg_ts}{ln\_dynspg\_ts}\forcode{=.true.}) in which barotropic and baroclinic dynamical equations are solved separately with ad-hoc time steps. The use of the time-splitting (in combination with non-linear free surface) imposes some constraints on the design of the overall flowchart, in particular to ensure exact tracer conservation (see \autoref{fig:TD_TimeStep_flowchart}). When restarting, if the time step has been changed, or one of the prognostic variables at \textit{before} time step is missing, an Euler time stepping scheme is imposed. A forward initial step can still be enforced by the user by setting the namelist variable \np{nn\_euler}\forcode{=0}. Other options to control the time integration of the model the namelist variable \np{nn_euler}{nn\_euler}\forcode{=0}. Other options to control the time integration of the model are defined through the  \nam{run} namelist variables. %%%
• ## NEMO/trunk/doc/latex/global/document.tex

 r11572 %% Document layout \documentclass[fontsize = 10pt, twoside, abstract, draft]{scrreprt} \documentclass[fontsize = 10pt, twoside, abstract]{scrreprt} %% Load configurations