- Timestamp:
- 2019-10-25T16:27:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11470_HPC_12_mpi3/doc
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11470_HPC_12_mpi3/doc
-
Property
svn:externals
set to
^/utils/badges badges
^/utils/logos logos
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_r11470_HPC_12_mpi3/doc/latex
- Property svn:ignore deleted
-
NEMO/branches/2019/dev_r11470_HPC_12_mpi3/doc/latex/NEMO
-
Property
svn:externals
set to
^/utils/figures/NEMO figures
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_r11470_HPC_12_mpi3/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_r11470_HPC_12_mpi3/doc/latex/NEMO/subfiles/chap_misc.tex
r11435 r11799 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 8 \thispagestyle{plain} 9 10 10 \chaptertoc 11 11 12 \newpage 13 14 % ================================================================ 15 % Representation of Unresolved Straits 16 % ================================================================ 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 … … 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} … … 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 68 within the \NEMO\ code but the presence of \texttt{e1e2u} and \texttt{e1e2v} in the 60 \np{cn \_domcfg} file will suppress this calculation and use the supplied fields instead.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 … … 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]{Fig_Gibraltar} 97 \includegraphics[width=0.66\textwidth]{Fig_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]{Fig_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 … … 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 … … 191 188 them to the domain configuration file in the utils/tools/DOMAINcfg directory. 192 189 193 % ================================================================ 194 % Sub-Domain Functionality 195 % ================================================================ 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-row202 a global file attribute (named: \np{open_ocean_jstart}{open\_ocean\_jstart}) to determine the starting j-row 207 203 for input. The use of this option is best explained with an example: 208 204 \medskip … … 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 217 \item Add the new attribute to any input files requiring a j-row offset, i.e: 222 218 \begin{cmds} 223 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 \nam{cfg} 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 … … 243 239 \texttt{open\_ocean\_jstart} attribute to the file's global attributes. 244 240 In particular 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}.241 the appropriate call to \np{iom_get}{iom\_get}. 246 242 247 243 \begin{forlines} … … 257 253 conditions. Experimenting with this remains an exercise for the user. 258 254 259 % ================================================================ 260 % Accuracy and Reproducibility 261 % ================================================================ 262 \section[Accuracy and reproducibility (\textit{lib\_fortran.F90})] 263 {Accuracy and reproducibility (\protect\mdl{lib\_fortran})} 255 %% ================================================================================================= 256 \section[Accuracy and reproducibility (\textit{lib\_fortran.F90})]{Accuracy and reproducibility (\protect\mdl{lib\_fortran})} 264 257 \label{sec:MISC_fortran} 265 258 266 \subsection[Issues with intrinsinc SIGN function (\texttt{\textbf{key\_nosignedzero}})] 267 {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})} 268 261 \label{subsec:MISC_sign} 269 262 270 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. 271 264 For example, SIGN(-3.0,2.0) has the value 3.0. 272 265 The problematic case is when the second argument is zero, because, on platforms that support IEEE arithmetic, … … 280 273 and the processor is capable of distinguishing between positive and negative zero, 281 274 and B is negative real zero. 282 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. 283 276 This change may be especially sensitive for the ice model, 284 277 so we overwrite the intrinsinc function with our own function simply performing : \\ … … 290 283 some computers/compilers. 291 284 292 285 %% ================================================================================================= 293 286 \subsection{MPP reproducibility} 294 287 \label{subsec:MISC_glosum} … … 320 313 Note also that this implementation may be sensitive to the optimization level. 321 314 315 %% ================================================================================================= 322 316 \subsection{MPP scalability} 323 317 \label{subsec:MISC_mppsca} … … 339 333 be set at all the locations actually required by each individual for the fold operation. 340 334 This alternative method should give identical results to the default \textsc{ALLGATHER} method and 341 is recommended for large values of \np{jpni} .342 The new method is activated by setting \np{ln \_nnogather} to be true (\nam{mpp}).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}). 343 337 The reproducibility of results using the two methods should be confirmed for each new, 344 338 non-reference configuration. 345 339 346 % ================================================================ 347 % Model optimisation, Control Print and Benchmark 348 % ================================================================ 340 %% ================================================================================================= 349 341 \section{Model optimisation, control print and benchmark} 350 342 \label{sec:MISC_opt} 351 %--------------------------------------------namctl------------------------------------------------------- 352 353 \nlst{namctl} 354 %-------------------------------------------------------------------------------------------------------------- 355 356 Options are defined through the \nam{ctl} namelist variables. 357 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 %% ================================================================================================= 358 353 \subsection{Vector optimisation} 359 354 … … 366 361 % Add also one word on NEC specific optimisation (Novercheck option for example) 367 362 363 %% ================================================================================================= 368 364 \subsection{Control print} 369 365 370 The \np{ln \_ctl} switch was originally used as a debugging option in two modes:366 The \np{ln_ctl}{ln\_ctl} switch was originally used as a debugging option in two modes: 371 367 372 368 \begin{enumerate} 373 \item {\np{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and369 \item {\np{ln_ctl}{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and 374 370 ZDF modules. 375 371 This option is very helpful when diagnosing the origin of an undesired change in model results. } 376 372 377 \item {also \np{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between373 \item {also \np{ln_ctl}{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between 378 374 mono and multi processor runs.} 379 375 \end{enumerate} 380 376 381 377 However, in recent versions it has also been used to force all processors to assume the 382 reporting role. Thus when \np{ln \_ctl} is true all processors produce their own versions378 reporting role. Thus when \np{ln_ctl}{ln\_ctl} is true all processors produce their own versions 383 379 of files such as: ocean.output, layout.dat, etc. All such files, beyond the the normal 384 380 reporting processor (narea == 1), are named with a \_XXXX extension to their name, where … … 386 382 such as run.stat (and its netCDF counterpart: run.stat.nc) and tracer.stat contain global 387 383 information and are only ever produced by the reporting master (narea == 1). For version 388 4.0 a start has been made to return \np{ln \_ctl} to its original function by introducing384 4.0 a start has been made to return \np{ln_ctl}{ln\_ctl} to its original function by introducing 389 385 a new control structure which allows finer control over which files are produced. This 390 386 feature is still evolving but it does already allow the user to: select individually the … … 419 415 increment also applies to the time.step file which is otherwise updated every timestep. 420 416 421 % ================================================================ 422 \biblio 423 424 \pindex 417 \onlyinsubfile{\input{../../global/epilogue}} 425 418 426 419 \end{document}
Note: See TracChangeset
for help on using the changeset viewer.