NCEPLIBS-ip 5.2.0
Loading...
Searching...
No Matches
sptranf0.f
Go to the documentation of this file.
1C> @file
2C> @brief Sptranf spectral initialization.
3C> @author IREDELL @date 96-02-29
4
5C> This subprogram performs an initialization for
6C> subprogram sptranf(). Use this subprogram outside
7C> the sptranf() family context at your own risk.
8C>
9C> @param IROMB spectral domain shape
10c> (0 for triangular, 1 for rhomboidal)
11C> @param MAXWV spectral truncation
12C> @param IDRT grid identifier
13C> - IDRT=4 for Gaussian grid,
14C> - IDRT=0 for equally-spaced grid including poles,
15C> - IDRT=256 for equally-spaced grid excluding poles
16C> @param IMAX even number of longitudes
17C> @param JMAX number of latitudes
18C> @param JB latitude index (from pole) to begin transform
19C> @param JE latitude index (from pole) to end transform
20C> @param EPS
21C> @param EPSTOP
22C> @param ENN1
23C> @param ELONN1
24C> @param EON
25C> @param EONTOP
26C> @param AFFT auxiliary array if IDIR=0
27C> @param CLAT cosines of latitude
28C> @param SLAT sines of latitude
29C> @param WLAT Gaussian weights
30C> @param PLN Legendre polynomials
31C> @param PLNTOP Legendre polynomial over top
32C>
33C> @author IREDELL @date 96-02-29
34 SUBROUTINE sptranf0(IROMB,MAXWV,IDRT,IMAX,JMAX,JB,JE,
35 & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP,
36 & AFFT,CLAT,SLAT,WLAT,PLN,PLNTOP)
37
38 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
39 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
40 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
41 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
42 REAL(8) AFFT(50000+4*IMAX)
43 REAL CLAT(JB:JE),SLAT(JB:JE),WLAT(JB:JE)
44 REAL PLN((MAXWV+1)*((IROMB+1)*MAXWV+2)/2,JB:JE)
45 REAL PLNTOP(MAXWV+1,JB:JE)
46 REAL SLATX(JMAX),WLATX(JMAX)
47 REAL W(IMAX+2,2),G(IMAX,2)
48
49 w = 0.0
50 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
51 CALL spffte(imax,(imax+2)/2,imax,2,w,g,0,afft)
52 CALL splat(idrt,jmax,slatx,wlatx)
53 jhe=(jmax+1)/2
54 IF(jhe.GT.jmax/2) wlatx(jhe)=wlatx(jhe)/2
55 DO j=jb,je
56 clat(j)=sqrt(1.-slatx(j)**2)
57 slat(j)=slatx(j)
58 wlat(j)=wlatx(j)
59 ENDDO
60C$OMP PARALLEL DO
61 DO j=jb,je
62 CALL splegend(iromb,maxwv,slat(j),clat(j),eps,epstop,
63 & pln(1,j),plntop(1,j))
64 ENDDO
65
66 END
subroutine spffte(imax, incw, incg, kmax, w, g, idir, afft)
This subprogram performs multiple fast Fourier transforms between complex amplitudes in Fourier space...
Definition spffte.f:49
subroutine splat(idrt, jmax, slat, wlat)
Computes cosines of colatitude and Gaussian weights for one of the following specific global sets of ...
Definition splat.F:46
subroutine splegend(i, m, slat, clat, eps, epstop, pln, plntop)
Evaluates the orthonormal associated Legendre polynomials in the spectral domain at a given latitude.
Definition splegend.f:45
subroutine sptranf0(iromb, maxwv, idrt, imax, jmax, jb, je, eps, epstop, enn1, elonn1, eon, eontop, afft, clat, slat, wlat, pln, plntop)
This subprogram performs an initialization for subprogram sptranf().
Definition sptranf0.f:37
subroutine spwget(iromb, maxwv, eps, epstop, enn1, elonn1, eon, eontop)
This subprogram gets wave-space constants.
Definition spwget.f:18