```
IPOLATES

The IPOLATES routine interpolates scalar fields
from any grid to any grid.  Only horizontal
interpolation is performed.

The following interpolation methods are possible:
(IP=0) BILINEAR
(IP=1) BICUBIC
(IP=2) NEIGHBOR
(IP=3) BUDGET
(IP=4) SPECTRAL
(IP=6) NEIGHBOR-BUDGET

Some of these methods have interpolation options and/or
restrictions on the input or output grids, both of which
are documented more fully in their respective subprograms.
The grids are defined by their grid description sections
(passed in integer form as decoded by subprogram w3fi63).

The current code recognizes the following projections:
(KGDS(1)=000) EQUIDISTANT CYLINDRICAL
(KGDS(1)=001) MERCATOR CYLINDRICAL
(KGDS(1)=003) LAMBERT CONFORMAL CONICAL
(KGDS(1)=004) GAUSSIAN CYLINDRICAL
(KGDS(1)=005) POLAR STEREOGRAPHIC AZIMUTHAL
(KGDS(1)=201) ROTATED EQUIDISTANT CYLINDRICAL
(KGDS(1)=202) ROTATED EQUIDISTANT CYLINDRICAL

Where KGDS could be either input KGDSI or output KGDSO.
As an added bonus the number of output grid points
and their latitudes and longitudes are also returned.
On the other hand, the output can be a set of station points
If KGDSO(1)<0, in which case the number of points
and their latitudes and longitudes must be input.
input bitmaps will be interpolated to output bitmaps.
output bitmaps will also be created when the output grid
extends outside of the domain of the input grid.
The output field is set to 0 where the output bitmap is off.

USAGE:    CALL IPOLATES(IP,IPOPT,KGDSI,KGDSO,MI,MO,KM,IBI,LI,GI,
NO,RLAT,RLON,IBO,LO,GO,IRET)

Input argument list:
IP       - INTEGER INTERPOLATION METHOD
(IP=0 FOR BILINEAR;
IP=1 FOR BICUBIC;
IP=2 FOR NEIGHBOR;
IP=3 FOR BUDGET;
IP=4 FOR SPECTRAL;
IP=6 FOR NEIGHBOR-BUDGET)
IPOPT    - INTEGER (20) INTERPOLATION OPTIONS
(IP=0: (NO OPTIONS)
IP=1: CONSTRAINT OPTION
IP=2: (NO OPTIONS)
IP=4: SPECTRAL SHAPE, SPECTRAL TRUNCATION
KGDSI    - INTEGER (200) INPUT GDS PARAMETERS AS DECODED BY W3FI63
KGDSO    - INTEGER (200) OUTPUT GDS PARAMETERS
MI       - INTEGER SKIP NUMBER BETWEEN INPUT GRID FIELDS IF KM>1
OR DIMENSION OF INPUT GRID FIELDS IF KM=1
MO       - INTEGER SKIP NUMBER BETWEEN OUTPUT GRID FIELDS IF KM>1
OR DIMENSION OF OUTPUT GRID FIELDS IF KM=1
KM       - INTEGER NUMBER OF FIELDS TO INTERPOLATE
IBI      - INTEGER (KM) INPUT BITMAP FLAGS
LI       - LOGICAL*1 (MI,KM) INPUT BITMAPS (IF RESPECTIVE IBI(K)=1)
GI       - REAL (MI,KM) INPUT FIELDS TO INTERPOLATE
NO       - INTEGER NUMBER OF OUTPUT POINTS (ONLY IF KGDSO(1)<0)
RLAT     - REAL (NO) OUTPUT LATITUDES IN DEGREES (IF KGDSO(1)<0)
RLON     - REAL (NO) OUTPUT LONGITUDES IN DEGREES (IF KGDSO(1)<0)

Output argument list:
NO       - INTEGER NUMBER OF OUTPUT POINTS (ONLY IF KGDSO(1)>=0)
RLAT     - REAL (MO) OUTPUT LATITUDES IN DEGREES (IF KGDSO(1)>=0)
RLON     - REAL (MO) OUTPUT LONGITUDES IN DEGREES (IF KGDSO(1)>=0)
IBO      - INTEGER (KM) OUTPUT BITMAP FLAGS
LO       - LOGICAL*1 (MO,KM) OUTPUT BITMAPS (ALWAYS OUTPUT)
GO       - REAL (MO,KM) OUTPUT FIELDS INTERPOLATED
IRET     - INTEGER RETURN CODE
0    SUCCESSFUL INTERPOLATION
1    UNRECOGNIZED INTERPOLATION METHOD
2    UNRECOGNIZED INPUT GRID OR NO GRID OVERLAP
3    UNRECOGNIZED OUTPUT GRID
1X   INVALID BICUBIC METHOD PARAMETERS
3X   INVALID BUDGET METHOD PARAMETERS
4X   INVALID SPECTRAL METHOD PARAMETERS

iplib.tar
Library contains subroutines to be used for
interpolating almost any grids used at NCEP. (Fortran90)
Date posted: 2/22/2007

```