The following interpolations, controlled by interp.f, are available in OASIS3.
BLASOLD (routine blasold.f) performs a linear combination of the current coupling field with other coupling fields or with a constant before the interpolation per se.
This transformation requires at least one configuring line with two parameters:
# BLASOLD operation $XMULT $NBFIELDSwhere $XMULT is the multiplicative coefficient of the current field, and $NBFIELDS the number of additional fields to be combined with the current field. For each additional field, an additional input line is required:
# nbfields lines $CNAME $AMULTwhere $CNAME and $AMULT are the symbolic name and the multiplicative coefficient for the additional field. To add a constant value to the original field, put $XMULT = 1, $NBFIELDS = 1, $CNAME = CONSTANT, $AMULT = value to add.
SCRIPR is new in OASIS3 and gathers the interpolation techniques offered by Los Alamos National Laboratory SCRIP 1.4 library(1). SCRIPR routines are in prism/src/lib/scrip. See also the SCRIP 1.4 documentation in prism/src/mod/oasis3/doc/SCRIPusers.pdf. Linking with NetCDF library is mandatory when using SCRIPR interpolations.
The following types of interpolations are available:
The configuring line is:
# SCRIPR/DISWGT $CMETH $CGRS $CFTYP $REST $NBIN $NV $ASSCMP $PROJCARTwhere:
# SCRIPR/GAUSWGT $CMETH $CGRS $CFTYP $REST $NBIN $NV $VAR $ASSCMP $PROJCARTwhere all entries are as for DISTWGT, except that:
For BILINEAR and BICUBIC, Logically-Rectangular (LR) and Reduced (D) source grid types are supported. If the some of the source grid points NORMlly used in the bilinear or bicubic interpolation are masked, another algorithm is applied; at least, the nearest non-masked source neighbour is used. No values are calculated for masked target grid points.
The configuring line is:
# SCRIPR/BILINEAR or SCRIPR/BICUBIC $CMETH $CGRS $CFTYP $REST $NBIN $ASSCMP $PROJCARTwhere:
The configuring line is:
# SCRIPR/CONSERV $CMETH $CGRS $CFTYP $REST $NBIN $NORM $ORDER $ASSCMP $PROJCARTwhere:
Support of vector fields
SCRIPR supports 2D vector interpolation. The two vector components have to be identified by replacing $CFTYP by VECTOR_I or VECTOR_J and have to be associated by replacing $ASSCMP, for each component field, by the source symbolic name of the associated vector component in (see above). A proper example of vector interpolation is given in the interpolator-only mode example (see details in prism/util/running/testinterp/README_testinterp). The details of the vector treatment, performed by the routines scriprmp_vector.F90 and rotations.F90 in prism/src/lib/scrip/src are the following:
INTERP gathers different techniques of interpolation controlled by routine fiasco.f. The following interpolations are available:
These three interpolations are performed by routines in /prism/src/lib/fscint and support only A, B, G, L, Y, or Z grids (see annexe A). All sources grid points, masked or not, are used in the calculation. To avoid the `contamination' by masked source grid points, transformations MASK and EXTRAP should be used. Values are calculated for all target grid points, masked or not.
The configuring line is as follows:
# BILINEAR or BICUBIC or NNEIBOR interpolation $CMETH $CGRS $CFTYPwhere
# SURFMESH remapping $CMETH $CGRS $CFTYP $NID $NV $NIOwhere
The configuring line is:
# GAUSSIAN interpolation $CMETH $CGRS $CFTYP $NID $NV $VAR $NIOwhere
MOZAIC performs the mapping of a field from a source to a target grid. The grid-mapping dataset, i.e. the weights and addresses of the source grid points used to calculate the value of each target grid point are defined by the user in a file (see section 7.5). The configuring line is:
# MOZAIC operation $CFILE $NUMLU $NID $NVwhere
NOINTERP is the analysis that has to be chosen when no other transformation from the interpolation class is chosen. There is no configuring line.
FILLING (routine /prism/src/mod/oasis3/src/filling.f) performs the blending of a regional data set with a climatological global one for a Sea Surface Temperature (SST) or a Sea Ice Extent field. This occurs when coupling a non-global ocean model with a global atmospheric model. FILLING can only handle fields on Logically Rectangular grid (LR, but also A, B, G, L, Y, and Z grids, see section A.
The global data set has to be a set of SST given in Celsius degrees (for the filling of a Sea Ice Extent field, the presence or absence of ice is deduced from the value of the SST). The frequency of the global set can be interannual monthly, climatological monthly or yearly.
The blending can be smooth or abrupt. If the blending is abrupt, only model values are used within the model domain, and only the global data set values are used outside. If the blending is smooth, a linear interpolation is performed between the two fields within the model domain over narrow bands along the boundaries. The linear interpolation can also be performed giving a different weight to the regional or and global fields.
The smoothing is defined by parameters in /prism/src/mod/oasis3/src/ mod_smooth.F90. The lower smoothing band in the global model second dimension is defined by nsltb (outermost point) and nslte (innermost point); the upper smoothing band in the global model second dimension is defined by nnltb (outermost point) and nnlte (innermost point). The parameter qalfa controls the weights given to the regional and to the global fields in the linear interpolation. qalfa has to be or . For the outermost points (nsltb or nnltb) in the smoothing band, the weight given to the regional and global fields will respectively be 0 and 1; for the innermost points (nslte or nnlte) in the smoothing band, the weight given to the regional and global fields will respectively be 1 and 0; within the smoothing band, the weights will be a linear interpolation of the outermost and innermost weights.
The smoothing band in the global model first dimension will be a band of nliss points following the coastline. To calculate this band, OASIS3 needs nwlgmx, the greater first dimension index of the lower coastline and nelgmx, the smaller first dimension index on the upper coastline. The parameter qbeta controls the weights given to the regional and to the global fields in the linear interpolation. qbeta has to be . The weights given to the regional and global fields in the global model first dimension smoothing bands will be calculated as for the second dimension.
The user must provide the climatological data file with a specific format described in 7.5. When one uses FILLING for SST with smooth blending, thermodynamics consistency requires to modify the heat fluxes over the blending regions. The correction term is proportional to the difference between the blended SST and the original SST interpolated on the atmospheric grid and can be written out on a file to be read later, for analysis CORRECT for example. In that case, the symbolic name of the flux correction term read through the input file namcouple must correspond in FILLING and CORRECT analyses.
In case the regional ocean model includes a coastal part or islands, a sea-land mask mismatch may occur and a coastal point correction can be performed if the field has been previously interpolated with INTER/SURFMESH. In fact, the mismatch could result in the atmosphere undesirably ``seeing'' climatological SST's directly adjacent to ocean model SST's. Where this situation arises, the coastal correction consists in identifying the suitable ocean model grid points that can be used to extrapolate the field, excluding climatological grid points.
This analysis requires one configuring line with 3, 4 or 6 arguments.
# Sea Ice Extent FILLING operation $CFILE $NUMLU $CMETHwhere $CFILE is the file name for the global data set, $NUMLU the associated logical unit. $CMETH, the FILLING technique, is a CHARACTER*8 variable: the first 3 characters are either SMO, smooth filling, or RAW, no smoothing ; the next three characters must be SIE for a Sea Ice Extent filling operation; the last two define the time characteristics of the global data file, respectively MO, SE and AN for interannual monthly, climatological monthly and yearly. Note that in all cases, the global data file has to be a Sea Surface Temperature field in Celsius degrees.
#Sea Surface Temperature FILLING operation without smoothing $CFILE $NUMLU $CMETH $NFCOASTwhere $CFILE, $NUMLU are as for the SIE filling. In this case however, $CMETH(1:3) = RAW, $CMETH(4:6) = SST, and the last two characters define the time characteristics of the global data file, as for the SIE filling. $NFCOAST is the flag for the calculation of the coastal correction ( 0 no, 1 yes).
#Sea Surface Temperature FILLING operation with smoothing $CFILE $NUMLU $CMETH $NFCOAST $CNAME $NUNITwhere $CFILE, $NUMLU and $NFCOAST are as for the SST filling without smoothing. In this case, $CMETH(1:3) = SMO, $CMETH(4:6) = SST, and the last two characters define the time characteristics of the global data file, as for the SIE filling. $CNAME is the symbolic name for the correction term that is calculated by OASIS3 and $NUNIT the logical unit on which it is going to be written.