Changeset 11435 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_DIA.tex
- Timestamp:
- 2019-08-14T14:45:08+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/doc/latex/NEMO/subfiles/chap_DIA.tex
r11346 r11435 8 8 \label{chap:DIA} 9 9 10 \ minitoc10 \chaptertoc 11 11 12 12 \vfill … … 18 18 {\em } & {\em Dorotea Iovino, Nicolas Martin} & {\em } \\ 19 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 } \\ 20 {\em 3.4} & {\em Gurvan Madec, Rachid Benshila, Andrew Coward } & {\em } \\ 21 {\em } & {\em Christian Ethe, Sebastien Masson } & {\em } \\ 22 22 \end{tabular} 23 \end{figure} 23 \end{figure} 24 24 25 25 \newpage 26 26 27 27 % ================================================================ 28 % Old Model Output 28 % Old Model Output 29 29 % ================================================================ 30 30 \section{Model output} … … 41 41 42 42 The output listing and file(s) are predefined but should be checked and eventually adapted to the user's needs. 43 The output listing is stored in the $ocean.output$file.44 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}. 45 45 To locate these prints, use the UNIX command "\textit{grep -i numout}" in the source code directory. 46 46 … … 59 59 \label{sec:DIA_iom} 60 60 61 Since version 3.2, iomput is the NEMOoutput interface of choice.61 Since version 3.2, iomput is the \NEMO\ output interface of choice. 62 62 It has been designed to be simple to use, flexible and efficient. 63 The two main purposes of iomput are: 63 The two main purposes of iomput are: 64 64 65 65 \begin{enumerate} … … 72 72 \end{enumerate} 73 73 74 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, 75 75 aspects of the diagnostic output stream, such as: 76 76 … … 94 94 in a very easy way. 95 95 All details of iomput functionalities are listed in the following subsections. 96 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: 97 97 \path{cfgs/ORCA2_ICE_PISCES/EXPREF/iodef.xml}, 98 98 \path{cfgs/SHARED/field_def_nemo-oce.xml}, … … 101 101 102 102 The second functionality targets output performance when running in parallel (\key{mpp\_mpi}). 103 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) 104 104 to collect and write the outputs. 105 105 With an appropriate choice of N by the user, the bottleneck associated with the writing of 106 106 the output files can be greatly reduced. 107 107 108 In version 3.6, the iom\_putinterface depends on109 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).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). 111 111 This new IO server can take advantage of the parallel I/O functionality of NetCDF4 to 112 112 create a single output file and therefore to bypass the rebuilding phase. 113 113 Note that writing in parallel into the same NetCDF files requires that your NetCDF4 library is linked to 114 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). 115 115 Note that the files created by iomput through XIOS are incompatible with NetCDF3. 116 116 All post-processsing and visualization tools must therefore be compatible with NetCDF4 and not only NetCDF3. 117 117 118 118 Even if not using the parallel I/O functionality of NetCDF4, using N dedicated I/O servers, 119 where N is typically much less than the number of NEMOprocessors, will reduce the number of output files created.120 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. 121 121 Note that for smaller configurations, the rebuilding phase can be avoided, 122 122 even without a parallel-enabled NetCDF4 library, simply by employing only one dedicated I/O server. … … 124 124 \subsection{XIOS: Reading and writing restart file} 125 125 126 XIOS may be used to read single file restart produced by NEMO. Currently only the variables written to126 XIOS may be used to read single file restart produced by \NEMO. Currently only the variables written to 127 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 NEMO129 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,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, 131 131 there may be a need to add the following line in iodef.xml (xios context): 132 132 … … 135 135 \end{xmllines} 136 136 137 This variable sets timeout for reading. 138 139 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), 140 140 dimension \forcode{z} defined in restart file must be renamed to \forcode{nav_lev}.\\ 141 141 142 XIOS can also be used to write NEMO restart. A namelist parameter \np{nn\_wxios} is used to determine the143 type of restart NEMO will write. If it is set to 0, default NEMO functionality will be used - each144 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 = 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 = 2}}. The restart will147 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. 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. 149 149 150 150 If an additional variable must be written to a restart file, the following steps are needed: 151 151 \begin{description} 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} - 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} - 154 154 1D variable, \forcode{grid_scalar} - scalar), 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 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 158 158 written either by \rou{rst\_write} or by calling \rou{iom\_rstput} from individual routines. 159 159 \end{description} … … 181 181 182 182 In \textit{attached mode} and if the type of file is ''multiple\_file'', 183 then each NEMOprocess will also act as an IO server and produce its own set of output files.183 then each \NEMO\ process will also act as an IO server and produce its own set of output files. 184 184 Superficially, this emulates the standard behaviour in previous versions. 185 185 However, the subdomain written out by each process does not correspond to … … 193 193 write to its own set of output files. 194 194 If the ''one\_file'' option is chosen then all XIOS processes will collect their longitudinal strips and 195 write (in parallel) to a single output file. 195 write (in parallel) to a single output file. 196 196 Note running in detached mode requires launching a Multiple Process Multiple Data (MPMD) parallel job. 197 197 The following subsection provides a typical example but the syntax will vary in different MPP environments. … … 200 200 201 201 The number of cores used by the XIOS is specified when launching the model. 202 The number of cores dedicated to XIOS should be from \texttildelow1/10 to \texttildelow1/50 of the number of 203 cores dedicated to NEMO.202 The number of cores dedicated to XIOS should be from \texttildelow1/10 to \texttildelow1/50 of the number of 203 cores dedicated to \NEMO. 204 204 Some manufacturers suggest using O($\sqrt{N}$) dedicated IO processors for N processors but 205 this is a general recommendation and not specific to NEMO.205 this is a general recommendation and not specific to \NEMO. 206 206 It is difficult to provide precise recommendations because the optimal choice will depend on 207 the particular hardware properties of the target system 207 the particular hardware properties of the target system 208 208 (parallel filesystem performance, available memory, memory bandwidth etc.) 209 209 and the volume and frequency of data to be created. … … 213 213 \subsubsection{Control of XIOS: the context in iodef.xml} 214 214 215 As well as the {\ttfamily using\_server} flag, other controls on the use of XIOS are set in the XIOS context in iodef.xml. 215 As well as the \texttt{using\_server} flag, other controls on the use of XIOS are set in 216 the XIOS context in \textit{iodef.xml}. 216 217 See the XML basics section below for more details on XML syntax and rules. 217 218 … … 226 227 \hline 227 228 buffer\_size & 228 buffer size used by XIOS to send data from NEMOto XIOS.229 buffer size used by XIOS to send data from \NEMO\ to XIOS. 229 230 Larger is more efficient. 230 231 Note that needed/used buffer sizes are summarized at the end of the job & … … 232 233 \hline 233 234 buffer\_server\_factor\_size & 234 ratio between NEMOand XIOS buffer size.235 ratio between \NEMO\ and XIOS buffer size. 235 236 Should be 2. & 236 237 2 \\ … … 249 250 \hline 250 251 oasis\_codes\_id & 251 when using oasis, define the identifier of NEMOin the namcouple.252 when using oasis, define the identifier of \NEMO\ in the namcouple. 252 253 Note that the identifier of XIOS is xios.x & 253 254 oceanx \\ … … 260 261 \subsubsection{Installation} 261 262 262 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. 263 264 See the installation guide on the \href{http://forge.ipsl.jussieu.fr/ioserver/wiki}{XIOS} wiki for help and guidance. 264 NEMOwill need to link to the compiled XIOS library.265 \NEMO\ will need to link to the compiled XIOS library. 265 266 The \href{https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/install.html#extract-and-install-xios} 266 267 {Extract and install XIOS} guide provides an example illustration of how this can be achieved. … … 275 276 \begin{enumerate} 276 277 \item[1.] 277 in NEMOcode, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array.278 in \NEMO\ code, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array. 278 279 \item[2.] 279 280 If necessary, add \forcode{USE iom ! I/O manager library} to the list of used modules in … … 288 289 <field_group id="grid_T" grid_ref="grid_T_3D"> <!-- T grid --> 289 290 ... 290 <field id="identifier" long_name="blabla" ... /> 291 <field id="identifier" long_name="blabla" ... /> 291 292 ... 292 </field_definition> 293 </field_definition> 293 294 \end{xmllines} 294 295 … … 313 314 314 315 \begin{xmllines} 315 <file id="file1" .../> 316 <file id="file1" .../> 316 317 ... 317 <field field_ref="identifier" /> 318 <field field_ref="identifier" /> 318 319 ... 319 </file> 320 </file> 320 321 \end{xmllines} 321 322 … … 333 334 See \href{http://www.xmlnews.org/docs/xml-basics.html}{here} for more details. 334 335 335 \subsubsection{Structure of the XML file used in NEMO}336 \subsubsection{Structure of the XML file used in \NEMO} 336 337 337 338 The XML file used in XIOS is structured by 7 families of tags: … … 382 383 \xmlcode{<context id="xios" ... >} \\ 383 384 \hline 384 context nemo & context containing IO information for NEMO (mother grid when using AGRIF) &385 context nemo & context containing IO information for \NEMO\ (mother grid when using AGRIF) & 385 386 \xmlcode{<context id="nemo" ... >} \\ 386 387 \hline 387 context 1\_nemo & context containing IO information for NEMO child grid 1 (when using AGRIF) &388 context 1\_nemo & context containing IO information for \NEMO\ child grid 1 (when using AGRIF) & 388 389 \xmlcode{<context id="1_nemo" ... >} \\ 389 390 \hline 390 context n\_nemo & context containing IO information for NEMO child grid n (when using AGRIF) &391 context n\_nemo & context containing IO information for \NEMO\ child grid n (when using AGRIF) & 391 392 \xmlcode{<context id="n_nemo" ... >} \\ 392 393 \hline … … 413 414 \end{table} 414 415 415 \noindent Each context tag related to NEMO (mother or child grids) is divided into 5 parts416 \noindent Each context tag related to \NEMO\ (mother or child grids) is divided into 5 parts 416 417 (that can be defined in any order): 417 418 … … 447 448 The inclusion of XML files into the main XML file can be done through the attribute src: 448 449 \xmlline|<context src="./nemo_def.xml" />| 449 450 \noindent In NEMO, by default, the field definition is done in 3 separate files (450 451 \noindent In \NEMO, by default, the field definition is done in 3 separate files ( 451 452 \path{cfgs/SHARED/field_def_nemo-oce.xml}, 452 453 \path{cfgs/SHARED/field_def_nemo-pisces.xml} and … … 455 456 are included in the main iodef.xml file through the following commands: 456 457 \begin{xmllines} 457 <context id="nemo" src="./context_nemo.xml"/> 458 <context id="nemo" src="./context_nemo.xml"/> 458 459 \end{xmllines} 459 460 … … 470 471 \begin{xmllines} 471 472 <field_definition operation="average" > 472 <field id="sst" /> <!-- averaged sst --> 473 <field id="sss" operation="instant"/> <!-- instantaneous sss --> 474 </field_definition> 473 <field id="sst" /> <!-- averaged sst --> 474 <field id="sss" operation="instant"/> <!-- instantaneous sss --> 475 </field_definition> 475 476 \end{xmllines} 476 477 … … 489 490 </field_definition> 490 491 <file_definition> 491 <file id="myfile" output_freq="1d" /> 492 <file id="myfile" output_freq="1d" /> 492 493 <field field_ref="sst" /> <!-- default def --> 493 494 <field field_ref="sss" long_name="my description" /> <!-- overwrite --> 494 495 </file> 495 </file_definition> 496 </file_definition> 496 497 \end{xmllines} 497 498 … … 536 537 <field_group group_ref="groupU" /> 537 538 <field field_ref="uocetr_eff" /> <!-- add another field --> 538 </file> 539 </file> 539 540 \end{xmllines} 540 541 … … 548 549 Horizontal subdomains are defined through the attributs zoom\_ibegin, zoom\_jbegin, zoom\_ni, zoom\_nj of 549 550 the tag family domain. 550 It must therefore be done in the domain part of the XML file. 551 For example, in \path{cfgs/SHARED/domain_def.xml}, we provide the following example of a definition of 551 It must therefore be done in the domain part of the XML file. 552 For example, in \path{cfgs/SHARED/domain_def.xml}, we provide the following example of a definition of 552 553 a 5 by 5 box with the bottom left corner at point (10,10). 553 554 … … 566 567 \end{xmllines} 567 568 568 Moorings are seen as an extrem case corresponding to a 1 by 1 subdomain. 569 Moorings are seen as an extrem case corresponding to a 1 by 1 subdomain. 569 570 The Equatorial section, the TAO, RAMA and PIRATA moorings are already registered in the code and 570 571 can therefore be outputted without taking care of their (i,j) position in the grid. … … 579 580 \end{xmllines} 580 581 581 Note that if the domain decomposition used in XIOS cuts the subdomain in several parts and if 582 you use the ''multiple\_file'' type for your output files, 583 you will endup with several files you will need to rebuild using unprovided tools (like ncpdq and ncrcat, 582 Note that if the domain decomposition used in XIOS cuts the subdomain in several parts and if 583 you use the ''multiple\_file'' type for your output files, 584 you will endup with several files you will need to rebuild using unprovided tools (like ncpdq and ncrcat, 584 585 \href{http://nco.sourceforge.net/nco.html#Concatenation}{see nco manual}). 585 586 We are therefore advising to use the ''one\_file'' type in this case. … … 614 615 615 616 \begin{xmllines} 616 <file_group id="1d" output_freq="1d" name="myfile_1d" > 617 <file_group id="1d" output_freq="1d" name="myfile_1d" > 617 618 <file id="myfileA" name_suffix="_AAA" > <!-- will create file "myfile_1d_AAA" --> 618 619 ... … … 669 670 \end{table} 670 671 671 \noindent For example, 672 \noindent For example, 672 673 \xmlline|<file id="myfile_hzoom" name="myfile_@expname@_@startdate@_freq@freq@" output_freq="1d" >| 673 674 … … 681 682 \noindent will give the following file name radical: \ifile{myfile\_ORCA2\_19891231\_freq1d} 682 683 683 \subsubsection{Other controls of the XML attributes from NEMO}684 685 The values of some attributes are defined by subroutine calls within NEMO684 \subsubsection{Other controls of the XML attributes from \NEMO} 685 686 The values of some attributes are defined by subroutine calls within \NEMO 686 687 (calls to iom\_set\_domain\_attr, iom\_set\_axis\_attr and iom\_set\_field\_attr in \mdl{iom}). 687 688 Any definition given in the XML file will be overwritten. … … 778 779 \end{xmllines} 779 780 780 Note that, then the code is crashing, writting real4 variables forces a numerical conversion from 781 Note that, then the code is crashing, writting real4 variables forces a numerical conversion from 781 782 real8 to real4 which will create an internal error in NetCDF and will avoid the creation of the output files. 782 783 Forcing double precision outputs with prec="8" (for example in the field\_definition) will avoid this problem. … … 786 787 787 788 \begin{xmllines} 788 <file_group id="1d" output_freq="1d" output_level="10" enabled=".true."> <!-- 1d files --> 789 <file_group id="1d" output_freq="1d" output_level="10" enabled=".true."> <!-- 1d files --> 789 790 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 790 791 <field field_ref="sst" name="tos" > … … 795 796 <variable id="my_global_attribute" type="string" > blabla_global </variable> 796 797 </file> 797 </file_group> 798 </file_group> 798 799 \end{xmllines} 799 800 … … 810 811 811 812 \begin{xmllines} 812 <file_group id="5d" output_freq="5d" output_level="10" enabled=".true." > <!-- 5d files --> 813 <file_group id="5d" output_freq="5d" output_level="10" enabled=".true." > <!-- 5d files --> 813 814 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 814 815 <field field_ref="toce" operation="instant" freq_op="5d" > @toce_e3t / @e3t </field> 815 816 </file> 816 </file_group> 817 </file_group> 817 818 \end{xmllines} 818 819 … … 839 840 840 841 \begin{xmllines} 841 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 842 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 842 843 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 843 <field field_ref="ssh" name="sshstd" long_name="sea_surface_temperature_standard_deviation" 844 <field field_ref="ssh" name="sshstd" long_name="sea_surface_temperature_standard_deviation" 844 845 operation="instant" freq_op="1m" > 845 846 sqrt( @ssh2 - @ssh * @ssh ) 846 847 </field> 847 848 </file> 848 </file_group> 849 </file_group> 849 850 \end{xmllines} 850 851 … … 853 854 here we use the default, average. 854 855 So, in the above case, @ssh2 will do the monthly mean of ssh*ssh. 855 Operation="instant" refers to the temporal operation to be performed on the field ''sqrt( @ssh2 - @ssh * @ssh )'': 856 Operation="instant" refers to the temporal operation to be performed on the field ''sqrt( @ssh2 - @ssh * @ssh )'': 856 857 here the temporal average is alreday done by the ``@'' function so we just use instant. 857 858 field\_ref="ssh" means that attributes not explicitely defined, are inherited from ssh field. … … 871 872 872 873 \begin{xmllines} 873 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 874 <file_group id="1m" output_freq="1m" output_level="10" enabled=".true." > <!-- 1m files --> 874 875 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 875 876 <field field_ref="sst" name="sstdcy" long_name="amplitude of sst diurnal cycle" operation="average" freq_op="1d" > … … 877 878 </field> 878 879 </file> 879 </file_group> 880 </file_group> 880 881 \end{xmllines} 881 882 … … 1331 1332 \subsection{CF metadata standard compliance} 1332 1333 1333 Output from the XIOS IO server is compliant with 1334 Output from the XIOS IO server is compliant with 1334 1335 \href{http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html}{version 1.5} of 1335 the CF metadata standard. 1336 the CF metadata standard. 1336 1337 Therefore while a user may wish to add their own metadata to the output files (as demonstrated in example 4 of 1337 1338 section \autoref{subsec:IOM_xmlref}) the metadata should, for the most part, comply with the CF-1.5 standard. 1338 1339 1339 1340 Some metadata that may significantly increase the file size (horizontal cell areas and vertices) are controlled by 1340 the namelist parameter \np{ln\_cfmeta} in the \n gn{namrun} namelist.1341 the namelist parameter \np{ln\_cfmeta} in the \nam{run} namelist. 1341 1342 This must be set to true if these metadata are to be included in the output files. 1342 1343 … … 1360 1361 Datasets created with chunking and compression are not backwards compatible with NetCDF3 "classic" format but 1361 1362 most analysis codes can be relinked simply with the new libraries and will then read both NetCDF3 and NetCDF4 files. 1362 NEMOexecutables linked with NetCDF4 libraries can be made to produce NetCDF3 files by1363 setting the \np{ln\_nc4zip} logical to false in the \ textit{namnc4} namelist:1363 \NEMO\ executables linked with NetCDF4 libraries can be made to produce NetCDF3 files by 1364 setting the \np{ln\_nc4zip} logical to false in the \nam{nc4} namelist: 1364 1365 1365 1366 %------------------------------------------namnc4---------------------------------------------------- … … 1404 1405 1405 1406 \noindent for a standard ORCA2\_LIM configuration gives chunksizes of {\small\ttfamily 46x38x1} respectively in 1406 the mono-processor case (\ie global domain of {\small\ttfamily 182x149x31}).1407 An illustration of the potential space savings that NetCDF4 chunking and compression provides is given in 1407 the mono-processor case (\ie\ global domain of {\small\ttfamily 182x149x31}). 1408 An illustration of the potential space savings that NetCDF4 chunking and compression provides is given in 1408 1409 table \autoref{tab:NC4} which compares the results of two short runs of the ORCA2\_LIM reference configuration with 1409 1410 a 4x2 mpi partitioning. … … 1453 1454 1454 1455 When \key{iomput} is activated with \key{netcdf4} chunking and compression parameters for fields produced via 1455 \ np{iom\_put} calls are set via an equivalent and identically named namelist to \textit{namnc4} in1456 \ np{xmlio\_server.def}.1457 Typically this namelist serves the mean files whilst the \n gn{ namnc4} in the main namelist file continues to1456 \rou{iom\_put} calls are set via an equivalent and identically named namelist to \nam{nc4} in 1457 \textit{xmlio\_server.def}. 1458 Typically this namelist serves the mean files whilst the \nam{nc4} in the main namelist file continues to 1458 1459 serve the restart files. 1459 1460 This duplication is unfortunate but appropriate since, if using io\_servers, the domain sizes of 1460 1461 the individual files produced by the io\_server processes may be different to those produced by 1461 1462 the invidual processing regions and different chunking choices may be desired. 1462 1463 1463 1464 % ------------------------------------------------------------------------------------------------------------- 1464 1465 % Tracer/Dynamics Trends 1465 1466 % ------------------------------------------------------------------------------------------------------------- 1466 1467 \section[Tracer/Dynamics trends (\texttt{namtrd})] 1467 {Tracer/Dynamics trends (\protect\n gn{namtrd})}1468 {Tracer/Dynamics trends (\protect\nam{trd})} 1468 1469 \label{sec:DIA_trd} 1469 1470 1470 1471 %------------------------------------------namtrd---------------------------------------------------- 1471 1472 1472 \nlst{namtrd} 1473 \nlst{namtrd} 1473 1474 %------------------------------------------------------------------------------------------------------------- 1474 1475 1475 1476 Each trend of the dynamics and/or temperature and salinity time evolution equations can be send to 1476 1477 \mdl{trddyn} and/or \mdl{trdtra} modules (see TRD directory) just after their computation 1477 (\ie at the end of each $dyn\cdots.F90$ and/or $tra\cdots.F90$routines).1478 This capability is controlled by options offered in \n gn{namtrd} namelist.1478 (\ie\ at the end of each \textit{dyn....F90} and/or \textit{tra....F90} routines). 1479 This capability is controlled by options offered in \nam{trd} namelist. 1479 1480 Note that the output are done with XIOS, and therefore the \key{iomput} is required. 1480 1481 1481 What is done depends on the \n gn{namtrd} logical set to \forcode{.true.}:1482 What is done depends on the \nam{trd} logical set to \forcode{.true.}: 1482 1483 1483 1484 \begin{description} … … 1502 1503 \end{description} 1503 1504 1504 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1505 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1505 1506 the \key{trdtrc} and \key{trdmxl\_trc} CPP keys. 1506 1507 1507 1508 \textbf{Note that} in the current version (v3.6), many changes has been introduced but not fully tested. 1508 1509 In particular, options associated with \np{ln\_dyn\_mxl}, \np{ln\_vor\_trd}, and \np{ln\_tra\_mxl} are not working, 1509 and none of the options have been tested with variable volume (\ie \np{ln\_linssh}\forcode{ = .true.}).1510 and none of the options have been tested with variable volume (\ie\ \np{ln\_linssh}\forcode{ = .true.}). 1510 1511 1511 1512 % ------------------------------------------------------------------------------------------------------------- … … 1517 1518 %--------------------------------------------namflo------------------------------------------------------- 1518 1519 1519 \nlst{namflo} 1520 \nlst{namflo} 1520 1521 %-------------------------------------------------------------------------------------------------------------- 1521 1522 1522 1523 The on-line computation of floats advected either by the three dimensional velocity field or constraint to 1523 1524 remain at a given depth ($w = 0$ in the computation) have been introduced in the system during the CLIPPER project. 1524 Options are defined by \n gn{namflo} namelist variables.1525 Options are defined by \nam{flo} namelist variables. 1525 1526 The algorithm used is based either on the work of \cite{blanke.raynaud_JPO97} (default option), 1526 1527 or on a $4^th$ Runge-Hutta algorithm (\np{ln\_flork4}\forcode{ = .true.}). … … 1533 1534 (IJK coordinates, (\np{ln\_ariane}\forcode{ = .true.}) ) or with longitude and latitude. 1534 1535 1535 In case of Ariane convention, input filename is \ np{init\_float\_ariane}.1536 In case of Ariane convention, input filename is \textit{init\_float\_ariane}. 1536 1537 Its format is: \\ 1537 1538 {\scriptsize \texttt{I J K nisobfl itrash}} … … 1541 1542 - I,J,K : indexes of initial position 1542 1543 1543 - nisobfl: 0 for an isobar float, 1 for a float following the w velocity 1544 - nisobfl: 0 for an isobar float, 1 for a float following the w velocity 1544 1545 1545 1546 - itrash : set to zero; it is a dummy variable to respect Ariane Tools convention … … 1627 1628 This on-line Harmonic analysis is actived with \key{diaharm}. 1628 1629 1629 Some parameters are available in namelist \n gn{nam\_diaharm}:1630 Some parameters are available in namelist \nam{\_diaharm}: 1630 1631 1631 1632 - \np{nit000\_han} is the first time step used for harmonic analysis … … 1635 1636 - \np{nstep\_han} is the time step frequency for harmonic analysis 1636 1637 1637 - \np{nb\_ana} is the number of harmonics to analyse1638 % - \np{nb\_ana} is the number of harmonics to analyse 1638 1639 1639 1640 - \np{tname} is an array with names of tidal constituents to analyse … … 1678 1679 The pathways between them are contructed using tools which can be found in \texttt{tools/SECTIONS\_DIADCT} 1679 1680 and are written in a binary file \texttt{section\_ijglobal.diadct} which is later read in by 1680 NEMOto compute on-line transports.1681 \NEMO\ to compute on-line transports. 1681 1682 1682 1683 The on-line transports module creates three output ascii files: … … 1688 1689 - \texttt{salt\_transport} for salt transports (unit: $10^{9}Kg s^{-1}$) \\ 1689 1690 1690 Namelist variables in \n gn{namdct} control how frequently the flows are summed and the time scales over which1691 Namelist variables in \nam{dct} control how frequently the flows are summed and the time scales over which 1691 1692 they are averaged, as well as the level of output for debugging: 1692 1693 \np{nn\_dct} : frequency of instantaneous transports computing … … 1710 1711 - \texttt{long2 lat2}, coordinates of the second extremity of the section; 1711 1712 1712 - \texttt{nclass} the number of bounds of your classes (\eg bounds for 2 classes);1713 - \texttt{nclass} the number of bounds of your classes (\eg\ bounds for 2 classes); 1713 1714 1714 1715 - \texttt{okstrpond} to compute heat and salt transports, \texttt{nostrpond} if no; … … 1743 1744 1744 1745 - \texttt{zsigp} for potential density classes \\ 1745 1746 1746 1747 The script \texttt{job.ksh} computes the pathway for each section and creates a binary file 1747 \texttt{section\_ijglobal.diadct} which is read by NEMO. \\1748 \texttt{section\_ijglobal.diadct} which is read by \NEMO. \\ 1748 1749 1749 1750 It is possible to use this tools for new configuations: \texttt{job.ksh} has to be updated with … … 1831 1832 1832 1833 Let denote 1833 $\mathcal{M}$ the total mass of liquid seawater ($\mathcal{M} = \int_D \rho dv$), 1834 $\mathcal{V}$ the total volume of seawater ($\mathcal{V} = \int_D dv$), 1835 $\mathcal{A}$ the total surface of the ocean ($\mathcal{A} = \int_S ds$), 1836 $\bar{\rho}$ the global mean seawater (\textit{in situ}) density 1834 $\mathcal{M}$ the total mass of liquid seawater ($\mathcal{M} = \int_D \rho dv$), 1835 $\mathcal{V}$ the total volume of seawater ($\mathcal{V} = \int_D dv$), 1836 $\mathcal{A}$ the total surface of the ocean ($\mathcal{A} = \int_S ds$), 1837 $\bar{\rho}$ the global mean seawater (\textit{in situ}) density 1837 1838 ($\bar{\rho} = 1/\mathcal{V} \int_D \rho \,dv$), and 1838 $\bar{\eta}$ the global mean sea level 1839 $\bar{\eta}$ the global mean sea level 1839 1840 ($\bar{\eta} = 1/\mathcal{A} \int_S \eta \,ds$). 1840 1841 … … 1859 1860 where $\rho$ is the \textit{in situ} density, and \textit{emp} the surface mass exchanges with the other media of 1860 1861 the Earth system (atmosphere, sea-ice, land). 1861 Its global averaged leads to the total mass change 1862 Its global averaged leads to the total mass change 1862 1863 1863 1864 \begin{equation} … … 1876 1877 \end{equation} 1877 1878 1878 The first term in equation \autoref{eq:ssh_nBq} alters sea level by adding or subtracting mass from the ocean. 1879 The second term arises from temporal changes in the global mean density; \ie from steric effects.1879 The first term in equation \autoref{eq:ssh_nBq} alters sea level by adding or subtracting mass from the ocean. 1880 The second term arises from temporal changes in the global mean density; \ie\ from steric effects. 1880 1881 1881 1882 In a Boussinesq fluid, $\rho$ is replaced by $\rho_o$ in all the equation except when $\rho$ appears multiplied by 1882 the gravity (\ie in the hydrostatic balance of the primitive Equations).1883 the gravity (\ie\ in the hydrostatic balance of the primitive Equations). 1883 1884 In particular, the mass conservation equation, \autoref{eq:Co_nBq}, degenerates into the incompressibility equation: 1884 1885 … … 1901 1902 1902 1903 Nevertheless, following \citep{greatbatch_JGR94}, the steric effect on the volume can be diagnosed by 1903 considering the mass budget of the ocean. 1904 considering the mass budget of the ocean. 1904 1905 The apparent changes in $\mathcal{M}$, mass of the ocean, which are not induced by surface mass flux 1905 1906 must be compensated by a spatially uniform change in the mean sea level due to expansion/contraction of the ocean … … 1917 1918 is converted into a mean change in sea level. 1918 1919 Introducing the total density anomaly, $\mathcal{D}= \int_D d_a \,dv$, 1919 where $d_a = (\rho -\rho_o ) / \rho_o$ is the density anomaly used in \NEMO (cf. \autoref{subsec:TRA_eos})1920 where $d_a = (\rho -\rho_o ) / \rho_o$ is the density anomaly used in \NEMO\ (cf. \autoref{subsec:TRA_eos}) 1920 1921 in \autoref{eq:M_Bq} leads to a very simple form for the steric height: 1921 1922 … … 1927 1928 The above formulation of the steric height of a Boussinesq ocean requires four remarks. 1928 1929 First, one can be tempted to define $\rho_o$ as the initial value of $\mathcal{M}/\mathcal{V}$, 1929 \ie set $\mathcal{D}_{t=0}=0$, so that the initial steric height is zero.1930 \ie\ set $\mathcal{D}_{t=0}=0$, so that the initial steric height is zero. 1930 1931 We do not recommend that. 1931 1932 Indeed, in this case $\rho_o$ depends on the initial state of the ocean. … … 1941 1942 does not change when the sea level is changing as it is the case in all global ocean GCMs 1942 1943 (wetting and drying of grid point is not allowed). 1943 1944 1944 1945 Third, the discretisation of \autoref{eq:steric_Bq} depends on the type of free surface which is considered. 1945 In the non linear free surface case, \ie \np{ln\_linssh}\forcode{ = .true.}, it is given by1946 In the non linear free surface case, \ie\ \np{ln\_linssh}\forcode{ = .true.}, it is given by 1946 1947 1947 1948 \[ … … 1966 1967 so that there are no associated ocean currents. 1967 1968 Hence, the dynamically relevant sea level is the effective sea level, 1968 \ie the sea level as if sea ice (and snow) were converted to liquid seawater \citep{campin.marshall.ea_OM08}.1969 However, in the current version of \NEMO the sea-ice is levitating above the ocean without mass exchanges between1969 \ie\ the sea level as if sea ice (and snow) were converted to liquid seawater \citep{campin.marshall.ea_OM08}. 1970 However, in the current version of \NEMO\ the sea-ice is levitating above the ocean without mass exchanges between 1970 1971 ice and ocean. 1971 1972 Therefore the model effective sea level is always given by $\eta + \eta_s$, whether or not there is sea ice present. … … 2021 2022 } 2022 2023 \end{center} 2023 \end{figure} 2024 \end{figure} 2024 2025 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2025 2026 2026 2027 % ----------------------------------------------------------- 2027 % CMIP specific diagnostics 2028 % CMIP specific diagnostics 2028 2029 % ----------------------------------------------------------- 2029 2030 \subsection[CMIP specific diagnostics (\textit{diaar5.F90}, \textit{diaptr.F90})] … … 2033 2034 In \mdl{diaar5} they correspond to outputs that are required for AR5 simulations (CMIP5) 2034 2035 (see also \autoref{sec:DIA_steric} for one of them). 2035 The module \mdl{diaar5} is active when one of the following outputs is required : global total volume (voltot), global mean ssh (sshtot), global total mass (masstot), global mean temperature (temptot), global mean ssh steric (sshsteric), global mean ssh thermosteric (sshthster), global mean salinity (saltot), sea water pressure at sea floor (botpres), dynamic sea surface height (sshdyn). 2036 2037 In \mdl{diaptr} when \np{ln\_diaptr}\forcode{ = .true.} 2038 (see the \textit{\ngn{namptr} } namelist below) can be computed on-line the poleward heat and salt transports, their advective and diffusive component, and the meriodional stream function . 2036 The module \mdl{diaar5} is active when one of the following outputs is required : 2037 global total volume (voltot), global mean ssh (sshtot), global total mass (masstot), global mean temperature (temptot), 2038 global mean ssh steric (sshsteric), global mean ssh thermosteric (sshthster), global mean salinity (saltot), 2039 sea water pressure at sea floor (botpres), dynamic sea surface height (sshdyn). 2040 2041 In \mdl{diaptr} when \np{ln\_diaptr}\forcode{ = .true.} 2042 (see the \nam{ptr} namelist below) can be computed on-line the poleward heat and salt transports, 2043 their advective and diffusive component, and the meriodional stream function . 2039 2044 When \np{ln\_subbas}\forcode{ = .true.}, transports and stream function are computed for the Atlantic, Indian, 2040 2045 Pacific and Indo-Pacific Oceans (defined north of 30\deg{S}) as well as for the World Ocean. … … 2044 2049 %------------------------------------------namptr----------------------------------------- 2045 2050 2046 \nlst{namptr} 2051 \nlst{namptr} 2047 2052 %----------------------------------------------------------------------------------------- 2048 2053 2049 2054 % ----------------------------------------------------------- 2050 % 25 hour mean and hourly Surface, Mid and Bed 2055 % 25 hour mean and hourly Surface, Mid and Bed 2051 2056 % ----------------------------------------------------------- 2052 2057 \subsection{25 hour mean output for tidal models} … … 2097 2102 Values greater than 1 indicate that information is propagated across more than one grid cell in a single time step. 2098 2103 2099 The variables can be activated by setting the \np{nn\_diacfl} namelist parameter to 1 in the \n gn{namctl} namelist.2104 The variables can be activated by setting the \np{nn\_diacfl} namelist parameter to 1 in the \nam{ctl} namelist. 2100 2105 The diagnostics will be written out to an ascii file named cfl\_diagnostics.ascii. 2101 2106 In this file the maximum value of $C_u$, $C_v$, and $C_w$ are printed at each timestep along with the coordinates of … … 2103 2108 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 2104 2109 with the coordinates of each. 2105 The maximum values from the run are also copied to the ocean.output file. 2110 The maximum values from the run are also copied to the ocean.output file. 2106 2111 2107 2112 % ================================================================
Note: See TracChangeset
for help on using the changeset viewer.