Changeset 11573 for NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/doc/latex/NEMO/subfiles/chap_DIA.tex
- Timestamp:
- 2019-09-19T11:18:03+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/doc/latex/NEMO/subfiles/chap_DIA.tex
r11218 r11573 8 8 \label{chap:DIA} 9 9 10 \minitoc 10 \chaptertoc 11 12 \vfill 13 \begin{figure}[b] 14 \subsubsection*{Changes record} 15 \begin{tabular}{l||l|m{0.65\linewidth}} 16 Release & Author & Modifications \\ 17 {\em 4.0} & {\em Mirek Andrejczuk, Massimiliano Drudi} & {\em } \\ 18 {\em } & {\em Dorotea Iovino, Nicolas Martin} & {\em } \\ 19 {\em 3.6} & {\em Gurvan Madec, Sebastien Masson } & {\em } \\ 20 {\em 3.4} & {\em Gurvan Madec, Rachid Benshila, Andrew Coward } & {\em } \\ 21 {\em } & {\em Christian Ethe, Sebastien Masson } & {\em } \\ 22 \end{tabular} 23 \end{figure} 11 24 12 25 \newpage 13 26 14 27 % ================================================================ 15 % Old Model Output 28 % Old Model Output 16 29 % ================================================================ 17 \section{ Old model output (default)}30 \section{Model output} 18 31 \label{sec:DIA_io_old} 19 32 … … 28 41 29 42 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$.43 The output listing is stored in the \textit{ocean.output} file. 44 The information is printed from within the code on the logical unit \texttt{numout}. 32 45 To locate these prints, use the UNIX command "\textit{grep -i numout}" in the source code directory. 33 46 … … 46 59 \label{sec:DIA_iom} 47 60 48 Since version 3.2, iomput is the NEMOoutput interface of choice.61 Since version 3.2, iomput is the \NEMO\ output interface of choice. 49 62 It has been designed to be simple to use, flexible and efficient. 50 The two main purposes of iomput are: 63 The two main purposes of iomput are: 51 64 52 65 \begin{enumerate} … … 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 … … 81 94 in a very easy way. 82 95 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: 96 Examples of the XML files that control the outputs can be found in: 84 97 \path{cfgs/ORCA2_ICE_PISCES/EXPREF/iodef.xml}, 85 98 \path{cfgs/SHARED/field_def_nemo-oce.xml}, … … 88 101 89 102 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)103 Iomput provides the possibility to specify N dedicated I/O processes (in addition to the \NEMO\ processes) 91 104 to collect and write the outputs. 92 105 With an appropriate choice of N by the user, the bottleneck associated with the writing of 93 106 the output files can be greatly reduced. 94 107 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).108 In version 3.6, the \rou{iom\_put} interface depends on 109 an external code called \href{https://forge.ipsl.jussieu.fr/ioserver/browser/XIOS/branchs/xios-2.5}{XIOS-2.5} 110 %(use of revision 618 or higher is required). 98 111 This new IO server can take advantage of the parallel I/O functionality of NetCDF4 to 99 112 create a single output file and therefore to bypass the rebuilding phase. 100 113 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).114 an HDF5 library that has been correctly compiled (\ie\ with the configure option $--$enable-parallel). 102 115 Note that the files created by iomput through XIOS are incompatible with NetCDF3. 103 116 All post-processsing and visualization tools must therefore be compatible with NetCDF4 and not only NetCDF3. 104 117 105 118 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.119 where N is typically much less than the number of \NEMO\ processors, will reduce the number of output files created. 120 This can greatly reduce the post-processing burden usually associated with using large numbers of \NEMO\ processors. 108 121 Note that for smaller configurations, the rebuilding phase can be avoided, 109 122 even without a parallel-enabled NetCDF4 library, simply by employing only one dedicated I/O server. … … 111 124 \subsection{XIOS: Reading and writing restart file} 112 125 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,126 XIOS may be used to read single file restart produced by \NEMO. Currently only the variables written to 127 file \forcode{numror} can be handled by XIOS. To activate restart reading using XIOS, set \np{ln\_xios\_read}\forcode{=.true. } 128 in \textit{namelist\_cfg}. This setting will be ignored when multiple restart files are present, and default \NEMO 129 functionality will be used for reading. There is no need to change iodef.xml file to use XIOS to read 130 restart, all definitions are done within the \NEMO\ code. For high resolution configuration, however, 118 131 there may be a need to add the following line in iodef.xml (xios context): 119 132 … … 122 135 \end{xmllines} 123 136 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),137 This variable sets timeout for reading. 138 139 If XIOS is to be used to read restart from file generated with an earlier \NEMO\ version (3.6 for instance), 127 140 dimension \forcode{z} defined in restart file must be renamed to \forcode{nav_lev}.\\ 128 141 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. 142 XIOS can also be used to write \NEMO\ restart. A namelist parameter \np{nn\_wxios} is used to determine the 143 type of restart \NEMO\ will write. If it is set to 0, default \NEMO\ functionality will be used - each 144 processor writes its own restart file; if it is set to 1 XIOS will write restart into a single file; 145 for \np{nn\_wxios}\forcode{=2} the restart will be written by XIOS into multiple files, one for each XIOS server. 146 Note, however, that \textbf{\NEMO\ will not read restart generated by XIOS when \np{nn\_wxios}\forcode{=2}}. The restart will 147 have to be rebuild before continuing the run. This option aims to reduce number of restart files generated by \NEMO\ only, 148 and may be useful when there is a need to change number of processors used to run simulation. 136 149 137 150 If an additional variable must be written to a restart file, the following steps are needed: 138 151 \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} - 152 \item[step 1:] add variable name to a list of restart variables (in subroutine \rou{iom\_set\_rst\_vars,} \mdl{iom}) and 153 define correct grid for the variable (\forcode{grid_N_3D} - 3D variable, \forcode{grid_N} - 2D variable, \forcode{grid_vector} - 141 154 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 155 \item[step 2:] add variable to the list of fields written by restart. This can be done either in subroutine 156 \rou{iom\_set\_rstw\_core} (\mdl{iom}) or by calling \rou{iom\_set\_rstw\_active} (\mdl{iom}) with the name of a variable 157 as an argument. This convention follows approach for writing restart using iom, where variables are 145 158 written either by \rou{rst\_write} or by calling \rou{iom\_rstput} from individual routines. 146 159 \end{description} … … 161 174 \xmlline|<variable id="using_server" type="bool"></variable>| 162 175 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. 176 The \texttt{using\_server} setting determines whether or not the server will be used in 177 \textit{attached mode} 178 (as a library) [\texttt{> false <}] or in \textit{detached mode} 179 (as an external executable on N additional, dedicated cpus) [\texttt{ > true <}]. 180 The \textit{attached mode} is simpler to use but much less efficient for 181 massively parallel applications. 167 182 The type of each file can be either ''multiple\_file'' or ''one\_file''. 168 183 169 184 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.185 then each \NEMO\ process will also act as an IO server and produce its own set of output files. 171 186 Superficially, this emulates the standard behaviour in previous versions. 172 187 However, the subdomain written out by each process does not correspond to … … 180 195 write to its own set of output files. 181 196 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. 197 write (in parallel) to a single output file. 183 198 Note running in detached mode requires launching a Multiple Process Multiple Data (MPMD) parallel job. 184 199 The following subsection provides a typical example but the syntax will vary in different MPP environments. … … 187 202 188 203 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.204 The number of cores dedicated to XIOS should be from \texttildelow1/10 to \texttildelow1/50 of the number of 205 cores dedicated to \NEMO. 191 206 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.207 this is a general recommendation and not specific to \NEMO. 193 208 It is difficult to provide precise recommendations because the optimal choice will depend on 194 the particular hardware properties of the target system 209 the particular hardware properties of the target system 195 210 (parallel filesystem performance, available memory, memory bandwidth etc.) 196 211 and the volume and frequency of data to be created. … … 200 215 \subsubsection{Control of XIOS: the context in iodef.xml} 201 216 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. 217 As well as the \texttt{using\_server} flag, other controls on the use of XIOS are set in 218 the XIOS context in \textit{iodef.xml}. 203 219 See the XML basics section below for more details on XML syntax and rules. 204 220 205 221 \begin{table} 206 \scriptsize207 222 \begin{tabularx}{\textwidth}{|lXl|} 208 223 \hline … … 213 228 \hline 214 229 buffer\_size & 215 buffer size used by XIOS to send data from NEMOto XIOS.230 buffer size used by XIOS to send data from \NEMO\ to XIOS. 216 231 Larger is more efficient. 217 232 Note that needed/used buffer sizes are summarized at the end of the job & … … 219 234 \hline 220 235 buffer\_server\_factor\_size & 221 ratio between NEMOand XIOS buffer size.236 ratio between \NEMO\ and XIOS buffer size. 222 237 Should be 2. & 223 238 2 \\ … … 236 251 \hline 237 252 oasis\_codes\_id & 238 when using oasis, define the identifier of NEMOin the namcouple.253 when using oasis, define the identifier of \NEMO\ in the namcouple. 239 254 Note that the identifier of XIOS is xios.x & 240 255 oceanx \\ … … 247 262 \subsubsection{Installation} 248 263 249 As mentioned, XIOS is supported separately and must be downloaded and compiled before it can be used with NEMO.264 As mentioned, XIOS is supported separately and must be downloaded and compiled before it can be used with \NEMO. 250 265 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.266 \NEMO\ will need to link to the compiled XIOS library. 252 267 The \href{https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/install.html#extract-and-install-xios} 253 268 {Extract and install XIOS} guide provides an example illustration of how this can be achieved. … … 262 277 \begin{enumerate} 263 278 \item[1.] 264 in NEMOcode, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array.279 in \NEMO\ code, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array. 265 280 \item[2.] 266 281 If necessary, add \forcode{USE iom ! I/O manager library} to the list of used modules in … … 275 290 <field_group id="grid_T" grid_ref="grid_T_3D"> <!-- T grid --> 276 291 ... 277 <field id="identifier" long_name="blabla" ... /> 292 <field id="identifier" long_name="blabla" ... /> 278 293 ... 279 </field_definition> 294 </field_definition> 280 295 \end{xmllines} 281 296 … … 300 315 301 316 \begin{xmllines} 302 <file id="file1" .../> 317 <file id="file1" .../> 303 318 ... 304 <field field_ref="identifier" /> 319 <field field_ref="identifier" /> 305 320 ... 306 </file> 321 </file> 307 322 \end{xmllines} 308 323 … … 320 335 See \href{http://www.xmlnews.org/docs/xml-basics.html}{here} for more details. 321 336 322 \subsubsection{Structure of the XML file used in NEMO}337 \subsubsection{Structure of the XML file used in \NEMO} 323 338 324 339 The XML file used in XIOS is structured by 7 families of tags: … … 327 342 328 343 \begin{table} 329 \scriptsize330 344 \begin{tabular*}{\textwidth}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 331 345 \hline … … 359 373 360 374 \begin{table} 361 \scriptsize362 375 \begin{tabular}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 363 376 \hline … … 369 382 \xmlcode{<context id="xios" ... >} \\ 370 383 \hline 371 context nemo & context containing IO information for NEMO (mother grid when using AGRIF) &384 context nemo & context containing IO information for \NEMO\ (mother grid when using AGRIF) & 372 385 \xmlcode{<context id="nemo" ... >} \\ 373 386 \hline 374 context 1\_nemo & context containing IO information for NEMO child grid 1 (when using AGRIF) &387 context 1\_nemo & context containing IO information for \NEMO\ child grid 1 (when using AGRIF) & 375 388 \xmlcode{<context id="1_nemo" ... >} \\ 376 389 \hline 377 context n\_nemo & context containing IO information for NEMO child grid n (when using AGRIF) &390 context n\_nemo & context containing IO information for \NEMO\ child grid n (when using AGRIF) & 378 391 \xmlcode{<context id="n_nemo" ... >} \\ 379 392 \hline … … 384 397 385 398 \begin{table} 386 \scriptsize387 399 \begin{tabular}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 388 400 \hline … … 400 412 \end{table} 401 413 402 \noindent Each context tag related to NEMO (mother or child grids) is divided into 5 parts414 \noindent Each context tag related to \NEMO\ (mother or child grids) is divided into 5 parts 403 415 (that can be defined in any order): 404 416 405 417 \begin{table} 406 \scriptsize407 418 \begin{tabular}{|p{0.15\textwidth}p{0.4\textwidth}p{0.35\textwidth}|} 408 419 \hline … … 434 445 The inclusion of XML files into the main XML file can be done through the attribute src: 435 446 \xmlline|<context src="./nemo_def.xml" />| 436 437 \noindent In NEMO, by default, the field definition is done in 3 separate files (447 448 \noindent In \NEMO, by default, the field definition is done in 3 separate files ( 438 449 \path{cfgs/SHARED/field_def_nemo-oce.xml}, 439 450 \path{cfgs/SHARED/field_def_nemo-pisces.xml} and … … 442 453 are included in the main iodef.xml file through the following commands: 443 454 \begin{xmllines} 444 <context id="nemo" src="./context_nemo.xml"/> 455 <context id="nemo" src="./context_nemo.xml"/> 445 456 \end{xmllines} 446 457 … … 457 468 \begin{xmllines} 458 469 <field_definition operation="average" > 459 <field id="sst" /> <!-- averaged sst --> 460 <field id="sss" operation="instant"/> <!-- instantaneous sss --> 461 </field_definition> 470 <field id="sst" /> <!-- averaged sst --> 471 <field id="sss" operation="instant"/> <!-- instantaneous sss --> 472 </field_definition> 462 473 \end{xmllines} 463 474 … … 476 487 </field_definition> 477 488 <file_definition> 478 <file id="myfile" output_freq="1d" /> 489 <file id="myfile" output_freq="1d" /> 479 490 <field field_ref="sst" /> <!-- default def --> 480 491 <field field_ref="sss" long_name="my description" /> <!-- overwrite --> 481 492 </file> 482 </file_definition> 493 </file_definition> 483 494 \end{xmllines} 484 495 … … 523 534 <field_group group_ref="groupU" /> 524 535 <field field_ref="uocetr_eff" /> <!-- add another field --> 525 </file> 536 </file> 526 537 \end{xmllines} 527 538 … … 535 546 Horizontal subdomains are defined through the attributs zoom\_ibegin, zoom\_jbegin, zoom\_ni, zoom\_nj of 536 547 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 548 It must therefore be done in the domain part of the XML file. 549 For example, in \path{cfgs/SHARED/domain_def.xml}, we provide the following example of a definition of 539 550 a 5 by 5 box with the bottom left corner at point (10,10). 540 551 … … 553 564 \end{xmllines} 554 565 555 Moorings are seen as an extrem case corresponding to a 1 by 1 subdomain. 566 Moorings are seen as an extrem case corresponding to a 1 by 1 subdomain. 556 567 The Equatorial section, the TAO, RAMA and PIRATA moorings are already registered in the code and 557 568 can therefore be outputted without taking care of their (i,j) position in the grid. … … 566 577 \end{xmllines} 567 578 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, 579 Note that if the domain decomposition used in XIOS cuts the subdomain in several parts and if 580 you use the ''multiple\_file'' type for your output files, 581 you will endup with several files you will need to rebuild using unprovided tools (like ncpdq and ncrcat, 571 582 \href{http://nco.sourceforge.net/nco.html#Concatenation}{see nco manual}). 572 583 We are therefore advising to use the ''one\_file'' type in this case. … … 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 NEMO680 \subsubsection{Other controls of the XML attributes from \NEMO} 681 682 The values of some attributes are defined by subroutine calls within \NEMO 673 683 (calls to iom\_set\_domain\_attr, iom\_set\_axis\_attr and iom\_set\_field\_attr in \mdl{iom}). 674 684 Any definition given in the XML file will be overwritten. … … 681 691 682 692 \begin{table} 683 \scriptsize 684 \begin{tabularx}{\textwidth}{|X|c|c|c|} 693 \begin{tabular}{|l|c|c|} 685 694 \hline 686 695 tag ids affected by automatic definition of some of their attributes & 687 696 name attribute & 688 attribute value \\697 attribute value \\ 689 698 \hline 690 699 \hline 691 700 field\_definition & 692 701 freq\_op & 693 \np{rn\_rdt} \\702 \np{rn\_rdt} \\ 694 703 \hline 695 704 SBC & 696 705 freq\_op & 697 \np{rn\_rdt} $\times$ \np{nn\_fsbc} \\706 \np{rn\_rdt} $\times$ \np{nn\_fsbc} \\ 698 707 \hline 699 708 ptrc\_T & 700 709 freq\_op & 701 \np{rn\_rdt} $\times$ \np{nn\_dttrc} \\710 \np{rn\_rdt} $\times$ \np{nn\_dttrc} \\ 702 711 \hline 703 712 diad\_T & 704 713 freq\_op & 705 \np{rn\_rdt} $\times$ \np{nn\_dttrc} \\714 \np{rn\_rdt} $\times$ \np{nn\_dttrc} \\ 706 715 \hline 707 716 EqT, EqU, EqW & 708 717 jbegin, ni, & 709 according to the grid \\710 &718 according to the grid \\ 719 & 711 720 name\_suffix & 712 \\721 \\ 713 722 \hline 714 723 TAO, RAMA and PIRATA moorings & 715 724 zoom\_ibegin, zoom\_jbegin, & 716 according to the grid \\717 &725 according to the grid \\ 726 & 718 727 name\_suffix & 719 \\720 \hline 721 \end{tabular x}728 \\ 729 \hline 730 \end{tabular} 722 731 \end{table} 723 732 … … 725 734 726 735 \subsection{XML reference tables} 727 \label{subsec: IOM_xmlref}736 \label{subsec:DIA_IOM_xmlref} 728 737 729 738 \begin{enumerate} … … 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. … … 773 782 774 783 \begin{xmllines} 775 <file_group id="1d" output_freq="1d" output_level="10" enabled=".true."> <!-- 1d files --> 784 <file_group id="1d" output_freq="1d" output_level="10" enabled=".true."> <!-- 1d files --> 776 785 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 777 786 <field field_ref="sst" name="tos" > … … 782 791 <variable id="my_global_attribute" type="string" > blabla_global </variable> 783 792 </file> 784 </file_group> 793 </file_group> 785 794 \end{xmllines} 786 795 … … 797 806 798 807 \begin{xmllines} 799 <file_group id="5d" output_freq="5d" output_level="10" enabled=".true." > <!-- 5d files --> 808 <file_group id="5d" output_freq="5d" output_level="10" enabled=".true." > <!-- 5d files --> 800 809 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 801 810 <field field_ref="toce" operation="instant" freq_op="5d" > @toce_e3t / @e3t </field> 802 811 </file> 803 </file_group> 812 </file_group> 804 813 \end{xmllines} 805 814 … … 826 835 827 836 \begin{xmllines} 828 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 837 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 829 838 <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" 839 <field field_ref="ssh" name="sshstd" long_name="sea_surface_temperature_standard_deviation" 831 840 operation="instant" freq_op="1m" > 832 841 sqrt( @ssh2 - @ssh * @ssh ) 833 842 </field> 834 843 </file> 835 </file_group> 844 </file_group> 836 845 \end{xmllines} 837 846 … … 840 849 here we use the default, average. 841 850 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 )'': 851 Operation="instant" refers to the temporal operation to be performed on the field ''sqrt( @ssh2 - @ssh * @ssh )'': 843 852 here the temporal average is alreday done by the ``@'' function so we just use instant. 844 853 field\_ref="ssh" means that attributes not explicitely defined, are inherited from ssh field. … … 858 867 859 868 \begin{xmllines} 860 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 869 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 861 870 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 862 871 <field field_ref="sst" name="sstdcy" long_name="amplitude of sst diurnal cycle" operation="average" freq_op="1d" > … … 864 873 </field> 865 874 </file> 866 </file_group> 875 </file_group> 867 876 \end{xmllines} 868 877 … … 880 889 881 890 \begin{table} 882 \scriptsize883 891 \begin{tabularx}{\textwidth}{|l|X|X|l|X|} 884 892 \hline … … 903 911 \hline 904 912 \end{tabularx} 905 \caption{ Context tags}913 \caption{XIOS: context tags} 906 914 \end{table} 907 915 908 916 \begin{table} 909 \scriptsize910 917 \begin{tabularx}{\textwidth}{|l|X|X|X|l|} 911 918 \hline … … 938 945 \hline 939 946 \end{tabularx} 940 \caption{ Field tags ("\ttfamily{field\_*}")}947 \caption{XIOS: field tags ("\texttt{field\_*}")} 941 948 \end{table} 942 949 943 950 \begin{table} 944 \scriptsize945 951 \begin{tabularx}{\textwidth}{|l|X|X|X|l|} 946 952 \hline … … 974 980 \hline 975 981 \end{tabularx} 976 \caption{ File tags ("\ttfamily{file\_*}")}982 \caption{XIOS: file tags ("\texttt{file\_*}")} 977 983 \end{table} 978 984 979 985 \begin{table} 980 \scriptsize981 986 \begin{tabularx}{\textwidth}{|l|X|X|X|X|} 982 987 \hline … … 1007 1012 \hline 1008 1013 \end{tabularx} 1009 \caption{ Axis tags ("\ttfamily{axis\_*}")}1014 \caption{XIOS: axis tags ("\texttt{axis\_*}")} 1010 1015 \end{table} 1011 1016 1012 1017 \begin{table} 1013 \scriptsize1014 1018 \begin{tabularx}{\textwidth}{|l|X|X|X|X|} 1015 1019 \hline … … 1040 1044 \hline 1041 1045 \end{tabularx} 1042 \caption{ Domain tags ("\ttfamily{domain\_*)}"}1046 \caption{XIOS: domain tags ("\texttt{domain\_*)}"} 1043 1047 \end{table} 1044 1048 1045 1049 \begin{table} 1046 \scriptsize1047 1050 \begin{tabularx}{\textwidth}{|l|X|X|X|X|} 1048 1051 \hline … … 1073 1076 \hline 1074 1077 \end{tabularx} 1075 \caption{ Grid tags ("\ttfamily{grid\_*}")}1078 \caption{XIOS: grid tags ("\texttt{grid\_*}")} 1076 1079 \end{table} 1077 1080 … … 1079 1082 1080 1083 \begin{table} 1081 \scriptsize1082 1084 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1083 1085 \hline … … 1114 1116 \hline 1115 1117 \end{tabularx} 1116 \caption{ Reference attributes ("\ttfamily{*\_ref}")}1118 \caption{XIOS: reference attributes ("\texttt{*\_ref}")} 1117 1119 \end{table} 1118 1120 1119 1121 \begin{table} 1120 \scriptsize1121 1122 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1122 1123 \hline … … 1150 1151 \hline 1151 1152 \end{tabularx} 1152 \caption{ Domain attributes ("\ttfamily{zoom\_*}")}1153 \caption{XIOS: domain attributes ("\texttt{zoom\_*}")} 1153 1154 \end{table} 1154 1155 1155 1156 \begin{table} 1156 \scriptsize1157 1157 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1158 1158 \hline … … 1205 1205 \hline 1206 1206 \end{tabularx} 1207 \caption{ File attributes}1207 \caption{XIOS: file attributes} 1208 1208 \end{table} 1209 1209 1210 1210 \begin{table} 1211 \scriptsize1212 1211 \begin{tabularx}{\textwidth}{|l|X|l|l|} 1213 1212 \hline … … 1254 1253 \hline 1255 1254 \end{tabularx} 1256 \caption{ Field attributes}1255 \caption{XIOS: field attributes} 1257 1256 \end{table} 1258 1257 1259 1258 \begin{table} 1260 \scriptsize1261 1259 \begin{tabularx}{\textwidth}{|l|X|X|X|} 1262 1260 \hline … … 1313 1311 \hline 1314 1312 \end{tabularx} 1315 \caption{ Miscellaneous attributes}1313 \caption{XIOS: miscellaneous attributes} 1316 1314 \end{table} 1317 1315 1318 1316 \subsection{CF metadata standard compliance} 1319 1317 1320 Output from the XIOS IO server is compliant with 1318 Output from the XIOS IO server is compliant with 1321 1319 \href{http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html}{version 1.5} of 1322 the CF metadata standard. 1320 the CF metadata standard. 1323 1321 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.1322 section \autoref{subsec:DIA_IOM_xmlref}) the metadata should, for the most part, comply with the CF-1.5 standard. 1325 1323 1326 1324 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 \n gn{namrun} namelist.1325 the namelist parameter \np{ln\_cfmeta} in the \nam{run} namelist. 1328 1326 This must be set to true if these metadata are to be included in the output files. 1329 1327 … … 1332 1330 % NetCDF4 support 1333 1331 % ================================================================ 1334 \section[NetCDF4 support (\texttt{\textbf{key\_netcdf4}})] 1335 {NetCDF4 support (\protect\key{netcdf4})} 1332 \section[NetCDF4 support (\texttt{\textbf{key\_netcdf4}})]{NetCDF4 support (\protect\key{netcdf4})} 1336 1333 \label{sec:DIA_nc4} 1337 1334 … … 1347 1344 Datasets created with chunking and compression are not backwards compatible with NetCDF3 "classic" format but 1348 1345 most analysis codes can be relinked simply with the new libraries and will then read both NetCDF3 and NetCDF4 files. 1349 NEMOexecutables linked with NetCDF4 libraries can be made to produce NetCDF3 files by1350 setting the \np{ln\_nc4zip} logical to false in the \ textit{namnc4} namelist:1346 \NEMO\ executables linked with NetCDF4 libraries can be made to produce NetCDF3 files by 1347 setting the \np{ln\_nc4zip} logical to false in the \nam{nc4} namelist: 1351 1348 1352 1349 %------------------------------------------namnc4---------------------------------------------------- 1353 1350 1354 \nlst{namnc4} 1351 \begin{listing} 1352 \nlst{namnc4} 1353 \caption{\forcode{&namnc4}} 1354 \label{lst:namnc4} 1355 \end{listing} 1355 1356 %------------------------------------------------------------------------------------------------------------- 1356 1357 … … 1390 1391 \end{forlines} 1391 1392 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 with1393 \noindent for a standard ORCA2\_LIM configuration gives chunksizes of {\small\texttt 46x38x1} respectively in 1394 the mono-processor case (\ie\ global domain of {\small\texttt 182x149x31}). 1395 An illustration of the potential space savings that NetCDF4 chunking and compression provides is given in 1396 table \autoref{tab:DIA_NC4} which compares the results of two short runs of the ORCA2\_LIM reference configuration with 1396 1397 a 4x2 mpi partitioning. 1397 1398 Note the variation in the compression ratio achieved which reflects chiefly the dry to wet volume ratio of … … 1400 1401 %------------------------------------------TABLE---------------------------------------------------- 1401 1402 \begin{table} 1402 \scriptsize1403 1403 \centering 1404 1404 \begin{tabular}{lrrr} … … 1432 1432 ORCA2\_2d\_grid\_W\_0007.nc & 4416 & 1368 & 70\% \\ 1433 1433 \end{tabular} 1434 \caption{ 1435 \protect\label{tab:NC4} 1436 Filesize comparison between NetCDF3 and NetCDF4 with chunking and compression 1437 } 1434 \caption{Filesize comparison between NetCDF3 and NetCDF4 with chunking and compression} 1435 \label{tab:DIA_NC4} 1438 1436 \end{table} 1439 1437 %---------------------------------------------------------------------------------------------------- 1440 1438 1441 1439 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 to1440 \rou{iom\_put} calls are set via an equivalent and identically named namelist to \nam{nc4} in 1441 \textit{xmlio\_server.def}. 1442 Typically this namelist serves the mean files whilst the \nam{nc4} in the main namelist file continues to 1445 1443 serve the restart files. 1446 1444 This duplication is unfortunate but appropriate since, if using io\_servers, the domain sizes of 1447 1445 the individual files produced by the io\_server processes may be different to those produced by 1448 1446 the invidual processing regions and different chunking choices may be desired. 1449 1447 1450 1448 % ------------------------------------------------------------------------------------------------------------- 1451 1449 % Tracer/Dynamics Trends 1452 1450 % ------------------------------------------------------------------------------------------------------------- 1453 \section[Tracer/Dynamics trends (\texttt{namtrd})] 1454 {Tracer/Dynamics trends (\protect\ngn{namtrd})} 1451 \section[Tracer/Dynamics trends (\forcode{&namtrd})]{Tracer/Dynamics trends (\protect\nam{trd})} 1455 1452 \label{sec:DIA_trd} 1456 1453 1457 1454 %------------------------------------------namtrd---------------------------------------------------- 1458 1455 1459 \nlst{namtrd} 1456 \begin{listing} 1457 \nlst{namtrd} 1458 \caption{\forcode{&namtrd}} 1459 \label{lst:namtrd} 1460 \end{listing} 1460 1461 %------------------------------------------------------------------------------------------------------------- 1461 1462 1462 1463 Each trend of the dynamics and/or temperature and salinity time evolution equations can be send to 1463 1464 \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.1465 (\ie\ at the end of each \textit{dyn....F90} and/or \textit{tra....F90} routines). 1466 This capability is controlled by options offered in \nam{trd} namelist. 1466 1467 Note that the output are done with XIOS, and therefore the \key{iomput} is required. 1467 1468 1468 What is done depends on the \n gn{namtrd} logical set to \forcode{.true.}:1469 What is done depends on the \nam{trd} logical set to \forcode{.true.}: 1469 1470 1470 1471 \begin{description} … … 1489 1490 \end{description} 1490 1491 1491 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1492 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1492 1493 the \key{trdtrc} and \key{trdmxl\_trc} CPP keys. 1493 1494 1494 1495 \textbf{Note that} in the current version (v3.6), many changes has been introduced but not fully tested. 1495 1496 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 and none of the options have been tested with variable volume (\ie\ \np{ln\_linssh}\forcode{=.true.}). 1497 1498 1498 1499 % ------------------------------------------------------------------------------------------------------------- 1499 1500 % On-line Floats trajectories 1500 1501 % ------------------------------------------------------------------------------------------------------------- 1501 \section[FLO: On-Line Floats trajectories (\texttt{\textbf{key\_floats}})] 1502 {FLO: On-Line Floats trajectories (\protect\key{floats})} 1503 \label{sec:FLO} 1502 \section[FLO: On-Line Floats trajectories (\texttt{\textbf{key\_floats}})]{FLO: On-Line Floats trajectories (\protect\key{floats})} 1503 \label{sec:DIA_FLO} 1504 1504 %--------------------------------------------namflo------------------------------------------------------- 1505 1505 1506 \nlst{namflo} 1506 \begin{listing} 1507 \nlst{namflo} 1508 \caption{\forcode{&namflo}} 1509 \label{lst:namflo} 1510 \end{listing} 1507 1511 %-------------------------------------------------------------------------------------------------------------- 1508 1512 1509 1513 The on-line computation of floats advected either by the three dimensional velocity field or constraint to 1510 1514 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.1515 Options are defined by \nam{flo} namelist variables. 1512 1516 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.}).1517 or on a $4^th$ Runge-Hutta algorithm (\np{ln\_flork4}\forcode{=.true.}). 1514 1518 Note that the \cite{blanke.raynaud_JPO97} algorithm have the advantage of providing trajectories which 1515 1519 are consistent with the numeric of the code, so that the trajectories never intercept the bathymetry. … … 1518 1522 1519 1523 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}.1524 (IJK coordinates, (\np{ln\_ariane}\forcode{=.true.}) ) or with longitude and latitude. 1525 1526 In case of Ariane convention, input filename is \textit{init\_float\_ariane}. 1523 1527 Its format is: \\ 1524 { \scriptsize\texttt{I J K nisobfl itrash}}1528 { \texttt{I J K nisobfl itrash}} 1525 1529 1526 1530 \noindent with: … … 1528 1532 - I,J,K : indexes of initial position 1529 1533 1530 - nisobfl: 0 for an isobar float, 1 for a float following the w velocity 1534 - nisobfl: 0 for an isobar float, 1 for a float following the w velocity 1531 1535 1532 1536 - itrash : set to zero; it is a dummy variable to respect Ariane Tools convention … … 1534 1538 \noindent Example: \\ 1535 1539 \noindent 1536 { \scriptsize1540 { 1537 1541 \texttt{ 1538 1542 100.00000 90.00000 -1.50000 1.00000 0.00000 \\ … … 1545 1549 In the other case (longitude and latitude), input filename is init\_float. 1546 1550 Its format is: \\ 1547 { \scriptsize\texttt{Long Lat depth nisobfl ngrpfl itrash}}1551 { \texttt{Long Lat depth nisobfl ngrpfl itrash}} 1548 1552 1549 1553 \noindent with: … … 1559 1563 \noindent Example: \\ 1560 1564 \noindent 1561 { \scriptsize1565 { 1562 1566 \texttt{ 1563 1567 20.0 0.0 0.0 0 1 1 \\ … … 1569 1573 1570 1574 \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.} ),1575 When initial positions are read in a restart file (\np{ln\_rstflo}\forcode{=.true.} ), 1572 1576 \np{jpnflnewflo} can be added in the initialization file. 1573 1577 … … 1577 1581 creation of the float restart file. 1578 1582 1579 Output data can be written in ascii files (\np{ln\_flo\_ascii}\forcode{ =.true.}).1583 Output data can be written in ascii files (\np{ln\_flo\_ascii}\forcode{=.true.}). 1580 1584 In that case, output filename is trajec\_float. 1581 1585 1582 Another possiblity of writing format is Netcdf (\np{ln\_flo\_ascii}\forcode{ =.false.}) with1586 Another possiblity of writing format is Netcdf (\np{ln\_flo\_ascii}\forcode{=.false.}) with 1583 1587 \key{iomput} and outputs selected in iodef.xml. 1584 1588 Here it is an example of specification to put in files description section: … … 1602 1606 % Harmonic analysis of tidal constituents 1603 1607 % ------------------------------------------------------------------------------------------------------------- 1604 \section[Harmonic analysis of tidal constituents (\texttt{\textbf{key\_diaharm}})] 1605 {Harmonic analysis of tidal constituents (\protect\key{diaharm})} 1608 \section[Harmonic analysis of tidal constituents (\texttt{\textbf{key\_diaharm}})]{Harmonic analysis of tidal constituents (\protect\key{diaharm})} 1606 1609 \label{sec:DIA_diag_harm} 1607 1610 1608 1611 %------------------------------------------nam_diaharm---------------------------------------------------- 1609 1612 % 1610 \nlst{nam_diaharm} 1613 \begin{listing} 1614 \nlst{nam_diaharm} 1615 \caption{\forcode{&nam_diaharm}} 1616 \label{lst:nam_diaharm} 1617 \end{listing} 1611 1618 %---------------------------------------------------------------------------------------------------------- 1612 1619 … … 1614 1621 This on-line Harmonic analysis is actived with \key{diaharm}. 1615 1622 1616 Some parameters are available in namelist \n gn{nam\_diaharm}:1623 Some parameters are available in namelist \nam{\_diaharm}: 1617 1624 1618 1625 - \np{nit000\_han} is the first time step used for harmonic analysis … … 1622 1629 - \np{nstep\_han} is the time step frequency for harmonic analysis 1623 1630 1624 - \np{nb\_ana} is the number of harmonics to analyse1631 % - \np{nb\_ana} is the number of harmonics to analyse 1625 1632 1626 1633 - \np{tname} is an array with names of tidal constituents to analyse … … 1650 1657 % Sections transports 1651 1658 % ------------------------------------------------------------------------------------------------------------- 1652 \section[Transports across sections (\texttt{\textbf{key\_diadct}})] 1653 {Transports across sections (\protect\key{diadct})} 1659 \section[Transports across sections (\texttt{\textbf{key\_diadct}})]{Transports across sections (\protect\key{diadct})} 1654 1660 \label{sec:DIA_diag_dct} 1655 1661 1656 %------------------------------------------namdct---------------------------------------------------- 1657 1658 \nlst{namdct} 1662 %------------------------------------------nam_diadct---------------------------------------------------- 1663 1664 \begin{listing} 1665 \nlst{nam_diadct} 1666 \caption{\forcode{&nam_diadct}} 1667 \label{lst:nam_diadct} 1668 \end{listing} 1659 1669 %------------------------------------------------------------------------------------------------------------- 1660 1670 … … 1665 1675 The pathways between them are contructed using tools which can be found in \texttt{tools/SECTIONS\_DIADCT} 1666 1676 and are written in a binary file \texttt{section\_ijglobal.diadct} which is later read in by 1667 NEMOto compute on-line transports.1677 \NEMO\ to compute on-line transports. 1668 1678 1669 1679 The on-line transports module creates three output ascii files: … … 1675 1685 - \texttt{salt\_transport} for salt transports (unit: $10^{9}Kg s^{-1}$) \\ 1676 1686 1677 Namelist variables in \n gn{namdct} control how frequently the flows are summed and the time scales over which1687 Namelist variables in \nam{\_diadct} control how frequently the flows are summed and the time scales over which 1678 1688 they are averaged, as well as the level of output for debugging: 1679 1689 \np{nn\_dct} : frequency of instantaneous transports computing … … 1690 1700 1691 1701 Each section is defined by: \\ 1692 \noindent { \scriptsize\texttt{long1 lat1 long2 lat2 nclass (ok/no)strpond (no)ice section\_name}} \\1702 \noindent { \texttt{long1 lat1 long2 lat2 nclass (ok/no)strpond (no)ice section\_name}} \\ 1693 1703 with: 1694 1704 … … 1697 1707 - \texttt{long2 lat2}, coordinates of the second extremity of the section; 1698 1708 1699 - \texttt{nclass} the number of bounds of your classes (\eg bounds for 2 classes);1709 - \texttt{nclass} the number of bounds of your classes (\eg\ bounds for 2 classes); 1700 1710 1701 1711 - \texttt{okstrpond} to compute heat and salt transports, \texttt{nostrpond} if no; … … 1707 1717 1708 1718 \noindent If nclass $\neq$ 0, the next lines contain the class type and the nclass bounds: \\ 1709 { \scriptsize1719 { 1710 1720 \texttt{ 1711 1721 long1 lat1 long2 lat2 nclass (ok/no)strpond (no)ice section\_name \\ … … 1730 1740 1731 1741 - \texttt{zsigp} for potential density classes \\ 1732 1742 1733 1743 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. \\1744 \texttt{section\_ijglobal.diadct} which is read by \NEMO. \\ 1735 1745 1736 1746 It is possible to use this tools for new configuations: \texttt{job.ksh} has to be updated with … … 1740 1750 and the ATL\_Cuba\_Florida with 4 temperature clases (5 class bounds), are shown: \\ 1741 1751 \noindent 1742 { \scriptsize1752 { 1743 1753 \texttt{ 1744 1754 -68. -54.5 -60. -64.7 00 okstrpond noice ACC\_Drake\_Passage \\ … … 1755 1765 1756 1766 The output format is: \\ 1757 { \scriptsize1767 { 1758 1768 \texttt{ 1759 1769 date, time-step number, section number, \\ … … 1777 1787 1778 1788 \begin{table} 1779 \scriptsize1780 1789 \begin{tabular}{|l|l|l|l|l|} 1781 1790 \hline … … 1818 1827 1819 1828 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 1829 $\mathcal{M}$ the total mass of liquid seawater ($\mathcal{M} = \int_D \rho dv$), 1830 $\mathcal{V}$ the total volume of seawater ($\mathcal{V} = \int_D dv$), 1831 $\mathcal{A}$ the total surface of the ocean ($\mathcal{A} = \int_S ds$), 1832 $\bar{\rho}$ the global mean seawater (\textit{in situ}) density 1824 1833 ($\bar{\rho} = 1/\mathcal{V} \int_D \rho \,dv$), and 1825 $\bar{\eta}$ the global mean sea level 1834 $\bar{\eta}$ the global mean sea level 1826 1835 ($\bar{\eta} = 1/\mathcal{A} \int_S \eta \,ds$). 1827 1836 … … 1833 1842 \mathcal{V} &= \mathcal{A} \;\bar{\eta} 1834 1843 \end{split} 1835 \label{eq: MV_nBq}1844 \label{eq:DIA_MV_nBq} 1836 1845 \end{equation} 1837 1846 … … 1841 1850 \frac{1}{e_3} \partial_t ( e_3\,\rho) + \nabla( \rho \, \textbf{U} ) 1842 1851 = \left. \frac{\textit{emp}}{e_3}\right|_\textit{surface} 1843 \label{eq: Co_nBq}1852 \label{eq:DIA_Co_nBq} 1844 1853 \end{equation} 1845 1854 1846 1855 where $\rho$ is the \textit{in situ} density, and \textit{emp} the surface mass exchanges with the other media of 1847 1856 the Earth system (atmosphere, sea-ice, land). 1848 Its global averaged leads to the total mass change 1857 Its global averaged leads to the total mass change 1849 1858 1850 1859 \begin{equation} 1851 1860 \partial_t \mathcal{M} = \mathcal{A} \;\overline{\textit{emp}} 1852 \label{eq: Mass_nBq}1861 \label{eq:DIA_Mass_nBq} 1853 1862 \end{equation} 1854 1863 1855 1864 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 to1865 Bringing \autoref{eq:DIA_Mass_nBq} and the time derivative of \autoref{eq:DIA_MV_nBq} together leads to 1857 1866 the evolution equation of the mean sea level 1858 1867 … … 1860 1869 \partial_t \bar{\eta} = \frac{\overline{\textit{emp}}}{ \bar{\rho}} 1861 1870 - \frac{\mathcal{V}}{\mathcal{A}} \;\frac{\partial_t \bar{\rho} }{\bar{\rho}} 1862 \label{eq: ssh_nBq}1871 \label{eq:DIA_ssh_nBq} 1863 1872 \end{equation} 1864 1873 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.1874 The first term in equation \autoref{eq:DIA_ssh_nBq} alters sea level by adding or subtracting mass from the ocean. 1875 The second term arises from temporal changes in the global mean density; \ie\ from steric effects. 1867 1876 1868 1877 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:1878 the gravity (\ie\ in the hydrostatic balance of the primitive Equations). 1879 In particular, the mass conservation equation, \autoref{eq:DIA_Co_nBq}, degenerates into the incompressibility equation: 1871 1880 1872 1881 \[ 1873 1882 \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}1883 % \label{eq:DIA_Co_Bq} 1875 1884 \] 1876 1885 … … 1879 1888 \[ 1880 1889 \partial_t \mathcal{V} = \mathcal{A} \;\frac{\overline{\textit{emp}}}{\rho_o} 1881 % \label{eq: V_Bq}1890 % \label{eq:DIA_V_Bq} 1882 1891 \] 1883 1892 … … 1888 1897 1889 1898 Nevertheless, following \citep{greatbatch_JGR94}, the steric effect on the volume can be diagnosed by 1890 considering the mass budget of the ocean. 1899 considering the mass budget of the ocean. 1891 1900 The apparent changes in $\mathcal{M}$, mass of the ocean, which are not induced by surface mass flux 1892 1901 must be compensated by a spatially uniform change in the mean sea level due to expansion/contraction of the ocean … … 1898 1907 \begin{equation} 1899 1908 \mathcal{M}_o = \mathcal{M} + \rho_o \,\eta_s \,\mathcal{A} 1900 \label{eq: M_Bq}1909 \label{eq:DIA_M_Bq} 1901 1910 \end{equation} 1902 1911 … … 1904 1913 is converted into a mean change in sea level. 1905 1914 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:1915 where $d_a = (\rho -\rho_o ) / \rho_o$ is the density anomaly used in \NEMO\ (cf. \autoref{subsec:TRA_eos}) 1916 in \autoref{eq:DIA_M_Bq} leads to a very simple form for the steric height: 1908 1917 1909 1918 \begin{equation} 1910 1919 \eta_s = - \frac{1}{\mathcal{A}} \mathcal{D} 1911 \label{eq: steric_Bq}1920 \label{eq:DIA_steric_Bq} 1912 1921 \end{equation} 1913 1922 1914 1923 The above formulation of the steric height of a Boussinesq ocean requires four remarks. 1915 1924 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.1925 \ie\ set $\mathcal{D}_{t=0}=0$, so that the initial steric height is zero. 1917 1926 We do not recommend that. 1918 1927 Indeed, in this case $\rho_o$ depends on the initial state of the ocean. … … 1928 1937 does not change when the sea level is changing as it is the case in all global ocean GCMs 1929 1938 (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 by1939 1940 Third, the discretisation of \autoref{eq:DIA_steric_Bq} depends on the type of free surface which is considered. 1941 In the non linear free surface case, \ie\ \np{ln\_linssh}\forcode{=.true.}, it is given by 1933 1942 1934 1943 \[ 1935 1944 \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}1945 % \label{eq:DIA_discrete_steric_Bq_nfs} 1937 1946 \] 1938 1947 … … 1944 1953 \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 1954 { \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}1955 % \label{eq:DIA_discrete_steric_Bq_fs} 1947 1956 \] 1948 1957 … … 1953 1962 so that there are no associated ocean currents. 1954 1963 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 between1964 \ie\ the sea level as if sea ice (and snow) were converted to liquid seawater \citep{campin.marshall.ea_OM08}. 1965 However, in the current version of \NEMO\ the sea-ice is levitating above the ocean without mass exchanges between 1957 1966 ice and ocean. 1958 1967 Therefore the model effective sea level is always given by $\eta + \eta_s$, whether or not there is sea ice present. … … 1964 1973 \[ 1965 1974 \eta_s = - \frac{1}{\mathcal{A}} \int_D d_a(T,S_o,p_o) \,dv 1966 % \label{eq: thermosteric_Bq}1975 % \label{eq:DIA_thermosteric_Bq} 1967 1976 \] 1968 1977 1969 1978 where $S_o$ and $p_o$ are the initial salinity and pressure, respectively. 1970 1979 1971 Both steric and thermosteric sea level are computed in \mdl{diaar5} which needs the \key{diaar5} defined to 1972 be called. 1980 Both steric and thermosteric sea level are computed in \mdl{diaar5}. 1973 1981 1974 1982 % ------------------------------------------------------------------------------------------------------------- 1975 1983 % Other Diagnostics 1976 1984 % ------------------------------------------------------------------------------------------------------------- 1977 \section[Other diagnostics (\texttt{\textbf{key\_diahth}}, \texttt{\textbf{key\_diaar5}})] 1978 {Other diagnostics (\protect\key{diahth}, \protect\key{diaar5})} 1985 \section{Other diagnostics} 1979 1986 \label{sec:DIA_diag_others} 1980 1987 … … 1982 1989 The available ready-to-add diagnostics modules can be found in directory DIA. 1983 1990 1984 \subsection[Depth of various quantities (\textit{diahth.F90})] 1985 {Depth of various quantities (\protect\mdl{diahth})} 1991 \subsection[Depth of various quantities (\textit{diahth.F90})]{Depth of various quantities (\protect\mdl{diahth})} 1986 1992 1987 1993 Among the available diagnostics the following ones are obtained when defining the \key{diahth} CPP key: … … 1995 2001 - the depth of the thermocline (maximum of the vertical temperature gradient) (\mdl{diahth}) 1996 2002 2003 2004 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2005 \begin{figure}[!t] 2006 \centering 2007 \includegraphics[width=0.66\textwidth]{Fig_mask_subasins} 2008 \caption[Decomposition of the World Ocean to compute transports as well as 2009 the meridional stream-function]{ 2010 Decomposition of the World Ocean (here ORCA2) into sub-basin used in to 2011 compute the heat and salt transports as well as the meridional stream-function: 2012 Atlantic basin (red), Pacific basin (green), 2013 Indian basin (blue), Indo-Pacific basin (blue+green). 2014 Note that semi-enclosed seas (Red, Med and Baltic seas) as well as 2015 Hudson Bay are removed from the sub-basins. 2016 Note also that the Arctic Ocean has been split into Atlantic and 2017 Pacific basins along the North fold line. 2018 } 2019 \label{fig:DIA_mask_subasins} 2020 \end{figure} 2021 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2022 1997 2023 % ----------------------------------------------------------- 1998 % Poleward heat and salt transports2024 % CMIP specific diagnostics 1999 2025 % ----------------------------------------------------------- 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, 2026 \subsection[CMIP specific diagnostics (\textit{diaar5.F90}, \textit{diaptr.F90})]{CMIP specific diagnostics (\protect\mdl{diaar5})} 2027 2028 A series of diagnostics has been added in the \mdl{diaar5} and \mdl{diaptr}. 2029 In \mdl{diaar5} they correspond to outputs that are required for AR5 simulations (CMIP5) 2030 (see also \autoref{sec:DIA_steric} for one of them). 2031 The module \mdl{diaar5} is active when one of the following outputs is required : 2032 global total volume (voltot), global mean ssh (sshtot), global total mass (masstot), global mean temperature (temptot), 2033 global mean ssh steric (sshsteric), global mean ssh thermosteric (sshthster), global mean salinity (saltot), 2034 sea water pressure at sea floor (botpres), dynamic sea surface height (sshdyn). 2035 2036 In \mdl{diaptr} when \np{ln\_diaptr}\forcode{=.true.} 2037 (see the \nam{ptr} namelist below) can be computed on-line the poleward heat and salt transports, 2038 their advective and diffusive component, and the meriodional stream function . 2039 When \np{ln\_subbas}\forcode{=.true.}, transports and stream function are computed for the Atlantic, Indian, 2013 2040 Pacific and Indo-Pacific Oceans (defined north of 30\deg{S}) as well as for the World Ocean. 2014 2041 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 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2042 the Indo-Pacific mask been deduced from the sum of the Indian and Pacific mask (\autoref{fig:DIA_mask_subasins}). 2043 2044 %------------------------------------------namptr----------------------------------------- 2045 2046 \begin{listing} 2047 \nlst{namptr} 2048 \caption{\forcode{&namptr}} 2049 \label{lst:namptr} 2050 \end{listing} 2051 %----------------------------------------------------------------------------------------- 2032 2052 2033 2053 % ----------------------------------------------------------- 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 2054 % 25 hour mean and hourly Surface, Mid and Bed 2046 2055 % ----------------------------------------------------------- 2047 2056 \subsection{25 hour mean output for tidal models} … … 2049 2058 %------------------------------------------nam_dia25h------------------------------------- 2050 2059 2051 \nlst{nam_dia25h} 2060 \begin{listing} 2061 \nlst{nam_dia25h} 2062 \caption{\forcode{&nam_dia25h}} 2063 \label{lst:nam_dia25h} 2064 \end{listing} 2052 2065 %----------------------------------------------------------------------------------------- 2053 2066 … … 2064 2077 %------------------------------------------nam_diatmb----------------------------------------------------- 2065 2078 2066 \nlst{nam_diatmb} 2079 \begin{listing} 2080 \nlst{nam_diatmb} 2081 \caption{\forcode{&nam_diatmb}} 2082 \label{lst:nam_diatmb} 2083 \end{listing} 2067 2084 %---------------------------------------------------------------------------------------------------------- 2068 2085 … … 2083 2100 \[ 2084 2101 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}2102 % \label{eq:DIA_CFL} 2086 2103 \] 2087 2104 … … 2092 2109 Values greater than 1 indicate that information is propagated across more than one grid cell in a single time step. 2093 2110 2094 The variables can be activated by setting the \np{nn\_diacfl} namelist parameter to 1 in the \n gn{namctl} namelist.2111 The variables can be activated by setting the \np{nn\_diacfl} namelist parameter to 1 in the \nam{ctl} namelist. 2095 2112 The diagnostics will be written out to an ascii file named cfl\_diagnostics.ascii. 2096 2113 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 2115 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 2116 with the coordinates of each. 2100 The maximum values from the run are also copied to the ocean.output file. 2117 The maximum values from the run are also copied to the ocean.output file. 2101 2118 2102 2119 % ================================================================
Note: See TracChangeset
for help on using the changeset viewer.