NCEPLIBS-ip  5.0.0
sptrung.f File Reference

Spectrally interpolate scalars to stations. More...

Go to the source code of this file.

Functions/Subroutines

subroutine sptrung (IROMB, MAXWV, IDRTI, IMAXI, JMAXI, KMAX, NMAX, IPRIME, ISKIPI, JSKIPI, KSKIPI, KGSKIP, NRSKIP, NGSKIP, JCPU, RLAT, RLON, GRIDI, GP)
 This subprogram spectrally truncates scalar fields on a global cylindrical grid, returning the fields to specified sets of station points on the globe. More...
 

Detailed Description

Spectrally interpolate scalars to stations.

Author
IREDELL
Date
96-02-29

Definition in file sptrung.f.

Function/Subroutine Documentation

◆ sptrung()

subroutine sptrung (   IROMB,
  MAXWV,
  IDRTI,
  IMAXI,
  JMAXI,
  KMAX,
  NMAX,
  IPRIME,
  ISKIPI,
  JSKIPI,
  KSKIPI,
  KGSKIP,
  NRSKIP,
  NGSKIP,
  JCPU,
real, dimension(*)  RLAT,
real, dimension(*)  RLON,
real, dimension(*)  GRIDI,
real, dimension(*)  GP 
)

This subprogram spectrally truncates scalar 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.

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)
GRIDI- REAL (*) INPUT GRID FIELDS
[out]GP- REAL (*) STATION POINT SETS

SUBPROGRAMS CALLED:

  • sptran() Perform a scalar spherical transform
  • sptgpt() Transform spectral scalar to station points
  • ncpus() Gets environment number of cpus

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 65 of file sptrung.f.

References ncpus(), sptgpt(), and sptran().

Referenced by spectral_interp_mod::polates4::polates4_grib1(), and spectral_interp_mod::polates4::polates4_grib2().