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 14403 – NEMO

Changeset 14403


Ignore:
Timestamp:
2021-02-05T13:13:14+01:00 (3 years ago)
Author:
smasson
Message:

dev_r14312_MPI_Interface: merge with trunk@14402, #2598

Location:
NEMO/branches/2021/dev_r14312_MPI_Interface
Files:
27 edited
1 copied

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14312_MPI_Interface/cfgs/SHARED/namelist_ref

    r14338 r14403  
    644644   rn_test_box             = 108.0,  116.0, -66.0, -58.0 
    645645   ln_use_calving          = .false. ! Use calving data even when nn_test_icebergs > 0 
    646    rn_speed_limit          = 0.      ! CFL speed limit for a berg 
     646   rn_speed_limit          = 0.      ! CFL speed limit for a berg (safe value is 0.4, see #2581) 
    647647   ! 
    648648   ln_M2016                = .false. ! use Merino et al. (2016) modification (use of 3d ocean data instead of only sea surface data) 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/.svnignore

    r14257 r14403  
    99*.lo* 
    1010*.out 
     11*.pdf 
     12*.pyg 
     13*.tdo 
    1114*.toc 
    1215*.xdv 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/NEMO/build

    • Property svn:ignore
      •  

        old new  
        99*.lo* 
        1010*.out 
         11*.pdf 
         12*.pyg 
         13*.tdo 
        1114*.toc 
        1215*.xdv 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/NEMO/main/bibliography.bib

    • Property svn:eol-style set to native
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/NEMO/main/settings.tex

    r14257 r14403  
    55\def\spcup{\vspace*{2.15cm}} 
    66\def\hdg{NEMO ocean engine} 
    7 %\def\shdg{} 
    8 \def\spcdn{\vspace*{1cm}} 
    9 \def\autwd{0.25\linewidth} 
    10 \def\lnlg{270pt} 
    11 \def\abswd{0.65\linewidth} 
     7%\def\shdg{} %% No subheading 
     8\def\spcdn{\vspace*{1.00cm}} 
     9\def\autwd{0.25\linewidth}\def\lnlg{270pt}\def\abswd{0.65\linewidth} 
    1210 
    1311%% Color in cmyk model for manual theme (frontpage banner, links and chapter boxes) 
    14 \def\clr{1,.60,0,.4} 
     12\def\clr{1.0,0.6,0.0,0.4} 
    1513 
    1614%% IPSL publication number 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/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/2021/dev_r14312_MPI_Interface/doc/latex/NEMO/subfiles/apdx_DOMAINcfg.tex

    r14303 r14403  
    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  
    108\chaptertoc 
    119 
     
    1412{\footnotesize 
    1513  \begin{tabularx}{\textwidth}{l||X|X} 
    16     Release & Author(s) & Modifications \\ 
    17     \hline 
    18     {\em   next}& {\em Pierre Mathiot} & {\em add ice shelf and closed sea option description } \\ 
    19     {\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 }  \\ 
    20     {\em   3.6} & {\em ...} & {\em ...} \\ 
    21     {\em   3.4} & {\em ...} & {\em ...} \\ 
    22     {\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                            } 
    2320  \end{tabularx} 
    2421} 
     
    592589  the \textit{isfdraft\_meter} file (Netcdf format). This file need to include the \textit{isf\_draft} variable.  
    593590  A positive value will mean ice shelf/ocean or ice shelf bedrock interface below the reference 0m ssh.  
    594   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}. 
     591  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}. 
    595592 
    596593\begin{listing} 
     
    616613\end{listing} 
    617614 
    618    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}). 
    619  
    620    \subsection{Model ice shelf draft definition} 
    621    \label{subsec:zgrisf_isfd} 
    622  
    623    First of all, the tool make sure, the ice shelf draft ($h_{isf}$) is sensible and compatible with the bathymetry. 
    624    There are 3 compulsory steps to achieve this: 
    625  
    626    \begin{description} 
    627    \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)$.  
    628    Where $h_{isf} < MAX(e3t\_1d(1),\np{rn_isfdep_min}{rn\_isfdep\_min}$), $h_{isf}$ is set to \np{rn_isfdep_min}{rn\_isfdep\_min}. 
    629  
    630    \item{\np{rn_glhw_min}{rn\_glhw\_min}:} This parameter is used to define the grounding line position. 
    631    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).  
    632    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, ...). 
    633  
    634    \item{\np{rn_isfhw_min}{rn\_isfhw\_min}:} This parameter is the minimum water column thickness in the cavity.  
    635    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.  
    636    If for any reason, this adjustement break the minimum ice shelf draft allowed (\np{rn_isfdep_min}{rn\_isfdep\_min}), the cell is masked. 
    637    \end{description} 
    638  
    639    Once 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}.   
     615   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}). 
     616 
     617\subsection{Model ice shelf draft definition} 
     618\label{subsec:zgrisf_isfd} 
     619 
     620First of all, the tool make sure, the ice shelf draft ($h_{isf}$) is sensible and compatible with the bathymetry. 
     621There are 3 compulsory steps to achieve this: 
     622 
     623\begin{description} 
     624\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)$.  
     625  Where $h_{isf} < MAX(e3t\_1d(1),rn\_isfdep\_min)$, $h_{isf}$ is set to \np{rn_isfdep_min}{rn\_isfdep\_min}. 
     626 
     627\item{\np{rn_glhw_min}{rn\_glhw\_min}:} This parameter is used to define the grounding line position. 
     628  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).  
     629  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, ...). 
     630 
     631\item{\np{rn_isfhw_min}{rn\_isfhw\_min}:} This parameter is the minimum water column thickness in the cavity.  
     632  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.  
     633  If for any reason, this adjustement break the minimum ice shelf draft allowed (\np{rn_isfdep_min}{rn\_isfdep\_min}), the cell is masked. 
     634\end{description} 
     635 
     636Once 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}.   
    640637  
    641    \subsection{Model top level definition} 
    642    After the definition of the ice shelf draft, the tool defines the top level.  
    643    The compulsory criterion is that the water column needs at least 2 wet cells in the water column at U- and V-points. 
    644    To do so, if there one cell wide water column, the tools adjust the ice shelf draft to fillful the requierement.\\ 
    645  
    646    The process is the following: 
    647    \begin{description} 
    648    \item{step 1:} The top level is defined in the same way as the bottom level is defined. 
    649    \item{step 2:} The isolated grid point in the bathymetry are filled (as it is done in a domain without ice shelf) 
    650    \item{step 3:} The tools make sure, the top level is above or equal to the bottom level 
    651    \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 
    652    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. 
    653    \end{description} 
    654  
    655    In case of steep slope and shallow water column, it likely that 2 cells are disconnected (bathymetry above its neigbourging ice shelf draft).  
    656    The option \np{ln_isfconnect}{ln\_isfconnect} allow the tool to force the connection between these 2 cells. 
    657    Some 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}). 
    658    This will prevent the formation of subglacial lakes at the expense of long vertical pipe to connect cells at very different levels. 
    659  
    660    \subsection{Subglacial lakes} 
    661    Despite 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. 
    662    For exemple if you setup your ice shelf draft and bathymetry to do ocean/ice sheet coupling,  
    663    you may decide to fill the whole antarctic with a bathymetry and an ice shelf draft value (ice/bedrock interface depth when grounded).  
    664    If 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:  
    665    one connected to the main ocean and an other one closed which can be considered as a subglacial sea be the model.\\ 
    666  
    667    The namelist option \np{ln_isfsubgl}{ln\_isfsubgl} allow you to remove theses subglacial lakes. 
    668    This may be useful for esthetical reason or for stability reasons: 
    669  
    670    \begin{description} 
    671    \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.  
    672          This will lead to constant freezing until water reaches -20C.  
    673          This is one of the defitiency of the 3 equation melt formulation (for details on this formulation, see: \autoref{sec:isf}). 
    674    \item $\bullet$ In case of coupling with an ice sheet model,  
    675          the ssh in the subglacial lakes and the main ocean could be very different (ssh initial adjustement for example),  
    676          and so if for any reason both a connected at some point, the model is likely to fall over.\\ 
    677    \end{description} 
     638\subsection{Model top level definition} 
     639After the definition of the ice shelf draft, the tool defines the top level.  
     640The compulsory criterion is that the water column needs at least 2 wet cells in the water column at U- and V-points. 
     641To do so, if there one cell wide water column, the tools adjust the ice shelf draft to fillful the requierement.\\ 
     642 
     643The process is the following: 
     644\begin{description} 
     645\item{step 1:} The top level is defined in the same way as the bottom level is defined. 
     646\item{step 2:} The isolated grid point in the bathymetry are filled (as it is done in a domain without ice shelf) 
     647\item{step 3:} The tools make sure, the top level is above or equal to the bottom level 
     648\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 
     649  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. 
     650\end{description} 
     651 
     652In case of steep slope and shallow water column, it likely that 2 cells are disconnected (bathymetry above its neigbourging ice shelf draft).  
     653The option \np{ln_isfconnect}{ln\_isfconnect} allow the tool to force the connection between these 2 cells. 
     654Some 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}). 
     655This will prevent the formation of subglacial lakes at the expense of long vertical pipe to connect cells at very different levels. 
     656 
     657\subsection{Subglacial lakes} 
     658Despite 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. 
     659For exemple if you setup your ice shelf draft and bathymetry to do ocean/ice sheet coupling,  
     660you may decide to fill the whole antarctic with a bathymetry and an ice shelf draft value (ice/bedrock interface depth when grounded).  
     661If 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:  
     662one connected to the main ocean and an other one closed which can be considered as a subglacial sea be the model.\\ 
     663 
     664The namelist option \np{ln_isfsubgl}{ln\_isfsubgl} allow you to remove theses subglacial lakes. 
     665This may be useful for esthetical reason or for stability reasons: 
     666 
     667\begin{description} 
     668\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.  
     669  This will lead to constant freezing until water reaches -20C.  
     670  This is one of the defitiency of the 3 equation melt formulation (for details on this formulation, see: \autoref{sec:isf}). 
     671\item $\bullet$ In case of coupling with an ice sheet model,  
     672  the ssh in the subglacial lakes and the main ocean could be very different (ssh initial adjustement for example),  
     673  and so if for any reason both a connected at some point, the model is likely to fall over.\\ 
     674\end{description} 
    678675 
    679676\section{Closed sea definition} 
     
    707704\end{listing} 
    708705 
    709 The options available to define the closed seas and how closed sea net fresh water input will be redistributed by NEMO are listed in \nam{clo}{dom_clo} (\texttt{DOMAINcfg} only). 
     706The 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). 
    710707The individual definition of each closed sea is managed by \np{sn_lake}{sn\_lake}. In this fields the user needs to define:\\ 
    711708   \begin{description} 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/NEMO/subfiles/chap_SBC.tex

    r14303 r14403  
    11791179%% ================================================================================================= 
    11801180\section[Ice Shelf (ISF)]{Interaction with ice shelves (ISF)} 
    1181 \label{sec:isf} 
     1181\label{sec:SBC_isf} 
    11821182 
    11831183\begin{listing} 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/NEMO/subfiles/chap_TRA.tex

    r14303 r14403  
    733733  (see \autoref{sec:SBC_rnf} for further detail of how it acts on temperature and salinity tendencies) 
    734734\item [\textit{fwfisf}] The mass flux associated with ice shelf melt, 
    735   (see \autoref{sec:isf} for further details on how the ice shelf melt is computed and applied). 
     735  (see \autoref{sec:SBC_isf} for further details on how the ice shelf melt is computed and applied). 
    736736\end{labeling} 
    737737 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/SI3/build

    • Property svn:ignore
      •  

        old new  
        99*.lo* 
        1010*.out 
         11*.pdf 
         12*.pyg 
         13*.tdo 
        1114*.toc 
        1215*.xdv 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/SI3/main/bibliography.bib

    • Property svn:eol-style set to native
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/SI3/main/settings.tex

    r11591 r14403  
    1 %% Engine (folder name) 
    2 \def \engine{SI3} 
     1%% Engine 
     2\def\eng{SI3} 
    33 
    4 %% Title and cover page settings 
    5 \def \spacetop{  \vspace*{1.2cm} } 
    6 \def \heading{Sea Ice modelling Integrated Initiative (SI$^3$)} 
    7 \def \subheading{The NEMO sea ice engine} 
    8 \def \spacedown{ \vspace*{  1cm} } 
    9 \def \authorswidth{0.2\linewidth} 
    10 \def \rulelenght{230pt} 
    11 \def \abstractwidth{0.65\linewidth} 
     4%% Cover page 
     5\def\spcup{\vspace*{1.20cm}} 
     6\def \hdg{Sea Ice modelling Integrated Initiative (SI$^3$)} 
     7\def\shdg{The NEMO sea ice engine                         } 
     8\def\spcdn{\vspace*{1.00cm}} 
     9\def\autwd{0.20\linewidth}\def\lnlg{230pt}\def\abswd{0.65\linewidth} 
    1210 
    13 %% Color for document (frontpage banner, links and chapter boxes) 
    14 \def \setmanualcolor{ \definecolor{manualcolor}{cmyk}{0, 0, 0, 0.4} } 
     11%% Color in cmyk model for manual theme (frontpage banner, links and chapter boxes) 
     12\def\clr{0.0,0.0,0.0,0.4} 
    1513 
    1614%% IPSL publication number 
    17 \def \ipslnum{31} 
     15\def\ipsl{31} 
    1816 
    19 %% Zenodo ID, i.e. doi:10.5281/zenodo.\([0-9]*\) 
    20 \def \zid{1471689} 
     17%% Zenodo ID, i.e. doi:10.5281/zenodo.\zid 
     18\def\zid{1471689} 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/SI3/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/2021/dev_r14312_MPI_Interface/doc/latex/TOP/build

    • Property svn:ignore
      •  

        old new  
        99*.lo* 
        1010*.out 
         11*.pdf 
         12*.pyg 
         13*.tdo 
        1114*.toc 
        1215*.xdv 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/TOP/main/bibliography.bib

    • Property svn:eol-style set to native
    r11171 r14403  
    185185  journal   = {Global Biogeochemical Cycles}, 
    186186  publisher = {American Geophysical Union (AGU)} 
     187} 
     188 
     189@techreport{      gibson_trpt86, 
     190  title         = "Standards for software development and maintenance", 
     191  pages         = "21", 
     192  series        = "ECMWF Technical Memoranda", 
     193  number        = "120", 
     194  author        = "J. K. Gibson", 
     195  institution   = "ECMWF Operations Department; Reading, United Kingdom", 
     196  year          = "1986", 
     197  month         = "aug", 
     198  doi           = "10.21957/gi113q4gn" 
    187199} 
    188200 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/TOP/main/settings.tex

    r11591 r14403  
    1 %% Engine (folder name) 
    2 \def \engine{TOP} 
     1%% Engine 
     2\def\eng{TOP} 
    33 
    4 %% Title and cover page settings 
    5 \def \spacetop{  \vspace*{1.3cm} } 
    6 \def \heading{Tracers in Ocean Paradigm (TOP)} 
    7 \def \subheading{The NEMO passive tracers engine} 
    8 \def \spacedown{ \vspace*{  1cm} } 
    9 \def \authorswidth{0.15\linewidth} 
    10 \def \rulelenght{110pt} 
    11 \def \abstractwidth{0.7\linewidth} 
     4%% Cover page 
     5\def\spcup{\vspace*{1.30cm}} 
     6\def \hdg{Tracers in Ocean Paradigm (TOP)} 
     7\def\shdg{The NEMO passive tracers engine} 
     8\def\spcdn{\vspace*{1.00cm}} 
     9\def\autwd{0.15\linewidth}\def\lnlg{110pt}\def\abswd{0.70\linewidth} 
    1210 
    13 %% Color for document (frontpage banner, links and chapter boxes) 
    14 \def \setmanualcolor{ \definecolor{manualcolor}{cmyk}{1, 0, 1, .4} } 
     11%% Color in cmyk model for manual theme (frontpage banner, links and chapter boxes) 
     12\def\clr{1.0,0.0,1.0,0.4} 
    1513 
    1614%% IPSL publication number 
    17 \def \ipslnum{28} 
     15\def\ipsl{28} 
    1816 
    19 %% Zenodo ID, i.e. doi:10.5281/zenodo.\([0-9]*\) 
    20 \def \zid{1471700} 
     17%% Zenodo ID, i.e. doi:10.5281/zenodo.\zid 
     18\def\zid{1471700} 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/TOP/subfiles

    • Property svn:ignore
      •  

        old new  
         1*.aux 
         2*.bbl 
         3*.blg 
         4*.fdb* 
         5*.fls 
         6*.idx 
        17*.ilg 
        28*.ind 
         9*.lo* 
         10*.out 
         11*.pdf 
         12*.pyg 
         13*.tdo 
         14*.toc 
         15*.xdv 
         16cache* 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/TOP/subfiles/model_description.tex

    r14113 r14403  
    99\newcommand{\Dcq}{\Delta ^{14}\mathrm{C}} 
    1010\newcommand{\Rq}{\mathrm{^{14}{R}}} 
    11 \newcommand{\CODE}[1]{\textsc{#1}} 
    12 %\newcommand{\CODE}[1]{\textcolor{black}{\textsc{#1}}\xspace} 
    1311 
    1412\chapter{Model Description} 
     
    2826where expressions of $D^{lC}$ and $D^{vC}$ depend on the choice for the lateral and vertical subgrid scale parameterizations, see equations 5.10 and 5.11 in \citep{nemo_manual} 
    2927 
    30 {S(C)} , the first term on the right hand side of \ref{Eq_tracer}; is the SMS - Source Minus Sink - inherent to the tracer.  In the case of biological tracer such as phytoplankton, {S(C)} is the balance between phytoplankton growth and its decay through mortality and grazing. In the case of a tracer comprising carbon,  {S(C)} accounts for gas exchange, river discharge, flux to the sediments, gravitational sinking and other biological processes. In the case of a radioactive tracer, {S(C)} is simply loss due to radioactive decay. 
    31  
    32 The second term (within brackets) represents the advection of the tracer in the three directions. It can be interpreted as the budget between the incoming and outgoing tracer fluxes in a volume $T$-cells $b_t= e_{1t}\,e_{2t}\,e_{3t}$ 
     28{S(C)} , the first term on the right hand side of \autoref{Eq_tracer}; is the SMS - Source Minus Sink - inherent to the tracer. 
     29In the case of biological tracer such as phytoplankton, {S(C)} is the balance between phytoplankton growth and its decay through mortality and grazing. 
     30In the case of a tracer comprising carbon,  {S(C)} accounts for gas exchange, river discharge, flux to the sediments, gravitational sinking and other biological processes. 
     31In the case of a radioactive tracer, {S(C)} is simply loss due to radioactive decay. 
     32 
     33The second term (within brackets) represents the advection of the tracer in the three directions. 
     34It can be interpreted as the budget between the incoming and outgoing tracer fluxes in a volume $T$-cells $b_t= e_{1t}\,e_{2t}\,e_{3t}$ 
    3335 
    3436The third term  represents the change due to lateral diffusion. 
     
    4648\label{sec:TopInt} 
    4749 
    48 TOP is the NEMO hardwired interface toward biogeochemical models and provide the physical constraints/boundaries for oceanic tracers. It consists of a modular framework to handle multiple ocean tracers, including also a variety of built-in modules. 
     50TOP is the NEMO hardwired interface toward biogeochemical models and provide the physical constraints/boundaries for oceanic tracers. 
     51It consists of a modular framework to handle multiple ocean tracers, including also a variety of built-in modules. 
    4952 
    5053This component of the NEMO framework allows one to exploit available modules  and further develop a range of applications, spanning from the implementation of a dye passive tracer to evaluate dispersion processes (by means of MY\_TRC), track water masses age (AGE module), assess the ocean interior penetration of persistent chemical compounds (e.g., gases like CFC or even PCBs), up to the full set of equations involving marine biogeochemical cycles. 
     
    6164        \item \textbf{AGE}     :    Water age tracking 
    6265        \item \textbf{MY\_TRC}  :   Template for creation of new modules and external BGC models coupling 
    63         \item \textbf{PISCES}    :   Built in BGC model. See \citep{aumont_2015} for a throughout description. 
     66        \item \textbf{PISCES}    :   Built in BGC model. 
     67See \citep{aumont_2015} for a throughout description. 
    6468\end{itemize} 
    6569%  ---------------------------------------------------------- 
     
    6973The passive tracer transport component  shares the same advection/diffusion routines with the dynamics, with specific treatment of some features like the surface boundary conditions, or the positivity of passive tracers concentrations. 
    7074 
    71  \subsection{ Advection} 
     75\subsection{Advection} 
    7276%------------------------------------------namtrc_adv---------------------------------------------------- 
    7377\nlst{namtrc_adv} 
    7478%------------------------------------------------------------------------------------------------------------- 
    75 The advection schemes used for the passive tracers are the same than the ones for $T$ and $S$ and described in section 5.1 of \citep{nemo_manual}. The choice of an advection scheme  can be selected independently and  can differ from the ones used for active tracers. This choice is made in the \textit{namtrc\_adv} namelist, by  setting to \textit{true} one and only one of the logicals \textit{ln\_trcadv\_xxx}, the same way of what is done for dynamics. 
    76 cen2, MUSCL2, and UBS are not \textit{positive} schemes meaning that negative values can appear in an initially strictly positive tracer field which is advected, implying that false extrema are permitted. Their use is not recommended on passive tracers 
    77  
    78  \subsection{ Lateral diffusion} 
     79The advection schemes used for the passive tracers are the same than the ones for $T$ and $S$ and described in section 5.1 of \citep{nemo_manual}. 
     80The choice of an advection scheme  can be selected independently and  can differ from the ones used for active tracers. 
     81This choice is made in the \textit{namtrc\_adv} namelist, by  setting to \textit{true} one and only one of the logicals \textit{ln\_trcadv\_xxx}, the same way of what is done for dynamics. 
     82cen2, MUSCL2, and UBS are not \textit{positive} schemes meaning that negative values can appear in an initially strictly positive tracer field which is advected, implying that false extrema are permitted. 
     83Their use is not recommended on passive tracers 
     84 
     85\subsection{Lateral diffusion} 
    7986%------------------------------------------namtrc_ldf---------------------------------------------------- 
    8087\nlst{namtrc_ldf} 
    8188%------------------------------------------------------------------------------------------------------------- 
    82 In NEMO v4.0, the passive tracer diffusion has necessarily the same form as the active tracer diffusion, meaning that the numerical scheme must be the same. However the passive tracer mixing coefficient can be chosen as a multiple of the active ones by changing the value of \textit{rn\_ldf\_multi} in namelist \textit{namtrc\_ldf}. The choice of numerical scheme is then set  in the \nam{namtra_ldf}{namtra\_ldf} namelist for the dynamic described in section 5.2 of \citep{nemo_manual}. 
    83  
     89In NEMO v4.0, the passive tracer diffusion has necessarily the same form as the active tracer diffusion, meaning that the numerical scheme must be the same. 
     90However the passive tracer mixing coefficient can be chosen as a multiple of the active ones by changing the value of \textit{rn\_ldf\_multi} in namelist \textit{namtrc\_ldf}. 
     91The choice of numerical scheme is then set in the \forcode{&namtra_ldf} namelist for the dynamic described in section 5.2 of \citep{nemo_manual}. 
    8492 
    8593%-----------------We also offers the possibility to increase zonal equatorial diffusion for passive tracers by introducing an enhanced zonal diffusivity coefficent in the equatorial domain which can be defined by the equation below : 
     
    8896%-----------------\end{equation} 
    8997 
    90  \subsection{ Tracer damping} 
     98\subsection{Tracer damping} 
    9199 
    92100%------------------------------------------namtrc_dmp---------------------------------------------------- 
     
    94102%------------------------------------------------------------------------------------------------------------- 
    95103 
    96 The use of newtonian damping  to climatological fields or observations is also coded, sharing the same routine dans active tracers. Boolean variables are defined in the namelist\_top\_ref to select the tracers on which restoring is applied 
    97 Options are defined through the \nam{namtrc_dmp}{namtrc\_dmp} namelist variables. The restoring term is added when the namelist parameter \np{ln\_trcdmp} is set to true. The restoring coefficient is a three-dimensional array read in a file, which name is specified by the namelist variable \np{cn\_resto\_tr}. This netcdf file can be generated using the DMP\_TOOLS tool. 
    98  
    99  \subsection{ Tracer positivity} 
     104The use of newtonian damping  to climatological fields or observations is also coded, sharing the same routine dans active tracers. 
     105Boolean variables are defined in the namelist\_top\_ref to select the tracers on which restoring is applied 
     106Options are defined through the \nam{trc_dmp}{trc\_dmp} namelist variables. 
     107The restoring term is added when the namelist parameter \np{ln\_trcdmp} is set to true. 
     108The restoring coefficient is a three-dimensional array read in a file, which name is specified by the namelist variable \np{cn\_resto\_tr}. 
     109This netcdf file can be generated using the DMP\_TOOLS tool. 
     110 
     111\subsection{Tracer positivity} 
    100112 
    101113%------------------------------------------namtrc_rad---------------------------------------------------- 
     
    103115%------------------------------------------------------------------------------------------------------------- 
    104116 
    105 Sometimes, numerical scheme can generates negative values of passive tracers concentration that must be positive. For exemple,  isopycnal diffusion can created extrema. The trcrad routine artificially corrects negative concentrations with a very crude solution that either sets negative concentration to zero without adjusting the tracer budget, or by removing negative concentration and keeping mass conservation. 
    106 The treatment of negative concentrations is an option and can be selected in the namelist \nam{namtrc_rad}{namtrc\_rad} by setting the parameter \np{ln\_trcrad}  to true. 
     117Sometimes, numerical scheme can generates negative values of passive tracers concentration that must be positive. 
     118For exemple,  isopycnal diffusion can created extrema. 
     119The trcrad routine artificially corrects negative concentrations with a very crude solution that either sets negative concentration to zero without adjusting the tracer budget, or by removing negative concentration and keeping mass conservation. 
     120The treatment of negative concentrations is an option and can be selected in the namelist \nam{trc_rad}{trc\_rad} by setting the parameter \np{ln\_trcrad}  to true. 
    107121 
    108122\section{The SMS modules} 
     
    119133%---------------------------------------------------------------------------------------------------------- 
    120134 
    121  
    122  An `ideal age' tracer is integrated online in TOP when \textit{ln\_age} = \texttt{.true.} in namelist \textit{namtrc}. This tracer marks the length of time in units of years that fluid has spent in the interior of the ocean, insulated from exposure to the atmosphere. Thus, away from the surface for $z<-H_{\mathrm{Age}}$ where $H_{\mathrm{Age}}$ is specified by the \textit{namage} namelist variable \textit{rn\_age\_depth}, whose default value is 10~m, there is a source $\mathrm{SMS_{\mathrm{Age}}}$ of the age tracer $A$: 
     135An `ideal age' tracer is integrated online in TOP when \textit{ln\_age} = \texttt{.true.} in namelist \textit{namtrc}. 
     136This tracer marks the length of time in units of years that fluid has spent in the interior of the ocean, insulated from exposure to the atmosphere. 
     137Thus, away from the surface for $z<-H_{\mathrm{Age}}$ where $H_{\mathrm{Age}}$ is specified by the \textit{namage} namelist variable \textit{rn\_age\_depth}, whose default value is 10~m, there is a source $\mathrm{SMS_{\mathrm{Age}}}$ of the age tracer $A$: 
     138 
    123139\begin{equation} 
    124140  \label{eq:TOP-age-interior} 
    125141  \mathrm{SMS_{\mathrm{Age}}} = 1 \mathrm{yr}\;^{-1} = 1/T_{\mathrm{year}}, 
    126  \end{equation} 
    127  where the length of the current year $T_{\mathrm{year}} = 86400*N_{\mathrm{days\;in\;current\; year}}\;\mathrm{s}$, where $N_{\mathrm{days\;in\;current\; year}}$ may be 366 or 365 depending on whether the current year is a leap year or not. 
    128  Near the surface, for $z>-H_{\mathrm{Age}}$, ideal age is relaxed back to zero: 
     142\end{equation} 
     143 
     144where the length of the current year $T_{\mathrm{year}} = 86400*N_{\mathrm{days\;in\;current\; year}}\;\mathrm{s}$, where $N_{\mathrm{days\;in\;current\; year}}$ may be 366 or 365 depending on whether the current year is a leap year or not. 
     145Near the surface, for $z>-H_{\mathrm{Age}}$, ideal age is relaxed back to zero: 
     146 
    129147\begin{equation} 
    130148  \label{eq:TOP-age-surface} 
    131149   \mathrm{SMS_{\mathrm{Age}}} = -\lambda_{\mathrm{Age}}A, 
    132  \end{equation} 
    133  where the relaxation rate $\lambda_{\mathrm{Age}}$  (units $\mathrm{s}\;^{-1}$) is specified by the \textit{namage} namelist variable \textit{rn\_age\_kill\_rate} and has a default value of 1/7200~s. Since this relaxation is applied explicitly, this relaxation rate in principle should not exceed $1/\Delta t$, where $\Delta t$ is the time step used to step forward passive tracers (2 * \textit{nn\_dttrc * rn\_rdt} when the default  leapfrog time-stepping scheme is employed). 
    134  
    135  Currently the 1-dimensional reference depth of the grid boxes is used rather than the dynamically evolving depth to determine whether the age tracer is incremented or relaxed to zero. This means that the tracer only works correctly in z-coordinates. To ensure that the forcing is independent of the level thicknesses, where the tracer cell at level $k$ has its upper face $z=-depw(k)$ above the depth $-H_{\mathrm{Age}}$, but its lower face $z=-depw(k+1)$ below that depth, then the age source 
    136  \begin{equation} 
     150\end{equation} 
     151 
     152where the relaxation rate $\lambda_{\mathrm{Age}}$  (units $\mathrm{s}\;^{-1}$) is specified by the \textit{namage} namelist variable \textit{rn\_age\_kill\_rate} and has a default value of 1/7200~s. 
     153Since this relaxation is applied explicitly, this relaxation rate in principle should not exceed $1/\Delta t$, where $\Delta t$ is the time step used to step forward passive tracers (2 * \textit{nn\_dttrc * rn\_rdt} when the default  leapfrog time-stepping scheme is employed). 
     154 
     155Currently the 1-dimensional reference depth of the grid boxes is used rather than the dynamically evolving depth to determine whether the age tracer is incremented or relaxed to zero. 
     156This means that the tracer only works correctly in z-coordinates. 
     157To ensure that the forcing is independent of the level thicknesses, where the tracer cell at level $k$ has its upper face $z=-depw(k)$ above the depth $-H_{\mathrm{Age}}$, but its lower face $z=-depw(k+1)$ below that depth, then the age source 
     158 
     159\begin{equation} 
    137160  \label{eq:TOP-age-mixed} 
    138161   \mathrm{SMS_{\mathrm{Age}}} = -f_{\mathrm{kill}}\lambda_{\mathrm{Age}}A +f_{\mathrm{add}}/T_{\mathrm{year}} , 
    139  \end{equation} 
    140  where 
    141  \begin{align} 
     162\end{equation} 
     163 
     164where 
     165 
     166\begin{align} 
    142167    f_{\mathrm{kill}} &= e3t_k^{-1}(H_{\mathrm{Age}} - depw(k)) , \\ 
    143168    f_{\mathrm{add}} &= 1 - f_{\mathrm{kill}}. 
    144  \end{align} 
    145  
    146  
    147  This implementation was first used in the CORE-II intercomparison runs described e.g.\ in \citet{danabasoglu_2014}. 
     169\end{align} 
     170 
     171 
     172This implementation was first used in the CORE-II intercomparison runs described e.g.\ in \citet{danabasoglu_2014}. 
    148173 
    149174\subsection{Inert carbons tracer} 
     
    155180 
    156181Chlorofluorocarbons 11 and 12 (CFC-11 and CFC-12), and sulfur hexafluoride (SF6), are synthetic chemicals manufactured for industrial and domestic applications from the early 20th century onwards. 
    157 CFC-11 (CCl$_{3}$F) is a volatile liquid at room temperature, and was widely used in refrigeration. CFC-12 (CCl$_{2}$F$_{2}$) is a gas at room temperature, and, like CFC-11, was widely used as a refrigerant, 
    158 and additionally as an aerosol propellant. SF6 (SF$_{6}$) is also a gas at room temperature, with a range of applications based around its property as an excellent electrical insulator (often replacing more toxic alternatives). 
    159 All three are relatively inert chemicals that are both non-toxic and non-flammable, and their wide use has led to their accumulation within the Earth's atmosphere. Large-scale production of CFC-11 and CFC-12 began in the 1930s, while production of SF6 began in the 1950s, and their atmospheric concentration time-histories are shown in Figure \ref{img_cfcatm}. 
     182CFC-11 (CCl$_{3}$F) is a volatile liquid at room temperature, and was widely used in refrigeration. 
     183CFC-12 (CCl$_{2}$F$_{2}$) is a gas at room temperature, and, like CFC-11, was widely used as a refrigerant, 
     184and additionally as an aerosol propellant. 
     185SF6 (SF$_{6}$) is also a gas at room temperature, with a range of applications based around its property as an excellent electrical insulator (often replacing more toxic alternatives). 
     186All three are relatively inert chemicals that are both non-toxic and non-flammable, and their wide use has led to their accumulation within the Earth's atmosphere. 
     187Large-scale production of CFC-11 and CFC-12 began in the 1930s, while production of SF6 began in the 1950s, and their atmospheric concentration time-histories are shown in Figure \autoref{img_cfcatm}. 
    160188As can be seen in the figure, while the concentration of SF6 continues to rise to the present  day, the concentrations of both CFC-11 and CFC-12 have levelled off and declined since around the 1990s. 
    161189These declines have been driven by the Montreal Protocol (effective since August 1989), which has banned the production of CFC-11 and CFC-12 (as well as other CFCs) because of their role in the depletion of 
    162 stratospheric ozone (O$_{3}$), critical in decreasing the flux of ultraviolet radiation to the Earth's surface. Separate to this role in ozone-depletion, all three chemicals are significantly more potent greenhouse gases 
     190stratospheric ozone (O$_{3}$), critical in decreasing the flux of ultraviolet radiation to the Earth's surface. 
     191Separate to this role in ozone-depletion, all three chemicals are significantly more potent greenhouse gases 
    163192than CO$_{2}$ (especially SF6), although their relatively low atmospheric concentrations limit their role in climate change. \\ 
    164193 
     
    171200% This release began in the 1930s for CFC-11 and CFC-12, and the 1950s for SF6, and 
    172201% regularly increasing their atmospheric concentration until the 1090s, 2000s for respectively CFC11, CFC12, 
    173 % and is still increasing, and SF6 (see Figure \ref{img_cfcatm}).  \\ 
     202% and is still increasing, and SF6 (see Figure \autoref{img_cfcatm}).  \\ 
    174203 
    175204The ocean is a notable sink for all three gases, and their relatively recent occurrence in the atmosphere, coupled to the ease of making high precision measurements of their dissolved concentrations, has made them 
     
    177206Because they only enter the ocean via surface air-sea exchange, and are almost completely chemically and biologically inert, their distribution within the ocean interior reveals its ventilation via transport and mixing. 
    178207Measuring the dissolved concentrations of the gases -- as well as the mixing ratios between them -- shows circulation pathways within the ocean as well as water mass ages (i.e. the time since last contact with the 
    179 atmosphere). This feature of the gases has made them valuable across a wide range of oceanographic problems. One use lies in ocean modelling, where they can be used to evaluate the realism of the circulation and 
     208atmosphere). 
     209This feature of the gases has made them valuable across a wide range of oceanographic problems. 
     210One use lies in ocean modelling, where they can be used to evaluate the realism of the circulation and 
    180211ventilation of models, key for understanding the behaviour of wider modelled marine biogeochemistry (e.g. \citep{dutay_2002,palmieri_2015}). \\ 
    181212 
    182 Modelling these gases (henceforth CFCs) in NEMO is done within the passive tracer transport module, TOP, using the conservation state equation \ref{Eq_tracer} 
     213Modelling these gases (henceforth CFCs) in NEMO is done within the passive tracer transport module, TOP, using the conservation state equation \autoref{Eq_tracer} 
    183214 
    184215Advection and diffusion of the CFCs in NEMO are calculated by the physical module, OPA, 
     
    198229\end{eqnarray} 
    199230 
    200 Where $K_{w}$ is the piston velocity (in m~s$^{-1}$), as defined in Equation \ref{equ_Kw}; 
    201 $C_{sat}$ is the saturation concentration of the CFC tracer, as defined in Equation \ref{equ_C_sat}; 
     231Where $K_{w}$ is the piston velocity (in m~s$^{-1}$), as defined in Equation \autoref{equ_Kw}; 
     232$C_{sat}$ is the saturation concentration of the CFC tracer, as defined in Equation \autoref{equ_C_sat}; 
    202233$C_{surf}$ is the local surface concentration of the CFC tracer within the model (in mol~m$^{-3}$); 
    203234and $f_{i}$ is the fractional sea-ice cover of the local ocean (ranging between 0.0 for ice-free ocean, 
     
    211242\end{eqnarray} 
    212243 
    213 Where $Sol$ is the gas solubility in mol~m$^{-3}$~pptv$^{-1}$, as defined in Equation \ref{equ_Sol_CFC}; 
     244Where $Sol$ is the gas solubility in mol~m$^{-3}$~pptv$^{-1}$, as defined in Equation \autoref{equ_Sol_CFC}; 
    214245and $P_{cfc}$ is the atmosphere concentration of the CFC (in parts per trillion by volume, pptv). 
    215246This latter concentration is provided to the model by the historical time-series of \citet{bullister_2017}. 
     
    231262$a$ is a constant re-estimated by \citet{wanninkhof_2014} to 0.251 (in $\frac{cm~h^{-1}}{(m~s^{-1})^{2}}$); 
    232263and $u$ is the 10~m wind speed in m~s$^{-1}$ from either an atmosphere model or reanalysis atmospheric forcing. 
    233 $Sc$ is the Schmidt number, and is calculated as follow, using coefficients from \citet{wanninkhof_2014} (see Table \ref{tab_Sc}). 
     264$Sc$ is the Schmidt number, and is calculated as follow, using coefficients from \citet{wanninkhof_2014} (see Table \autoref{tab_Sc}). 
    234265 
    235266\begin{eqnarray} 
     
    238269\end{eqnarray} 
    239270 
    240 The solubility, $Sol$, used in Equation \ref{equ_C_sat} is calculated in mol~l$^{-1}$~atm$^{-1}$, 
     271The solubility, $Sol$, used in Equation \autoref{equ_C_sat} is calculated in mol~l$^{-1}$~atm$^{-1}$, 
    241272and is specific for each gas. 
    242273It has been experimentally estimated by \citet{warner_1985} as a function of temperature 
     
    260291 
    261292Where $T_{X}$ is $\frac{T + 273.16}{100}$, a function of temperature; 
    262 and the $a_{x}$ and $b_{x}$ coefficients are specific for each gas (see Table \ref{tab_ref_CFC}). 
     293and the $a_{x}$ and $b_{x}$ coefficients are specific for each gas (see Table \autoref{tab_ref_CFC}). 
    263294This is then converted to mol~m$^{-3}$~pptv$^{-1}$ assuming a constant atmospheric surface pressure of 1~atm. 
    264295The solubility of CFCs thus decreases with rising $T$ while being relatively insensitive to salinity changes. 
    265 Consequently, this translates to a pattern of solubility where it is greatest in cold, polar regions (see Figure \ref{img_cfcsol}). 
     296Consequently, this translates to a pattern of solubility where it is greatest in cold, polar regions (see Figure \autoref{img_cfcsol}). 
    266297 
    267298% AXY: not 100% sure about the units below; they might be in nanomol, or in seconds or years 
    268299 
    269300The standard outputs of the CFC module are seawater CFC concentrations (in mol~m$^{-3}$), the net air-sea flux (in mol~m$^{-2}$~d$^{-1}$) and the cumulative net air-sea flux (in mol~m$^{-2}$). 
    270 Using XIOS, it is possible to obtain outputs such as the vertical integral of CFC concentrations (in mol~m$^{-2}$; see Figure \ref{img_cfcinv}). 
     301Using XIOS, it is possible to obtain outputs such as the vertical integral of CFC concentrations (in mol~m$^{-2}$; see Figure \autoref{img_cfcinv}). 
    271302This property, when divided by the surface CFC concentration, estimates the local penetration depth (in m) of the CFC. 
    272303 
     
    285316 
    286317\begin{table}[!t] 
    287 \caption{Coefficients for fit of the CFCs solubility (Eq. \ref{equ_Sol_CFC}).} 
     318\caption{Coefficients for fit of the CFCs solubility (Eq. \autoref{equ_Sol_CFC}).} 
    288319\vskip4mm 
    289320\centering 
     
    302333 
    303334\begin{table}[!t] 
    304 \caption{Coefficients for fit of the CFCs Schmidt number (Eq. \ref{equ_Sc}). } 
     335\caption{Coefficients for fit of the CFCs Schmidt number (Eq. \autoref{equ_Sc}). } 
    305336\vskip4mm 
    306337\centering 
     
    353384%---------------------------------------------------------------------------------------------------------- 
    354385 
    355 The C14 package implemented in NEMO by Anne Mouchet models ocean $\Dcq$. It offers several possibilities: $\Dcq$ as a physical tracer of the ocean ventilation (natural $\cq$), assessment of bomb radiocarbon uptake, as well as transient studies of paleo-historical ocean radiocarbon distributions. 
     386The C14 package implemented in NEMO by Anne Mouchet models ocean $\Dcq$. 
     387It offers several possibilities: $\Dcq$ as a physical tracer of the ocean ventilation (natural $\cq$), assessment of bomb radiocarbon uptake, as well as transient studies of paleo-historical ocean radiocarbon distributions. 
    356388 
    357389\subsubsection{Method} 
    358390 
    359  Let  $\Rq$ represent the ratio of $\cq$ atoms to the total number of carbon atoms in the sample, i.e. $\cq/\mathrm{C}$. Then, radiocarbon anomalies are reported as 
     391Let  $\Rq$ represent the ratio of $\cq$ atoms to the total number of carbon atoms in the sample, i.e. $\cq/\mathrm{C}$. 
     392Then, radiocarbon anomalies are reported as 
     393 
    360394\begin{equation} 
    361395\Dcq = \left( \frac{\Rq}{\Rq_\mathrm{ref}} - 1 \right) 10^3, \label{eq:c14dcq} 
    362396\end{equation} 
    363 where $\Rq_{\textrm{ref}}$ is a reference ratio. For the purpose of ocean ventilation studies $\Rq_{\textrm{ref}}$ is set to one. 
     397 
     398where $\Rq_{\textrm{ref}}$ is a reference ratio. 
     399For the purpose of ocean ventilation studies $\Rq_{\textrm{ref}}$ is set to one. 
    364400 
    365401Here we adopt the approach of \cite{fiadeiro_1982} and \cite{toggweiler_1989a,toggweiler_1989b} in which  the ratio $\Rq$ is transported rather than the individual concentrations C and $\cq$. 
    366 This approach calls for a strong assumption, i.e., that of a homogeneous and constant dissolved inorganic carbon (DIC) field \citep{toggweiler_1989a,mouchet_2013}. While in terms of 
    367 oceanic $\Dcq$, it yields similar results to approaches involving carbonate chemistry, it underestimates the bomb radiocarbon inventory because it assumes a constant air-sea $\cd$ disequilibrium (Mouchet, 2013). Yet, field reconstructions of the ocean bomb $\cq$ inventory are also biased low \citep{naegler_2009} since they assume that the anthropogenic perturbation did not affect ocean DIC since the pre-bomb epoch. For these reasons, bomb $\cq$ inventories obtained with the present method are directly comparable to reconstructions based on field measurements. 
    368  
    369 This simplified approach also neglects the effects of fractionation (e.g.,  air-sea exchange) and of biological processes. Previous studies by \cite{bacastow_1990} and \cite{joos_1997} resulted in nearly identical $\Dcq$ distributions among experiments considering biology or not. 
     402This approach calls for a strong assumption, i.e., that of a homogeneous and constant dissolved inorganic carbon (DIC) field \citep{toggweiler_1989a,mouchet_2013}. 
     403While in terms of 
     404oceanic $\Dcq$, it yields similar results to approaches involving carbonate chemistry, it underestimates the bomb radiocarbon inventory because it assumes a constant air-sea $\cd$ disequilibrium (Mouchet, 2013). 
     405Yet, field reconstructions of the ocean bomb $\cq$ inventory are also biased low \citep{naegler_2009} since they assume that the anthropogenic perturbation did not affect ocean DIC since the pre-bomb epoch. 
     406For these reasons, bomb $\cq$ inventories obtained with the present method are directly comparable to reconstructions based on field measurements. 
     407 
     408This simplified approach also neglects the effects of fractionation (e.g.,  air-sea exchange) and of biological processes. 
     409Previous studies by \cite{bacastow_1990} and \cite{joos_1997} resulted in nearly identical $\Dcq$ distributions among experiments considering biology or not. 
    370410Since observed $\Rq$ ratios are corrected for the isotopic fractionation when converted to the standard $\Dcq$ notation \citep{stuiver_1977} the model results are directly comparable to observations. 
    371411 
     
    373413 
    374414The equation governing the transport of $\Rq$  in the ocean is 
     415 
    375416\begin{equation} 
    376417\frac{\partial}{\partial t} {\Rq} =  - \bigtriangledown \cdot ( \mathbf{u} \Rq - \mathbf{K} \cdot \bigtriangledown \Rq )  - \lambda \Rq, \label{eq:quick} 
    377418\end{equation} 
     419 
    378420where $\lambda$ is the radiocarbon decay rate, ${\mathbf{u}}$ the 3-D velocity field, and $\mathbf{K}$ the diffusivity tensor. 
    379421 
    380 At the air-sea interface a Robin boundary condition \citep{haine_2006} is applied to \eqref{eq:quick}, i.e., the flux 
     422At the air-sea interface a Robin boundary condition \citep{haine_2006} is applied to \autoref{eq:quick}, i.e., the flux 
    381423through the interface is proportional to the difference in the ratios between 
    382424the ocean and the atmosphere 
     425 
    383426\begin{equation} 
    384427\mathcal{\!F} =  \kappa_{R}  (\Rq  - \Rq_{a} ), \label{eq:BCR} 
    385428\end{equation} 
    386 where $\mathcal{\!F}$ is the flux out of the ocean, and $\Rq_{a}$ is the atmospheric $\cq/\mathrm{C}$ ratio. The transfer velocity $ \kappa_{R} $ for the radiocarbon ratio in \eqref{eq:BCR} is computed as 
     429 
     430where $\mathcal{\!F}$ is the flux out of the ocean, and $\Rq_{a}$ is the atmospheric $\cq/\mathrm{C}$ ratio. 
     431The transfer velocity $ \kappa_{R} $ for the radiocarbon ratio in \autoref{eq:BCR} is computed as 
     432 
    387433\begin{equation} 
    388434 \kappa_{R} =  \frac{\kappa_{\cd} K_0}{\overline{\Ct}} \, \pacd   \label{eq:Rspeed} 
    389435\end{equation} 
     436 
    390437with $\kappa_{\cd}$ the carbon dioxide transfer or piston velocity, $K_0$ the $\cd$ solubility in seawater, $\pacd$ the atmospheric $\cd$ pressure at sea level, and $\overline{\Ct}$ the average sea-surface dissolved inorganic carbon concentration. 
    391438 
    392  
    393 The $\cd$ transfer velocity is based on the empirical formulation of \cite{wanninkhof_1992} with chemical enhancement \citep{wanninkhof_1996,wanninkhof_2014}. The original formulation is modified to account for the reduction of the  air-sea exchange rate in the presence of sea ice. Hence 
     439The $\cd$ transfer velocity is based on the empirical formulation of \cite{wanninkhof_1992} with chemical enhancement \citep{wanninkhof_1996,wanninkhof_2014}. 
     440The original formulation is modified to account for the reduction of the  air-sea exchange rate in the presence of sea ice. 
     441Hence 
     442 
    394443\begin{equation} 
    395444\kappa_\cd=\left( K_W\,\mathrm{w}^2 + b  \right)\, (1-f_\mathrm{ice})\,\sqrt{660/Sc}, \label{eq:wanc14} 
    396445\end{equation} 
    397446with $\mathrm{w}$ the wind magnitude, $f_\mathrm{ice}$ the fractional ice cover, and $Sc$ the Schmidt number. 
    398 $K_W$ in \eqref{eq:wanc14} is an empirical coefficient with dimension of an inverse velocity. 
     447$K_W$ in \autoref{eq:wanc14} is an empirical coefficient with dimension of an inverse velocity. 
    399448The chemical enhancement term $b$ is represented as a function of temperature $T$ \citep{wanninkhof_1992} 
    400449\begin{equation} 
     
    402451\end{equation} 
    403452 
    404 %We compare the results of equilibrium and transient experiments obtained with both methods in section \ref{sec:UNDEU}. 
     453%We compare the results of equilibrium and transient experiments obtained with both methods in section \autoref{sec:UNDEU}. 
    405454 
    406455% 
     
    413462\label{sec:param} 
    414463 % 
    415 The radiocarbon decay rate (\CODE{rlam14}; in \texttt{trcnam\_c14} module) is set to $\lambda=(1/8267)$ yr$^{-1}$ \citep{stuiver_1977}, which corresponds to a half-life of 5730 yr.\\[1pt] 
    416 % 
    417 The Schmidt number $Sc$, Eq. \eqref{eq:wanc14}, is calculated with the help of the formulation of \cite{wanninkhof_2014}. The $\cd$ solubility $K_0$ in \eqref{eq:Rspeed} is taken from \cite{weiss_1974}. $K_0$ and $Sc$ are computed with the OGCM temperature and salinity fields (\texttt{trcsms\_c14} module).\\[1pt] 
     464The radiocarbon decay rate (\forcode{rlam14}; in \texttt{trcnam\_c14} module) is set to $\lambda=(1/8267)$ yr$^{-1}$ \citep{stuiver_1977}, which corresponds to a half-life of 5730 yr.\\[1pt] 
     465% 
     466The Schmidt number $Sc$, Eq. \autoref{eq:wanc14}, is calculated with the help of the formulation of \cite{wanninkhof_2014}. 
     467The $\cd$ solubility $K_0$ in \autoref{eq:Rspeed} is taken from \cite{weiss_1974}. $K_0$ and $Sc$ are computed with the OGCM temperature and salinity fields (\texttt{trcsms\_c14} module).\\[1pt] 
    418468% 
    419469The following parameters intervening in the air-sea exchange rate are set in \texttt{namelist\_c14}: 
     470 
    420471\begin{itemize} 
    421 \item The reference DIC concentration $\overline{\Ct}$ (\CODE{xdicsur}) intervening in \eqref{eq:Rspeed} is classically set to 2 mol m$^{-3}$ \citep{toggweiler_1989a,orr_2001,butzin_2005}. 
    422 % 
    423 \item The value of the empirical coefficient $K_W$ (\CODE{xkwind}) in \eqref{eq:wanc14} depends on the wind field and on the model upper ocean mixing rate \citep{toggweiler_1989a,wanninkhof_1992,naegler_2009,wanninkhof_2014}. 
     472\item The reference DIC concentration $\overline{\Ct}$ (\forcode{xdicsur}) intervening in \autoref{eq:Rspeed} is classically set to 2 mol m$^{-3}$ \citep{toggweiler_1989a,orr_2001,butzin_2005}. 
     473% 
     474\item The value of the empirical coefficient $K_W$ (\forcode{xkwind}) in \autoref{eq:wanc14} depends on the wind field and on the model upper ocean mixing rate \citep{toggweiler_1989a,wanninkhof_1992,naegler_2009,wanninkhof_2014}. 
    424475It should be adjusted so that the globally averaged $\cd$ piston velocity is $\kappa_\cd = 16.5\pm 3.2$ cm/h \citep{naegler_2009}. 
    425 %The sensitivity to this parametrization is discussed in section \ref{sec:result}. 
    426 % 
    427 \item Chemical enhancement (term $b$  in Eq. \ref{eq:wanchem}) may be set on/off by means of the logical variable \CODE{ln\_chemh}. 
     476%The sensitivity to this parametrization is discussed in section \autoref{sec:result}. 
     477% 
     478\item Chemical enhancement (term $b$  in Eq. \autoref{eq:wanchem}) may be set on/off by means of the logical variable \forcode{ln\_chemh}. 
    428479\end{itemize} 
    429480 
    430481% 
    431482\paragraph{Experiment type} 
    432 The type of experiment is determined by the value given to \CODE{kc14typ} in \texttt{namelist\_c14}. There are three possibilities: 
     483The type of experiment is determined by the value given to \forcode{kc14typ} in \texttt{namelist\_c14}. 
     484There are three possibilities: 
     485 
    433486\begin{enumerate} 
    434 \item natural $\Dcq$: \CODE{kc14typ}=0 
    435 \item bomb $\Dcq$: \CODE{kc14typ}=1 
    436 \item transient paleo-historical $\Dcq$: \CODE{kc14typ}=2 
     487\item natural                    $\Dcq$: \forcode{kc14typ}=0 
     488\item bomb                       $\Dcq$: \forcode{kc14typ}=1 
     489\item transient paleo-historical $\Dcq$: \forcode{kc14typ}=2 
    437490\end{enumerate} 
    438 % 
     491 
     492%  
    439493\textbf{Natural or Equilibrium radiocarbon} 
    440 \CODE{kc14typ}=0 
    441  
    442 Unless otherwise specified in \texttt{namelist\_c14}, the atmospheric $\Rq_a$ (\CODE{rc14at}) is set to one, the atmospheric $\cd$ (\CODE{pco2at}) to 280 ppm, and the ocean $\Rq$ is initialized with \CODE{rc14init=0.85}, i.e., $\Dcq=$-150\textperthousand  \cite[typical for deep-ocean, Fig 6 in][]{key_2004}. 
    443  
    444 Equilibrium experiment should last until 98\% of the ocean volume exhibit a drift of less than 0.001\textperthousand/year \citep{orr_2000}; this is usually achieved after few kyr (Fig. \ref{fig:drift}). 
    445 % 
     494\forcode{kc14typ}=0 
     495 
     496Unless otherwise specified in \texttt{namelist\_c14}, the atmospheric $\Rq_a$ (\forcode{rc14at}) is set to one, the atmospheric $\cd$ (\forcode{pco2at}) to 280 ppm, and the ocean $\Rq$ is initialized with \forcode{rc14init=0.85}, i.e., $\Dcq=$-150\textperthousand \cite[typical for deep-ocean, Fig 6 in][]{key_2004}. 
     497 
     498Equilibrium experiment should last until 98\% of the ocean volume exhibit a drift of less than 0.001\textperthousand/year \citep{orr_2000}; this is usually achieved after few kyr (Fig. \autoref{fig:drift}). 
     499% 
     500 
    446501\begin{figure}[!h] 
    447502\begin{center} 
     
    449504\end{center} 
    450505\vspace{-4ex} 
    451 \caption{ Time evolution of $\Rq$ inventory anomaly for equilibrium run with homogeneous ocean initial state. The anomaly (or drift) is given in \%  change in total ocean inventory per 50 years. Time on x-axis is in simulation year.\label{fig:drift} } 
     506\caption{ Time evolution of $\Rq$ inventory anomaly for equilibrium run with homogeneous ocean initial state. 
     507The anomaly (or drift) is given in \%  change in total ocean inventory per 50 years. 
     508Time on x-axis is in simulation year.\label{fig:drift} } 
    452509\end{figure} 
    453510 
    454511\textbf{Transient: Bomb} 
    455512\label{sec:bomb} 
    456 \CODE{kc14typ}=1 
     513\forcode{kc14typ}=1 
    457514 
    458515\begin{figure}[!h] 
     
    461518\end{center} 
    462519\vspace{-4ex} 
    463 \caption{Atmospheric $\Dcq$ (solid; left axis) and $\cd$ (dashed; right axis)  forcing for the $\cq$-bomb experiments. The $\Dcq$ is illustrated for the three zonal bands (upper, middle, and lower curves correspond to latitudes $> 20$N, $\in [20\mathrm{S},20\mathrm{N}]$, and $< 20$S, respectively.} \label{fig:bomb} 
     520\caption{Atmospheric $\Dcq$ (solid; left axis) and $\cd$ (dashed; right axis)  forcing for the $\cq$-bomb experiments. 
     521The $\Dcq$ is illustrated for the three zonal bands (upper, middle, and lower curves correspond to latitudes $> 20$N, $\in [20\mathrm{S},20\mathrm{N}]$, and $< 20$S, respectively.} \label{fig:bomb} 
    464522\end{figure} 
    465523 
    466 Performing this type of experiment requires that a pre-industrial equilibrium run be performed beforehand (\CODE{ln\_rsttr} should be set to \texttt{.TRUE.}). 
    467  
    468 An exception to this rule is when wishing to perform a perturbation bomb experiment as was possible with the package \texttt{C14b}. It is still possible to easily set-up that type of transient experiment for which no previous run is needed.  In addition to the instructions as given in this section it is however necessary to adapt the \texttt{atmc14.dat} file so that it does no longer contain any negative $\Dcq$ values (Suess effect in the pre-bomb period). 
    469  
    470 The model  is integrated from a given initial date following the observed records provided from 1765 AD on ( Fig. \ref{fig:bomb}). 
    471 The file \texttt{atmc14.dat}  \cite[][\& I. Levin, personal comm.]{enting_1994} provides atmospheric $\Dcq$ for three latitudinal bands: 90S-20S,    20S-20N \&    20N-90N. 
    472 Atmospheric $\cd$ in the file \texttt{splco2.dat} is obtained from a spline fit through ice core data and direct atmospheric measurements \cite[][\& J. Orr, personal comm.]{orr_2000}. 
     524Performing this type of experiment requires that a pre-industrial equilibrium run be performed beforehand (\forcode{ln\_rsttr} should be set to \texttt{.TRUE.}). 
     525 
     526An exception to this rule is when wishing to perform a perturbation bomb experiment as was possible with the package \texttt{C14b}. 
     527It is still possible to easily set-up that type of transient experiment for which no previous run is needed. 
     528In addition to the instructions as given in this section it is however necessary to adapt the \texttt{atmc14.dat} file so that it does no longer contain any negative $\Dcq$ values (Suess effect in the pre-bomb period). 
     529 
     530The model  is integrated from a given initial date following the observed records provided from 1765 AD on ( Fig. \autoref{fig:bomb}). 
     531The file \texttt{atmc14.dat}  \cite[][\& I. 
     532Levin, personal comm.]{enting_1994} provides atmospheric $\Dcq$ for three latitudinal bands: 90S-20S,    20S-20N \&    20N-90N. 
     533Atmospheric $\cd$ in the file \texttt{splco2.dat} is obtained from a spline fit through ice core data and direct atmospheric measurements \cite[][\& J. 
     534Orr, personal comm.]{orr_2000}. 
    473535Dates in these forcing files are expressed as yr AD. 
    474536 
    475537To ensure that the atmospheric forcing is applied properly as well as that output files contain consistent dates and inventories the experiment should be set up carefully: 
     538 
    476539\begin{itemize} 
    477 \item Specify the starting date of the experiment: \CODE{nn\_date0} in \texttt{namelist}.  \CODE{nn\_date0} is written as Year0101 where Year may take any positive value (AD). 
    478 \item Then the parameters \CODE{nn\_rstctl} in  \texttt{namelist} (on-line) and \CODE{nn\_rsttr} in \texttt{namelist\_top} (off-line)  must be \textbf{set to 0} at the start of the experiment (force the date to \CODE{nn\_date0} for the \textbf{first} experiment year). 
    479 \item These two parameters (\CODE{nn\_rstctl} and \CODE{nn\_rsttr}) have then to be \textbf{set to 2} for the following years (the date must be read in the restart file). 
     540\item Specify the starting date of the experiment: \forcode{nn\_date0} in \texttt{namelist}.  \forcode{nn\_date0} is written as Year0101 where Year may take any positive value (AD). 
     541\item Then the parameters \forcode{nn\_rstctl} in  \texttt{namelist} (on-line) and \forcode{nn\_rsttr} in \texttt{namelist\_top} (off-line)  must be \textbf{set to 0} at the start of the experiment (force the date to \forcode{nn\_date0} for the \textbf{first} experiment year). 
     542\item These two parameters (\forcode{nn\_rstctl} and \forcode{nn\_rsttr}) have then to be \textbf{set to 2} for the following years (the date must be read in the restart file). 
    480543\end{itemize} 
    481  If the experiment date is outside the data time span then the first or last atmospheric concentrations are prescribed depending on whether the date is earlier or later. Note that \CODE{tyrc14\_beg} (\texttt{namelist\_c14}) is not used in this context. 
     544 
     545If the experiment date is outside the data time span then the first or last atmospheric concentrations are prescribed depending on whether the date is earlier or later. 
     546Note that \forcode{tyrc14\_beg} (\texttt{namelist\_c14}) is not used in this context. 
    482547 
    483548% 
    484549\textbf{Transient: Past} 
    485 \CODE{kc14typ}=2 
     550\forcode{kc14typ}=2 
    486551% 
    487552\begin{figure}[!h] 
     
    490555\end{center} 
    491556\vspace{-4ex} 
    492 \caption{Atmospheric $\Dcq$ (solid) and $\cd$ (dashed)  forcing for the Paleo experiments. The $\cd$ scale is given on the right axis.} \label{fig:paleo} 
     557\caption{Atmospheric $\Dcq$ (solid) and $\cd$ (dashed)  forcing for the Paleo experiments. 
     558The $\cd$ scale is given on the right axis.} \label{fig:paleo} 
    493559\end{figure} 
    494560 
    495 This experiment type does not need a previous equilibrium run. It should start 5--6 kyr earlier than the period to be analyzed. 
    496 Atmospheric $\Rq_a$ and $\cd$ are prescribed from forcing files. The ocean $\Rq$ is initialized with the value attributed to \CODE{rc14init} in \texttt{namelist\_c14}. 
     561This experiment type does not need a previous equilibrium run. 
     562It should start 5--6 kyr earlier than the period to be analyzed. 
     563Atmospheric $\Rq_a$ and $\cd$ are prescribed from forcing files. 
     564The ocean $\Rq$ is initialized with the value attributed to \forcode{rc14init} in \texttt{namelist\_c14}. 
    497565 
    498566The file \texttt{intcal13.14c} \citep{reimer_2013} contains atmospheric $\Dcq$ from 0 to 50 kyr cal BP\footnote{cal BP: number of years before 1950 AD}. 
    499 The $\cd$ forcing is provided in file \texttt{ByrdEdcCO2.txt}. The content of this file is based on  the high resolution record from EPICA Dome C \citep{monnin_2004} for the Holocene and the Transition, and on Byrd Ice Core CO2 Data for 20--90 kyr BP  \citep{ahn_2008}. These atmospheric values are reproduced in Fig. \ref{fig:paleo}. Dates in these files are expressed as yr BP. 
     567The $\cd$ forcing is provided in file \texttt{ByrdEdcCO2.txt}. 
     568The content of this file is based on  the high resolution record from EPICA Dome C \citep{monnin_2004} for the Holocene and the Transition, and on Byrd Ice Core CO2 Data for 20--90 kyr BP  \citep{ahn_2008}. 
     569These atmospheric values are reproduced in Fig. \autoref{fig:paleo}. 
     570Dates in these files are expressed as yr BP. 
    500571 
    501572To ensure that the atmospheric forcing is applied properly as well as that output files contain consistent dates and inventories the experiment should be set up carefully. 
    502 The true experiment starting date is given by \CODE{tyrc14\_beg} (in yr BP) in \texttt{namelist\_c14}. In consequence, \CODE{nn\_date0} in \texttt{namelist} MUST be set to 00010101.\\ 
    503 Then the parameters \CODE{nn\_rstctl} in  \texttt{namelist} (on-line) and \CODE{nn\_rsttr} in \texttt{namelist\_top} (off-line)  must be set to 0 at the start of the experiment (force the date to \CODE{nn\_date0} for the first experiment year). These two parameters have then to be set to 2 for the following years (read the date in the restart file). \\ 
    504  If the experiment date is outside the data time span then the first or last atmospheric concentrations are prescribed depending on whether the date is earlier or later. 
     573The true experiment starting date is given by \forcode{tyrc14\_beg} (in yr BP) in \texttt{namelist\_c14}. 
     574In consequence, \forcode{nn\_date0} in \texttt{namelist} MUST be set to 00010101.\\ 
     575Then the parameters \forcode{nn\_rstctl} in  \texttt{namelist} (on-line) and \forcode{nn\_rsttr} in \texttt{namelist\_top} (off-line)  must be set to 0 at the start of the experiment (force the date to \forcode{nn\_date0} for the first experiment year). 
     576These two parameters have then to be set to 2 for the following years (read the date in the restart file). \\ 
     577If the experiment date is outside the data time span then the first or last atmospheric concentrations are prescribed depending on whether the date is earlier or later. 
    505578 
    506579% 
    507580\paragraph{Model output} 
    508581\label{sec:output} 
    509 All output fields in Table \ref{tab:out} are routinely computed. It depends on the actual settings in \texttt{iodef.xml} whether they are stored or not. 
     582 
     583All output fields in Table \autoref{tab:out} are routinely computed. 
     584It depends on the actual settings in \texttt{iodef.xml} whether they are stored or not. 
    510585% 
    511586\begin{table}[!h] 
    512587\begin{center} 
    513 \caption{Standard output fields for the C14 package \label{tab:out}. 
    514 } 
     588\caption{Standard output fields for the C14 package \label{tab:out}.} 
    515589%\begin{small} 
    516590\renewcommand{\arraystretch}{1.3}% 
    517591\begin{tabular}[h]{|l*{3}{|c}|l|} 
    518592\hline 
    519 Field & Type & Dim & Units & Description \\ \hline 
    520 RC14 & ptrc & 3-D & -        & Radiocarbon ratio \\ 
    521 DeltaC14 & diad & 3-D & \textperthousand & $\Dcq$\\ 
    522 C14Age & diad & 3-D & yr &   Radiocarbon age \\ 
    523 RAge & diad & 2-D & yr & Reservoir age\\ 
    524 qtr\_c14 &  diad & 2-D & m$^{-2}$ yr$^{-1}$ & Air-to-sea net $\Rq$ flux\\ 
    525 qint\_c14 & diad & 2-D &   m$^{-2}$ &  Cumulative air-to-sea $\Rq$ flux \\ 
    526 AtmCO2 & scalar & 0-D & ppm & Global atmospheric $\cd$ \\ 
    527 AtmC14 & scalar & 0-D & \textperthousand  & Global atmospheric $\Dcq$\\ 
    528 K\_CO2 & scalar & 0-D & cm h$^{-1}$  & Global $\cd$ piston velocity ($ \overline{\kappa_{\cd}}$) \\ 
    529 K\_C14 & scalar & 0-D &m yr$^{-1}$ & Global $\Rq$ transfer velocity  ($ \overline{\kappa_R}$)\\ 
    530 C14Inv & scalar & 0-D & $10^{26}$ atoms & Ocean radiocarbon inventory \\ \hline 
     593Field     & Type   & Dim & Units              & Description                                              \\ \hline 
     594RC14      & ptrc   & 3-D & -                  & Radiocarbon ratio                                        \\ 
     595DeltaC14  & diad   & 3-D & \textperthousand   & $\Dcq$                                                    \\ 
     596C14Age    & diad   & 3-D & yr                 & Radiocarbon age                                          \\ 
     597RAge      & diad   & 2-D & yr                 & Reservoir age                                             \\ 
     598qtr\_c14  & diad   & 2-D & m$^{-2}$ yr$^{-1}$ & Air-to-sea net $\Rq$ flux                                 \\ 
     599qint\_c14 & diad   & 2-D & m$^{-2}$           & Cumulative air-to-sea $\Rq$ flux                          \\ 
     600AtmCO2    & scalar & 0-D & ppm                & Global atmospheric $\cd$                                  \\ 
     601AtmC14    & scalar & 0-D & \textperthousand   & Global atmospheric $\Dcq$                                 \\ 
     602K\_CO2    & scalar & 0-D & cm h$^{-1}$        & Global $\cd$ piston velocity ($ \overline{\kappa_{\cd}}$) \\ 
     603K\_C14    & scalar & 0-D & m yr$^{-1}$        & Global $\Rq$ transfer velocity  ($ \overline{\kappa_R}$)  \\ 
     604C14Inv    & scalar & 0-D & $10^{26}$ atoms    & Ocean radiocarbon inventory                              \\ \hline 
    531605\end{tabular} 
    532606%\end{small} 
     
    539613The radiocarbon age is computed as  $(-1/\lambda) \ln{ \left( \Rq \right)}$, with zero age corresponding to $\Rq=1$. 
    540614 
    541 The reservoir age is the age difference between the ocean uppermost layer and the atmosphere. It is usually reported as conventional radiocarbon age; i.e., computed by means of the Libby radiocarbon mean life \cite[8033 yr;][]{stuiver_1977} 
     615The reservoir age is the age difference between the ocean uppermost layer and the atmosphere. 
     616It is usually reported as conventional radiocarbon age; i.e., computed by means of the Libby radiocarbon mean life \cite[8033 yr;][]{stuiver_1977} 
     617 
    542618\begin{align} 
    543619{^{14}\tau_\mathrm{c}}= -8033 \; \ln \left(1 + \frac{\Dcq}{10^3}\right), \label{eq:convage} 
    544620\end{align} 
    545 where ${^{14}\tau_\mathrm{c}}$ is expressed in years B.P. Here we do not use that convention and compute reservoir ages with the mean lifetime $1/\lambda$. Conversion from one scale to the other is readily performed. The conventional radiocarbon age is lower than the radiocarbon age by $\simeq3\%$. 
     621 
     622where ${^{14}\tau_\mathrm{c}}$ is expressed in years B.P. 
     623Here we do not use that convention and compute reservoir ages with the mean lifetime $1/\lambda$. 
     624Conversion from one scale to the other is readily performed. 
     625The conventional radiocarbon age is lower than the radiocarbon age by $\simeq3\%$. 
    546626 
    547627The ocean radiocarbon  inventory is computed as 
     628 
    548629\begin{equation} 
    549630N_A \Rq_\mathrm{oxa} \overline{\Ct} \left( \int_\Omega \Rq d\Omega \right) /10^{26}, \label{eq:inv} 
    550631\end{equation} 
    551 where $N_A$ is the Avogadro's number ($N_A=6.022\times10^{23}$ at/mol), $\Rq_\mathrm{oxa}$ is the oxalic acid radiocarbon standard \cite[$\Rq_\mathrm{oxa}=1.176\times10^{-12}$;][]{stuiver_1977}, and $\Omega$ is the ocean volume.  Bomb $\cq$ inventories are traditionally reported in units of $10^{26}$ atoms, hence the denominator in \eqref{eq:inv}. 
    552  
    553 All transformations from second to year, and inversely, are performed with the help of the physical constant \CODE{rsiyea} the sideral year length expressed in seconds\footnote{The variable (\CODE{nyear\_len}) which reports the length in days of the previous/current/future year (see \textrm{oce\_trc.F90}) is not a constant. }. 
     632 
     633where $N_A$ is the Avogadro's number ($N_A=6.022\times10^{23}$ at/mol), $\Rq_\mathrm{oxa}$ is the oxalic acid radiocarbon standard \cite[$\Rq_\mathrm{oxa}=1.176\times10^{-12}$;][]{stuiver_1977}, and $\Omega$ is the ocean volume. 
     634Bomb $\cq$ inventories are traditionally reported in units of $10^{26}$ atoms, hence the denominator in \autoref{eq:inv}. 
     635 
     636All transformations from second to year, and inversely, are performed with the help of the physical constant \forcode{rsiyea} the sideral year length expressed in seconds\footnote{The variable (\forcode{nyear\_len}) which reports the length in days of the previous/current/future year (see \textrm{oce\_trc.F90}) is not a constant. }. 
    554637 
    555638The global transfer velocities represent time-averaged\footnote{the actual duration is set in \texttt{iodef.xml}} global integrals of the transfer rates: 
    556  \begin{equation} 
     639 
     640\begin{equation} 
    557641 \overline{\kappa_{\cd}}= \int_\mathcal{S} \kappa_{\cd} d\mathcal{S}  \text{ and } \overline{\kappa_R}= \int_\mathcal{S} \kappa_R d\mathcal{S} 
    558642\end{equation} 
     
    561645\subsection{PISCES biogeochemical model} 
    562646 
    563 PISCES is a biogeochemical model which simulates the lower trophic levels of marine ecosystem (phytoplankton, microzooplankton and mesozooplankton) and the biogeochemical cycles of carbonand of the main nutrients (P, N, Fe, and Si). The  model is intended to be used for both regional and global configurations at high or low spatial resolutions as well as for  short-term (seasonal, interannual) and long-term (climate change, paleoceanography) analyses. 
     647PISCES is a biogeochemical model which simulates the lower trophic levels of marine ecosystem (phytoplankton, microzooplankton and mesozooplankton) and the biogeochemical cycles of carbonand of the main nutrients (P, N, Fe, and Si). 
     648The  model is intended to be used for both regional and global configurations at high or low spatial resolutions as well as for  short-term (seasonal, interannual) and long-term (climate change, paleoceanography) analyses. 
    564649Two versions of PISCES are available in NEMO v4.0 : 
    565650 
    566 PISCES-v2, by setting in namelist\_pisces\_ref  \np{ln\_p4z} to true,  can be seen as one of the many Monod models \citep{monod_1958}. It assumes a constant Redfield ratio and phytoplankton growth depends on the external concentration in nutrients. There are twenty-four prognostic variables (tracers) including two phytoplankton compartments  (diatoms and nanophytoplankton), two zooplankton size-classes (microzooplankton and  mesozooplankton) and a description of the carbonate chemistry. Formulations in PISCES-v2 are based on a mixed Monod/Quota formalism: On one hand, stoichiometry of C/N/P is fixed and growth rate of phytoplankton is limited by the external availability in N, P and Si. On the other hand, the iron and silicium quotas are variable and growth rate of phytoplankton is limited by the internal availability in Fe. Various parameterizations can be activated in PISCES-v2, setting for instance the complexity of iron chemistry or the description of particulate organic materials. 
    567  
    568 PISCES-QUOTA has been built on the PISCES-v2 model described in \citet{aumont_2015}. PISCES-QUOTA has thirty-nine prognostic compartments. Phytoplankton growth can be controlled by five modeled limiting nutrients: Nitrate and Ammonium, Phosphate, Silicate and Iron. Five living compartments are represented: Three phytoplankton size classes/groups corresponding to picophytoplankton, nanophytoplankton and diatoms, and two zooplankton size classes which are microzooplankton and mesozooplankton. For phytoplankton, the prognostic variables are the carbon, nitrogen, phosphorus,  iron, chlorophyll and silicon biomasses (the latter only for diatoms). This means that the N/C, P/C, Fe/C and Chl/C ratios of both phytoplankton groups as well as the Si/C ratio of diatoms are prognostically predicted  by the model. Zooplankton are assumed to be strictly homeostatic \citep[e.g.,][]{sterner_2003,woods_2013,meunier_2014}. As a consequence, the C/N/P/Fe ratios of these groups are maintained constant and are not allowed to vary. In PISCES, the Redfield ratios C/N/P are set to 122/16/1 \citep{takahashi_1985} and the -O/C ratio is set to 1.34 \citep{kortzinger_2001}. No silicified zooplankton is assumed. The bacterial pool is not yet explicitly modeled. 
    569  
    570 There are three non-living compartments: Semi-labile dissolved organic matter, small sinking particles, and large sinking particles. As a consequence of the variable stoichiometric ratios of phytoplankton and of the stoichiometric regulation of zooplankton, elemental ratios in organic matter cannot be supposed constant anymore as that was the case in PISCES-v2. Indeed, the nitrogen, phosphorus, iron, silicon and calcite pools of the particles are now all explicitly modeled. The sinking speed of the particles is not altered by their content in calcite and biogenic silicate (''The ballast effect'', \citep{honjo_1996,armstrong_2001}). The latter particles are assumed to sink at the same speed as the large organic matter particles. All the non-living compartments experience aggregation due to turbulence and differential settling as well as Brownian coagulation for DOM. 
    571  
     651PISCES-v2, by setting in namelist\_pisces\_ref  \np{ln\_p4z} to true,  can be seen as one of the many Monod models \citep{monod_1958}. 
     652It assumes a constant Redfield ratio and phytoplankton growth depends on the external concentration in nutrients. 
     653There are twenty-four prognostic variables (tracers) including two phytoplankton compartments  (diatoms and nanophytoplankton), two zooplankton size-classes (microzooplankton and  mesozooplankton) and a description of the carbonate chemistry. 
     654Formulations in PISCES-v2 are based on a mixed Monod/Quota formalism: On one hand, stoichiometry of C/N/P is fixed and growth rate of phytoplankton is limited by the external availability in N, P and Si. 
     655On the other hand, the iron and silicium quotas are variable and growth rate of phytoplankton is limited by the internal availability in Fe. 
     656Various parameterizations can be activated in PISCES-v2, setting for instance the complexity of iron chemistry or the description of particulate organic materials. 
     657 
     658PISCES-QUOTA has been built on the PISCES-v2 model described in \citet{aumont_2015}. 
     659PISCES-QUOTA has thirty-nine prognostic compartments. 
     660Phytoplankton growth can be controlled by five modeled limiting nutrients: Nitrate and Ammonium, Phosphate, Silicate and Iron. 
     661Five living compartments are represented: Three phytoplankton size classes/groups corresponding to picophytoplankton, nanophytoplankton and diatoms, and two zooplankton size classes which are microzooplankton and mesozooplankton. 
     662For phytoplankton, the prognostic variables are the carbon, nitrogen, phosphorus,  iron, chlorophyll and silicon biomasses (the latter only for diatoms). 
     663This means that the N/C, P/C, Fe/C and Chl/C ratios of both phytoplankton groups as well as the Si/C ratio of diatoms are prognostically predicted  by the model. 
     664Zooplankton are assumed to be strictly homeostatic \citep[e.g.,][]{sterner_2003,woods_2013,meunier_2014}. 
     665As a consequence, the C/N/P/Fe ratios of these groups are maintained constant and are not allowed to vary. 
     666In PISCES, the Redfield ratios C/N/P are set to 122/16/1 \citep{takahashi_1985} and the -O/C ratio is set to 1.34 \citep{kortzinger_2001}. 
     667No silicified zooplankton is assumed. 
     668The bacterial pool is not yet explicitly modeled. 
     669 
     670There are three non-living compartments: Semi-labile dissolved organic matter, small sinking particles, and large sinking particles. 
     671As a consequence of the variable stoichiometric ratios of phytoplankton and of the stoichiometric regulation of zooplankton, elemental ratios in organic matter cannot be supposed constant anymore as that was the case in PISCES-v2. 
     672Indeed, the nitrogen, phosphorus, iron, silicon and calcite pools of the particles are now all explicitly modeled. 
     673The sinking speed of the particles is not altered by their content in calcite and biogenic silicate (''The ballast effect'', \citep{honjo_1996,armstrong_2001}). 
     674The latter particles are assumed to sink at the same speed as the large organic matter particles. 
     675All the non-living compartments experience aggregation due to turbulence and differential settling as well as Brownian coagulation for DOM. 
    572676 
    573677\subsection{MY\_TRC interface for coupling external BGC models} 
    574678\label{Mytrc} 
    575679 
    576 The NEMO-TOP has only one built-in biogeochemical model - PISCES - but there are several BGC models - MEDUSA, ERSEM, BFM or ECO3M - which are meant to be coupled with the NEMO dynamics. Therefore it was necessary to provide to the users a framework for easily add their own BGCM model, that can be a single passive tracer. 
    577 The generalized interface is pivoted on MY\_TRC module that contains template files to build the coupling between NEMO and any external BGC model. The call to MY\_TRC is activated by setting  \textit{ln\_my\_trc} = \texttt{.true.} in namelist \textit{namtrc} 
     680The NEMO-TOP has only one built-in biogeochemical model - PISCES - but there are several BGC models - MEDUSA, ERSEM, BFM or ECO3M - which are meant to be coupled with the NEMO dynamics. 
     681Therefore it was necessary to provide to the users a framework for easily add their own BGCM model, that can be a single passive tracer. 
     682The generalized interface is pivoted on MY\_TRC module that contains template files to build the coupling between NEMO and any external BGC model. 
     683The call to MY\_TRC is activated by setting  \textit{ln\_my\_trc} = \texttt{.true.} in namelist \textit{namtrc} 
    578684 
    579685The following 6 fortran files are available in MY\_TRC with the specific purposes here described. 
     
    581687\begin{itemize} 
    582688   \item \textit{par\_my\_trc.F90} :  This module allows to define additional arrays and public variables to be used within the MY\_TRC interface 
    583    \item \textit{trcini\_my\_trc.F90} :  Here are initialized user defined namelists and the call to the external BGC model initialization procedures to populate general tracer array (trn and trb). Here are also likely to be defined suport arrays related to system metrics that could be needed by the BGC model. 
     689   \item \textit{trcini\_my\_trc.F90} :  Here are initialized user defined namelists and the call to the external BGC model initialization procedures to populate general tracer array (trn and trb). 
     690Here are also likely to be defined suport arrays related to system metrics that could be needed by the BGC model. 
    584691  \item \textit{trcnam\_my\_trc.F90} :  This routine is called at the beginning of trcini\_my\_trc and should contain the initialization of additional namelists for the BGC model or user-defined code. 
    585   \item \textit{trcsms\_my\_trc.F90} :  The routine performs the call to Boundary Conditions and its main purpose is to contain the Source-Minus-Sinks terms due to the biogeochemical processes of the external model. Be aware that lateral boundary conditions are applied in trcnxt routine. IMPORTANT: the routines to compute the light penetration along the water column and the tracer vertical sinking should be defined/called in here, as generalized modules are still missing in the code. 
    586  \item \textit{trcice\_my\_trc.F90} : Here it is possible to prescribe the tracers concentrations in the seaice that will be used as boundary conditions when ice melting occurs (nn\_ice\_tr =1 in namtrc\_ice). See e.g. the correspondent PISCES subroutine. 
    587  \item \textit{trcwri\_my\_trc.F90} : This routine performs the output of the model tracers using IOM module (see Manual Chapter Output and Diagnostics). It is possible to place here the output of additional variables produced by the model, if not done elsewhere in the code, using the call to \textit{iom\_put}. 
     692  \item \textit{trcsms\_my\_trc.F90} :  The routine performs the call to Boundary Conditions and its main purpose is to contain the Source-Minus-Sinks terms due to the biogeochemical processes of the external model. 
     693Be aware that lateral boundary conditions are applied in trcnxt routine. 
     694IMPORTANT: the routines to compute the light penetration along the water column and the tracer vertical sinking should be defined/called in here, as generalized modules are still missing in the code. 
     695 \item \textit{trcice\_my\_trc.F90} : Here it is possible to prescribe the tracers concentrations in the seaice that will be used as boundary conditions when ice melting occurs (nn\_ice\_tr =1 in namtrc\_ice). 
     696See e.g. the correspondent PISCES subroutine. 
     697 \item \textit{trcwri\_my\_trc.F90} : This routine performs the output of the model tracers using IOM module (see Manual Chapter Output and Diagnostics). 
     698It is possible to place here the output of additional variables produced by the model, if not done elsewhere in the code, using the call to \textit{iom\_put}. 
    588699\end{itemize} 
    589  
    590700 
    591701\section{The Offline Option} 
     
    596706%------------------------------------------------------------------------------------------------------------- 
    597707 
    598 Coupling passive tracers offline with NEMO requires precomputed  physical fields from OGCM. Those fields are read from files and interpolated on-the-fly at each model time step 
     708Coupling passive tracers offline with NEMO requires precomputed  physical fields from OGCM. 
     709Those fields are read from files and interpolated on-the-fly at each model time step 
    599710At least the following dynamical parameters should be absolutely passed to the transport : ocean velocities, temperature, salinity, mixed layer depth and for ecosystem models like PISCES, sea ice concentration, short wave radiation at the ocean surface, wind speed (or at least, wind stress). 
    600711The so-called offline mode is useful since it has lower computational costs for example to perform very longer simulations - about 3000 years - to reach equilibrium of CO2 sinks for climate-carbon studies. 
    601712 
    602 The offline interface is located in the code repository : \path{<repository>/src/OFF/}. It is activated by adding the CPP key  \textit{key\_offline} to the CPP keys list. There are two specifics routines for the Offline code : 
     713The offline interface is located in the code repository : \path{<repository>/src/OFF/}. 
     714It is activated by adding the CPP key  \textit{key\_offline} to the CPP keys list. 
     715There are two specifics routines for the Offline code : 
    603716 
    604717\begin{itemize} 
     
    606719   \item \textit{nemogcm.F90} :  a degraded version of the main nemogcm.F90 code of NEMO to manage the time-stepping 
    607720\end{itemize} 
    608  
    609721 
    610722%- 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/latex/global/latexmk.pl

    r14257 r14403  
    99 
    1010## Custom cmds 
    11 set_tex_cmds('-shell-escape -interaction=batchmode'); 
    12 #set_tex_cmds('-shell-escape'); 
    13 $makeindex = 'makeindex -s %R.ist %O -o %D %S'; 
     11set_tex_cmds('-shell-escape -file-line-error -interaction=batchmode'); 
     12#set_tex_cmds('-shell-escape -file-line-error'); 
     13$makeindex = 'makeindex %O -s %R.ist -o %D %S'; 
     14## %D: Destination file (.ind for index) 
     15## %O: Options 
     16## %R: Root filename (${model}_manual) 
     17## %S: Source file      (.idx for index) 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/doc/rst/source/conf.py

    r11907 r14403  
    279279# Default language to highlight set to fortran 
    280280highlight_language = 'fortran' 
     281 
     282# Extra setting for sphinxcontrib.bibtex upgrade to 2.X.X branche 
     283bibtex_bibfiles = ['cfgs.bib', 'ref.bib', 'tests.bib', 'zooms.bib'] 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/ICB/icbdia.F90

    r10570 r14403  
    8686   INTEGER                       ::  nbergs_start, nbergs_end, nbergs_calved 
    8787   INTEGER                       ::  nbergs_melted 
    88    INTEGER                       ::  nspeeding_tickets 
     88   INTEGER                       ::  nspeeding_tickets, nspeeding_tickets_all 
    8989   INTEGER , DIMENSION(nclasses) ::  nbergs_calved_by_class 
    9090 
     
    125125      nbergs_calved_by_class(:) = 0 
    126126      nspeeding_tickets         = 0 
     127      nspeeding_tickets_all     = 0 
    127128      stored_heat_end           = 0._wp 
    128129      floating_heat_end         = 0._wp 
     
    271272            CALL mpp_sum( 'icbdia', nsumbuf(1:nclasses+4), nclasses+4 ) 
    272273            ! 
    273             nbergs_end        = nsumbuf(1) 
    274             nbergs_calved     = nsumbuf(2) 
    275             nbergs_melted     = nsumbuf(3) 
    276             nspeeding_tickets = nsumbuf(4) 
     274            nbergs_end            = nsumbuf(1) 
     275            nbergs_calved         = nsumbuf(2) 
     276            nbergs_melted         = nsumbuf(3) 
     277            nspeeding_tickets_all = nsumbuf(4) 
    277278            DO ik = 1,nclasses 
    278279               nbergs_calved_by_class(ik)= nsumbuf(4+ik) 
     
    329330         IF (nn_verbose_level > 0) THEN 
    330331            WRITE( numicb, '("calved by class = ",i6,20(",",i6))') (nbergs_calved_by_class(ik),ik=1,nclasses) 
    331             IF( nspeeding_tickets > 0 )   WRITE( numicb, '("speeding tickets issued = ",i6)') nspeeding_tickets 
     332            IF( nspeeding_tickets_all > 0 ) THEN 
     333                WRITE( numicb, '("speeding tickets issued (this domain)  = ",i6)') nspeeding_tickets 
     334                WRITE( numicb, '("speeding tickets issued (all domains)  = ",i6)') nspeeding_tickets_all 
     335            END IF 
    332336         ENDIF 
    333337         ! 
     
    338342         nbergs_calved_by_class(:) = 0 
    339343         nspeeding_tickets         = 0 
     344         nspeeding_tickets_all     = 0 
    340345         stored_heat_start         = stored_heat_end 
    341346         floating_heat_start       = floating_heat_end 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/ICB/icbdyn.F90

    r14030 r14403  
    8585 
    8686         !                                         !**   A1 = A(X1,V1) 
    87          CALL icb_accel( berg , zxi1, ze1, zuvel1, zuvel1, zax1,     & 
    88             &                   zyj1, ze2, zvvel1, zvvel1, zay1, zdt_2 ) 
     87         CALL icb_accel( kt, berg , zxi1, ze1, zuvel1, zuvel1, zax1,     & 
     88            &                   zyj1, ze2, zvvel1, zvvel1, zay1, zdt_2, 0.5_wp ) 
    8989         ! 
    9090         zu1 = zuvel1 / ze1                           !**   V1 in d(i,j)/dt 
     
    102102 
    103103         !                                         !**   A2 = A(X2,V2) 
    104          CALL icb_accel( berg , zxi2, ze1, zuvel2, zuvel1, zax2,    & 
    105             &                   zyj2, ze2, zvvel2, zvvel1, zay2, zdt_2 ) 
     104         CALL icb_accel( kt, berg , zxi2, ze1, zuvel2, zuvel1, zax2,    & 
     105            &                   zyj2, ze2, zvvel2, zvvel1, zay2, zdt_2, 0.5_wp ) 
    106106         ! 
    107107         zu2 = zuvel2 / ze1                           !**   V2 in d(i,j)/dt 
     
    114114         zyj3  = zyj1  + zdt_2 * zv2   ;   zvvel3 = zvvel1 + zdt_2 * zay2 
    115115         ! 
    116          CALL icb_ground( berg, zxi3, zxi1, zu3,   & 
    117             &                   zyj3, zyj1, zv3, ll_bounced ) 
     116         CALL icb_ground( berg, zxi3, zxi1, zu2,   & 
     117            &                   zyj3, zyj1, zv2, ll_bounced ) 
    118118 
    119119         !                                         !**   A3 = A(X3,V3) 
    120          CALL icb_accel( berg , zxi3, ze1, zuvel3, zuvel1, zax3,    & 
    121             &                   zyj3, ze2, zvvel3, zvvel1, zay3, zdt ) 
     120         CALL icb_accel( kt, berg , zxi3, ze1, zuvel3, zuvel1, zax3,    & 
     121            &                   zyj3, ze2, zvvel3, zvvel1, zay3, zdt, 1._wp ) 
    122122         ! 
    123123         zu3 = zuvel3 / ze1                           !**   V3 in d(i,j)/dt 
     
    130130         zyj4 = zyj1 + zdt * zv3   ;   zvvel4 = zvvel1 + zdt * zay3 
    131131 
    132          CALL icb_ground( berg, zxi4, zxi1, zu4,   & 
    133             &                   zyj4, zyj1, zv4, ll_bounced ) 
     132         CALL icb_ground( berg, zxi4, zxi1, zu3,   & 
     133            &                   zyj4, zyj1, zv3, ll_bounced ) 
    134134 
    135135         !                                         !**   A4 = A(X4,V4) 
    136          CALL icb_accel( berg , zxi4, ze1, zuvel4, zuvel1, zax4,    & 
    137             &                   zyj4, ze2, zvvel4, zvvel1, zay4, zdt ) 
     136         CALL icb_accel( kt, berg , zxi4, ze1, zuvel4, zuvel1, zax4,    & 
     137            &                   zyj4, ze2, zvvel4, zvvel1, zay4, zdt, 1._wp ) 
    138138 
    139139         zu4 = zuvel4 / ze1                           !**   V4 in d(i,j)/dt 
     
    255255 
    256256 
    257    SUBROUTINE icb_accel( berg , pxi, pe1, puvel, puvel0, pax,                & 
    258       &                         pyj, pe2, pvvel, pvvel0, pay, pdt ) 
     257   SUBROUTINE icb_accel( kt, berg , pxi, pe1, puvel, puvel0, pax,                 & 
     258      &                             pyj, pe2, pvvel, pvvel0, pay, pdt, pcfl_scale ) 
    259259      !!---------------------------------------------------------------------- 
    260260      !!                  ***  ROUTINE icb_accel  *** 
     
    265265      !!---------------------------------------------------------------------- 
    266266      TYPE(iceberg ), POINTER, INTENT(in   ) ::   berg             ! berg 
     267      INTEGER                , INTENT(in   ) ::   kt               ! time step 
     268      REAL(wp)               , INTENT(in   ) ::   pcfl_scale 
    267269      REAL(wp)               , INTENT(in   ) ::   pxi   , pyj      ! berg position in (i,j) referential 
    268270      REAL(wp)               , INTENT(in   ) ::   puvel , pvvel    ! berg velocity [m/s] 
     
    404406         zspeed = SQRT( zuveln*zuveln + zvveln*zvveln )    ! Speed of berg 
    405407         IF( zspeed > 0._wp ) THEN 
    406             zloc_dx = MIN( pe1, pe2 )                          ! minimum grid spacing 
    407             zspeed_new = zloc_dx / pdt * rn_speed_limit        ! Speed limit as a factor of dx / dt 
     408            zloc_dx = MIN( pe1, pe2 )                                ! minimum grid spacing 
     409            ! cfl scale is function of the RK4 step 
     410            zspeed_new = zloc_dx / pdt * rn_speed_limit * pcfl_scale ! Speed limit as a factor of dx / dt 
    408411            IF( zspeed_new < zspeed ) THEN 
    409                zuveln = zuveln * ( zspeed_new / zspeed )        ! Scale velocity to reduce speed 
    410                zvveln = zvveln * ( zspeed_new / zspeed )        ! without changing the direction 
     412               zuveln = zuveln * ( zspeed_new / zspeed )             ! Scale velocity to reduce speed 
     413               zvveln = zvveln * ( zspeed_new / zspeed )             ! without changing the direction 
     414               pax = (zuveln - puvel0)/pdt 
     415               pay = (zvveln - pvvel0)/pdt 
     416               ! 
     417               ! print speeding ticket 
     418               IF (nn_verbose_level > 0) THEN 
     419                  WRITE(numicb, 9200) 'icb speeding : ',kt, nknberg, zspeed, & 
     420                       &                pxi, pyj, zuo, zvo, zua, zva, zui, zvi 
     421                  9200 FORMAT(a,i9,i6,f9.2,1x,4(1x,2f9.2)) 
     422               END IF 
     423               ! 
    411424               CALL icb_dia_speed() 
    412425            ENDIF 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/ICB/icbutl.F90

    r14118 r14403  
    320320         ! 
    321321         IF ( ierr > 0 ) THEN 
    322             WRITE(numout,*) 'bottom left corner T point out of bound' 
    323             WRITE(numout,*) pi, kii, mig( 1 ), mig(jpi) 
    324             WRITE(numout,*) pj, kij, mjg( 1 ), mjg(jpj) 
    325             WRITE(numout,*) pmsk 
    326             CALL ctl_stop('STOP','icb_utl_bilin_h: an icebergs coordinates is out of valid range (out of bound error)') 
     322            WRITE(numicb,*) 'bottom left corner T point out of bound' 
     323            WRITE(numicb,*) pi, kii, mig( 1 ), mig(jpi) 
     324            WRITE(numicb,*) pj, kij, mjg( 1 ), mjg(jpj) 
     325            WRITE(numicb,*) pmsk 
     326            CALL FLUSH(numicb) 
     327            CALL ctl_stop('STOP','icb_utl_bilin_e: an icebergs coordinates is out of valid range (out of bound error).'       , & 
     328                 &                                'This can be fixed using rn_speed_limit=0.4 in &namberg.'                   , & 
     329                 &                                'More details in the corresponding iceberg.stat file (nn_verbose_level > 0).' ) 
    327330         END IF 
    328331      END IF 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/LBC/lib_mpp.F90

    r14363 r14403  
    13251325         END DO 
    13261326         IF ( crname_lbc(n_sequence_lbc) /= 'already counted' ) THEN 
    1327             WRITE(numcom,'(A, I4, A, A)') ' - ', 1,' times by subroutine ', TRIM(crname_lbc(ncom_rec_max)) 
     1327            WRITE(numcom,'(A, I4, A, A)') ' - ', 1,' times by subroutine ', TRIM(crname_lbc(n_sequence_lbc)) 
    13281328         END IF 
    13291329         WRITE(numcom,*) ' ' 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/SBC/sbcblk.F90

    r14363 r14403  
    4040   USE sbcdcy         ! surface boundary condition: diurnal cycle 
    4141   USE sbcwave , ONLY :   cdn_wave ! wave module 
    42    USE lib_fortran    ! to use key_nosignedzero 
     42   USE lib_fortran    ! to use key_nosignedzero and glob_sum 
    4343   ! 
    4444#if defined key_si3 
     
    348348      !                                      !- fill the bulk structure with namelist informations 
    349349      CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_init', 'surface boundary condition -- bulk formulae', 'namsbc_blk' ) 
     350      sf(jp_wndi )%zsgn = -1._wp   ;   sf(jp_wndj )%zsgn = -1._wp   ! vector field at T point: overwrite default definition of zsgn 
     351      sf(jp_uoatm)%zsgn = -1._wp   ;   sf(jp_voatm)%zsgn = -1._wp   ! vector field at T point: overwrite default definition of zsgn 
     352      sf(jp_hpgi )%zsgn = -1._wp   ;   sf(jp_hpgj )%zsgn = -1._wp   ! vector field at T point: overwrite default definition of zsgn 
    350353      ! 
    351354      DO jfpr= 1, jpfld 
     
    509512      ! Sanity/consistence test on humidity at first time step to detect potential screw-up: 
    510513      IF( kt == nit000 ) THEN 
    511          IF(lwp) WRITE(numout,*) '' 
    512 #if defined key_agrif 
    513          IF(lwp) WRITE(numout,*) ' === AGRIF => Sanity/consistence test on air humidity SKIPPED! :( ===' 
    514 #else 
    515          ztst = SUM(tmask(:,:,1)) ! number of ocean points on local proc domain 
    516          IF( ztst > 8._wp ) THEN ! test only on proc domains with at least 8 ocean points! 
    517             ztst = SUM(sf(jp_humi)%fnow(:,:,1)*tmask(:,:,1))/ztst ! mean humidity over ocean on proc 
    518             llerr = .FALSE. 
    519             SELECT CASE( nhumi ) 
    520             CASE( np_humi_sph ) ! specific humidity => expect: 0. <= something < 0.065 [kg/kg] (0.061 is saturation at 45degC !!!) 
    521                IF( (ztst <   0._wp) .OR. (ztst > 0.065_wp) )   llerr = .TRUE. 
    522             CASE( np_humi_dpt ) ! dew-point temperature => expect: 110. <= something < 320. [K] 
    523                IF( (ztst < 110._wp) .OR. (ztst >  320._wp) )   llerr = .TRUE. 
    524             CASE( np_humi_rlh ) ! relative humidity => expect: 0. <= something < 100. [%] 
    525                IF( (ztst <   0._wp) .OR. (ztst >  100._wp) )   llerr = .TRUE. 
    526             END SELECT 
    527             IF(llerr) THEN 
    528                WRITE(ctmp1,'("   Error on mean humidity value: ",f10.5)') ztst 
    529                CALL ctl_stop( 'STOP', ctmp1, 'Something is wrong with air humidity!!!', & 
    530                   &   ' ==> check the unit in your input files'       , & 
    531                   &   ' ==> check consistence of namelist choice: specific? relative? dew-point?', & 
    532                   &   ' ==> ln_humi_sph -> [kg/kg] | ln_humi_rlh -> [%] | ln_humi_dpt -> [K] !!!' ) 
    533             END IF 
    534          END IF 
    535          IF(lwp) WRITE(numout,*) ' === Sanity/consistence test on air humidity sucessfuly passed! ===' 
    536 #endif 
    537          IF(lwp) WRITE(numout,*) '' 
    538       END IF !IF( kt == nit000 ) 
     514         ! mean humidity over ocean on proc 
     515         ztst = glob_sum( 'sbcblk', sf(jp_humi)%fnow(:,:,1) * e1e2t(:,:) * tmask(:,:,1) ) / glob_sum( 'sbcblk', e1e2t(:,:) * tmask(:,:,1) ) 
     516         llerr = .FALSE. 
     517         SELECT CASE( nhumi ) 
     518         CASE( np_humi_sph ) ! specific humidity => expect: 0. <= something < 0.065 [kg/kg] (0.061 is saturation at 45degC !!!) 
     519            IF( (ztst <   0._wp) .OR. (ztst > 0.065_wp) )   llerr = .TRUE. 
     520         CASE( np_humi_dpt ) ! dew-point temperature => expect: 110. <= something < 320. [K] 
     521            IF( (ztst < 110._wp) .OR. (ztst >  320._wp) )   llerr = .TRUE. 
     522         CASE( np_humi_rlh ) ! relative humidity => expect: 0. <= something < 100. [%] 
     523            IF( (ztst <   0._wp) .OR. (ztst >  100._wp) )   llerr = .TRUE. 
     524         END SELECT 
     525         IF(llerr) THEN 
     526            WRITE(ctmp1,'("   Error on mean humidity value: ",f10.5)') ztst 
     527            CALL ctl_stop( 'STOP', ctmp1, 'Something is wrong with air humidity!!!', & 
     528               &   ' ==> check the unit in your input files'       , & 
     529               &   ' ==> check consistence of namelist choice: specific? relative? dew-point?', & 
     530               &   ' ==> ln_humi_sph -> [kg/kg] | ln_humi_rlh -> [%] | ln_humi_dpt -> [K] !!!' ) 
     531         ENDIF 
     532         IF(lwp) THEN 
     533            WRITE(numout,*) '' 
     534            WRITE(numout,*) ' Global mean humidity at kt = nit000: ', ztst 
     535            WRITE(numout,*) ' === Sanity/consistence test on air humidity sucessfuly passed! ===' 
     536            WRITE(numout,*) '' 
     537         ENDIF 
     538      ENDIF   !IF( kt == nit000 ) 
    539539      !                                            ! compute the surface ocean fluxes using bulk formulea 
    540540      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
     
    622622      !!--------------------------------------------------------------------- 
    623623      INTEGER , INTENT(in   )                 ::   kt     ! time step index 
    624       REAL(wp), INTENT(in   ), DIMENSION(:,:) ::   pwndi  ! atmospheric wind at U-point              [m/s] 
    625       REAL(wp), INTENT(in   ), DIMENSION(:,:) ::   pwndj  ! atmospheric wind at V-point              [m/s] 
     624      REAL(wp), INTENT(in   ), DIMENSION(:,:) ::   pwndi  ! atmospheric wind at T-point              [m/s] 
     625      REAL(wp), INTENT(in   ), DIMENSION(:,:) ::   pwndj  ! atmospheric wind at T-point              [m/s] 
    626626      REAL(wp), INTENT(in   ), DIMENSION(:,:) ::   pqair  ! specific humidity at T-points            [kg/kg] 
    627627      REAL(wp), INTENT(in   ), DIMENSION(:,:) ::   ptair  ! potential temperature at T-points        [Kelvin] 
     
    832832 
    833833         IF( ln_crt_fbk ) THEN 
    834             CALL lbc_lnk( 'sbcblk', utau, 'U', -1., vtau, 'V', -1., taum, 'T', -1. ) 
     834            CALL lbc_lnk( 'sbcblk', utau, 'U', -1._wp, vtau, 'V', -1._wp, taum, 'T', 1._wp ) 
    835835         ELSE 
    836             CALL lbc_lnk( 'sbcblk', utau, 'U', -1., vtau, 'V', -1. ) 
     836            CALL lbc_lnk( 'sbcblk', utau, 'U', -1._wp, vtau, 'V', -1._wp ) 
    837837         ENDIF 
    838838 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/SBC/sbcflx.F90

    r14338 r14403  
    119119         !                                         ! fill sf with slf_i and control print 
    120120         CALL fld_fill( sf, slf_i, cn_dir, 'sbc_flx', 'flux formulation for ocean surface boundary condition', 'namsbc_flx' ) 
     121         sf(jp_utau)%cltype = 'U'   ;   sf(jp_utau)%zsgn = -1._wp   ! vector field at U point: overwrite default definition of cltype and zsgn 
     122         sf(jp_vtau)%cltype = 'V'   ;   sf(jp_vtau)%zsgn = -1._wp   ! vector field at V point: overwrite default definition of cltype and zsgn 
    121123         ! 
    122124      ENDIF 
     
    129131            qsr(:,:) = sbc_dcy( sf(jp_qsr)%fnow(:,:,1) ) * tmask(:,:,1) 
    130132         ELSE 
    131             DO_2D( 0, 0, 0, 0 ) 
    132                qsr(ji,jj) =          sf(jp_qsr)%fnow(ji,jj,1)  * tmask(ji,jj,1) 
     133            DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
     134               qsr(ji,jj) =     sf(jp_qsr)%fnow(ji,jj,1) * tmask(ji,jj,1) 
    133135            END_2D 
    134136         ENDIF 
    135          DO_2D( 0, 0, 0, 0 )                                      ! set the ocean fluxes from read fields 
     137         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                  ! set the ocean fluxes from read fields 
    136138            utau(ji,jj) =   sf(jp_utau)%fnow(ji,jj,1)                              * umask(ji,jj,1) 
    137139            vtau(ji,jj) =   sf(jp_vtau)%fnow(ji,jj,1)                              * vmask(ji,jj,1) 
     
    143145         !!clem: I do not think it is needed 
    144146         !!qns(:,:) = qns(:,:) - emp(:,:) * sst_m(:,:) * rcp        ! mass flux is at SST 
    145          ! 
    146          ! clem: without these lbc calls, it seems that the northfold is not ok (true in 3.6, not sure in 4.x) 
    147          CALL lbc_lnk( 'sbcflx', utau, 'U', -1._wp, vtau, 'V', -1._wp, & 
    148             &                           qns, 'T',  1._wp, emp , 'T',  1._wp, qsr, 'T', 1._wp ) !! sfx, 'T', 1._wp  ) 
    149147         ! 
    150148         IF( nitend-nit000 <= 100 .AND. lwp ) THEN                ! control print (if less than 100 time-step asked) 
  • NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/SBC/sbcwave.F90

    r14338 r14403  
    503503               ! 
    504504               CALL fld_fill( sf_sd, slf_i, cn_dir, 'sbc_wave_init', 'Wave module ', 'namsbc_wave' ) 
     505               sf_sd(jp_usd)%zsgn = -1._wp   ;  sf_sd(jp_vsd)%zsgn = -1._wp   ! vector field at T point: overwrite default definition of zsgn 
    505506            ENDIF 
    506507            ! 
Note: See TracChangeset for help on using the changeset viewer.