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

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

source: NEMO/trunk/doc/latex/NEMO/subfiles/apdx_DOMAINcfg.tex @ 11597

Last change on this file since 11597 was 11597, checked in by nicolasmartin, 5 years ago

Continuation of coding rules application
Recovery of some sections deleted by the previous commit

File size: 28.7 KB
Line 
1\documentclass[../main/NEMO_manual]{subfiles}
2
3\begin{document}
4\chapter{A brief guide to the DOMAINcfg tool}
5\label{apdx:DOMCFG}
6
7\chaptertoc
8\vfill
9\begin{figure}[b]
10%% =================================================================================================
11\subsubsection*{Changes record}
12\begin{tabular}{m{0.08\linewidth}||m{0.32\linewidth}|m{0.6\linewidth}}
13    Release   & Author(s)     & Modifications \\
14\hline
15    {\em 4.0} & {\em Andrew Coward} & {\em Created at v4.0 from materials removed from chap\_DOM that are still relevant to the \forcode{DOMAINcfg} tool and which illustrate and explain the choices to be made by the user when setting up new domains }  \\
16\end{tabular}
17\end{figure}
18
19This appendix briefly describes some of the options available in the
20\forcode{DOMAINcfg} tool mentioned in \autoref{chap:DOM}.
21
22This tool will evolve into an independent utility with its own documentation but its
23current manifestation is mostly a wrapper for \NEMO\ \forcode{DOM} modules more aligned to
24those in the previous versions of \NEMO. These versions allowed the user to define some
25horizontal and vertical grids through additional namelist parameters. Explanations of
26these parameters are retained here for reference pending better documentation for
27\forcode{DOMAINcfg}. Please note that the namelist blocks named in this appendix refer to
28those read by \forcode{DOMAINcfg} via its own \forcode{namelist_ref} and
29\forcode{namelist_cfg} files. Although, due to their origins, these namelists share names
30with those used by \NEMO, they are not interchangeable and should be considered independent
31of those described elsewhere in this manual.
32
33%% =================================================================================================
34\section{Choice of horizontal grid}
35\label{sec:DOMCFG_hor}
36
37
38\begin{listing}
39  \nlst{namdom_domcfg}
40  \caption{\forcode{&namdom_domcfg}}
41  \label{lst:namdom_domcfg}
42\end{listing}
43
44The user has three options available in defining a horizontal grid, which involve the
45namelist variable \np{jphgr_mesh}{jphgr\_mesh} of the \nam{dom}{dom} (\texttt{DOMAINcfg} variant only)
46namelist.
47
48\begin{description}
49 \item [{\np{jphgr_mesh}{jphgr\_mesh}=0}]  The most general curvilinear orthogonal grids.
50  The coordinates and their first derivatives with respect to $i$ and $j$ are provided
51  in a input file (\ifile{coordinates}), read in \rou{hgr\_read} subroutine of the domhgr module.
52  This is now the only option available within \NEMO\ itself from v4.0 onwards.
53\item [{\np{jphgr_mesh}{jphgr\_mesh}=1 to 5}] A few simple analytical grids are provided (see below).
54  For other analytical grids, the \mdl{domhgr} module (\texttt{DOMAINcfg} variant) must be
55  modified by the user. In most cases, modifying the \mdl{usrdef\_hgr} module of \NEMO\ is
56  a better alternative since this is designed to allow simple analytical domains to be
57  configured and used without the need for external data files.
58\end{description}
59
60There are two simple cases of geographical grids on the sphere. With
61\np{jphgr_mesh}{jphgr\_mesh}=1, the grid (expressed in degrees) is regular in space,
62with grid sizes specified by parameters \np{ppe1_deg}{ppe1\_deg} and \np{ppe2_deg}{ppe2\_deg},
63respectively. Such a geographical grid can be very anisotropic at high latitudes
64because of the convergence of meridians (the zonal scale factors $e_1$
65become much smaller than the meridional scale factors $e_2$). The Mercator
66grid (\np{jphgr_mesh}{jphgr\_mesh}=4) avoids this anisotropy by refining the meridional scale
67factors in the same way as the zonal ones. In this case, meridional scale factors
68and latitudes are calculated analytically using the formulae appropriate for
69a Mercator projection, based on \np{ppe1_deg}{ppe1\_deg} which is a reference grid spacing
70at the equator (this applies even when the geographical equator is situated outside
71the model domain).
72
73In these two cases (\np{jphgr_mesh}{jphgr\_mesh}=1 or 4), the grid position is defined by the
74longitude and latitude of the south-westernmost point (\np{ppglamt0}
75and \np{ppgphi0}{ppgphi0}). Note that for the Mercator grid the user need only provide
76an approximate starting latitude: the real latitude will be recalculated analytically,
77in order to ensure that the equator corresponds to line passing through $t$-
78and $u$-points.
79
80Rectangular grids ignoring the spherical geometry are defined with
81\np{jphgr_mesh}{jphgr\_mesh} = 2, 3, 5. The domain is either an $f$-plane (\np{jphgr_mesh}{jphgr\_mesh} = 2,
82Coriolis factor is constant) or a beta-plane (\np{jphgr_mesh}{jphgr\_mesh} = 3, the Coriolis factor
83is linear in the $j$-direction). The grid size is uniform in meter in each direction,
84and given by the parameters \np{ppe1_m}{ppe1\_m} and \np{ppe2_m}{ppe2\_m} respectively.
85The zonal grid coordinate (\textit{glam} arrays) is in kilometers, starting at zero
86with the first $t$-point. The meridional coordinate (gphi. arrays) is in kilometers,
87and the second $t$-point corresponds to coordinate $gphit=0$. The input
88variable \np{ppglam0}{ppglam0} is ignored. \np{ppgphi0}{ppgphi0} is used to set the reference
89latitude for computation of the Coriolis parameter. In the case of the beta plane,
90\np{ppgphi0}{ppgphi0} corresponds to the center of the domain. Finally, the special case
91\np{jphgr_mesh}{jphgr\_mesh}=5 corresponds to a beta plane in a rotated domain for the
92GYRE configuration, representing a classical mid-latitude double gyre system.
93The rotation allows us to maximize the jet length relative to the gyre areas
94(and the number of grid points).
95
96%% =================================================================================================
97\section{Vertical grid}
98\label{sec:DOMCFG_vert}
99
100%% =================================================================================================
101\subsection{Vertical reference coordinate}
102\label{sec:DOMCFG_zref}
103
104\begin{figure}[!tb]
105  \centering
106  \includegraphics[width=0.66\textwidth]{Fig_zgr}
107  \caption[DOMAINcfg: default vertical mesh for ORCA2]{
108    Default vertical mesh for ORCA2: 30 ocean levels (L30).
109    Vertical level functions for (a) T-point depth and (b) the associated scale factor for
110    the $z$-coordinate case.}
111  \label{fig:DOMCFG_zgr}
112\end{figure}
113
114The reference coordinate transformation $z_0(k)$ defines the arrays $gdept_0$ and
115$gdepw_0$ for $t$- and $w$-points, respectively. See \autoref{sec:DOMCFG_sco} for the
116S-coordinate options.  As indicated on \autoref{fig:DOM_index_vert} \jp{jpk} is the number of
117$w$-levels.  $gdepw_0(1)$ is the ocean surface.  There are at most \jp{jpk}-1 $t$-points
118inside the ocean, the additional $t$-point at $jk = jpk$ is below the sea floor and is not
119used.  The vertical location of $w$- and $t$-levels is defined from the analytic
120expression of the depth $z_0(k)$ whose analytical derivative with respect to $k$ provides
121the vertical scale factors.  The user must provide the analytical expression of both $z_0$
122and its first derivative with respect to $k$.  This is done in routine \mdl{domzgr}
123through statement functions, using parameters provided in the \nam{dom}{dom} namelist
124(\texttt{DOMAINcfg} variant).
125
126It is possible to define a simple regular vertical grid by giving zero stretching
127(\np[=0]{ppacr}{ppacr}).  In that case, the parameters \jp{jpk} (number of $w$-levels)
128and \np{pphmax}{pphmax} (total ocean depth in meters) fully define the grid.
129
130For climate-related studies it is often desirable to concentrate the vertical resolution
131near the ocean surface.  The following function is proposed as a standard for a
132$z$-coordinate (with either full or partial steps):
133\begin{gather}
134  \label{eq:DOMCFG_zgr_ana_1}
135    z_0  (k) = h_{sur} - h_0 \; k - \; h_1 \; \log  \big[ \cosh ((k - h_{th}) / h_{cr}) \big] \\
136    e_3^0(k) = \lt|    - h_0      -    h_1 \; \tanh \big[        (k - h_{th}) / h_{cr}  \big] \rt|
137\end{gather}
138
139where $k = 1$ to \jp{jpk} for $w$-levels and $k = 1$ to $k = 1$ for $t-$levels.  Such an
140expression allows us to define a nearly uniform vertical location of levels at the ocean
141top and bottom with a smooth hyperbolic tangent transition in between (\autoref{fig:DOMCFG_zgr}).
142
143A double hyperbolic tangent version (\np[=.true.]{ldbletanh}{ldbletanh}) is also available
144which permits finer control and is used, typically, to obtain a well resolved upper ocean
145without compromising on resolution at depth using a moderate number of levels.
146
147\begin{gather}
148  \label{eq:DOMCFG_zgr_ana_1b}
149    \begin{split}
150    z_0  (k) = h_{sur} - h_0 \; k &- \; h_1 \; \log  \big[ \cosh ((k - h_{th}) / h_{cr}) \big] \\
151                             \;   &- \; h2_1 \; \log  \big[ \cosh ((k - h2_{th}) / h2_{cr}) \big]
152    \end{split}
153\end{gather}
154\begin{gather}
155    \begin{split}
156    e_3^0(k) = \big|    - h_0    &-   h_1 \; \tanh \big[       (k - h_{th})  / h_{cr}   \big]  \\
157                                 &-  h2_1 \; \tanh \big[       (k - h2_{th}) / h2_{cr}  \big] \big|
158    \end{split}
159\end{gather}
160
161If the ice shelf cavities are opened (\np[=.true.]{ln_isfcav}{ln\_isfcav}), the definition
162of $z_0$ is the same.  However, definition of $e_3^0$ at $t$- and $w$-points is
163respectively changed to:
164\begin{equation}
165  \label{eq:DOMCFG_zgr_ana_2}
166  \begin{split}
167    e_3^T(k) &= z_W (k + 1) - z_W (k    ) \\
168    e_3^W(k) &= z_T (k    ) - z_T (k - 1)
169  \end{split}
170\end{equation}
171
172This formulation decreases the self-generated circulation into the ice shelf cavity
173(which can, in extreme case, leads to numerical instability). This is now the recommended formulation for all configurations using v4.0 onwards. The analytical derivation of thicknesses is maintained for backwards compatibility.
174
175The most used vertical grid for ORCA2 has $10~m$ ($500~m$) resolution in the surface
176(bottom) layers and a depth which varies from 0 at the sea surface to a minimum of
177$-5000~m$.  This leads to the following conditions:
178
179\begin{equation}
180  \label{eq:DOMCFG_zgr_coef}
181  \begin{array}{ll}
182    e_3 (1   + 1/2) =  10. & z(1  ) =     0. \\
183    e_3 (jpk - 1/2) = 500. & z(jpk) = -5000.
184  \end{array}
185\end{equation}
186
187With the choice of the stretching $h_{cr} = 3$ and the number of levels \jp{jpk}~$= 31$,
188the four coefficients $h_{sur}$, $h_0$, $h_1$, and $h_{th}$ in
189\autoref{eq:DOMCFG_zgr_ana_2} have been determined such that \autoref{eq:DOMCFG_zgr_coef}
190is satisfied, through an optimisation procedure using a bisection method.
191For the first standard ORCA2 vertical grid this led to the following values:
192$h_{sur} = 4762.96$, $h_0 = 255.58, h_1 = 245.5813$, and $h_{th} = 21.43336$.
193The resulting depths and scale factors as a function of the model levels are shown in
194\autoref{fig:DOMCFG_zgr} and given in \autoref{tab:DOMCFG_orca_zgr}.
195Those values correspond to the parameters \np{ppsur}{ppsur}, \np{ppa0}{ppa0}, \np{ppa1}{ppa1}, \np{ppkth}{ppkth} in \nam{cfg}{cfg} namelist.
196
197Rather than entering parameters $h_{sur}$, $h_0$, and $h_1$ directly, it is possible to
198recalculate them.  In that case the user sets \np{ppsur}{ppsur}~$=$~\np{ppa0}{ppa0}~$=$~\np{ppa1}{ppa1}~$=
199999999$., in \nam{cfg}{cfg} namelist, and specifies instead the four following parameters:
200\begin{itemize}
201\item \np{ppacr}{ppacr}~$= h_{cr}$: stretching factor (nondimensional).
202  The larger \np{ppacr}{ppacr}, the smaller the stretching.
203  Values from $3$ to $10$ are usual.
204\item \np{ppkth}{ppkth}~$= h_{th}$: is approximately the model level at which maximum stretching occurs
205  (nondimensional, usually of order 1/2 or 2/3 of \jp{jpk})
206\item \np{ppdzmin}{ppdzmin}: minimum thickness for the top layer (in meters).
207\item \np{pphmax}{pphmax}: total depth of the ocean (meters).
208\end{itemize}
209
210As an example, for the $45$ layers used in the DRAKKAR configuration those parameters are:
211\jp{jpk}~$= 46$, \np{ppacr}{ppacr}~$= 9$, \np{ppkth}{ppkth}~$= 23.563$, \np{ppdzmin}{ppdzmin}~$= 6~m$,
212\np{pphmax}{pphmax}~$= 5750~m$.
213
214\begin{table}
215  \centering
216  \begin{tabular}{c||r|r|r|r}
217    \hline
218    \textbf{LEVEL} & \textbf{gdept\_1d} & \textbf{gdepw\_1d} & \textbf{e3t\_1d } & \textbf{e3w\_1d} \\
219    \hline
220    1              & \textbf{     5.00} &               0.00 & \textbf{   10.00} &            10.00 \\
221    \hline
222    2              & \textbf{    15.00} &              10.00 & \textbf{   10.00} &            10.00 \\
223    \hline
224    3              & \textbf{    25.00} &              20.00 & \textbf{   10.00} &            10.00 \\
225    \hline
226    4              & \textbf{    35.01} &              30.00 & \textbf{   10.01} &            10.00 \\
227    \hline
228    5              & \textbf{    45.01} &              40.01 & \textbf{   10.01} &            10.01 \\
229    \hline
230    6              & \textbf{    55.03} &              50.02 & \textbf{   10.02} &            10.02 \\
231    \hline
232    7              & \textbf{    65.06} &              60.04 & \textbf{   10.04} &            10.03 \\
233    \hline
234    8              & \textbf{    75.13} &              70.09 & \textbf{   10.09} &            10.06 \\
235    \hline
236    9              & \textbf{    85.25} &              80.18 & \textbf{   10.17} &            10.12 \\
237    \hline
238    10             & \textbf{    95.49} &              90.35 & \textbf{   10.33} &            10.24 \\
239    \hline
240    11             & \textbf{   105.97} &             100.69 & \textbf{   10.65} &            10.47 \\
241    \hline
242    12             & \textbf{   116.90} &             111.36 & \textbf{   11.27} &            10.91 \\
243    \hline
244    13             & \textbf{   128.70} &             122.65 & \textbf{   12.47} &            11.77 \\
245    \hline
246    14             & \textbf{   142.20} &             135.16 & \textbf{   14.78} &            13.43 \\
247    \hline
248    15             & \textbf{   158.96} &             150.03 & \textbf{   19.23} &            16.65 \\
249    \hline
250    16             & \textbf{   181.96} &             169.42 & \textbf{   27.66} &            22.78 \\
251    \hline
252    17             & \textbf{   216.65} &             197.37 & \textbf{   43.26} &            34.30 \\
253    \hline
254    18             & \textbf{   272.48} &             241.13 & \textbf{   70.88} &            55.21 \\
255    \hline
256    19             & \textbf{   364.30} &             312.74 & \textbf{  116.11} &            90.99 \\
257    \hline
258    20             & \textbf{   511.53} &             429.72 & \textbf{  181.55} &           146.43 \\
259    \hline
260    21             & \textbf{   732.20} &             611.89 & \textbf{  261.03} &           220.35 \\
261    \hline
262    22             & \textbf{  1033.22} &             872.87 & \textbf{  339.39} &           301.42 \\
263    \hline
264    23             & \textbf{  1405.70} &            1211.59 & \textbf{  402.26} &           373.31 \\
265    \hline
266    24             & \textbf{  1830.89} &            1612.98 & \textbf{  444.87} &           426.00 \\
267    \hline
268    25             & \textbf{  2289.77} &            2057.13 & \textbf{  470.55} &           459.47 \\
269    \hline
270    26             & \textbf{  2768.24} &            2527.22 & \textbf{  484.95} &           478.83 \\
271    \hline
272    27             & \textbf{  3257.48} &            3011.90 & \textbf{  492.70} &           489.44 \\
273    \hline
274    28             & \textbf{  3752.44} &            3504.46 & \textbf{  496.78} &           495.07 \\
275    \hline
276    29             & \textbf{  4250.40} &            4001.16 & \textbf{  498.90} &           498.02 \\
277    \hline
278    30             & \textbf{  4749.91} &            4500.02 & \textbf{  500.00} &           499.54 \\
279    \hline
280    31             & \textbf{  5250.23} &            5000.00 & \textbf{  500.56} &           500.33 \\
281    \hline
282  \end{tabular}
283  \caption[Default vertical mesh in $z$-coordinate for 30 layers ORCA2 configuration]{
284    Default vertical mesh in $z$-coordinate for 30 layers ORCA2 configuration as
285    computed from \autoref{eq:DOMCFG_zgr_ana_2} using
286    the coefficients given in \autoref{eq:DOMCFG_zgr_coef}}
287  \label{tab:DOMCFG_orca_zgr}
288\end{table}
289%%%YY
290%% % -------------------------------------------------------------------------------------------------------------
291%% %        Meter Bathymetry
292%% % -------------------------------------------------------------------------------------------------------------
293%% =================================================================================================
294\subsection{Model bathymetry}
295\label{subsec:DOMCFG_bathy}
296
297Three options are possible for defining the bathymetry, according to the namelist variable
298\np{nn_bathy}{nn\_bathy} (found in \nam{dom}{dom} namelist (\texttt{DOMAINCFG} variant) ):
299\begin{description}
300\item [{\np[=0]{nn_bathy}{nn\_bathy}}]:
301  a flat-bottom domain is defined.
302  The total depth $z_w (jpk)$ is given by the coordinate transformation.
303  The domain can either be a closed basin or a periodic channel depending on the parameter \np{jperio}{jperio}.
304\item [{\np[=-1]{nn_bathy}{nn\_bathy}}]:
305  a domain with a bump of topography one third of the domain width at the central latitude.
306  This is meant for the "EEL-R5" configuration, a periodic or open boundary channel with a seamount.
307\item [{\np[=1]{nn_bathy}{nn\_bathy}}]:
308  read a bathymetry and ice shelf draft (if needed).
309  The \ifile{bathy\_meter} file (Netcdf format) provides the ocean depth (positive, in meters) at
310  each grid point of the model grid.
311  The bathymetry is usually built by interpolating a standard bathymetry product (\eg\ ETOPO2) onto
312  the horizontal ocean mesh.
313  Defining the bathymetry also defines the coastline: where the bathymetry is zero,
314  no wet levels are defined (all levels are masked).
315
316  The \ifile{isfdraft\_meter} file (Netcdf format) provides the ice shelf draft (positive, in meters) at
317  each grid point of the model grid.
318  This file is only needed if \np[=.true.]{ln_isfcav}{ln\_isfcav}.
319  Defining the ice shelf draft will also define the ice shelf edge and the grounding line position.
320\end{description}
321
322%% =================================================================================================
323\subsection{Choice of vertical grid}
324\label{sec:DOMCFG_vgrd}
325
326After reading the bathymetry, the algorithm for vertical grid definition differs between the different options:
327\begin{description}
328\item [\forcode{ln_zco = .true.}]
329  set a reference coordinate transformation $z_0(k)$, and set $z(i,j,k,t) = z_0(k)$ where $z_0(k)$ is the closest match to the depth at $(i,j)$.
330\item [\forcode{ln_zps = .true.}]
331  set a reference coordinate transformation $z_0(k)$, and calculate the thickness of the deepest level at
332  each $(i,j)$ point using the bathymetry, to obtain the final three-dimensional depth and scale factor arrays.
333\item [\forcode{ln_sco = .true.}]
334  smooth the bathymetry to fulfill the hydrostatic consistency criteria and
335  set the three-dimensional transformation.
336\item [\forcode{s-z and s-zps}]
337  smooth the bathymetry to fulfill the hydrostatic consistency criteria and
338  set the three-dimensional transformation $z(i,j,k)$,
339  and possibly introduce masking of extra land points to better fit the original bathymetry file.
340\end{description}
341%%%
342
343%% =================================================================================================
344\subsubsection[$Z$-coordinate with uniform thickness levels (\forcode{ln_zco})]{$Z$-coordinate with uniform thickness levels (\protect\np{ln_zco}{ln\_zco})}
345\label{subsec:DOMCFG_zco}
346
347With this option the model topography can be fully described by the reference vertical
348coordinate and a 2D integer field giving the number of wet levels at each location
349(\forcode{bathy_level}). The resulting match to the real topography is likely to be poor
350though (especially with thick, deep levels) and slopes poorly represented. This option is
351rarely used in modern simulations but it can be useful for testing purposes.
352
353%% =================================================================================================
354\subsubsection[$Z$-coordinate with partial step (\forcode{ln_zps})]{$Z$-coordinate with partial step (\protect\np{ln_zps}{ln\_zps})}
355\label{subsec:DOMCFG_zps}
356
357In $z$-coordinate partial step, the depths of the model levels are defined by the
358reference analytical function $z_0(k)$ as described in \autoref{sec:DOMCFG_zref},
359\textit{except} in the bottom layer.  The thickness of the bottom layer is allowed to vary
360as a function of geographical location $(\lambda,\varphi)$ to allow a better
361representation of the bathymetry, especially in the case of small slopes (where the
362bathymetry varies by less than one level thickness from one grid point to the next).  The
363reference layer thicknesses $e_{3t}^0$ have been defined in the absence of bathymetry.
364With partial steps, layers from 1 to \jp{jpk}-2 can have a thickness smaller than
365$e_{3t}(jk)$.
366
367The model deepest layer (\jp{jpk}-1) is allowed to have either a smaller or larger
368thickness than $e_{3t}(jpk)$: the maximum thickness allowed is $2*e_{3t}(jpk - 1)$.
369
370This has to be kept in mind when specifying values in \nam{dom}{dom} namelist
371(\texttt{DOMAINCFG} variant), such as the maximum depth \np{pphmax}{pphmax} in partial steps.
372
373For example, with \np{pphmax}{pphmax}~$= 5750~m$ for the DRAKKAR 45 layer grid, the maximum ocean
374depth allowed is actually $6000~m$ (the default thickness $e_{3t}(jpk - 1)$ being
375$250~m$).  Two variables in the namdom namelist are used to define the partial step
376vertical grid.  The mimimum water thickness (in meters) allowed for a cell partially
377filled with bathymetry at level jk is the minimum of \np{rn_e3zps_min}{rn\_e3zps\_min} (thickness in
378meters, usually $20~m$) or $e_{3t}(jk)*$\np{rn_e3zps_rat}{rn\_e3zps\_rat} (a fraction, usually 10\%, of
379the default thickness $e_{3t}(jk)$).
380
381%% =================================================================================================
382\subsubsection[$S$-coordinate (\forcode{ln_sco})]{$S$-coordinate (\protect\np{ln_sco}{ln\_sco})}
383\label{sec:DOMCFG_sco}
384%
385\begin{listing}
386  \nlst{namzgr_sco_domcfg}
387  \caption{\forcode{&namzgr_sco_domcfg}}
388  \label{lst:namzgr_sco_domcfg}
389\end{listing}
390Options are defined in \nam{zgr_sco}{zgr\_sco} (\texttt{DOMAINcfg} only).
391In $s$-coordinate (\np[=.true.]{ln_sco}{ln\_sco}), the depth and thickness of the model levels are defined from
392the product of a depth field and either a stretching function or its derivative, respectively:
393
394\begin{align*}
395  % \label{eq:DOMCFG_sco_ana}
396  z(k)   &= h(i,j) \; z_0 (k) \\
397  e_3(k) &= h(i,j) \; z_0'(k)
398\end{align*}
399
400where $h$ is the depth of the last $w$-level ($z_0(k)$) defined at the $t$-point location in the horizontal and
401$z_0(k)$ is a function which varies from $0$ at the sea surface to $1$ at the ocean bottom.
402The depth field $h$ is not necessary the ocean depth,
403since a mixed step-like and bottom-following representation of the topography can be used
404(\autoref{fig:DOM_z_zps_s_sps}) or an envelop bathymetry can be defined (\autoref{fig:DOM_z_zps_s_sps}).
405The namelist parameter \np{rn_rmax}{rn\_rmax} determines the slope at which
406the terrain-following coordinate intersects the sea bed and becomes a pseudo z-coordinate.
407The coordinate can also be hybridised by specifying \np{rn_sbot_min}{rn\_sbot\_min} and \np{rn_sbot_max}{rn\_sbot\_max} as
408the minimum and maximum depths at which the terrain-following vertical coordinate is calculated.
409
410Options for stretching the coordinate are provided as examples,
411but care must be taken to ensure that the vertical stretch used is appropriate for the application.
412
413The original default \NEMO\ s-coordinate stretching is available if neither of the other options are specified as true
414(\np[=.false.]{ln_s_SH94}{ln\_s\_SH94} and \np[=.false.]{ln_s_SF12}{ln\_s\_SF12}).
415This uses a depth independent $\tanh$ function for the stretching \citep{madec.delecluse.ea_JPO96}:
416
417\[
418  z = s_{min} + C (s) (H - s_{min})
419  % \label{eq:DOMCFG_SH94_1}
420\]
421
422where $s_{min}$ is the depth at which the $s$-coordinate stretching starts and
423allows a $z$-coordinate to placed on top of the stretched coordinate,
424and $z$ is the depth (negative down from the asea surface).
425\begin{gather*}
426  s = - \frac{k}{n - 1} \quad \text{and} \quad 0 \leq k \leq n - 1
427  % \label{eq:DOMCFG_s}
428 \\
429 \label{eq:DOMCFG_sco_function}
430  C(s) = \frac{[\tanh(\theta \, (s + b)) - \tanh(\theta \, b)]}{2 \; \sinh(\theta)}
431\end{gather*}
432
433A stretching function,
434modified from the commonly used \citet{song.haidvogel_JCP94} stretching (\np[=.true.]{ln_s_SH94}{ln\_s\_SH94}),
435is also available and is more commonly used for shelf seas modelling:
436
437\[
438  C(s) =   (1 - b) \frac{\sinh(\theta s)}{\sinh(\theta)}
439         + b       \frac{\tanh \lt[ \theta \lt(s + \frac{1}{2} \rt) \rt] -   \tanh \lt( \frac{\theta}{2} \rt)}
440                        {                                                  2 \tanh \lt( \frac{\theta}{2} \rt)}
441 \label{eq:DOMCFG_SH94_2}
442\]
443
444\begin{figure}[!ht]
445  \centering
446  \includegraphics[width=0.66\textwidth]{Fig_sco_function}
447  \caption[DOMAINcfg: examples of the stretching function applied to a seamount]{
448    Examples of the stretching function applied to a seamount;
449    from left to right: surface, surface and bottom, and bottom intensified resolutions}
450  \label{fig:DOMCFG_sco_function}
451\end{figure}
452
453where $H_c$ is the critical depth (\np{rn_hc}{rn\_hc}) at which the coordinate transitions from pure $\sigma$ to
454the stretched coordinate, and $\theta$ (\np{rn_theta}{rn\_theta}) and $b$ (\np{rn_bb}{rn\_bb}) are the surface and
455bottom control parameters such that $0 \leqslant \theta \leqslant 20$, and $0 \leqslant b \leqslant 1$.
456$b$ has been designed to allow surface and/or bottom increase of the vertical resolution
457(\autoref{fig:DOMCFG_sco_function}).
458
459Another example has been provided at version 3.5 (\np{ln_s_SF12}{ln\_s\_SF12}) that allows a fixed surface resolution in
460an analytical terrain-following stretching \citet{siddorn.furner_OM13}.
461In this case the a stretching function $\gamma$ is defined such that:
462
463\begin{equation}
464  z = - \gamma h \quad \text{with} \quad 0 \leq \gamma \leq 1
465  % \label{eq:DOMCFG_z}
466\end{equation}
467
468The function is defined with respect to $\sigma$, the unstretched terrain-following coordinate:
469
470\begin{gather*}
471  % \label{eq:DOMCFG_gamma_deriv}
472  \gamma =   A \lt( \sigma   - \frac{1}{2} (\sigma^2     + f (\sigma)) \rt)
473           + B \lt( \sigma^3 - f           (\sigma) \rt) + f (\sigma)       \\
474  \intertext{Where:}
475 \label{eq:DOMCFG_gamma}
476  f(\sigma) = (\alpha + 2) \sigma^{\alpha + 1} - (\alpha + 1) \sigma^{\alpha + 2}
477  \quad \text{and} \quad \sigma = \frac{k}{n - 1}
478\end{gather*}
479
480This gives an analytical stretching of $\sigma$ that is solvable in $A$ and $B$ as a function of
481the user prescribed stretching parameter $\alpha$ (\np{rn_alpha}{rn\_alpha}) that stretches towards
482the surface ($\alpha > 1.0$) or the bottom ($\alpha < 1.0$) and
483user prescribed surface (\np{rn_zs}{rn\_zs}) and bottom depths.
484The bottom cell depth in this example is given as a function of water depth:
485
486\[
487  % \label{eq:DOMCFG_zb}
488  Z_b = h a + b
489\]
490
491where the namelist parameters \np{rn_zb_a}{rn\_zb\_a} and \np{rn_zb_b}{rn\_zb\_b} are $a$ and $b$ respectively.
492
493\begin{figure}[!ht]
494  \centering
495  \includegraphics[width=0.66\textwidth]{Fig_DOM_compare_coordinates_surface}
496  \caption[DOMAINcfg: comparison of $s$- and $z$-coordinate]{
497    A comparison of the \citet{song.haidvogel_JCP94} $S$-coordinate (solid lines),
498    a 50 level $Z$-coordinate (contoured surfaces) and
499    the \citet{siddorn.furner_OM13} $S$-coordinate (dashed lines) in the surface $100~m$ for
500    a idealised bathymetry that goes from $50~m$ to $5500~m$ depth.
501    For clarity every third coordinate surface is shown.}
502  \label{fig:DOMCFG_fig_compare_coordinates_surface}
503\end{figure}
504 % >>>>>>>>>>>>>>>>>>>>>>>>>>>>
505
506This gives a smooth analytical stretching in computational space that is constrained to
507given specified surface and bottom grid cell thicknesses in real space.
508This is not to be confused with the hybrid schemes that
509superimpose geopotential coordinates on terrain following coordinates thus
510creating a non-analytical vertical coordinate that
511therefore may suffer from large gradients in the vertical resolutions.
512This stretching is less straightforward to implement than the \citet{song.haidvogel_JCP94} stretching,
513but has the advantage of resolving diurnal processes in deep water and has generally flatter slopes.
514
515As with the \citet{song.haidvogel_JCP94} stretching the stretch is only applied at depths greater than
516the critical depth $h_c$.
517In this example two options are available in depths shallower than $h_c$,
518with pure sigma being applied if the \np{ln_sigcrit}{ln\_sigcrit} is true and pure z-coordinates if it is false
519(the z-coordinate being equal to the depths of the stretched coordinate at $h_c$).
520
521Minimising the horizontal slope of the vertical coordinate is important in terrain-following systems as
522large slopes lead to hydrostatic consistency.
523A hydrostatic consistency parameter diagnostic following \citet{haney_JPO91} has been implemented,
524and is output as part of the model mesh file at the start of the run.
525
526%% =================================================================================================
527\subsubsection[\zstar- or \sstar-coordinate (\forcode{ln_linssh})]{\zstar- or \sstar-coordinate (\protect\np{ln_linssh}{ln\_linssh})}
528\label{subsec:DOMCFG_zgr_star}
529
530This option is described in the Report by Levier \textit{et al.} (2007), available on the \NEMO\ web site.
531
532\onlyinsubfile{\input{../../global/epilogue}}
533
534\end{document}
Note: See TracBrowser for help on using the repository browser.