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

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

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

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

New LaTeX commands \nam and \np to mention namelist content (step 2)
Finally convert \forcode{...} following \np{}{} into optional arg of the new command \np[]{}{}

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