source: NEMO/trunk/doc/latex/NEMO/subfiles/chap_STO.tex @ 11577

Last change on this file since 11577 was 11577, checked in by nicolasmartin, 13 months ago

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
File size: 9.6 KB
Line 
1\documentclass[../main/NEMO_manual]{subfiles}
2
3\begin{document}
4% ================================================================
5% Chapter stochastic parametrization of EOS (STO)
6% ================================================================
7\chapter{Stochastic Parametrization of EOS (STO)}
8\label{chap:STO}
9
10\chaptertoc
11
12% \vfill
13% \begin{figure}[b]
14% \subsubsection*{Changes record}
15% \begin{tabular}{l||l|m{0.65\linewidth}}
16%    Release   & Author        & Modifications \\
17%    {\em 4.0.1} & {\em C. Levy} & {\em 4.0.1 update}  \\
18%    {\em 3.6} & {\em P.-A. Bouttier} & {\em initial version}  \\
19% \end{tabular}
20% \end{figure}
21
22Authors: \\
23C. Levy release 4.0.1 update \\
24P.-A. Bouttier release 3.6 inital version
25
26\newpage
27
28As a result of the nonlinearity of the seawater equation of state, unresolved scales represent a major source of uncertainties in the computation of the large-scale horizontal density gradient from the large-scale temperature and salinity fields. Following  \cite{brankart_OM13}, the impact of these uncertainties can be simulated by random processes representing unresolved T/S fluctuations. The Stochastic Parametrization of EOS (STO) module implements this parametrization.
29
30As detailed in \cite{brankart_OM13}, the stochastic formulation of the equation of state can be written as:
31\begin{equation}
32  \label{eq:STO_eos_sto}
33  \rho = \frac{1}{2} \sum_{i=1}^m\{ \rho[T+\Delta T_i,S+\Delta S_i,p_o(z)] + \rho[T-\Delta T_i,S-\Delta S_i,p_o(z)] \}
34\end{equation}
35where $p_o(z)$ is the reference pressure depending on the depth and,
36$\Delta T_i$ and $\Delta S_i$ (i=1,m) is a set of T/S perturbations defined as
37the scalar product of the respective local T/S gradients with random walks $\mathbf{\xi}$:
38\begin{equation}
39  \label{eq:STO_sto_pert}
40  \Delta T_i = \mathbf{\xi}_i \cdot \nabla T \qquad \hbox{and} \qquad \Delta S_i = \mathbf{\xi}_i \cdot \nabla S
41\end{equation}
42$\mathbf{\xi}_i$ are produced by a first-order autoregressive process (AR-1) with
43a parametrized decorrelation time scale, and horizontal and vertical standard deviations $\sigma_s$.
44$\mathbf{\xi}$ are uncorrelated over the horizontal and fully correlated along the vertical.
45
46
47\section{Stochastic processes}
48\label{sec:STO_the_details}
49
50There are many existing parameterizations based on autoregressive processes,
51which are used as a basic source of randomness to transform a deterministic model into a probabilistic model.
52The generic approach here is to a new STO module,
53generating processes features with appropriate statistics to simulate these uncertainties in the model
54(see \cite{brankart.candille.ea_GMD15} for more details).
55
56In practice, at each model grid point,
57independent Gaussian autoregressive processes~$\xi^{(i)},\,i=1,\ldots,m$ are first generated using
58the same basic equation:
59
60\begin{equation}
61  \label{eq:STO_autoreg}
62  \xi^{(i)}_{k+1} = a^{(i)} \xi^{(i)}_k + b^{(i)} w^{(i)} + c^{(i)}
63\end{equation}
64
65\noindent
66where $k$ is the index of the model timestep and
67$a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are parameters defining the mean ($\mu^{(i)}$) standard deviation ($\sigma^{(i)}$) and
68correlation timescale ($\tau^{(i)}$) of each process:
69
70\begin{itemize}
71\item
72  for order~1 processes, $w^{(i)}$ is a Gaussian white noise, with zero mean and standard deviation equal to~1,
73  and the parameters $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by:
74
75  \[
76    % \label{eq:STO_ord1}
77    \left\{
78      \begin{array}{l}
79        a^{(i)} = \varphi \\
80        b^{(i)} = \sigma^{(i)} \sqrt{ 1 - \varphi^2 }        \qquad\qquad\mbox{with}\qquad\qquad \varphi = \exp \left( - 1 / \tau^{(i)} \right) \\
81        c^{(i)} = \mu^{(i)} \left( 1 - \varphi \right) \\
82      \end{array}
83    \right.
84  \]
85
86\item
87  for order~$n>1$ processes, $w^{(i)}$ is an order~$n-1$ autoregressive process, with zero mean,
88  standard deviation equal to~$\sigma^{(i)}$;
89  correlation timescale equal to~$\tau^{(i)}$;
90  and the parameters $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by:
91
92  \begin{equation}
93    \label{eq:STO_ord2}
94    \left\{
95      \begin{array}{l}
96        a^{(i)} = \varphi \\
97        b^{(i)} = \frac{n-1}{2(4n-3)} \sqrt{ 1 - \varphi^2 }
98        \qquad\qquad\mbox{with}\qquad\qquad
99        \varphi = \exp \left( - 1 / \tau^{(i)} \right) \\
100        c^{(i)} = \mu^{(i)} \left( 1 - \varphi \right) \\
101      \end{array}
102    \right.
103  \end{equation}
104
105\end{itemize}
106
107\noindent
108In this way, higher order processes can be easily generated recursively using the same piece of code implementing
109\autoref{eq:STO_autoreg}, and using successive processes from order $0$ to~$n-1$ as~$w^{(i)}$.
110The parameters in \autoref{eq:STO_ord2} are computed so that this recursive application of
111\autoref{eq:STO_autoreg} leads to processes with the required standard deviation and correlation timescale,
112with the additional condition that the $n-1$ first derivatives of the autocorrelation function are equal to
113zero at~$t=0$, so that the resulting processes become smoother and smoother as $n$ increases.
114
115Overall, this method provides quite a simple and generic way of generating a wide class of stochastic processes.
116However, this also means that new model parameters are needed to specify each of these stochastic processes.
117As in any parameterization, the main issue is to tune the parameters using
118either first principles, model simulations, or real-world observations.
119The parameters are set by default as described in \cite{brankart_OM13}, which has been shown in the paper
120to give good results for a global low resolution (2°) \NEMO\ configuration. where this parametrization produces a major effect on the average large-scale circulation, especilally in regions of intense mesoscale activity.
121The set of parameters will need further investigation to find appropriate values
122for any other configuration or resolution of the model.
123
124\section{Implementation details}
125\label{sec:STO_thech_details}
126
127
128The code implementing stochastic parametrisation is located in the src/OCE/STO directory.
129It contains three modules :
130% \begin{description}
131
132\mdl{stopar} : define the Stochastic parameters and their time evolution
133
134\mdl{storng} : random number generator based on and including the 64-bit KISS (Keep It Simple Stupid) random number generator distributed by George Marsaglia
135
136\mdl{stopts} : stochastic parametrisation associated with the non-linearity of the equation of
137 seawater, implementing \autoref{eq:STO_sto_pert} so as specifics in the equation of state
138 implementing \autoref{eq:STO_eos_sto}.
139% \end{description}
140
141The \mdl{stopar} module includes three public routines called in the model:
142
143(\rou{sto\_par}) is a direct implementation of \autoref{eq:STO_autoreg},
144applied at each model grid point (in 2D or 3D), and called at each model time step ($k$) to
145update every autoregressive process ($i=1,\ldots,m$).
146This routine also includes a filtering operator, applied to $w^{(i)}$,
147to introduce a spatial correlation between the stochastic processes.
148
149(\rou{sto\_par\_init}) is the initialization routine computing
150the values $a^{(i)}, b^{(i)}, c^{(i)}$ for each autoregressive process,
151as a function of the statistical properties required by the model user
152(mean, standard deviation, time correlation, order of the process,\ldots).
153This routine also includes the initialization (seeding) of the random number generator.
154
155(\rou{sto\_rst\_write}) writes a restart file
156(which suffix name is given by \np{cn_storst_out}{cn\_storst\_out} namelist parameter) containing the current value of
157all autoregressive processes to allow creating the file needed for a restart.
158This restart file also contains the current state of the random number generator.
159When \np{ln_rststo}{ln\_rststo} is set to \forcode{.true.}),
160the restart file (which suffix name is given by \np{cn_storst_in}{cn\_storst\_in} namelist parameter) is read by
161the initialization routine (\rou{sto\_par\_init}).
162The simulation will continue exactly as if it was not interrupted only
163when \np{ln_rstseed}{ln\_rstseed} is set to \forcode{.true.},
164\ie\ when the state of the random number generator is read in the restart file.\\
165
166The implementation includes the basics for a few possible stochastic parametrisations including equation of state,
167lateral diffusion, horizontal pressure gradient, ice strength, trend, tracers dynamics.
168As for this release, only the stochastic parametrisation of equation of state is fully available and tested. \\
169
170Options and parameters \\
171
172The \np{ln_sto_eos}{ln\_sto\_eos} namelist variable activates stochastic parametrisation of equation of state.
173By default it set to \forcode{.false.}) and not active.
174The set of parameters is available in \nam{sto} namelist
175(only the subset for equation of state stochastic parametrisation is listed below):
176%---------------------------------------namsto--------------------------------------------------
177
178\begin{listing}
179  \nlst{namsto}
180  \caption{\forcode{&namsto}}
181  \label{lst:namsto}
182\end{listing}
183%--------------------------------------------------------------------------------------------------------------
184
185The variables of stochastic paramtetrisation itself (based on the global 2° experiments as in \cite{brankart_OM13} are:
186
187\begin{description}
188\item[\np{nn_sto_eos}{nn\_sto\_eos}:]   number of independent random walks
189\item[\np{rn_eos_stdxy}{rn\_eos\_stdxy}:] random walk horizontal standard deviation (in grid points)
190\item[\np{rn_eos_stdz}{rn\_eos\_stdz}:]  random walk vertical standard deviation (in grid points)
191\item[\np{rn_eos_tcor}{rn\_eos\_tcor}:]  random walk time correlation (in timesteps)
192\item[\np{nn_eos_ord}{nn\_eos\_ord}:]   order of autoregressive processes
193\item[\np{nn_eos_flt}{nn\_eos\_flt}:]   passes of Laplacian filter
194\item[\np{rn_eos_lim}{rn\_eos\_lim}:]   limitation factor (default = 3.0)
195\end{description}
196
197The first four parameters define the stochastic part of equation of state.
198\biblio
199
200\pindex
201
202\end{document}
Note: See TracBrowser for help on using the repository browser.