NCEPLIBS-sp  2.3.3
sptgpm.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine sptgpm (IROMB, MAXWV, KMAX, MI, MJ, KWSKIP, KGSKIP, NISKIP, NJSKIP, RLAT1, RLON1, DLAT, DLON, WAVE, GM)
 This subprogram performs a spherical transform from spectral coefficients of scalar quantities to scalar fields on a mercator grid. More...
 

Detailed Description

Transform spectral scalar to mercator

Author
IREDELL
Date
96-02-29

Definition in file sptgpm.f.

Function/Subroutine Documentation

◆ sptgpm()

subroutine sptgpm (   IROMB,
  MAXWV,
  KMAX,
  MI,
  MJ,
  KWSKIP,
  KGSKIP,
  NISKIP,
  NJSKIP,
  RLAT1,
  RLON1,
  DLAT,
  DLON,
real, dimension(*)  WAVE,
real, dimension(*)  GM 
)

This subprogram performs a spherical transform from spectral coefficients of scalar quantities to scalar fields on a mercator grid.

The wave-space can be either triangular or rhomboidal. The wave and grid fields may have general indexing, but each wave field is in sequential 'ibm order', i.e. with zonal wavenumber as the slower index. The mercator grid is identified by the location of its first point and by its respective increments. The transforms are all multiprocessed over sector points. 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
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
KWSKIP- INTEGER SKIP NUMBER BETWEEN WAVE FIELDS (DEFAULTS TO (MAXWV+1)*((IROMB+1)*MAXWV+2) IF KWSKIP=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)
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.
WAVE- REAL (*) WAVE FIELDS
GM- REAL (*) MERCATOR FIELDS

SUBPROGRAMS CALLED:

  • SPWGET() GET WAVE-SPACE CONSTANTS
  • SPLEGEND() COMPUTE LEGENDRE POLYNOMIALS
  • SPSYNTH() SYNTHESIZE FOURIER FROM SPECTRAL

Definition at line 59 of file sptgpm.f.