90 SUBROUTINE sptrunv(IROMB,MAXWV,IDRTI,IMAXI,JMAXI,
91 & IDRTO,IMAXO,JMAXO,KMAX,
92 & IPRIME,ISKIPI,JSKIPI,KSKIPI,
93 & ISKIPO,JSKIPO,KSKIPO,JCPU,GRIDUI,GRIDVI,
94 & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO,
97 REAL GRIDUI(*),GRIDVI(*)
98 REAL GRIDUO(*),GRIDVO(*),GRIDDO(*),GRIDZO(*),GRIDPO(*),GRIDSO(*)
99 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
100 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
101 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
102 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
103 REAL WD((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
104 REAL WZ((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
108 IF(jc.EQ.0) jc=
ncpus()
109 mx=(maxwv+1)*((iromb+1)*maxwv+2)/2
114 inp=(jmaxi-1)*max(0,-jn)+1
115 isp=(jmaxi-1)*max(0,-js)+1
116 CALL sptranv(iromb,maxwv,idrti,imaxi,jmaxi,kmax,
117 & iprime,iskipi,jn,js,mdim,kskipi,0,0,jc,
119 & gridui(inp),gridui(isp),gridvi(inp),gridvi(isp),-1)
125 inp=(jmaxo-1)*max(0,-jn)+1
126 isp=(jmaxo-1)*max(0,-js)+1
128 CALL sptranv(iromb,maxwv,idrto,imaxo,jmaxo,kmax,
129 & 0,iskipo,jn,js,mdim,kskipo,0,0,jc,
131 & griduo(inp),griduo(isp),gridvo(inp),gridvo(isp),1)
136 CALL sptran(iromb,maxwv,idrto,imaxo,jmaxo,kmax,
137 & 0,iskipo,jn,js,mdim,kskipo,0,0,jc,
138 & wd,griddo(inp),griddo(isp),1)
139 CALL sptran(iromb,maxwv,idrto,imaxo,jmaxo,kmax,
140 & 0,iskipo,jn,js,mdim,kskipo,0,0,jc,
141 & wz,gridzo(inp),gridzo(isp),1)
146 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
149 CALL splaplac(iromb,maxwv,enn1,wd(1,k),wd(1,k),-1)
150 CALL splaplac(iromb,maxwv,enn1,wz(1,k),wz(1,k),-1)
154 CALL sptran(iromb,maxwv,idrto,imaxo,jmaxo,kmax,
155 & 0,iskipo,jn,js,mdim,kskipo,0,0,jc,
156 & wd,gridpo(inp),gridpo(isp),1)
157 CALL sptran(iromb,maxwv,idrto,imaxo,jmaxo,kmax,
158 & 0,iskipo,jn,js,mdim,kskipo,0,0,jc,
159 & wz,gridso(inp),gridso(isp),1)
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 sptran(IROMB, MAXWV, IDRT, IMAX, JMAX, KMAX, IPRIME, ISKIP, JNSKIP, JSSKIP, KWSKIP, KGSKIP, JBEG, JEND, JCPU, WAVE, GRIDN, GRIDS, IDIR)
This subprogram performs a spherical transform between spectral coefficients of scalar quantities and...
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 sptrunv(IROMB, MAXWV, IDRTI, IMAXI, JMAXI, IDRTO, IMAXO, JMAXO, KMAX, IPRIME, ISKIPI, JSKIPI, KSKIPI, ISKIPO, JSKIPO, KSKIPO, JCPU, GRIDUI, GRIDVI, LUV, GRIDUO, GRIDVO, LDZ, GRIDDO, GRIDZO, LPS, GRIDPO, GRIDSO)
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.