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 6497 for trunk/DOC – NEMO

Changeset 6497 for trunk/DOC


Ignore:
Timestamp:
2016-04-27T09:33:46+02:00 (8 years ago)
Author:
gm
Message:

#1720 - trunk: add Casimir tidal parameterization

Location:
trunk/DOC/TexFiles
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/DOC/TexFiles/Chapters/Chap_DIA.tex

    r6289 r6497  
    14091409 
    14101410% ------------------------------------------------------------------------------------------------------------- 
    1411 %       25 hour mean and hourly Surface, Mid and Bed  
    1412 % ------------------------------------------------------------------------------------------------------------- 
    1413 \section{25 hour mean output for tidal models } 
    1414  
    1415 A module is available to compute a crudely detided M2 signal by obtaining a 25 hour mean. 
    1416 The 25 hour mean is available for daily runs by summing up the 25 hourly instantananeous hourly values from 
    1417 midnight at the start of the day to midight at the day end. 
    1418 This diagnostic is actived with the logical  $ln\_dia25h$ 
    1419  
    1420 %------------------------------------------nam_dia25h------------------------------------------------------ 
    1421 \namdisplay{nam_dia25h} 
    1422 %---------------------------------------------------------------------------------------------------------- 
    1423  
    1424 \section{Top Middle and Bed hourly output } 
    1425  
    1426 A module is available to output the surface (top), mid water and bed diagnostics of a set of standard variables.  
    1427 This can be a useful diagnostic when hourly or sub-hourly output is required in high resolution tidal outputs. 
    1428 The tidal signal is retained but the overall data usage is cut to just three vertical levels. Also the bottom level  
    1429 is calculated for each cell. 
    1430 This diagnostic is actived with the logical  $ln\_diatmb$ 
    1431  
    1432 %------------------------------------------nam_diatmb----------------------------------------------------- 
    1433 \namdisplay{nam_diatmb} 
    1434 %---------------------------------------------------------------------------------------------------------- 
    1435  
    1436 % ------------------------------------------------------------------------------------------------------------- 
    14371411%       Sections transports 
    14381412% ------------------------------------------------------------------------------------------------------------- 
     
    14401414\label{DIA_diag_dct} 
    14411415 
     1416%------------------------------------------namdct---------------------------------------------------- 
     1417\namdisplay{namdct} 
     1418%------------------------------------------------------------------------------------------------------------- 
     1419 
    14421420A module is available to compute the transport of volume, heat and salt through sections.  
    14431421This diagnostic is actived with \key{diadct}. 
     
    14591437and the time scales over which they are averaged, as well as the level of output for debugging: 
    14601438 
    1461 %------------------------------------------namdct---------------------------------------------------- 
    1462 \namdisplay{namdct} 
    1463 %------------------------------------------------------------------------------------------------------------- 
    1464  
    14651439\np{nn\_dct}: frequency of instantaneous transports computing 
    14661440 
     
    14691443\np{nn\_debug}: debugging of the section 
    14701444 
    1471 \subsubsection{ To create a binary file containing the pathway of each section } 
    1472  
    1473 In \texttt{NEMOGCM/TOOLS/SECTIONS\_DIADCT/run}, the file \texttt{ {list\_sections.ascii\_global}} 
     1445\subsubsection{ Creating a binary file containing the pathway of each section } 
     1446 
     1447In \texttt{NEMOGCM/TOOLS/SECTIONS\_DIADCT/run}, the file \textit{ {list\_sections.ascii\_global}} 
    14741448contains a list of all the sections that are to be computed (this list of sections is based on MERSEA project metrics). 
    14751449 
     
    15831557\texttt{=/0, =/ 1000.}   &  diagonal   & eastward  & westward  & postive: eastward  \\ \hline                 
    15841558\end{tabular} 
    1585  
    1586  
    1587  
    1588 % ------------------------------------------------------------------------------------------------------------- 
    1589 %       Other Diagnostics 
    1590 % ------------------------------------------------------------------------------------------------------------- 
    1591 \section{Other Diagnostics (\key{diahth}, \key{diaar5})} 
    1592 \label{DIA_diag_others} 
    1593  
    1594  
    1595 Aside from the standard model variables, other diagnostics can be computed  
    1596 on-line. The available ready-to-add diagnostics routines can be found in directory DIA.  
    1597 Among the available diagnostics the following ones are obtained when defining  
    1598 the \key{diahth} CPP key:  
    1599  
    1600 - the mixed layer depth (based on a density criterion \citep{de_Boyer_Montegut_al_JGR04}) (\mdl{diahth}) 
    1601  
    1602 - the turbocline depth (based on a turbulent mixing coefficient criterion) (\mdl{diahth}) 
    1603  
    1604 - the depth of the 20\deg C isotherm (\mdl{diahth}) 
    1605  
    1606 - the depth of the thermocline (maximum of the vertical temperature gradient) (\mdl{diahth}) 
    1607  
    1608 The poleward heat and salt transports, their advective and diffusive component, and  
    1609 the meriodional stream function can be computed on-line in \mdl{diaptr}  
    1610 \np{ln\_diaptr} to true (see the \textit{\ngn{namptr} } namelist below).   
    1611 When \np{ln\_subbas}~=~true, transports and stream function are computed  
    1612 for the Atlantic, Indian, Pacific and Indo-Pacific Oceans (defined north of 30\deg S)  
    1613 as well as for the World Ocean. The sub-basin decomposition requires an input file  
    1614 (\ifile{subbasins}) which contains three 2D mask arrays, the Indo-Pacific mask  
    1615 been deduced from the sum of the Indian and Pacific mask (Fig~\ref{Fig_mask_subasins}).  
    1616  
    1617 %------------------------------------------namptr---------------------------------------------------- 
    1618 \namdisplay{namptr}  
    1619 %------------------------------------------------------------------------------------------------------------- 
    1620 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1621 \begin{figure}[!t]     \begin{center} 
    1622 \includegraphics[width=1.0\textwidth]{./TexFiles/Figures/Fig_mask_subasins.pdf} 
    1623 \caption{   \label{Fig_mask_subasins} 
    1624 Decomposition of the World Ocean (here ORCA2) into sub-basin used in to compute 
    1625 the heat and salt transports as well as the meridional stream-function: Atlantic basin (red),  
    1626 Pacific basin (green), Indian basin (bleue), Indo-Pacific basin (bleue+green).  
    1627 Note that semi-enclosed seas (Red, Med and Baltic seas) as well as Hudson Bay  
    1628 are removed from the sub-basins. Note also that the Arctic Ocean has been split  
    1629 into Atlantic and Pacific basins along the North fold line.  } 
    1630 \end{center}   \end{figure}   
    1631 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1632  
    1633 In addition, a series of diagnostics has been added in the \mdl{diaar5}.  
    1634 They corresponds to outputs that are required for AR5 simulations  
    1635 (see Section \ref{DIA_steric} below for one of them).  
    1636 Activating those outputs requires to define the \key{diaar5} CPP key. 
    1637 \\ 
    1638 \\ 
    1639  
    1640 \section{Courant numbers} 
    1641 Courant numbers provide a theoretical indication of the model's numerical stability. The advective Courant numbers can be calculated according to 
    1642 \begin{equation} 
    1643 \label{eq:CFL} 
    1644 C_u = |u|\frac{\rdt}{e_{1u}}, \quad C_v = |v|\frac{\rdt}{e_{2v}}, \quad C_w = |w|\frac{\rdt}{e_{3w}} 
    1645 \end{equation} 
    1646 in the zonal, meridional and vertical directions respectively. The vertical component is included although it is not strictly valid as the vertical velocity is calculated from the continuity equation rather than as a prognostic variable. Physically this represents the rate at which information is propogated across a grid cell. Values greater than 1 indicate that information is propagated across more than one grid cell in a single time step. 
    1647  
    1648 The variables can be activated by setting the \np{nn\_diacfl} namelist parameter to 1 in the \ngn{namctl} namelist. The diagnostics will be written out to an ascii file named cfl\_diagnostics.ascii. In this file the maximum value of $C_u$, $C_v$, and $C_w$ are printed at each timestep along with the coordinates of where the maximum value occurs. At the end of the model run the maximum value of $C_u$, $C_v$, and $C_w$ for the whole model run is printed along with the coordinates of each. The maximum values from the run are also copied to the ocean.output file.  
    16491559 
    16501560 
     
    18021712the \key{diaar5} defined to be called. 
    18031713 
     1714 
     1715 
     1716% ------------------------------------------------------------------------------------------------------------- 
     1717%       Other Diagnostics 
     1718% ------------------------------------------------------------------------------------------------------------- 
     1719\section{Other Diagnostics (\key{diahth}, \key{diaar5})} 
     1720\label{DIA_diag_others} 
     1721 
     1722 
     1723Aside from the standard model variables, other diagnostics can be computed on-line.  
     1724The available ready-to-add diagnostics modules can be found in directory DIA.  
     1725 
     1726\subsection{Depth of various quantities (\mdl{diahth})} 
     1727 
     1728Among the available diagnostics the following ones are obtained when defining  
     1729the \key{diahth} CPP key:  
     1730 
     1731- the mixed layer depth (based on a density criterion \citep{de_Boyer_Montegut_al_JGR04}) (\mdl{diahth}) 
     1732 
     1733- the turbocline depth (based on a turbulent mixing coefficient criterion) (\mdl{diahth}) 
     1734 
     1735- the depth of the 20\deg C isotherm (\mdl{diahth}) 
     1736 
     1737- the depth of the thermocline (maximum of the vertical temperature gradient) (\mdl{diahth}) 
     1738 
     1739% ----------------------------------------------------------- 
     1740%     Poleward heat and salt transports 
     1741% ----------------------------------------------------------- 
     1742 
     1743\subsection{Poleward heat and salt transports (\mdl{diaptr})} 
     1744 
     1745%------------------------------------------namptr----------------------------------------- 
     1746\namdisplay{namptr}  
     1747%----------------------------------------------------------------------------------------- 
     1748 
     1749The poleward heat and salt transports, their advective and diffusive component, and  
     1750the meriodional stream function can be computed on-line in \mdl{diaptr}  
     1751\np{ln\_diaptr} to true (see the \textit{\ngn{namptr} } namelist below).   
     1752When \np{ln\_subbas}~=~true, transports and stream function are computed  
     1753for the Atlantic, Indian, Pacific and Indo-Pacific Oceans (defined north of 30\deg S)  
     1754as well as for the World Ocean. The sub-basin decomposition requires an input file  
     1755(\ifile{subbasins}) which contains three 2D mask arrays, the Indo-Pacific mask  
     1756been deduced from the sum of the Indian and Pacific mask (Fig~\ref{Fig_mask_subasins}).  
     1757 
     1758%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     1759\begin{figure}[!t]     \begin{center} 
     1760\includegraphics[width=1.0\textwidth]{./TexFiles/Figures/Fig_mask_subasins.pdf} 
     1761\caption{   \label{Fig_mask_subasins} 
     1762Decomposition of the World Ocean (here ORCA2) into sub-basin used in to compute 
     1763the heat and salt transports as well as the meridional stream-function: Atlantic basin (red),  
     1764Pacific basin (green), Indian basin (bleue), Indo-Pacific basin (bleue+green).  
     1765Note that semi-enclosed seas (Red, Med and Baltic seas) as well as Hudson Bay  
     1766are removed from the sub-basins. Note also that the Arctic Ocean has been split  
     1767into Atlantic and Pacific basins along the North fold line.  } 
     1768\end{center}   \end{figure}   
     1769%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     1770 
     1771 
     1772% ----------------------------------------------------------- 
     1773%       CMIP specific diagnostics  
     1774% ----------------------------------------------------------- 
     1775\subsection{CMIP specific diagnostics (\mdl{diaar5})} 
     1776 
     1777A series of diagnostics has been added in the \mdl{diaar5}.  
     1778They corresponds to outputs that are required for AR5 simulations (CMIP5) 
     1779(see also Section \ref{DIA_steric} for one of them).  
     1780Activating those outputs requires to define the \key{diaar5} CPP key. 
     1781 
     1782 
     1783% ----------------------------------------------------------- 
     1784%       25 hour mean and hourly Surface, Mid and Bed  
     1785% ----------------------------------------------------------- 
     1786\subsection{25 hour mean output for tidal models } 
     1787 
     1788%------------------------------------------nam_dia25h------------------------------------- 
     1789\namdisplay{nam_dia25h} 
     1790%----------------------------------------------------------------------------------------- 
     1791 
     1792A module is available to compute a crudely detided M2 signal by obtaining a 25 hour mean. 
     1793The 25 hour mean is available for daily runs by summing up the 25 hourly instantananeous hourly values from 
     1794midnight at the start of the day to midight at the day end. 
     1795This diagnostic is actived with the logical  $ln\_dia25h$ 
     1796 
     1797 
     1798% ----------------------------------------------------------- 
     1799%     Top Middle and Bed hourly output 
     1800% ----------------------------------------------------------- 
     1801\subsection{Top Middle and Bed hourly output } 
     1802 
     1803%------------------------------------------nam_diatmb----------------------------------------------------- 
     1804\namdisplay{nam_diatmb} 
     1805%---------------------------------------------------------------------------------------------------------- 
     1806 
     1807A module is available to output the surface (top), mid water and bed diagnostics of a set of standard variables.  
     1808This can be a useful diagnostic when hourly or sub-hourly output is required in high resolution tidal outputs. 
     1809The tidal signal is retained but the overall data usage is cut to just three vertical levels. Also the bottom level  
     1810is calculated for each cell. 
     1811This diagnostic is actived with the logical  $ln\_diatmb$ 
     1812 
     1813 
     1814 
     1815% ----------------------------------------------------------- 
     1816%     Courant numbers 
     1817% ----------------------------------------------------------- 
     1818\subsection{Courant numbers} 
     1819Courant numbers provide a theoretical indication of the model's numerical stability. The advective Courant numbers can be calculated according to 
     1820\begin{equation} 
     1821\label{eq:CFL} 
     1822C_u = |u|\frac{\rdt}{e_{1u}}, \quad C_v = |v|\frac{\rdt}{e_{2v}}, \quad C_w = |w|\frac{\rdt}{e_{3w}} 
     1823\end{equation} 
     1824in the zonal, meridional and vertical directions respectively. The vertical component is included although it is not strictly valid as the vertical velocity is calculated from the continuity equation rather than as a prognostic variable. Physically this represents the rate at which information is propogated across a grid cell. Values greater than 1 indicate that information is propagated across more than one grid cell in a single time step. 
     1825 
     1826The variables can be activated by setting the \np{nn\_diacfl} namelist parameter to 1 in the \ngn{namctl} namelist. The diagnostics will be written out to an ascii file named cfl\_diagnostics.ascii. In this file the maximum value of $C_u$, $C_v$, and $C_w$ are printed at each timestep along with the coordinates of where the maximum value occurs. At the end of the model run the maximum value of $C_u$, $C_v$, and $C_w$ for the whole model run is printed along with the coordinates of each. The maximum values from the run are also copied to the ocean.output file.  
     1827 
     1828 
    18041829% ================================================================ 
    18051830 
  • trunk/DOC/TexFiles/Chapters/Chap_DOM.tex

    r6320 r6497  
    486486The last choice in terms of vertical coordinate concerns the presence (or not) in the model domain  
    487487of ocean cavities beneath ice shelves. Setting \np{ln\_isfcav} to true allows to manage ocean cavities,  
    488 otherwise they are filled in. 
     488otherwise they are filled in. This option is currently only available in $z$- or $zps$-coordinate, 
     489and partial step are also applied at the ocean/ice shelf interface.  
    489490 
    490491Contrary to the horizontal grid, the vertical grid is computed in the code and no  
     
    772773\end{equation} 
    773774 
    774 where $s_{min}$ is the depth at which the s-coordinate stretching starts and  
    775 allows a z-coordinate to placed on top of the stretched coordinate,  
    776 and z is the depth (negative down from the asea surface). 
     775where $s_{min}$ is the depth at which the $s$-coordinate stretching starts and  
     776allows a $z$-coordinate to placed on top of the stretched coordinate,  
     777and $z$ is the depth (negative down from the asea surface). 
    777778 
    778779\begin{equation} 
     
    886887that do not communicate with another ocean point at the same level are eliminated. 
    887888 
    888 In case of ice shelf cavities, as for the representation of bathymetry, a 2D integer array, misfdep, is created.  
    889 misfdep defines the level of the first wet $t$-point (ie below the ice-shelf/ocean interface). All the cells between $k=1$ and $misfdep(i,j)-1$ are masked.  
    890 By default, $misfdep(:,:)=1$ and no cells are masked. 
    891 Modifications of the model bathymetry and ice shelf draft into  
     889As for the representation of bathymetry, a 2D integer array, misfdep, is created.  
     890misfdep defines the level of the first wet $t$-point. All the cells between $k=1$ and $misfdep(i,j)-1$ are masked.  
     891By default, misfdep(:,:)=1 and no cells are masked. 
     892 
     893In case of ice shelf cavities, modifications of the model bathymetry and ice shelf draft into  
    892894the cavities are performed in the \textit{zgr\_isf} routine. The compatibility between ice shelf draft and bathymetry is checked.  
    893895All the locations where the isf cavity is thinnest than \np{rn\_isfhmin} meters are grounded ($i.e.$ masked).  
     
    903905vmask(i,j,k) &=         \; tmask(i,j,k) \ * \ tmask(i,j+1,k)   \\ 
    904906fmask(i,j,k) &=         \; tmask(i,j,k) \ * \ tmask(i+1,j,k)   \\ 
    905                    & \ \ \, * tmask(i,j,k) \ * \ tmask(i+1,j,k) \\ 
     907             &    \ \ \, * tmask(i,j,k) \ * \ tmask(i+1,j,k) \\ 
    906908wmask(i,j,k) &=         \; tmask(i,j,k) \ * \ tmask(i,j,k-1) \text{ with } wmask(i,j,1) = tmask(i,j,1)  
    907909\end{align*} 
    908910 
    909 Note, wmask is now defined. It allows, in case of ice shelves,  
    910 to deal with the top boundary (ice shelf/ocean interface) exactly in the same way as for the bottom boundary.  
     911Note that, without ice shelves cavities, masks at $t-$ and $w-$points are identical with  
     912the numerical indexing used (\S~\ref{DOM_Num_Index}). Nevertheless, $wmask$ are required  
     913with oceean cavities to deal with the top boundary (ice shelf/ocean interface)  
     914exactly in the same way as for the bottom boundary.  
    911915 
    912916The specification of closed lateral boundaries requires that at least the first and last  
     
    916920(and so too the mask arrays) (see \S~\ref{LBC_jperio}). 
    917921 
    918 %%% 
    919 \gmcomment{   \colorbox{yellow}{Add one word on tricky trick !} mbathy in further modified in zdfbfr{\ldots}.  } 
    920 %%% 
    921922 
    922923% ================================================================ 
  • trunk/DOC/TexFiles/Chapters/Chap_SBC.tex

    r6320 r6497  
    128128The ocean model provides, at each time step, to the surface module (\mdl{sbcmod})  
    129129the surface currents, temperature and salinity.   
    130 These variables are averaged over \np{nf\_sbc} time-step (\ref{Tab_ssm}),  
     130These variables are averaged over \np{nn\_fsbc} time-step (\ref{Tab_ssm}),  
    131131and it is these averaged fields which are used to computes the surface fluxes  
    132 at a frequency of \np{nf\_sbc} time-step. 
     132at a frequency of \np{nn\_fsbc} time-step. 
    133133 
    134134 
     
    144144\caption{  \label{Tab_ssm}    
    145145Ocean variables provided by the ocean to the surface module (SBC).  
    146 The variable are averaged over nf{\_}sbc time step, $i.e.$ the frequency of  
    147 computation of surface fluxes.} 
     146The variable are averaged over nn{\_}fsbc time step,  
     147$i.e.$ the frequency of computation of surface fluxes.} 
    148148\end{center}   \end{table} 
    149149%-------------------------------------------------------------------------------------------------------------- 
     
    592592or larger than the one of the input atmospheric fields. 
    593593 
     594The \np{sn\_wndi}, \np{sn\_wndj}, \np{sn\_qsr}, \np{sn\_qlw}, \np{sn\_tair}, \np{sn\_humi}, 
     595\np{sn\_prec}, \np{sn\_snow}, \np{sn\_tdif} parameters describe the fields  
     596and the way they have to be used (spatial and temporal interpolations).  
     597 
     598\np{cn\_dir} is the directory of location of bulk files 
     599\np{ln\_taudif} is the flag to specify if we use Hight Frequency (HF) tau information (.true.) or not (.false.) 
     600\np{rn\_zqt}: is the height of humidity and temperature measurements (m) 
     601\np{rn\_zu}: is the height of wind measurements (m) 
     602 
     603Three multiplicative factors are availables :  
     604\np{rn\_pfac} and \np{rn\_efac} allows to adjust (if necessary) the global freshwater budget  
     605by increasing/reducing the precipitations (total and snow) and or evaporation, respectively. 
     606The third one,\np{rn\_vfac}, control to which extend the ice/ocean velocities are taken into account  
     607in the calculation of surface wind stress. Its range should be between zero and one,  
     608and it is recommended to set it to 0. 
     609 
    594610% ------------------------------------------------------------------------------------------------------------- 
    595611%        CLIO Bulk formulea 
     
    926942\begin{description} 
    927943\item[\np{nn\_isf}~=~1] 
    928 The ice shelf cavity is represented (\np{ln\_isfcav}~=~true needed). The fwf and heat flux are computed. Two different bulk formula are available: 
     944The ice shelf cavity is represented (\np{ln\_isfcav}~=~true needed). The fwf and heat flux are computed.  
     945Two different bulk formula are available: 
    929946   \begin{description} 
    930947   \item[\np{nn\_isfblk}~=~1] 
     
    9881005This parameter is only used if \np{nn\_isf}~=~1 or \np{nn\_isf}~=~4 
    9891006 
    990 If \np{rn\_hisf\_tbl} = 0.0, the fluxes are put in the top level whatever is its tickness.  
    991  
    992 If \np{rn\_hisf\_tbl} $>$ 0.0, the fluxes are spread over the first \np{rn\_hisf\_tbl} m (ie over one or several cells).\\ 
     1007If \np{rn\_hisf\_tbl} = 0., the fluxes are put in the top level whatever is its tickness.  
     1008 
     1009If \np{rn\_hisf\_tbl} $>$ 0., the fluxes are spread over the first \np{rn\_hisf\_tbl} m (ie over one or several cells).\\ 
    9931010 
    9941011The ice shelf melt is implemented as a volume flux with in the same way as for the runoff. 
  • trunk/DOC/TexFiles/Chapters/Chap_STO.tex

    r6289 r6497  
    55\label{STO} 
    66 
     7Authors: P.-A. Bouttier 
     8 
    79\minitoc 
    810 
     11\newpage 
    912 
    10 \newpage 
    11 $\ $\newline    % force a new line 
     13 
     14The stochastic parametrization module aims to explicitly simulate uncertainties in the model.  
     15More particularly, \cite{Brankart_OM2013} has shown that,  
     16because of the nonlinearity of the seawater equation of state, unresolved scales represent  
     17a major source of uncertainties in the computation of the large scale horizontal density gradient  
     18(from T/S large scale fields), and that the impact of these uncertainties can be simulated  
     19by random processes representing unresolved T/S fluctuations. 
     20 
     21The stochastic formulation of the equation of state can be written as: 
     22\begin{equation} 
     23 \label{eq:eos_sto} 
     24  \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)] \} 
     25\end{equation} 
     26where $p_o(z)$ is the reference pressure depending on the depth and,  
     27$\Delta T_i$ and $\Delta S_i$ are a set of T/S perturbations defined as the scalar product  
     28of the respective local T/S gradients with random walks $\mathbf{\xi}$: 
     29\begin{equation} 
     30 \label{eq:sto_pert} 
     31 \Delta T_i = \mathbf{\xi}_i \cdot \nabla T \qquad \hbox{and} \qquad \Delta S_i = \mathbf{\xi}_i \cdot \nabla S 
     32\end{equation} 
     33$\mathbf{\xi}_i$ are produced by a first-order autoregressive processes (AR-1) with  
     34a parametrized decorrelation time scale, and horizontal and vertical standard deviations $\sigma_s$.  
     35$\mathbf{\xi}$ are uncorrelated over the horizontal and fully correlated along the vertical. 
     36 
     37 
     38\section{Stochastic processes} 
     39\label{STO_the_details} 
     40 
     41The starting point of our implementation of stochastic parameterizations 
     42in NEMO is to observe that many existing parameterizations are based 
     43on autoregressive processes, which are used as a basic source of randomness 
     44to transform a deterministic model into a probabilistic model. 
     45A generic approach is thus to add one single new module in NEMO, 
     46generating processes with appropriate statistics 
     47to simulate each kind of uncertainty in the model 
     48(see \cite{Brankart_al_GMD2015} for more details). 
     49 
     50In practice, at every model grid point, independent Gaussian autoregressive 
     51processes~$\xi^{(i)},\,i=1,\ldots,m$ are first generated 
     52using the same basic equation: 
     53 
     54\begin{equation} 
     55\label{eq: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 
     62the mean ($\mu^{(i)}$) standard deviation ($\sigma^{(i)}$) 
     63and correlation timescale ($\tau^{(i)}$) of each process: 
     64 
     65\begin{itemize} 
     66\item for order~1 processes, $w^{(i)}$ is a Gaussian white noise, 
     67with zero mean and standard deviation equal to~1, and the parameters 
     68$a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by: 
     69 
     70\begin{equation} 
     71\label{eq:ord1} 
     72\left\{ 
     73\begin{array}{l} 
     74a^{(i)} = \varphi \\ 
     75b^{(i)} = \sigma^{(i)} \sqrt{ 1 - \varphi^2 }  
     76 \qquad\qquad\mbox{with}\qquad\qquad 
     77\varphi = \exp \left( - 1 / \tau^{(i)} \right) \\ 
     78c^{(i)} = \mu^{(i)} \left( 1 - \varphi \right) \\ 
     79\end{array} 
     80\right. 
     81\end{equation} 
     82 
     83\item for order~$n>1$ processes, $w^{(i)}$ is an order~$n-1$ autoregressive process, 
     84with zero mean, standard deviation equal to~$\sigma^{(i)}$; correlation timescale 
     85equal to~$\tau^{(i)}$; and the parameters $a^{(i)}$, $b^{(i)}$, $c^{(i)}$ are given by: 
     86 
     87\begin{equation} 
     88\label{eq:ord2} 
     89\left\{ 
     90\begin{array}{l} 
     91a^{(i)} = \varphi \\ 
     92b^{(i)} = \frac{n-1}{2(4n-3)} \sqrt{ 1 - \varphi^2 }  
     93 \qquad\qquad\mbox{with}\qquad\qquad 
     94\varphi = \exp \left( - 1 / \tau^{(i)} \right) \\ 
     95c^{(i)} = \mu^{(i)} \left( 1 - \varphi \right) \\ 
     96\end{array} 
     97\right. 
     98\end{equation} 
     99 
     100\end{itemize} 
     101 
     102\noindent 
     103In this way, higher order processes can be easily generated recursively using  
     104the same piece of code implementing Eq.~(\ref{eq:autoreg}),  
     105and using succesively processes from order $0$ to~$n-1$ as~$w^{(i)}$. 
     106The parameters in Eq.~(\ref{eq:ord2}) are computed so that this recursive application 
     107of Eq.~(\ref{eq:autoreg}) leads to processes with the required standard deviation 
     108and correlation timescale, with the additional condition that 
     109the $n-1$ first derivatives of the autocorrelation function 
     110are equal to zero at~$t=0$, so that the resulting processes 
     111become smoother and smoother as $n$ is increased. 
     112 
     113Overall, this method provides quite a simple and generic way of generating  
     114a wide class of stochastic processes.  
     115However, this also means that new model parameters are needed to specify each of  
     116these stochastic processes. As in any parameterization of lacking physics,  
     117a very important issues then to tune these new parameters using either first principles,  
     118model simulations, or real-world observations. 
     119 
     120\section{Implementation details} 
     121\label{STO_thech_details} 
     122 
    12123%---------------------------------------namsbc-------------------------------------------------- 
    13124\namdisplay{namsto} 
    14125%-------------------------------------------------------------------------------------------------------------- 
    15 $\ $\newline    % force a new ligne 
    16126 
     127The computer code implementing stochastic parametrisations can be found in the STO directory. 
     128It involves three modules :  
     129\begin{description} 
     130\item[\mdl{stopar}] : define the Stochastic parameters and their time evolution. 
     131\item[\mdl{storng}] : a random number generator based on (and includes) the 64-bit KISS  
     132                      (Keep It Simple Stupid) random number generator distributed by George Marsaglia  
     133                      (see \href{https://groups.google.com/forum/#!searchin/comp.lang.fortran/64-bit$20KISS$20RNGs}{here}) 
     134\item[\mdl{stopts}] : stochastic parametrisation associated with the non-linearity of the equation of seawater,  
     135 implementing Eq~\ref{eq:sto_pert} and specific piece of code in the equation of state implementing Eq~\ref{eq:eos_sto}. 
     136\end{description} 
    17137 
    18 See \cite{Brankart_OM2013} and \cite{Brankart_al_GMD2015} papers for a description of the parameterization. 
     138The \mdl{stopar} module has 3 public routines to be called by the model (in our case, NEMO): 
     139 
     140The first routine (\rou{sto\_par}) is a direct implementation of Eq.~(\ref{eq:autoreg}), 
     141applied at each model grid point (in 2D or 3D),  
     142and called at each model time step ($k$) to update 
     143every autoregressive process ($i=1,\ldots,m$). 
     144This routine also includes a filtering operator, applied to $w^{(i)}$, 
     145to introduce a spatial correlation between the stochastic processes. 
     146 
     147The second routine (\rou{sto\_par\_init}) is an initialization routine mainly dedicated 
     148to the computation of parameters $a^{(i)}, b^{(i)}, c^{(i)}$ 
     149for each autoregressive process, as a function of the statistical properties 
     150required by the model user (mean, standard deviation, time correlation, 
     151order of the process,\ldots).  
     152 
     153Parameters for the processes can be specified through the following \ngn{namsto} namelist parameters: 
     154\begin{description} 
     155   \item[\np{nn\_sto\_eos}]   : number of independent random walks  
     156   \item[\np{rn\_eos\_stdxy}] : random walk horz. standard deviation (in grid points) 
     157   \item[\np{rn\_eos\_stdz}]  : random walk vert. standard deviation (in grid points) 
     158   \item[\np{rn\_eos\_tcor}]  : random walk time correlation (in timesteps) 
     159   \item[\np{nn\_eos\_ord}]   : order of autoregressive processes 
     160   \item[\np{nn\_eos\_flt}]   : passes of Laplacian filter 
     161   \item[\np{rn\_eos\_lim}]   : limitation factor (default = 3.0) 
     162\end{description} 
     163This routine also includes the initialization (seeding) of the random number generator. 
     164 
     165The third routine (\rou{sto\_rst\_write}) writes a restart file (which suffix name is  
     166given by \np{cn\_storst\_out} namelist parameter) containing the current value of  
     167all autoregressive processes to allow restarting a simulation from where it has been interrupted. 
     168This file also contains the current state of the random number generator. 
     169When \np{ln\_rststo} is set to \textit{true}), the restart file (which suffix name is  
     170given by \np{cn\_storst\_in} namelist parameter) is read by the initialization routine  
     171(\rou{sto\_par\_init}). The simulation will continue exactly as if it was not interrupted 
     172only  when \np{ln\_rstseed} is set to \textit{true}, $i.e.$ when the state of  
     173the random number generator is read in the restart file. 
  • trunk/DOC/TexFiles/Chapters/Chap_TRA.tex

    r6320 r6497  
    734734(see \S\ref{SBC_rnf} for further detail of how it acts on temperature and salinity tendencies) 
    735735 
    736 $\bullet$ \textit{fwfisf}, the mass flux associated with ice shelf melt, (see \S\ref{SBC_isf} for further details  
    737 on how the ice shelf melt is computed and applied). 
     736$\bullet$ \textit{fwfisf}, the mass flux associated with ice shelf melt,  
     737(see \S\ref{SBC_isf} for further details on how the ice shelf melt is computed and applied). 
    738738 
    739739The surface boundary condition on temperature and salinity is applied as follows: 
     
    840840($i.e.$ the inverses of the extinction length scales) are tabulated over 61 nonuniform  
    841841chlorophyll classes ranging from 0.01 to 10 g.Chl/L (see the routine \rou{trc\_oce\_rgb}  
    842 in \mdl{trc\_oce} module). Three types of chlorophyll can be chosen in the RGB formulation: 
    843 (1) a constant 0.05 g.Chl/L value everywhere (\np{nn\_chdta}=0) ; (2) an observed  
    844 time varying chlorophyll (\np{nn\_chdta}=1) ; (3) simulated time varying chlorophyll 
    845 by TOP biogeochemical model (\np{ln\_qsr\_bio}=true). In the latter case, the RGB  
    846 formulation is used to calculate both the phytoplankton light limitation in PISCES  
    847 or LOBSTER and the oceanic heating rate.  
    848  
     842in \mdl{trc\_oce} module). Four types of chlorophyll can be chosen in the RGB formulation: 
     843\begin{description}  
     844\item[\np{nn\_chdta}=0]  
     845a constant 0.05 g.Chl/L value everywhere ;  
     846\item[\np{nn\_chdta}=1]   
     847an observed time varying chlorophyll deduced from satellite surface ocean color measurement  
     848spread uniformly in the vertical direction ;  
     849\item[\np{nn\_chdta}=2]   
     850same as previous case except that a vertical profile of chlorophyl is used.  
     851Following \cite{Morel_Berthon_LO89}, the profile is computed from the local surface chlorophyll value ; 
     852\item[\np{ln\_qsr\_bio}=true]   
     853simulated time varying chlorophyll by TOP biogeochemical model.  
     854In this case, the RGB formulation is used to calculate both the phytoplankton  
     855light limitation in PISCES or LOBSTER and the oceanic heating rate.  
     856\end{description}  
    849857The trend in \eqref{Eq_tra_qsr} associated with the penetration of the solar radiation  
    850858is added to the temperature trend, and the surface heat flux is modified in routine \mdl{traqsr}.  
     
    13851393                   I've changed "derivative" to "difference" and "mean" to "average"} 
    13861394 
    1387 With partial cells (\np{ln\_zps}=true) at bottom and top (\np{ln\_isfcav}=true), in general, tracers in horizontally  
    1388 adjacent cells live at different depths. Horizontal gradients of tracers are needed  
    1389 for horizontal diffusion (\mdl{traldf} module) and for the hydrostatic pressure  
    1390 gradient (\mdl{dynhpg} module) to be active. The partial cell properties  
    1391 at the top (\np{ln\_isfcav}=true) are computed in the same way as for the bottom. So, only the bottom interpolation is shown. 
    1392 \gmcomment{STEVEN from gm : question: not sure of  what -to be active- means} 
     1395With partial cells (\np{ln\_zps}=true) at bottom and top (\np{ln\_isfcav}=true), in general,  
     1396tracers in horizontally adjacent cells live at different depths.  
     1397Horizontal gradients of tracers are needed for horizontal diffusion (\mdl{traldf} module)  
     1398and the hydrostatic pressure gradient calculations (\mdl{dynhpg} module).  
     1399The partial cell properties at the top (\np{ln\_isfcav}=true) are computed in the same way as for the bottom.  
     1400So, only the bottom interpolation is explained below. 
    13931401 
    13941402Before taking horizontal gradients between the tracers next to the bottom, a linear  
  • trunk/DOC/TexFiles/Chapters/Chap_ZDF.tex

    r6320 r6497  
    262262\end{equation} 
    263263 
    264 At the ocean surface, a non zero length scale is set through the  \np{rn\_lmin0} namelist  
     264At the ocean surface, a non zero length scale is set through the  \np{rn\_mxl0} namelist  
    265265parameter. Usually the surface scale is given by $l_o = \kappa \,z_o$  
    266266where $\kappa = 0.4$ is von Karman's constant and $z_o$ the roughness  
    267267parameter of the surface. Assuming $z_o=0.1$~m \citep{Craig_Banner_JPO94}  
    268 leads to a 0.04~m, the default value of \np{rn\_lsurf}. In the ocean interior  
     268leads to a 0.04~m, the default value of \np{rn\_mxl0}. In the ocean interior  
    269269a minimum length scale is set to recover the molecular viscosity when $\bar{e}$  
    270270reach its minimum value ($1.10^{-6}= C_k\, l_{min} \,\sqrt{\bar{e}_{min}}$ ). 
     
    295295As the surface boundary condition on TKE is prescribed through $\bar{e}_o = e_{bb} |\tau| / \rho_o$,  
    296296with $e_{bb}$ the \np{rn\_ebb} namelist parameter, setting \np{rn\_ebb}~=~67.83 corresponds  
    297 to $\alpha_{CB} = 100$. further setting  \np{ln\_lsurf} to true applies \eqref{ZDF_Lsbc}  
    298 as surface boundary condition on length scale, with $\beta$ hard coded to the Stacet's value. 
     297to $\alpha_{CB} = 100$. Further setting  \np{ln\_mxl0} to true applies \eqref{ZDF_Lsbc}  
     298as surface boundary condition on length scale, with $\beta$ hard coded to the Stacey's value. 
    299299Note that a minimal threshold of \np{rn\_emin0}$=10^{-4}~m^2.s^{-2}$ (namelist parameters)  
    300300is applied on surface $\bar{e}$ value. 
     
    852852The bottom friction represents the friction generated by the bathymetry.  
    853853The top friction represents the friction generated by the ice shelf/ocean interface.  
    854 As the friction processes at the top and bottom are represented similarly, only the bottom friction is described in detail below.\\ 
     854As the friction processes at the top and bottom are treated in similar way,  
     855only the bottom friction is described in detail below. 
    855856 
    856857 
     
    926927$H = 4000$~m, the resulting friction coefficient is $r = 4\;10^{-4}$~m\;s$^{-1}$.  
    927928This is the default value used in \NEMO. It corresponds to a decay time scale  
    928 of 115~days. It can be changed by specifying \np{rn\_bfric1} (namelist parameter). 
     929of 115~days. It can be changed by specifying \np{rn\_bfri1} (namelist parameter). 
    929930 
    930931For the linear friction case the coefficients defined in the general  
     
    936937\end{split} 
    937938\end{equation} 
    938 When \np{nn\_botfr}=1, the value of $r$ used is \np{rn\_bfric1}.  
     939When \np{nn\_botfr}=1, the value of $r$ used is \np{rn\_bfri1}.  
    939940Setting \np{nn\_botfr}=0 is equivalent to setting $r=0$ and leads to a free-slip  
    940941bottom boundary condition. These values are assigned in \mdl{zdfbfr}.  
     
    943944in the \ifile{bfr\_coef} input NetCDF file. The mask values should vary from 0 to 1.  
    944945Locations with a non-zero mask value will have the friction coefficient increased  
    945 by $mask\_value$*\np{rn\_bfrien}*\np{rn\_bfric1}. 
     946by $mask\_value$*\np{rn\_bfrien}*\np{rn\_bfri1}. 
    946947 
    947948% ------------------------------------------------------------------------------------------------------------- 
     
    963964$e_b = 2.5\;10^{-3}$m$^2$\;s$^{-2}$, while the FRAM experiment \citep{Killworth1992}  
    964965uses $C_D = 1.4\;10^{-3}$ and $e_b =2.5\;\;10^{-3}$m$^2$\;s$^{-2}$.  
    965 The CME choices have been set as default values (\np{rn\_bfric2} and \np{rn\_bfeb2}  
     966The CME choices have been set as default values (\np{rn\_bfri2} and \np{rn\_bfeb2}  
    966967namelist parameters). 
    967968 
     
    978979\end{equation} 
    979980 
    980 The coefficients that control the strength of the non-linear bottom friction are  
    981 initialised as namelist parameters: $C_D$= \np{rn\_bfri2}, and $e_b$ =\np{rn\_bfeb2}.  
    982 Note for applications which treat tides explicitly a low or even zero value of  
    983 \np{rn\_bfeb2} is recommended. From v3.2 onwards a local enhancement of $C_D$  
    984 is possible via an externally defined 2D mask array (\np{ln\_bfr2d}=true).  
    985 See previous section for details. 
     981The coefficients that control the strength of the non-linear bottom friction are 
     982initialised as namelist parameters: $C_D$= \np{rn\_bfri2}, and $e_b$ =\np{rn\_bfeb2}. 
     983Note for applications which treat tides explicitly a low or even zero value of 
     984\np{rn\_bfeb2} is recommended. From v3.2 onwards a local enhancement of $C_D$ is possible 
     985via an externally defined 2D mask array (\np{ln\_bfr2d}=true).  This works in the same way 
     986as for the linear bottom friction case with non-zero masked locations increased by 
     987$mask\_value$*\np{rn\_bfrien}*\np{rn\_bfri2}. 
     988 
     989% ------------------------------------------------------------------------------------------------------------- 
     990%       Bottom Friction Log-layer 
     991% ------------------------------------------------------------------------------------------------------------- 
     992\subsection{Log-layer Bottom Friction enhancement (\np{nn\_botfr} = 2, \np{ln\_loglayer} = .true.)} 
     993\label{ZDF_bfr_loglayer} 
     994 
     995In the non-linear bottom friction case, the drag coefficient, $C_D$, can be optionally 
     996enhanced using a "law of the wall" scaling. If  \np{ln\_loglayer} = .true., $C_D$ is no 
     997longer constant but is related to the thickness of the last wet layer in each column by: 
     998 
     999\begin{equation} 
     1000C_D = \left ( {\kappa \over {\rm log}\left ( 0.5e_{3t}/rn\_bfrz0 \right ) } \right )^2 
     1001\end{equation} 
     1002 
     1003\noindent where $\kappa$ is the von-Karman constant and \np{rn\_bfrz0} is a roughness 
     1004length provided via the namelist. 
     1005 
     1006For stability, the drag coefficient is bounded such that it is kept greater or equal to 
     1007the base \np{rn\_bfri2} value and it is not allowed to exceed the value of an additional 
     1008namelist parameter: \np{rn\_bfri2\_max}, i.e.: 
     1009 
     1010\begin{equation} 
     1011rn\_bfri2 \leq C_D \leq rn\_bfri2\_max 
     1012\end{equation} 
     1013 
     1014\noindent Note also that a log-layer enhancement can also be applied to the top boundary 
     1015friction if under ice-shelf cavities are in use (\np{ln\_isfcav}=.true.).  In this case, the 
     1016relevant namelist parameters are \np{rn\_tfrz0}, \np{rn\_tfri2} 
     1017and \np{rn\_tfri2\_max}. 
    9861018 
    9871019% ------------------------------------------------------------------------------------------------------------- 
     
    12671299 
    12681300% ================================================================ 
     1301% Internal wave-driven mixing 
     1302% ================================================================ 
     1303\section{Internal wave-driven mixing (\key{zdftmx\_new})} 
     1304\label{ZDF_tmx_new} 
     1305 
     1306%--------------------------------------------namzdf_tmx_new------------------------------------------ 
     1307\namdisplay{namzdf_tmx_new} 
     1308%-------------------------------------------------------------------------------------------------------------- 
     1309 
     1310The parameterization of mixing induced by breaking internal waves is a generalization  
     1311of the approach originally proposed by \citet{St_Laurent_al_GRL02}.  
     1312A three-dimensional field of internal wave energy dissipation $\epsilon(x,y,z)$ is first constructed,  
     1313and the resulting diffusivity is obtained as  
     1314\begin{equation} \label{Eq_Kwave} 
     1315A^{vT}_{wave} =  R_f \,\frac{ \epsilon }{ \rho \, N^2 } 
     1316\end{equation} 
     1317where $R_f$ is the mixing efficiency and $\epsilon$ is a specified three dimensional distribution  
     1318of the energy available for mixing. If the \np{ln\_mevar} namelist parameter is set to false,  
     1319the mixing efficiency is taken as constant and equal to 1/6 \citep{Osborn_JPO80}.  
     1320In the opposite (recommended) case, $R_f$ is instead a function of the turbulence intensity parameter  
     1321$Re_b = \frac{ \epsilon}{\nu \, N^2}$, with $\nu$ the molecular viscosity of seawater,  
     1322following the model of \cite{Bouffard_Boegman_DAO2013}  
     1323and the implementation of \cite{de_lavergne_JPO2016_efficiency}. 
     1324Note that $A^{vT}_{wave}$ is bounded by $10^{-2}\,m^2/s$, a limit that is often reached when the mixing efficiency is constant. 
     1325 
     1326In addition to the mixing efficiency, the ratio of salt to heat diffusivities can chosen to vary  
     1327as a function of $Re_b$ by setting the \np{ln\_tsdiff} parameter to true, a recommended choice).  
     1328This parameterization of differential mixing, due to \cite{Jackson_Rehmann_JPO2014},  
     1329is implemented as in \cite{de_lavergne_JPO2016_efficiency}. 
     1330 
     1331The three-dimensional distribution of the energy available for mixing, $\epsilon(i,j,k)$, is constructed  
     1332from three static maps of column-integrated internal wave energy dissipation, $E_{cri}(i,j)$,  
     1333$E_{pyc}(i,j)$, and $E_{bot}(i,j)$, combined to three corresponding vertical structures  
     1334(de Lavergne et al., in prep): 
     1335\begin{align*} 
     1336F_{cri}(i,j,k) &\propto e^{-h_{ab} / h_{cri} }\\ 
     1337F_{pyc}(i,j,k) &\propto N^{n\_p}\\ 
     1338F_{bot}(i,j,k) &\propto N^2 \, e^{- h_{wkb} / h_{bot} } 
     1339\end{align*}  
     1340In the above formula, $h_{ab}$ denotes the height above bottom,  
     1341$h_{wkb}$ denotes the WKB-stretched height above bottom, defined by 
     1342\begin{equation*} 
     1343h_{wkb} = H \, \frac{ \int_{-H}^{z} N \, dz' } { \int_{-H}^{\eta} N \, dz'  } \; , 
     1344\end{equation*} 
     1345The $n_p$ parameter (given by \np{nn\_zpyc} in \ngn{namzdf\_tmx\_new} namelist)  controls the stratification-dependence of the pycnocline-intensified dissipation.  
     1346It can take values of 1 (recommended) or 2. 
     1347Finally, the vertical structures $F_{cri}$ and $F_{bot}$ require the specification of  
     1348the decay scales $h_{cri}(i,j)$ and $h_{bot}(i,j)$, which are defined by two additional input maps.  
     1349$h_{cri}$ is related to the large-scale topography of the ocean (etopo2)  
     1350and $h_{bot}$ is a function of the energy flux $E_{bot}$, the characteristic horizontal scale of  
     1351the abyssal hill topography \citep{Goff_JGR2010} and the latitude. 
     1352 
     1353% ================================================================ 
     1354 
     1355 
     1356 
Note: See TracChangeset for help on using the changeset viewer.