92 SUBROUTINE sptrunmv(IROMB,MAXWV,IDRTI,IMAXI,JMAXI,KMAX,MI,MJ,
93 & IPRIME,ISKIPI,JSKIPI,KSKIPI,KGSKIP,
94 & NISKIP,NJSKIP,JCPU,RLAT1,RLON1,DLAT,DLON,
95 & GRIDUI,GRIDVI,LUV,UM,VM,LDZ,DM,ZM,LPS,PM,SM)
98 REAL GRIDUI(*),GRIDVI(*)
99 REAL UM(*),VM(*),DM(*),ZM(*),PM(*),SM(*)
100 REAL W((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
101 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
102 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
103 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
104 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
105 REAL WD((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
106 REAL WZ((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
110 IF(jc.EQ.0) jc=
ncpus()
111 mx=(maxwv+1)*((iromb+1)*maxwv+2)/2
116 inp=(jmaxi-1)*max(0,-jn)+1
117 isp=(jmaxi-1)*max(0,-js)+1
118 CALL sptranv(iromb,maxwv,idrti,imaxi,jmaxi,kmax,
119 & iprime,iskipi,jn,js,mdim,kskipi,0,0,jc,
121 & gridui(inp),gridui(isp),gridvi(inp),gridvi(isp),-1)
125 CALL sptgpmv(iromb,maxwv,kmax,mi,mj,mdim,kgskip,niskip,njskip,
126 & rlat1,rlon1,dlat,dlon,wd,wz,um,vm)
131 CALL sptgpm(iromb,maxwv,kmax,mi,mj,mdim,kgskip,niskip,njskip,
132 & rlat1,rlon1,dlat,dlon,wd,dm)
133 CALL sptgpm(iromb,maxwv,kmax,mi,mj,mdim,kgskip,niskip,njskip,
134 & rlat1,rlon1,dlat,dlon,wz,zm)
139 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
142 CALL splaplac(iromb,maxwv,enn1,wd(1,k),wd(1,k),-1)
143 CALL splaplac(iromb,maxwv,enn1,wz(1,k),wz(1,k),-1)
147 CALL sptgpm(iromb,maxwv,kmax,mi,mj,mdim,kgskip,niskip,njskip,
148 & rlat1,rlon1,dlat,dlon,wd,pm)
149 CALL sptgpm(iromb,maxwv,kmax,mi,mj,mdim,kgskip,niskip,njskip,
150 & rlat1,rlon1,dlat,dlon,wz,sm)
function ncpus()
Set number of CPUs - the number of processors over which to parallelize.
subroutine splaplac(I, M, ENN1, Q, QD2, IDIR)
Computes the laplacian or the inverse laplacian of a scalar field in spectral space.
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 sca...
subroutine sptgpmv(IROMB, MAXWV, KMAX, MI, MJ, KWSKIP, KGSKIP, NISKIP, NJSKIP, RLAT1, RLON1, DLAT, DLON, WAVED, WAVEZ, UM, VM)
This subprogram performs a spherical transform from spectral coefficients of divergences and curls to...
subroutine sptranv(IROMB, MAXWV, IDRT, IMAX, JMAX, KMAX, IPRIME, ISKIP, JNSKIP, JSSKIP, KWSKIP, KGSKIP, JBEG, JEND, JCPU, WAVED, WAVEZ, GRIDUN, GRIDUS, GRIDVN, GRIDVS, IDIR)
This subprogram performs a spherical transform between spectral coefficients of divergences and curls...
subroutine sptrunmv(IROMB, MAXWV, IDRTI, IMAXI, JMAXI, KMAX, MI, MJ, IPRIME, ISKIPI, JSKIPI, KSKIPI, KGSKIP, NISKIP, NJSKIP, JCPU, RLAT1, RLON1, DLAT, DLON, GRIDUI, GRIDVI, LUV, UM, VM, LDZ, DM, ZM, LPS, PM, SM)
THIS SUBPROGRAM SPECTRALLY TRUNCATES VECTOR FIELDS ON A GLOBAL CYLINDRICAL GRID, RETURNING THE FIELDS...
subroutine spwget(IROMB, MAXWV, EPS, EPSTOP, ENN1, ELONN1, EON, EONTOP)
This subprogram gets wave-space constants.