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 11512 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/doc/latex/NEMO/subfiles/chap_misc.tex – NEMO

Ignore:
Timestamp:
2019-09-09T12:05:20+02:00 (5 years ago)
Author:
smasson
Message:

dev_r10984_HPC-13 : merge with trunk@11511, see #2285

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/doc/latex/NEMO/subfiles/chap_misc.tex

    r11353 r11512  
    88\label{chap:MISC} 
    99 
    10 \minitoc 
     10\chaptertoc 
    1111 
    1212\newpage 
     
    3030are much narrow than even a single ocean grid-point. 
    3131 
    32 We describe briefly here the two methods that can be used in \NEMO to handle such 
     32We describe briefly here the two methods that can be used in \NEMO\ to handle such 
    3333improperly resolved straits. The methods consist of opening the strait while ensuring 
    3434that the mass exchanges through the strait are not too large by either artificially 
     
    4646(\autoref{fig:MISC_strait_hand}).  This technique is sometime called "partially open face" 
    4747or "partially closed cells".  The key issue here is only to reduce the faces of $T$-cell 
    48 (\ie change the value of the horizontal scale factors at $u$- or $v$-point) but not the 
     48(\ie\ change the value of the horizontal scale factors at $u$- or $v$-point) but not the 
    4949volume of the $T$-cell.  Indeed, reducing the volume of strait $T$-cell can easily produce 
    5050a numerical instability at that grid point which would require a reduction of the model 
     
    5757and $\texttt{e1u}*\texttt{e2v}$ respectively. That is the original surface areas of $u$- 
    5858and $v$- cells respectively.  These areas are usually defined by the corresponding product 
    59 within the \NEMO code but the presence of \texttt{e1e2u} and \texttt{e1e2v} in the 
     59within the \NEMO\ code but the presence of \texttt{e1e2u} and \texttt{e1e2v} in the 
    6060\np{cn\_domcfg} file will suppress this calculation and use the supplied fields instead. 
    6161If the model domain is provided by user-supplied code in \mdl{usrdef\_hgr}, then this 
     
    6767via code in  \mdl{usrdef\_hgr}), whereever a Strait reduction is required. The choice of 
    6868whether to alter \texttt{e2u} or \texttt{e1v} depends. respectively,  on whether the 
    69 Strait in question is North-South orientated (\eg Gibraltar) or East-West orientated (\eg 
     69Strait in question is North-South orientated (\eg\ Gibraltar) or East-West orientated (\eg 
    7070Lombok). 
    7171 
     
    9898      \textit{Bottom}: using viscous boundary layers. 
    9999      The four fmask parameters along the strait coastlines are set to a value larger than 4, 
    100       \ie "strong" no-slip case (see \autoref{fig:LBC_shlat}) creating a large viscous boundary layer that 
     100      \ie\ "strong" no-slip case (see \autoref{fig:LBC_shlat}) creating a large viscous boundary layer that 
    101101      allows a reduced transport through the strait. 
    102102    } 
     
    117117      set to zero, and the total residual for all the lakes, if 
    118118      negative, will be put into the St Laurence Seaway in the area 
    119       shown.  
     119      shown. 
    120120    } 
    121121  \end{center} 
     
    141141to zero and put the residual flux into the ocean. 
    142142 
    143 Prior to NEMO 4 the locations of inland seas and lakes was set via 
    144 hardcoded indices for various ORCA configurations. From NEMO 4 onwards 
     143Prior to \NEMO\ 4 the locations of inland seas and lakes was set via 
     144hardcoded indices for various ORCA configurations. From \NEMO\ 4 onwards 
    145145the inland seas and lakes are defined using mask fields in the 
    146146domain configuration file. The options are as follows. 
     
    189189 
    190190There is a python routine to create the closea\_mask fields and append 
    191 them to the domain configuration file in the utils/tools/DOMAINcfg directory.  
    192  
    193 % ================================================================ 
    194 % Sub-Domain Functionality  
     191them to the domain configuration file in the utils/tools/DOMAINcfg directory. 
     192 
     193% ================================================================ 
     194% Sub-Domain Functionality 
    195195% ================================================================ 
    196196\section{Sub-domain functionality} 
     
    205205subsetting operates for the j-direction only and works by optionally looking for and using 
    206206a global file attribute (named: \np{open\_ocean\_jstart}) to determine the starting j-row 
    207 for input.  The use of this option is best explained with an example:  
     207for input.  The use of this option is best explained with an example: 
    208208\medskip 
    209209 
     
    220220\begin{itemize} 
    221221\item  Add the new attribute to any input files requiring a j-row offset, i.e: 
    222 \begin{cmds}  
    223 ncatted  -a open_ocean_jstart,global,a,d,41 eORCA1_domcfg.nc  
     222\begin{cmds} 
     223ncatted  -a open_ocean_jstart,global,a,d,41 eORCA1_domcfg.nc 
    224224\end{cmds} 
    225225 
    226 \item Add the logical switch \np{ln\_use\_jattr} to \ngn{namcfg} in the configuration 
     226\item Add the logical switch \np{ln\_use\_jattr} to \nam{cfg} in the configuration 
    227227namelist (if it is not already there) and set \np{.true.} 
    228228\end{itemize} 
     
    238238\end{cmds} 
    239239 
    240 The domain configuration file is unique in this respect since it also contains the value 
    241 of \texttt{jpjglo} that is read and used by the model. Any other global, 2D and 3D, 
    242 netcdf, input field can be prepared for use in a reduced domain by adding the 
    243 \texttt{open\_ocean\_jstart} attribute to the file's  global attributes. In particular 
    244 this is true for any field that is read by \NEMO using the following optional argument to 
     240The domain configuration file is unique in this respect since it also contains the value of \jp{jpjglo} 
     241that is read and used by the model. 
     242Any other global, 2D and 3D, netcdf, input field can be prepared for use in a reduced domain by adding the 
     243\texttt{open\_ocean\_jstart} attribute to the file's global attributes. 
     244In particular this is true for any field that is read by \NEMO\ using the following optional argument to 
    245245the appropriate call to \np{iom\_get}. 
     246 
    246247\begin{forlines} 
    247248lrowattr=ln_use_jattr 
     
    294295 
    295296The numerical reproducibility of simulations on distributed memory parallel computers is a critical issue. 
    296 In particular, within NEMO global summation of distributed arrays is most susceptible to rounding errors, 
     297In particular, within \NEMO\ global summation of distributed arrays is most susceptible to rounding errors, 
    297298and their propagation and accumulation cause uncertainty in final simulation reproducibility on 
    298299different numbers of processors. 
    299300To avoid so, based on \citet{he.ding_JS01} review of different technics, 
    300301we use a so called self-compensated summation method. 
    301 The idea is to estimate the roundoff error, store it in a buffer, and then add it back in the next addition.  
     302The idea is to estimate the roundoff error, store it in a buffer, and then add it back in the next addition. 
    302303 
    303304Suppose we need to calculate $b = a_1 + a_2 + a_3$. 
     
    317318The self-compensated summation method should be used in all summation in i- and/or j-direction. 
    318319See \mdl{closea} module for an example. 
    319 Note also that this implementation may be sensitive to the optimization level.  
     320Note also that this implementation may be sensitive to the optimization level. 
    320321 
    321322\subsection{MPP scalability} 
     
    339340This alternative method should give identical results to the default \textsc{ALLGATHER} method and 
    340341is recommended for large values of \np{jpni}. 
    341 The new method is activated by setting \np{ln\_nnogather} to be true (\ngn{nammpp}). 
     342The new method is activated by setting \np{ln\_nnogather} to be true (\nam{mpp}). 
    342343The reproducibility of results using the two methods should be confirmed for each new, 
    343344non-reference configuration. 
     
    350351%--------------------------------------------namctl------------------------------------------------------- 
    351352 
    352 \nlst{namctl}  
     353\nlst{namctl} 
    353354%-------------------------------------------------------------------------------------------------------------- 
    354355 
    355 Options are defined through the  \ngn{namctl} namelist variables. 
     356Options are defined through the  \nam{ctl} namelist variables. 
    356357 
    357358\subsection{Vector optimisation} 
     
    360361This is very a very efficient way to increase the length of vector calculations and thus 
    361362to speed up the model on vector computers. 
    362   
     363 
    363364% Add here also one word on NPROMA technique that has been found useless, since compiler have made significant progress during the last decade. 
    364   
     365 
    365366% Add also one word on NEC specific optimisation (Novercheck option for example) 
    366   
     367 
    367368\subsection{Control print} 
    368369 
     
    411412at a suitably long interval. For example: 
    412413 
    413 \begin{verbatim}      
     414\begin{verbatim} 
    414415       sn_cfctl%ptimincr  = 25 
    415416\end{verbatim} 
    416417 
    417 will carry out the global communications and write the information every 25 timesteps. This  
     418will carry out the global communications and write the information every 25 timesteps. This 
    418419increment also applies to the time.step file which is otherwise updated every timestep. 
    419420 
Note: See TracChangeset for help on using the changeset viewer.