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