source: CPL/oasis3-mct/branches/OASIS3-MCT_5.0_branch/doc/UG4_Transformations.tex @ 6331

Last change on this file since 6331 was 6331, checked in by aclsce, 17 months ago

Moved oasis-mct_5.0 in oasis3-mct/branches directory.

  • Property svn:executable set to *
File size: 49.1 KB
Line 
1\newpage
2\chapter{Transformations and interpolations}
3\label{sec_transformations}
4
5Different transformations and 2D interpolations are available in
6OASIS3-MCT to adapt the coupling fields from a source model grid to a
7target model grid.  In the following paragraphs, a description of each
8transformation with its corresponding configuration lines that the
9user has to write in the {\it namcouple} file is given.  Features that
10are now deprecated (non functional) compared to prior versions will be
11noted with the string UNUSED and not described.
12
13\section{Time transformations}
14\label{subsec_timetrans}
15
16\begin{itemize}
17
18\item {\bf LOCTRANS}:
19
20  {\tt LOCTRANS} requires one configuring line on which a time
21  transformation, automatically performed below the call to {\tt
22    oasis\_put}, should be indicated:
23
24  \begin{verbatim}
25 # LOCTRANS operation
26   $TRANSFORM
27\end{verbatim}
28  % $
29  \vspace{-0.2cm} where {\tt \$TRANSFORM} can be
30  \begin{itemize}
31  \item {\tt INSTANT}: no time transformation, the instantaneous field
32    is transferred;
33  \item {\tt ACCUMUL}: the field accumulated over the previous
34    coupling period is exchanged (the accumulation is simply done over
35    the arrays {\tt field\_array} provided as third argument to the
36    {\tt oasis\_put} calls without any specific weighting);
37  \item {\tt AVERAGE}: the field averaged over the previous coupling
38    period is transferred (the average is simply done over the arrays
39    {\tt field\_array} provided as third argument to the {\tt
40      oasis\_put} calls without any specific weighting);
41  \item {\tt T\_MIN}: the minimum value of the field for each source
42    grid point over the previous coupling period is transferred;
43  \item {\tt T\_MAX}: the maximum value of the field for each source
44    grid point over the previous coupling period is transferred;
45  \item {\tt ONCE}: UNUSED, not supported in OASIS3-MCT.
46  \end{itemize}
47
48  Time transformations are now supported more generally
49  than with previous versions of the coupler with use of the coupling restart file.  The coupling restart file
50  allows the partial time transformation at the end of the run, if any
51  (e.g. if the {\tt AVERAGE}
52  period specified is longer than the run), to be saved at the end of a
53  run for exact restart at the start of the next run. When LOCTRANS
54  transformations are specified, the initial coupling restart file
55  should not contain any LOCTRANS restart fields. For the following
56  runs, it is mandatory that the coupling restart file contains
57  LOCTRANS restart fields coherent with the current namcouple
58  entries. For example, it will not be possible to restart a run with
59  a multiple field entry in the namcouple with a coupling restart file
60  created by a run not activating this multiple file option. This is
61  the reason why it is now possible to specify a restart file name
62  on the OUTPUT {\it namcouple} input line. Note that
63  if there is no partial transformation to be saved, the restart file
64  will still contain a restart field with 0 everywhere.
65
66\end{itemize}
67
68\section{The pre-processing transformations}
69\label{subsec_preproc}
70
71\begin{itemize}
72
73\item {\bf REDGLO} UNUSED
74
75\item {\bf INVERT}: UNUSED
76
77\item {\bf MASK}: UNUSED
78 
79\item {\bf EXTRAP}: UNUSED
80
81\item {\bf CHECKIN}:
82
83  {\tt CHECKIN} calculates the global minimum, maximum, mean, and
84  sum of the source field values taking the mask into consideration.  If a grid area
85  or fraction field is also available, (respectively in the file {\it
86    areas.nc} or {\it masks.nc}), then the area and/or fraction weighted
87  mean and sum are also diagnosed and written.  Information about masking
88  and weighting is written to the output file.  All diagnotics are
89  written to the master
90  process OASIS3-MCT debug file (under the attribute ``CHECK* diags'').
91  This operation does not transform the field. CHECKIN operations can
92  slow down the simulation and should not be used in
93  production mode.  For backward compatibility, CHECKIN has one generic
94  input line that is no longer used but is still required and can contain anything.
95  See also {\tt CHECKOUT}.
96
97  The generic input line is as follows:
98 \begin{verbatim}
99 # CHECKIN operation
100     INT = 1 
101\end{verbatim}
102
103\item {\bf CORRECT}: UNUSED
104
105\item {\bf BLASOLD}:
106
107  {\tt BLASOLD} allows the source field to be scaled and allows a
108  scalar to be added to the field.  The prior ability to perform a
109  linear combination of the current coupling field with other coupling
110  fields has been deprecated in OASIS3-MCT.  This transformation
111  occurs before the interpolation {\it per se}.
112
113  This transformation requires at least one configuring line with two
114  parameters:
115 \begin{verbatim}
116# BLASOLD operation
117     $XMULT   $NBFIELDS
118\end{verbatim}
119  % \vspace{-0.2cm}
120  where {\tt \$XMULT} is the multiplicative coefficient of the source
121  field. {\tt
122    \$NBFIELDS} must be 0 if no scalar needs to be added or 1 if a
123  scalar needs to be added. In this last case, an additional input
124  line is required where {\tt \$AVALUE} is the scalar to be added to
125  the field, which must also be given as a REAL value :
126\begin{verbatim}
127     CONSTANT  $AVALUE
128\end{verbatim} 
129\end{itemize}
130
131% subsection{The pre-processing transformations}
132
133\section{The remapping (or interpolation or regridding)}
134\label{subsec_interp}
135
136\begin{itemize}
137
138\item {\bf MAPPING}:
139
140  The {\tt MAPPING} keyword is used to specify an input file to be
141  read and used for remapping. The
142  {\tt MAPPING} file must follow the {\tt SCRIPR} format (see
143    section \ref{subsec_mapdata}) but can be generated by another
144    library, for example ESMF or XIOS (see details in section \ref{subsec_regrid}). As for the other transformations
145    and interpolations, different mappings can be specified for the
146    different coupling fields. Grid data files {\it grids.nc}, {\it masks.nc}, and {\it areas.nc}
147  are not needed for {\tt MAPPING}.
148 
149  Since OASIS3-MCT\_2.0, {\tt MAPPING} can be used for higher order
150  remapping. Up to 5 different sets of weights (see section
151  \ref{subsec_mapdata} for the weight file format) can be applied to
152  up to 5 different fields transfered through the {\tt oasis\_put} argument
153  (see section \ref{prismput}).
154
155  This transformation requires at least one configuring line with one
156  filename and two optional string values:
157\begin{verbatim}
158     $MAPNAME  $MAPLOC  $MAPSTRATEGY
159\end{verbatim}
160  \begin{itemize}
161  \item {\tt \$MAPNAME} is the name of the mapping file to read.  This
162    is a NetCDF file consistent with the SCRIPR map file format (see
163    section \ref{subsec_mapdata}).
164
165  \item {\tt \$MAPLOC} is optional and can be either {\tt src} or {\tt
166      dst}.  With {\tt src}, the mapping will be done in parallel on
167    the source processors before communication to the destination
168    model processes; this is the default.  With {\tt dst}, the mapping
169    is done on the destination processes after the source grid data is
170    sent from the source model.
171
172  \item {\tt \$MAPSTRATEGY} is optional and can be either {\tt bfb},
173    {\tt sum}, or {\tt opt}.  In {\tt bfb} mode, the mapping is done
174    using a strategy that produces bit-for-bit identical results
175    regardless of the grid decompositions; this is the default.  With {\tt sum}, the
176    transform is done using the partial sum approach which generally
177    introduces roundoff level changes in the results on different
178    processor counts. Option {\tt opt} allows the coupling layer to
179    choose either approach based on an analysis of which strategy is
180    likely to run faster. Usually, partial sums will be used if the
181    source grid has a higher resolution than the target grid as this
182    should reduce the overall communication (in particular for conservative
183    remapping). By default {\tt \$MAPSTRATEGY} = {\tt bfb}.
184
185  \end{itemize}
186
187  Note that if {\tt SCRIPR} (see below) is used to calculate the
188  remapping file, {\tt MAPPING} can still be listed in the {\tt
189    namcouple}, for example to use it with a specific {\tt
190    \$MAPLOC} or {\tt \$MAPSTRATEGY} option.
191
192\item {\bf SCRIPR}:
193 
194  {\tt SCRIPR} gathers the interpolation techniques offered by Los
195  Alamos National Laboratory SCRIP 1.4 library
196  \citep{Jones99}\footnote{See also
197    http://climate.lanl.gov/Software/SCRIP/ and the copyright
198    statement in appendix \ref{sec_SCRIP}.}.  {\tt SCRIPR} routines
199  are in {\tt oasis3-mct/lib/scrip}. See the SCRIP 1.4 documentation
200  in {\tt oasis3/doc/SCRIPusers.pdf} for more details on the
201  interpolation algorithms.
202 
203 Since OASIS3-MCT\_4.0 release, a hybrid MPI+OpenMP parallel version
204 of the SCRIP library is available. It relies on the MPI parallel
205 layout of the calling model but only uses one MPI process per
206 node. The number of OpenMP threads per MPI process used by SCRIP is
207 set by a dedicated environment variable OASIS\_OMP\_NUM\_THREADS,
208 which can be different from the default number of threads per MPI
209 process used elsewhere in the application, set by the environment
210 variable OMP\_NUM\_THREADS ; in practice, OASIS\_OMP\_NUM\_THREADS has
211 to be smaller or equal to OMP\_NUM\_THREADS. For optimum performance,
212 it is recommended to set OASIS\_OMP\_NUM\_THREADS to the number of
213 cores on the node. The {\tt regrid\_environment} directory (see
214 section \ref{subsec_regrid}) in {\tt
215 oasis3-mct/examples/regrid\_environment} gives a practical example on
216how to use the SCRIP library\footnote{The {\tt regrid\_environment}
217  directory provides a practical example on how to calculate the
218  regridding weight-and-address files with the SCRIP library but also
219  with ESMF and XIOS, see section \ref{subsec_regrid}}  in parallel to
220calculate regridding weight-and-address files. The details of the
221SCRIP parallelisation can be found in \cite{piacentini08} and
222\cite{valcke11}\footnote{A few bugs
223  were fixed in the SCRIP library available since OASIS3-MCT\_4.0 release, in particular in the bounding box definition of the grid cells. This solves an important bug observed in the Pacific near the equator for the bilinear and bicubic interpolations for Cartesian grids. However, given these modifications, one cannot expect to get exactly the same results for the weight-and-address remapping files with this new parallel SCRIP version as compared to the previous SCRIP version in OASIS3-MCT\_3.0. We checked in many different cases that the interpolation error is smaller or of the same order than before. We also observed that the parallelisation does not ensure bit reproducible results when varying the number of processes or threads.} .
224
225  When the SCRIP library performs a remapping, it first checks if the
226  file containing the corresponding remapping weights and addresses
227  exists; if it exists, it reads them from the file; if not, it
228  calculates them and store them in a file. In the later case, SCRIP
229  needs the grid data files {\tt grids.nc} and {\tt masks.nc} (see
230  section \ref{subsec_griddata}).
231  The weight-and-address file is created in the
232  working directory and is by default called
233  {\tt rmp\_{\it src}\_to\_{\it tgt}\_{\it INTTYPE}\_{\it NORMAOPT}.nc},
234  {\tt rmp\_{\it src}\_to\_{\it tgt}\_{\it INTTYPE}\_{\it NBR}.nc}, or
235  {\tt rmp\_{\it src}\_to\_{\it tgt}\_{\it INTTYPE}.nc}. 
236  {\it src} and {\it tgt} are the acronyms of respectively the source and the target
237  grids, {\it INTTYPE} is the interpolation type (i.e. {\tt DISTWGT},
238  {\tt GAUSWGT}, {\tt GAUSWGTNF},  {\tt DISTWGTNF}, {\tt LOCCUNIF}, {\tt LOCCDIST}, {\tt LOCCGAUS}, {\tt BILINEAR}, - {\bf not BILINEA as in OASIS3.3},
239  {\tt BILINEARNF}, {\tt BICUBIC}, {\tt BICUBICNF}, or
240  {\tt CONSERV}).
241  Then {\it NORMAOPT} is the normalization
242  option, for {\tt SCRIPR/CONSERV} only (i.e. {\tt DESTAREA}, {\tt DESTARTR}, {\tt DESTNNEI}, {\tt DESTNNTR}, {\tt FRACAREA}, {\tt FRACARTR},  {\tt FRACNNEI} or {\tt FRACNNTR}, see below). {\it NBR} is the number of
243  neighbors used for {\tt DISTWGT}, {\tt DISTWGTNF}, {\tt GAUSWGT},
244  {\tt GAUSWGTNF}  {\tt LOCCUNIF}, {\tt LOCCDIST} or {\tt LOCCGAUS} only.
245  One has to take care that the
246  remapping file will have the same name even if other details, like
247  the grid masks or the {\tt \$MAPLOC} or {\tt \$MAPSTRATEGY} options,
248  are changed. When reusing a remapping file, one has
249  to be sure that it was generated in exactly the same conditions than
250  the ones it is used for.
251
252  The following types of interpolations are available:
253
254  \begin{itemize}
255
256  \item {\tt DISTWGT} performs a distance weighted nearest-neighbour
257    interpolation (N neighbours) with a nearest neighbor fill for non-masked target points
258    that do not receive a value. All types of grids are supported.
259
260  \item {\tt DISTWGTNF} performs a distance weighted nearest-neighbour
261    interpolation (N neighbours) without the nearest neighbor fill for non-masked target points.
262    All types of grids are supported.
263
264    The configuring line is:
265
266  \begin{verbatim}
267 # SCRIPR (for DISTWGT or DISTWGTNF) 
268     $CMETH $CGRS $CFTYP $REST $NBIN $NV $ASSCMP $PROJCART
269\end{verbatim}
270    where:
271    % \vspace{-0.5cm}
272    \begin{itemize}
273    \item {\tt \$CMETH = DISTWGT or DISTWGTNF}.
274    \item {\tt \$CGRS} is the source grid type ({\tt LR}, {\tt D} or
275      {\tt U})- see appendix \ref{subsec_gridtypes}.
276
277    \item {\tt \$CFTYP} is the field type: {\tt SCALAR}. The option
278      {\tt VECTOR}, which in fact leads to a scalar treatment of the
279      field (as in the previous versions), is still accepted. {\bf
280        VECTOR\_I or VECTOR\_J (i.e. vector fields) are not supported
281        anymore in OASIS3-MCT}. See ``Support of vector fields with
282      the SCRIPR remappings'' below.
283
284    \item {\tt \$REST} is a bin search restriction type: {\tt LATLON} or
285      {\tt LATITUDE}, see SCRIP 1.4 documentation SCRIPusers.pdf.
286     
287    \item {\tt \$NBIN} the number of restriction bins that must be equal to 1 for {\tt DISTWGT, DISTWGTNF, GAUSWGT, GAUSWGTNF, BILINEAR, BILINEARNF, BICUBIC} or {\tt BICUBICNF} (i.e. the
288      bin restriction is not allowed\footnote{The only exceptions are for Gaussian Reduced ({\tt D}) grids for ( {\tt BILINEAR, BILINEARNF, BICUBIC} and {\tt BICUBICNF}; in that case, {\bf if the Gaussian-reduced grid is stored from North to South} the number of bins is the number of latitude circles of the grid (minus one, to be precise), independently of {\tt \$NBIN}; {\bf for Gaussian-reduced grid stored from South to North to South, the bin definition will not work and the interpolation will become a 4 distance-weighted nearest-neighbour for all target points.}}; for details, see \newline \citep{piacentini08}).
289     
290    \item {\tt \$NV} is the number of neighbours used.
291   
292    \item {\tt \$ASSCMP}, {\tt \$PROJCART}: UNUSED; {\bf vector fields are not supported
293        anymore in OASIS3-MCT.} See ``Support of vector fields with
294      the SCRIPR remappings'' below.
295    \end{itemize}
296
297  \item {\tt GAUSWGT} performs a N nearest-neighbour interpolation
298    weighted by their distance and a gaussian function with a nearest neighbor fill for
299    non-masked target points that do not receive a value. All grid types are supported.
300
301  \item {\tt GAUSWGTNF} performs a N nearest-neighbour interpolation
302    weighted by their distance and a gaussian function without the nearest neighbor fill for
303    non-masked target points. All grid types are supported.
304
305    The configuring line is:
306\begin{verbatim}
307 # SCRIPR (for GAUSWGT or GAUSWGTNF)
308     $CMETH  $CGRS  $CFTYP  $REST  $NBIN  $NV $VAR
309\end{verbatim}
310    where all entries are as for {\tt DISTWGT}, except that:
311    \begin{itemize}
312    \item {\tt \$CMETH = GAUSWGT or GAUSWGTNF}
313    \item {\tt \$VAR} defines the weight given to a neighbour source grid
314      point as proportional to $exp(-1/2 \cdot d^2/\sigma^2)$ where
315      $d$ is the distance between the source and target grid points,
316      and $\sigma^2 = \$VAR \cdot \overline{D}^2$ where
317      $\overline{D}^2$ is, for each target grid point, the square of average distance between its source grid points 
318      (calculated automatically by OASIS3-MCT).
319    \end{itemize}
320
321  \item {\tt LOCCUNIF, LOCCDIST} and {\tt LOCCGAUS} perform a
322    locally conservative interpolation by associating N target nearest
323    neighbours to every SOURCE grid point, and applying a weight
324    normalization taking into account the source/target mesh area ratio. Interpolation
325    weights can additionally be modulated by the source/target
326    distances ({\tt LOCCDIST}) or by the source/target
327    distances and a gaussian function ({\tt LOCCGAUS}). All
328    types of grids are supported. These interpolations are convenient
329    to transfer coupling fields from disjoints areas, such as the
330    river runoff flux, as studied in \cite{voldoire2020}.
331
332    The configuring line is:
333\begin{verbatim}
334 # SCRIPR (for LOCCUNIF or LOCCDIST)
335$CMETH $CGRS $CFTYP $REST $NBIN $NV
336\end{verbatim}
337    or
338 \begin{verbatim}   
339# SCRIPR (for LOCCGAUS)
340$CMETH $CGRS $CFTYP $REST $NBIN $NV $VAR
341\end{verbatim}
342    where:
343    \begin{itemize}
344    \item  {\tt \$CMETH \$CGRS \$CFTYP \$REST \$NBIN \$NV} entries are
345      as for {\tt DISTWGT} and  {\tt \$VAR} is as for {\tt
346        GAUSWGT}. Note that for these interpolations, {\tt \$NV} represents the number of
347{\it target} (and not source) neighbours. For details, see \cite{maisonna2020}.
348    \end{itemize}
349
350  \item {\tt BILINEAR} performs an interpolation based on a local
351    bilinear approximation (see details in chapter 4 of SCRIP 1.4
352    documentation SCRIPusers.pdf). Logically-Rectangular (LR) and
353    Reduced (D) source grid types are supported.  It also generates
354    regridded values with a nearest neighbor fill for non-masked
355    target points that do not receive any value with the original algorithm.
356
357  \item {\tt BILINEARNF} is identical to {\tt BILINEAR} but without the
358    nearest neighbor fill.
359
360  \item {\tt BICUBIC} performs an interpolation based on a local
361    bicubic approximation for Logically-Rectangular (LR) grids (see
362    details in chapter 5 of SCRIP 1.4 documentation SCRIPusers.pdf),
363    and on a 16-point stencil for Gaussian Reduced (D) grids.  Note
364    that for Logically-Rectangular grids, 4 weights for each of the 4
365    enclosing source neighbours are required corresponding to the
366    field value at the point, the gradients of the field with respect
367    to {\it i} and {\it j}, and
368    the cross gradient with respect to {\it i} and {\it j} in that
369    order. OASIS3-MCT will calculate the remapping weights and
370    addresses (if they are not already provided) but will not, at run
371    time, calculate the two gradients and the cross-gradient of the
372    source field (as was the case with OASIS3.3). These 3 extra fields
373    need to be calculated by the source code and transfered as extra
374    arguments of the {\tt oasis\_put} (see {\tt fld2, fld3, fld4} in
375    section \ref{prismput}).  Finally, this interpolation will fill
376    non-masked target points that do not receive a value with a nearest neighbor fill.
377
378  \item {\tt BICUBICNF} is identical to {\tt BICUBIC} but without the
379    nearest neighbor fill.
380 
381    For {\tt BILINEAR}, {\tt BILINEARNF}, {\tt BICUBIC}, and {\tt BICUBICNF}, the configuring line
382    is:
383
384  \begin{verbatim}
385 # SCRIPR  (for BILINEAR, BILINEARNF, BICUBIC, or BICUBICNF)
386     $CMETH  $CGRS  $CFTYP  $REST  $NBIN
387\end{verbatim}
388    \vspace{-0.5cm} where:
389    % $
390    \begin{itemize}
391    \item {\tt \$CMETH = BILINEAR}, {\tt BILINEARNF}, {\tt BICUBIC}, or {\tt BICUBICNF}
392    \item {\tt \$CGRS} is the source grid type: LR or D.
393    \item {\tt \$CFTYP}, {\tt \$REST}, {\tt \$NBIN} are as for {\tt DISTWGT}.
394    \end{itemize}
395   
396    Note that for {\tt DISTWGT}, {\tt GAUSWGT}, {\tt BILINEAR} and {\tt BICUBIC}:
397    \begin{itemize}
398    \item Masked target grid points: the zero value is associated to
399      masked target grid points.
400
401    \item Non-masked target grid points having some of the source
402      points normally used in the interpolation
403      masked: a N nearest neighbour algorithm using the remaining non
404      masked source points is applied.
405
406    \item Non-masked target grid points having all source
407      points normally used in the interpolation
408      masked: by default, the nearest non-masked source
409      neighbour is used ({\tt ll\_nnei} is set to {\tt .true.} in the SCRIP run).
410     
411    \end{itemize}   
412
413    Note that for {\tt DISTWGTNF}, {\tt GAUSWGTNF}, {\tt BILINEARNF} and {\tt BICUBICNF}:
414    \begin{itemize}
415
416    \item Identical behavior to non-NF options but no nearest non-masked source
417    neighbour fill is done ({\tt ll\_nnei} is set to {\tt .false} in the SCRIP run).
418    Non-masked target grid points that do not receive any interpolated value are set to 0 .
419
420    \end{itemize}   
421
422  \item {\tt CONSERV} performs 1st or 2nd order conservative
423    remapping, which means that the weight of a source cell is
424    proportional to area intersected by the target cell (plus some
425    other terms proportional to the gradient of the field in the
426    longitudinal and latitudinal directions for the second order).
427
428    The configuring line is:
429  \begin{verbatim}
430 # SCRIPR (for CONSERV)
431     $CMETH  $CGRS  $CFTYP  $REST  $NBIN  $NORM  $ORDER $NTHRESH $STHRESH
432\end{verbatim}
433    % $
434    \vspace{-0.5cm} where:
435    \begin{itemize}
436    \item {\tt \$CMETH = CONSERV}
437    \item {\tt \$CGRS} is the source grid type: LR, D and U. Note that
438      the grid corners have to given by the user in the grid data file
439      {\tt grids.nc} or by the code itself in the initialisation phase
440      by calling routine {\tt oasis\_write\_corner} (see section
441      \ref{subsubsec_griddef}) ; OASIS3-MCT will not attempt to
442      automatically calculate them as OASIS3.3.
443      % For second-order remapping, only LR is supported because the
444      % gradient of the coupling field used in the transformation has
445      % to be calculated automatically by OASIS3.
446    \item {\tt \$CFTYP, \$REST} are as for {\tt DISTWGT}.
447    \item {\tt \$NBIN} is the number of restriction bins that can be more than 1 as bin restriction is effectively allowed for {\tt CONSERV}; for details, see \citep{piacentini08}.
448    \item {\tt \$NORM} is the normalization option:
449      \begin{itemize}
450       \item {\tt FRACAREA} or {\tt FRACARTR}: The sum of the non-masked source cell
451        intersected areas is used to normalise each target cell field
452        value: the flux is not locally conserved, but the flux value
453        itself is reasonable. With {\tt FRACARTR}, an additional correction involving the ``true" area of the grid cells
454        provided in the file {\tt areas.nc} is also applied, see details in the paragraph on the ``True Area'' (TR) correction below.
455      \item {\tt FRACNNEI} or {\tt FRACNNTR}: as {\tt FRACAREA} or {\tt FRACARTR}, except that an additional unmasked source nearest neighbour is used for unmasked
456        target cells that intersect only masked source cells.
457       \item {\tt DESTAREA} or {\tt DESTARTR}: The total target cell area is used to
458        normalise each target cell field value even if it only partly
459        intersects non-masked source grid cells: local flux
460        conservation is ensured, but unreasonable flux values may
461        result. With {\tt DESTARTR}, an additional correction involving the ``true" area of the grid cells
462        provided in the file {\tt areas.nc} is also applied, see details in the paragraph on the ``True Area'' (TR) correction below.
463      \item {\tt DESTNNEI} or {\tt DESTNNTR}: as {\tt DESTAREA} or {\tt DESTARTR}, except that an additional unmasked source nearest neighbour is used for unmasked
464        target cells that intersect only masked source cells.
465      \end{itemize}
466    \item {\tt \$ORDER}: {\tt FIRST} or {\tt SECOND} for first or
467      second order conservative remapping respectively (see SCRIP 1.4
468      documentation).
469
470      For {\tt CONSERV/SECOND}, 3 weights are needed; OASIS3-MCT will
471      calculate these weights and corresponding addresses (if they are
472      not already provided) but will not, at run time, calculate the
473      two extra terms to which the second and third weights should be
474      applied. These terms, respectively the gradient of the field
475      with respect to the latitude ($\theta$) $\frac{\delta f}{\delta
476        \theta}$ and the gradient of the field with respect to the
477      longitude ($\phi$) $\frac{1}{cos \theta}\frac{\delta f}{\delta
478        \phi}$ need to be calculated by the source code and transferred
479      as extra arguments of the {\tt oasis\_put} as {\tt fld2} and {\tt fld3}
480      respectively (see section \ref{prismput}). Note that {\tt CONSERV/SECOND} is
481      not positive definite.
482    \item {\tt \$NTHRESH} is the value of the northern latitude threshold in radians
483      where conservative area computation switches from linear boundaries in
484      longitude and latitude at the equator to a Lambert equivalent azimuthal projection
485      toward the north pole.  This value is optional and the default is 2.0 
486      radians (greater than 90 degrees) which means the Lambert projection is
487      never invoked.  If this value is set, {\tt \$STHRESH} must be set as well.
488    \item {\tt \$STHRESH}  is the value of the southern latitude threshold in radians
489      where conservative area computation switches from linear boundaries in
490      longitude and latitude at the equator to a Lambert equivalent azimuthal projection
491      toward the south pole.  This value is optional and the default is -2.0 
492      radians (less than -90 degrees) which means the Lambert projection is
493      never invoked.  If this value is set, {\tt \$NTHRESH} must be set as well.
494    \end{itemize}
495
496  \end{itemize}
497
498  {\bf Precautions related to the use of the SCRIPR/CONSERV remapping}
499 \begin{enumerate}
500 
501  \item Lambert projection above/below {\tt north\_thresh}/{\tt south\_thresh}
502   
503    For the 1st order conservative remapping, the weight of a
504    source cell is proportional to area of the source cell intersected
505    by target cell.  Using the divergence theorem, the SCRIP library
506    evaluates this area with the line integral along the cell borders
507    enclosing the area. As the real shape of the borders is not known
508    (only the location of the corners of each cell is known), the
509    library assumes that the borders are linear in latitude and
510    longitude between two corners.  This assumption becomes less valid
511    closer to the pole.
512   
513    Therefore for latitudes above the {\tt north\_thresh}
514    or below the {\tt south\_thresh} values (see {\tt
515      oasis3-mct/lib/scrip/remap\_conserv.F90}), the library evaluates
516    the intersection between two border segments using a Lambert
517    equivalent azimuthal projection.  {\bf However, by default, {\tt \bf north\_thresh} and
518    {\tt \bf south\_thresh} are set to 2.0 and -2.0 radians respectively and the Lambert projection is not activated.}
519    (Note that {\tt north\_thresh} was set to 1.45 in previous versions prior to OASIS3-MCT\_4.0.)
520
521    The value of the north and south threshhold can be defined in the
522    namcouple file via the {\tt \$NTHRESH} and {\tt \$STHRESH} optional settings
523    on the SCRIPR input line.
524   
525    \cite{valcke19} analyses the impact of the Lambert projection for specific grids.
526 
527  \item Another limitation of the SCRIP 1st order conservative
528    remapping algorithm is that it assumes, for line integral
529    calculation, that $sin(latitude)$ is linear in longitude on the
530    cell borders which again is in general not valid close to the
531    pole.
532    % A projection or at least a normalization by the
533    % true area of the cells (i.e. by the areas as considered by the
534    % component models) is needed.
535
536  \item For a proper consevative remapping, the corners of a cell have
537    to coincide with the corners of its neighbour cell, with no
538    ``holes'' between the cells.
539 
540  \item Overlying cells
541 
542  If two cells of one same grid overlay, the one with
543    the greater numerical index must be masked in {\it
544      masks.nc} for a proper conservative remapping.  For example,
545     if the grid cells with {\it i=1} overlays the grid cells with {\it i=imax}, the latter must
546    be masked.  If none of overlying cells is masked (given the
547    original mask defined in {\it
548      masks.nc}), OASIS3-MCT must be compiled with the CPP key {\tt
549      TREAT\_OVERLAY} which will ensure that these rules are
550    respected. This CPP key was introduced in OASIS3.3.
551   
552  \item Masked (non-active) target grid cells are set to 0.
553   
554  \item If a target grid cell intersects only masked source cells, or falls outside the source grid domain, it
555    will get a zero value unless the {\tt DESTNNEI}, {\tt DESTNNTR}, {\tt FRACNNEI}, or {\tt FRACNNTR}
556    normalisation options are used, in which case it will get the source
557    nearest non masked neighbour value. Note that the option of
558      having the value 1.0E+20 assigned to these target grid cell
559      intersecting only masked source cells (for easier
560      identification) is not yet availble in OASIS3-MCT.
561   
562
563    % The target grid mask is never considered in {\tt CONSERV},
564    % except with normalisation option {\tt FRACNNEI} (see below). To
565    % have a value calculated, a target grid cell must intersect at
566    % least one source cell. However, the NORMlisation option (that
567    % takes into account the source grid mask, see below) may result
568    % in a null value calculated for those target grid cells. In that
569    % case (i.e.  at least one intersecting source cell, but a null
570    % value finally calculated because of the normalisation option),
571    % the value 1.0E+20 is assigned to those target grid points if
572    % {\tt prism/src/lib/scrip/src/scriprmp.f} or {\tt vector.F90}
573    % (for vector interpolation) are compiled with {\tt
574    %   ll\_weightot=.true.}.
575   
576  \end{enumerate}
577 
578  {\bf The ``True Area'' (TR) correction: {\tt \bf DESTARTR}, {\tt \bf
579      DESTNNTR}, {\tt \bf FRACARTR}, or {\tt \bf FRACNNTR}}
580 
581The approximations and hypotheses adopted by the SCRIP impact its estimation of the grid cell areas. Therefore, to have an exact conservation of the field surface-integrated values, a correction based on the "TRue" (TR) area of the cells can be applied by choosing {\tt DESTARTR}, {\tt DESTNNTR}, {\tt FRACARTR} or {\tt FRACNNTR} options. These are based respectively on {\tt DESTAREA}, {\tt DESTNNEI}, {\tt FRACAREA} and {\tt FRACNNEI} normalisations adding the so-called ``TR correction''. The true area of the cell, i.e. the one considered by the component model itself, must be provided in the auxiliary file {\it areas.nc} in {\bf square radians}. Equations from \cite{chavas 13} (eqn. (27) in particular) are implemented.
582
583Special care is taken in the implementation for ``polar" cells in the
584SCRIP sense. The SCRIP detects cells encompassing a pole or cells with
585a side going through a pole as ``polar" cells and a specific treatment
586is applied for those cells modifying its area. The resulting estimated
587area serves as a normalisation factor but its value is not
588representative of the surface of the cell anymore. For this reason,
589the TR correction is not activated for those ``polar'' cells.
590
591More details can be found in section 6 of \cite{valcke19}. A full validation of the TR correction can be found in that report. It is noted there that the TR correction always improves the results even if, in the cases tested, the misfit between the true area and the are evaluated by the SCRIP is always small (except for ``polar'' cells of course)
592
593  % {\bf Precautions related to the use of all SCRIPR remappings}
594
595  % \begin{itemize}
596
597  % \item For using {\tt SCRIPR} interpolations, linking with the
598  %   NetCDF library is mandatory and the grid data files (see section
599  %   \ref{subsec_griddata}) must be NetCDF files (binary files are
600  %   not supported).
601
602
603
604  %   the weights and addresses will also differ whether or not the
605  %   {\tt MASK} and {\tt EXTRAP} transformations are first activated
606  %   during the pre-processing phase (see section
607  %   \ref{subsec_preproc}) and this option is not stored in the
608  %   remapping file name. Therefore, the remapping file used will be
609  %   the one created for the first field having the same source grid,
610  %   target grid, and interpolation type (and the same normalization
611  %   option for {\tt CONSERV}), even if the {\tt MASK} and {\tt
612  %     EXTRAP} transformations are used or not for that field.  (This
613  %   inconsistency is however usually not a problem as the {\tt MASK}
614  %   and {\tt EXTRAP} transformations are usually used for all fields
615  %   having the same source grid, target grid, and interpolation
616  %   type, or not at all.)
617  % \end{itemize}
618
619  {\bf Support of vector fields with the SCRIPR remappings}
620
621  Vector mapping is NOT supported and will not be supported by
622  OASIS3-MCT. For proper treatment of vector fields, the source
623  code has to send the 3 components of the vector projected in a
624  Cartesian coordinate system as separate fields. The target
625  code has to receive the 3 interpolated Cartesian components and
626  recombine them to get the proper vector field.
627
628\item {\bf INTERP}: UNUSED
629
630\item {\bf MOZAIC}: UNUSED; note that {\tt MAPPING} (see above) is the
631  NetCDF equivalent to {\tt MOZAIC}.
632
633\item {\bf NOINTERP}: UNUSED
634
635\item {\bf FILLING}: UNUSED
636
637\end{itemize}
638
639\section{The post-processing stage}
640\label{subsec_cooking}
641
642\begin{itemize}
643
644\item {\bf CONSERV}:
645
646  {\tt CONSERV} performs a global modification of the coupling field such
647  that the area integrated fields are conserved.
648 % This option is often used when conservation is desired between mapped fields
649 % but non conservative interpolation (i.e. bilinear) is carried out.
650 
651  This analysis requires the source and target grid mesh areas be
652  defined in file {\it areas.nc} file and the source and target grid
653  mask be defined in file {\it masks.nc}.
654
655  {\bf The areas must be expressed in matching units
656  on the source and destination sides. Futhermore, these must be square radians if the TR correction is activated} (see paragraph The ``True Area'' (TR) correction in section \ref{subsec_interp}).
657 
658  A grid cell mask must be defined for that operation in the {\it
659    masks.nc} file. If grid cell fractions are also defined in that file, the mask
660  and fractions are considered and must be consistent; OASIS3-MCT will abort if
661  they are not or if both are missing.  Note that by OASIS3-MCT
662  conventions for the mask, a gridcell with mask=0 (active) should
663  have fractions greater than 0 and a gridcell with mask=1 (inactive)
664  should have fractions equal to 0
665 
666 {\bf Best practice for fraction definition in ocean-atmosphere coupling}
667 
668 In principle, the fractions can be defined for both the source and target grids. But for ocean-atmosphere coupling, we strongly encourage the following best practice for a consistent ocean-atmosphere coupled system. Indeed, to have a well-posed coupled problem, the ocean and the atmospheric total surfaces must be the same allowing global conservation of integrated quantities. To do so, the original ocean mask should be taken as it is from the ocean model. For the atmosphere, cell fractions should be defined by the conservative remapping of [1 - ocean mask] on the atmospheric grid, retaining fractions above a certain threshold, to be fixed by the user. These atmospheric cell fractions should be used in the atmospheric model to define the \% of ocean (water) subsurface to be considered. Then the atmospheric coupling mask should be adapted associating a non-masked index (i.e. 0) to all cells with a water fraction above the chosen threshold. The global water surface as seen by the atmosphere model is then the sum of its cell areas multiplied by its respective cell fractions. Note that invalid masked atmospheric cells should have null ocean fractions.
669If we follow this best practice, the atmospheric cell fractions and mask will be specific to the coupling with each particular ocean grid. A specific attribute named {\tt coherent\_with\_grid} indicating the grid prefix of the {\tt companion} grid may be defined for mask and fractions. If the OASIS API is used to define the mask and fractions, this can be done via the optional argument {\tt companion} indicating the grid prefix of the companion grid (see section \ref{subsubsec_griddef}).
670 
671  In the {\it namcouple}, {\tt CONSERV} requires one input line with one argument and one optional argument:
672
673 \begin{verbatim}
674# CONSERV operation
675     $CMETH  $CONSOPT
676\end{verbatim}
677  \vspace{-0.5cm} where:
678  \begin{itemize}
679  \item {\tt \$CMETH} is the method desired with the following choices; a detailed analysis of these choices can be found in \cite{craig19} :
680    \begin{itemize}
681    \item with {\tt \$CMETH = GLOBAL}, the field is integrated on both
682      source and target grids, without considering values of masked
683      points, and the residual (target - source) is uniformly
684      distributed on the target grid as an additive term; this option ensures global
685      conservation of the field;
686    \item with {\tt \$CMETH = GLBPOS}, the same operation as {\tt GLOBAL} is performed
687      except that the residual is distributed proportionally to the
688      value of the original field as a multiplicative term; this option ensures the
689      global conservation of the field, and it does not change the sign of the
690      field if the field is well behaved;  if the field is well behaved, multiplication
691      factors close to 1 are expected.
692    \item with {\tt \$CMETH = GSSPOS}, the same operation as {\tt GLBPOS} is performed
693      except that the multiplicative term is computed separately for positive
694      and negative values of the field; this option ensures the
695      global conservation of the field and, as {\tt \$GLBPOS}, does not change the sign of the
696      field, but it is more expensive because many extra global sums are required;
697      this should be used in cases where the area averaged field value tends to 0
698      as these cases can generate poor corrections, even leading
699      to changes of sign, when carried out with the {\tt GLBPOS} option.
700    \item with {\tt \$CMETH = BASBAL}, the operation is analogous to
701      {\tt GLOBAL} as an additive term except the non masked active surface of the source
702      and the target grids are taken into account in the calculation
703      of the residual; this option does not ensure global conservation
704      of the field but ensures that the energy received is
705      proportional to the non masked active surface of the target grid;
706    \item with {\tt \$CMETH = BASPOS}, the operation is analgous to
707      {\tt GLBPOS} as a multiplicative term except the non masked surface of the
708      source and the target grids are taken into account and the
709      residual is distributed proportionally to the value of the
710      original field; this option does not ensure global
711      conservation of the field but ensures that the energy received
712      is proportional to the non masked surface of the target grid and
713      it does not change the sign of the field if the field is well behaved.
714    \item with {\tt \$CMETH = BSSPOS}, the same operation as {\tt BASPOS} is performed
715      except that the multiplicative term is computed separately for positive
716      and negative values of the field; this option has the same characteristics
717      as {\tt BASPOS} except it does not change the sign of the field, but is
718      more expensive because many extra global sums are required;
719      this should be used in cases where the area averaged field value tends to 0
720      as these cases can generate poor corrections, even leading
721      to changes of sign, when carried out with the {\tt BASPOS} option.
722    \end{itemize}
723  \item {\tt \$CONSOPT} is an optional argument specifying the
724    algorithm.  {\tt \$CONSOPT} can be {\tt bfb}, {\tt gather}, {\tt lsum16}, {\tt lsum8},
725    {\tt ddpdd}, {\tt reprosum} or {\tt opt}. Details on the perfromance of these different options can also be found in \cite{craig17} and references there in.
726\begin{itemize}
727\item The {\tt bfb} option is the default for {\tt CONSOPT}  and uses the {\tt reprosum} option (see below).
728\item The {\tt gather} option computes global sums by gathering a decomposed array
729  onto the root process before doing an index ordered sum.  This is guaranteed to produce
730  identical results for different numbers of processors and decompositions but is expensive
731  both with respect to performance and memory use. This is equivalent to the {\tt bfb} option in previous OASIS3-MCT versions.
732\item The {\tt lsum16} option computes a local sum at quadruple precision before doing
733  an MPI reduction on the local sums at quadruple precision.  This is likely to be
734  bit-for-bit for different numbers of processors and decompostions but that's not guaranteed.
735  This is just like {\tt lsum8} but at quadruple precision and a little slower.
736\item The {\tt lsum8} option computes a local sum at double precision before doing
737  an MPI reduction on the local sums at double precision.  This is NOT likely to be
738  bit-for-bit for different numbers of processors and decompostions.  This is just like {\tt lsum16}
739  but at double precision and faster.
740\item The {\tt ddpdd} option is a parallel double-double algorithm using a single scalar
741  reduction.  It should behave between {\tt lsum8} and {\tt lsum16} with respect to performance and
742  reproducibility. See \cite{He2001}.
743\item The {\tt reprosum} option is a fixed point method based on ordered double integer sums
744  that requires two scalar reductions per global sum.  The cost of reprosum will be higher than
745  some of the other methods but it will be bit-for-bit for different processor counts or
746  different decompostions except in extremely rare cases and the cost is significantly less
747  than the {\tt gather} option. See \cite{Mirin2012}.
748\item The {\tt opt} option carries out the global sum using the fastest algorithm generally available.  Currently,
749  this is set to {\tt lsum8}.  \\
750\end{itemize}
751  \end{itemize}
752
753
754
755\item {\bf SUBGRID}: UNUSED
756
757  % {\tt SUBGRID} can be used to interpolate a field from a coarse
758  % grid to a finer target grid (the target grid must be finer over
759  % the whole domain). Two types of subgrid interpolation can be
760  % performed, depending on the type of the field.
761%
762  % For solar type of flux field ({\tt \$SUBTYPE = SOLAR}), the
763  % operation performed is:
764%$$\Phi_{i} = \frac{1-\alpha_i}{1-\alpha} F$$ where $\Phi_{i}$ ($F$) is
765%the flux on the fine (coarse) grid, $\alpha_i$ ($\alpha$) an
766% auxiliary field on the fine (coarse) grid (e.g. the albedo).  The
767% whole operation is interpolated from the coarse grid with a
768% grid-mapping type of interpolation; the dataset of weights and
769% addresses has to be given by the user.
770%
771% For non-solar type of field ({\tt \$SUBTYPE = NONSOLAR}), a
772% first-order Taylor expansion of the field on the fine grid
773% relatively to a state variable is performed (for instance, an
774% expansion of the total heat flux relatively to the SST):
775%$$\Phi_{i} = F + \frac{\partial F}{\partial T} ( T_i - T ) $$ where
776%$\Phi_{i}$ ($F$) is the heat flux on the fine (coarse) grid, $T_i$
777% ($T$) an auxiliary field on the fine (coarse) grid (e.g. the SST)
778% and $\frac{\partial F}{\partial T}$ the derivative of the flux
779% versus the auxiliary field on the coarse grid. This operation is
780% interpolated from the coarse grid with a grid-mapping type of
781% interpolation; the dataset of weights and addresses has to be given
782% by the user.
783%
784% This analysis requires one input line with 7 or 8 arguments
785% depending on the type of subgrid interpolation.
786%
787% \begin{enumerate}
788% \item If the the {\tt SUBGRID} operation is performed on a solar
789%   flux, the 7-argument input line is:
790%\begin{verbatim}
791%# SUBGRID operation with $SUBTYPE=SOLAR
792%  $CFILE  $NUMLU  $NID  $NV  $SUBTYPE  $CCOARSE $CFINE\end{verbatim}where
793%{\tt \$CFILE} and {\tt \$NUMLU} are the subgrid-mapping file name and
794%associated logical unit (see section \ref{subsec_transformationdata} for the
795%structure of this file); {\tt \$NID} the identificator for this
796%subgrid-mapping dataset within the file build by OASIS based on all
797%the different {\tt SUBGRID} analyses in the present coupling; {\tt
798%\$NV} is the maximum number of target grid points use in the
799%subgrid-mapping; {\tt \$SUBTYPE = SOLAR} is the type of subgrid
800%  interpolation; {\tt \$CCOARSE} is the
801%auxiliary field name on the coarse grid (corresponding to $\alpha$)
802%and {\tt \$CFINE} is the auxiliary field name on fine grid
803%(corresponding to $\alpha_i$).
804%These two fields needs to be exchanged between their original model
805%and OASIS3 main process, at least as {\tt AUXILARY} fields.
806%This analysis is performed from the coarse grid with a grid-mapping type
807%of interpolation based on the {\tt \$CFILE} file.
808%
809% \item If the the SUBGRID operation is performed on a nonsolar flux,
810%   the 8-argument input line is:
811%\begin{verbatim}
812%# SUBGRID operation with $SUBTYPE=NONSOLAR
813%  $CFILE $NUMLU $NID $NV $SUBTYPE $CCOARSE $CFINE $CDQDT
814%\end{verbatim} where {\tt \$CFILE},  {\tt \$NUMLU},  {\tt \$NID}, 
815%{\tt \$NV} are as for a solar subgrid interpolation; {\tt
816%\$SUBTYPE = NONSOLAR}; {\tt \$CCOARSE} is the auxiliary
817%field name on the coarse grid (corresponding to $T$) and {\tt \$CFINE}
818%is the auxiliary field name on fine grid (corresponding to $T_i$); the
819%additional argument {\tt \$CDQDT} is the coupling ratio on the coarse
820%grid (corresponding to $\frac{\partial F}{\partial T}$) These three
821%fields need to be exchanged between their original model and OASIS3
822%main process as {\tt AUXILARY} fields. This operation is performed from the
823%coarse grid with a grid-mapping type of interpolation based on the {\tt
824%\$CFILE} file.
825%
826% \end{enumerate}
827
828\item {\bf BLASNEW}:
829 
830  {\tt BLASNEW} performs a scalar multiply or scalar add to any
831  destination field.  This is the equivalent of {\tt BLASOLD} on the
832  destination side.  In addition, unlike {\tt BLASOLD}, other fields on the
833  destination side can be added with a multiplier and addition weight.
834
835  This transformation requires at least one configuring line with two
836  parameters:
837 \begin{verbatim}
838# BLASNEW operation
839     $XMULT   $NBFIELDS
840\end{verbatim}
841  % \vspace{-0.2cm}
842  where {\tt \$XMULT} is the multiplicative coefficient of the destination
843  field. {\tt
844    \$NBFIELDS} will be 0 if no additional fields or scalars are needed, 1 if a
845  single scalar needs to be added, and greater than 1 if additional fields
846  are to be added. The number of {\tt \$NBFIELDS} indicates the number
847  of additional lines.  If {\tt \$NBFIELDS} is greater than 0, the first
848  additional input line must be the string {\tt CONSTANT} and then
849  a real value, {\tt \$AVALUE}, which will be added to
850  the field.  Even if {\tt \$AVALUE} is zero, this line must still be included
851  if {\tt \$NBFIELDS} is greater than 0.  If {\tt \$NBFIELDS} is greater than 1,
852  then additional input lines have the format {\tt \$FNAME \$XMULT \$AVALUE}
853  where {\tt \$FNAME} is the name of a field received in OASIS3-MCT in the same model
854  and {\tt \$XMULT} and {\tt \$AVALUE} are the multipliers and additive terms
855  to be applied to {\tt \$FNAME} :
856 \begin{verbatim}
857     CONSTANT  $AVALUE
858     $FNAME1 $XMULT1 $AVALUE1
859     $FNAME2 $XMULT2 $AVALUE2
860\end{verbatim} 
861For example :
862\begin{verbatim}
863     2.0  3
864     CONSTANT  0.0
865     FLD001 1.0 0.0
866     FLD002 5.0 -100.
867\end{verbatim}
868  will multiply the destination field by 2.0 and then add (FLD001 + FLD002*5.0 - 100)
869  to that destination field.  All combined fields must be received by the same model
870  component in OASIS3-MCT (either via coupling or input), and the field size and decomposition
871  must be consistent across all fields being combined.  The value of the field being
872  combined is associated with the last valid coupled value.  This allows fields to
873  be combined that are not coupled at the same frequency by using valid lagged values.
874  The order of the receive calls is also important.  If a field to be combined is received
875  after the destination field, then the values used are from an earlier timestep.
876  Note that while this feature is supported in OASIS3-MCT, a more transparent implementation
877  might be to combine fields in the model (not in OASIS3-MCT) after they are received independently.
878
879\item {\bf MASKP}: UNUSED
880
881\item {\bf REVERSE}: UNUSED
882
883\item {\bf CHECKOUT}:
884
885  {\tt CHECKOUT} calculates the global minimum, maximum, mean, and
886  sum of the destination field values taking the mask into consideration.  If a grid area
887  or fraction field is also available, (respectively in the file {\it
888    areas.nc} or {\it masks.nc}), then the area and/or fraction weighted
889  mean and sum are also diagnosed and written.  Information about masking
890  and weighting is written to the output file.  All diagnotics are
891  written to the master  process OASIS3-MCT debug file (under the attribute ``CHECK* diags'').
892  This operation does not transform the field. CHECKOUT operations can
893  slow down the simulation and should not be used in
894  production mode.  For backward compatibility, CHECKOUT has one generic
895  input line that is no longer used but is still required and can contain anything.
896  See also {\tt CHECKIN}.
897
898  The generic input line is as follows:
899 \begin{verbatim}
900 # CHECKOUT operation
901     INT = 1 
902\end{verbatim} 
903
904\item {\bf GLORED}: UNUSED
905
906\end{itemize}
907
908
Note: See TracBrowser for help on using the repository browser.