POLATES4
The POLATES4 routine performs spectral interpolation
from any grid to any grid for scalar fields.
It requires that the input fields be uniformly global.
Options allow choices between triangular shape (ipopt(1)=0)
and rhomboidal shape (ipopt(1)=1) which has no default;
A second option is the truncation (ipopt(2)) which defaults
to a sensible truncation for the input grid (if opt(2)=-1).
Note that if the output grid is not found in a special list,
then the transform back to grid is not very fast.
This special list contains global cylindrical grids,
Polar Stereographic grids centered at the pole and
Mercator grids.
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 (SPECTRAL NATIVE)
(KGDS(1)=005) POLAR STEREOGRAPHIC AZIMUTHAL
(KGDS(1)=202) ROTATED EQUIDISTANT CYLINDRICAL (ETA NATIVE)
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.
Output bitmaps will not be created.
USAGE: CALL POLATES4(IPOPT,KGDSI,KGDSO,MI,MO,KM,IBI,LI,GI,
NO,RLAT,RLON,IBO,LO,GO,IRET)
Input argument list:
IPOPT - INTEGER (20) INTERPOLATION OPTIONS
IPOPT(1)=0 FOR TRIANGULAR, IPOPT(1)=1 FOR RHOMBOIDAL;
IPOPT(2) IS TRUNCATION NUMBER
(DEFAULTS TO SENSIBLE IF IPOPT(2)=-1).
KGDSI - INTEGER (200) INPUT GDS PARAMETERS AS DECODED BY W3FI63
KGDSO - INTEGER (200) OUTPUT GDS PARAMETERS
(KGDSO(1)<0 IMPLIES RANDOM STATION POINTS)
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 (MUST BE ALL 0)
LI - LOGICAL*1 (MI,KM) INPUT BITMAPS (IF SOME 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
2 UNRECOGNIZED INPUT GRID OR NO GRID OVERLAP
3 UNRECOGNIZED OUTPUT GRID
41 INVALID NONGLOBAL INPUT GRID
42 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 |