Changeset 12063 for NEMO/branches/2019/dev_ASINTER-01-05_merged/doc/latex/NEMO/subfiles/chap_DIA.tex
- Timestamp:
- 2019-12-05T11:46:38+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_ASINTER-01-05_merged/doc
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_ASINTER-01-05_merged/doc
-
Property
svn:externals
set to
^/utils/badges badges
^/utils/logos logos
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_ASINTER-01-05_merged/doc/latex
- Property svn:ignore deleted
-
NEMO/branches/2019/dev_ASINTER-01-05_merged/doc/latex/NEMO
-
Property
svn:externals
set to
^/utils/figures/NEMO figures
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_ASINTER-01-05_merged/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_ASINTER-01-05_merged/doc/latex/NEMO/subfiles/chap_DIA.tex
r11263 r12063 2 2 3 3 \begin{document} 4 % ================================================================ 5 % Chapter I/O & Diagnostics 6 % ================================================================ 4 7 5 \chapter{Output and Diagnostics (IOM, DIA, TRD, FLO)} 8 6 \label{chap:DIA} 9 7 10 \minitoc 11 12 \newpage 13 14 % ================================================================ 15 % Old Model Output 16 % ================================================================ 17 \section{Old model output (default)} 8 % {\em 4.0} & {\em Mirek Andrejczuk, Massimiliano Drudi} & {\em } \\ 9 % {\em } & {\em Dorotea Iovino, Nicolas Martin} & {\em } \\ 10 % {\em 3.6} & {\em Gurvan Madec, Sebastien Masson } & {\em } \\ 11 % {\em 3.4} & {\em Gurvan Madec, Rachid Benshila, Andrew Coward } & {\em } \\ 12 % {\em } & {\em Christian Ethe, Sebastien Masson } & {\em } \\ 13 14 \thispagestyle{plain} 15 16 \chaptertoc 17 18 \paragraph{Changes record} ~\\ 19 20 {\footnotesize 21 \begin{tabularx}{\textwidth}{l||X|X} 22 Release & Author(s) & Modifications \\ 23 \hline 24 {\em 4.0} & {\em ...} & {\em ...} \\ 25 {\em 3.6} & {\em ...} & {\em ...} \\ 26 {\em 3.4} & {\em ...} & {\em ...} \\ 27 {\em <=3.4} & {\em ...} & {\em ...} 28 \end{tabularx} 29 } 30 31 \clearpage 32 33 %% ================================================================================================= 34 \section{Model output} 18 35 \label{sec:DIA_io_old} 19 36 … … 28 45 29 46 The output listing and file(s) are predefined but should be checked and eventually adapted to the user's needs. 30 The output listing is stored in the $ocean.output$file.31 The information is printed from within the code on the logical unit $numout$.47 The output listing is stored in the \textit{ocean.output} file. 48 The information is printed from within the code on the logical unit \texttt{numout}. 32 49 To locate these prints, use the UNIX command "\textit{grep -i numout}" in the source code directory. 33 50 … … 38 55 A complete description of the use of this I/O server is presented in the next section. 39 56 40 %\gmcomment{ % start of gmcomment 41 42 % ================================================================ 43 % Diagnostics 44 % ================================================================ 57 %\cmtgm{ % start of gmcomment 58 59 %% ================================================================================================= 45 60 \section{Standard model output (IOM)} 46 61 \label{sec:DIA_iom} 47 62 48 Since version 3.2, iomput is the NEMOoutput interface of choice.63 Since version 3.2, iomput is the \NEMO\ output interface of choice. 49 64 It has been designed to be simple to use, flexible and efficient. 50 The two main purposes of iomput are: 65 The two main purposes of iomput are: 51 66 52 67 \begin{enumerate} 53 \item 54 The complete and flexible control of the output files through external XML files adapted by 68 \item The complete and flexible control of the output files through external XML files adapted by 55 69 the user from standard templates. 56 \item 57 To achieve high performance and scalable output through the optional distribution of 70 \item To achieve high performance and scalable output through the optional distribution of 58 71 all diagnostic output related tasks to dedicated processes. 59 72 \end{enumerate} 60 73 61 The first functionality allows the user to specify, without code changes or recompilation, 74 The first functionality allows the user to specify, without code changes or recompilation, 62 75 aspects of the diagnostic output stream, such as: 63 76 64 77 \begin{itemize} 65 \item 66 The choice of output frequencies that can be different for each file (including real months and years). 67 \item 68 The choice of file contents; includes complete flexibility over which data are written in which files 78 \item The choice of output frequencies that can be different for each file (including real months and years). 79 \item The choice of file contents; includes complete flexibility over which data are written in which files 69 80 (the same data can be written in different files). 70 \item 71 The possibility to split output files at a chosen frequency. 72 \item 73 The possibility to extract a vertical or an horizontal subdomain. 74 \item 75 The choice of the temporal operation to perform, \eg: average, accumulate, instantaneous, min, max and once. 76 \item 77 Control over metadata via a large XML "database" of possible output fields. 81 \item The possibility to split output files at a chosen frequency. 82 \item The possibility to extract a vertical or an horizontal subdomain. 83 \item The choice of the temporal operation to perform, \eg: average, accumulate, instantaneous, min, max and once. 84 \item Control over metadata via a large XML "database" of possible output fields. 78 85 \end{itemize} 79 86 … … 81 88 in a very easy way. 82 89 All details of iomput functionalities are listed in the following subsections. 83 Examples of the XML files that control the outputs can be found in: 90 Examples of the XML files that control the outputs can be found in: 84 91 \path{cfgs/ORCA2_ICE_PISCES/EXPREF/iodef.xml}, 85 92 \path{cfgs/SHARED/field_def_nemo-oce.xml}, … … 88 95 89 96 The second functionality targets output performance when running in parallel (\key{mpp\_mpi}). 90 Iomput provides the possibility to specify N dedicated I/O processes (in addition to the NEMOprocesses)97 Iomput provides the possibility to specify N dedicated I/O processes (in addition to the \NEMO\ processes) 91 98 to collect and write the outputs. 92 99 With an appropriate choice of N by the user, the bottleneck associated with the writing of 93 100 the output files can be greatly reduced. 94 101 95 In version 3.6, the iom\_putinterface depends on96 an external code called \href{https://forge.ipsl.jussieu.fr/ioserver/browser/XIOS/branchs/xios-2.5}{XIOS-2.5} 97 (use of revision 618 or higher is required).102 In version 3.6, the \rou{iom\_put} interface depends on 103 an external code called \href{https://forge.ipsl.jussieu.fr/ioserver/browser/XIOS/branchs/xios-2.5}{XIOS-2.5} 104 %(use of revision 618 or higher is required). 98 105 This new IO server can take advantage of the parallel I/O functionality of NetCDF4 to 99 106 create a single output file and therefore to bypass the rebuilding phase. 100 107 Note that writing in parallel into the same NetCDF files requires that your NetCDF4 library is linked to 101 an HDF5 library that has been correctly compiled (\ie with the configure option $--$enable-parallel).108 an HDF5 library that has been correctly compiled (\ie\ with the configure option $--$enable-parallel). 102 109 Note that the files created by iomput through XIOS are incompatible with NetCDF3. 103 110 All post-processsing and visualization tools must therefore be compatible with NetCDF4 and not only NetCDF3. 104 111 105 112 Even if not using the parallel I/O functionality of NetCDF4, using N dedicated I/O servers, 106 where N is typically much less than the number of NEMOprocessors, will reduce the number of output files created.107 This can greatly reduce the post-processing burden usually associated with using large numbers of NEMOprocessors.113 where N is typically much less than the number of \NEMO\ processors, will reduce the number of output files created. 114 This can greatly reduce the post-processing burden usually associated with using large numbers of \NEMO\ processors. 108 115 Note that for smaller configurations, the rebuilding phase can be avoided, 109 116 even without a parallel-enabled NetCDF4 library, simply by employing only one dedicated I/O server. 110 117 118 %% ================================================================================================= 111 119 \subsection{XIOS: Reading and writing restart file} 112 120 113 XIOS may be used to read single file restart produced by NEMO. Currently only the variables written to114 file \forcode{numror} can be handled by XIOS. To activate restart reading using XIOS, set \np {ln\_xios\_read}\forcode{ = .true.}115 in \textit{namelist\_cfg}. This setting will be ignored when multiple restart files are present, and default NEMO116 functionality will be used for reading. There is no need to change iodef.xml file to use XIOS to read 117 restart, all definitions are done within the NEMO code. For high resolution configuration, however,121 XIOS may be used to read single file restart produced by \NEMO. Currently only the variables written to 122 file \forcode{numror} can be handled by XIOS. To activate restart reading using XIOS, set \np[=.true. ]{ln_xios_read}{ln\_xios\_read} 123 in \textit{namelist\_cfg}. This setting will be ignored when multiple restart files are present, and default \NEMO 124 functionality will be used for reading. There is no need to change iodef.xml file to use XIOS to read 125 restart, all definitions are done within the \NEMO\ code. For high resolution configuration, however, 118 126 there may be a need to add the following line in iodef.xml (xios context): 119 127 … … 122 130 \end{xmllines} 123 131 124 This variable sets timeout for reading. 125 126 If XIOS is to be used to read restart from file generated with an earlier NEMOversion (3.6 for instance),132 This variable sets timeout for reading. 133 134 If XIOS is to be used to read restart from file generated with an earlier \NEMO\ version (3.6 for instance), 127 135 dimension \forcode{z} defined in restart file must be renamed to \forcode{nav_lev}.\\ 128 136 129 XIOS can also be used to write NEMO restart. A namelist parameter \np{nn\_wxios} is used to determine the130 type of restart NEMO will write. If it is set to 0, default NEMO functionality will be used - each131 processor writes its own restart file; if it is set to 1 XIOS will write restart into a single file; 132 for \np {nn\_wxios = 2} the restart will be written by XIOS into multiple files, one for each XIOS server.133 Note, however, that \textbf{ NEMO will not read restart generated by XIOS when \np{nn\_wxios = 2}}. The restart will134 have to be rebuild before continuing the run. This option aims to reduce number of restart files generated by NEMO only,135 and may be useful when there is a need to change number of processors used to run simulation. 137 XIOS can also be used to write \NEMO\ restart. A namelist parameter \np{nn_wxios}{nn\_wxios} is used to determine the 138 type of restart \NEMO\ will write. If it is set to 0, default \NEMO\ functionality will be used - each 139 processor writes its own restart file; if it is set to 1 XIOS will write restart into a single file; 140 for \np[=2]{nn_wxios}{nn\_wxios} the restart will be written by XIOS into multiple files, one for each XIOS server. 141 Note, however, that \textbf{\NEMO\ will not read restart generated by XIOS when \np[=2]{nn_wxios}{nn\_wxios}}. The restart will 142 have to be rebuild before continuing the run. This option aims to reduce number of restart files generated by \NEMO\ only, 143 and may be useful when there is a need to change number of processors used to run simulation. 136 144 137 145 If an additional variable must be written to a restart file, the following steps are needed: 138 \begin{ description}139 \item[step 1:] add variable name to a list of restart variables (in subroutine \rou{iom\_set\_rst\_vars,} \mdl{iom}) and 140 define correct grid for the variable (\forcode{grid_N_3D} - 3D variable, \forcode{grid_N} - 2D variable, \forcode{grid_vector} - 146 \begin{enumerate} 147 \item Add variable name to a list of restart variables (in subroutine \rou{iom\_set\_rst\_vars,} \mdl{iom}) and 148 define correct grid for the variable (\forcode{grid_N_3D} - 3D variable, \forcode{grid_N} - 2D variable, \forcode{grid_vector} - 141 149 1D variable, \forcode{grid_scalar} - scalar), 142 \item[step 2:] add variable to the list of fields written by restart. This can be done either in subroutine 143 \rou{iom\_set\_rstw\_core} (\mdl{iom}) or by calling \rou{iom\_set\_rstw\_active} (\mdl{iom}) with the name of a variable 144 as an argument. This convention follows approach for writing restart using iom, where variables are 150 \item Add variable to the list of fields written by restart. This can be done either in subroutine 151 \rou{iom\_set\_rstw\_core} (\mdl{iom}) or by calling \rou{iom\_set\_rstw\_active} (\mdl{iom}) with the name of a variable 152 as an argument. This convention follows approach for writing restart using iom, where variables are 145 153 written either by \rou{rst\_write} or by calling \rou{iom\_rstput} from individual routines. 146 \end{description} 147 154 \end{enumerate} 148 155 149 156 An older versions of XIOS do not support reading functionality. It's recommended to use at least XIOS2@1451. 150 157 151 158 %% ================================================================================================= 152 159 \subsection{XIOS: XML Inputs-Outputs Server} 153 160 161 %% ================================================================================================= 154 162 \subsubsection{Attached or detached mode?} 155 163 … … 161 169 \xmlline|<variable id="using_server" type="bool"></variable>| 162 170 163 The {\ttfamily using\_server} setting determines whether or not the server will be used in \textit{attached mode} 164 (as a library) [{\ttfamily> false <}] or in \textit{detached mode} 165 (as an external executable on N additional, dedicated cpus) [{\ttfamily > true <}]. 166 The \textit{attached mode} is simpler to use but much less efficient for massively parallel applications. 171 The \texttt{using\_server} setting determines whether or not the server will be used in 172 \textit{attached mode} 173 (as a library) [\texttt{> false <}] or in \textit{detached mode} 174 (as an external executable on N additional, dedicated cpus) [\texttt{ > true <}]. 175 The \textit{attached mode} is simpler to use but much less efficient for 176 massively parallel applications. 167 177 The type of each file can be either ''multiple\_file'' or ''one\_file''. 168 178 169 179 In \textit{attached mode} and if the type of file is ''multiple\_file'', 170 then each NEMOprocess will also act as an IO server and produce its own set of output files.180 then each \NEMO\ process will also act as an IO server and produce its own set of output files. 171 181 Superficially, this emulates the standard behaviour in previous versions. 172 182 However, the subdomain written out by each process does not correspond to … … 180 190 write to its own set of output files. 181 191 If the ''one\_file'' option is chosen then all XIOS processes will collect their longitudinal strips and 182 write (in parallel) to a single output file. 192 write (in parallel) to a single output file. 183 193 Note running in detached mode requires launching a Multiple Process Multiple Data (MPMD) parallel job. 184 194 The following subsection provides a typical example but the syntax will vary in different MPP environments. 185 195 196 %% ================================================================================================= 186 197 \subsubsection{Number of cpu used by XIOS in detached mode} 187 198 188 199 The number of cores used by the XIOS is specified when launching the model. 189 The number of cores dedicated to XIOS should be from \texttildelow1/10 to \texttildelow1/50 of the number of 190 cores dedicated to NEMO.200 The number of cores dedicated to XIOS should be from \texttildelow1/10 to \texttildelow1/50 of the number of 201 cores dedicated to \NEMO. 191 202 Some manufacturers suggest using O($\sqrt{N}$) dedicated IO processors for N processors but 192 this is a general recommendation and not specific to NEMO.203 this is a general recommendation and not specific to \NEMO. 193 204 It is difficult to provide precise recommendations because the optimal choice will depend on 194 the particular hardware properties of the target system 205 the particular hardware properties of the target system 195 206 (parallel filesystem performance, available memory, memory bandwidth etc.) 196 207 and the volume and frequency of data to be created. … … 198 209 \cmd|mpirun -np 62 ./nemo.exe : -np 2 ./xios_server.exe| 199 210 211 %% ================================================================================================= 200 212 \subsubsection{Control of XIOS: the context in iodef.xml} 201 213 202 As well as the {\ttfamily using\_server} flag, other controls on the use of XIOS are set in the XIOS context in iodef.xml. 214 As well as the \texttt{using\_server} flag, other controls on the use of XIOS are set in 215 the XIOS context in \textit{iodef.xml}. 203 216 See the XML basics section below for more details on XML syntax and rules. 204 217 205 218 \begin{table} 206 \scriptsize207 219 \begin{tabularx}{\textwidth}{|lXl|} 208 220 \hline … … 213 225 \hline 214 226 buffer\_size & 215 buffer size used by XIOS to send data from NEMOto XIOS.227 buffer size used by XIOS to send data from \NEMO\ to XIOS. 216 228 Larger is more efficient. 217 229 Note that needed/used buffer sizes are summarized at the end of the job & … … 219 231 \hline 220 232 buffer\_server\_factor\_size & 221 ratio between NEMOand XIOS buffer size.233 ratio between \NEMO\ and XIOS buffer size. 222 234 Should be 2. & 223 235 2 \\ … … 236 248 \hline 237 249 oasis\_codes\_id & 238 when using oasis, define the identifier of NEMOin the namcouple.250 when using oasis, define the identifier of \NEMO\ in the namcouple. 239 251 Note that the identifier of XIOS is xios.x & 240 252 oceanx \\ … … 243 255 \end{table} 244 256 257 %% ================================================================================================= 245 258 \subsection{Practical issues} 246 259 260 %% ================================================================================================= 247 261 \subsubsection{Installation} 248 262 249 As mentioned, XIOS is supported separately and must be downloaded and compiled before it can be used with NEMO.263 As mentioned, XIOS is supported separately and must be downloaded and compiled before it can be used with \NEMO. 250 264 See the installation guide on the \href{http://forge.ipsl.jussieu.fr/ioserver/wiki}{XIOS} wiki for help and guidance. 251 NEMOwill need to link to the compiled XIOS library.265 \NEMO\ will need to link to the compiled XIOS library. 252 266 The \href{https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/install.html#extract-and-install-xios} 253 267 {Extract and install XIOS} guide provides an example illustration of how this can be achieved. 254 268 269 %% ================================================================================================= 255 270 \subsubsection{Add your own outputs} 256 271 … … 261 276 262 277 \begin{enumerate} 263 \item[1.] 264 in NEMO code, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array. 265 \item[2.] 266 If necessary, add \forcode{USE iom ! I/O manager library} to the list of used modules in 278 \item in \NEMO\ code, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array. 279 \item If necessary, add \forcode{USE iom ! I/O manager library} to the list of used modules in 267 280 the upper part of your module. 268 \item[3.] 269 in the field\_def.xml file, add the definition of your variable using the same identifier you used in the f90 code 281 \item in the field\_def.xml file, add the definition of your variable using the same identifier you used in the f90 code 270 282 (see subsequent sections for a details of the XML syntax and rules). 271 283 For example: 272 273 284 \begin{xmllines} 274 285 <field_definition> 275 286 <field_group id="grid_T" grid_ref="grid_T_3D"> <!-- T grid --> 276 287 ... 277 <field id="identifier" long_name="blabla" ... /> 288 <field id="identifier" long_name="blabla" ... /> 278 289 ... 279 </field_definition> 280 \end{xmllines} 281 290 </field_definition> 291 \end{xmllines} 282 292 Note your definition must be added to the field\_group whose reference grid is consistent with the size of 283 293 the array passed to iomput. … … 286 296 (iom\_set\_domain\_attr and iom\_set\_axis\_attr in \mdl{iom}) or defined in the domain\_def.xml file. 287 297 \eg: 288 289 298 \begin{xmllines} 290 299 <grid id="grid_T_3D" domain_ref="grid_T" axis_ref="deptht"/> 291 300 \end{xmllines} 292 293 Note, if your array is computed within the surface module each \np{nn\_fsbc} time\_step, 301 Note, if your array is computed within the surface module each \np{nn_fsbc}{nn\_fsbc} time\_step, 294 302 add the field definition within the field\_group defined with the id "SBC": 295 303 \xmlcode{<field_group id="SBC" ...>} which has been defined with the correct frequency of operations 296 304 (iom\_set\_field\_attr in \mdl{iom}) 297 \item[4.] 298 add your field in one of the output files defined in iodef.xml 305 \item add your field in one of the output files defined in iodef.xml 299 306 (again see subsequent sections for syntax and rules) 300 301 \begin{xmllines} 302 <file id="file1" .../> 307 \begin{xmllines} 308 <file id="file1" .../> 303 309 ... 304 <field field_ref="identifier" /> 310 <field field_ref="identifier" /> 305 311 ... 306 </file> 307 \end{xmllines} 308 312 </file> 313 \end{xmllines} 309 314 \end{enumerate} 310 315 316 %% ================================================================================================= 311 317 \subsection{XML fundamentals} 312 318 319 %% ================================================================================================= 313 320 \subsubsection{ XML basic rules} 314 321 … … 320 327 See \href{http://www.xmlnews.org/docs/xml-basics.html}{here} for more details. 321 328 322 \subsubsection{Structure of the XML file used in NEMO} 329 %% ================================================================================================= 330 \subsubsection{Structure of the XML file used in \NEMO} 323 331 324 332 The XML file used in XIOS is structured by 7 families of tags: … … 327 335 328 336 \begin{table} 329 \scriptsize330 337 \begin{tabular*}{\textwidth}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 331 338 \hline … … 359 366 360 367 \begin{table} 361 \scriptsize362 368 \begin{tabular}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 363 369 \hline … … 369 375 \xmlcode{<context id="xios" ... >} \\ 370 376 \hline 371 context nemo & context containing IO information for NEMO (mother grid when using AGRIF) &377 context nemo & context containing IO information for \NEMO\ (mother grid when using AGRIF) & 372 378 \xmlcode{<context id="nemo" ... >} \\ 373 379 \hline 374 context 1\_nemo & context containing IO information for NEMO child grid 1 (when using AGRIF) &380 context 1\_nemo & context containing IO information for \NEMO\ child grid 1 (when using AGRIF) & 375 381 \xmlcode{<context id="1_nemo" ... >} \\ 376 382 \hline 377 context n\_nemo & context containing IO information for NEMO child grid n (when using AGRIF) &383 context n\_nemo & context containing IO information for \NEMO\ child grid n (when using AGRIF) & 378 384 \xmlcode{<context id="n_nemo" ... >} \\ 379 385 \hline … … 384 390 385 391 \begin{table} 386 \scriptsize387 392 \begin{tabular}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 388 393 \hline … … 400 405 \end{table} 401 406 402 \noindent Each context tag related to NEMO (mother or child grids) is divided into 5 parts407 \noindent Each context tag related to \NEMO\ (mother or child grids) is divided into 5 parts 403 408 (that can be defined in any order): 404 409 405 410 \begin{table} 406 \scriptsize407 411 \begin{tabular}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 408 412 \hline … … 429 433 \end{table} 430 434 435 %% ================================================================================================= 431 436 \subsubsection{Nesting XML files} 432 437 … … 434 439 The inclusion of XML files into the main XML file can be done through the attribute src: 435 440 \xmlline|<context src="./nemo_def.xml" />| 436 437 \noindent In NEMO, by default, the field definition is done in 3 separate files (441 442 \noindent In \NEMO, by default, the field definition is done in 3 separate files ( 438 443 \path{cfgs/SHARED/field_def_nemo-oce.xml}, 439 444 \path{cfgs/SHARED/field_def_nemo-pisces.xml} and … … 442 447 are included in the main iodef.xml file through the following commands: 443 448 \begin{xmllines} 444 <context id="nemo" src="./context_nemo.xml"/> 445 \end{xmllines} 446 449 <context id="nemo" src="./context_nemo.xml"/> 450 \end{xmllines} 451 452 %% ================================================================================================= 447 453 \subsubsection{Use of inheritance} 448 454 … … 457 463 \begin{xmllines} 458 464 <field_definition operation="average" > 459 <field id="sst" /> <!-- averaged sst --> 460 <field id="sss" operation="instant"/> <!-- instantaneous sss --> 461 </field_definition> 465 <field id="sst" /> <!-- averaged sst --> 466 <field id="sss" operation="instant"/> <!-- instantaneous sss --> 467 </field_definition> 462 468 \end{xmllines} 463 469 … … 476 482 </field_definition> 477 483 <file_definition> 478 <file id="myfile" output_freq="1d" /> 484 <file id="myfile" output_freq="1d" /> 479 485 <field field_ref="sst" /> <!-- default def --> 480 486 <field field_ref="sss" long_name="my description" /> <!-- overwrite --> 481 487 </file> 482 </file_definition> 488 </file_definition> 483 489 \end{xmllines} 484 490 485 491 Inherit (and overwrite, if needed) the attributes of a tag you are refering to. 486 492 493 %% ================================================================================================= 487 494 \subsubsection{Use of groups} 488 495 … … 523 530 <field_group group_ref="groupU" /> 524 531 <field field_ref="uocetr_eff" /> <!-- add another field --> 525 </file> 526 \end{xmllines} 527 532 </file> 533 \end{xmllines} 534 535 %% ================================================================================================= 528 536 \subsection{Detailed functionalities} 529 537 … … 531 539 the new functionalities offered by the XML interface of XIOS. 532 540 541 %% ================================================================================================= 533 542 \subsubsection{Define horizontal subdomains} 534 543 535 544 Horizontal subdomains are defined through the attributs zoom\_ibegin, zoom\_jbegin, zoom\_ni, zoom\_nj of 536 545 the tag family domain. 537 It must therefore be done in the domain part of the XML file. 538 For example, in \path{cfgs/SHARED/domain_def.xml}, we provide the following example of a definition of 546 It must therefore be done in the domain part of the XML file. 547 For example, in \path{cfgs/SHARED/domain_def.xml}, we provide the following example of a definition of 539 548 a 5 by 5 box with the bottom left corner at point (10,10). 540 549 … … 553 562 \end{xmllines} 554 563 555 Moorings are seen as an extrem case corresponding to a 1 by 1 subdomain. 564 Moorings are seen as an extrem case corresponding to a 1 by 1 subdomain. 556 565 The Equatorial section, the TAO, RAMA and PIRATA moorings are already registered in the code and 557 566 can therefore be outputted without taking care of their (i,j) position in the grid. … … 566 575 \end{xmllines} 567 576 568 Note that if the domain decomposition used in XIOS cuts the subdomain in several parts and if 569 you use the ''multiple\_file'' type for your output files, 570 you will endup with several files you will need to rebuild using unprovided tools (like ncpdq and ncrcat, 577 Note that if the domain decomposition used in XIOS cuts the subdomain in several parts and if 578 you use the ''multiple\_file'' type for your output files, 579 you will endup with several files you will need to rebuild using unprovided tools (like ncpdq and ncrcat, 571 580 \href{http://nco.sourceforge.net/nco.html#Concatenation}{see nco manual}). 572 581 We are therefore advising to use the ''one\_file'' type in this case. 573 582 583 %% ================================================================================================= 574 584 \subsubsection{Define vertical zooms} 575 585 … … 595 605 \end{xmllines} 596 606 607 %% ================================================================================================= 597 608 \subsubsection{Control of the output file names} 598 609 … … 601 612 602 613 \begin{xmllines} 603 <file_group id="1d" output_freq="1d" name="myfile_1d" > 614 <file_group id="1d" output_freq="1d" name="myfile_1d" > 604 615 <file id="myfileA" name_suffix="_AAA" > <!-- will create file "myfile_1d_AAA" --> 605 616 ... … … 620 631 621 632 \begin{table} 622 \scriptsize623 633 \begin{tabularx}{\textwidth}{|lX|} 624 634 \hline … … 656 666 \end{table} 657 667 658 \noindent For example, 668 \noindent For example, 659 669 \xmlline|<file id="myfile_hzoom" name="myfile_@expname@_@startdate@_freq@freq@" output_freq="1d" >| 660 670 … … 668 678 \noindent will give the following file name radical: \ifile{myfile\_ORCA2\_19891231\_freq1d} 669 679 670 \subsubsection{Other controls of the XML attributes from NEMO} 671 672 The values of some attributes are defined by subroutine calls within NEMO 680 %% ================================================================================================= 681 \subsubsection{Other controls of the XML attributes from \NEMO} 682 683 The values of some attributes are defined by subroutine calls within \NEMO 673 684 (calls to iom\_set\_domain\_attr, iom\_set\_axis\_attr and iom\_set\_field\_attr in \mdl{iom}). 674 685 Any definition given in the XML file will be overwritten. … … 681 692 682 693 \begin{table} 683 \scriptsize 684 \begin{tabularx}{\textwidth}{|X|c|c|c|} 694 \begin{tabular}{|l|c|c|} 685 695 \hline 686 696 tag ids affected by automatic definition of some of their attributes & 687 697 name attribute & 688 attribute value \\698 attribute value \\ 689 699 \hline 690 700 \hline 691 701 field\_definition & 692 702 freq\_op & 693 \np{rn \_rdt}\\703 \np{rn_rdt}{rn\_rdt} \\ 694 704 \hline 695 705 SBC & 696 706 freq\_op & 697 \np{rn \_rdt} $\times$ \np{nn\_fsbc}\\707 \np{rn_rdt}{rn\_rdt} $\times$ \np{nn_fsbc}{nn\_fsbc} \\ 698 708 \hline 699 709 ptrc\_T & 700 710 freq\_op & 701 \np{rn \_rdt} $\times$ \np{nn\_dttrc}\\711 \np{rn_rdt}{rn\_rdt} $\times$ \np{nn_dttrc}{nn\_dttrc} \\ 702 712 \hline 703 713 diad\_T & 704 714 freq\_op & 705 \np{rn \_rdt} $\times$ \np{nn\_dttrc}\\715 \np{rn_rdt}{rn\_rdt} $\times$ \np{nn_dttrc}{nn\_dttrc} \\ 706 716 \hline 707 717 EqT, EqU, EqW & 708 718 jbegin, ni, & 709 according to the grid \\710 &719 according to the grid \\ 720 & 711 721 name\_suffix & 712 \\722 \\ 713 723 \hline 714 724 TAO, RAMA and PIRATA moorings & 715 725 zoom\_ibegin, zoom\_jbegin, & 716 according to the grid \\717 &726 according to the grid \\ 727 & 718 728 name\_suffix & 719 \\720 \hline 721 \end{tabular x}729 \\ 730 \hline 731 \end{tabular} 722 732 \end{table} 723 733 734 %% ================================================================================================= 724 735 \subsubsection{Advanced use of XIOS functionalities} 725 736 737 %% ================================================================================================= 726 738 \subsection{XML reference tables} 727 \label{subsec: IOM_xmlref}739 \label{subsec:DIA_IOM_xmlref} 728 740 729 741 \begin{enumerate} 730 \item 731 Simple computation: directly define the computation when refering to the variable in the file definition. 742 \item Simple computation: directly define the computation when refering to the variable in the file definition. 732 743 733 744 \begin{xmllines} … … 737 748 \end{xmllines} 738 749 739 \item 740 Simple computation: define a new variable and use it in the file definition. 750 \item Simple computation: define a new variable and use it in the file definition. 741 751 742 752 in field\_definition: … … 755 765 sst2 won't be evaluated. 756 766 757 \item 758 Change of variable precision: 767 \item Change of variable precision: 759 768 760 769 \begin{xmllines} … … 765 774 \end{xmllines} 766 775 767 Note that, then the code is crashing, writting real4 variables forces a numerical conversion from 776 Note that, then the code is crashing, writting real4 variables forces a numerical conversion from 768 777 real8 to real4 which will create an internal error in NetCDF and will avoid the creation of the output files. 769 778 Forcing double precision outputs with prec="8" (for example in the field\_definition) will avoid this problem. 770 779 771 \item 772 add user defined attributes: 773 774 \begin{xmllines} 775 <file_group id="1d" output_freq="1d" output_level="10" enabled=".true."> <!-- 1d files --> 780 \item add user defined attributes: 781 782 \begin{xmllines} 783 <file_group id="1d" output_freq="1d" output_level="10" enabled=".true."> <!-- 1d files --> 776 784 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 777 785 <field field_ref="sst" name="tos" > … … 782 790 <variable id="my_global_attribute" type="string" > blabla_global </variable> 783 791 </file> 784 </file_group> 785 \end{xmllines} 786 787 \item 788 use of the ``@'' function: example 1, weighted temporal average 792 </file_group> 793 \end{xmllines} 794 795 \item use of the ``@'' function: example 1, weighted temporal average 789 796 790 797 - define a new variable in field\_definition … … 797 804 798 805 \begin{xmllines} 799 <file_group id="5d" output_freq="5d" output_level="10" enabled=".true." > <!-- 5d files --> 806 <file_group id="5d" output_freq="5d" output_level="10" enabled=".true." > <!-- 5d files --> 800 807 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 801 808 <field field_ref="toce" operation="instant" freq_op="5d" > @toce_e3t / @e3t </field> 802 809 </file> 803 </file_group> 810 </file_group> 804 811 \end{xmllines} 805 812 … … 814 821 Note that in this case, freq\_op must be equal to the file output\_freq. 815 822 816 \item 817 use of the ``@'' function: example 2, monthly SSH standard deviation 823 \item use of the ``@'' function: example 2, monthly SSH standard deviation 818 824 819 825 - define a new variable in field\_definition … … 826 832 827 833 \begin{xmllines} 828 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 834 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 829 835 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 830 <field field_ref="ssh" name="sshstd" long_name="sea_surface_temperature_standard_deviation" 836 <field field_ref="ssh" name="sshstd" long_name="sea_surface_temperature_standard_deviation" 831 837 operation="instant" freq_op="1m" > 832 838 sqrt( @ssh2 - @ssh * @ssh ) 833 839 </field> 834 840 </file> 835 </file_group> 841 </file_group> 836 842 \end{xmllines} 837 843 … … 840 846 here we use the default, average. 841 847 So, in the above case, @ssh2 will do the monthly mean of ssh*ssh. 842 Operation="instant" refers to the temporal operation to be performed on the field ''sqrt( @ssh2 - @ssh * @ssh )'': 848 Operation="instant" refers to the temporal operation to be performed on the field ''sqrt( @ssh2 - @ssh * @ssh )'': 843 849 here the temporal average is alreday done by the ``@'' function so we just use instant. 844 850 field\_ref="ssh" means that attributes not explicitely defined, are inherited from ssh field. 845 851 Note that in this case, freq\_op must be equal to the file output\_freq. 846 852 847 \item 848 use of the ``@'' function: example 3, monthly average of SST diurnal cycle 853 \item use of the ``@'' function: example 3, monthly average of SST diurnal cycle 849 854 850 855 - define 2 new variables in field\_definition … … 858 863 859 864 \begin{xmllines} 860 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 865 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 861 866 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 862 867 <field field_ref="sst" name="sstdcy" long_name="amplitude of sst diurnal cycle" operation="average" freq_op="1d" > … … 864 869 </field> 865 870 </file> 866 </file_group> 871 </file_group> 867 872 \end{xmllines} 868 873 … … 877 882 field\_ref="sst" means that attributes not explicitely defined, are inherited from sst field. 878 883 884 %% ================================================================================================= 879 885 \subsubsection{Tag list per family} 880 886 881 887 \begin{table} 882 \scriptsize883 888 \begin{tabularx}{\textwidth}{|l|X|X|l|X|} 884 889 \hline … … 903 908 \hline 904 909 \end{tabularx} 905 \caption{ Context tags}910 \caption{XIOS: context tags} 906 911 \end{table} 907 912 908 913 \begin{table} 909 \scriptsize910 914 \begin{tabularx}{\textwidth}{|l|X|X|X|l|} 911 915 \hline … … 938 942 \hline 939 943 \end{tabularx} 940 \caption{ Field tags ("\ttfamily{field\_*}")}944 \caption{XIOS: field tags ("\texttt{field\_*}")} 941 945 \end{table} 942 946 943 947 \begin{table} 944 \scriptsize945 948 \begin{tabularx}{\textwidth}{|l|X|X|X|l|} 946 949 \hline … … 974 977 \hline 975 978 \end{tabularx} 976 \caption{ File tags ("\ttfamily{file\_*}")}979 \caption{XIOS: file tags ("\texttt{file\_*}")} 977 980 \end{table} 978 981 979 982 \begin{table} 980 \scriptsize981 983 \begin{tabularx}{\textwidth}{|l|X|X|X|X|} 982 984 \hline … … 1007 1009 \hline 1008 1010 \end{tabularx} 1009 \caption{ Axis tags ("\ttfamily{axis\_*}")}1011 \caption{XIOS: axis tags ("\texttt{axis\_*}")} 1010 1012 \end{table} 1011 1013 1012 1014 \begin{table} 1013 \scriptsize1014 1015 \begin{tabularx}{\textwidth}{|l|X|X|X|X|} 1015 1016 \hline … … 1040 1041 \hline 1041 1042 \end{tabularx} 1042 \caption{ Domain tags ("\ttfamily{domain\_*)}"}1043 \caption{XIOS: domain tags ("\texttt{domain\_*)}"} 1043 1044 \end{table} 1044 1045 1045 1046 \begin{table} 1046 \scriptsize1047 1047 \begin{tabularx}{\textwidth}{|l|X|X|X|X|} 1048 1048 \hline … … 1073 1073 \hline 1074 1074 \end{tabularx} 1075 \caption{ Grid tags ("\ttfamily{grid\_*}")}1075 \caption{XIOS: grid tags ("\texttt{grid\_*}")} 1076 1076 \end{table} 1077 1077 1078 %% ================================================================================================= 1078 1079 \subsubsection{Attributes list per family} 1079 1080 1080 1081 \begin{table} 1081 \scriptsize1082 1082 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1083 1083 \hline … … 1114 1114 \hline 1115 1115 \end{tabularx} 1116 \caption{ Reference attributes ("\ttfamily{*\_ref}")}1116 \caption{XIOS: reference attributes ("\texttt{*\_ref}")} 1117 1117 \end{table} 1118 1118 1119 1119 \begin{table} 1120 \scriptsize1121 1120 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1122 1121 \hline … … 1150 1149 \hline 1151 1150 \end{tabularx} 1152 \caption{ Domain attributes ("\ttfamily{zoom\_*}")}1151 \caption{XIOS: domain attributes ("\texttt{zoom\_*}")} 1153 1152 \end{table} 1154 1153 1155 1154 \begin{table} 1156 \scriptsize1157 1155 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1158 1156 \hline … … 1205 1203 \hline 1206 1204 \end{tabularx} 1207 \caption{ File attributes}1205 \caption{XIOS: file attributes} 1208 1206 \end{table} 1209 1207 1210 1208 \begin{table} 1211 \scriptsize1212 1209 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1213 1210 \hline … … 1254 1251 \hline 1255 1252 \end{tabularx} 1256 \caption{ Field attributes}1253 \caption{XIOS: field attributes} 1257 1254 \end{table} 1258 1255 1259 1256 \begin{table} 1260 \scriptsize1261 1257 \begin{tabularx}{\textwidth}{|l|X|X|X|} 1262 1258 \hline … … 1313 1309 \hline 1314 1310 \end{tabularx} 1315 \caption{ Miscellaneous attributes}1311 \caption{XIOS: miscellaneous attributes} 1316 1312 \end{table} 1317 1313 1314 %% ================================================================================================= 1318 1315 \subsection{CF metadata standard compliance} 1319 1316 1320 Output from the XIOS IO server is compliant with 1317 Output from the XIOS IO server is compliant with 1321 1318 \href{http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html}{version 1.5} of 1322 the CF metadata standard. 1319 the CF metadata standard. 1323 1320 Therefore while a user may wish to add their own metadata to the output files (as demonstrated in example 4 of 1324 section \autoref{subsec: IOM_xmlref}) the metadata should, for the most part, comply with the CF-1.5 standard.1321 section \autoref{subsec:DIA_IOM_xmlref}) the metadata should, for the most part, comply with the CF-1.5 standard. 1325 1322 1326 1323 Some metadata that may significantly increase the file size (horizontal cell areas and vertices) are controlled by 1327 the namelist parameter \np{ln \_cfmeta} in the \ngn{namrun} namelist.1324 the namelist parameter \np{ln_cfmeta}{ln\_cfmeta} in the \nam{run}{run} namelist. 1328 1325 This must be set to true if these metadata are to be included in the output files. 1329 1326 1330 1331 % ================================================================ 1332 % NetCDF4 support 1333 % ================================================================ 1334 \section[NetCDF4 support (\texttt{\textbf{key\_netcdf4}})] 1335 {NetCDF4 support (\protect\key{netcdf4})} 1327 %% ================================================================================================= 1328 \section[NetCDF4 support (\texttt{\textbf{key\_netcdf4}})]{NetCDF4 support (\protect\key{netcdf4})} 1336 1329 \label{sec:DIA_nc4} 1337 1330 … … 1347 1340 Datasets created with chunking and compression are not backwards compatible with NetCDF3 "classic" format but 1348 1341 most analysis codes can be relinked simply with the new libraries and will then read both NetCDF3 and NetCDF4 files. 1349 NEMO executables linked with NetCDF4 libraries can be made to produce NetCDF3 files by 1350 setting the \np{ln\_nc4zip} logical to false in the \textit{namnc4} namelist: 1351 1352 %------------------------------------------namnc4---------------------------------------------------- 1353 1354 \nlst{namnc4} 1355 %------------------------------------------------------------------------------------------------------------- 1342 \NEMO\ executables linked with NetCDF4 libraries can be made to produce NetCDF3 files by 1343 setting the \np{ln_nc4zip}{ln\_nc4zip} logical to false in the \nam{nc4}{nc4} namelist: 1344 1345 \begin{listing} 1346 \nlst{namnc4} 1347 \caption{\forcode{&namnc4}} 1348 \label{lst:namnc4} 1349 \end{listing} 1356 1350 1357 1351 If \key{netcdf4} has not been defined, these namelist parameters are not read. 1358 In this case, \np{ln \_nc4zip} is set false and dummy routines for a few NetCDF4-specific functions are defined.1352 In this case, \np{ln_nc4zip}{ln\_nc4zip} is set false and dummy routines for a few NetCDF4-specific functions are defined. 1359 1353 These functions will not be used but need to be included so that compilation is possible with NetCDF3 libraries. 1360 1354 … … 1390 1384 \end{forlines} 1391 1385 1392 \noindent for a standard ORCA2\_LIM configuration gives chunksizes of {\small\t tfamily46x38x1} respectively in1393 the mono-processor case (\ie global domain of {\small\ttfamily182x149x31}).1394 An illustration of the potential space savings that NetCDF4 chunking and compression provides is given in 1395 table \autoref{tab: NC4} which compares the results of two short runs of the ORCA2\_LIM reference configuration with1386 \noindent for a standard ORCA2\_LIM configuration gives chunksizes of {\small\texttt 46x38x1} respectively in 1387 the mono-processor case (\ie\ global domain of {\small\texttt 182x149x31}). 1388 An illustration of the potential space savings that NetCDF4 chunking and compression provides is given in 1389 table \autoref{tab:DIA_NC4} which compares the results of two short runs of the ORCA2\_LIM reference configuration with 1396 1390 a 4x2 mpi partitioning. 1397 1391 Note the variation in the compression ratio achieved which reflects chiefly the dry to wet volume ratio of 1398 1392 each processing region. 1399 1393 1400 %------------------------------------------TABLE----------------------------------------------------1401 1394 \begin{table} 1402 \scriptsize1403 1395 \centering 1404 1396 \begin{tabular}{lrrr} … … 1432 1424 ORCA2\_2d\_grid\_W\_0007.nc & 4416 & 1368 & 70\% \\ 1433 1425 \end{tabular} 1434 \caption{ 1435 \protect\label{tab:NC4} 1436 Filesize comparison between NetCDF3 and NetCDF4 with chunking and compression 1437 } 1426 \caption{Filesize comparison between NetCDF3 and NetCDF4 with chunking and compression} 1427 \label{tab:DIA_NC4} 1438 1428 \end{table} 1439 %----------------------------------------------------------------------------------------------------1440 1429 1441 1430 When \key{iomput} is activated with \key{netcdf4} chunking and compression parameters for fields produced via 1442 \ np{iom\_put} calls are set via an equivalent and identically named namelist to \textit{namnc4} in1443 \ np{xmlio\_server.def}.1444 Typically this namelist serves the mean files whilst the \n gn{ namnc4} in the main namelist file continues to1431 \rou{iom\_put} calls are set via an equivalent and identically named namelist to \nam{nc4}{nc4} in 1432 \textit{xmlio\_server.def}. 1433 Typically this namelist serves the mean files whilst the \nam{nc4}{nc4} in the main namelist file continues to 1445 1434 serve the restart files. 1446 1435 This duplication is unfortunate but appropriate since, if using io\_servers, the domain sizes of 1447 1436 the individual files produced by the io\_server processes may be different to those produced by 1448 1437 the invidual processing regions and different chunking choices may be desired. 1449 1450 % ------------------------------------------------------------------------------------------------------------- 1451 % Tracer/Dynamics Trends 1452 % ------------------------------------------------------------------------------------------------------------- 1453 \section[Tracer/Dynamics trends (\texttt{namtrd})] 1454 {Tracer/Dynamics trends (\protect\ngn{namtrd})} 1438 1439 %% ================================================================================================= 1440 \section[Tracer/Dynamics trends (\forcode{&namtrd})]{Tracer/Dynamics trends (\protect\nam{trd}{trd})} 1455 1441 \label{sec:DIA_trd} 1456 1442 1457 %------------------------------------------namtrd---------------------------------------------------- 1458 1459 \nlst{namtrd} 1460 %------------------------------------------------------------------------------------------------------------- 1443 \begin{listing} 1444 \nlst{namtrd} 1445 \caption{\forcode{&namtrd}} 1446 \label{lst:namtrd} 1447 \end{listing} 1461 1448 1462 1449 Each trend of the dynamics and/or temperature and salinity time evolution equations can be send to 1463 1450 \mdl{trddyn} and/or \mdl{trdtra} modules (see TRD directory) just after their computation 1464 (\ie at the end of each $dyn\cdots.F90$ and/or $tra\cdots.F90$routines).1465 This capability is controlled by options offered in \n gn{namtrd} namelist.1451 (\ie\ at the end of each \textit{dyn....F90} and/or \textit{tra....F90} routines). 1452 This capability is controlled by options offered in \nam{trd}{trd} namelist. 1466 1453 Note that the output are done with XIOS, and therefore the \key{iomput} is required. 1467 1454 1468 What is done depends on the \n gn{namtrd} logical set to \forcode{.true.}:1455 What is done depends on the \nam{trd}{trd} logical set to \forcode{.true.}: 1469 1456 1470 1457 \begin{description} 1471 \item[\np{ln\_glo\_trd}]: 1472 at each \np{nn\_trd} time-step a check of the basin averaged properties of 1458 \item [{\np{ln_glo_trd}{ln\_glo\_trd}}]: at each \np{nn_trd}{nn\_trd} time-step a check of the basin averaged properties of 1473 1459 the momentum and tracer equations is performed. 1474 1460 This also includes a check of $T^2$, $S^2$, $\tfrac{1}{2} (u^2+v2)$, 1475 1461 and potential energy time evolution equations properties; 1476 \item[\np{ln\_dyn\_trd}]: 1477 each 3D trend of the evolution of the two momentum components is output; 1478 \item[\np{ln\_dyn\_mxl}]: 1479 each 3D trend of the evolution of the two momentum components averaged over the mixed layer is output; 1480 \item[\np{ln\_vor\_trd}]: 1481 a vertical summation of the moment tendencies is performed, 1462 \item [{\np{ln_dyn_trd}{ln\_dyn\_trd}}]: each 3D trend of the evolution of the two momentum components is output; 1463 \item [{\np{ln_dyn_mxl}{ln\_dyn\_mxl}}]: each 3D trend of the evolution of the two momentum components averaged over the mixed layer is output; 1464 \item [{\np{ln_vor_trd}{ln\_vor\_trd}}]: a vertical summation of the moment tendencies is performed, 1482 1465 then the curl is computed to obtain the barotropic vorticity tendencies which are output; 1483 \item[\np{ln\_KE\_trd}] : 1484 each 3D trend of the Kinetic Energy equation is output; 1485 \item[\np{ln\_tra\_trd}]: 1486 each 3D trend of the evolution of temperature and salinity is output; 1487 \item[\np{ln\_tra\_mxl}]: 1488 each 2D trend of the evolution of temperature and salinity averaged over the mixed layer is output; 1466 \item [{\np{ln_KE_trd}{ln\_KE\_trd}}] : each 3D trend of the Kinetic Energy equation is output; 1467 \item [{\np{ln_tra_trd}{ln\_tra\_trd}}]: each 3D trend of the evolution of temperature and salinity is output; 1468 \item [{\np{ln_tra_mxl}{ln\_tra\_mxl}}]: each 2D trend of the evolution of temperature and salinity averaged over the mixed layer is output; 1489 1469 \end{description} 1490 1470 1491 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1471 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1492 1472 the \key{trdtrc} and \key{trdmxl\_trc} CPP keys. 1493 1473 1494 1474 \textbf{Note that} in the current version (v3.6), many changes has been introduced but not fully tested. 1495 In particular, options associated with \np{ln\_dyn\_mxl}, \np{ln\_vor\_trd}, and \np{ln\_tra\_mxl} are not working, 1496 and none of the options have been tested with variable volume (\ie \key{vvl} defined). 1497 1498 % ------------------------------------------------------------------------------------------------------------- 1499 % On-line Floats trajectories 1500 % ------------------------------------------------------------------------------------------------------------- 1501 \section[FLO: On-Line Floats trajectories (\texttt{\textbf{key\_floats}})] 1502 {FLO: On-Line Floats trajectories (\protect\key{floats})} 1503 \label{sec:FLO} 1504 %--------------------------------------------namflo------------------------------------------------------- 1505 1506 \nlst{namflo} 1507 %-------------------------------------------------------------------------------------------------------------- 1475 In particular, options associated with \np{ln_dyn_mxl}{ln\_dyn\_mxl}, \np{ln_vor_trd}{ln\_vor\_trd}, and \np{ln_tra_mxl}{ln\_tra\_mxl} are not working, 1476 and none of the options have been tested with variable volume (\ie\ \np[=.true.]{ln_linssh}{ln\_linssh}). 1477 1478 %% ================================================================================================= 1479 \section[FLO: On-Line Floats trajectories (\texttt{\textbf{key\_floats}})]{FLO: On-Line Floats trajectories (\protect\key{floats})} 1480 \label{sec:DIA_FLO} 1481 1482 \begin{listing} 1483 \nlst{namflo} 1484 \caption{\forcode{&namflo}} 1485 \label{lst:namflo} 1486 \end{listing} 1508 1487 1509 1488 The on-line computation of floats advected either by the three dimensional velocity field or constraint to 1510 1489 remain at a given depth ($w = 0$ in the computation) have been introduced in the system during the CLIPPER project. 1511 Options are defined by \n gn{namflo} namelist variables.1490 Options are defined by \nam{flo}{flo} namelist variables. 1512 1491 The algorithm used is based either on the work of \cite{blanke.raynaud_JPO97} (default option), 1513 or on a $4^th$ Runge-Hutta algorithm (\np {ln\_flork4}\forcode{ = .true.}).1492 or on a $4^th$ Runge-Hutta algorithm (\np[=.true.]{ln_flork4}{ln\_flork4}). 1514 1493 Note that the \cite{blanke.raynaud_JPO97} algorithm have the advantage of providing trajectories which 1515 1494 are consistent with the numeric of the code, so that the trajectories never intercept the bathymetry. 1516 1495 1496 %% ================================================================================================= 1517 1497 \subsubsection{Input data: initial coordinates} 1518 1498 1519 1499 Initial coordinates can be given with Ariane Tools convention 1520 (IJK coordinates, (\np {ln\_ariane}\forcode{ = .true.}) ) or with longitude and latitude.1521 1522 In case of Ariane convention, input filename is \ np{init\_float\_ariane}.1500 (IJK coordinates, (\np[=.true.]{ln_ariane}{ln\_ariane}) ) or with longitude and latitude. 1501 1502 In case of Ariane convention, input filename is \textit{init\_float\_ariane}. 1523 1503 Its format is: \\ 1524 { \scriptsize\texttt{I J K nisobfl itrash}}1504 { \texttt{I J K nisobfl itrash}} 1525 1505 1526 1506 \noindent with: … … 1528 1508 - I,J,K : indexes of initial position 1529 1509 1530 - nisobfl: 0 for an isobar float, 1 for a float following the w velocity 1510 - nisobfl: 0 for an isobar float, 1 for a float following the w velocity 1531 1511 1532 1512 - itrash : set to zero; it is a dummy variable to respect Ariane Tools convention … … 1534 1514 \noindent Example: \\ 1535 1515 \noindent 1536 { \scriptsize1516 { 1537 1517 \texttt{ 1538 1518 100.00000 90.00000 -1.50000 1.00000 0.00000 \\ … … 1545 1525 In the other case (longitude and latitude), input filename is init\_float. 1546 1526 Its format is: \\ 1547 { \scriptsize\texttt{Long Lat depth nisobfl ngrpfl itrash}}1527 { \texttt{Long Lat depth nisobfl ngrpfl itrash}} 1548 1528 1549 1529 \noindent with: … … 1559 1539 \noindent Example: \\ 1560 1540 \noindent 1561 { \scriptsize1541 { 1562 1542 \texttt{ 1563 1543 20.0 0.0 0.0 0 1 1 \\ … … 1568 1548 } \\ 1569 1549 1570 \np{jpnfl} is the total number of floats during the run. 1571 When initial positions are read in a restart file (\np{ln\_rstflo}\forcode{ = .true.} ), 1572 \np{jpnflnewflo} can be added in the initialization file. 1573 1550 \np{jpnfl}{jpnfl} is the total number of floats during the run. 1551 When initial positions are read in a restart file (\np[=.true.]{ln_rstflo}{ln\_rstflo} ), 1552 \np{jpnflnewflo}{jpnflnewflo} can be added in the initialization file. 1553 1554 %% ================================================================================================= 1574 1555 \subsubsection{Output data} 1575 1556 1576 \np{nn \_writefl} is the frequency of writing in float output file and \np{nn\_stockfl} is the frequency of1557 \np{nn_writefl}{nn\_writefl} is the frequency of writing in float output file and \np{nn_stockfl}{nn\_stockfl} is the frequency of 1577 1558 creation of the float restart file. 1578 1559 1579 Output data can be written in ascii files (\np {ln\_flo\_ascii}\forcode{ = .true.}).1560 Output data can be written in ascii files (\np[=.true.]{ln_flo_ascii}{ln\_flo\_ascii}). 1580 1561 In that case, output filename is trajec\_float. 1581 1562 1582 Another possiblity of writing format is Netcdf (\np {ln\_flo\_ascii}\forcode{ = .false.}) with1563 Another possiblity of writing format is Netcdf (\np[=.false.]{ln_flo_ascii}{ln\_flo\_ascii}) with 1583 1564 \key{iomput} and outputs selected in iodef.xml. 1584 1565 Here it is an example of specification to put in files description section: … … 1598 1579 \end{xmllines} 1599 1580 1600 1601 % ------------------------------------------------------------------------------------------------------------- 1602 % Harmonic analysis of tidal constituents 1603 % ------------------------------------------------------------------------------------------------------------- 1604 \section[Harmonic analysis of tidal constituents (\texttt{\textbf{key\_diaharm}})] 1605 {Harmonic analysis of tidal constituents (\protect\key{diaharm})} 1581 %% ================================================================================================= 1582 \section[Harmonic analysis of tidal constituents (\texttt{\textbf{key\_diaharm}})]{Harmonic analysis of tidal constituents (\protect\key{diaharm})} 1606 1583 \label{sec:DIA_diag_harm} 1607 1584 1608 %------------------------------------------nam_diaharm---------------------------------------------------- 1609 % 1610 \nlst{nam_diaharm} 1611 %---------------------------------------------------------------------------------------------------------- 1585 \begin{listing} 1586 \nlst{nam_diaharm} 1587 \caption{\forcode{&nam_diaharm}} 1588 \label{lst:nam_diaharm} 1589 \end{listing} 1612 1590 1613 1591 A module is available to compute the amplitude and phase of tidal waves. 1614 1592 This on-line Harmonic analysis is actived with \key{diaharm}. 1615 1593 1616 Some parameters are available in namelist \n gn{nam\_diaharm}:1617 1618 - \np{nit000 \_han} is the first time step used for harmonic analysis1619 1620 - \np{nitend \_han} is the last time step used for harmonic analysis1621 1622 - \np{nstep \_han} is the time step frequency for harmonic analysis1623 1624 - \np{nb\_ana} is the number of harmonics to analyse1625 1626 - \np{tname} is an array with names of tidal constituents to analyse1627 1628 \np{nit000 \_han} and \np{nitend\_han} must be between \np{nit000} and \np{nitend} of the simulation.1594 Some parameters are available in namelist \nam{_diaharm}{\_diaharm}: 1595 1596 - \np{nit000_han}{nit000\_han} is the first time step used for harmonic analysis 1597 1598 - \np{nitend_han}{nitend\_han} is the last time step used for harmonic analysis 1599 1600 - \np{nstep_han}{nstep\_han} is the time step frequency for harmonic analysis 1601 1602 % - \np{nb_ana}{nb\_ana} is the number of harmonics to analyse 1603 1604 - \np{tname}{tname} is an array with names of tidal constituents to analyse 1605 1606 \np{nit000_han}{nit000\_han} and \np{nitend_han}{nitend\_han} must be between \np{nit000}{nit000} and \np{nitend}{nitend} of the simulation. 1629 1607 The restart capability is not implemented. 1630 1608 … … 1647 1625 We obtain in output $C_{j}$ and $S_{j}$ for each tidal wave. 1648 1626 1649 % ------------------------------------------------------------------------------------------------------------- 1650 % Sections transports 1651 % ------------------------------------------------------------------------------------------------------------- 1652 \section[Transports across sections (\texttt{\textbf{key\_diadct}})] 1653 {Transports across sections (\protect\key{diadct})} 1627 %% ================================================================================================= 1628 \section[Transports across sections (\texttt{\textbf{key\_diadct}})]{Transports across sections (\protect\key{diadct})} 1654 1629 \label{sec:DIA_diag_dct} 1655 1630 1656 %------------------------------------------namdct---------------------------------------------------- 1657 1658 \nlst{namdct} 1659 %------------------------------------------------------------------------------------------------------------- 1631 \begin{listing} 1632 \nlst{nam_diadct} 1633 \caption{\forcode{&nam_diadct}} 1634 \label{lst:nam_diadct} 1635 \end{listing} 1660 1636 1661 1637 A module is available to compute the transport of volume, heat and salt through sections. … … 1665 1641 The pathways between them are contructed using tools which can be found in \texttt{tools/SECTIONS\_DIADCT} 1666 1642 and are written in a binary file \texttt{section\_ijglobal.diadct} which is later read in by 1667 NEMOto compute on-line transports.1643 \NEMO\ to compute on-line transports. 1668 1644 1669 1645 The on-line transports module creates three output ascii files: … … 1675 1651 - \texttt{salt\_transport} for salt transports (unit: $10^{9}Kg s^{-1}$) \\ 1676 1652 1677 Namelist variables in \n gn{namdct} control how frequently the flows are summed and the time scales over which1653 Namelist variables in \nam{_diadct}{\_diadct} control how frequently the flows are summed and the time scales over which 1678 1654 they are averaged, as well as the level of output for debugging: 1679 \np{nn\_dct} : frequency of instantaneous transports computing 1680 \np{nn\_dctwri}: frequency of writing ( mean of instantaneous transports ) 1681 \np{nn\_debug} : debugging of the section 1682 1655 \np{nn_dct}{nn\_dct} : frequency of instantaneous transports computing 1656 \np{nn_dctwri}{nn\_dctwri}: frequency of writing ( mean of instantaneous transports ) 1657 \np{nn_debug}{nn\_debug} : debugging of the section 1658 1659 %% ================================================================================================= 1683 1660 \subsubsection{Creating a binary file containing the pathway of each section} 1684 1661 … … 1690 1667 1691 1668 Each section is defined by: \\ 1692 \noindent { \scriptsize\texttt{long1 lat1 long2 lat2 nclass (ok/no)strpond (no)ice section\_name}} \\1669 \noindent { \texttt{long1 lat1 long2 lat2 nclass (ok/no)strpond (no)ice section\_name}} \\ 1693 1670 with: 1694 1671 … … 1697 1674 - \texttt{long2 lat2}, coordinates of the second extremity of the section; 1698 1675 1699 - \texttt{nclass} the number of bounds of your classes (\eg bounds for 2 classes);1676 - \texttt{nclass} the number of bounds of your classes (\eg\ bounds for 2 classes); 1700 1677 1701 1678 - \texttt{okstrpond} to compute heat and salt transports, \texttt{nostrpond} if no; … … 1707 1684 1708 1685 \noindent If nclass $\neq$ 0, the next lines contain the class type and the nclass bounds: \\ 1709 { \scriptsize1686 { 1710 1687 \texttt{ 1711 1688 long1 lat1 long2 lat2 nclass (ok/no)strpond (no)ice section\_name \\ … … 1730 1707 1731 1708 - \texttt{zsigp} for potential density classes \\ 1732 1709 1733 1710 The script \texttt{job.ksh} computes the pathway for each section and creates a binary file 1734 \texttt{section\_ijglobal.diadct} which is read by NEMO. \\1711 \texttt{section\_ijglobal.diadct} which is read by \NEMO. \\ 1735 1712 1736 1713 It is possible to use this tools for new configuations: \texttt{job.ksh} has to be updated with … … 1740 1717 and the ATL\_Cuba\_Florida with 4 temperature clases (5 class bounds), are shown: \\ 1741 1718 \noindent 1742 { \scriptsize1719 { 1743 1720 \texttt{ 1744 1721 -68. -54.5 -60. -64.7 00 okstrpond noice ACC\_Drake\_Passage \\ … … 1752 1729 } 1753 1730 1731 %% ================================================================================================= 1754 1732 \subsubsection{To read the output files} 1755 1733 1756 1734 The output format is: \\ 1757 { \scriptsize1735 { 1758 1736 \texttt{ 1759 1737 date, time-step number, section number, \\ … … 1777 1755 1778 1756 \begin{table} 1779 \scriptsize1780 1757 \begin{tabular}{|l|l|l|l|l|} 1781 1758 \hline … … 1791 1768 \end{table} 1792 1769 1793 % ================================================================ 1794 % Steric effect in sea surface height 1795 % ================================================================ 1770 %% ================================================================================================= 1796 1771 \section{Diagnosing the steric effect in sea surface height} 1797 1772 \label{sec:DIA_steric} 1798 1799 1773 1800 1774 Changes in steric sea level are caused when changes in the density of the water column imply an expansion or … … 1818 1792 1819 1793 Let denote 1820 $\mathcal{M}$ the total mass of liquid seawater ($\mathcal{M} = \int_D \rho dv$), 1821 $\mathcal{V}$ the total volume of seawater ($\mathcal{V} = \int_D dv$), 1822 $\mathcal{A}$ the total surface of the ocean ($\mathcal{A} = \int_S ds$), 1823 $\bar{\rho}$ the global mean seawater (\textit{in situ}) density 1794 $\mathcal{M}$ the total mass of liquid seawater ($\mathcal{M} = \int_D \rho dv$), 1795 $\mathcal{V}$ the total volume of seawater ($\mathcal{V} = \int_D dv$), 1796 $\mathcal{A}$ the total surface of the ocean ($\mathcal{A} = \int_S ds$), 1797 $\bar{\rho}$ the global mean seawater (\textit{in situ}) density 1824 1798 ($\bar{\rho} = 1/\mathcal{V} \int_D \rho \,dv$), and 1825 $\bar{\eta}$ the global mean sea level 1799 $\bar{\eta}$ the global mean sea level 1826 1800 ($\bar{\eta} = 1/\mathcal{A} \int_S \eta \,ds$). 1827 1801 … … 1833 1807 \mathcal{V} &= \mathcal{A} \;\bar{\eta} 1834 1808 \end{split} 1835 \label{eq: MV_nBq}1809 \label{eq:DIA_MV_nBq} 1836 1810 \end{equation} 1837 1811 … … 1841 1815 \frac{1}{e_3} \partial_t ( e_3\,\rho) + \nabla( \rho \, \textbf{U} ) 1842 1816 = \left. \frac{\textit{emp}}{e_3}\right|_\textit{surface} 1843 \label{eq: Co_nBq}1817 \label{eq:DIA_Co_nBq} 1844 1818 \end{equation} 1845 1819 1846 1820 where $\rho$ is the \textit{in situ} density, and \textit{emp} the surface mass exchanges with the other media of 1847 1821 the Earth system (atmosphere, sea-ice, land). 1848 Its global averaged leads to the total mass change 1822 Its global averaged leads to the total mass change 1849 1823 1850 1824 \begin{equation} 1851 1825 \partial_t \mathcal{M} = \mathcal{A} \;\overline{\textit{emp}} 1852 \label{eq: Mass_nBq}1826 \label{eq:DIA_Mass_nBq} 1853 1827 \end{equation} 1854 1828 1855 1829 where $\overline{\textit{emp}} = \int_S \textit{emp}\,ds$ is the net mass flux through the ocean surface. 1856 Bringing \autoref{eq: Mass_nBq} and the time derivative of \autoref{eq:MV_nBq} together leads to1830 Bringing \autoref{eq:DIA_Mass_nBq} and the time derivative of \autoref{eq:DIA_MV_nBq} together leads to 1857 1831 the evolution equation of the mean sea level 1858 1832 … … 1860 1834 \partial_t \bar{\eta} = \frac{\overline{\textit{emp}}}{ \bar{\rho}} 1861 1835 - \frac{\mathcal{V}}{\mathcal{A}} \;\frac{\partial_t \bar{\rho} }{\bar{\rho}} 1862 \label{eq: ssh_nBq}1836 \label{eq:DIA_ssh_nBq} 1863 1837 \end{equation} 1864 1838 1865 The first term in equation \autoref{eq: ssh_nBq} alters sea level by adding or subtracting mass from the ocean.1866 The second term arises from temporal changes in the global mean density; \ie from steric effects.1839 The first term in equation \autoref{eq:DIA_ssh_nBq} alters sea level by adding or subtracting mass from the ocean. 1840 The second term arises from temporal changes in the global mean density; \ie\ from steric effects. 1867 1841 1868 1842 In a Boussinesq fluid, $\rho$ is replaced by $\rho_o$ in all the equation except when $\rho$ appears multiplied by 1869 the gravity (\ie in the hydrostatic balance of the primitive Equations).1870 In particular, the mass conservation equation, \autoref{eq: Co_nBq}, degenerates into the incompressibility equation:1843 the gravity (\ie\ in the hydrostatic balance of the primitive Equations). 1844 In particular, the mass conservation equation, \autoref{eq:DIA_Co_nBq}, degenerates into the incompressibility equation: 1871 1845 1872 1846 \[ 1873 1847 \frac{1}{e_3} \partial_t ( e_3 ) + \nabla( \textbf{U} ) = \left. \frac{\textit{emp}}{\rho_o \,e_3}\right|_ \textit{surface} 1874 % \label{eq: Co_Bq}1848 % \label{eq:DIA_Co_Bq} 1875 1849 \] 1876 1850 … … 1879 1853 \[ 1880 1854 \partial_t \mathcal{V} = \mathcal{A} \;\frac{\overline{\textit{emp}}}{\rho_o} 1881 % \label{eq: V_Bq}1855 % \label{eq:DIA_V_Bq} 1882 1856 \] 1883 1857 … … 1888 1862 1889 1863 Nevertheless, following \citep{greatbatch_JGR94}, the steric effect on the volume can be diagnosed by 1890 considering the mass budget of the ocean. 1864 considering the mass budget of the ocean. 1891 1865 The apparent changes in $\mathcal{M}$, mass of the ocean, which are not induced by surface mass flux 1892 1866 must be compensated by a spatially uniform change in the mean sea level due to expansion/contraction of the ocean … … 1898 1872 \begin{equation} 1899 1873 \mathcal{M}_o = \mathcal{M} + \rho_o \,\eta_s \,\mathcal{A} 1900 \label{eq: M_Bq}1874 \label{eq:DIA_M_Bq} 1901 1875 \end{equation} 1902 1876 … … 1904 1878 is converted into a mean change in sea level. 1905 1879 Introducing the total density anomaly, $\mathcal{D}= \int_D d_a \,dv$, 1906 where $d_a = (\rho -\rho_o ) / \rho_o$ is the density anomaly used in \NEMO (cf. \autoref{subsec:TRA_eos})1907 in \autoref{eq: M_Bq} leads to a very simple form for the steric height:1880 where $d_a = (\rho -\rho_o ) / \rho_o$ is the density anomaly used in \NEMO\ (cf. \autoref{subsec:TRA_eos}) 1881 in \autoref{eq:DIA_M_Bq} leads to a very simple form for the steric height: 1908 1882 1909 1883 \begin{equation} 1910 1884 \eta_s = - \frac{1}{\mathcal{A}} \mathcal{D} 1911 \label{eq: steric_Bq}1885 \label{eq:DIA_steric_Bq} 1912 1886 \end{equation} 1913 1887 1914 1888 The above formulation of the steric height of a Boussinesq ocean requires four remarks. 1915 1889 First, one can be tempted to define $\rho_o$ as the initial value of $\mathcal{M}/\mathcal{V}$, 1916 \ie set $\mathcal{D}_{t=0}=0$, so that the initial steric height is zero.1890 \ie\ set $\mathcal{D}_{t=0}=0$, so that the initial steric height is zero. 1917 1891 We do not recommend that. 1918 1892 Indeed, in this case $\rho_o$ depends on the initial state of the ocean. … … 1928 1902 does not change when the sea level is changing as it is the case in all global ocean GCMs 1929 1903 (wetting and drying of grid point is not allowed). 1930 1931 Third, the discretisation of \autoref{eq: steric_Bq} depends on the type of free surface which is considered.1932 In the non linear free surface case, \ie \key{vvl} defined, it is given by1904 1905 Third, the discretisation of \autoref{eq:DIA_steric_Bq} depends on the type of free surface which is considered. 1906 In the non linear free surface case, \ie\ \np[=.true.]{ln_linssh}{ln\_linssh}, it is given by 1933 1907 1934 1908 \[ 1935 1909 \eta_s = - \frac{ \sum_{i,\,j,\,k} d_a\; e_{1t} e_{2t} e_{3t} }{ \sum_{i,\,j,\,k} e_{1t} e_{2t} e_{3t} } 1936 % \label{eq: discrete_steric_Bq_nfs}1910 % \label{eq:DIA_discrete_steric_Bq_nfs} 1937 1911 \] 1938 1912 … … 1944 1918 \eta_s = - \frac{ \sum_{i,\,j,\,k} d_a\; e_{1t}e_{2t}e_{3t} + \sum_{i,\,j} d_a\; e_{1t}e_{2t} \eta } 1945 1919 { \sum_{i,\,j,\,k} e_{1t}e_{2t}e_{3t} + \sum_{i,\,j} e_{1t}e_{2t} \eta } 1946 % \label{eq: discrete_steric_Bq_fs}1920 % \label{eq:DIA_discrete_steric_Bq_fs} 1947 1921 \] 1948 1922 … … 1953 1927 so that there are no associated ocean currents. 1954 1928 Hence, the dynamically relevant sea level is the effective sea level, 1955 \ie the sea level as if sea ice (and snow) were converted to liquid seawater \citep{campin.marshall.ea_OM08}.1956 However, in the current version of \NEMO the sea-ice is levitating above the ocean without mass exchanges between1929 \ie\ the sea level as if sea ice (and snow) were converted to liquid seawater \citep{campin.marshall.ea_OM08}. 1930 However, in the current version of \NEMO\ the sea-ice is levitating above the ocean without mass exchanges between 1957 1931 ice and ocean. 1958 1932 Therefore the model effective sea level is always given by $\eta + \eta_s$, whether or not there is sea ice present. … … 1964 1938 \[ 1965 1939 \eta_s = - \frac{1}{\mathcal{A}} \int_D d_a(T,S_o,p_o) \,dv 1966 % \label{eq: thermosteric_Bq}1940 % \label{eq:DIA_thermosteric_Bq} 1967 1941 \] 1968 1942 1969 1943 where $S_o$ and $p_o$ are the initial salinity and pressure, respectively. 1970 1944 1971 Both steric and thermosteric sea level are computed in \mdl{diaar5} which needs the \key{diaar5} defined to 1972 be called. 1973 1974 % ------------------------------------------------------------------------------------------------------------- 1975 % Other Diagnostics 1976 % ------------------------------------------------------------------------------------------------------------- 1977 \section[Other diagnostics (\texttt{\textbf{key\_diahth}}, \texttt{\textbf{key\_diaar5}})] 1978 {Other diagnostics (\protect\key{diahth}, \protect\key{diaar5})} 1945 Both steric and thermosteric sea level are computed in \mdl{diaar5}. 1946 1947 %% ================================================================================================= 1948 \section{Other diagnostics} 1979 1949 \label{sec:DIA_diag_others} 1980 1950 … … 1982 1952 The available ready-to-add diagnostics modules can be found in directory DIA. 1983 1953 1984 \subsection[Depth of various quantities (\textit{diahth.F90})] 1985 {Depth of various quantities (\protect\mdl{diahth})}1954 %% ================================================================================================= 1955 \subsection[Depth of various quantities (\textit{diahth.F90})]{Depth of various quantities (\protect\mdl{diahth})} 1986 1956 1987 1957 Among the available diagnostics the following ones are obtained when defining the \key{diahth} CPP key: … … 1995 1965 - the depth of the thermocline (maximum of the vertical temperature gradient) (\mdl{diahth}) 1996 1966 1997 % ----------------------------------------------------------- 1998 % Poleward heat and salt transports 1999 % ----------------------------------------------------------- 2000 2001 \subsection[Poleward heat and salt transports (\textit{diaptr.F90})] 2002 {Poleward heat and salt transports (\protect\mdl{diaptr})} 2003 2004 %------------------------------------------namptr----------------------------------------- 2005 2006 \nlst{namptr} 2007 %----------------------------------------------------------------------------------------- 2008 2009 The poleward heat and salt transports, their advective and diffusive component, 2010 and the meriodional stream function can be computed on-line in \mdl{diaptr} \np{ln\_diaptr} to true 2011 (see the \textit{\ngn{namptr} } namelist below). 2012 When \np{ln\_subbas}\forcode{ = .true.}, transports and stream function are computed for the Atlantic, Indian, 1967 \begin{figure}[!t] 1968 \centering 1969 \includegraphics[width=0.66\textwidth]{DIA_mask_subasins} 1970 \caption[Decomposition of the World Ocean to compute transports as well as 1971 the meridional stream-function]{ 1972 Decomposition of the World Ocean (here ORCA2) into sub-basin used in to 1973 compute the heat and salt transports as well as the meridional stream-function: 1974 Atlantic basin (red), Pacific basin (green), 1975 Indian basin (blue), Indo-Pacific basin (blue+green). 1976 Note that semi-enclosed seas (Red, Med and Baltic seas) as well as 1977 Hudson Bay are removed from the sub-basins. 1978 Note also that the Arctic Ocean has been split into Atlantic and 1979 Pacific basins along the North fold line. 1980 } 1981 \label{fig:DIA_mask_subasins} 1982 \end{figure} 1983 1984 %% ================================================================================================= 1985 \subsection[CMIP specific diagnostics (\textit{diaar5.F90}, \textit{diaptr.F90})]{CMIP specific diagnostics (\protect\mdl{diaar5})} 1986 1987 A series of diagnostics has been added in the \mdl{diaar5} and \mdl{diaptr}. 1988 In \mdl{diaar5} they correspond to outputs that are required for AR5 simulations (CMIP5) 1989 (see also \autoref{sec:DIA_steric} for one of them). 1990 The module \mdl{diaar5} is active when one of the following outputs is required : 1991 global total volume (voltot), global mean ssh (sshtot), global total mass (masstot), global mean temperature (temptot), 1992 global mean ssh steric (sshsteric), global mean ssh thermosteric (sshthster), global mean salinity (saltot), 1993 sea water pressure at sea floor (botpres), dynamic sea surface height (sshdyn). 1994 1995 In \mdl{diaptr} when \np[=.true.]{ln_diaptr}{ln\_diaptr} 1996 (see the \nam{ptr}{ptr} namelist below) can be computed on-line the poleward heat and salt transports, 1997 their advective and diffusive component, and the meriodional stream function . 1998 When \np[=.true.]{ln_subbas}{ln\_subbas}, transports and stream function are computed for the Atlantic, Indian, 2013 1999 Pacific and Indo-Pacific Oceans (defined north of 30\deg{S}) as well as for the World Ocean. 2014 2000 The sub-basin decomposition requires an input file (\ifile{subbasins}) which contains three 2D mask arrays, 2015 the Indo-Pacific mask been deduced from the sum of the Indian and Pacific mask (\autoref{fig:mask_subasins}). 2016 2017 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2018 \begin{figure}[!t] 2019 \begin{center} 2020 \includegraphics[width=\textwidth]{Fig_mask_subasins} 2021 \caption{ 2022 \protect\label{fig:mask_subasins} 2023 Decomposition of the World Ocean (here ORCA2) into sub-basin used in to 2024 compute the heat and salt transports as well as the meridional stream-function: 2025 Atlantic basin (red), Pacific basin (green), Indian basin (bleue), Indo-Pacific basin (bleue+green). 2026 Note that semi-enclosed seas (Red, Med and Baltic seas) as well as Hudson Bay are removed from the sub-basins. 2027 Note also that the Arctic Ocean has been split into Atlantic and Pacific basins along the North fold line. 2028 } 2029 \end{center} 2030 \end{figure} 2031 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2032 2033 % ----------------------------------------------------------- 2034 % CMIP specific diagnostics 2035 % ----------------------------------------------------------- 2036 \subsection[CMIP specific diagnostics (\textit{diaar5.F90})] 2037 {CMIP specific diagnostics (\protect\mdl{diaar5})} 2038 2039 A series of diagnostics has been added in the \mdl{diaar5}. 2040 They corresponds to outputs that are required for AR5 simulations (CMIP5) 2041 (see also \autoref{sec:DIA_steric} for one of them). 2042 Activating those outputs requires to define the \key{diaar5} CPP key. 2043 2044 % ----------------------------------------------------------- 2045 % 25 hour mean and hourly Surface, Mid and Bed 2046 % ----------------------------------------------------------- 2001 the Indo-Pacific mask been deduced from the sum of the Indian and Pacific mask (\autoref{fig:DIA_mask_subasins}). 2002 2003 \begin{listing} 2004 \nlst{namptr} 2005 \caption{\forcode{&namptr}} 2006 \label{lst:namptr} 2007 \end{listing} 2008 2009 %% ================================================================================================= 2047 2010 \subsection{25 hour mean output for tidal models} 2048 2011 2049 %------------------------------------------nam_dia25h------------------------------------- 2050 2051 \nlst{nam_dia25h} 2052 %----------------------------------------------------------------------------------------- 2012 \begin{listing} 2013 \nlst{nam_dia25h} 2014 \caption{\forcode{&nam_dia25h}} 2015 \label{lst:nam_dia25h} 2016 \end{listing} 2053 2017 2054 2018 A module is available to compute a crudely detided M2 signal by obtaining a 25 hour mean. … … 2057 2021 This diagnostic is actived with the logical $ln\_dia25h$. 2058 2022 2059 % ----------------------------------------------------------- 2060 % Top Middle and Bed hourly output 2061 % ----------------------------------------------------------- 2023 %% ================================================================================================= 2062 2024 \subsection{Top middle and bed hourly output} 2063 2025 2064 %------------------------------------------nam_diatmb----------------------------------------------------- 2065 2066 \nlst{nam_diatmb} 2067 %---------------------------------------------------------------------------------------------------------- 2026 \begin{listing} 2027 \nlst{nam_diatmb} 2028 \caption{\forcode{&nam_diatmb}} 2029 \label{lst:nam_diatmb} 2030 \end{listing} 2068 2031 2069 2032 A module is available to output the surface (top), mid water and bed diagnostics of a set of standard variables. … … 2073 2036 This diagnostic is actived with the logical $ln\_diatmb$. 2074 2037 2075 % ----------------------------------------------------------- 2076 % Courant numbers 2077 % ----------------------------------------------------------- 2038 %% ================================================================================================= 2078 2039 \subsection{Courant numbers} 2079 2040 … … 2083 2044 \[ 2084 2045 C_u = |u|\frac{\rdt}{e_{1u}}, \quad C_v = |v|\frac{\rdt}{e_{2v}}, \quad C_w = |w|\frac{\rdt}{e_{3w}} 2085 % \label{eq: CFL}2046 % \label{eq:DIA_CFL} 2086 2047 \] 2087 2048 … … 2092 2053 Values greater than 1 indicate that information is propagated across more than one grid cell in a single time step. 2093 2054 2094 The variables can be activated by setting the \np{nn \_diacfl} namelist parameter to 1 in the \ngn{namctl} namelist.2055 The variables can be activated by setting the \np{nn_diacfl}{nn\_diacfl} namelist parameter to 1 in the \nam{ctl}{ctl} namelist. 2095 2056 The diagnostics will be written out to an ascii file named cfl\_diagnostics.ascii. 2096 2057 In this file the maximum value of $C_u$, $C_v$, and $C_w$ are printed at each timestep along with the coordinates of … … 2098 2059 At the end of the model run the maximum value of $C_u$, $C_v$, and $C_w$ for the whole model run is printed along 2099 2060 with the coordinates of each. 2100 The maximum values from the run are also copied to the ocean.output file. 2101 2102 % ================================================================ 2103 2104 \biblio 2105 2106 \pindex 2061 The maximum values from the run are also copied to the ocean.output file. 2062 2063 \subinc{\input{../../global/epilogue}} 2107 2064 2108 2065 \end{document}
Note: See TracChangeset
for help on using the changeset viewer.