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 14644 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles – NEMO

Ignore:
Timestamp:
2021-03-26T15:33:49+01:00 (3 years ago)
Author:
sparonuz
Message:

Merge trunk -r14642:HEAD

Location:
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette_wave@13990         sette 
         11^/utils/CI/sette@14244        sette 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles

    • Property svn:ignore
      •  

        old new  
         1*.aux 
         2*.bbl 
         3*.blg 
         4*.fdb* 
         5*.fls 
         6*.idx 
         7*.ilg 
        18*.ind 
        2 *.ilg 
         9*.lo* 
         10*.out 
         11*.pdf 
         12*.pyg 
         13*.tdo 
         14*.toc 
         15*.xdv 
         16cache* 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/apdx_DOMAINcfg.tex

    r14200 r14644  
    66\label{apdx:DOMCFG} 
    77 
    8 %    {\em 4.0} & {\em Andrew Coward} & {\em Created at v4.0 from materials removed from chap\_DOM that are still relevant to the \forcode{DOMAINcfg} tool and which illustrate and explain the choices to be made by the user when setting up new domains }  \\ 
    9  
    10 \thispagestyle{plain} 
    11  
    128\chaptertoc 
    139 
     
    1612{\footnotesize 
    1713  \begin{tabularx}{\textwidth}{l||X|X} 
    18     Release & Author(s) & Modifications \\ 
    19     \hline 
    20     {\em   4.0} & {\em ...} & {\em ...} \\ 
    21     {\em   3.6} & {\em ...} & {\em ...} \\ 
    22     {\em   3.4} & {\em ...} & {\em ...} \\ 
    23     {\em <=3.4} & {\em ...} & {\em ...} 
     14    Release     & Author(s)            & Modifications                                                \\ 
     15    \hline 
     16    {\em  next} & {\em Pierre Mathiot} & {\em Add ice shelf and closed sea option description        } \\ 
     17    {\em   4.0} & {\em  Andrew Coward} & {\em Creation from materials removed from \autoref{chap:DOM} 
     18                                              that are still relevant to the DOMAINcfg tool 
     19                                              when setting up new domains                            } 
    2420  \end{tabularx} 
    2521} 
     
    4642 
    4743\begin{listing} 
    48 %  \nlst{namdom_domcfg} 
    4944  \begin{forlines} 
    5045!----------------------------------------------------------------------- 
     
    9186 \item [{\np{jphgr_mesh}{jphgr\_mesh}=0}]  The most general curvilinear orthogonal grids. 
    9287  The coordinates and their first derivatives with respect to $i$ and $j$ are provided 
    93   in a input file (\ifile{coordinates}), read in \rou{hgr\_read} subroutine of the domhgr module. 
     88  in a input file (\textit{coordinates.nc}), read in \rou{hgr\_read} subroutine of the domhgr module. 
    9489  This is now the only option available within \NEMO\ itself from v4.0 onwards. 
    9590\item [{\np{jphgr_mesh}{jphgr\_mesh}=1 to 5}] A few simple analytical grids are provided (see below). 
     
    156151The reference coordinate transformation $z_0(k)$ defines the arrays $gdept_0$ and 
    157152$gdepw_0$ for $t$- and $w$-points, respectively. See \autoref{sec:DOMCFG_sco} for the 
    158 S-coordinate options.  As indicated on \autoref{fig:DOM_index_vert} \jp{jpk} is the number of 
    159 $w$-levels.  $gdepw_0(1)$ is the ocean surface.  There are at most \jp{jpk}-1 $t$-points 
     153S-coordinate options.  As indicated on \autoref{fig:DOM_index_vert} \texttt{jpk} is the number of 
     154$w$-levels.  $gdepw_0(1)$ is the ocean surface.  There are at most \texttt{jpk}-1 $t$-points 
    160155inside the ocean, the additional $t$-point at $jk = jpk$ is below the sea floor and is not 
    161156used.  The vertical location of $w$- and $t$-levels is defined from the analytic 
     
    167162 
    168163It is possible to define a simple regular vertical grid by giving zero stretching 
    169 (\np[=0]{ppacr}{ppacr}).  In that case, the parameters \jp{jpk} (number of $w$-levels) 
     164(\np[=0]{ppacr}{ppacr}).  In that case, the parameters \texttt{jpk} (number of $w$-levels) 
    170165and \np{pphmax}{pphmax} (total ocean depth in meters) fully define the grid. 
    171166 
     
    179174\end{gather} 
    180175 
    181 where $k = 1$ to \jp{jpk} for $w$-levels and $k = 1$ to $k = 1$ for $t-$levels.  Such an 
     176where $k = 1$ to \texttt{jpk} for $w$-levels and $k = 1$ to $k = 1$ for $t-$levels.  Such an 
    182177expression allows us to define a nearly uniform vertical location of levels at the ocean 
    183178top and bottom with a smooth hyperbolic tangent transition in between (\autoref{fig:DOMCFG_zgr}). 
     
    227222\end{equation} 
    228223 
    229 With the choice of the stretching $h_{cr} = 3$ and the number of levels \jp{jpk}~$= 31$, 
     224With the choice of the stretching $h_{cr} = 3$ and the number of levels \texttt{jpk}~$= 31$, 
    230225the four coefficients $h_{sur}$, $h_0$, $h_1$, and $h_{th}$ in 
    231226\autoref{eq:DOMCFG_zgr_ana_2} have been determined such that \autoref{eq:DOMCFG_zgr_coef} 
     
    245240  Values from $3$ to $10$ are usual. 
    246241\item \np{ppkth}{ppkth}~$= h_{th}$: is approximately the model level at which maximum stretching occurs 
    247   (nondimensional, usually of order 1/2 or 2/3 of \jp{jpk}) 
     242  (nondimensional, usually of order 1/2 or 2/3 of \texttt{jpk}) 
    248243\item \np{ppdzmin}{ppdzmin}: minimum thickness for the top layer (in meters). 
    249244\item \np{pphmax}{pphmax}: total depth of the ocean (meters). 
     
    251246 
    252247As an example, for the $45$ layers used in the DRAKKAR configuration those parameters are: 
    253 \jp{jpk}~$= 46$, \np{ppacr}{ppacr}~$= 9$, \np{ppkth}{ppkth}~$= 23.563$, \np{ppdzmin}{ppdzmin}~$= 6~m$, 
     248\texttt{jpk}~$= 46$, \np{ppacr}{ppacr}~$= 9$, \np{ppkth}{ppkth}~$= 23.563$, \np{ppdzmin}{ppdzmin}~$= 6~m$, 
    254249\np{pphmax}{pphmax}~$= 5750~m$. 
    255250 
     
    346341  This is meant for the "EEL-R5" configuration, a periodic or open boundary channel with a seamount. 
    347342\item [{\np[=1]{nn_bathy}{nn\_bathy}}]: read a bathymetry and ice shelf draft (if needed). 
    348   The \ifile{bathy\_meter} file (Netcdf format) provides the ocean depth (positive, in meters) at 
     343  The \textit{bathy\_meter.nc} file (Netcdf format) provides the ocean depth (positive, in meters) at 
    349344  each grid point of the model grid. 
    350345  The bathymetry is usually built by interpolating a standard bathymetry product (\eg\ ETOPO2) onto 
     
    352347  Defining the bathymetry also defines the coastline: where the bathymetry is zero, 
    353348  no wet levels are defined (all levels are masked). 
    354  
    355   The \ifile{isfdraft\_meter} file (Netcdf format) provides the ice shelf draft (positive, in meters) at 
    356   each grid point of the model grid. 
    357   This file is only needed if \np[=.true.]{ln_isfcav}{ln\_isfcav}. 
    358   Defining the ice shelf draft will also define the ice shelf edge and the grounding line position. 
    359349\end{description} 
    360350 
     
    396386bathymetry varies by less than one level thickness from one grid point to the next).  The 
    397387reference layer thicknesses $e_{3t}^0$ have been defined in the absence of bathymetry. 
    398 With partial steps, layers from 1 to \jp{jpk}-2 can have a thickness smaller than 
     388With partial steps, layers from 1 to \texttt{jpk-2} can have a thickness smaller than 
    399389$e_{3t}(jk)$. 
    400390 
    401 The model deepest layer (\jp{jpk}-1) is allowed to have either a smaller or larger 
     391The model deepest layer (\texttt{jpk-1}) is allowed to have either a smaller or larger 
    402392thickness than $e_{3t}(jpk)$: the maximum thickness allowed is $2*e_{3t}(jpk - 1)$. 
    403393 
     
    418408 
    419409\begin{listing} 
    420 %  \nlst{namzgr_sco_domcfg} 
    421410  \caption{\forcode{&namzgr_sco_domcfg}} 
    422411  \label{lst:namzgr_sco_domcfg} 
     
    592581This option is described in the Report by Levier \textit{et al.} (2007), available on the \NEMO\ web site. 
    593582 
     583\section{Ice shelf cavity definition} 
     584\label{subsec:zgrisf} 
     585 
     586  If the under ice shelf seas are opened (\np{ln_isfcav}{ln\_isfcav}), the depth of the ice shelf/ocean interface has to be include in  
     587  the \textit{isfdraft\_meter} file (Netcdf format). This file need to include the \textit{isf\_draft} variable.  
     588  A positive value will mean ice shelf/ocean or ice shelf bedrock interface below the reference 0m ssh.  
     589  The exact shape of the ice shelf cavity (grounding line position and minimum thickness of the water column under an ice shelf, ...) can be specify in \nam{zgr_isf}{zgr\_isf}. 
     590 
     591\begin{listing} 
     592  \caption{\forcode{&namzgr_isf}} 
     593  \label{lst:namzgr_isf} 
     594  \begin{forlines} 
     595!----------------------------------------------------------------------- 
     596&namzgr_isf    !   isf cavity geometry definition                       (default: OFF) 
     597!----------------------------------------------------------------------- 
     598   rn_isfdep_min    = 10.         ! minimum isf draft tickness (if lower, isf draft set to this value) 
     599   rn_glhw_min      = 1.e-3       ! minimum water column thickness to define the grounding line 
     600   rn_isfhw_min     = 10          ! minimum water column thickness in the cavity once the grounding line defined. 
     601   ln_isfchannel    = .false.     ! remove channel (based on 2d mask build from isfdraft-bathy) 
     602   ln_isfconnect    = .false.     ! force connection under the ice shelf (based on 2d mask build from isfdraft-bathy) 
     603      nn_kisfmax       = 999         ! limiter in level on the previous condition. (if change larger than this number, get back to value before we enforce the connection) 
     604      rn_zisfmax       = 7000.       ! limiter in m     on the previous condition. (if change larger than this number, get back to value before we enforce the connection) 
     605   ln_isfcheminey   = .false.     ! close cheminey 
     606   ln_isfsubgl      = .false.     ! remove subglacial lake created by the remapping process 
     607      rn_isfsubgllon   =    0.0      !  longitude of the seed to determine the open ocean 
     608      rn_isfsubgllat   =    0.0      !  latitude  of the seed to determine the open ocean 
     609/ 
     610  \end{forlines} 
     611\end{listing} 
     612 
     613   The options available to define the shape of the under ice shelf cavities are listed in \nam{zgr_isf}{zgr\_isf} (\texttt{DOMAINcfg} only, \autoref{lst:namzgr_isf}). 
     614 
     615\subsection{Model ice shelf draft definition} 
     616\label{subsec:zgrisf_isfd} 
     617 
     618First of all, the tool make sure, the ice shelf draft ($h_{isf}$) is sensible and compatible with the bathymetry. 
     619There are 3 compulsory steps to achieve this: 
     620 
     621\begin{description} 
     622\item{\np{rn_isfdep_min}{rn\_isfdep\_min}:} this is the minimum ice shelf draft. This is to make sure there is no ridiculous thin ice shelf. If \np{rn_isfdep_min}{rn\_isfdep\_min} is smaller than the surface level, \np{rn_isfdep_min}{rn\_isfdep\_min} is set to $e3t\_1d(1)$.  
     623  Where $h_{isf} < MAX(e3t\_1d(1),rn\_isfdep\_min)$, $h_{isf}$ is set to \np{rn_isfdep_min}{rn\_isfdep\_min}. 
     624 
     625\item{\np{rn_glhw_min}{rn\_glhw\_min}:} This parameter is used to define the grounding line position. 
     626  Where the difference between the bathymetry and the ice shelf draft is smaller than \np{rn_glhw_min}{rn\_glhw\_min}, the cell are grounded (ie masked).  
     627  This step is needed to take into account possible small mismatch between ice shelf draft value and bathymetry value (sources are coming from different grid, different data processes, rounding error, ...). 
     628 
     629\item{\np{rn_isfhw_min}{rn\_isfhw\_min}:} This parameter is the minimum water column thickness in the cavity.  
     630  Where the water column thickness is lower than \np{rn_isfhw_min}{rn\_isfhw\_min}, the ice shelf draft is adjusted to match this criterion.  
     631  If for any reason, this adjustement break the minimum ice shelf draft allowed (\np{rn_isfdep_min}{rn\_isfdep\_min}), the cell is masked. 
     632\end{description} 
     633 
     634Once all these adjustements are made, if the water column thickness contains one cell wide channels, these channels can be closed using \np{ln_isfchannel}{ln\_isfchannel}.   
     635  
     636\subsection{Model top level definition} 
     637After the definition of the ice shelf draft, the tool defines the top level.  
     638The compulsory criterion is that the water column needs at least 2 wet cells in the water column at U- and V-points. 
     639To do so, if there one cell wide water column, the tools adjust the ice shelf draft to fillful the requierement.\\ 
     640 
     641The process is the following: 
     642\begin{description} 
     643\item{step 1:} The top level is defined in the same way as the bottom level is defined. 
     644\item{step 2:} The isolated grid point in the bathymetry are filled (as it is done in a domain without ice shelf) 
     645\item{step 3:} The tools make sure, the top level is above or equal to the bottom level 
     646\item{step 4:} If the water column at a U- or V- point is one wet cell wide, the ice shelf draft is adjusted. So the actual top cell become fully open and the new 
     647  top cell thickness is set to the minimum cell thickness allowed (following the same logic as for the bottom partial cell). This step is iterated 4 times to ensure the condition is fullfill along the 4 sides of the cell. 
     648\end{description} 
     649 
     650In case of steep slope and shallow water column, it likely that 2 cells are disconnected (bathymetry above its neigbourging ice shelf draft).  
     651The option \np{ln_isfconnect}{ln\_isfconnect} allow the tool to force the connection between these 2 cells. 
     652Some limiters in meter or levels on the digging allowed by the tool are available (respectively, \np{rn_zisfmax}{rn\_zisfmax} or \np{rn_kisfmax}{rn\_kisfmax}). 
     653This will prevent the formation of subglacial lakes at the expense of long vertical pipe to connect cells at very different levels. 
     654 
     655\subsection{Subglacial lakes} 
     656Despite careful setting of your ice shelf draft and bathymetry input file as well as setting described in \autoref{subsec:zgrisf_isfd}, some situation are unavoidable. 
     657For exemple if you setup your ice shelf draft and bathymetry to do ocean/ice sheet coupling,  
     658you may decide to fill the whole antarctic with a bathymetry and an ice shelf draft value (ice/bedrock interface depth when grounded).  
     659If you do so, the subglacial lakes will show up (Vostock for example). An other possibility is with coarse vertical resolution, some ice shelves could be cut in 2 parts:  
     660one connected to the main ocean and an other one closed which can be considered as a subglacial sea be the model.\\ 
     661 
     662The namelist option \np{ln_isfsubgl}{ln\_isfsubgl} allow you to remove theses subglacial lakes. 
     663This may be useful for esthetical reason or for stability reasons: 
     664 
     665\begin{description} 
     666\item $\bullet$ In a subglacial lakes, in case of very weak circulation (often the case), the only heat flux is the conductive heat flux through the ice sheet.  
     667  This will lead to constant freezing until water reaches -20C.  
     668  This is one of the defitiency of the 3 equation melt formulation (for details on this formulation, see: \autoref{sec:isf}). 
     669\item $\bullet$ In case of coupling with an ice sheet model,  
     670  the ssh in the subglacial lakes and the main ocean could be very different (ssh initial adjustement for example),  
     671  and so if for any reason both a connected at some point, the model is likely to fall over.\\ 
     672\end{description} 
     673 
     674\section{Closed sea definition} 
     675\label{sec:clocfg} 
     676 
     677\begin{listing} 
     678  \caption{\forcode{&namclo}} 
     679  \label{lst:namdom_clo} 
     680  \begin{forlines} 
     681!----------------------------------------------------------------------- 
     682&namclo ! (closed sea : need ln_domclo = .true. in namcfg) 
     683!----------------------------------------------------------------------- 
     684   rn_lon_opnsea = -2.0     ! longitude seed of open ocean 
     685   rn_lat_opnsea = -2.0     ! latitude  seed of open ocean 
     686   nn_closea = 8           ! number of closed seas ( = 0; only the open_sea mask will be computed) 
     687   !                name   ! lon_src ! lat_src ! lon_trg ! lat_trg ! river mouth area   ! net evap/precip correction scheme ! radius tgt   ! id trg 
     688   !                       ! (degree)! (degree)! (degree)! (degree)! local/coast/global ! (glo/rnf/emp)                     !     (m)      ! 
     689   ! North American lakes 
     690   sn_lake(1) = 'superior' ,  -86.57 ,  47.30  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2     
     691   sn_lake(2) = 'michigan' ,  -87.06 ,  42.74  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2     
     692   sn_lake(3) = 'huron'    ,  -82.51 ,  44.74  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2     
     693   sn_lake(4) = 'erie'     ,  -81.13 ,  42.25  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2     
     694   sn_lake(5) = 'ontario'  ,  -77.72 ,  43.62  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2     
     695   ! African Lake 
     696   sn_lake(6) = 'victoria' ,   32.93 ,  -1.08  ,  30.44  , 31.37   , 'coast'            , 'emp'                             ,   100000.0 , 3     
     697   ! Asian Lakes 
     698   sn_lake(7) = 'caspian'  ,   50.0  ,  44.0   ,   0.0   ,  0.0    , 'global'           , 'glo'                             ,        0.0 , 1      
     699   sn_lake(8) = 'aral'     ,   60.0  ,  45.0   ,   0.0   ,  0.0    , 'global'           , 'glo'                             ,        0.0 , 1     
     700/ 
     701   \end{forlines} 
     702\end{listing} 
     703 
     704The options available to define the closed seas and how closed sea net fresh water input will be redistributed by NEMO are listed in \nam{dom_clo}{dom\_clo} (\texttt{DOMAINcfg} only). 
     705The individual definition of each closed sea is managed by \np{sn_lake}{sn\_lake}. In this fields the user needs to define:\\ 
     706   \begin{description} 
     707   \item $\bullet$    the name of the closed sea (print output purposes). 
     708   \item $\bullet$    the seed location to define the area of the closed sea (if seed on land because not present in this configuration, this closed sea will be ignored).\\ 
     709   \item $\bullet$    the seed location for the target area. 
     710   \item $\bullet$    the type of target area ('local','coast' or 'global'). See point 6 for definition of these cases. 
     711   \item $\bullet$    the type of redistribution scheme for the net fresh water flux over the closed sea (as a runoff in a target area, as emp in a target area, as emp globally). For the runoff case, if the net fwf is negative, it will be redistribut globally. 
     712   \item $\bullet$    the radius of the target area (not used for the 'global' case). So the target defined by a 'local' target area of a radius of 100km, for example, correspond to all the wet points within this radius. The coastal case will return only the coastal point within the specifid radius. 
     713   \item $\bullet$    the target id. This target id is used to group multiple lakes into the same river ouflow (Great Lakes for example). 
     714   \end{description} 
     715 
     716The closed sea module defines a number of masks in the \textit{domain\_cfg} output: 
     717   \begin{description} 
     718   \item[\textit{mask\_opensea}:] a mask of the main ocean without all the closed seas closed. This mask is defined by a flood filling algorithm with an initial seed (localisation defined by \np{rn_lon_opnsea}{rn\_lon\_opnsea} and \np{rn_lat_opnsea}{rn\_lat\_opnsea}). 
     719   \item[\textit{mask\_csglo}, \textit{mask\_csrnf}, \textit{mask\_csemp}:] a mask of all the closed seas defined in the namelist by \np{sn_lake}{sn\_lake} for each redistribution scheme. The total number of defined closed seas has to be defined in \np{nn_closea}{nn\_closea}. 
     720   \item[\textit{mask\_csgrpglo}, \textit{mask\_csgrprnf}, \textit{mask\_csgrpemp}:] a mask of all the closed seas and targets grouped by target id for each type of redistribution scheme. 
     721   \item[\textit{mask\_csundef}:] a mask of all the closed sea not defined in \np{sn_lake}{sn\_lake}. This will allows NEMO to mask them if needed or to inform the user of potential minor issues in its bathymetry. 
     722   \end{description} 
     723    
    594724\subinc{\input{../../global/epilogue}} 
    595725 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/apdx_algos.tex

    r11693 r14644  
    55\chapter{Note on some algorithms} 
    66\label{apdx:ALGOS} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/apdx_diff_opers.tex

    r11693 r14644  
    55\chapter{Diffusive Operators} 
    66\label{apdx:DIFFOPERS} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/apdx_invariants.tex

    r11693 r14644  
    55\chapter{Discrete Invariants of the Equations} 
    66\label{apdx:INVARIANTS} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/apdx_s_coord.tex

    r11693 r14644  
    88%    {\em 4.0} & {\em Mike Bell} & {\em review}  \\ 
    99%    {\em 3.x} & {\em Gurvan Madec} & {\em original}  \\ 
    10  
    11 \thispagestyle{plain} 
    1210 
    1311\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/apdx_triads.tex

    r14113 r14644  
    22 
    33\begin{document} 
    4  
    5 %% Local cmds 
    6 \newcommand{\rML}[1][i]{\ensuremath{_{\mathrm{ML}\,#1}}} 
    7 \newcommand{\rMLt}[1][i]{\tilde{r}_{\mathrm{ML}\,#1}} 
    8 %% Move to ../../global/new_cmds.tex to avoid error with \listoffigures 
    9 %\newcommand{\triad}[6][]{\ensuremath{{}_{#2}^{#3}{\mathbb{#4}_{#1}}_{#5}^{\,#6}} 
    10 \newcommand{\triadd}[5]{\ensuremath{{}_{#1}^{#2}{\mathbb{#3}}_{#4}^{\,#5}}} 
    11 \newcommand{\triadt}[5]{\ensuremath{{}_{#1}^{#2}{\tilde{\mathbb{#3}}}_{#4}^{\,#5}}} 
    12 \newcommand{\rtriad}[2][]{\ensuremath{\triad[#1]{i}{k}{#2}{i_p}{k_p}}} 
    13 \newcommand{\rtriadt}[1]{\ensuremath{\triadt{i}{k}{#1}{i_p}{k_p}}} 
    144 
    155\chapter{Iso-Neutral Diffusion and Eddy Advection using Triads} 
    166\label{apdx:TRIADS} 
    17  
    18 \thispagestyle{plain} 
    197 
    208\chaptertoc 
     
    3624 
    3725%% ================================================================================================= 
    38 \section[Choice of \forcode{namtra\_ldf} namelist parameters]{Choice of \protect\nam{tra_ldf}{tra\_ldf} namelist parameters} 
     26\section[Choice of \forcode{namtra_ldf} namelist parameters]{Choice of \protect\nam{tra_ldf}{tra\_ldf} namelist parameters} 
    3927 
    4028Two scheme are available to perform the iso-neutral diffusion. 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_ASM.tex

    r11693 r14644  
    88%    {\em 4.0} & {\em D. J. Lea} & {\em \NEMO\ 4.0 updates}  \\ 
    99%    {\em 3.4} & {\em D. J. Lea, M. Martin, K. Mogensen, A. Weaver} & {\em Initial version}  \\ 
    10  
    11 \thispagestyle{plain} 
    1210 
    1311\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_DIA.tex

    r13970 r14644  
    1111%    {\em 3.4} & {\em Gurvan Madec, Rachid Benshila, Andrew Coward } & {\em }  \\ 
    1212%    {\em }      & {\em Christian Ethe, Sebastien Masson } & {\em }  \\ 
    13  
    14 \thispagestyle{plain} 
    1513 
    1614\chaptertoc 
     
    666664\end{forlines} 
    667665 
    668 \noindent will give the following file name radical: \ifile{myfile\_ORCA2\_19891231\_freq1d} 
     666\noindent will give the following file name radical: \textit{myfile\_ORCA2\_19891231\_freq1d} 
    669667 
    670668%% ================================================================================================= 
     
    19421940When \np[=.true.]{ln_subbas}{ln\_subbas}, transports and stream function are computed for the Atlantic, Indian, 
    19431941Pacific and Indo-Pacific Oceans (defined north of 30\deg{S}) as well as for the World Ocean. 
    1944 The sub-basin decomposition requires an input file (\ifile{subbasins}) which contains three 2D mask arrays, 
     1942The sub-basin decomposition requires an input file (\textit{subbasins}) which contains three 2D mask arrays, 
    19451943the Indo-Pacific mask been deduced from the sum of the Indian and Pacific mask (\autoref{fig:DIA_mask_subasins}). 
    19461944 
    19471945\begin{listing} 
    1948   \nlst{namptr} 
     1946%  \nlst{namptr} 
    19491947  \caption{\forcode{&namptr}} 
    19501948  \label{lst:namptr} 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_DIU.tex

    r11693 r14644  
    55\chapter{Diurnal SST Models (DIU)} 
    66\label{chap:DIU} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
     
    5250 
    5351This namelist contains only two variables: 
     52 
    5453\begin{description} 
    5554\item [{\np{ln_diurnal}{ln\_diurnal}}] A logical switch for turning on/off both the cool skin and warm layer. 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_DOM.tex

    r11693 r14644  
    1414% -    domclo: closed sea and lakes.... 
    1515%              management of closea sea area: specific to global cfg, both forced and coupled 
    16  
    17 \thispagestyle{plain} 
    1816 
    1917\chaptertoc 
     
    368366\label{subsec:DOM_size} 
    369367 
    370 The total size of the computational domain is set by the parameters \jp{jpiglo}, \jp{jpjglo} and 
    371 \jp{jpkglo} for the $i$, $j$ and $k$ directions, respectively. 
     368The total size of the computational domain is set by the parameters \texttt{jpiglo}, \texttt{jpjglo} and 
     369\texttt{jpkglo} for the $i$, $j$ and $k$ directions, respectively. 
    372370Note, that the variables \texttt{jpi} and \texttt{jpj} refer to 
    373371the size of each processor subdomain when the code is run in parallel using domain decomposition 
     
    379377in which case \np{cn_cfg}{cn\_cfg} and \np{nn_cfg}{nn\_cfg} are set from these values accordingly). 
    380378 
    381 The global lateral boundary condition type is selected from 8 options using parameter \jp{jperio}. 
     379The global lateral boundary condition type is selected from 8 options using parameters \texttt{l\_Iperio}, \texttt{l\_Jperio}, \texttt{l\_NFold} and \texttt{c\_NFtype}. 
    382380See \autoref{sec:LBC_jperio} for details on the available options and 
    383 the corresponding values for \jp{jperio}. 
     381the corresponding values for \texttt{l\_Iperio}, \texttt{l\_Jperio}, \texttt{l\_NFold} and \texttt{c\_NFtype}. 
    384382 
    385383%% ================================================================================================= 
     
    396394 
    397395\begin{clines} 
    398 int    jpiglo, jpjglo, jpkglo     /* global domain sizes                                    */ 
    399 int    jperio                     /* lateral global domain b.c.                             */ 
    400 double glamt, glamu, glamv, glamf /* geographic longitude (t,u,v and f points respectively) */ 
    401 double gphit, gphiu, gphiv, gphif /* geographic latitude                                    */ 
    402 double e1t, e1u, e1v, e1f         /* horizontal scale factors                               */ 
    403 double e2t, e2u, e2v, e2f         /* horizontal scale factors                               */ 
     396integer   Ni0glo, NjOglo, jpkglo       /* global domain sizes (without MPI halos)                */ 
     397logical   l\_Iperio, l\_Jperio         /* lateral global domain b.c.: i- j-periodicity           */ 
     398logical   l\_NFold                     /* lateral global domain b.c.: North Pole folding         */ 
     399char(1)   c\_NFtype                    /*    type of North pole Folding: T or F point            */ 
     400real      glamt, glamu, glamv, glamf   /* geographic longitude (t,u,v and f points respectively) */ 
     401real      gphit, gphiu, gphiv, gphif   /* geographic latitude                                    */ 
     402real      e1t, e1u, e1v, e1f           /* horizontal scale factors                               */ 
     403real      e2t, e2u, e2v, e2f           /* horizontal scale factors                               */ 
    404404\end{clines} 
    405405 
     
    465465\begin{enumerate} 
    466466\item the bathymetry given in meters; 
    467 \item the number of levels of the model (\jp{jpk}); 
     467\item the number of levels of the model (\texttt{jpk}); 
    468468\item the analytical transformation $z(i,j,k)$ and the vertical scale factors 
    469469  (derivatives of the transformation); and 
     
    575575every gridcell in the model regardless of the choice of vertical coordinate. 
    576576With constant z-levels, e3 metrics will be uniform across each horizontal level. 
    577 In the partial step case each e3 at the \jp{bottom\_level} 
    578 (and, possibly, \jp{top\_level} if ice cavities are present) 
     577In the partial step case each e3 at the \texttt{bottom\_level} 
     578(and, possibly, \texttt{top\_level} if ice cavities are present) 
    579579may vary from its horizontal neighbours. 
    580580And, in s-coordinates, variations can occur throughout the water column. 
     
    585585those arising from a flat sea surface with zero elevation. 
    586586 
    587 The \jp{bottom\_level} and \jp{top\_level} 2D arrays define 
    588 the \jp{bottom\_level} and top wet levels in each grid column. 
    589 Without ice cavities, \jp{top\_level} is essentially a land mask (0 on land; 1 everywhere else). 
    590 With ice cavities, \jp{top\_level} determines the first wet point below the overlying ice shelf. 
     587The \texttt{bottom\_level} and \texttt{top\_level} 2D arrays define 
     588the \texttt{bottom\_level} and top wet levels in each grid column. 
     589Without ice cavities, \texttt{top\_level} is essentially a land mask (0 on land; 1 everywhere else). 
     590With ice cavities, \texttt{top\_level} determines the first wet point below the overlying ice shelf. 
    591591 
    592592%% ================================================================================================= 
     
    594594\label{subsec:DOM_msk} 
    595595 
    596 From \jp{top\_level} and \jp{bottom\_level} fields, the mask fields are defined as follows: 
     596From \texttt{top\_level} and \texttt{bottom\_level} fields, the mask fields are defined as follows: 
    597597\begin{align*} 
    598598  tmask(i,j,k) &= 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_DYN.tex

    r14200 r14644  
    55\chapter{Ocean Dynamics (DYN)} 
    66\label{chap:DYN} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_LBC.tex

    r14200 r14644  
    55\chapter{Lateral Boundary Condition (LBC)} 
    66\label{chap:LBC} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
     
    161159 
    162160%% ================================================================================================= 
    163 \section[Model domain boundary condition (\forcode{jperio})]{Model domain boundary condition (\protect\jp{jperio})} 
     161\section{Model domain boundary condition} 
    164162\label{sec:LBC_jperio} 
    165163 
     
    170168 
    171169%% ================================================================================================= 
    172 \subsection[Closed, cyclic (\forcode{=0,1,2,7})]{Closed, cyclic (\protect\jp{jperio}\forcode{=0,1,2,7})} 
     170\subsection{Closed, cyclic (\forcode{l_Iperio,l_jperio})} 
    173171\label{subsec:LBC_jperio012} 
    174172 
    175173The choice of closed or cyclic model domain boundary condition is made by 
    176 setting \jp{jperio} to 0, 1, 2 or 7 in namelist \nam{cfg}{cfg}. 
     174setting \forcode{l_Iperio,l_jperio} to true or false in namelist \nam{cfg}{cfg}. 
    177175Each time such a boundary condition is needed, it is set by a call to routine \mdl{lbclnk}. 
    178176The computation of momentum and tracer trends proceeds from $i=2$ to $i=jpi-1$ and from $j=2$ to $j=jpj-1$, 
     
    183181\begin{description} 
    184182 
    185 \item [For closed boundary (\jp{jperio}\forcode{=0})], solid walls are imposed at all model boundaries: 
     183\item [For closed boundary (\forcode{l_Iperio = .false.,l_jperio = .false.})], solid walls are imposed at all model boundaries: 
    186184  first and last rows and columns are set to zero. 
    187185 
    188 \item [For cyclic east-west boundary (\jp{jperio}\forcode{=1})], first and last rows are set to zero (closed) whilst the first column is set to 
     186\item [For cyclic east-west boundary (\forcode{l_Iperio = .true.,l_jperio = .false.})], first and last rows are set to zero (closed) whilst the first column is set to 
    189187  the value of the last-but-one column and the last column to the value of the second one 
    190188  (\autoref{fig:LBC_jperio}-a). 
    191189  Whatever flows out of the eastern (western) end of the basin enters the western (eastern) end. 
    192190 
    193 \item [For cyclic north-south boundary (\jp{jperio}\forcode{=2})], first and last columns are set to zero (closed) whilst the first row is set to 
     191\item [For cyclic north-south boundary (\forcode{l_Iperio = .false.,l_jperio = .true.})], first and last columns are set to zero (closed) whilst the first row is set to 
    194192  the value of the last-but-one row and the last row to the value of the second one 
    195193  (\autoref{fig:LBC_jperio}-a). 
    196194  Whatever flows out of the northern (southern) end of the basin enters the southern (northern) end. 
    197195 
    198 \item [Bi-cyclic east-west and north-south boundary (\jp{jperio}\forcode{=7})] combines cases 1 and 2. 
     196\item [Bi-cyclic east-west and north-south boundary (\forcode{l_Iperio = .true.,l_jperio = .true.})] combines cases 1 and 2. 
    199197 
    200198\end{description} 
     
    209207 
    210208%% ================================================================================================= 
    211 \subsection[North-fold (\forcode{=3,6})]{North-fold (\protect\jp{jperio}\forcode{=3,6})} 
     209\subsection{North-fold (\forcode{l_NFold = .true.})} 
    212210\label{subsec:LBC_north_fold} 
    213211 
     
    222220  \includegraphics[width=0.66\textwidth]{LBC_North_Fold_T} 
    223221  \caption[North fold boundary in ORCA 2\deg, 1/4\deg and 1/12\deg]{ 
    224     North fold boundary with a $T$-point pivot and cyclic east-west boundary condition ($jperio=4$), 
     222    North fold boundary with a $T$-point pivot and cyclic east-west boundary condition ($c\_NFtype='T'$), 
    225223    as used in ORCA 2\deg, 1/4\deg and 1/12\deg. 
    226224    Pink shaded area corresponds to the inner domain mask (see text).} 
     
    288286Each processor is independent and without message passing or synchronous process, programs run alone and access just its own local memory. 
    289287For this reason, 
    290 the main model dimensions are now the local dimensions of the subdomain (pencil) that are named \jp{jpi}, \jp{jpj}, \jp{jpk}. 
     288the main model dimensions are now the local dimensions of the subdomain (pencil) that are named \texttt{jpi}, \texttt{jpj}, \texttt{jpk}. 
    291289These dimensions include the internal domain and the overlapping rows. 
    292 The number of rows to exchange (known as the halo) is usually set to one (nn\_hls=1, in \mdl{par\_oce}, 
     290The number of rows to exchange (known as the halo) is usually set to one (\forcode{nn_hls=1}, in \mdl{par\_oce}, 
    293291and must be kept to one until further notice). 
    294 The whole domain dimensions are named \jp{jpiglo}, \jp{jpjglo} and \jp{jpk}. 
     292The whole domain dimensions are named \texttt{jpiglo}, \texttt{jpjglo} and \texttt{jpk}. 
    295293The relationship between the whole domain and a sub-domain is: 
    296294\begin{gather*} 
     
    299297\end{gather*} 
    300298 
    301 One also defines variables nldi and nlei which correspond to the internal domain bounds, and the variables nimpp and njmpp which are the position of the (1,1) grid-point in the global domain (\autoref{fig:LBC_mpp}). Note that since the version 4, there is no more extra-halo area as defined in \autoref{fig:LBC_mpp} so \jp{jpi} is now always equal to nlci and \jp{jpj} equal to nlcj. 
     299One also defines variables nldi and nlei which correspond to the internal domain bounds, and the variables nimpp and njmpp which are the position of the (1,1) grid-point in the global domain (\autoref{fig:LBC_mpp}). Note that since the version 4, there is no more extra-halo area as defined in \autoref{fig:LBC_mpp} so \texttt{jpi} is now always equal to nlci and \texttt{jpj} equal to nlcj. 
    302300 
    303301An element of $T_{l}$, a local array (subdomain) corresponds to an element of $T_{g}$, 
     
    309307with $1 \leq i \leq jpi$, $1  \leq j \leq jpj $ , and  $1  \leq k \leq jpk$. 
    310308 
    311 The 1-d arrays $mig(1:\jp{jpi})$ and $mjg(1:\jp{jpj})$, defined in \rou{dom\_glo} routine (\mdl{domain} module), should be used to get global domain indices from local domain indices. The 1-d arrays, $mi0(1:\jp{jpiglo})$, $mi1(1:\jp{jpiglo})$ and $mj0(1:\jp{jpjglo})$, $mj1(1:\jp{jpjglo})$ have the reverse purpose and should be used to define loop indices expressed in global domain indices (see examples in \mdl{dtastd} module).\\ 
     309The 1-d arrays $mig(1:\texttt{jpi})$ and $mjg(1:\texttt{jpj})$, defined in \rou{dom\_glo} routine (\mdl{domain} module), should be used to get global domain indices from local domain indices. The 1-d arrays, $mi0(1:\texttt{jpiglo})$, $mi1(1:\texttt{jpiglo})$ and $mj0(1:\texttt{jpjglo})$, $mj1(1:\texttt{jpjglo})$ have the reverse purpose and should be used to define loop indices expressed in global domain indices (see examples in \mdl{dtastd} module).\\ 
    312310 
    313311The \NEMO\ model computes equation terms with the help of mask arrays (0 on land points and 1 on sea points). It is therefore possible that an MPI subdomain contains only land points. To save ressources, we try to supress from the computational domain as much land subdomains as possible. For example if $N_{mpi}$ processes are allocated to NEMO, the domain decomposition will be given by the following equation: 
     
    372370The number of boundary sets is defined by \np{nb_bdy}{nb\_bdy}. 
    373371Each boundary set can be either defined as a series of straight line segments directly in the namelist 
    374 (\np[=.false.]{ln_coords_file}{ln\_coords\_file}, and a namelist block \forcode{&nambdy_index} must be included for each set) or read in from a file (\np[=.true.]{ln_coords_file}{ln\_coords\_file}, and a ``\ifile{coordinates.bdy}'' file must be provided). 
    375 The coordinates.bdy file is analagous to the usual \NEMO\ ``\ifile{coordinates}'' file. 
     372(\np[=.false.]{ln_coords_file}{ln\_coords\_file}, and a namelist block \forcode{&nambdy_index} must be included for each set) or read in from a file (\np[=.true.]{ln_coords_file}{ln\_coords\_file}, and a ``\textit{coordinates.bdy.nc}'' file must be provided). 
     373The coordinates.bdy file is analagous to the usual \NEMO\ ``\textit{coordinates.nc}'' file. 
    376374In the example above, there are two boundary sets, the first of which is defined via a file and 
    377375the second is defined in the namelist. 
     
    570568 
    571569The boundary geometry for each set may be defined in a namelist \forcode{&nambdy_index} or 
    572 by reading in a ``\ifile{coordinates.bdy}'' file. 
    573 The \texttt{nambdy\_index} namelist defines a series of straight-line segments for north, east, south and west boundaries. 
    574 One \texttt{nambdy\_index} namelist block is needed for each boundary condition defined by indexes. 
     570by reading in a ``\textit{coordinates.bdy.nc}'' file. 
     571The \forcode{&nambdy_index} namelist defines a series of straight-line segments for north, east, south and west boundaries. 
     572One \forcode{&nambdy_index} namelist block is needed for each boundary condition defined by indexes. 
    575573For the northern boundary, \texttt{nbdysegn} gives the number of segments, 
    576 \jp{jpjnob} gives the $j$ index for each segment and \jp{jpindt} and 
    577 \jp{jpinft} give the start and end $i$ indices for each segment with similar for the other boundaries. 
     574\texttt{jpjnob} gives the $j$ index for each segment and \texttt{jpindt} and 
     575\texttt{jpinft} give the start and end $i$ indices for each segment with similar for the other boundaries. 
    578576These segments define a list of $T$ grid points along the outermost row of the boundary ($nbr\,=\, 1$). 
    579577The code deduces the $U$ and $V$ points and also the points for $nbr\,>\, 1$ if \np[>1]{nn_rimwidth}{nn\_rimwidth}. 
    580578 
    581 The boundary geometry may also be defined from a ``\ifile{coordinates.bdy}'' file. 
     579The boundary geometry may also be defined from a ``\textit{coordinates.bdy.nc}'' file. 
    582580\autoref{fig:LBC_nc_header} gives an example of the header information from such a file, based on the description of geometrical setup given above. 
    583581The file should contain the index arrays for each of the $T$, $U$ and $V$ grids. 
     
    633631  \centering 
    634632  \includegraphics[width=0.66\textwidth]{LBC_nc_header} 
    635   \caption[Header for a \protect\ifile{coordinates.bdy} file]{ 
    636     Example of the header for a \protect\ifile{coordinates.bdy} file} 
     633  \caption[Header for a \textit{coordinates.bdy.nc} file]{ 
     634    Example of the header for a \textit{coordinates.bdy.nc} file} 
    637635  \label{fig:LBC_nc_header} 
    638636\end{figure} 
     
    684682\texttt{<constituent>\_z1} and \texttt{<constituent>\_z2} for the real and imaginary parts of 
    685683SSH, respectively, are expected to be available in file 
    686 \ifile{<input>\_grid\_T}, variables \texttt{<constituent>\_u1} and 
     684\textit{<input>\_grid\_T.nc}, variables \texttt{<constituent>\_u1} and 
    687685\texttt{<constituent>\_u2} for the real and imaginary parts of u, respectively, in file 
    688 \ifile{<input>\_grid\_U}, and \texttt{<constituent>\_v1} and 
     686\textit{<input>\_grid\_U.nc}, and \texttt{<constituent>\_v1} and 
    689687\texttt{<constituent>\_v2} for the real and imaginary parts of v, respectively, in file 
    690 \ifile{<input>\_grid\_V}; when data along open boundary segments is used, 
     688\textit{<input>\_grid\_V.nc}; when data along open boundary segments is used, 
    691689variables \texttt{z1} and \texttt{z2} (real and imaginary part of SSH) are 
    692 expected to be available in file \ifile{<input><constituent>\_grid\_T}, 
     690expected to be available in file \textit{<input><constituent>\_grid\_T.nc}, 
    693691variables \texttt{u1} and \texttt{u2} (real and imaginary part of u) in file 
    694 \ifile{<input><constituent>\_grid\_U}, and variables \texttt{v1} and \texttt{v2} 
     692\textit{<input><constituent>\_grid\_U.nc}, and variables \texttt{v1} and \texttt{v2} 
    695693(real and imaginary part of v) in file 
    696 \ifile{<input><constituent>\_grid\_V}.\par 
     694\textit{<input><constituent>\_grid\_V.nc}.\par 
    697695 
    698696Note that the barotropic velocity components are assumed to be defined 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_LDF.tex

    r14113 r14644  
    55\chapter{Lateral Ocean Physics (LDF)} 
    66\label{chap:LDF} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_OBS.tex

    r14200 r14644  
    1414%    {\em --\texttt{"}--} & {\em ... K. Mogensen, A. Vidard, A. Weaver} & {\em ---\texttt{"}---}  \\ 
    1515%\end{tabular} 
    16  
    17 \thispagestyle{plain} 
    1816 
    1917\chaptertoc 
     
    420418 
    421419To use Sea Level Anomaly (SLA) data the mean dynamic topography (MDT) must be provided in a separate file defined on 
    422 the model grid called \ifile{slaReferenceLevel}. 
     420the model grid called \textit{slaReferenceLevel.nc}. 
    423421The MDT is required in order to produce the model equivalent sea level anomaly from the model sea surface height. 
    424422Below is an example header for this file (on the ORCA025 grid). 
     
    915913 
    916914\begin{listing} 
    917 %  \nlst{namsao} 
    918915  \begin{forlines} 
    919916!---------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_SBC.tex

    r14200 r14644  
    55\chapter{Surface Boundary Condition (SBC, SAS, ISF, ICB, TDE)} 
    66\label{chap:SBC} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
     
    1715    \hline 
    1816    {\em  next} & {\em Simon M{\" u}ller} & {\em Update of \autoref{sec:SBC_TDE}; revision of \autoref{subsec:SBC_fwb}}\\[2mm] 
     17    {\em  next} & {\em Pierre Mathiot} & {\em update of the ice shelf section (2019 developments)}\\[2mm]   
    1918    {\em   4.0} & {\em ...} & {\em ...} \\ 
    2019    {\em   3.6} & {\em ...} & {\em ...} \\ 
     
    7473  (\np[=0..3]{nn_ice}{nn\_ice}), 
    7574\item the addition of river runoffs as surface freshwater fluxes or lateral inflow (\np[=.true.]{ln_rnf}{ln\_rnf}), 
    76 \item the addition of ice-shelf melting as lateral inflow (parameterisation) or 
    77   as fluxes applied at the land-ice ocean interface (\np[=.true.]{ln_isf}{ln\_isf}), 
    7875\item the addition of a freshwater flux adjustment in order to avoid a mean sea-level drift 
    7976  (\np[=0..2]{nn_fwb}{nn\_fwb}), 
     
    9996One of these is modification by icebergs (see \autoref{sec:SBC_ICB_icebergs}), 
    10097which act as drifting sources of fresh water. 
    101 Another example of modification is that due to the ice shelf melting/freezing (see \autoref{sec:SBC_isf}), 
    102 which provides additional sources of fresh water. 
    10398 
    10499%% ================================================================================================= 
     
    646641parameters. It is therefore recommended to chose version 3.6 over 3. 
    647642 
    648 \subsection{Cool-skin and warm-layer parametrizations} 
    649 %\subsection[Cool-skin and warm-layer parameterizations (\forcode{ln_skin_cs} \& \forcode{ln_skin_wl})]{Cool-skin and warm-layer parameterizations (\protect\np{ln_skin_cs}{ln\_skin\_cs} \& \np{ln_skin_wl}{ln\_skin\_wl})} 
     643\subsection[Cool-skin and warm-layer parameterizations (   \forcode{ln_skin_cs}               \& \forcode{ln_skin_wl}              )] 
     644           {Cool-skin and warm-layer parameterizations (\protect\np{ln_skin_cs}{ln\_skin\_cs} \&      \np{ln_skin_wl}{ln\_skin\_wl})} 
    650645\label{subsec:SBC_skin} 
    651646 
     
    979974  ocean tide model}: Mf, Mm, Ssa, Mtm, Msf, Msqm, Sa, K1, O1, P1, Q1, J1, S1, 
    980975M2, S2, N2, K2, nu2, mu2, 2N2, L2, T2, eps2, lam2, R2, M3, MKS2, MN4, MS4, M4, 
    981 N4, S4, M6, and M8; see file \hf{tide} and \mdl{tide\_mod} for further 
    982 information and references\footnote{As a legacy option \np{ln_tide_var} can be 
     976N4, S4, M6, and M8; see file \textit{tide.h90} and \mdl{tide\_mod} for further 
     977information and references\footnote{As a legacy option \np{ln_tide_var}{ln\_tide\_var} can be 
    983978  set to \forcode{0}, in which case the 19 tidal constituents (M2, N2, 2N2, S2, 
    984979  K2, K1, O1, Q1, P1, M4, Mf, Mm, Msqm, Mtm, S1, MU2, NU2, L2, and T2; see file 
    985   \hf{tide}) and associated parameters that have been available in NEMO version 
     980  \textit{tide.h90}) and associated parameters that have been available in NEMO version 
    986981  4.0 and earlier are available}. Constituents to be included in the tidal forcing 
    987982(surface and lateral boundaries) are selected by enumerating their respective 
     
    10131008potential). The tidal tilt factor $\gamma = 1 + k - h$ includes the 
    10141009Love numbers $k$ and $h$ \citep{love_PRSL09}; this factor is 
    1015 configurable using \np{rn_tide_gamma} (default value 0.7). Optionally, 
     1010configurable using \np{rn_tide_gamma}{rn\_tide\_gamma} (default value 0.7). Optionally, 
    10161011when \np[=.true.]{ln_tide_ramp}{ln\_tide\_ramp}, the equilibrium tidal 
    10171012forcing can be ramped up linearly from zero during the initial 
     
    11831178 
    11841179%% ================================================================================================= 
    1185 \section[Ice shelf melting (\textit{sbcisf.F90})]{Ice shelf melting (\protect\mdl{sbcisf})} 
     1180\section[Ice Shelf (ISF)]{Interaction with ice shelves (ISF)} 
    11861181\label{sec:SBC_isf} 
    11871182 
    11881183\begin{listing} 
    1189   \nlst{namsbc_isf} 
    1190   \caption{\forcode{&namsbc_isf}} 
    1191   \label{lst:namsbc_isf} 
     1184  \nlst{namisf} 
     1185  \caption{\forcode{&namisf}} 
     1186  \label{lst:namisf} 
    11921187\end{listing} 
    11931188 
    1194 The namelist variable in \nam{sbc}{sbc}, \np{nn_isf}{nn\_isf}, controls the ice shelf representation. 
    1195 Description and result of sensitivity test to \np{nn_isf}{nn\_isf} are presented in \citet{mathiot.jenkins.ea_GMD17}. 
    1196 The different options are illustrated in \autoref{fig:SBC_isf}. 
    1197  
     1189The namelist variable in \nam{isf}{isf}, \np{ln_isf}{ln\_isf}, controls the ice shelf interactions: 
    11981190\begin{description} 
    1199   \item [{\np[=1]{nn_isf}{nn\_isf}}]: The ice shelf cavity is represented (\np[=.true.]{ln_isfcav}{ln\_isfcav} needed). 
    1200   The fwf and heat flux are depending of the local water properties. 
    1201  
    1202   Two different bulk formulae are available: 
     1191   \item $\bullet$ representation of the ice shelf/ocean melting/freezing for opened cavity (cav, \np{ln_isfcav_mlt}{ln\_isfcav\_mlt}). 
     1192   \item $\bullet$ parametrisation of the ice shelf/ocean melting/freezing for closed cavities (par, \np{ln_isfpar_mlt}{ln\_isfpar\_mlt}). 
     1193   \item $\bullet$ coupling with an ice sheet model (\np{ln_isfcpl}{ln\_isfcpl}). 
     1194\end{description} 
     1195 
     1196  \subsection{Ocean/Ice shelf fluxes in opened cavities} 
     1197 
     1198     \np{ln_isfcav_mlt}{ln\_isfcav\_mlt}\forcode{ = .true.} activates the ocean/ice shelf thermodynamics interactions at the ice shelf/ocean interface.  
     1199     If \np{ln_isfcav_mlt}{ln\_isfcav\_mlt}\forcode{ = .false.}, thermodynamics interactions are desctivated but the ocean dynamics inside the cavity is still active. 
     1200     The logical flag \np{ln_isfcav}{ln\_isfcav} control whether or not the ice shelf cavities are closed. \np{ln_isfcav}{ln\_isfcav} is not defined in the namelist but in the domcfg.nc input file.\\ 
     1201 
     1202     3 options are available to represent to ice-shelf/ocean fluxes at the interface: 
     1203     \begin{description} 
     1204        \item[\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = 'spe'}]: 
     1205        The fresh water flux is specified by a forcing fields \np{sn_isfcav_fwf}{sn\_isfcav\_fwf}. Convention of the input file is: positive toward the ocean (i.e. positive for melting and negative for freezing). 
     1206        The latent heat fluxes is derived from the fresh water flux.  
     1207        The heat content flux is derived from the fwf flux assuming a temperature set to the freezing point in the top boundary layer (\np{rn_htbl}{rn\_htbl}) 
     1208 
     1209        \item[\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = 'oasis'}]: 
     1210        The \forcode{'oasis'} is a prototype of what could be a method to spread precipitation on Antarctic ice sheet as ice shelf melt inside the cavity when a coupled model Atmosphere/Ocean is used.  
     1211        It has not been tested and therefore the model will stop if you try to use it.  
     1212        Actions will be undertake in 2020 to build a comprehensive interface to do so for Greenland, Antarctic and ice shelf (cav), ice shelf (par), icebergs, subglacial runoff and runoff. 
     1213 
     1214        \item[\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = '2eq'}]: 
     1215        The heat flux and the fresh water flux (negative for melting) resulting from ice shelf melting/freezing are parameterized following \citet{Grosfeld1997}.  
     1216        This formulation is based on a balance between the vertical diffusive heat flux across the ocean top boundary layer (\autoref{eq:ISOMIP1})  
     1217        and the latent heat due to melting/freezing (\autoref{eq:ISOMIP2}): 
     1218 
     1219        \begin{equation} 
     1220        \label{eq:ISOMIP1} 
     1221        \mathcal{Q}_h = \rho c_p \gamma (T_w - T_f) 
     1222        \end{equation} 
     1223        \begin{equation} 
     1224        \label{eq:ISOMIP2} 
     1225        q = \frac{-\mathcal{Q}_h}{L_f} 
     1226        \end{equation} 
     1227         
     1228        where $\mathcal{Q}_h$($W.m^{-2}$) is the heat flux,q($kg.s^{-1}m^{-2}$) the fresh-water flux,  
     1229        $L_f$ the specific latent heat, $T_w$ the temperature averaged over a boundary layer below the ice shelf (explained below),  
     1230        $T_f$ the freezing point using  the  pressure  at  the  ice  shelf  base  and  the  salinity  of the water in the boundary layer,  
     1231        and $\gamma$ the thermal exchange coefficient. 
     1232 
     1233        \item[\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = '3eq'}]: 
     1234        For realistic studies, the heat and freshwater fluxes are parameterized following \citep{Jenkins2001}. This formulation is based on three equations:  
     1235        a balance between the vertical diffusive heat flux across the boundary layer  
     1236        , the latent heat due to melting/freezing of ice and the vertical diffusive heat flux into the ice shelf (\autoref{eq:3eq1});  
     1237        a balance between the vertical diffusive salt flux across the boundary layer and the salt source or sink represented by the melting/freezing (\autoref{eq:3eq2});  
     1238        and a linear equation for the freezing temperature of sea water (\autoref{eq:3eq3}, detailed of the linearisation coefficient in \citet{AsayDavis2016}): 
     1239 
     1240        \begin{equation} 
     1241        \label{eq:3eq1} 
     1242        c_p \rho \gamma_T (T_w-T_b) = -L_f q - \rho_i c_{p,i} \kappa \frac{T_s - T_b}{h_{isf}} 
     1243        \end{equation} 
     1244        \begin{equation} 
     1245        \label{eq:3eq2} 
     1246        \rho \gamma_S (S_w - S_b) = (S_i - S_b)q 
     1247        \end{equation} 
     1248        \begin{equation} 
     1249        \label{eq:3eq3} 
     1250        T_b = \lambda_1 S_b + \lambda_2 +\lambda_3 z_{isf} 
     1251        \end{equation} 
     1252 
     1253        where $T_b$ is the temperature at the interface, $S_b$ the salinity at the interface, $\gamma_T$ and $\gamma_S$ the exchange coefficients for temperature and salt, respectively,  
     1254        $S_i$ the salinity of the ice (assumed to be 0), $h_{isf}$ the ice shelf thickness, $z_{isf}$ the ice shelf draft, $\rho_i$ the density of the iceshelf,  
     1255        $c_{p,i}$ the specific heat capacity of the ice, $\kappa$ the thermal diffusivity of the ice  
     1256        and $T_s$ the atmospheric surface temperature (at the ice/air interface, assumed to be -20C).  
     1257        The Liquidus slope ($\lambda_1$), the liquidus intercept ($\lambda_2$) and the Liquidus pressure coefficient ($\lambda_3$)  
     1258        for TEOS80 and TEOS10 are described in \citep{AsayDavis2016} and in \citep{Jourdain2017}. 
     1259        The linear system formed by \autoref{eq:3eq1}, \autoref{eq:3eq2} and the linearised equation for the freezing temperature of sea water (\autoref{eq:3eq3}) can be solved for $S_b$ or $T_b$.  
     1260        Afterward, the freshwater flux ($q$) and the heat flux ($\mathcal{Q}_h$) can be computed. 
     1261 
     1262     \end{description} 
     1263 
     1264     \begin{table}[h] 
     1265        \centering 
     1266        \caption{Description of the parameters hard coded into the ISF module} 
     1267        \label{tab:isf} 
     1268        \begin{tabular}{|l|l|l|l|} 
     1269        \hline 
     1270        Symbol    & Description               & Value              & Unit               \\ 
     1271        \hline 
     1272        $C_p$     & Ocean specific heat       & 3992               & $J.kg^{-1}.K^{-1}$ \\ 
     1273        $L_f$     & Ice latent heat of fusion & $3.34 \times 10^5$ & $J.kg^{-1}$        \\ 
     1274        $C_{p,i}$ & Ice specific heat         & 2000               & $J.kg^{-1}.K^{-1}$ \\ 
     1275        $\kappa$  & Heat diffusivity          & $1.54 \times 10^{-6}$& $m^2.s^{-1}$     \\ 
     1276        $\rho_i$  & Ice density               & 920                & $kg.m^3$           \\ 
     1277        \hline 
     1278        \end{tabular} 
     1279     \end{table} 
     1280 
     1281     Temperature and salinity used to compute the fluxes in \autoref{eq:ISOMIP1}, \autoref{eq:3eq1} and \autoref{eq:3eq2} are the average temperature in the top boundary layer \citep{losch_JGR08}.  
     1282     Its thickness is defined by \np{rn_htbl}{rn\_htbl}. 
     1283     The fluxes and friction velocity are computed using the mean temperature, salinity and velocity in the first \np{rn_htbl}{rn\_htbl} m. 
     1284     Then, the fluxes are spread over the same thickness (ie over one or several cells). 
     1285     If \np{rn_htbl}{rn\_htbl} is larger than top $e_{3}t$, there is no more direct feedback between the freezing point at the interface and the top cell temperature. 
     1286     This can lead to super-cool temperature in the top cell under melting condition. 
     1287     If \np{rn_htbl}{rn\_htbl} smaller than top $e_{3}t$, the top boundary layer thickness is set to the top cell thickness.\\ 
     1288 
     1289     Each melt formula (\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = '3eq'} or \np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = '2eq'}) depends on an exchange coeficient ($\Gamma^{T,S}$) between the ocean and the ice. 
     1290     Below, the exchange coeficient $\Gamma^{T}$ and $\Gamma^{S}$ are respectively defined by \np{rn_gammat0}{rn\_gammat0} and \np{rn_gammas0}{rn\_gammas0}.  
     1291     There are 3 different ways to compute the exchange velocity: 
     1292 
     1293     \begin{description} 
     1294        \item[\np{cn_gammablk}{cn\_gammablk}\forcode{='spe'}]: 
     1295        The salt and heat exchange coefficients are constant and defined by: 
     1296\[ 
     1297\gamma^{T} = \Gamma^{T} 
     1298\] 
     1299\[ 
     1300\gamma^{S} = \Gamma^{S} 
     1301\]  
     1302        This is the recommended formulation for ISOMIP. 
     1303 
     1304   \item[\np{cn_gammablk}{cn\_gammablk}\forcode{='vel'}]: 
     1305        The salt and heat exchange coefficients are velocity dependent and defined as 
     1306\[ 
     1307\gamma^{T} = \Gamma^{T} \times u_{*}  
     1308\] 
     1309\[ 
     1310\gamma^{S} = \Gamma^{S} \times u_{*} 
     1311\] 
     1312        where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn_htbl}{rn\_htbl} meters). 
     1313        See \citet{jenkins.nicholls.ea_JPO10} for all the details on this formulation. It is the recommended formulation for realistic application and ISOMIP+/MISOMIP configuration. 
     1314 
     1315   \item[\np{cn_gammablk}{cn\_gammablk}\forcode{'vel\_stab'}]: 
     1316        The salt and heat exchange coefficients are velocity and stability dependent and defined as: 
     1317\[ 
     1318\gamma^{T,S} = \frac{u_{*}}{\Gamma_{Turb} + \Gamma^{T,S}_{Mole}}  
     1319\] 
     1320        where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn_tbl}{rn\_htbl} meters), 
     1321        $\Gamma_{Turb}$ the contribution of the ocean stability and 
     1322        $\Gamma^{T,S}_{Mole}$ the contribution of the molecular diffusion. 
     1323        See \citet{holland.jenkins_JPO99} for all the details on this formulation.  
     1324        This formulation has not been extensively tested in NEMO (not recommended). 
     1325     \end{description} 
     1326 
     1327\subsection{Ocean/Ice shelf fluxes in parametrised cavities} 
    12031328 
    12041329  \begin{description} 
    1205   \item [{\np[=1]{nn_isfblk}{nn\_isfblk}}]: The melt rate is based on a balance between the upward ocean heat flux and 
    1206     the latent heat flux at the ice shelf base. A complete description is available in \citet{hunter_trpt06}. 
    1207   \item [{\np[=2]{nn_isfblk}{nn\_isfblk}}]: The melt rate and the heat flux are based on a 3 equations formulation 
    1208     (a heat flux budget at the ice base, a salt flux budget at the ice base and a linearised freezing point temperature equation). 
    1209     A complete description is available in \citet{jenkins_JGR91}. 
     1330 
     1331     \item[\np{cn_isfpar_mlt}{cn\_isfpar\_mlt}\forcode{ = 'bg03'}]: 
     1332     The ice shelf cavities are not represented. 
     1333     The fwf and heat flux are computed using the \citet{beckmann.goosse_OM03} parameterisation of isf melting. 
     1334     The fluxes are distributed along the ice shelf edge between the depth of the average grounding line (GL) 
     1335     (\np{sn_isfpar_zmax}{sn\_isfpar\_zmax}) and the base of the ice shelf along the calving front 
     1336     (\np{sn_isfpar_zmin}{sn\_isfpar\_zmin}) as in (\np{cn_isfpar_mlt}{cn\_isfpar\_mlt}\forcode{ = 'spe'}). 
     1337     The effective melting length (\np{sn_isfpar_Leff}{sn\_isfpar\_Leff}) is read from a file. 
     1338     This parametrisation has not been tested since a while and based on \citet{Favier2019},  
     1339     this parametrisation should probably not be used. 
     1340 
     1341     \item[\np{cn_isfpar_mlt}{cn\_isfpar\_mlt}\forcode{ = 'spe'}]: 
     1342     The ice shelf cavity is not represented. 
     1343     The fwf (\np{sn_isfpar_fwf}{sn\_isfpar\_fwf}) is prescribed and distributed along the ice shelf edge between 
     1344     the depth of the average grounding line (GL) (\np{sn_isfpar_zmax}{sn\_isfpar\_zmax}) and 
     1345     the base of the ice shelf along the calving front (\np{sn_isfpar_zmin}{sn\_isfpar\_min}). Convention of the input file is positive toward the ocean (i.e. positive for melting and negative for freezing). 
     1346     The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$. 
     1347 
     1348     \item[\np{cn_isfpar_mlt}{cn\_isfpar\_mlt}\forcode{ = 'oasis'}]: 
     1349     The \forcode{'oasis'} is a prototype of what could be a method to spread precipitation on Antarctic ice sheet as ice shelf melt inside the cavity when a coupled model Atmosphere/Ocean is used.  
     1350     It has not been tested and therefore the model will stop if you try to use it.  
     1351     Action will be undertake in 2020 to build a comprehensive interface to do so for Greenland, Antarctic and ice shelf (cav), ice shelf (par), icebergs, subglacial runoff and runoff. 
     1352 
    12101353  \end{description} 
    12111354 
    1212   Temperature and salinity used to compute the melt are the average temperature in the top boundary layer \citet{losch_JGR08}. 
    1213   Its thickness is defined by \np{rn_hisf_tbl}{rn\_hisf\_tbl}. 
    1214   The fluxes and friction velocity are computed using the mean temperature, salinity and velocity in the the first \np{rn_hisf_tbl}{rn\_hisf\_tbl} m. 
    1215   Then, the fluxes are spread over the same thickness (ie over one or several cells). 
    1216   If \np{rn_hisf_tbl}{rn\_hisf\_tbl} larger than top $e_{3}t$, there is no more feedback between the freezing point at the interface and the the top cell temperature. 
    1217   This can lead to super-cool temperature in the top cell under melting condition. 
    1218   If \np{rn_hisf_tbl}{rn\_hisf\_tbl} smaller than top $e_{3}t$, the top boundary layer thickness is set to the top cell thickness.\\ 
    1219  
    1220   Each melt bulk formula depends on a exchange coeficient ($\Gamma^{T,S}$) between the ocean and the ice. 
    1221   There are 3 different ways to compute the exchange coeficient: 
    1222   \begin{description} 
    1223   \item [{\np[=0]{nn_gammablk}{nn\_gammablk}}]: The salt and heat exchange coefficients are constant and defined by \np{rn_gammas0}{rn\_gammas0} and \np{rn_gammat0}{rn\_gammat0}. 
    1224     \begin{gather*} 
    1225        % \label{eq:SBC_isf_gamma_iso} 
    1226       \gamma^{T} = rn\_gammat0 \\ 
    1227       \gamma^{S} = rn\_gammas0 
    1228     \end{gather*} 
    1229     This is the recommended formulation for ISOMIP. 
    1230   \item [{\np[=1]{nn_gammablk}{nn\_gammablk}}]: The salt and heat exchange coefficients are velocity dependent and defined as 
    1231     \begin{gather*} 
    1232       \gamma^{T} = rn\_gammat0 \times u_{*} \\ 
    1233       \gamma^{S} = rn\_gammas0 \times u_{*} 
    1234     \end{gather*} 
    1235     where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn_hisf_tbl}{rn\_hisf\_tbl} meters). 
    1236     See \citet{jenkins.nicholls.ea_JPO10} for all the details on this formulation. It is the recommended formulation for realistic application. 
    1237   \item [{\np[=2]{nn_gammablk}{nn\_gammablk}}]: The salt and heat exchange coefficients are velocity and stability dependent and defined as: 
    1238     \[ 
    1239       \gamma^{T,S} = \frac{u_{*}}{\Gamma_{Turb} + \Gamma^{T,S}_{Mole}} 
    1240     \] 
    1241     where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn_hisf_tbl}{rn\_hisf\_tbl} meters), 
    1242     $\Gamma_{Turb}$ the contribution of the ocean stability and 
    1243     $\Gamma^{T,S}_{Mole}$ the contribution of the molecular diffusion. 
    1244     See \citet{holland.jenkins_JPO99} for all the details on this formulation. 
    1245     This formulation has not been extensively tested in \NEMO\ (not recommended). 
    1246   \end{description} 
    1247 \item [{\np[=2]{nn_isf}{nn\_isf}}]: The ice shelf cavity is not represented. 
    1248   The fwf and heat flux are computed using the \citet{beckmann.goosse_OM03} parameterisation of isf melting. 
    1249   The fluxes are distributed along the ice shelf edge between the depth of the average grounding line (GL) 
    1250   (\np{sn_depmax_isf}{sn\_depmax\_isf}) and the base of the ice shelf along the calving front 
    1251   (\np{sn_depmin_isf}{sn\_depmin\_isf}) as in (\np[=3]{nn_isf}{nn\_isf}). 
    1252   The effective melting length (\np{sn_Leff_isf}{sn\_Leff\_isf}) is read from a file. 
    1253 \item [{\np[=3]{nn_isf}{nn\_isf}}]: The ice shelf cavity is not represented. 
    1254   The fwf (\np{sn_rnfisf}{sn\_rnfisf}) is prescribed and distributed along the ice shelf edge between 
    1255   the depth of the average grounding line (GL) (\np{sn_depmax_isf}{sn\_depmax\_isf}) and 
    1256   the base of the ice shelf along the calving front (\np{sn_depmin_isf}{sn\_depmin\_isf}). 
    1257   The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$. 
    1258 \item [{\np[=4]{nn_isf}{nn\_isf}}]: The ice shelf cavity is opened (\np[=.true.]{ln_isfcav}{ln\_isfcav} needed). 
    1259   However, the fwf is not computed but specified from file \np{sn_fwfisf}{sn\_fwfisf}). 
    1260   The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$. 
    1261   As in \np[=1]{nn_isf}{nn\_isf}, the fluxes are spread over the top boundary layer thickness (\np{rn_hisf_tbl}{rn\_hisf\_tbl}) 
    1262 \end{description} 
    1263  
    1264 $\bullet$ \np[=1]{nn_isf}{nn\_isf} and \np[=2]{nn_isf}{nn\_isf} compute a melt rate based on 
     1355\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = '2eq'}, \np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = '3eq'} and \np{cn_isfpar_mlt}{cn\_isfpar\_mlt}\forcode{ = 'bg03'} compute a melt rate based on 
    12651356the water mass properties, ocean velocities and depth. 
    1266 This flux is thus highly dependent of the model resolution (horizontal and vertical), 
    1267 realism of the water masses onto the shelf ...\\ 
    1268  
    1269 $\bullet$ \np[=3]{nn_isf}{nn\_isf} and \np[=4]{nn_isf}{nn\_isf} read the melt rate from a file. 
     1357The resulting fluxes are thus highly dependent of the model resolution (horizontal and vertical) and  
     1358realism of the water masses onto the shelf.\\ 
     1359 
     1360\np{cn_isfcav_mlt}{cn\_isfcav\_mlt}\forcode{ = 'spe'} and \np{cn_isfpar_mlt}{cn\_isfpar\_mlt}\forcode{ = 'spe'} read the melt rate from a file. 
    12701361You have total control of the fwf forcing. 
    12711362This can be useful if the water masses on the shelf are not realistic or 
    12721363the resolution (horizontal/vertical) are too coarse to have realistic melting or 
    1273 for studies where you need to control your heat and fw input.\\ 
    1274  
    1275 The ice shelf melt is implemented as a volume flux as for the runoff. 
    1276 The fw addition due to the ice shelf melting is, at each relevant depth level, added to 
    1277 the horizontal divergence (\textit{hdivn}) in the subroutine \rou{sbc\_isf\_div}, called from \mdl{divhor}. 
    1278 See \autoref{sec:SBC_rnf} for all the details about the divergence correction. 
     1364for studies where you need to control your heat and fw input.  
     1365However, if your forcing is not consistent with the dynamics below you can reach unrealistic low water temperature.\\ 
     1366 
     1367The ice shelf fwf is implemented as a volume flux as for the runoff. 
     1368The fwf addition due to the ice shelf melting is, at each relevant depth level, added to 
     1369the horizontal divergence (\textit{hdivn}) in the subroutine \rou{isf\_hdiv}, called from \mdl{divhor}. 
     1370See the runoff section \autoref{sec:SBC_rnf} for all the details about the divergence correction.\\ 
     1371 
     1372Description and result of sensitivity tests to \np{ln_isfcav_mlt}{ln\_isfcav\_mlt} and \np{ln_isfpar_mlt}{ln\_isfpar\_mlt} are presented in \citet{mathiot.jenkins.ea_GMD17}.  
     1373The different options are illustrated in \autoref{fig:ISF}. 
    12791374 
    12801375\begin{figure}[!t] 
    12811376  \centering 
    1282   \includegraphics[width=0.66\textwidth]{SBC_isf} 
     1377  \includegraphics[width=0.66\textwidth]{SBC_isf_v4.2} 
    12831378  \caption[Ice shelf location and fresh water flux definition]{ 
    12841379    Illustration of the location where the fwf is injected and 
    1285     whether or not the fwf is interactif or not depending of \protect\np{nn_isf}{nn\_isf}.} 
    1286   \label{fig:SBC_isf} 
     1380    whether or not the fwf is interactive or not.} 
     1381  \label{fig:ISF} 
    12871382\end{figure} 
    12881383 
    1289 %% ================================================================================================= 
    1290 \section{Ice sheet coupling} 
    1291 \label{sec:SBC_iscpl} 
    1292  
    1293 \begin{listing} 
    1294   \nlst{namsbc_iscpl} 
    1295   \caption{\forcode{&namsbc_iscpl}} 
    1296   \label{lst:namsbc_iscpl} 
    1297 \end{listing} 
     1384\subsection{Available outputs} 
     1385The following outputs are availables via XIOS: 
     1386\begin{description} 
     1387   \item[for parametrised cavities]: 
     1388      \begin{xmllines} 
     1389 <field id="isftfrz_par"     long_name="freezing point temperature in the parametrization boundary layer" unit="degC"     /> 
     1390 <field id="fwfisf_par"      long_name="Ice shelf melt rate"                           unit="kg/m2/s"  /> 
     1391 <field id="qoceisf_par"     long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     /> 
     1392 <field id="qlatisf_par"     long_name="Ice shelf latent heat flux"                    unit="W/m2"     /> 
     1393 <field id="qhcisf_par"      long_name="Ice shelf heat content flux of injected water" unit="W/m2"     /> 
     1394 <field id="fwfisf3d_par"    long_name="Ice shelf melt rate"                           unit="kg/m2/s"  grid_ref="grid_T_3D" /> 
     1395 <field id="qoceisf3d_par"   long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     1396 <field id="qlatisf3d_par"   long_name="Ice shelf latent heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     1397 <field id="qhcisf3d_par"    long_name="Ice shelf heat content flux of injected water" unit="W/m2"     grid_ref="grid_T_3D" /> 
     1398 <field id="ttbl_par"        long_name="temperature in the parametrisation boundary layer" unit="degC" /> 
     1399 <field id="isfthermald_par" long_name="thermal driving of ice shelf melting"          unit="degC"     /> 
     1400      \end{xmllines} 
     1401   \item[for open cavities]: 
     1402      \begin{xmllines} 
     1403 <field id="isftfrz_cav"     long_name="freezing point temperature at ocean/isf interface"                unit="degC"     /> 
     1404 <field id="fwfisf_cav"      long_name="Ice shelf melt rate"                           unit="kg/m2/s"  /> 
     1405 <field id="qoceisf_cav"     long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     /> 
     1406 <field id="qlatisf_cav"     long_name="Ice shelf latent heat flux"                    unit="W/m2"     /> 
     1407 <field id="qhcisf_cav"      long_name="Ice shelf heat content flux of injected water" unit="W/m2"     /> 
     1408 <field id="fwfisf3d_cav"    long_name="Ice shelf melt rate"                           unit="kg/m2/s"  grid_ref="grid_T_3D" /> 
     1409 <field id="qoceisf3d_cav"   long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     1410 <field id="qlatisf3d_cav"   long_name="Ice shelf latent heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     1411 <field id="qhcisf3d_cav"    long_name="Ice shelf heat content flux of injected water" unit="W/m2"     grid_ref="grid_T_3D" /> 
     1412 <field id="ttbl_cav"        long_name="temperature in Losch tbl"                      unit="degC"     /> 
     1413 <field id="isfthermald_cav" long_name="thermal driving of ice shelf melting"          unit="degC"     /> 
     1414 <field id="isfgammat"       long_name="Ice shelf heat-transfert velocity"             unit="m/s"      /> 
     1415 <field id="isfgammas"       long_name="Ice shelf salt-transfert velocity"             unit="m/s"      /> 
     1416 <field id="stbl"            long_name="salinity in the Losh tbl"                      unit="1e-3"     /> 
     1417 <field id="utbl"            long_name="zonal current in the Losh tbl at T point"      unit="m/s"      /> 
     1418 <field id="vtbl"            long_name="merid current in the Losh tbl at T point"      unit="m/s"      /> 
     1419 <field id="isfustar"        long_name="ustar at T point used in ice shelf melting"    unit="m/s"      /> 
     1420 <field id="qconisf"         long_name="Conductive heat flux through the ice shelf"    unit="W/m2"     /> 
     1421      \end{xmllines} 
     1422\end{description} 
     1423 
     1424%% ================================================================================================= 
     1425\subsection{Ice sheet coupling} 
     1426\label{subsec:ISF_iscpl} 
    12981427 
    12991428Ice sheet/ocean coupling is done through file exchange at the restart step. 
    1300 At each restart step: 
    1301  
    1302 \begin{enumerate} 
    1303 \item the ice sheet model send a new bathymetry and ice shelf draft netcdf file. 
    1304 \item a new domcfg.nc file is built using the DOMAINcfg tools. 
    1305 \item \NEMO\ run for a specific period and output the average melt rate over the period. 
    1306 \item the ice sheet model run using the melt rate outputed in step 4. 
    1307 \item go back to 1. 
    1308 \end{enumerate} 
    1309  
    1310 If \np[=.true.]{ln_iscpl}{ln\_iscpl}, the isf draft is assume to be different at each restart step with 
     1429At each restart step, the procedure is this one: 
     1430 
     1431\begin{description} 
     1432\item[Step 1]: the ice sheet model send a new bathymetry and ice shelf draft netcdf file. 
     1433\item[Step 2]: a new domcfg.nc file is built using the DOMAINcfg tools. 
     1434\item[Step 3]: NEMO run for a specific period and output the average melt rate over the period. 
     1435\item[Step 4]: the ice sheet model run using the melt rate outputed in step 3. 
     1436\item[Step 5]: go back to 1. 
     1437\end{description} 
     1438 
     1439If \np{ln_iscpl}{ln\_iscpl}\forcode{ = .true.}, the isf draft is assume to be different at each restart step with 
    13111440potentially some new wet/dry cells due to the ice sheet dynamics/thermodynamics. 
    1312 The wetting and drying scheme applied on the restart is very simple and described below for the 6 different possible cases: 
     1441The wetting and drying scheme, applied on the restart, is very simple. The 6 different possible cases for the tracer and ssh are: 
    13131442 
    13141443\begin{description} 
    1315 \item [Thin a cell down]: T/S/ssh are unchanged and U/V in the top cell are corrected to keep the barotropic transport (bt) constant 
    1316   ($bt_b=bt_n$). 
    1317 \item [Enlarge  a cell]: See case "Thin a cell down" 
    1318 \item [Dry a cell]: mask, T/S, U/V and ssh are set to 0. 
    1319   Furthermore, U/V into the water column are modified to satisfy ($bt_b=bt_n$). 
    1320 \item [Wet a cell]: mask is set to 1, T/S is extrapolated from neighbours, $ssh_n = ssh_b$ and U/V set to 0. 
    1321   If no neighbours, T/S is extrapolated from old top cell value. 
    1322   If no neighbours along i,j and k (both previous test failed), T/S/U/V/ssh and mask are set to 0. 
    1323 \item [Dry a column]: mask, T/S, U/V are set to 0 everywhere in the column and ssh set to 0. 
    1324 \item [Wet a column]: set mask to 1, T/S is extrapolated from neighbours, ssh is extrapolated from neighbours and U/V set to 0. 
    1325   If no neighbour, T/S/U/V and mask set to 0. 
     1444   \item[Thin a cell]: 
     1445   T/S/ssh are unchanged. 
     1446 
     1447   \item[Enlarge  a cell]: 
     1448   See case "Thin a cell down" 
     1449 
     1450   \item[Dry a cell]: 
     1451   Mask, T/S, U/V and ssh are set to 0. 
     1452 
     1453   \item[Wet a cell]:  
     1454   Mask is set to 1, T/S is extrapolated from neighbours, $ssh_n = ssh_b$. 
     1455   If no neighbours, T/S is extrapolated from old top cell value.  
     1456   If no neighbours along i,j and k (both previous tests failed), T/S/ssh and mask are set to 0. 
     1457 
     1458   \item[Dry a column]: 
     1459   mask, T/S and ssh are set to 0. 
     1460 
     1461   \item[Wet a column]: 
     1462   set mask to 1, T/S/ssh are extrapolated from neighbours. 
     1463   If no neighbour, T/S/ssh and mask set to 0. 
    13261464\end{description} 
     1465 
     1466The method described above will strongly affect the barotropic transport under an ice shelf when the geometry change. 
     1467In order to keep the model stable, an adjustment of the dynamics at the initialisation after the coupling step is needed.  
     1468The idea behind this is to keep $\pd[\eta]{t}$ as it should be without change in geometry at the initialisation.  
     1469This will prevent any strong velocity due to large pressure gradient.  
     1470To do so, we correct the horizontal divergence before $\pd[\eta]{t}$ is computed in the first time step.\\ 
    13271471 
    13281472Furthermore, as the before and now fields are not compatible (modification of the geometry), 
     
    13311475The horizontal extrapolation to fill new cell with realistic value is called \np{nn_drown}{nn\_drown} times. 
    13321476It means that if the grounding line retreat by more than \np{nn_drown}{nn\_drown} cells between 2 coupling steps, 
    1333 the code will be unable to fill all the new wet cells properly. 
     1477the code will be unable to fill all the new wet cells properly and the model is likely to blow up at the initialisation. 
    13341478The default number is set up for the MISOMIP idealised experiments. 
    13351479This coupling procedure is able to take into account grounding line and calving front migration. 
    1336 However, it is a non-conservative processe. 
     1480However, it is a non-conservative proccess.  
    13371481This could lead to a trend in heat/salt content and volume.\\ 
    13381482 
    13391483In order to remove the trend and keep the conservation level as close to 0 as possible, 
    1340 a simple conservation scheme is available with \np[=.true.]{ln_hsb}{ln\_hsb}. 
    1341 The heat/salt/vol. gain/loss is diagnosed, as well as the location. 
    1342 A correction increment is computed and apply each time step during the next \np{rn_fiscpl}{rn\_fiscpl} time steps. 
    1343 For safety, it is advised to set \np{rn_fiscpl}{rn\_fiscpl} equal to the coupling period (smallest increment possible). 
    1344 The corrective increment is apply into the cell itself (if it is a wet cell), the neigbouring cells or the closest wet cell (if the cell is now dry). 
     1484a simple conservation scheme is available with \np{ln_isfcpl_cons}{ln\_isfcpl\_cons}\forcode{ = .true.}. 
     1485The heat/salt/vol. gain/loss are diagnosed, as well as the location. 
     1486A correction increment is computed and applied each time step during the model run. 
     1487The corrective increment are applied into the cells itself (if it is a wet cell), the neigbouring cells or the closest wet cell (if the cell is now dry). 
    13451488 
    13461489%% ================================================================================================= 
     
    13901533which are assumed to propagate with their larger parent and thus delay fluxing into the ocean. 
    13911534Melt water (and other variables on the configuration grid) are written into the main \NEMO\ model output files. 
     1535 
     1536By default, iceberg thermodynamic and dynamic are computed using ocean surface variable (sst, ssu, ssv) and the icebergs are not sensible to the bathymetry (only to land) whatever the iceberg draft.  
     1537\citet{Merino_OM2016} developed an option to use vertical profiles of ocean currents and temperature instead (\np{ln_M2016}{ln\_M2016}). 
     1538Full details on the sensitivity to this parameter in done in \citet{Merino_OM2016}.  
     1539If \np{ln_M2016}{ln\_M2016} activated, \np{ln_icb_grd}{ln\_icb\_grd} activate (or not) an option to prevent thick icebergs to move across shallow bank (ie shallower than the iceberg draft). 
     1540This option need to be used with care as it could required to either change the distribution to prevent generation of icebergs with draft larger than the bathymetry  
     1541or to build a variable \forcode{maxclass} to prevent NEMO filling the icebergs classes too thick for the local bathymetry. 
    13921542 
    13931543Extensive diagnostics can be produced. 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_STO.tex

    r11693 r14644  
    55\chapter{Stochastic Parametrization of EOS (STO)} 
    66\label{chap:STO} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_TRA.tex

    r13476 r14644  
    55\chapter{Ocean Tracers (TRA)} 
    66\label{chap:TRA} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
     
    930928When \np{nn_geoflx}{nn\_geoflx} is set to 2, 
    931929a spatially varying geothermal heat flux is introduced which is provided in 
    932 the \ifile{geothermal\_heating} NetCDF file 
     930the \textit{geothermal\_heating.nc} NetCDF file 
    933931(\autoref{fig:TRA_geothermal}) \citep{emile-geay.madec_OS09}. 
    934932 
     
    11511149\citep{madec.delecluse.ea_JPO96}. 
    11521150 
    1153 For generating \ifile{resto}, 
     1151For generating \textit{resto.nc}, 
    11541152see the documentation for the DMP tools provided with the source code under \path{./tools/DMP_TOOLS}. 
    11551153 
     
    11751173$\gamma$ is initialized as \np{rn_atfp}{rn\_atfp}, its default value is \forcode{10.e-3}. 
    11761174Note that the forcing correction term in the filter is not applied in linear free surface 
    1177 (\jp{ln\_linssh}\forcode{=.true.}) (see \autoref{subsec:TRA_sbc}). 
     1175(\np[=.true.]{ln_linssh}{ln\_linssh}) (see \autoref{subsec:TRA_sbc}). 
    11781176Not also that in constant volume case, the time stepping is performed on $T$, 
    11791177not on its content, $e_{3t}T$. 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_ZDF.tex

    r14200 r14644  
    22 
    33\begin{document} 
    4  
    5 %% Custom aliases 
    6 \newcommand{\cf}{\ensuremath{C\kern-0.14em f}} 
    74 
    85\chapter{Vertical Ocean Physics (ZDF)} 
    96\label{chap:ZDF} 
    10  
    11 \thispagestyle{plain} 
    127 
    138\chaptertoc 
     
    10851080  \label{lst:namdrg} 
    10861081\end{listing} 
     1082 
    10871083\begin{listing} 
    10881084  \nlst{namdrg_top} 
     
    10901086  \label{lst:namdrg_top} 
    10911087\end{listing} 
     1088 
    10921089\begin{listing} 
    10931090  \nlst{namdrg_bot} 
     
    11811178These values are assigned in \mdl{zdfdrg}. 
    11821179Note that there is support for local enhancement of these values via an externally defined 2D mask array 
    1183 (\np[=.true.]{ln_boost}{ln\_boost}) given in the \ifile{bfr\_coef} input NetCDF file. 
     1180(\np[=.true.]{ln_boost}{ln\_boost}) given in the \textit{bfr\_coef.nc} input NetCDF file. 
    11841181The mask values should vary from 0 to 1. 
    11851182Locations with a non-zero mask value will have the friction coefficient increased by 
     
    15641561by only a few extra physics choices namely: 
    15651562 
    1566 \begin{verbatim} 
     1563\begin{forlines} 
    15671564     ln_dynldf_OFF = .false. 
    15681565     ln_dynldf_lap = .true. 
     
    15721569        nn_fct_h   =  2 
    15731570        nn_fct_v   =  2 
    1574 \end{verbatim} 
     1571\end{forlines} 
    15751572 
    15761573\noindent which were chosen to provide a slightly more stable and less noisy solution. The 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_cfgs.tex

    r14200 r14644  
    55\chapter{Configurations} 
    66\label{chap:CFGS} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
     
    8583the SI3 model (ORCA-ICE) and possibly with PISCES biogeochemical model (ORCA-ICE-PISCES). 
    8684An appropriate namelist is available in \path{./cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg} for ORCA2. 
    87 The domain of ORCA2 configuration is defined in \ifile{ORCA\_R2\_zps\_domcfg} file, 
     85The domain of ORCA2 configuration is defined in \textit{ORCA\_R2\_zps\_domcfg.nc} file, 
    8886this file is available in tar file on the \NEMO\ community zenodo platform: \\ 
    8987https://doi.org/10.5281/zenodo.2640723 
     
    152150Each of configuration is set through the \textit{domain\_cfg} domain configuration file, 
    153151which sets the grid size and configuration name parameters. 
    154 The \NEMO\ System Team provides only ORCA2 domain input file "\ifile{ORCA\_R2\_zps\_domcfg}" file 
     152The \NEMO\ System Team provides only ORCA2 domain input file "\textit{ORCA\_R2\_zps\_domcfg.nc}" file 
    155153(\autoref{tab:CFGS_ORCA}). 
    156154 
     
    158156  \centering 
    159157  \begin{tabular}{p{4cm} c c c c} 
    160     Horizontal Grid & \jp{ORCA\_index} & \jp{jpiglo} & \jp{jpjglo} \\ 
     158    Horizontal Grid & \texttt{ORCA\_index} & \texttt{jpiglo} & \texttt{jpjglo} \\ 
    161159    \hline \hline 
    162160    % 4   \deg\ &              4   &          92 &          76 \\ 
     
    246244Its horizontal resolution (and thus the size of the domain) is determined by 
    247245setting \np{nn_GYRE}{nn\_GYRE} in \nam{usr_def}{usr\_def}: 
     246 
    248247\begin{align*} 
    249   \jp{jpiglo} = 30 \times \text{\np{nn_GYRE}{nn\_GYRE}} + 2 + 2 \times \text{\np{nn_hls}{nn\_hls}} \\ 
    250   \jp{jpjglo} = 20 \times \text{\np{nn_GYRE}{nn\_GYRE}} + 2 + 2 \times \text{\np{nn_hls}{nn\_hls}} 
     248   jpiglo = 30 \times \text{\np{nn_GYRE}{nn\_GYRE}} + 2 + 2 \times \text{\np{nn_hls}{nn\_hls}} \\ 
     249   jpjglo = 20 \times \text{\np{nn_GYRE}{nn\_GYRE}} + 2 + 2 \times \text{\np{nn_hls}{nn\_hls}} 
    251250\end{align*} 
    252251 
    253252Obviously, the namelist parameters have to be adjusted to the chosen resolution, 
    254253see the Configurations pages on the \NEMO\ web site (\NEMO\ Configurations). 
    255 In the vertical, GYRE uses the default 30 ocean levels (\jp{jpk}\forcode{ = 31}) (\autoref{fig:DOM_zgr_e3}). 
     254In the vertical, GYRE uses the default 30 ocean levels (\forcode{jpk = 31}, \autoref{fig:DOM_zgr_e3}). 
    256255 
    257256\begin{listing} 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_conservation.tex

    r11693 r14644  
    55\chapter{Invariants of the Primitive Equations} 
    66\label{chap:CONS} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_misc.tex

    r14113 r14644  
    66\label{chap:MISC} 
    77 
    8 \thispagestyle{plain} 
    9  
    108\chaptertoc 
    119 
     
    1412{\footnotesize 
    1513  \begin{tabularx}{\textwidth}{l||X|X} 
    16     Release & Author(s) & Modifications \\ 
     14    Release     & Author(s)            & Modifications                      \\ 
    1715    \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 ...} 
     16    {\em   X.X} & {\em Pierre Mathiot} & {Update of the closed sea section} \\ 
     17    {\em   4.0} & {\em ...           } & {\em ...                         } \\ 
     18    {\em   3.6} & {\em ...           } & {\em ...                         } \\ 
     19    {\em   3.4} & {\em ...           } & {\em ...                         } \\ 
     20    {\em <=3.4} & {\em ...           } & {\em ...                         } 
    2221  \end{tabularx} 
    2322} 
     
    109108\end{figure} 
    110109 
    111 \begin{figure}[!tbp] 
    112   \centering 
    113   \includegraphics[width=0.66\textwidth]{MISC_closea_mask_example} 
    114   \caption[Mask fields for the \protect\mdl{closea} module]{ 
    115     Example of mask fields for the \protect\mdl{closea} module. 
    116     \textit{Left}: a closea\_mask field; 
    117     \textit{Right}: a closea\_mask\_rnf field. 
    118     In this example, if \protect\np{ln_closea}{ln\_closea} is set to \forcode{.true.}, 
    119     the mean freshwater flux over each of the American Great Lakes will be set to zero, 
    120     and the total residual for all the lakes, if negative, will be put into 
    121     the St Laurence Seaway in the area shown.} 
    122   \label{fig:MISC_closea_mask_example} 
    123 \end{figure} 
    124  
    125110%% ================================================================================================= 
    126111\section[Closed seas (\textit{closea.F90})]{Closed seas (\protect\mdl{closea})} 
    127112\label{sec:MISC_closea} 
     113 
     114\begin{listing} 
     115  \nlst{namclo} 
     116  \caption{\forcode{&namclo}} 
     117  \label{lst:namclo} 
     118\end{listing} 
    128119 
    129120Some configurations include inland seas and lakes as ocean 
     
    138129to zero and put the residual flux into the ocean. 
    139130 
    140 Prior to \NEMO\ 4 the locations of inland seas and lakes was set via 
    141 hardcoded indices for various ORCA configurations. From \NEMO\ 4 onwards 
    142 the inland seas and lakes are defined using mask fields in the 
    143 domain configuration file. The options are as follows. 
    144  
    145 \begin{enumerate} 
    146 \item {{\bfseries No ``closea\_mask'' field is included in domain configuration 
    147   file.} In this case the closea module does nothing.} 
    148  
    149 \item {{\bfseries A field called closea\_mask is included in the domain 
    150 configuration file and ln\_closea=.false. in namelist namcfg.} In this 
    151 case the inland seas defined by the closea\_mask field are filled in 
    152 (turned to land points) at run time. That is every point in 
    153 closea\_mask that is nonzero is set to be a land point.} 
    154  
    155 \item {{\bfseries A field called closea\_mask is included in the domain 
    156 configuration file and ln\_closea=.true. in namelist namcfg.} Each 
    157 inland sea or group of inland seas is set to a positive integer value 
    158 in the closea\_mask field (see \autoref{fig:MISC_closea_mask_example} 
    159 for an example). The net surface flux over each inland sea or group of 
     131The inland seas and lakes are defined using mask fields in the 
     132domain configuration file. Special treatment of the closed sea (redistribution of net freshwater or mask those), are defined in \autoref{lst:namclo} and 
     133can be trigger by \np{ln_closea}{ln\_closea}\forcode{=.true.} in namelist namcfg. 
     134 
     135The options available are the following: 
     136\begin{description} 
     137\item[\np{ln_maskcs}{ln\_maskcs}\forcode{ = .true.}] All the closed seas are masked using \textit{mask\_opensea} variable. 
     138\item[\np{ln_maskcs}{ln\_maskcs}\forcode{ = .false.}] The net surface flux over each inland sea or group of 
    160139inland seas is set to zero each timestep and the residual flux is 
    161 distributed over the global ocean (ie. all ocean points where 
    162 closea\_mask is zero).} 
    163  
    164 \item {{\bfseries Fields called closea\_mask and closea\_mask\_rnf are 
    165 included in the domain configuration file and ln\_closea=.true. in 
    166 namelist namcfg.} This option works as for option 3, except that if 
    167 the net surface flux over an inland sea is negative (net 
    168 precipitation) it is put into the ocean at specified runoff points. A 
    169 net positive surface flux (net evaporation) is still spread over the 
    170 global ocean. The mapping from inland seas to runoff points is defined 
    171 by the closea\_mask\_rnf field. Each mapping is defined by a positive 
    172 integer value for the inland sea(s) and the corresponding runoff 
    173 points. An example is given in 
    174 \autoref{fig:MISC_closea_mask_example}. If no mapping is provided for a 
    175 particular inland sea then the residual is spread over the global 
    176 ocean.} 
    177  
    178 \item {{\bfseries Fields called closea\_mask and closea\_mask\_emp are 
    179 included in the domain configuration file and ln\_closea=.true. in 
    180 namelist namcfg.} This option works the same as option 4 except that 
    181 the nonzero net surface flux is sent to the ocean at the specified 
    182 runoff points regardless of whether it is positive or negative. The 
    183 mapping from inland seas to runoff points in this case is defined by 
    184 the closea\_mask\_emp field.} 
    185 \end{enumerate} 
    186  
    187 There is a python routine to create the closea\_mask fields and append 
    188 them to the domain configuration file in the utils/tools/DOMAINcfg directory. 
     140distributed over a target area. 
     141\end{description} 
     142 
     143When \np{ln_maskcs}{ln\_maskcs}\forcode{ = .false.},  
     1443 options are available for the redistribution (set up of these options is done in the tool DOMAINcfg): 
     145\begin{description}[font=$\bullet$ ] 
     146\item[ glo]: The residual flux is redistributed globally. 
     147\item[ emp]: The residual flux is redistributed as emp in a river outflow. 
     148\item[ rnf]: The residual flux is redistributed as rnf in a river outflow if negative. If there is a net evaporation, the residual flux is redistributed globally. 
     149\end{description} 
     150 
     151For each case, 2 masks are needed (\autoref{fig:MISC_closea_mask_example}):  
     152\begin{description} 
     153\item $\bullet$ one describing the 'sources' (ie the closed seas concerned by each options) called \textit{mask\_csglo}, \textit{mask\_csrnf}, \textit{mask\_csemp}.  
     154\item $\bullet$ one describing each group of inland seas (the Great Lakes for example) and the target area (river outflow or world ocean) for each group of inland seas (St Laurence for the Great Lakes for example) called 
     155\textit{mask\_csgrpglo}, \textit{mask\_csgrprnf}, \textit{mask\_csgrpemp}. 
     156\end{description} 
     157 
     158\begin{figure}[!tbp] 
     159  \centering 
     160  \includegraphics[width=0.66\textwidth]{MISC_closea_mask_example} 
     161  \caption[Mask fields for the \protect\mdl{closea} module]{ 
     162    Example of mask fields for the \protect\mdl{closea} module. 
     163    \textit{Left}: a \textit{mask\_csrnf} field; 
     164    \textit{Right}: a \textit{mask\_csgrprnf} field. 
     165    In this example, if \protect\np{ln_closea}{ln\_closea} is set to \forcode{.true.}, 
     166    the mean freshwater flux over each of the American Great Lakes will be set to zero, 
     167    and the total residual for all the lakes, if negative, will be put into 
     168    the St Laurence Seaway in the area shown.} 
     169  \label{fig:MISC_closea_mask_example} 
     170\end{figure} 
     171 
     172Closed sea not defined (because too small, issue in the bathymetry definition ...) are defined in \textit{mask\_csundef}. 
     173These points can be masked using the namelist option \np{ln_mask_csundef}{ln\_mask\_csundef}\forcode{= .true.} or used to correct the bathymetry input file.\\ 
     174 
     175The masks needed for the closed sea can be created using the DOMAINcfg tool in the utils/tools/DOMAINcfg directory. 
     176See \autoref{sec:clocfg} for details on the usage of definition of the closed sea masks. 
    189177 
    190178%% ================================================================================================= 
     
    205193 
    206194\noindent Consider an ORCA1 
    207 configuration using the extended grid domain configuration file: \ifile{eORCA1\_domcfg.nc} 
     195configuration using the extended grid domain configuration file: \textit{eORCA1\_domcfg.nc} 
    208196This file define a horizontal domain of 362x332.  The first row with 
    209197open ocean wet points in the non-isf bathymetry for this set is row 42 (\fortran\ indexing) 
     
    226214\noindent Note that with this option, the j-size of the global domain is (extended 
    227215j-size minus \np{open_ocean_jstart}{open\_ocean\_jstart} + 1 ) and this must match the \texttt{jpjglo} value 
    228 for the configuration. This means an alternative version of \ifile{eORCA1\_domcfg.nc} must 
     216for the configuration. This means an alternative version of \textit{eORCA1\_domcfg.nc} must 
    229217be created for when \np{ln_use_jattr}{ln\_use\_jattr} is active. The \texttt{ncap2} tool provides a 
    230218convenient way of achieving this: 
     
    234222\end{cmds} 
    235223 
    236 The domain configuration file is unique in this respect since it also contains the value of \jp{jpjglo} 
     224The domain configuration file is unique in this respect since it also contains the value of \texttt{jpjglo} 
    237225that is read and used by the model. 
    238226Any other global, 2D and 3D, netcdf, input field can be prepared for use in a reduced domain by adding the 
     
    374362 
    375363When more information is required for monitoring or debugging purposes, the various 
    376 forms of output can be selected via the \np{sn\_cfctl} structure. As well as simple 
     364forms of output can be selected via the \np{sn_cfctl}{sn\_cfctl} structure. As well as simple 
    377365on-off switches this structure also allows selection of a range of processors for 
    378366individual reporting (where appropriate) and a time-increment option to restrict 
     
    449437systems so bug-hunting efforts using this facility should also utilise the \fortran: 
    450438 
    451 \begin{forlines}  
    452    CALL FLUSH(numout) 
    453 \end{forlines} 
     439\forline|CALL FLUSH(numout)| 
    454440 
    455441statement after any additional write statements to ensure that file contents reflect 
     
    482468 
    483469\begin{forlines} 
    484    sn_cfctl%l_glochk = .FALSE.    ! Range sanity checks are local (F) or global (T). Set T for debugging only 
    485    sn_cfctl%l_allon  = .FALSE.    ! IF T activate all options. If F deactivate all unless l_config is T 
    486      sn_cfctl%l_config = .TRUE.     ! IF .true. then control which reports are written with the following 
    487        sn_cfctl%l_runstat = .FALSE. ! switches and which areas produce reports with the proc integer settings. 
    488        sn_cfctl%l_trcstat = .FALSE. ! The default settings for the proc integers should ensure 
    489        sn_cfctl%l_oceout  = .FALSE. ! that  all areas report. 
    490        sn_cfctl%l_layout  = .FALSE. ! 
    491        sn_cfctl%l_prtctl  = .FALSE. ! 
    492        sn_cfctl%l_prttrc  = .FALSE. ! 
    493        sn_cfctl%l_oasout  = .FALSE. ! 
    494        sn_cfctl%procmin   = 0       ! Minimum area number for reporting [default:0] 
    495        sn_cfctl%procmax   = 1000000 ! Maximum area number for reporting [default:1000000] 
    496        sn_cfctl%procincr  = 1       ! Increment for optional subsetting of areas [default:1] 
    497        sn_cfctl%ptimincr  = 1       ! Timestep increment for writing time step progress info 
     470   sn_cfctl%l_glochk  = .false. ! Range sanity checks are local (F) or global (T). Set T for debugging only 
     471   sn_cfctl%l_allon   = .false. ! IF T activate all options. If F deactivate all unless l_config is T 
     472   sn_cfctl%l_config  = .true.  ! IF .true. then control which reports are written with the following 
     473   sn_cfctl%l_runstat = .false. ! switches and which areas produce reports with the proc integer settings. 
     474   sn_cfctl%l_trcstat = .false. ! The default settings for the proc integers should ensure 
     475   sn_cfctl%l_oceout  = .false. ! that  all areas report. 
     476   sn_cfctl%l_layout  = .false. ! 
     477   sn_cfctl%l_prtctl  = .false. ! 
     478   sn_cfctl%l_prttrc  = .false. ! 
     479   sn_cfctl%l_oasout  = .false. ! 
     480   sn_cfctl%procmin   = 0       ! Minimum area number for reporting [default:0] 
     481   sn_cfctl%procmax   = 1000000 ! Maximum area number for reporting [default:1000000] 
     482   sn_cfctl%procincr  = 1       ! Increment for optional subsetting of areas [default:1] 
     483   sn_cfctl%ptimincr  = 1       ! Timestep increment for writing time step progress info 
    498484\end{forlines} 
    499485 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_model_basics.tex

    r14113 r14644  
    55\chapter{Model Basics} 
    66\label{chap:MB} 
    7  
    8 \thispagestyle{plain} 
    97 
    108\chaptertoc 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_model_basics_zstar.tex

    r14200 r14644  
    44 
    55\chapter{ essai \zstar \sstar} 
    6  
    7 \thispagestyle{plain} 
    86 
    97\chaptertoc 
     
    8583 
    8684%\nlst{nam_dynspg} 
     85 
    8786Options are defined through the \nam{_dynspg}{\_dynspg} namelist variables. 
    8887The surface pressure gradient term is related to the representation of the free surface (\autoref{sec:MB_hor_pg}). 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_time_domain.tex

    r11693 r14644  
    66\label{chap:TD} 
    77 
    8 \thispagestyle{plain} 
    9  
    108\chaptertoc 
    119 
     
    1412{\footnotesize 
    1513  \begin{tabularx}{0.5\textwidth}{l||X|X} 
    16     Release          & Author(s)                                       & 
     14    Release          & Author(s)                                       &  
    1715    Modifications                                                      \\ 
    1816    \hline 
    19     {\em        4.0} & {\em J\'{e}r\^{o}me Chanut \newline Tim Graham} & 
     17    {\em        4.0} & {\em J\'{e}r\^{o}me Chanut \newline Tim Graham} &  
    2018    {\em Review \newline Update                                      } \\ 
    21     {\em        3.6} & {\em Christian \'{E}th\'{e}                   } & 
     19    {\em        3.6} & {\em Christian \'{E}th\'{e}                   } &  
    2220    {\em Update                                                      } \\ 
    23     {\em $\leq$ 3.4} & {\em Gurvan Madec                             } & 
     21    {\em $\leq$ 3.4} & {\em Gurvan Madec                             } &  
    2422    {\em First version                                               } \\ 
    2523  \end{tabularx} 
     
    4644 
    4745The time stepping used in \NEMO\ is a three level scheme that can be represented as follows: 
     46 
    4847\begin{equation} 
    4948  \label{eq:TD} 
    5049  x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ \text{RHS}_x^{t - \rdt, \, t, \, t + \rdt} 
    5150\end{equation} 
     51 
    5252where $x$ stands for $u$, $v$, $T$ or $S$; 
    5353RHS is the \textbf{R}ight-\textbf{H}and-\textbf{S}ide of the corresponding time evolution equation; 
     
    9999first designed by \citet{robert_JMSJ66} and more comprehensively studied by \citet{asselin_MWR72}, 
    100100is a kind of laplacian diffusion in time that mixes odd and even time steps: 
     101 
    101102\begin{equation} 
    102103  \label{eq:TD_asselin} 
    103104  x_F^t = x^t + \gamma \, \lt[ x_F^{t - \rdt} - 2 x^t + x^{t + \rdt} \rt] 
    104105\end{equation} 
     106 
    105107where the subscript $F$ denotes filtered values and $\gamma$ is the Asselin coefficient. 
    106108$\gamma$ is initialized as \np{rn_atfp}{rn\_atfp} (namelist parameter). 
     
    134136The conditions for stability of second and fourth order horizontal diffusion schemes are 
    135137\citep{griffies_bk04}: 
     138 
    136139\begin{equation} 
    137140  \label{eq:TD_euler_stability} 
     
    142145  \end{cases} 
    143146\end{equation} 
     147 
    144148where $e$ is the smallest grid size in the two horizontal directions and 
    145149$A^h$ is the mixing coefficient. 
     
    153157To overcome the stability constraint, a backward (or implicit) time differencing scheme is used. 
    154158This scheme is unconditionally stable but diffusive and can be written as follows: 
     159 
    155160\begin{equation} 
    156161  \label{eq:TD_imp} 
     
    170175where RHS is the right hand side of the equation except for the vertical diffusion term. 
    171176We rewrite \autoref{eq:TD_imp} as: 
     177 
    172178\begin{equation} 
    173179  \label{eq:TD_imp_mat} 
    174180  -c(k + 1) \; T^{t + 1}(k + 1) + d(k) \; T^{t + 1}(k) - \; c(k) \; T^{t + 1}(k - 1) \equiv b(k) 
    175181\end{equation} 
     182 
    176183where 
     184 
    177185\[ 
    178186  c(k) = A_w^{vT} (k) \, / \, e_{3w} (k) \text{,} \quad 
     
    241249$Q$ is redistributed over several time step. 
    242250In the modified LF-RA environment, these two formulations have been replaced by: 
     251 
    243252\begin{gather} 
    244253  \label{eq:TD_forcing} 
     
    248257                    - \gamma \, \rdt \, \lt( Q^{t + \rdt / 2} - Q^{t - \rdt / 2} \rt) 
    249258\end{gather} 
     259 
    250260The change in the forcing formulation given by \autoref{eq:TD_forcing} 
    251261(see \autoref{fig:TD_MLF_forcing}) has a significant effect: 
     
    377387  % 
    378388\end{flalign*} 
     389 
    379390\begin{flalign*} 
    380391  \allowdisplaybreaks 
     
    389400  % 
    390401\end{flalign*} 
     402 
    391403\begin{flalign*} 
    392404  \allowdisplaybreaks 
Note: See TracChangeset for help on using the changeset viewer.