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 branches/2015/nemo_v3_6_STABLE/DOC/TexFiles/Chapters – NEMO

source: branches/2015/nemo_v3_6_STABLE/DOC/TexFiles/Chapters/Chap_STO.tex @ 6992

Last change on this file since 6992 was 6992, checked in by nicolasmartin, 8 years ago

Global reorganisation of DOC directory to ensure the export of NEMO Reference Manual both in PDF & HTML

  • Move 'Figures' and 'Namelists' from ./TexFiles? to the root, create 'Styles' directory in ./TexFiles? with corresponding files and generate EPS version of all figures
  • Fix LaTex? typos, add the possibility to compile each chapter separately with 'subfiles' package and clean the main LaTeX file by creating 'Preamble.tex' & 'Top_Matter.tex' in ./TexFiles?
  • Provide LaTeX2HTML.sh script for producing HTML output (LaTeX2HTML tool needed with patch)
  • Remove PDF files from versionned files
File size: 7.6 KB
Line 
1%\documentclass[NEMO_book]{subfiles}
2%\begin{document}
3% ================================================================
4% Chapter stochastic parametrization of EOS (STO)
5% ================================================================
6\chapter{Stochastic parametrization of EOS (STO)}
7\label{STO}
8
9Authors: P.-A. Bouttier
10
11\minitoc
12
13\newpage
14$\ $\newline    % force a new line
15
16The stochastic parametrization module aims to explicitly simulate uncertainties in the model. More particularly, \cite{Brankart_OM2013} has shown that, because 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 T/S large scale fields), and that the impact of these uncertainties can be simulated by random processes representing unresolved T/S fluctuations.
17
18The stochastic formulation of the equation of state can be written as:
19\begin{equation}
20 \label{eq:eos_sto}
21  \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)] \}
22\end{equation}
23where $p_o(z)$ is the reference pressure depending on the depth and $\Delta T_i$ and $\Delta S_i$ are a set of T/S perturbations defined as the scalar product of the respective local T/S gradients with random walks $\mathbf{\xi}$:
24\begin{equation}
25 \label{eq:sto_pert}
26 \Delta T_i = \mathbf{\xi}_i \cdot \nabla T \qquad \hbox{and} \qquad \Delta S_i = \mathbf{\xi}_i \cdot \nabla S
27\end{equation}
28$\mathbf{\xi}_i$ are produced by a first-order autoregressive processes (AR-1) with a parametrized decorrelation time scale, and horizontal and vertical standard deviations $\sigma_s$. $\mathbf{\xi}$ are uncorrelated over the horizontal and fully correlated along the vertical.
29
30
31\section{Stochastic processes}
32\label{STO_the_details}
33
34The starting point of our implementation of stochastic parameterizations
35in NEMO is to observe that many existing parameterizations are based
36on autoregressive processes, which are used as a basic source of randomness
37to transform a deterministic model into a probabilistic model.
38A generic approach is thus to add one single new module in NEMO,
39generating processes with appropriate statistics
40to simulate each kind of uncertainty in the model
41(see \cite{Brankart_al_GMD2015} for more details).
42
43In practice, at every model grid point, independent Gaussian autoregressive
44processes~$\xi^{(i)},\,i=1,\ldots,m$ are first generated
45using the same basic equation:
46
47\begin{equation}
48\label{eq:autoreg}
49\xi^{(i)}_{k+1} = a^{(i)} \xi^{(i)}_k + b^{(i)} w^{(i)} + c^{(i)}
50\end{equation}
51
52\noindent
53where $k$ is the index of the model timestep; and
54$a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are parameters defining
55the mean ($\mu^{(i)}$) standard deviation ($\sigma^{(i)}$)
56and correlation timescale ($\tau^{(i)}$) of each process:
57
58\begin{itemize}
59\item for order~1 processes, $w^{(i)}$ is a Gaussian white noise,
60with zero mean and standard deviation equal to~1, and the parameters
61$a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by:
62
63\begin{equation}
64\label{eq:ord1}
65\left\{
66\begin{array}{l}
67a^{(i)} = \varphi \\
68b^{(i)} = \sigma^{(i)} \sqrt{ 1 - \varphi^2 } 
69 \qquad\qquad\mbox{with}\qquad\qquad
70\varphi = \exp \left( - 1 / \tau^{(i)} \right) \\
71c^{(i)} = \mu^{(i)} \left( 1 - \varphi \right) \\
72\end{array}
73\right.
74\end{equation}
75
76\item for order~$n>1$ processes, $w^{(i)}$ is an order~$n-1$ autoregressive process,
77with zero mean, standard deviation equal to~$\sigma^{(i)}$; correlation timescale
78equal to~$\tau^{(i)}$; and the parameters
79$a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by:
80
81\begin{equation}
82\label{eq:ord2}
83\left\{
84\begin{array}{l}
85a^{(i)} = \varphi \\
86b^{(i)} = \frac{n-1}{2(4n-3)} \sqrt{ 1 - \varphi^2 } 
87 \qquad\qquad\mbox{with}\qquad\qquad
88\varphi = \exp \left( - 1 / \tau^{(i)} \right) \\
89c^{(i)} = \mu^{(i)} \left( 1 - \varphi \right) \\
90\end{array}
91\right.
92\end{equation}
93
94\end{itemize}
95
96\noindent
97In this way, higher order processes can be easily generated recursively using the same piece of code implementing Eq.~(\ref{eq:autoreg}), and using succesively processes from order $0$ to~$n-1$ as~$w^{(i)}$.
98The parameters in Eq.~(\ref{eq:ord2}) are computed so that this recursive application
99of Eq.~(\ref{eq:autoreg}) leads to processes with the required standard deviation
100and correlation timescale, with the additional condition that
101the $n-1$ first derivatives of the autocorrelation function
102are equal to zero at~$t=0$, so that the resulting processes
103become smoother and smoother as $n$ is increased.
104
105Overall, this method provides quite a simple and generic way of generating a wide class of stochastic processes. However, this also means that new model parameters are needed to specify each of these stochastic processes. As in any parameterization of lacking physics, a very important issues then to tune these new parameters using either first principles, model simulations, or real-world observations.
106
107\section{Implementation details}
108\label{STO_thech_details}
109The computer code implementing stochastic parametrisations is made of one single FORTRAN module,
110with 3 public routines to be called by the model (in our case, NEMO):
111
112The first routine ({sto\_par}) is a direct implementation of Eq.~(\ref{eq:autoreg}),
113applied at each model grid point (in 2D or 3D),
114and called at each model time step ($k$) to update
115every autoregressive process ($i=1,\ldots,m$).
116This routine also includes a filtering operator, applied to $w^{(i)}$,
117to introduce a spatial correlation between the stochastic processes.
118
119The second routine ({sto\_par\_init})
120is an initialization routine mainly dedicated
121to the computation of parameters $a^{(i)}, b^{(i)}, c^{(i)}$
122for each autoregressive process, as a function of the statistical properties
123required by the model user (mean, standard deviation, time correlation,
124order of the process,\ldots). Parameters for the processes can be specified through the following namelist parameters:
125\begin{alltt}
126\tiny
127\begin{verbatim}
128   nn_sto_eos = 1                ! number of independent random walks
129   rn_eos_stdxy = 1.4            ! random walk horz. standard deviation (in grid points)
130   rn_eos_stdz  = 0.7            ! random walk vert. standard deviation (in grid points)
131   rn_eos_tcor  = 1440.0         ! random walk time correlation (in timesteps)
132   nn_eos_ord  = 1               ! order of autoregressive processes
133   nn_eos_flt  = 0               ! passes of Laplacian filter
134   rn_eos_lim  = 2.0             ! limitation factor (default = 3.0)
135\end{verbatim}
136\end{alltt}
137This routine also includes the initialization (seeding)
138of the random number generator.
139
140The third routine ({sto\_rst\_write}) writes a ``restart file''
141with the current value of all autoregressive processes
142to allow restarting a simulation from where it has been interrupted.
143This file also contains the current state of the random number generator.
144In case of a restart, this file is then read by the initialization routine
145({sto\_par\_init}), so that the simulation can continue exactly
146as if it was not interrupted.
147Restart capabilities of the module are driven by the following namelist parameters:
148\begin{alltt}
149\tiny
150\begin{verbatim}
151   ln_rststo = .false.           ! start from mean parameter (F) or from restart file (T)
152   ln_rstseed = .true.           ! read seed of RNG from restart file
153   cn_storst_in  = "restart_sto" !  suffix of stochastic parameter restart file (input)
154   cn_storst_out = "restart_sto" !  suffix of stochastic parameter restart file (output)
155\end{verbatim}
156\end{alltt}
157
158In the particular case of the stochastic equation of state, there is also an additional module ({sto\_pts}) implementing Eq~\ref{eq:sto_pert} and specific piece of code in the equation of state implementing Eq~\ref{eq:eos_sto}.
159
160
161%\end{document}
Note: See TracBrowser for help on using the repository browser.