NCEPLIBS-ip  5.0.0
sptrungv.f File Reference

Spectrally interpolate vectors to stations. More...

Go to the source code of this file.

Functions/Subroutines

subroutine sptrungv (IROMB, MAXWV, IDRTI, IMAXI, JMAXI, KMAX, NMAX, IPRIME, ISKIPI, JSKIPI, KSKIPI, KGSKIP, NRSKIP, NGSKIP, JCPU, RLAT, RLON, GRIDUI, GRIDVI, LUV, UP, VP, LDZ, DP, ZP, LPS, PP, SP)
 THIS SUBPROGRAM SPECTRALLY TRUNCATES VECTORS FIELDS ON A GLOBAL CYLINDRICAL GRID, RETURNING THE FIELDS TO SPECIFIED SETS OF STATION POINTS ON THE GLOBE. More...
 

Detailed Description

Spectrally interpolate vectors to stations.

Author
IREDELL
Date
96-02-29

Definition in file sptrungv.f.

Function/Subroutine Documentation

◆ sptrungv()

subroutine sptrungv (   IROMB,
  MAXWV,
  IDRTI,
  IMAXI,
  JMAXI,
  KMAX,
  NMAX,
  IPRIME,
  ISKIPI,
  JSKIPI,
  KSKIPI,
  KGSKIP,
  NRSKIP,
  NGSKIP,
  JCPU,
real, dimension(*)  RLAT,
real, dimension(*)  RLON,
real, dimension(*)  GRIDUI,
real, dimension(*)  GRIDVI,
logical  LUV,
real, dimension(*)  UP,
real, dimension(*)  VP,
logical  LDZ,
real, dimension(*)  DP,
real, dimension(*)  ZP,
logical  LPS,
real, dimension(*)  PP,
real, dimension(*)  SP 
)

THIS SUBPROGRAM SPECTRALLY TRUNCATES VECTORS FIELDS ON A GLOBAL CYLINDRICAL GRID, RETURNING THE FIELDS TO SPECIFIED SETS OF STATION POINTS ON THE GLOBE.

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 AND POINT 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
Parameters
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.
NMAX- INTEGER NUMBER OF STATION POINTS TO RETURN
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 STATION POINT SETS (DEFAULTS TO NMAX IF KGSKIP=0)
NRSKIP- INTEGER SKIP NUMBER BETWEEN STATION LATS AND LONS (DEFAULTS TO 1 IF NRSKIP=0)
NGSKIP- INTEGER SKIP NUMBER BETWEEN STATION POINTS (DEFAULTS TO 1 IF NGSKIP=0)
RLAT- REAL (*) STATION LATITUDES IN DEGREES
RLON- REAL (*) STATION LONGITUDES IN DEGREES
JCPU- INTEGER NUMBER OF CPUS OVER WHICH TO MULTIPROCESS (DEFAULTS TO ENVIRONMENT NCPUS IF JCPU=0)
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
UP- REAL (*) STATION U-WINDS IF LUV
VP- REAL (*) STATION V-WINDS IF LUV
DP- REAL (*) STATION DIVERGENCES IF LDZ
ZP- REAL (*) STATION VORTICITIES IF LDZ
PP- REAL (*) STATION POTENTIALS IF LPS
SP- REAL (*) STATION STREAMFCNS IF LPS

SUBPROGRAMS CALLED:

  • SPWGET GET WAVE-SPACE CONSTANTS
  • SPLAPLAC COMPUTE LAPLACIAN IN SPECTRAL SPACE
  • SPTRANV PERFORM A VECTOR SPHERICAL TRANSFORM
  • SPTGPT TRANSFORM SPECTRAL SCALAR TO STATION POINTS
  • SPTGPTV TRANSFORM SPECTRAL VECTOR TO STATION POINTS
  • NCPUS GETS ENVIRONMENT NUMBER OF CPUS

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 81 of file sptrungv.f.

References ncpus(), splaplac(), sptgpt(), sptgptv(), sptranv(), and spwget().

Referenced by spectral_interp_mod::polatev4::polatev4_grib1(), and spectral_interp_mod::polatev4::polatev4_grib2().