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