78 SUBROUTINE sptrunl(IROMB,MAXWV,IDRTI,IMAXI,JMAXI,
79 & IDRTO,IMAXO,JMAXO,KMAX,
80 & IPRIME,ISKIPI,JSKIPI,KSKIPI,
81 & ISKIPO,JSKIPO,KSKIPO,JCPU,IDIR,GRIDI,GRIDO)
83 REAL GRIDI(*),GRIDO(*)
84 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
85 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
86 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
87 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
88 REAL W((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,KMAX)
92 IF(jc.EQ.0) jc=
ncpus()
93 mx=(maxwv+1)*((iromb+1)*maxwv+2)/2
98 inp=(jmaxi-1)*max(0,-jn)+1
99 isp=(jmaxi-1)*max(0,-js)+1
100 CALL sptran(iromb,maxwv,idrti,imaxi,jmaxi,kmax,
101 & iprime,iskipi,jn,js,mdim,kskipi,0,0,jc,
102 & w,gridi(inp),gridi(isp),-1)
105 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
108 CALL splaplac(iromb,maxwv,enn1,w(1,k),w(1,k),idir)
111 CALL sptran(iromb,maxwv,idrto,imaxo,jmaxo,kmax,
112 & 0,iskipo,jn,js,mdim,kskipo,0,0,jc,
113 & w,grido(inp),grido(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 sptrunl(IROMB, MAXWV, IDRTI, IMAXI, JMAXI, IDRTO, IMAXO, JMAXO, KMAX, IPRIME, ISKIPI, JSKIPI, KSKIPI, ISKIPO, JSKIPO, KSKIPO, JCPU, IDIR, GRIDI, GRIDO)
THIS SUBPROGRAM SPECTRALLY TRUNCATES SCALAR FIELDS ON A GLOBAL CYLINDRICAL GRID, RETURNING THEIR LAPL...
subroutine spwget(IROMB, MAXWV, EPS, EPSTOP, ENN1, ELONN1, EON, EONTOP)
This subprogram gets wave-space constants.