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 @ 11596

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

Application of some coding rules

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