NCEPLIBS-sp
2.5.0
|
Spectrally interpolate vectors to Mercator. More...
Go to the source code of this file.
Functions/Subroutines | |
subroutine | sptrunmv (IROMB, MAXWV, IDRTI, IMAXI, JMAXI, KMAX, MI, MJ, IPRIME, ISKIPI, JSKIPI, KSKIPI, KGSKIP, NISKIP, NJSKIP, JCPU, RLAT1, RLON1, DLAT, DLON, GRIDUI, GRIDVI, LUV, UM, VM, LDZ, DM, ZM, LPS, PM, SM) |
THIS SUBPROGRAM SPECTRALLY TRUNCATES VECTOR FIELDS ON A GLOBAL CYLINDRICAL GRID, RETURNING THE FIELDS TO A MERCATOR GRID. More... | |
subroutine sptrunmv | ( | IROMB, | |
MAXWV, | |||
IDRTI, | |||
IMAXI, | |||
JMAXI, | |||
KMAX, | |||
MI, | |||
MJ, | |||
IPRIME, | |||
ISKIPI, | |||
JSKIPI, | |||
KSKIPI, | |||
KGSKIP, | |||
NISKIP, | |||
NJSKIP, | |||
JCPU, | |||
RLAT1, | |||
RLON1, | |||
DLAT, | |||
DLON, | |||
real, dimension(*) | GRIDUI, | ||
real, dimension(*) | GRIDVI, | ||
logical | LUV, | ||
real, dimension(*) | UM, | ||
real, dimension(*) | VM, | ||
logical | LDZ, | ||
real, dimension(*) | DM, | ||
real, dimension(*) | ZM, | ||
logical | LPS, | ||
real, dimension(*) | PM, | ||
real, dimension(*) | SM | ||
) |
THIS SUBPROGRAM SPECTRALLY TRUNCATES VECTOR FIELDS ON A GLOBAL CYLINDRICAL GRID, RETURNING THE FIELDS TO A MERCATOR GRID.
THE WAVE-SPACE CAN BE EITHER TRIANGULAR OR RHOMBOIDAL. THE GRID-SPACE CAN BE EITHER AN EQUALLY-SPACED GRID (WITH OR WITHOUT POLE POINTS) OR A GAUSSIAN GRID. THE GRID FIELDS MAY HAVE GENERAL INDEXING. THE TRANSFORMS ARE ALL MULTIPROCESSED. TRANSFORM SEVERAL FIELDS AT A TIME TO IMPROVE VECTORIZATION. SUBPROGRAM CAN BE CALLED FROM A MULTIPROCESSING ENVIRONMENT.
PROGRAM HISTORY LOG: 96-02-29 IREDELL 1998-12-15 IREDELL OPENMP DIRECTIVES INSERTED
IROMB | - INTEGER SPECTRAL DOMAIN SHAPE (0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL) |
MAXWV | - INTEGER SPECTRAL TRUNCATION |
IDRTI | - INTEGER INPUT GRID IDENTIFIER (IDRTI=4 FOR GAUSSIAN GRID, IDRTI=0 FOR EQUALLY-SPACED GRID INCLUDING POLES, IDRTI=256 FOR EQUALLY-SPACED GRID EXCLUDING POLES) |
IMAXI | - INTEGER EVEN NUMBER OF INPUT LONGITUDES. |
JMAXI | - INTEGER NUMBER OF INPUT LATITUDES. |
KMAX | - INTEGER NUMBER OF FIELDS TO TRANSFORM. |
MI | - INTEGER NUMBER OF POINTS IN THE FASTER ZONAL DIRECTION |
MJ | - INTEGER NUMBER OF POINTS IN THE SLOWER MERID DIRECTION |
IPRIME | - INTEGER INPUT LONGITUDE INDEX FOR THE PRIME MERIDIAN. (DEFAULTS TO 1 IF IPRIME=0) (OUTPUT LONGITUDE INDEX FOR PRIME MERIDIAN ASSUMED 1.) |
ISKIPI | - INTEGER SKIP NUMBER BETWEEN INPUT LONGITUDES (DEFAULTS TO 1 IF ISKIPI=0) |
JSKIPI | - INTEGER SKIP NUMBER BETWEEN INPUT LATITUDES FROM SOUTH (DEFAULTS TO -IMAXI IF JSKIPI=0) |
KSKIPI | - INTEGER SKIP NUMBER BETWEEN INPUT GRID FIELDS (DEFAULTS TO IMAXI*JMAXI IF KSKIPI=0) |
KGSKIP | - INTEGER SKIP NUMBER BETWEEN GRID FIELDS (DEFAULTS TO MI*MJ IF KGSKIP=0) |
NISKIP | - INTEGER SKIP NUMBER BETWEEN GRID I-POINTS (DEFAULTS TO 1 IF NISKIP=0) |
NJSKIP | - INTEGER SKIP NUMBER BETWEEN GRID J-POINTS (DEFAULTS TO MI IF NJSKIP=0) |
JCPU | - INTEGER NUMBER OF CPUS OVER WHICH TO MULTIPROCESS (DEFAULTS TO ENVIRONMENT NCPUS IF JCPU=0) |
RLAT1 | - REAL LATITUDE OF THE FIRST GRID POINT IN DEGREES |
RLON1 | - REAL LONGITUDE OF THE FIRST GRID POINT IN DEGREES |
DLAT | - REAL LATITUDE INCREMENT IN DEGREES SUCH THAT D(PHI)/D(J)=DLAT*COS(PHI) WHERE J IS MERIDIONAL INDEX. DLAT IS NEGATIVE FOR GRIDS INDEXED SOUTHWARD. (IN TERMS OF GRID INCREMENT DY VALID AT LATITUDE RLATI, THE LATITUDE INCREMENT DLAT IS DETERMINED AS DLAT=DPR*DY/(RERTH*COS(RLATI/DPR)) WHERE DPR=180/PI AND RERTH IS EARTH'S RADIUS) |
DLON | - REAL LONGITUDE INCREMENT IN DEGREES SUCH THAT D(LAMBDA)/D(I)=DLON WHERE I IS ZONAL INDEX. DLON IS NEGATIVE FOR GRIDS INDEXED WESTWARD. |
GRIDUI | - REAL (*) INPUT GRID U-WINDS |
GRIDVI | - REAL (*) INPUT GRID V-WINDS |
LUV | - LOGICAL FLAG WHETHER TO RETURN WINDS |
LDZ | - LOGICAL FLAG WHETHER TO RETURN DIVERGENCE AND VORTICITY |
LPS | - LOGICAL FLAG WHETHER TO RETURN POTENTIAL AND STREAMFCN |
UM | - REAL (*) MERCATOR U-WINDS IF LUV |
VM | - REAL (*) MERCATOR V-WINDS IF LUV |
DM | - REAL (*) MERCATOR DIVERGENCES IF LDZ |
ZM | - REAL (*) MERCATOR VORTICITIES IF LDZ |
PM | - REAL (*) MERCATOR POTENTIALS IF LPS |
SM | - REAL (*) MERCATOR STREAMFCNS IF LPS |
SUBPROGRAMS CALLED:
REMARKS: MINIMUM GRID DIMENSIONS FOR UNALIASED TRANSFORMS TO SPECTRAL:
DIMENSION | LINEAR | QUADRATIC |
---|---|---|
IMAX | 2*MAXWV+2 | 3*MAXWV/2*2+2 |
JMAX (IDRT=4,IROMB=0) | 1*MAXWV+1 | 3*MAXWV/2+1 |
JMAX (IDRT=4,IROMB=1) | 2*MAXWV+1 | 5*MAXWV/2+1 |
JMAX (IDRT=0,IROMB=0) | 2*MAXWV+3 | 3*MAXWV/2*2+3 |
JMAX (IDRT=0,IROMB=1) | 4*MAXWV+3 | 5*MAXWV/2*2+3 |
JMAX (IDRT=256,IROMB=0) | 2*MAXWV+1 | 3*MAXWV/2*2+1 |
JMAX (IDRT=256,IROMB=1) | 4*MAXWV+1 | 5*MAXWV/2*2+1 |
Definition at line 92 of file sptrunmv.f.
References ncpus(), splaplac(), sptgpm(), sptgpmv(), sptranv(), and spwget().