88 SUBROUTINE sptrunsv(IROMB,MAXWV,IDRTI,IMAXI,JMAXI,KMAX,NPS,
89 & IPRIME,ISKIPI,JSKIPI,KSKIPI,KGSKIP,
90 & NISKIP,NJSKIP,JCPU,TRUE,XMESH,ORIENT,
92 & LUV,UN,VN,US,VS,LDZ,DN,ZN,DS,ZS,
95 REAL GRIDUI(*),GRIDVI(*)
96 REAL UN(*),VN(*),US(*),VS(*),DN(*),ZN(*),DS(*),ZS(*)
97 REAL PN(*),SN(*),PS(*),SS(*)
98 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
99 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
100 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
101 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
102 REAL WD((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
103 REAL WZ((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
107 IF(jc.EQ.0) jc=
ncpus()
108 mx=(maxwv+1)*((iromb+1)*maxwv+2)/2
113 inp=(jmaxi-1)*max(0,-jn)+1
114 isp=(jmaxi-1)*max(0,-js)+1
115 CALL sptranv(iromb,maxwv,idrti,imaxi,jmaxi,kmax,
116 & iprime,iskipi,jn,js,mdim,kskipi,0,0,jc,
118 & gridui(inp),gridui(isp),gridvi(inp),gridvi(isp),-1)
122 CALL sptgpsv(iromb,maxwv,kmax,nps,mdim,kgskip,niskip,njskip,
123 & true,xmesh,orient,wd,wz,un,vn,us,vs)
128 CALL sptgps(iromb,maxwv,kmax,nps,mdim,kgskip,niskip,njskip,
129 & true,xmesh,orient,wd,dn,ds)
130 CALL sptgps(iromb,maxwv,kmax,nps,mdim,kgskip,niskip,njskip,
131 & true,xmesh,orient,wz,zn,zs)
136 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
139 CALL splaplac(iromb,maxwv,enn1,wd(1,k),wd(1,k),-1)
140 CALL splaplac(iromb,maxwv,enn1,wz(1,k),wz(1,k),-1)
144 CALL sptgps(iromb,maxwv,kmax,nps,mdim,kgskip,niskip,njskip,
145 & true,xmesh,orient,wd,pn,ps)
146 CALL sptgps(iromb,maxwv,kmax,nps,mdim,kgskip,niskip,njskip,
147 & true,xmesh,orient,wz,sn,ss)
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 sptgps(IROMB, MAXWV, KMAX, NPS, KWSKIP, KGSKIP, NISKIP, NJSKIP, TRUE, XMESH, ORIENT, WAVE, GN, GS)
This subprogram performs a spherical transform from spectral coefficients of scalar quantities to sca...
subroutine sptgpsv(IROMB, MAXWV, KMAX, NPS, KWSKIP, KGSKIP, NISKIP, NJSKIP, TRUE, XMESH, ORIENT, WAVED, WAVEZ, UN, VN, US, VS)
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 sptrunsv(IROMB, MAXWV, IDRTI, IMAXI, JMAXI, KMAX, NPS, IPRIME, ISKIPI, JSKIPI, KSKIPI, KGSKIP, NISKIP, NJSKIP, JCPU, TRUE, XMESH, ORIENT, GRIDUI, GRIDVI, LUV, UN, VN, US, VS, LDZ, DN, ZN, DS, ZS, LPS, PN, SN, PS, SS)
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.