1 | \newpage |
---|
2 | \chapter{The configuration file {\it namcouple}} |
---|
3 | \label{sec_namcouple} |
---|
4 | |
---|
5 | The OASIS3-MCT configuration file {\it namcouple} contains, below |
---|
6 | pre-defined keywords, all user-defined information necessary to |
---|
7 | configure a particular coupled run. |
---|
8 | |
---|
9 | The {\it namcouple} is a text file with the following characteristics: |
---|
10 | |
---|
11 | \begin{itemize} |
---|
12 | \item the keywords used to separate the information can appear in any |
---|
13 | order; |
---|
14 | \item the number of blanks between two character strings is |
---|
15 | non-significant; |
---|
16 | \item all lines beginning with \# are ignored and considered as |
---|
17 | comments; |
---|
18 | \item blank lines are supported, but only since OASIS3-MCT\_4.0 version. |
---|
19 | \end{itemize} |
---|
20 | |
---|
21 | The first part of {\it namcouple } is devoted to configuration of |
---|
22 | general parameters such as the total run time or the desired debug level. |
---|
23 | The second part gathers specific |
---|
24 | information on each coupling (or I/O) field, e.g. their coupling |
---|
25 | period, the list of transformations or remapping to be performed |
---|
26 | by OASIS3-MCT and associated configuring lines (described in more |
---|
27 | details in chapter \ref{sec_transformations}). |
---|
28 | |
---|
29 | In OASIS3-MCT, several {\it namcouple} inputs have been deprecated |
---|
30 | but, for backwards compatibility, they are still allowed. These |
---|
31 | inputs will be noted in the following text using the notation |
---|
32 | ``UNUSED'' and not fully described. Information below these keywords |
---|
33 | is obsolete; they will not be read and will not be used. |
---|
34 | |
---|
35 | In the next sections, a {\it namcouple} example is given and |
---|
36 | all configuring parameters are described. Additional lines |
---|
37 | containing different parameters for each transformation |
---|
38 | are described in section \ref{sec_transformations}. A realistic {\it |
---|
39 | namcouple} can be found in {\tt |
---|
40 | oasis3-mct/examples/tutorial/data\_oasis3/} directory. |
---|
41 | |
---|
42 | \section{An example of a simple {\it namcouple}} |
---|
43 | \label{subsec_examplenamcouple} |
---|
44 | |
---|
45 | The following simple {\it namcouple} configures a run into which e.g. an |
---|
46 | ocean, an atmosphere and an atmospheric chemistry components are |
---|
47 | coupled. The ocean running on grid {\tt toce} provides only the SOSSTSST field to the atmosphere (grid {\tt atmo}), |
---|
48 | which in return provides the field CONSFTOT to the ocean. One field |
---|
49 | COSENHFL is exchanged from the atmosphere to the atmospheric |
---|
50 | chemistry (also running on grid {\tt atmo}), and one field SOALBEDO is read from a file by the ocean. |
---|
51 | |
---|
52 | \begin{verbatim} |
---|
53 | ########## First section ############################################# |
---|
54 | $NFIELDS |
---|
55 | 4 |
---|
56 | # |
---|
57 | $RUNTIME |
---|
58 | 432000 |
---|
59 | # |
---|
60 | $NLOGPRT |
---|
61 | 2 1 0 |
---|
62 | # |
---|
63 | $NCDFTYP |
---|
64 | cdf1 |
---|
65 | # |
---|
66 | $NUNITNO |
---|
67 | 901 920 |
---|
68 | # |
---|
69 | $NMAPDEC |
---|
70 | decomp_wghtfile |
---|
71 | # |
---|
72 | $NMATXRD |
---|
73 | ceg |
---|
74 | # |
---|
75 | $NWGTOPT |
---|
76 | ignore_bad_index |
---|
77 | # |
---|
78 | $SEQMODE |
---|
79 | $CHANNEL |
---|
80 | $JOBNAME |
---|
81 | $NBMODEL |
---|
82 | $INIDATE |
---|
83 | $MODINFO |
---|
84 | $CALTYPE |
---|
85 | # |
---|
86 | ########## Second section ############################################# |
---|
87 | # |
---|
88 | $STRINGS |
---|
89 | # |
---|
90 | # Field 1 |
---|
91 | SOSSTSST SISUTESU 1 86400 5 sstoc.nc EXPOUT |
---|
92 | 182 149 128 64 toce atmo LAG=+14400 SEQ=+1 |
---|
93 | P 2 P 0 |
---|
94 | LOCTRANS CHECKIN MAPPING BLASNEW CHECKOUT |
---|
95 | # |
---|
96 | AVERAGE |
---|
97 | INT=1 |
---|
98 | map_toce_atmo_120315.nc src opt |
---|
99 | 1.0 1 |
---|
100 | CONSTANT 273.15 |
---|
101 | INT=1 |
---|
102 | # |
---|
103 | # Field 2 |
---|
104 | CONSFTOT SOHEFLDO 6 86400 4 flxat.nc EXPORTED |
---|
105 | atmo toce LAG=+14400 SEQ=+2 |
---|
106 | P 0 P 2 |
---|
107 | LOCTRANS CHECKIN SCRIPR CHECKOUT |
---|
108 | # |
---|
109 | ACCUMUL |
---|
110 | INT=1 |
---|
111 | BILINEAR LR SCALAR LATLON 1 |
---|
112 | INT=1 |
---|
113 | # |
---|
114 | # Field 3 |
---|
115 | CONSFTOT CONSFTOT 1 86400 1 flda3.nc OUTPUT |
---|
116 | 128 64 128 64 atmo atmo |
---|
117 | LOCTRANS |
---|
118 | AVERAGE |
---|
119 | # |
---|
120 | # Field 4 |
---|
121 | SOALBEDO SOALBEDO 17 86400 0 SOALBEDO.nc INPUT |
---|
122 | \end{verbatim} |
---|
123 | |
---|
124 | % section{An example of a simple {\it namcouple}} |
---|
125 | |
---|
126 | \section{ First section of {\it namcouple} file} |
---|
127 | \label{subsec_namcouplefirst} |
---|
128 | |
---|
129 | The first section of {\it namcouple } uses some predefined keywords |
---|
130 | prefixed by the \$ sign to locate the related information. The \$ sign |
---|
131 | must be the first non-blank character on the line but can be in any column. |
---|
132 | 8 keywords are used by OASIS3-MCT and 5 of these are optional : |
---|
133 | |
---|
134 | \begin{itemize} |
---|
135 | |
---|
136 | \item {\tt \$NFIELDS}: On the line below this keyword, put a number equal (or greater) to the total |
---|
137 | number of field entries in the second part of the {\it |
---|
138 | namcouple}. If more than one field are described on the same line, this |
---|
139 | counts as only one entry. |
---|
140 | |
---|
141 | %\item {\tt \$NBMODEL}: On the line below this keyword is the number of |
---|
142 | % models running in the given experiment followed by {\tt |
---|
143 | % CHARACTER$\star$6} variables giving their names, which must |
---|
144 | % correspond to the name announced by each model when calling {\tt |
---|
145 | % oasis\_init\_comp} (second argument, see section |
---|
146 | % \ref{subsubsec_Initialisation}). |
---|
147 | % |
---|
148 | % Then the user may indicate on the same line the maximum Fortran unit |
---|
149 | % number used by the models. In the example, Fortran units above 55, |
---|
150 | % 70, and 99 are free for respectively the ocean, atmosphere, and |
---|
151 | % atmospheric chemistry models. {\bf In all cases, OASIS3-MCT library |
---|
152 | % assumes, during the initialization phase, that units 1025 and 1026 |
---|
153 | % are free and temporarily uses these units to read the {\it |
---|
154 | % namcouple} and to write corresponding log messages to file {\tt |
---|
155 | % nout.000000}.} After the initialization phase, OASIS3-MCT will |
---|
156 | % still suppose that units above 1024 are free, unless maximum unit |
---|
157 | % numbers are indicated here in the {\it namcouple}. |
---|
158 | % % If {\tt \$CHANNEL} is {\tt NONE}, {\tt \$NBMODEL} has to be 0 and |
---|
159 | % % there should be no model name and no unit number. |
---|
160 | |
---|
161 | \item {\tt \$RUNTIME}: On the line below this keyword, put the total |
---|
162 | simulated time of the run, expressed in seconds (or any other time |
---|
163 | units as long as the same are used in all components and in the {\it |
---|
164 | namcouple}, see \ref{subsubsec_sendingreceiving}). Note that by convention the first coupling of a run occurs at the beginning of the run and all other couplings occur at a time strictly smaller than {\tt \$RUNTIME}. |
---|
165 | % If {\tt \$CHANNEL} is {\tt NONE}, {\tt \$RUNTIME} has to be the |
---|
166 | % number of time occurrences of the field to interpolate from the |
---|
167 | % restart file. |
---|
168 | |
---|
169 | \item {\tt \$NLOGPRT}: The first, second and third numbers on the line below |
---|
170 | this keyword refer to (i) the debug verbosity, (ii) internal timing statistics |
---|
171 | and (iii) component load balancing analysis. The information is written by OASIS3-MCT |
---|
172 | for each component and (optionnally) for each process. |
---|
173 | |
---|
174 | The first number (that can be modified at runtime with the {\tt |
---|
175 | oasis\_set\_debug} routine, see section |
---|
176 | \ref{subsubsec_auxroutines}) may be: |
---|
177 | \begin{itemize} |
---|
178 | \item 0 : production mode. One file debug.root.xx is open by the master process of |
---|
179 | each component and one file debug\_notroot.xx is open for all the |
---|
180 | other processes of each component to write only error information. |
---|
181 | \item 1 : one file debug.root.xx is open by the master process of |
---|
182 | each component to write information equivalent to level 10 (see |
---|
183 | below) and also to write memory usage information; |
---|
184 | one file debug\_notroot.xx is open for all the other |
---|
185 | processes of each component to write error information. |
---|
186 | \item 2 : one file debug.yy.xxxxxx is open by each process of each |
---|
187 | component (with ``yyâ being the component number and ``xxxxxxâ the process number) |
---|
188 | to write normal production diagnostics and memory usage information |
---|
189 | \item 5 : as for 2 with in addition some initial debug info |
---|
190 | \item 10: as for 5 with in addition the routine calling tree |
---|
191 | \item 12: as for 10 with in addition some routine calling notes |
---|
192 | \item 15: as for 12 with even more debug diagnostics |
---|
193 | \item 20: as for 15 with in addition some extra runtime analysis |
---|
194 | \item 30: full debug information |
---|
195 | \end{itemize} |
---|
196 | The second number defines how time statistics are written out to |
---|
197 | file {\it comp\_name}.timers\_xxxx (with {\it comp\_name} being the component name, see section \ref{init_comp}); it can be: |
---|
198 | \begin{itemize} |
---|
199 | \item 0 : nothing is calculated or written. |
---|
200 | \item 1 : some time statistics are calculated and written in a |
---|
201 | single file by the processor 0 as well as the min and the max |
---|
202 | times over all the processors. |
---|
203 | \item 2 : some time statistics are calculated and each processor |
---|
204 | writes its own file ; processor 0 also writes the min and the max |
---|
205 | times over all the processors in its file. |
---|
206 | \item 3 : some time statistics are calculated and each processor |
---|
207 | writes its own file ; processor 0 also writes in its file the min |
---|
208 | and the max times over all processors and also writes in its file |
---|
209 | all the results for each processor. |
---|
210 | \end{itemize} |
---|
211 | For more information on the time statistics written out, see section |
---|
212 | \ref{timestat}. |
---|
213 | |
---|
214 | The third number (new in OASIS3-MCT\_5.0) can be set to 1 to activate a load balancing diagnostic. |
---|
215 | An efficient use of the allocated computing resources in a coupled system requires the harmonisation of the components speed. This operation, called load balancing, is often neglected, either because of the apparent resource abundance and practical difficulties. |
---|
216 | To facilitates this work, OASIS3-MCT can output the full timeline of all coupling related events, for any of the allocated resources. This timeline is saved in one netCDF file per coupled component ({\tt timeline\_XXX\_component.nc}). It provides the comprehensive sequence of any operations related to the coupling (field exchange through MPI, field output on disk, field interpolation and mapping, field reading on disk, restart writing, initialisation and termination phase of the OASIS3-MCT setup) so that any simulation slow down in link with the use of the OASIS library can be identified. |
---|
217 | The analysis of the coupling field exchanges, amongst all the |
---|
218 | coupling events, allows not only to identify the resources waste of components which are recurrently waiting for their coupling fields but it also reveals other bottlenecks such as disk access, OS interruptions or model internal load imbalance. The full picture of these events makes possible an optimum load balancing, even for the most complex configurations. |
---|
219 | For a detailed information on load balancing analysis and timeline visualisation see respectively \cite{maisonnave20} and in \cite{piacentini20}. |
---|
220 | In addition to the timeline, computing information (time to solution, speed, cost) and a synthesis of the time spent on MPI routines for each coupled component can also help, in the simpler cases, to allocate resources in a balanced way ( see file {\tt load\_balancing\_info.txt} ). |
---|
221 | |
---|
222 | |
---|
223 | \item {\tt \$NCDFTYP}: Optional (new in OASIS3-MCT\_5.0); on the line below |
---|
224 | this keyword is a character string that indicates the NetCDF file type |
---|
225 | for all (i.e. mapping, restart, output) new NetCDF files generated by OASIS3. |
---|
226 | The options are {\tt cdf1}, |
---|
227 | {\tt cdf2}, and {\tt cdf5}. The mode {\tt cdf1} is also known as classic mode, {\tt cdf2} as large file format or 64bit\_offset and supports larger |
---|
228 | files, {\tt cdf5} as 64bit\_data and supports both larger files |
---|
229 | and larger variables. More information about these file types can |
---|
230 | be found in NetCDF documentation. Because {\tt cdf5} may not be generally available in |
---|
231 | all NetCDF installations, use of this option requires that the C preprocessor |
---|
232 | directive {\tt CDF\_64BIT\_DATA} be used when compiling OASIS3-MCT. If that |
---|
233 | preprocessor is not used, {\tt cdf5} is not a valid option. |
---|
234 | The file format for any NetCDF file can be diagnosed by using ``ncdump -k filename''. |
---|
235 | \$NCDFTYP only affects new files created by OASIS3-MCT. NetCDF will read and/or |
---|
236 | overwrite existing files of any NetCDF file type, and the file type will remain |
---|
237 | unchanged in that case. |
---|
238 | |
---|
239 | \item {\tt \$NUNITNO}: Optional (new in OASIS3-MCT\_4.0); on the line below this keyword are two integers |
---|
240 | that indicate the minimum and maximum unit numbers to be used for |
---|
241 | input and output files in the coupling layer. The user should |
---|
242 | choose values that will NOT conflict or overlap with unit numbers in |
---|
243 | use in any of the component models. The defaults are 1024 for the minimum and 9999 |
---|
244 | for the maximum unit number if not explicitly set by the user. |
---|
245 | |
---|
246 | \item {\tt \$NMAPDEC}: Optional (new in OASIS3-MCT\_4.0); on the line below this keyword is a character string |
---|
247 | that indicates the mapping decomposition value to be used during local mapping. The |
---|
248 | options are {\tt decomp\_1d} and {\tt decomp\_wghtfile}. Option {\tt decomp\_1d} decomposes the grid in a simple |
---|
249 | one dimensional way while {\tt decomp\_wghtfile} decomposes the grid using the |
---|
250 | information in the remapping weight file to reduced mapping communication. Option {\tt decomp\_wghtfile} |
---|
251 | will take some extra time in initialization but it should result in faster mapping. |
---|
252 | The default is {\tt decomp\_1d} but it is recommended to test {\tt decomp\_wghtfile} to see if that |
---|
253 | option improves performance. More details can be found in \cite {craig18} and in \cite{valcke11}. |
---|
254 | |
---|
255 | \item {\tt \$NMATXRD}: Optional (new in OASIS3-MCT\_4.0); on the line below this keyword is a character string |
---|
256 | that indicates the method used to read remapping weights. There are two options, {\tt orig} |
---|
257 | and {\tt ceg}. In both, the weights are read in chunks by the root process. In the {\tt orig} option, |
---|
258 | the weights are then broadcasted to all processes and each process then saves the weights needed in |
---|
259 | order to be consistent with the mapping decomposition. In the {\tt ceg} option, the root process |
---|
260 | reads the weights and then decides which process each weight should be assigned to. A |
---|
261 | series of exchanges are then done and just the weights needed on |
---|
262 | each process are sent. The {\tt orig} method sends much more data but is more parallel. The {\tt ceg} |
---|
263 | method does most of the work on the root process but less data is communicated. The default option |
---|
264 | is {\tt ceg}. More details can be found in \cite {craig18}. |
---|
265 | |
---|
266 | \item {\tt \$NWGTOPT} : Optional (new in OASIS3-MCT\_4.0); on the line below this keyword is a character string |
---|
267 | that indicates how to handle bad remapping weights. There are four options \newline |
---|
268 | {\tt abort\_on\_bad\_index}, {\tt ignore\_bad\_index}, {\tt ignore\_bad\_index\_silently}, and |
---|
269 | \newline {\tt use\_bad\_index}. Bad weights are defined as weights in the mapping file for which either |
---|
270 | the source or destination index are out of bounds relative to the number of grid cells |
---|
271 | in the grid; in that case, the weight is referencing a gridcell that does not physically |
---|
272 | exist. Note that an index equal to zero will not be considered as a bad index if the associated weight |
---|
273 | is also zero. There are other situations where the value of the actual mapping weight is |
---|
274 | scientifically incorrect, but this is not easy to detect and is not dealt with in OASIS3-MCT. |
---|
275 | \begin{itemize} |
---|
276 | \item {\tt abort\_on\_bad\_index} will write error messages to the log files and abort if a bad weight |
---|
277 | index is detected. This is the default option. |
---|
278 | \item {\tt ignore\_bad\_index} will write an error message and then remove bad |
---|
279 | weights internally before continuing. |
---|
280 | \item {\tt ignore\_bad\_index\_silently} will remove bad weights and continue without writing an error |
---|
281 | message. |
---|
282 | \item {\tt use\_bad\_index} will attempt to keep bad weights in the interpolation computation, |
---|
283 | but this can result in memory corruption, silent dropping of weights, and incorrect results ; this is not recommended. |
---|
284 | \end{itemize} |
---|
285 | |
---|
286 | Note that the ability to check mapping files at runtime in OASIS3-MCT is limited. It is always |
---|
287 | recommended that mapping files be analyzed offline before long production runs are carried out. |
---|
288 | Checks can be done to make sure the source and destination indices are valid, that weights values |
---|
289 | are reasonable (for instance, between 0 and 1, although this will depend on the mapping method), |
---|
290 | and that the sum of weights on the destination cells are reasonable (for instance, 1, in many cases). |
---|
291 | In addition, offline tests can be run with analytical functions to verify conservation, gradient |
---|
292 | preserving features and other characteristics associated with the particular mapping approach. |
---|
293 | |
---|
294 | \item {\tt \$NNOREST}: Optional (new in OASIS3-MCT\_4.0); on the line below this keyword is a character |
---|
295 | string that can override the requirement that restart files must exist |
---|
296 | if they are needed. If the character string value starts with T, t, .T, |
---|
297 | or .t (as in true), then OASIS3-MCT will initialise with zero any variable that normally requires |
---|
298 | a restart (for instance, variables with LAG $>$ 0) if the restart file does not exist. By default, missing |
---|
299 | restart files will cause the model to abort. It is strongly recommended |
---|
300 | that this keyword NOT be used in production runs. It exists to provide a |
---|
301 | quick shortcut for running technical tests. |
---|
302 | Note that if {\tt \$NNOREST} is true but the restart file nonetheless exists, it will be used. |
---|
303 | |
---|
304 | \item {\tt Keywords \$SEQMODE, \$CHANNEL, \$JOBNAME, \$NBMODEL, \$INIDATE, \$MODINFO, \$CALTYPE} are not used anymore. |
---|
305 | |
---|
306 | \end{itemize} |
---|
307 | |
---|
308 | % {Description of {\it namcouple} first section} |
---|
309 | |
---|
310 | \section{Second section of {\it namcouple} file } |
---|
311 | \label{subsec_namcouplesecond} |
---|
312 | |
---|
313 | The second part of the {\it namcouple}, starting after the keyword |
---|
314 | {\tt \$STRINGS}, contains coupling information for each coupling (or |
---|
315 | I/O) field. Its format depends on the field status given by the last |
---|
316 | entry on the field first line ({\tt EXPORTED}, {\tt IGNOUT} or {\tt |
---|
317 | INPUT} in the example above). The field may be (status {\tt AUXILARY} is now UNUSED) : |
---|
318 | |
---|
319 | \begin{itemize} |
---|
320 | \item {\tt EXPORTED}: exchanged between components and |
---|
321 | transformed by OASIS3-MCT |
---|
322 | \item {\tt EXPOUT}: exchanged, transformed and also written to two |
---|
323 | debug NetCDF files, one before the sending action in the source |
---|
324 | component below the {\tt oasis\_put} call (after local transformations |
---|
325 | {\tt LOCTRANS} and {\tt BLASOLD} if present), and one after the |
---|
326 | receiving action in the target component below the {\tt oasis\_get} call |
---|
327 | (after all transformations). {\tt EXPOUT} should be used only when |
---|
328 | debugging the coupled model. The name of the debug NetCDF file |
---|
329 | (one per field) is automatically defined based on the field and |
---|
330 | component names. |
---|
331 | \item {\tt IGNORED}: with OASIS3-MCT, this setting is equivalent to |
---|
332 | and converted to EXPORTED |
---|
333 | \item {\tt IGNOUT}: with OASIS3-MCT, this setting is equivalent to and |
---|
334 | converted to EXPOUT |
---|
335 | \item {\tt INPUT}: read in from the input file by the target component |
---|
336 | below the {\tt oasis\_get} call at |
---|
337 | appropriate times corresponding to the input period indicated by the |
---|
338 | user in the {\it namcouple}. See section \ref{subsec_inputdata} for |
---|
339 | the format of the input file. |
---|
340 | \item {\tt OUTPUT}: written out to an output debug NetCDF file by the |
---|
341 | source component below the {\tt oasis\_put} call, after local |
---|
342 | transformations {\tt LOCTRANS} and {\tt BLASOLD}, at appropriate |
---|
343 | times corresponding to the output period indicated by the user in |
---|
344 | the {\it namcouple}. |
---|
345 | |
---|
346 | \end{itemize} |
---|
347 | |
---|
348 | \subsection{Second section of {\it namcouple} for {\tt EXPORTED} and |
---|
349 | {\tt EXPOUT} fields} |
---|
350 | \label{subsubsec_secondEXPORTED} |
---|
351 | |
---|
352 | The first 3 lines for fields with status {\tt EXPORTED} and {\tt |
---|
353 | EXPOUT} are as follows: |
---|
354 | \begin{verbatim} |
---|
355 | SOSSTSST SISUTESU 1 86400 5 sstoc.nc EXPOUT |
---|
356 | 182 149 128 64 toce atmo LAG=+14400 SEQ=+1 |
---|
357 | P 2 P 0 |
---|
358 | \end{verbatim} |
---|
359 | %\vspace{-0.2cm} |
---|
360 | where the different entries are: |
---|
361 | \begin{itemize} |
---|
362 | \item Field first line: |
---|
363 | \begin{itemize} |
---|
364 | |
---|
365 | \item {\tt SOSSTSST} : symbolic name for the field in the source |
---|
366 | component (80 characters maximum). It has to match the argument {\tt name} |
---|
367 | of the corresponding field declaration in the source component; see |
---|
368 | {\tt oasis\_def\_var} in section \ref{subsubsec_Declaration} |
---|
369 | \item {\tt SISUTESU} : symbolic name for the field in the target |
---|
370 | component (80 characters maximum). It has to match the argument {\tt |
---|
371 | name} of the corresponding field declaration in the target |
---|
372 | component; see {\tt oasis\_def\_var} in section |
---|
373 | \ref{subsubsec_Declaration} |
---|
374 | \item 1 : UNUSED but still required for parsing |
---|
375 | \item 86400 : coupling and/or I/O period for the field, in seconds |
---|
376 | \item 5 : number of transformations to be performed by OASIS3 on |
---|
377 | this field |
---|
378 | \item sstoc.nc : name of the coupling restart file for the field |
---|
379 | (32 characters maximum); mandatory even if no coupling restart file is |
---|
380 | effectively used (for more detail, see section |
---|
381 | \ref{subsec_restartdata}) |
---|
382 | \item {\tt EXPOUT} : field status |
---|
383 | \end{itemize} |
---|
384 | \item Field second line: |
---|
385 | \begin{itemize} |
---|
386 | \item 182 : number of points for the source grid first dimension |
---|
387 | (optional) |
---|
388 | \item 149 : number of points for the source grid second dimension |
---|
389 | (optional)\footnote{For 1D field, put {\tt 1} as the second dimension} |
---|
390 | \item 128 : number of points for the target grid first dimension |
---|
391 | (optional) |
---|
392 | \item 64 : number of points for the target grid second dimension |
---|
393 | (optional)$^{1}$ |
---|
394 | |
---|
395 | These source and target grid dimensions are optional but note that |
---|
396 | in order to have 2D fields written as 2D arrays in the debug |
---|
397 | files, these dimensions must be provided in the {\it namcouple}; |
---|
398 | otherwise, the fields will be written out as 1D arrays. |
---|
399 | |
---|
400 | \item toce : prefix of the source grid name in grid data files (see |
---|
401 | section \ref{subsec_griddata}) (80 characters maximum) |
---|
402 | \item atmo : prefix of the target grid name in grid data files (80 characters maximum) |
---|
403 | \item {\tt LAG=+14400}: optional lag index for the field (see section \ref{subsec_lag}) |
---|
404 | \item {\tt SEQ=+1}: optional sequence index for the field (see |
---|
405 | section \ref{subsec_sec}) |
---|
406 | \end{itemize} |
---|
407 | \item Field third line |
---|
408 | \begin{itemize} |
---|
409 | \item P : source grid first dimension characteristic (`P': |
---|
410 | periodical; `R': regional). |
---|
411 | \item 2 : source grid first dimension number of overlapping grid |
---|
412 | points. |
---|
413 | \item P : target grid first dimension characteristic (`P': |
---|
414 | periodical; `R': regional). |
---|
415 | \item 0 : target grid first dimension number of overlapping grid |
---|
416 | points. |
---|
417 | \end{itemize} |
---|
418 | |
---|
419 | \item The fourth line gives the list of transformations to be performed for |
---|
420 | this field. In addition, there is one or more configuring lines |
---|
421 | describing some parameters for each transformation. These additional |
---|
422 | lines are described in more details in the chapter |
---|
423 | \ref{sec_transformations}. |
---|
424 | |
---|
425 | \end{itemize} |
---|
426 | |
---|
427 | {\bf Support to couple multiple fields via a single communication} |
---|
428 | |
---|
429 | With OASIS3-MCT, it is possible to couple mutiple fields via a |
---|
430 | single communication. To activate this option, the user must list the |
---|
431 | related fields on a single entry line (with a maximum of 5000 characters on one line) through a colon |
---|
432 | delimited list in the {\it namcouple}, for example: |
---|
433 | |
---|
434 | {\tt ATMTAUX:ATMTAUY:ATMHFLUX TAUX:TAUY:HEATFLUX 1 3600 3 rstrt.nc EXPORTED} |
---|
435 | |
---|
436 | All fields will then use the same |
---|
437 | {\it namcouple} settings (source and target grids, transformations, etc.) for that entry. In the component model codes, |
---|
438 | these fields are still apparently sent or received one at a |
---|
439 | time through individual {\tt oasis\_put} and {\tt oasis\_get}. Inside OASIS3-MCT, the fields are stored and a single mapping |
---|
440 | and send or receive instruction is executed for all fields. This is |
---|
441 | useful in cases where multiple fields have the same coupling |
---|
442 | transformations and to reduce communication costs by aggregating multiple |
---|
443 | fields into a single communication. |
---|
444 | |
---|
445 | This option does not put any constraint |
---|
446 | on the order of the related {\tt oasis\_put} and {\tt oasis\_get} in the codes. |
---|
447 | |
---|
448 | As they appear in one single entry line, these fields must share the same coupling restart file |
---|
449 | but this restart file may contain other fields. |
---|
450 | |
---|
451 | \subsection{Second section of {\it namcouple} for {\tt OUTPUT} fields} |
---|
452 | \label{subsubsec_secondOUTPUT} |
---|
453 | The first 3 lines for fields with status {\tt OUTPUT} are as follows: |
---|
454 | \begin{verbatim} |
---|
455 | CONSFTOT CONSFTOT 1 86400 1 flda3.nc OUTPUT |
---|
456 | 128 64 128 64 atmo atmo |
---|
457 | LOCTRANS |
---|
458 | \end{verbatim} |
---|
459 | % \vspace{-0.2cm} |
---|
460 | where the different entries are: |
---|
461 | \begin{itemize} |
---|
462 | \item Field first line: |
---|
463 | \begin{itemize} |
---|
464 | \item the source symbolic name must be repeated twice on the field |
---|
465 | first line |
---|
466 | \item 1 : UNUSED but still required for parsing |
---|
467 | \item 86400 : output period for the field, in seconds |
---|
468 | \item 1 : number of transformations to be performed by OASIS3-MCT |
---|
469 | on this field |
---|
470 | \item flda3.nc : name of the coupling restart file for the field |
---|
471 | (32 characters maximum); needed only if a {\tt LOCTRANS} transformation is present |
---|
472 | \item {\tt OUTPUT} : field status |
---|
473 | \end{itemize} |
---|
474 | \item Field second line: |
---|
475 | \begin{itemize} |
---|
476 | \item 128 : number of points for the source grid first dimension (optional) |
---|
477 | \item 64 : number of points for the source grid second dimension (optional)\footnote{For 1D field, put {\tt 1} as the second dimension} |
---|
478 | \item 128 : number of points for the target grid first dimension (optional) |
---|
479 | \item 64 : number of points for the target grid second dimension (optional)$^{1}$ |
---|
480 | \item atmo : prefix of the source grid name in grid data files repeated twice (80 characters maximum) |
---|
481 | \end{itemize} |
---|
482 | \item The third line is {\tt LOCTRANS} if this transformation is chosen for |
---|
483 | the field. Note that {\tt LOCTRANS} is the only transformation |
---|
484 | supported for {\tt OUTPUT} fields. |
---|
485 | \end{itemize} |
---|
486 | |
---|
487 | \subsection{Second section of {\it namcouple} for {\tt INPUT} fields} |
---|
488 | \label{subsubsec_secondINPUT} |
---|
489 | |
---|
490 | The first and only line for fields with status {\tt INPUT} is: |
---|
491 | |
---|
492 | \begin{verbatim} |
---|
493 | SOALBEDO SOALBEDO 1 86400 0 SOALBEDO.nc INPUT |
---|
494 | \end{verbatim} |
---|
495 | \vspace{-0.5cm} |
---|
496 | where the different entries are: |
---|
497 | \begin{itemize} |
---|
498 | \item {\tt SOALBEDO}: symbolic name for the field in the target component |
---|
499 | (80 characters maximum, repeated twice) |
---|
500 | \item 1: UNUSED but still required for parsing (as for |
---|
501 | EXPORTED fields above) |
---|
502 | \item 86400: input period in seconds |
---|
503 | \item 0: number of transformations (always 0 for {\tt INPUT} fields) |
---|
504 | \item {\tt SOALBEDO.nc}: the input file name (32 characters maximum) |
---|
505 | (for more detail on its format, see section \ref{subsec_inputdata}) |
---|
506 | \item {\tt INPUT}: field status. |
---|
507 | \end{itemize} |
---|