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.
Changeset 10354 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_STO.tex – NEMO

Ignore:
Timestamp:
2018-11-21T17:59:55+01:00 (5 years ago)
Author:
nicolasmartin
Message:

Vast edition of LaTeX subfiles to improve the readability by cutting sentences in a more suitable way
Every sentence begins in a new line and if necessary is splitted around 110 characters lenght for side-by-side visualisation,
this setting may not be adequate for everyone but something has to be set.
The punctuation was the primer trigger for the cutting process, otherwise subordinators and coordinators, in order to mostly keep a meaning for each line

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/doc/latex/NEMO/subfiles/chap_STO.tex

    r10146 r10354  
    1414 
    1515 
    16 The stochastic parametrization module aims to explicitly simulate uncertainties in the model.  
    17 More particularly, \cite{Brankart_OM2013} has shown that,  
    18 because of the nonlinearity of the seawater equation of state, unresolved scales represent  
    19 a major source of uncertainties in the computation of the large scale horizontal density gradient  
    20 (from T/S large scale fields), and that the impact of these uncertainties can be simulated  
    21 by random processes representing unresolved T/S fluctuations. 
     16The stochastic parametrization module aims to explicitly simulate uncertainties in the model. 
     17More particularly, \cite{Brankart_OM2013} has shown that, 
     18because of the nonlinearity of the seawater equation of state, unresolved scales represent a major source of 
     19uncertainties in the computation of the large scale horizontal density gradient (from T/S large scale fields), 
     20and that the impact of these uncertainties can be simulated by 
     21random processes representing unresolved T/S fluctuations. 
    2222 
    2323The stochastic formulation of the equation of state can be written as: 
     
    2626  \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)] \} 
    2727\end{equation} 
    28 where $p_o(z)$ is the reference pressure depending on the depth and,  
    29 $\Delta T_i$ and $\Delta S_i$ are a set of T/S perturbations defined as the scalar product  
    30 of the respective local T/S gradients with random walks $\mathbf{\xi}$: 
     28where $p_o(z)$ is the reference pressure depending on the depth and, 
     29$\Delta T_i$ and $\Delta S_i$ are a set of T/S perturbations defined as 
     30the scalar product of the respective local T/S gradients with random walks $\mathbf{\xi}$: 
    3131\begin{equation} 
    3232 \label{eq:sto_pert} 
    3333 \Delta T_i = \mathbf{\xi}_i \cdot \nabla T \qquad \hbox{and} \qquad \Delta S_i = \mathbf{\xi}_i \cdot \nabla S 
    3434\end{equation} 
    35 $\mathbf{\xi}_i$ are produced by a first-order autoregressive processes (AR-1) with  
    36 a parametrized decorrelation time scale, and horizontal and vertical standard deviations $\sigma_s$.  
     35$\mathbf{\xi}_i$ are produced by a first-order autoregressive processes (AR-1) with 
     36a parametrized decorrelation time scale, and horizontal and vertical standard deviations $\sigma_s$. 
    3737$\mathbf{\xi}$ are uncorrelated over the horizontal and fully correlated along the vertical. 
    3838 
     
    4141\label{sec:STO_the_details} 
    4242 
    43 The starting point of our implementation of stochastic parameterizations 
    44 in NEMO is to observe that many existing parameterizations are based 
    45 on autoregressive processes, which are used as a basic source of randomness 
    46 to transform a deterministic model into a probabilistic model. 
     43The starting point of our implementation of stochastic parameterizations in NEMO is to observe that 
     44many existing parameterizations are based on autoregressive processes, 
     45which are used as a basic source of randomness to transform a deterministic model into a probabilistic model. 
    4746A generic approach is thus to add one single new module in NEMO, 
    48 generating processes with appropriate statistics 
    49 to simulate each kind of uncertainty in the model 
     47generating processes with appropriate statistics to simulate each kind of uncertainty in the model 
    5048(see \cite{Brankart_al_GMD2015} for more details). 
    5149 
    52 In practice, at every model grid point, independent Gaussian autoregressive 
    53 processes~$\xi^{(i)},\,i=1,\ldots,m$ are first generated 
    54 using the same basic equation: 
     50In practice, at every model grid point, 
     51independent Gaussian autoregressive processes~$\xi^{(i)},\,i=1,\ldots,m$ are first generated using 
     52the same basic equation: 
    5553 
    5654\begin{equation} 
     
    6058 
    6159\noindent 
    62 where $k$ is the index of the model timestep; and 
    63 $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are parameters defining 
    64 the mean ($\mu^{(i)}$) standard deviation ($\sigma^{(i)}$) 
    65 and correlation timescale ($\tau^{(i)}$) of each process: 
     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: 
    6663 
    6764\begin{itemize} 
    68 \item for order~1 processes, $w^{(i)}$ is a Gaussian white noise, 
    69 with zero mean and standard deviation equal to~1, and the parameters 
    70 $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by: 
     65\item 
     66  for order~1 processes, $w^{(i)}$ is a Gaussian white noise, with zero mean and standard deviation equal to~1, 
     67  and the parameters $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by: 
    7168 
    7269\begin{equation} 
     
    8380\end{equation} 
    8481 
    85 \item for order~$n>1$ processes, $w^{(i)}$ is an order~$n-1$ autoregressive process, 
    86 with zero mean, standard deviation equal to~$\sigma^{(i)}$; correlation timescale 
    87 equal to~$\tau^{(i)}$; and the parameters $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by: 
     82\item 
     83  for order~$n>1$ processes, $w^{(i)}$ is an order~$n-1$ autoregressive process, with zero mean, 
     84  standard deviation equal to~$\sigma^{(i)}$; 
     85  correlation timescale equal to~$\tau^{(i)}$; 
     86  and the parameters $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by: 
    8887 
    8988\begin{equation} 
     
    103102 
    104103\noindent 
    105 In this way, higher order processes can be easily generated recursively using  
    106 the same piece of code implementing (\autoref{eq:autoreg}),  
    107 and using succesively processes from order $0$ to~$n-1$ as~$w^{(i)}$. 
    108 The parameters in (\autoref{eq:ord2}) are computed so that this recursive application 
    109 of (\autoref{eq:autoreg}) leads to processes with the required standard deviation 
    110 and correlation timescale, with the additional condition that 
    111 the $n-1$ first derivatives of the autocorrelation function 
    112 are equal to zero at~$t=0$, so that the resulting processes 
    113 become smoother and smoother as $n$ is increased. 
     104In this way, higher order processes can be easily generated recursively using the same piece of code implementing 
     105(\autoref{eq:autoreg}), and using succesively processes from order $0$ to~$n-1$ as~$w^{(i)}$. 
     106The parameters in (\autoref{eq:ord2}) are computed so that this recursive application of 
     107(\autoref{eq:autoreg}) leads to processes with the required standard deviation and correlation timescale, 
     108with the additional condition that the $n-1$ first derivatives of the autocorrelation function are equal to 
     109zero at~$t=0$, so that the resulting processes become smoother and smoother as $n$ is increased. 
    114110 
    115 Overall, this method provides quite a simple and generic way of generating  
    116 a wide class of stochastic processes.  
    117 However, this also means that new model parameters are needed to specify each of  
    118 these stochastic processes. As in any parameterization of lacking physics,  
    119 a very important issues then to tune these new parameters using either first principles,  
    120 model simulations, or real-world observations. 
     111Overall, this method provides quite a simple and generic way of generating a wide class of stochastic processes. 
     112However, this also means that new model parameters are needed to specify each of these stochastic processes. 
     113As in any parameterization of lacking physics, a very important issues then to tune these new parameters using 
     114either first principles, model simulations, or real-world observations. 
    121115 
    122116\section{Implementation details} 
     
    131125It involves three modules :  
    132126\begin{description} 
    133 \item[\mdl{stopar}] : define the Stochastic parameters and their time evolution. 
    134 \item[\mdl{storng}] : a random number generator based on (and includes) the 64-bit KISS  
    135                       (Keep It Simple Stupid) random number generator distributed by George Marsaglia  
    136                       (see \href{https://groups.google.com/forum/#!searchin/comp.lang.fortran/64-bit$20KISS$20RNGs}{here}) 
    137 \item[\mdl{stopts}] : stochastic parametrisation associated with the non-linearity of the equation of seawater,  
    138  implementing \autoref{eq:sto_pert} and specific piece of code in the equation of state implementing \autoref{eq:eos_sto}. 
     127\item[\mdl{stopar}:] 
     128  define the Stochastic parameters and their time evolution. 
     129\item[\mdl{storng}:] 
     130  a random number generator based on (and includes) the 64-bit KISS (Keep It Simple Stupid) random number generator 
     131  distributed by George Marsaglia 
     132  (see \href{https://groups.google.com/forum/#!searchin/comp.lang.fortran/64-bit$20KISS$20RNGs}{here}) 
     133\item[\mdl{stopts}:] 
     134  stochastic parametrisation associated with the non-linearity of the equation of seawater, 
     135  implementing \autoref{eq:sto_pert} and specific piece of code in 
     136  the equation of state implementing \autoref{eq:eos_sto}. 
    139137\end{description} 
    140138 
     
    142140 
    143141The first routine (\rou{sto\_par}) is a direct implementation of (\autoref{eq:autoreg}), 
    144 applied at each model grid point (in 2D or 3D),  
    145 and called at each model time step ($k$) to update 
    146 every autoregressive process ($i=1,\ldots,m$). 
     142applied at each model grid point (in 2D or 3D), and called at each model time step ($k$) to 
     143update every autoregressive process ($i=1,\ldots,m$). 
    147144This routine also includes a filtering operator, applied to $w^{(i)}$, 
    148145to introduce a spatial correlation between the stochastic processes. 
    149146 
    150 The second routine (\rou{sto\_par\_init}) is an initialization routine mainly dedicated 
    151 to the computation of parameters $a^{(i)}, b^{(i)}, c^{(i)}$ 
    152 for each autoregressive process, as a function of the statistical properties 
    153 required by the model user (mean, standard deviation, time correlation, 
    154 order of the process,\ldots).  
     147The second routine (\rou{sto\_par\_init}) is an initialization routine mainly dedicated to 
     148the computation of parameters $a^{(i)}, b^{(i)}, c^{(i)}$ for each autoregressive process, 
     149as a function of the statistical properties required by the model user 
     150(mean, standard deviation, time correlation, order of the process,\ldots).  
    155151 
    156152Parameters for the processes can be specified through the following \ngn{namsto} namelist parameters: 
    157153\begin{description} 
    158    \item[\np{nn\_sto\_eos}]   : number of independent random walks  
    159    \item[\np{rn\_eos\_stdxy}] : random walk horz. standard deviation (in grid points) 
    160    \item[\np{rn\_eos\_stdz}]  : random walk vert. standard deviation (in grid points) 
    161    \item[\np{rn\_eos\_tcor}]  : random walk time correlation (in timesteps) 
    162    \item[\np{nn\_eos\_ord}]   : order of autoregressive processes 
    163    \item[\np{nn\_eos\_flt}]   : passes of Laplacian filter 
    164    \item[\np{rn\_eos\_lim}]   : limitation factor (default = 3.0) 
     154\item[\np{nn\_sto\_eos}:]   number of independent random walks 
     155\item[\np{rn\_eos\_stdxy}:] random walk horz. standard deviation (in grid points) 
     156\item[\np{rn\_eos\_stdz}:] random walk vert. standard deviation (in grid points) 
     157\item[\np{rn\_eos\_tcor}:] random walk time correlation (in timesteps) 
     158\item[\np{nn\_eos\_ord}:]  order of autoregressive processes 
     159\item[\np{nn\_eos\_flt}:]  passes of Laplacian filter 
     160\item[\np{rn\_eos\_lim}:]  limitation factor (default = 3.0) 
    165161\end{description} 
    166162This routine also includes the initialization (seeding) of the random number generator. 
    167163 
    168 The third routine (\rou{sto\_rst\_write}) writes a restart file (which suffix name is  
    169 given by \np{cn\_storst\_out} namelist parameter) containing the current value of  
     164The third routine (\rou{sto\_rst\_write}) writes a restart file 
     165(which suffix name is given by \np{cn\_storst\_out} namelist parameter) containing the current value of 
    170166all autoregressive processes to allow restarting a simulation from where it has been interrupted. 
    171167This file also contains the current state of the random number generator. 
    172 When \np{ln\_rststo} is set to \forcode{.true.}), the restart file (which suffix name is  
    173 given by \np{cn\_storst\_in} namelist parameter) is read by the initialization routine  
    174 (\rou{sto\_par\_init}). The simulation will continue exactly as if it was not interrupted 
    175 only  when \np{ln\_rstseed} is set to \forcode{.true.}, $i.e.$ when the state of  
    176 the random number generator is read in the restart file. 
     168When \np{ln\_rststo} is set to \forcode{.true.}), 
     169the restart file (which suffix name is given by \np{cn\_storst\_in} namelist parameter) is read by 
     170the initialization routine (\rou{sto\_par\_init}). 
     171The simulation will continue exactly as if it was not interrupted only 
     172when \np{ln\_rstseed} is set to \forcode{.true.}, 
     173$i.e.$ when the state of the random number generator is read in the restart file. 
    177174 
    178175 
Note: See TracChangeset for help on using the changeset viewer.