New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 14644 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/doc/latex/NEMO/subfiles/chap_misc.tex – NEMO

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

Merge trunk -r14642:HEAD

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

Legend:

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

    • Property svn:externals
      •  

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

    • Property svn:ignore
      •  

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

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