59 SUBROUTINE sptgpmv(IROMB,MAXWV,KMAX,MI,MJ,
60 & KWSKIP,KGSKIP,NISKIP,NJSKIP,
61 & RLAT1,RLON1,DLAT,DLON,WAVED,WAVEZ,UM,VM)
63 REAL WAVED(*),WAVEZ(*),UM(*),VM(*)
64 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
65 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
66 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
67 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
69 REAL W((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,2*KMAX)
70 REAL WTOP(2*(MAXWV+1),2*KMAX)
71 REAL PLN((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),PLNTOP(MAXWV+1)
72 REAL F(2*MAXWV+3,2,2*KMAX)
73 REAL CLAT(MJ),SLAT(MJ),CLON(MAXWV,MI),SLON(MAXWV,MI)
74 parameter(rerth=6.3712e6)
75 parameter(pi=3.14159265358979,dpr=180./pi)
78 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
79 mx=(maxwv+1)*((iromb+1)*maxwv+2)/2
92 rlon=mod(rlon1+dlon*(i-1)+3600,360.)
94 clon(l,i)=cos(l*rlon/dpr)
95 slon(l,i)=sin(l*rlon/dpr)
98 ye=1-log(tan((rlat1+90)/2/dpr))*dpr/dlat
100 rlat=atan(exp(dlat/dpr*(j-ye)))*2*dpr-90
101 clat(j)=cos(rlat/dpr)
102 slat(j)=sin(rlat/dpr)
110 CALL spdz2uv(iromb,maxwv,enn1,elonn1,eon,eontop,
111 & waved(kws+1),wavez(kws+1),
112 & w(1,k),w(1,kmax+k),wtop(1,k),wtop(1,kmax+k))
118 CALL splegend(iromb,maxwv,slat(j),clat(j),eps,epstop,
120 CALL spsynth(iromb,maxwv,2*maxwv,idim,mdim,2*mxtop,2*kmax,
121 & clat(j),pln,plntop,mp,w,wtop,f)
126 ijk=(i-1)*ni+(j-1)*nj+(k-1)*kg+1
132 ijk=(i-1)*ni+(j-1)*nj+(k-1)*kg+1
133 um(ijk)=um(ijk)+2.*(f(2*l+1,1,ku)*clon(l,i)
134 & -f(2*l+2,1,ku)*slon(l,i))
135 vm(ijk)=vm(ijk)+2.*(f(2*l+1,1,kv)*clon(l,i)
136 & -f(2*l+2,1,kv)*slon(l,i))