Changeset 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO/subfiles/chap_misc.tex
- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc
-
Property
svn:externals
set to
^/utils/badges badges
^/utils/logos logos
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex
- Property svn:ignore deleted
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO
-
Property
svn:externals
set to
^/utils/figures/NEMO figures
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO/subfiles
- Property svn:ignore
-
old new 1 *.aux 2 *.bbl 3 *.blg 4 *.dvi 5 *.fdb* 6 *.fls 7 *.idx 1 *.ind 8 2 *.ilg 9 *.ind10 *.log11 *.maf12 *.mtc*13 *.out14 *.pdf15 *.toc16 _minted-*
-
- Property svn:ignore
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO/subfiles/chap_misc.tex
r11339 r13463 2 2 3 3 \begin{document} 4 % ================================================================ 5 % Chapter --- Miscellaneous Topics 6 % ================================================================ 4 7 5 \chapter{Miscellaneous Topics} 8 6 \label{chap:MISC} 9 7 10 \minitoc 11 12 \newpage 13 14 % ================================================================ 15 % Representation of Unresolved Straits 16 % ================================================================ 8 \thispagestyle{plain} 9 10 \chaptertoc 11 12 \paragraph{Changes record} ~\\ 13 14 {\footnotesize 15 \begin{tabularx}{\textwidth}{l||X|X} 16 Release & Author(s) & Modifications \\ 17 \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 ...} 22 \end{tabularx} 23 } 24 25 \clearpage 26 27 %% ================================================================================================= 17 28 \section{Representation of unresolved straits} 18 29 \label{sec:MISC_strait} … … 27 38 balance the net evaporation occurring over the Mediterranean region. 28 39 This problem occurs even in eddy permitting simulations. 29 For example, in ORCA 1/4\deg several straits of the Indonesian archipelago (Ombai, Lombok...)40 For example, in ORCA 1/4\deg\ several straits of the Indonesian archipelago (Ombai, Lombok...) 30 41 are much narrow than even a single ocean grid-point. 31 42 32 We describe briefly here the two methods that can be used in \NEMO to handle such43 We describe briefly here the two methods that can be used in \NEMO\ to handle such 33 44 improperly resolved straits. The methods consist of opening the strait while ensuring 34 45 that the mass exchanges through the strait are not too large by either artificially … … 36 47 lateral friction. 37 48 38 % ------------------------------------------------------------------------------------------------------------- 39 % Hand made geometry changes 40 % ------------------------------------------------------------------------------------------------------------- 49 %% ================================================================================================= 41 50 \subsection{Hand made geometry changes} 42 51 \label{subsec:MISC_strait_hand} … … 46 55 (\autoref{fig:MISC_strait_hand}). This technique is sometime called "partially open face" 47 56 or "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 the57 (\ie\ change the value of the horizontal scale factors at $u$- or $v$-point) but not the 49 58 volume of the $T$-cell. Indeed, reducing the volume of strait $T$-cell can easily produce 50 59 a numerical instability at that grid point which would require a reduction of the model … … 53 62 \begin{itemize} 54 63 55 \item Add \texttt{e1e2u} and \texttt{e1e2v} arrays to the \np{cn \_domcfg} file. These 2D64 \item Add \texttt{e1e2u} and \texttt{e1e2v} arrays to the \np{cn_domcfg}{cn\_domcfg} file. These 2D 56 65 arrays should contain the products of the unaltered values of: $\texttt{e1u}*\texttt{e2u}$ 57 66 and $\texttt{e1u}*\texttt{e2v}$ respectively. That is the original surface areas of $u$- 58 67 and $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 the60 \np{cn \_domcfg} file will suppress this calculation and use the supplied fields instead.68 within the \NEMO\ code but the presence of \texttt{e1e2u} and \texttt{e1e2v} in the 69 \np{cn_domcfg}{cn\_domcfg} file will suppress this calculation and use the supplied fields instead. 61 70 If the model domain is provided by user-supplied code in \mdl{usrdef\_hgr}, then this 62 71 routine should also return \texttt{e1e2u} and \texttt{e1e2v} and set the integer return … … 64 73 will suppress the calculation of the areas. 65 74 66 \item Change values of \texttt{e2u} or \texttt{e1v} (either in the \np{cn \_domcfg} file or75 \item Change values of \texttt{e2u} or \texttt{e1v} (either in the \np{cn_domcfg}{cn\_domcfg} file or 67 76 via code in \mdl{usrdef\_hgr}), whereever a Strait reduction is required. The choice of 68 77 whether 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 (\eg78 Strait in question is North-South orientated (\eg\ Gibraltar) or East-West orientated (\eg 70 79 Lombok). 71 80 72 81 \end{itemize} 73 74 82 75 83 The second method is to increase the viscous boundary layer thickness by a local increase … … 84 92 \texttt{fmask} for any other configuration. 85 93 86 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>87 94 \begin{figure}[!tbp] 88 \begin{center} 89 \includegraphics[width=\textwidth]{Fig_Gibraltar} 90 \includegraphics[width=\textwidth]{Fig_Gibraltar2} 91 \caption{ 92 \protect\label{fig:MISC_strait_hand} 93 Example of the Gibraltar strait defined in a $1^{\circ} \times 1^{\circ}$ mesh. 94 \textit{Top}: using partially open cells. 95 The meridional scale factor at $v$-point is reduced on both sides of the strait to account for 96 the real width of the strait (about 20 km). 97 Note that the scale factors of the strait $T$-point remains unchanged. 98 \textit{Bottom}: using viscous boundary layers. 99 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 101 allows a reduced transport through the strait. 102 } 103 \end{center} 95 \centering 96 \includegraphics[width=0.66\textwidth]{MISC_Gibraltar} 97 \includegraphics[width=0.66\textwidth]{MISC_Gibraltar2} 98 \caption[Two methods to defined the Gibraltar strait]{ 99 Example of the Gibraltar strait defined in a 1\deg\ $\times$ 1\deg\ mesh. 100 \textit{Top}: using partially open cells. 101 The meridional scale factor at $v$-point is reduced on both sides of the strait to 102 account for the real width of the strait (about 20 km). 103 Note that the scale factors of the strait $T$-point remains unchanged. 104 \textit{Bottom}: using viscous boundary layers. 105 The four fmask parameters along the strait coastlines are set to a value larger than 4, 106 \ie\ "strong" no-slip case (see \autoref{fig:LBC_shlat}) creating a large viscous boundary layer 107 that allows a reduced transport through the strait.} 108 \label{fig:MISC_strait_hand} 104 109 \end{figure} 105 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 106 107 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 110 108 111 \begin{figure}[!tbp] 109 \begin{center} 110 \includegraphics[width=\textwidth]{Fig_closea_mask_example} 111 \caption{ 112 \protect\label{fig:closea_mask_example} 113 Example of mask fields for the closea module. \textit{Left}: a 114 closea\_mask field; \textit{Right}: a closea\_mask\_rnf 115 field. In this example, if ln\_closea is set to .true., the mean 116 freshwater flux over each of the American Great Lakes will be 117 set to zero, and the total residual for all the lakes, if 118 negative, will be put into the St Laurence Seaway in the area 119 shown. 120 } 121 \end{center} 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} 122 123 \end{figure} 123 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 124 125 % ================================================================ 126 % Closed seas 127 % ================================================================ 128 \section[Closed seas (\textit{closea.F90})] 129 {Closed seas (\protect\mdl{closea})} 124 125 %% ================================================================================================= 126 \section[Closed seas (\textit{closea.F90})]{Closed seas (\protect\mdl{closea})} 130 127 \label{sec:MISC_closea} 131 128 … … 141 138 to zero and put the residual flux into the ocean. 142 139 143 Prior to NEMO4 the locations of inland seas and lakes was set via144 hardcoded indices for various ORCA configurations. From NEMO4 onwards140 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 145 142 the inland seas and lakes are defined using mask fields in the 146 143 domain configuration file. The options are as follows. 147 144 148 145 \begin{enumerate} 149 \item {{\bfseries No ``closea\_mask'' field is included in domain configuration146 \item {{\bfseries No ``closea\_mask'' field is included in domain configuration 150 147 file.} In this case the closea module does nothing.} 151 148 152 \item {{\bfseries A field called closea\_mask is included in the domain149 \item {{\bfseries A field called closea\_mask is included in the domain 153 150 configuration file and ln\_closea=.false. in namelist namcfg.} In this 154 151 case the inland seas defined by the closea\_mask field are filled in … … 156 153 closea\_mask that is nonzero is set to be a land point.} 157 154 158 \item {{\bfseries A field called closea\_mask is included in the domain155 \item {{\bfseries A field called closea\_mask is included in the domain 159 156 configuration file and ln\_closea=.true. in namelist namcfg.} Each 160 157 inland sea or group of inland seas is set to a positive integer value 161 in the closea\_mask field (see Figure \ref{fig:closea_mask_example}158 in the closea\_mask field (see \autoref{fig:MISC_closea_mask_example} 162 159 for an example). The net surface flux over each inland sea or group of 163 160 inland seas is set to zero each timestep and the residual flux is … … 165 162 closea\_mask is zero).} 166 163 167 \item {{\bfseries Fields called closea\_mask and closea\_mask\_rnf are164 \item {{\bfseries Fields called closea\_mask and closea\_mask\_rnf are 168 165 included in the domain configuration file and ln\_closea=.true. in 169 166 namelist namcfg.} This option works as for option 3, except that if … … 174 171 by the closea\_mask\_rnf field. Each mapping is defined by a positive 175 172 integer value for the inland sea(s) and the corresponding runoff 176 points. An example is given in Figure177 \ ref{fig:closea_mask_example}. If no mapping is provided for a173 points. An example is given in 174 \autoref{fig:MISC_closea_mask_example}. If no mapping is provided for a 178 175 particular inland sea then the residual is spread over the global 179 176 ocean.} 180 177 181 \item {{\bfseries Fields called closea\_mask and closea\_mask\_emp are178 \item {{\bfseries Fields called closea\_mask and closea\_mask\_emp are 182 179 included in the domain configuration file and ln\_closea=.true. in 183 180 namelist namcfg.} This option works the same as option 4 except that … … 189 186 190 187 There 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 195 % ================================================================ 188 them to the domain configuration file in the utils/tools/DOMAINcfg directory. 189 190 %% ================================================================================================= 196 191 \section{Sub-domain functionality} 197 192 \label{sec:MISC_zoom} 198 193 194 %% ================================================================================================= 199 195 \subsection{Simple subsetting of input files via NetCDF attributes} 200 196 … … 204 200 maintain different sets of input fields for use with or without active ice cavities. This 205 201 subsetting operates for the j-direction only and works by optionally looking for and using 206 a global file attribute (named: \np{open \_ocean\_jstart}) to determine the starting j-row207 for input. The use of this option is best explained with an example: 202 a global file attribute (named: \np{open_ocean_jstart}{open\_ocean\_jstart}) to determine the starting j-row 203 for input. The use of this option is best explained with an example: 208 204 \medskip 209 205 … … 211 207 configuration using the extended grid domain configuration file: \ifile{eORCA1\_domcfg.nc} 212 208 This file define a horizontal domain of 362x332. The first row with 213 open ocean wet points in the non-isf bathymetry for this set is row 42 (\fortran indexing)214 then the formally correct setting for \np{open \_ocean\_jstart} is 41. Using this value as209 open ocean wet points in the non-isf bathymetry for this set is row 42 (\fortran\ indexing) 210 then the formally correct setting for \np{open_ocean_jstart}{open\_ocean\_jstart} is 41. Using this value as 215 211 the first row to be read will result in a 362x292 domain which is the same size as the 216 212 original ORCA1 domain. Thus the extended domain configuration file can be used with all … … 219 215 220 216 \begin{itemize} 221 \item 222 \begin{cmds} 223 ncatted -a open_ocean_jstart,global,a,d,41 eORCA1_domcfg.nc 217 \item Add the new attribute to any input files requiring a j-row offset, i.e: 218 \begin{cmds} 219 ncatted -a open_ocean_jstart,global,a,d,41 eORCA1_domcfg.nc 224 220 \end{cmds} 225 221 226 \item Add the logical switch \np{ln \_use\_jattr} to \ngn{namcfg} in the configuration227 namelist (if it is not already there) and set \ np{.true.}222 \item Add the logical switch \np{ln_use_jattr}{ln\_use\_jattr} to \nam{cfg}{cfg} in the configuration 223 namelist (if it is not already there) and set \forcode{.true.} 228 224 \end{itemize} 229 225 230 226 \noindent Note that with this option, the j-size of the global domain is (extended 231 j-size minus \np{open \_ocean\_jstart} + 1 ) and this must match the \texttt{jpjglo} value227 j-size minus \np{open_ocean_jstart}{open\_ocean\_jstart} + 1 ) and this must match the \texttt{jpjglo} value 232 228 for the configuration. This means an alternative version of \ifile{eORCA1\_domcfg.nc} must 233 be created for when \np{ln \_use\_jattr} is active. The \texttt{ncap2} tool provides a229 be created for when \np{ln_use_jattr}{ln\_use\_jattr} is active. The \texttt{ncap2} tool provides a 234 230 convenient way of achieving this: 235 231 … … 238 234 \end{cmds} 239 235 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 245 the appropriate call to \np{iom\_get}. 236 The domain configuration file is unique in this respect since it also contains the value of \jp{jpjglo} 237 that is read and used by the model. 238 Any other global, 2D and 3D, netcdf, input field can be prepared for use in a reduced domain by adding the 239 \texttt{open\_ocean\_jstart} attribute to the file's global attributes. 240 In particular this is true for any field that is read by \NEMO\ using the following optional argument to 241 the appropriate call to \np{iom_get}{iom\_get}. 242 246 243 \begin{forlines} 247 244 lrowattr=ln_use_jattr … … 256 253 conditions. Experimenting with this remains an exercise for the user. 257 254 258 % ================================================================ 259 % Accuracy and Reproducibility 260 % ================================================================ 261 \section[Accuracy and reproducibility (\textit{lib\_fortran.F90})] 262 {Accuracy and reproducibility (\protect\mdl{lib\_fortran})} 255 %% ================================================================================================= 256 \section[Accuracy and reproducibility (\textit{lib\_fortran.F90})]{Accuracy and reproducibility (\protect\mdl{lib\_fortran})} 263 257 \label{sec:MISC_fortran} 264 258 265 \subsection[Issues with intrinsinc SIGN function (\texttt{\textbf{key\_nosignedzero}})] 266 {Issues with intrinsinc SIGN function (\protect\key{nosignedzero})}259 %% ================================================================================================= 260 \subsection[Issues with intrinsinc SIGN function (\texttt{\textbf{key\_nosignedzero}})]{Issues with intrinsinc SIGN function (\protect\key{nosignedzero})} 267 261 \label{subsec:MISC_sign} 268 262 269 The SIGN(A, B) is the \fortran intrinsic function delivers the magnitude of A with the sign of B.263 The SIGN(A, B) is the \fortran\ intrinsic function delivers the magnitude of A with the sign of B. 270 264 For example, SIGN(-3.0,2.0) has the value 3.0. 271 265 The problematic case is when the second argument is zero, because, on platforms that support IEEE arithmetic, … … 279 273 and the processor is capable of distinguishing between positive and negative zero, 280 274 and B is negative real zero. 281 Then SIGN delivers a negative result where, under \fninety rules, it used to return a positive result.275 Then SIGN delivers a negative result where, under \fninety\ rules, it used to return a positive result. 282 276 This change may be especially sensitive for the ice model, 283 277 so we overwrite the intrinsinc function with our own function simply performing : \\ … … 289 283 some computers/compilers. 290 284 291 285 %% ================================================================================================= 292 286 \subsection{MPP reproducibility} 293 287 \label{subsec:MISC_glosum} 294 288 295 289 The numerical reproducibility of simulations on distributed memory parallel computers is a critical issue. 296 In particular, within NEMOglobal summation of distributed arrays is most susceptible to rounding errors,290 In particular, within \NEMO\ global summation of distributed arrays is most susceptible to rounding errors, 297 291 and their propagation and accumulation cause uncertainty in final simulation reproducibility on 298 292 different numbers of processors. 299 293 To avoid so, based on \citet{he.ding_JS01} review of different technics, 300 294 we 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. 295 The idea is to estimate the roundoff error, store it in a buffer, and then add it back in the next addition. 302 296 303 297 Suppose we need to calculate $b = a_1 + a_2 + a_3$. … … 317 311 The self-compensated summation method should be used in all summation in i- and/or j-direction. 318 312 See \mdl{closea} module for an example. 319 Note also that this implementation may be sensitive to the optimization level. 320 313 Note also that this implementation may be sensitive to the optimization level. 314 315 %% ================================================================================================= 321 316 \subsection{MPP scalability} 322 317 \label{subsec:MISC_mppsca} … … 338 333 be set at all the locations actually required by each individual for the fold operation. 339 334 This alternative method should give identical results to the default \textsc{ALLGATHER} method and 340 is recommended for large values of \np{jpni} .341 The new method is activated by setting \np{ln \_nnogather} to be true (\ngn{nammpp}).335 is recommended for large values of \np{jpni}{jpni}. 336 The new method is activated by setting \np{ln_nnogather}{ln\_nnogather} to be true (\nam{mpp}{mpp}). 342 337 The reproducibility of results using the two methods should be confirmed for each new, 343 338 non-reference configuration. 344 339 345 % ================================================================ 346 % Model optimisation, Control Print and Benchmark 347 % ================================================================ 340 %% ================================================================================================= 348 341 \section{Model optimisation, control print and benchmark} 349 342 \label{sec:MISC_opt} 350 %--------------------------------------------namctl------------------------------------------------------- 351 352 \nlst{namctl} 353 %-------------------------------------------------------------------------------------------------------------- 354 355 Options are defined through the \ngn{namctl} namelist variables. 356 343 344 \begin{listing} 345 \nlst{namctl} 346 \caption{\forcode{&namctl}} 347 \label{lst:namctl} 348 \end{listing} 349 350 Options are defined through the \nam{ctl}{ctl} namelist variables. 351 352 %% ================================================================================================= 357 353 \subsection{Vector optimisation} 358 354 … … 360 356 This is very a very efficient way to increase the length of vector calculations and thus 361 357 to speed up the model on vector computers. 362 358 363 359 % Add here also one word on NPROMA technique that has been found useless, since compiler have made significant progress during the last decade. 364 360 365 361 % Add also one word on NEC specific optimisation (Novercheck option for example) 366 367 \subsection{Control print} 368 369 The \np{ln\_ctl} switch was originally used as a debugging option in two modes: 370 371 \begin{enumerate} 372 \item{\np{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and 373 ZDF modules. 374 This option is very helpful when diagnosing the origin of an undesired change in model results. } 375 376 \item{also \np{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between 377 mono and multi processor runs.} 362 363 %% ================================================================================================= 364 \subsection{Status and debugging information output} 365 366 367 NEMO can produce a range of text information output either: in the main output 368 file (ocean.output) written by the normal reporting processor (narea == 1) or various 369 specialist output files (e.g. layout.dat, run.stat, tracer.stat etc.). Some, for example 370 run.stat and tracer.stat, contain globally collected values for which a single file is 371 sufficient. Others, however, contain information that could, potentially, be different 372 for each processing region. For computational efficiency, the default volume of text 373 information produced is reduced to just a few files from the narea=1 processor. 374 375 When 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 377 on-off switches this structure also allows selection of a range of processors for 378 individual reporting (where appropriate) and a time-increment option to restrict 379 globally collected values to specified time-step increments. 380 381 Most options within the structure are influenced by the top-level switches shown here 382 with their default settings: 383 384 \begin{verbatim} 385 sn_cfctl%l_allon = .FALSE. ! IF T activate all options. If F deactivate all unless l_config is T 386 sn_cfctl%l_config = .TRUE. ! IF .true. then control which reports are written with the following 387 \end{verbatim} 388 389 The first switch is a convenience option which can be used to switch on and off all 390 sub-options. However, if it is false then switching off all sub-options is only done 391 if \texttt{sn_cfctl%l\_config} is also false. Specifically, the logic is: 392 393 \begin{verbatim} 394 IF ( sn_cfctl%l_allon ) THEN 395 set all suboptions .TRUE. 396 and set procmin, procmax and procincr so that all regions are selected ([0,10000000,1], respectively) 397 ELSEIF ( sn_cfctl%l_config ) THEN 398 honour individual settings of the suboptions from the namelist 399 ELSE 400 set all suboptions .FALSE. 401 ENDIF 402 \end{verbatim} 403 404 Details of the suboptions follow but first an explanation of the stand-alone option: 405 \texttt{sn_cfctl%l_glochk}. This option modifies the action of the early warning checks 406 carried out in \textt{stpctl.F90}. These checks detect probable numerical instabilites 407 by searching for excessive sea surface heights or velocities and salinity values 408 outside a sensible physical range. If breaches are detected then the default behaviour 409 is to locate and report the local indices of the grid-point in breach. These indices 410 are included in the error message that precedes the model shutdown. When true, 411 \texttt{sn_cfctl%l_glochk} modifies this action by performing a global location of 412 the various minimum and maximum values and the global indices are reported. This has 413 some value in locating the most severe error in cases where the first detected error 414 may not be the worst culprit. 415 416 \subsubsection{Control print suboptions} 417 418 The options that can be individually selected fall into three categories: 419 420 \begin{enumerate} \item{Time step progress information} This category includes 421 \texttt{run.stat} and \texttt{tracer.stat} files which record certain physical and 422 passive tracer metrics (respectively). Typical contents of \texttt{run.stat} include 423 global maximums of ssh, velocity; and global minimums and maximums of temperature 424 and salinity. A netCDF version of \texttt{run.stat} (\texttt{run.stat.nc}) is also 425 produced with the same time-series data and this can easily be expanded to include 426 extra monitoring information. \texttt{tracer.stat} contains the volume-weighted 427 average tracer value for each passive tracer. Collecting these metrics involves 428 global communications and will impact on model efficiency so both these options are 429 disabled by default by setting the respective options, \texttt{sn\_cfctl%runstat} and 430 \texttt{sn\_cfctl%trcstat} to false. A compromise can be made by activating either or 431 both of these options and setting the \texttt{sn\_cfctl%timincr} entry to an integer 432 value greater than one. This increment determines the time-step frequency at which 433 the global metrics are collected and reported. This increment also applies to the 434 time.step file which is otherwise updated every timestep. 435 \item{One-time configuration information/progress logs} 436 437 Some run-time configuration information and limited progress information is always 438 produced by the first ocean process. This includes the \texttt{ocean.output} file 439 which reports on all the namelist options read by the model and remains open to catch 440 any warning or error messages generated during execution. A \texttt{layout.dat} 441 file is also produced which details the MPI-decomposition used by the model. The 442 suboptions: \texttt{sn\_cfctl%oceout} and \texttt{sn\_cfctl%layout} can be used 443 to activate the creation of these files by all ocean processes. For example, 444 when \texttt{sn\_cfctl%oceout} is true all processors produce their own version of 445 \texttt{ocean.output}. All files, beyond the the normal reporting processor (narea == 1), are 446 named with a \_XXXX extension to their name, where XXXX is a 4-digit area number (with 447 leading zeros, if required). This is useful as a debugging aid since all processes can 448 report their local conditions. Note though that these files are buffered on most UNIX 449 systems so bug-hunting efforts using this facility should also utilise the \fortran: 450 451 \begin{verbatim} 452 CALL FLUSH(numout) 453 \end{verbatim} 454 455 statement after any additional write statements to ensure that file contents reflect 456 the last model state. Associated with the \texttt{sn\_cfctl%oceout} option is the 457 additional \texttt{sn\_cfctl%oasout} suboption. This does not activate its own output 458 file but rather activates the writing of addition information regarding the OASIS 459 configuration when coupling via oasis and the sbccpl routine. This information is 460 written to any active \texttt{ocean.output} files. 461 \item{Control sums of trends for debugging} 462 463 NEMO includes an option for debugging reproducibility differences between 464 a MPP and mono-processor runs. This is somewhat dated and clearly only 465 useful for this purpose when dealing with configurations that can be run 466 on a single processor. The full details can be found in this report: \href{ 467 http://forge.ipsl.jussieu.fr/nemo/attachment/wiki/Documentation/prtctl_NEMO_doc_v2.pdf}{The 468 control print option in NEMO} The switches to activate production of the control sums 469 of trends for either the physics or passive tracers are the \texttt{sn\_cfctl%prtctl} 470 and \texttt{sn\_cfctl%prttrc} suboptions, respectively. Although, perhaps, of limited use for its 471 original intention, the ability to produce these control sums of trends in specific 472 areas provides another tool for diagnosing model behaviour. If only the output from a 473 select few regions is required then additional options are available to activate options 474 for only a simple subset of processing regions. These are: \texttt{sn\_cfctl%procmin}, 475 \texttt{sn\_cfctl%procmax} and \texttt{sn\_cfctl%procincr} which can be used to specify 476 the minimum and maximum active areas and the increment. The default values are set 477 such that all regions will be active. Note this subsetting can also be used to limit 478 which additional \texttt{ocean.output} and \texttt{layout.dat} files are produced if 479 those suboptions are active. 480 378 481 \end{enumerate} 379 482 380 However, in recent versions it has also been used to force all processors to assume the 381 reporting role. Thus when \np{ln\_ctl} is true all processors produce their own versions 382 of files such as: ocean.output, layout.dat, etc. All such files, beyond the the normal 383 reporting processor (narea == 1), are named with a \_XXXX extension to their name, where 384 XXXX is a 4-digit area number (with leading zeros, if required). Other reporting files 385 such as run.stat (and its netCDF counterpart: run.stat.nc) and tracer.stat contain global 386 information and are only ever produced by the reporting master (narea == 1). For version 387 4.0 a start has been made to return \np{ln\_ctl} to its original function by introducing 388 a new control structure which allows finer control over which files are produced. This 389 feature is still evolving but it does already allow the user to: select individually the 390 production of run.stat and tracer.stat files and to toggle the production of other files 391 on processors other than the reporting master. These other reporters can be a simple 392 subset of processors as defined by a minimum, maximum and incremental processor number. 393 394 Note, that production of the run.stat and tracer.stat files require global communications. 395 For run.stat, these are global min and max operations to find metrics such as the gloabl 396 maximum velocity. For tracer.stat these are global sums of tracer fields. To improve model 397 performance these operations are disabled by default and, where necessary, any use of the 398 global values have been replaced with local calculations. For example, checks on the CFL 399 criterion are now done on the local domain and only reported if a breach is detected. 400 401 Experienced users may wish to still monitor this information as a check on model progress. 402 If so, the best compromise will be to activate the files with: 403 404 \begin{verbatim} 405 sn_cfctl%l_config = .TRUE. 406 sn_cfctl%l_runstat = .TRUE. 407 sn_cfctl%l_trcstat = .TRUE. 408 \end{verbatim} 409 410 and to use the new time increment setting to ensure the values are collected and reported 411 at a suitably long interval. For example: 412 413 \begin{verbatim} 414 sn_cfctl%ptimincr = 25 415 \end{verbatim} 416 417 will carry out the global communications and write the information every 25 timesteps. This 418 increment also applies to the time.step file which is otherwise updated every timestep. 419 420 % ================================================================ 421 \biblio 422 423 \pindex 483 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 498 499 500 501 \subinc{\input{../../global/epilogue}} 424 502 425 503 \end{document}
Note: See TracChangeset
for help on using the changeset viewer.