NCEPLIBS-ip 5.2.0
|
Spectrally truncate gridded vector fields. More...
Go to the source code of this file.
Functions/Subroutines | |
subroutine | sptrunv (iromb, maxwv, idrti, imaxi, jmaxi, idrto, imaxo, jmaxo, kmax, iprime, iskipi, jskipi, kskipi, iskipo, jskipo, kskipo, jcpu, gridui, gridvi, luv, griduo, gridvo, ldz, griddo, gridzo, lps, gridpo, gridso) |
This subprogram spectrally truncates vector fields on a global cylindrical grid, returning the fields to a possibly different global cylindrical grid. | |
subroutine sptrunv | ( | iromb, | |
maxwv, | |||
idrti, | |||
imaxi, | |||
jmaxi, | |||
idrto, | |||
imaxo, | |||
jmaxo, | |||
kmax, | |||
iprime, | |||
iskipi, | |||
jskipi, | |||
kskipi, | |||
iskipo, | |||
jskipo, | |||
kskipo, | |||
jcpu, | |||
real, dimension(*) | gridui, | ||
real, dimension(*) | gridvi, | ||
logical | luv, | ||
real, dimension(*) | griduo, | ||
real, dimension(*) | gridvo, | ||
logical | ldz, | ||
real, dimension(*) | griddo, | ||
real, dimension(*) | gridzo, | ||
logical | lps, | ||
real, dimension(*) | gridpo, | ||
real, dimension(*) | gridso | ||
) |
This subprogram spectrally truncates vector fields on a global cylindrical grid, returning the fields to a possibly different global cylindrical grid.
The wave-space can be either triangular or rhomboidal. Either 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. Over zonal wavenumber to ensure reproducibility. Transform several fields at a time to improve vectorization. Subprogram can be called from a multiprocessing environment.
PROGRAM HISTORY LOG:
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. |
IDRTO | - INTEGER OUTPUT GRID IDENTIFIER (IDRTO=4 FOR GAUSSIAN GRID, IDRTO=0 FOR EQUALLY-SPACED GRID INCLUDING POLES, IDRTO=256 FOR EQUALLY-SPACED GRID EXCLUDING POLES) |
IMAXO | - INTEGER EVEN NUMBER OF OUTPUT LONGITUDES. |
JMAXO | - INTEGER NUMBER OF OUTPUT LATITUDES. |
KMAX | - INTEGER NUMBER OF FIELDS TO TRANSFORM. |
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) |
ISKIPO | - INTEGER SKIP NUMBER BETWEEN OUTPUT LONGITUDES (DEFAULTS TO 1 IF ISKIPO=0) |
JSKIPO | - INTEGER SKIP NUMBER BETWEEN OUTPUT LATITUDES FROM SOUTH (DEFAULTS TO -IMAXO IF JSKIPO=0) |
KSKIPO | - INTEGER SKIP NUMBER BETWEEN OUTPUT GRID FIELDS (DEFAULTS TO IMAXO*JMAXO IF KSKIPO=0) |
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 |
GRIDUO | - REAL (*) OUTPUT U-WINDS IF LUV (MAY OVERLAY INPUT FIELDS IF GRID SHAPE IS APPROPRIATE) |
GRIDVO | - REAL (*) OUTPUT V-WINDS IF LUV (MAY OVERLAY INPUT FIELDS IF GRID SHAPE IS APPROPRIATE) |
GRIDDO | - REAL (*) OUTPUT DIVERGENCES IF LDZ (MAY OVERLAY INPUT FIELDS IF GRID SHAPE IS APPROPRIATE) |
GRIDZO | - REAL (*) OUTPUT VORTICITIES IF LDZ (MAY OVERLAY INPUT FIELDS IF GRID SHAPE IS APPROPRIATE) |
GRIDPO | - REAL (*) OUTPUT POTENTIALS IF LPS (MAY OVERLAY INPUT FIELDS IF GRID SHAPE IS APPROPRIATE) |
GRIDSO | - REAL (*) OUTPUT STREAMFCNS IF LPS (MAY OVERLAY INPUT FIELDS IF GRID SHAPE IS APPROPRIATE) |
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 90 of file sptrunv.f.
References ncpus(), splaplac(), sptran(), sptranv(), and spwget().
Referenced by spectral_interp_mod::polatev4::polatev4_grib1(), and spectral_interp_mod::polatev4::polatev4_grib2().