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

Last change on this file was 14530, checked in by nicolasmartin, 3 years ago

Revert commit 14526, can't use verbatim envs in macro

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