81 & KWSKIP,KGSKIP,NISKIP,NJSKIP,
82 & TRUE,XMESH,ORIENT,WAVED,WAVEZ,UN,VN,US,VS)
84 REAL WAVED(*),WAVEZ(*),UN(*),VN(*),US(*),VS(*)
85 REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1)
86 REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
87 REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2)
88 REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1)
90 REAL SLON(MAXWV,8),CLON(MAXWV,8),SROT(0:3),CROT(0:3)
91 REAL W((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2+1,2*KMAX)
92 REAL WTOP(2*(MAXWV+1),2*KMAX)
93 REAL PLN((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),PLNTOP(MAXWV+1)
94 REAL F(2*MAXWV+3,2,2*KMAX)
95 DATA srot/0.,1.,0.,-1./,crot/1.,0.,-1.,0./
96 parameter(rerth=6.3712e6)
97 parameter(pi=3.14159265358979,dpr=180./pi)
100 CALL spwget(iromb,maxwv,eps,epstop,enn1,elonn1,eon,eontop)
101 mx=(maxwv+1)*((iromb+1)*maxwv+2)/2
110 IF(kg.EQ.0) kg=nps*nps
115 gq=((1.+sin(true/dpr))*rerth/xmesh)**2
122 CALL spdz2uv(iromb,maxwv,enn1,elonn1,eon,eontop,
123 & waved(kws+1),wavez(kws+1),
124 & w(1,k),w(1,kmax+k),wtop(1,k),wtop(1,kmax+k))
130 ij1=(i1-1)*ni+(j1-1)*nj+1
133 CALL splegend(iromb,maxwv,slat1,clat1,eps,epstop,
135 CALL spsynth(iromb,maxwv,2*maxwv,idim,mdim,2*mxtop,2*kmax,
136 & clat1,pln,plntop,mp,w,wtop,f)
144 un(ijk1)=2*( coso*f(3,1,ku)+sino*f(3,1,kv))
145 vn(ijk1)=2*(-sino*f(3,1,ku)+coso*f(3,1,kv))
146 us(ijk1)=2*( coso*f(3,2,ku)-sino*f(3,2,kv))
147 vs(ijk1)=2*( sino*f(3,2,ku)+coso*f(3,2,kv))
166 ij1=(i1-1)*ni+(j1-1)*nj+1
167 ij3=(i3-1)*ni+(j3-1)*nj+1
168 ij5=(i5-1)*ni+(j5-1)*nj+1
169 ij7=(i7-1)*ni+(j7-1)*nj+1
173 slat1=(gq-rq)/(gq+rq)
174 clat1=sqrt(1.-slat1**2)
175 CALL splegend(iromb,maxwv,slat1,clat1,eps,epstop,
177 CALL spsynth(iromb,maxwv,2*maxwv,idim,mdim,2*mxtop,2*kmax,
178 & clat1,pln,plntop,mp,w,wtop,f)
180 slon(l,1)=sin(l*radlon)
181 clon(l,1)=cos(l*radlon)
182 slon(l,3)=slon(l,1)*crot(mod(1*l,4))
183 & -clon(l,1)*srot(mod(1*l,4))
184 clon(l,3)=clon(l,1)*crot(mod(1*l,4))
185 & +slon(l,1)*srot(mod(1*l,4))
186 slon(l,5)=slon(l,1)*crot(mod(2*l,4))
187 & -clon(l,1)*srot(mod(2*l,4))
188 clon(l,5)=clon(l,1)*crot(mod(2*l,4))
189 & +slon(l,1)*srot(mod(2*l,4))
190 slon(l,7)=slon(l,1)*crot(mod(3*l,4))
191 & -clon(l,1)*srot(mod(3*l,4))
192 clon(l,7)=clon(l,1)*crot(mod(3*l,4))
193 & +slon(l,1)*srot(mod(3*l,4))
226 un(ij1)=un(ij1)+2*(f(lr,1,ku)*clon(l,1)
227 & -f(li,1,ku)*slon(l,1))
228 vn(ij1)=vn(ij1)+2*(f(lr,1,kv)*clon(l,1)
229 & -f(li,1,kv)*slon(l,1))
230 un(ij3)=un(ij3)+2*(f(lr,1,kv)*clon(l,3)
231 & -f(li,1,kv)*slon(l,3))
232 vn(ij3)=vn(ij3)-2*(f(lr,1,ku)*clon(l,3)
233 & -f(li,1,ku)*slon(l,3))
234 un(ij5)=un(ij5)-2*(f(lr,1,ku)*clon(l,5)
235 & -f(li,1,ku)*slon(l,5))
236 vn(ij5)=vn(ij5)-2*(f(lr,1,kv)*clon(l,5)
237 & -f(li,1,kv)*slon(l,5))
238 un(ij7)=un(ij7)-2*(f(lr,1,kv)*clon(l,7)
239 & -f(li,1,kv)*slon(l,7))
240 vn(ij7)=vn(ij7)+2*(f(lr,1,ku)*clon(l,7)
241 & -f(li,1,ku)*slon(l,7))
242 us(ij1)=us(ij1)-2*(f(lr,2,ku)*clon(l,5)
243 & -f(li,2,ku)*slon(l,5))
244 vs(ij1)=vs(ij1)-2*(f(lr,2,kv)*clon(l,5)
245 & -f(li,2,kv)*slon(l,5))
246 us(ij3)=us(ij3)-2*(f(lr,2,kv)*clon(l,3)
247 & -f(li,2,kv)*slon(l,3))
248 vs(ij3)=vs(ij3)+2*(f(lr,2,ku)*clon(l,3)
249 & -f(li,2,ku)*slon(l,3))
250 us(ij5)=us(ij5)+2*(f(lr,2,ku)*clon(l,1)
251 & -f(li,2,ku)*slon(l,1))
252 vs(ij5)=vs(ij5)+2*(f(lr,2,kv)*clon(l,1)
253 & -f(li,2,kv)*slon(l,1))
254 us(ij7)=us(ij7)+2*(f(lr,2,kv)*clon(l,7)
255 & -f(li,2,kv)*slon(l,7))
256 vs(ij7)=vs(ij7)-2*(f(lr,2,ku)*clon(l,7)
257 & -f(li,2,ku)*slon(l,7))
271 un(ijk1)=un(ijk1)+2*(f(lr,1,ku)*clon(l,1)
272 & -f(li,1,ku)*slon(l,1))
273 vn(ijk1)=vn(ijk1)+2*(f(lr,1,kv)*clon(l,1)
274 & -f(li,1,kv)*slon(l,1))
275 un(ijk3)=un(ijk3)+2*(f(lr,1,kv)*clon(l,3)
276 & -f(li,1,kv)*slon(l,3))
277 vn(ijk3)=vn(ijk3)-2*(f(lr,1,ku)*clon(l,3)
278 & -f(li,1,ku)*slon(l,3))
279 un(ijk5)=un(ijk5)-2*(f(lr,1,ku)*clon(l,5)
280 & -f(li,1,ku)*slon(l,5))
281 vn(ijk5)=vn(ijk5)-2*(f(lr,1,kv)*clon(l,5)
282 & -f(li,1,kv)*slon(l,5))
283 un(ijk7)=un(ijk7)-2*(f(lr,1,kv)*clon(l,7)
284 & -f(li,1,kv)*slon(l,7))
285 vn(ijk7)=vn(ijk7)+2*(f(lr,1,ku)*clon(l,7)
286 & -f(li,1,ku)*slon(l,7))
287 us(ijk1)=us(ijk1)-2*(f(lr,2,ku)*clon(l,5)
288 & -f(li,2,ku)*slon(l,5))
289 vs(ijk1)=vs(ijk1)-2*(f(lr,2,kv)*clon(l,5)
290 & -f(li,2,kv)*slon(l,5))
291 us(ijk3)=us(ijk3)-2*(f(lr,2,kv)*clon(l,3)
292 & -f(li,2,kv)*slon(l,3))
293 vs(ijk3)=vs(ijk3)+2*(f(lr,2,ku)*clon(l,3)
294 & -f(li,2,ku)*slon(l,3))
295 us(ijk5)=us(ijk5)+2*(f(lr,2,ku)*clon(l,1)
296 & -f(li,2,ku)*slon(l,1))
297 vs(ijk5)=vs(ijk5)+2*(f(lr,2,kv)*clon(l,1)
298 & -f(li,2,kv)*slon(l,1))
299 us(ijk7)=us(ijk7)+2*(f(lr,2,kv)*clon(l,7)
300 & -f(li,2,kv)*slon(l,7))
301 vs(ijk7)=vs(ijk7)-2*(f(lr,2,ku)*clon(l,7)
302 & -f(li,2,ku)*slon(l,7))
317 radlon=(orient-45)/dpr
324 ij1=(i1-1)*ni+(j1-1)*nj+1
325 ij3=(i3-1)*ni+(j3-1)*nj+1
326 ij5=(i5-1)*ni+(j5-1)*nj+1
327 ij7=(i7-1)*ni+(j7-1)*nj+1
331 slat1=(gq-rq)/(gq+rq)
332 clat1=sqrt(1.-slat1**2)
333 CALL splegend(iromb,maxwv,slat1,clat1,eps,epstop,
335 CALL spsynth(iromb,maxwv,2*maxwv,idim,mdim,2*mxtop,2*kmax,
336 & clat1,pln,plntop,mp,w,wtop,f)
338 slon(l,1)=sin(l*radlon)
339 clon(l,1)=cos(l*radlon)
340 slon(l,3)=slon(l,1)*crot(mod(1*l,4))
341 & -clon(l,1)*srot(mod(1*l,4))
342 clon(l,3)=clon(l,1)*crot(mod(1*l,4))
343 & +slon(l,1)*srot(mod(1*l,4))
344 slon(l,5)=slon(l,1)*crot(mod(2*l,4))
345 & -clon(l,1)*srot(mod(2*l,4))
346 clon(l,5)=clon(l,1)*crot(mod(2*l,4))
347 & +slon(l,1)*srot(mod(2*l,4))
348 slon(l,7)=slon(l,1)*crot(mod(3*l,4))
349 & -clon(l,1)*srot(mod(3*l,4))
350 clon(l,7)=clon(l,1)*crot(mod(3*l,4))
351 & +slon(l,1)*srot(mod(3*l,4))
361 un(ijk1)=srh*( f(1,1,ku)+f(1,1,kv))
362 vn(ijk1)=srh*(-f(1,1,ku)+f(1,1,kv))
363 un(ijk3)=srh*(-f(1,1,ku)+f(1,1,kv))
364 vn(ijk3)=srh*(-f(1,1,ku)-f(1,1,kv))
365 un(ijk5)=srh*(-f(1,1,ku)-f(1,1,kv))
366 vn(ijk5)=srh*( f(1,1,ku)-f(1,1,kv))
367 un(ijk7)=srh*( f(1,1,ku)-f(1,1,kv))
368 vn(ijk7)=srh*( f(1,1,ku)+f(1,1,kv))
369 us(ijk1)=srh*(-f(1,2,ku)-f(1,2,kv))
370 vs(ijk1)=srh*( f(1,2,ku)-f(1,2,kv))
371 us(ijk3)=srh*( f(1,2,ku)-f(1,2,kv))
372 vs(ijk3)=srh*( f(1,2,ku)+f(1,2,kv))
373 us(ijk5)=srh*( f(1,2,ku)+f(1,2,kv))
374 vs(ijk5)=srh*(-f(1,2,ku)+f(1,2,kv))
375 us(ijk7)=srh*(-f(1,2,ku)+f(1,2,kv))
376 vs(ijk7)=srh*(-f(1,2,ku)-f(1,2,kv))
384 un(ij1)=un(ij1)+2*srh*(( f(lr,1,ku)+f(lr,1,kv))
386 & -( f(li,1,ku)+f(li,1,kv))
388 vn(ij1)=vn(ij1)+2*srh*((-f(lr,1,ku)+f(lr,1,kv))
390 & -(-f(li,1,ku)+f(li,1,kv))
392 un(ij3)=un(ij3)+2*srh*((-f(lr,1,ku)+f(lr,1,kv))
394 & -(-f(li,1,ku)+f(li,1,kv))
396 vn(ij3)=vn(ij3)+2*srh*((-f(lr,1,ku)-f(lr,1,kv))
398 & -(-f(li,1,ku)-f(li,1,kv))
400 un(ij5)=un(ij5)+2*srh*((-f(lr,1,ku)-f(lr,1,kv))
402 & -(-f(li,1,ku)-f(li,1,kv))
404 vn(ij5)=vn(ij5)+2*srh*(( f(lr,1,ku)-f(lr,1,kv))
406 & -( f(li,1,ku)-f(li,1,kv))
408 un(ij7)=un(ij7)+2*srh*(( f(lr,1,ku)-f(lr,1,kv))
410 & -( f(li,1,ku)-f(li,1,kv))
412 vn(ij7)=vn(ij7)+2*srh*(( f(lr,1,ku)+f(lr,1,kv))
414 & -( f(li,1,ku)+f(li,1,kv))
416 us(ij1)=us(ij1)+2*srh*((-f(lr,2,ku)-f(lr,2,kv))
418 & -(-f(li,2,ku)-f(li,2,kv))
420 vs(ij1)=vs(ij1)+2*srh*(( f(lr,2,ku)-f(lr,2,kv))
422 & -( f(li,2,ku)-f(li,2,kv))
424 us(ij3)=us(ij3)+2*srh*(( f(lr,2,ku)-f(lr,2,kv))
426 & -( f(li,2,ku)-f(li,2,kv))
428 vs(ij3)=vs(ij3)+2*srh*(( f(lr,2,ku)+f(lr,2,kv))
430 & -( f(li,2,ku)+f(li,2,kv))
432 us(ij5)=us(ij5)+2*srh*(( f(lr,2,ku)+f(lr,2,kv))
434 & -( f(li,2,ku)+f(li,2,kv))
436 vs(ij5)=vs(ij5)+2*srh*((-f(lr,2,ku)+f(lr,2,kv))
438 & -(-f(li,2,ku)+f(li,2,kv))
440 us(ij7)=us(ij7)+2*srh*((-f(lr,2,ku)+f(lr,2,kv))
442 & -(-f(li,2,ku)+f(li,2,kv))
444 vs(ij7)=vs(ij7)+2*srh*((-f(lr,2,ku)-f(lr,2,kv))
446 & -(-f(li,2,ku)-f(li,2,kv))
461 un(ijk1)=un(ijk1)+2*srh*(( f(lr,1,ku)+f(lr,1,kv))
463 & -( f(li,1,ku)+f(li,1,kv))
465 vn(ijk1)=vn(ijk1)+2*srh*((-f(lr,1,ku)+f(lr,1,kv))
467 & -(-f(li,1,ku)+f(li,1,kv))
469 un(ijk3)=un(ijk3)+2*srh*((-f(lr,1,ku)+f(lr,1,kv))
471 & -(-f(li,1,ku)+f(li,1,kv))
473 vn(ijk3)=vn(ijk3)+2*srh*((-f(lr,1,ku)-f(lr,1,kv))
475 & -(-f(li,1,ku)-f(li,1,kv))
477 un(ijk5)=un(ijk5)+2*srh*((-f(lr,1,ku)-f(lr,1,kv))
479 & -(-f(li,1,ku)-f(li,1,kv))
481 vn(ijk5)=vn(ijk5)+2*srh*(( f(lr,1,ku)-f(lr,1,kv))
483 & -( f(li,1,ku)-f(li,1,kv))
485 un(ijk7)=un(ijk7)+2*srh*(( f(lr,1,ku)-f(lr,1,kv))
487 & -( f(li,1,ku)-f(li,1,kv))
489 vn(ijk7)=vn(ijk7)+2*srh*(( f(lr,1,ku)+f(lr,1,kv))
491 & -( f(li,1,ku)+f(li,1,kv))
493 us(ijk1)=us(ijk1)+2*srh*((-f(lr,2,ku)-f(lr,2,kv))
495 & -(-f(li,2,ku)-f(li,2,kv))
497 vs(ijk1)=vs(ijk1)+2*srh*(( f(lr,2,ku)-f(lr,2,kv))
499 & -( f(li,2,ku)-f(li,2,kv))
501 us(ijk3)=us(ijk3)+2*srh*(( f(lr,2,ku)-f(lr,2,kv))
503 & -( f(li,2,ku)-f(li,2,kv))
505 vs(ijk3)=vs(ijk3)+2*srh*(( f(lr,2,ku)+f(lr,2,kv))
507 & -( f(li,2,ku)+f(li,2,kv))
509 us(ijk5)=us(ijk5)+2*srh*(( f(lr,2,ku)+f(lr,2,kv))
511 & -( f(li,2,ku)+f(li,2,kv))
513 vs(ijk5)=vs(ijk5)+2*srh*((-f(lr,2,ku)+f(lr,2,kv))
515 & -(-f(li,2,ku)+f(li,2,kv))
517 us(ijk7)=us(ijk7)+2*srh*((-f(lr,2,ku)+f(lr,2,kv))
519 & -(-f(li,2,ku)+f(li,2,kv))
521 vs(ijk7)=vs(ijk7)+2*srh*((-f(lr,2,ku)-f(lr,2,kv))
523 & -(-f(li,2,ku)-f(li,2,kv))
554 ij1=(i1-1)*ni+(j1-1)*nj+1
555 ij2=(i2-1)*ni+(j2-1)*nj+1
556 ij3=(i3-1)*ni+(j3-1)*nj+1
557 ij4=(i4-1)*ni+(j4-1)*nj+1
558 ij5=(i5-1)*ni+(j5-1)*nj+1
559 ij6=(i6-1)*ni+(j6-1)*nj+1
560 ij7=(i7-1)*ni+(j7-1)*nj+1
561 ij8=(i8-1)*ni+(j8-1)*nj+1
566 slat1=(gq-rq)/(gq+rq)
567 clat1=sqrt(1.-slat1**2)
568 radlon1=orient/dpr+atan(-di1/dj1)
569 radlon2=(orient-45)/dpr*2-radlon1
570 CALL splegend(iromb,maxwv,slat1,clat1,eps,epstop,
572 CALL spsynth(iromb,maxwv,2*maxwv,idim,mdim,2*mxtop,2*kmax,
573 & clat1,pln,plntop,mp,w,wtop,f)
575 slon(l,1)=sin(l*radlon1)
576 clon(l,1)=cos(l*radlon1)
577 slon(l,2)=sin(l*radlon2)
578 clon(l,2)=cos(l*radlon2)
579 slon(l,3)=slon(l,1)*crot(mod(1*l,4))
580 & -clon(l,1)*srot(mod(1*l,4))
581 clon(l,3)=clon(l,1)*crot(mod(1*l,4))
582 & +slon(l,1)*srot(mod(1*l,4))
583 slon(l,4)=slon(l,2)*crot(mod(1*l,4))
584 & -clon(l,2)*srot(mod(1*l,4))
585 clon(l,4)=clon(l,2)*crot(mod(1*l,4))
586 & +slon(l,2)*srot(mod(1*l,4))
587 slon(l,5)=slon(l,1)*crot(mod(2*l,4))
588 & -clon(l,1)*srot(mod(2*l,4))
589 clon(l,5)=clon(l,1)*crot(mod(2*l,4))
590 & +slon(l,1)*srot(mod(2*l,4))
591 slon(l,6)=slon(l,2)*crot(mod(2*l,4))
592 & -clon(l,2)*srot(mod(2*l,4))
593 clon(l,6)=clon(l,2)*crot(mod(2*l,4))
594 & +slon(l,2)*srot(mod(2*l,4))
595 slon(l,7)=slon(l,1)*crot(mod(3*l,4))
596 & -clon(l,1)*srot(mod(3*l,4))
597 clon(l,7)=clon(l,1)*crot(mod(3*l,4))
598 & +slon(l,1)*srot(mod(3*l,4))
599 slon(l,8)=slon(l,2)*crot(mod(3*l,4))
600 & -clon(l,2)*srot(mod(3*l,4))
601 clon(l,8)=clon(l,2)*crot(mod(3*l,4))
602 & +slon(l,2)*srot(mod(3*l,4))
616 un(ijk1)=rr*(-dj1*f(1,1,ku)-di1*f(1,1,kv))
617 vn(ijk1)=rr*( di1*f(1,1,ku)-dj1*f(1,1,kv))
618 un(ijk2)=rr*(-di1*f(1,1,ku)-dj1*f(1,1,kv))
619 vn(ijk2)=rr*( dj1*f(1,1,ku)-di1*f(1,1,kv))
620 un(ijk3)=rr*( di1*f(1,1,ku)-dj1*f(1,1,kv))
621 vn(ijk3)=rr*( dj1*f(1,1,ku)+di1*f(1,1,kv))
622 un(ijk4)=rr*( dj1*f(1,1,ku)-di1*f(1,1,kv))
623 vn(ijk4)=rr*( di1*f(1,1,ku)+dj1*f(1,1,kv))
624 un(ijk5)=rr*( dj1*f(1,1,ku)+di1*f(1,1,kv))
625 vn(ijk5)=rr*(-di1*f(1,1,ku)+dj1*f(1,1,kv))
626 un(ijk6)=rr*( di1*f(1,1,ku)+dj1*f(1,1,kv))
627 vn(ijk6)=rr*(-dj1*f(1,1,ku)+di1*f(1,1,kv))
628 un(ijk7)=rr*(-di1*f(1,1,ku)+dj1*f(1,1,kv))
629 vn(ijk7)=rr*(-dj1*f(1,1,ku)-di1*f(1,1,kv))
630 un(ijk8)=rr*(-dj1*f(1,1,ku)+di1*f(1,1,kv))
631 vn(ijk8)=rr*(-di1*f(1,1,ku)-dj1*f(1,1,kv))
632 us(ijk1)=rr*( dj1*f(1,2,ku)+di1*f(1,2,kv))
633 vs(ijk1)=rr*(-di1*f(1,2,ku)+dj1*f(1,2,kv))
634 us(ijk2)=rr*( di1*f(1,2,ku)+dj1*f(1,2,kv))
635 vs(ijk2)=rr*(-dj1*f(1,2,ku)+di1*f(1,2,kv))
636 us(ijk3)=rr*(-di1*f(1,2,ku)+dj1*f(1,2,kv))
637 vs(ijk3)=rr*(-dj1*f(1,2,ku)-di1*f(1,2,kv))
638 us(ijk4)=rr*(-dj1*f(1,2,ku)+di1*f(1,2,kv))
639 vs(ijk4)=rr*(-di1*f(1,2,ku)-dj1*f(1,2,kv))
640 us(ijk5)=rr*(-dj1*f(1,2,ku)-di1*f(1,2,kv))
641 vs(ijk5)=rr*( di1*f(1,2,ku)-dj1*f(1,2,kv))
642 us(ijk6)=rr*(-di1*f(1,2,ku)-dj1*f(1,2,kv))
643 vs(ijk6)=rr*( dj1*f(1,2,ku)-di1*f(1,2,kv))
644 us(ijk7)=rr*( di1*f(1,2,ku)-dj1*f(1,2,kv))
645 vs(ijk7)=rr*( dj1*f(1,2,ku)+di1*f(1,2,kv))
646 us(ijk8)=rr*( dj1*f(1,2,ku)-di1*f(1,2,kv))
647 vs(ijk8)=rr*( di1*f(1,2,ku)+dj1*f(1,2,kv))
655 un(ij1)=un(ij1)+2*rr*((-dj1*f(lr,1,ku)-di1*f(lr,1,kv))
657 & -(-dj1*f(li,1,ku)-di1*f(li,1,kv))
659 vn(ij1)=vn(ij1)+2*rr*(( di1*f(lr,1,ku)-dj1*f(lr,1,kv))
661 & -( di1*f(li,1,ku)-dj1*f(li,1,kv))
663 un(ij2)=un(ij2)+2*rr*((-di1*f(lr,1,ku)-dj1*f(lr,1,kv))
665 & -(-di1*f(li,1,ku)-dj1*f(li,1,kv))
667 vn(ij2)=vn(ij2)+2*rr*(( dj1*f(lr,1,ku)-di1*f(lr,1,kv))
669 & -( dj1*f(li,1,ku)-di1*f(li,1,kv))
671 un(ij3)=un(ij3)+2*rr*(( di1*f(lr,1,ku)-dj1*f(lr,1,kv))
673 & -( di1*f(li,1,ku)-dj1*f(li,1,kv))
675 vn(ij3)=vn(ij3)+2*rr*(( dj1*f(lr,1,ku)+di1*f(lr,1,kv))
677 & -( dj1*f(li,1,ku)+di1*f(li,1,kv))
679 un(ij4)=un(ij4)+2*rr*(( dj1*f(lr,1,ku)-di1*f(lr,1,kv))
681 & -( dj1*f(li,1,ku)-di1*f(li,1,kv))
683 vn(ij4)=vn(ij4)+2*rr*(( di1*f(lr,1,ku)+dj1*f(lr,1,kv))
685 & -( di1*f(li,1,ku)+dj1*f(li,1,kv))
687 un(ij5)=un(ij5)+2*rr*(( dj1*f(lr,1,ku)+di1*f(lr,1,kv))
689 & -( dj1*f(li,1,ku)+di1*f(li,1,kv))
691 vn(ij5)=vn(ij5)+2*rr*((-di1*f(lr,1,ku)+dj1*f(lr,1,kv))
693 & -(-di1*f(li,1,ku)+dj1*f(li,1,kv))
695 un(ij6)=un(ij6)+2*rr*(( di1*f(lr,1,ku)+dj1*f(lr,1,kv))
697 & -( di1*f(li,1,ku)+dj1*f(li,1,kv))
699 vn(ij6)=vn(ij6)+2*rr*((-dj1*f(lr,1,ku)+di1*f(lr,1,kv))
701 & -(-dj1*f(li,1,ku)+di1*f(li,1,kv))
703 un(ij7)=un(ij7)+2*rr*((-di1*f(lr,1,ku)+dj1*f(lr,1,kv))
705 & -(-di1*f(li,1,ku)+dj1*f(li,1,kv))
707 vn(ij7)=vn(ij7)+2*rr*((-dj1*f(lr,1,ku)-di1*f(lr,1,kv))
709 & -(-dj1*f(li,1,ku)-di1*f(li,1,kv))
711 un(ij8)=un(ij8)+2*rr*((-dj1*f(lr,1,ku)+di1*f(lr,1,kv))
713 & -(-dj1*f(li,1,ku)+di1*f(li,1,kv))
715 vn(ij8)=vn(ij8)+2*rr*((-di1*f(lr,1,ku)-dj1*f(lr,1,kv))
717 & -(-di1*f(li,1,ku)-dj1*f(li,1,kv))
719 us(ij1)=us(ij1)+2*rr*(( dj1*f(lr,2,ku)+di1*f(lr,2,kv))
721 & -( dj1*f(li,2,ku)+di1*f(li,2,kv))
723 vs(ij1)=vs(ij1)+2*rr*((-di1*f(lr,2,ku)+dj1*f(lr,2,kv))
725 & -(-di1*f(li,2,ku)+dj1*f(li,2,kv))
727 us(ij2)=us(ij2)+2*rr*(( di1*f(lr,2,ku)+dj1*f(lr,2,kv))
729 & -( di1*f(li,2,ku)+dj1*f(li,2,kv))
731 vs(ij2)=vs(ij2)+2*rr*((-dj1*f(lr,2,ku)+di1*f(lr,2,kv))
733 & -(-dj1*f(li,2,ku)+di1*f(li,2,kv))
735 us(ij3)=us(ij3)+2*rr*((-di1*f(lr,2,ku)+dj1*f(lr,2,kv))
737 & -(-di1*f(li,2,ku)+dj1*f(li,2,kv))
739 vs(ij3)=vs(ij3)+2*rr*((-dj1*f(lr,2,ku)-di1*f(lr,2,kv))
741 & -(-dj1*f(li,2,ku)-di1*f(li,2,kv))
743 us(ij4)=us(ij4)+2*rr*((-dj1*f(lr,2,ku)+di1*f(lr,2,kv))
745 & -(-dj1*f(li,2,ku)+di1*f(li,2,kv))
747 vs(ij4)=vs(ij4)+2*rr*((-di1*f(lr,2,ku)-dj1*f(lr,2,kv))
749 & -(-di1*f(li,2,ku)-dj1*f(li,2,kv))
751 us(ij5)=us(ij5)+2*rr*((-dj1*f(lr,2,ku)-di1*f(lr,2,kv))
753 & -(-dj1*f(li,2,ku)-di1*f(li,2,kv))
755 vs(ij5)=vs(ij5)+2*rr*(( di1*f(lr,2,ku)-dj1*f(lr,2,kv))
757 & -( di1*f(li,2,ku)-dj1*f(li,2,kv))
759 us(ij6)=us(ij6)+2*rr*((-di1*f(lr,2,ku)-dj1*f(lr,2,kv))
761 & -(-di1*f(li,2,ku)-dj1*f(li,2,kv))
763 vs(ij6)=vs(ij6)+2*rr*(( dj1*f(lr,2,ku)-di1*f(lr,2,kv))
765 & -( dj1*f(li,2,ku)-di1*f(li,2,kv))
767 us(ij7)=us(ij7)+2*rr*(( di1*f(lr,2,ku)-dj1*f(lr,2,kv))
769 & -( di1*f(li,2,ku)-dj1*f(li,2,kv))
771 vs(ij7)=vs(ij7)+2*rr*(( dj1*f(lr,2,ku)+di1*f(lr,2,kv))
773 & -( dj1*f(li,2,ku)+di1*f(li,2,kv))
775 us(ij8)=us(ij8)+2*rr*(( dj1*f(lr,2,ku)-di1*f(lr,2,kv))
777 & -( dj1*f(li,2,ku)-di1*f(li,2,kv))
779 vs(ij8)=vs(ij8)+2*rr*(( di1*f(lr,2,ku)+dj1*f(lr,2,kv))
781 & -( di1*f(li,2,ku)+dj1*f(li,2,kv))
800 un(ijk1)=un(ijk1)+2*rr*((-dj1*f(lr,1,ku)-di1*f(lr,1,kv))
802 & -(-dj1*f(li,1,ku)-di1*f(li,1,kv))
804 vn(ijk1)=vn(ijk1)+2*rr*(( di1*f(lr,1,ku)-dj1*f(lr,1,kv))
806 & -( di1*f(li,1,ku)-dj1*f(li,1,kv))
808 un(ijk2)=un(ijk2)+2*rr*((-di1*f(lr,1,ku)-dj1*f(lr,1,kv))
810 & -(-di1*f(li,1,ku)-dj1*f(li,1,kv))
812 vn(ijk2)=vn(ijk2)+2*rr*(( dj1*f(lr,1,ku)-di1*f(lr,1,kv))
814 & -( dj1*f(li,1,ku)-di1*f(li,1,kv))
816 un(ijk3)=un(ijk3)+2*rr*(( di1*f(lr,1,ku)-dj1*f(lr,1,kv))
818 & -( di1*f(li,1,ku)-dj1*f(li,1,kv))
820 vn(ijk3)=vn(ijk3)+2*rr*(( dj1*f(lr,1,ku)+di1*f(lr,1,kv))
822 & -( dj1*f(li,1,ku)+di1*f(li,1,kv))
824 un(ijk4)=un(ijk4)+2*rr*(( dj1*f(lr,1,ku)-di1*f(lr,1,kv))
826 & -( dj1*f(li,1,ku)-di1*f(li,1,kv))
828 vn(ijk4)=vn(ijk4)+2*rr*(( di1*f(lr,1,ku)+dj1*f(lr,1,kv))
830 & -( di1*f(li,1,ku)+dj1*f(li,1,kv))
832 un(ijk5)=un(ijk5)+2*rr*(( dj1*f(lr,1,ku)+di1*f(lr,1,kv))
834 & -( dj1*f(li,1,ku)+di1*f(li,1,kv))
836 vn(ijk5)=vn(ijk5)+2*rr*((-di1*f(lr,1,ku)+dj1*f(lr,1,kv))
838 & -(-di1*f(li,1,ku)+dj1*f(li,1,kv))
840 un(ijk6)=un(ijk6)+2*rr*(( di1*f(lr,1,ku)+dj1*f(lr,1,kv))
842 & -( di1*f(li,1,ku)+dj1*f(li,1,kv))
844 vn(ijk6)=vn(ijk6)+2*rr*((-dj1*f(lr,1,ku)+di1*f(lr,1,kv))
846 & -(-dj1*f(li,1,ku)+di1*f(li,1,kv))
848 un(ijk7)=un(ijk7)+2*rr*((-di1*f(lr,1,ku)+dj1*f(lr,1,kv))
850 & -(-di1*f(li,1,ku)+dj1*f(li,1,kv))
852 vn(ijk7)=vn(ijk7)+2*rr*((-dj1*f(lr,1,ku)-di1*f(lr,1,kv))
854 & -(-dj1*f(li,1,ku)-di1*f(li,1,kv))
856 un(ijk8)=un(ijk8)+2*rr*((-dj1*f(lr,1,ku)+di1*f(lr,1,kv))
858 & -(-dj1*f(li,1,ku)+di1*f(li,1,kv))
860 vn(ijk8)=vn(ijk8)+2*rr*((-di1*f(lr,1,ku)-dj1*f(lr,1,kv))
862 & -(-di1*f(li,1,ku)-dj1*f(li,1,kv))
864 us(ijk1)=us(ijk1)+2*rr*(( dj1*f(lr,2,ku)+di1*f(lr,2,kv))
866 & -( dj1*f(li,2,ku)+di1*f(li,2,kv))
868 vs(ijk1)=vs(ijk1)+2*rr*((-di1*f(lr,2,ku)+dj1*f(lr,2,kv))
870 & -(-di1*f(li,2,ku)+dj1*f(li,2,kv))
872 us(ijk2)=us(ijk2)+2*rr*(( di1*f(lr,2,ku)+dj1*f(lr,2,kv))
874 & -( di1*f(li,2,ku)+dj1*f(li,2,kv))
876 vs(ijk2)=vs(ijk2)+2*rr*((-dj1*f(lr,2,ku)+di1*f(lr,2,kv))
878 & -(-dj1*f(li,2,ku)+di1*f(li,2,kv))
880 us(ijk3)=us(ijk3)+2*rr*((-di1*f(lr,2,ku)+dj1*f(lr,2,kv))
882 & -(-di1*f(li,2,ku)+dj1*f(li,2,kv))
884 vs(ijk3)=vs(ijk3)+2*rr*((-dj1*f(lr,2,ku)-di1*f(lr,2,kv))
886 & -(-dj1*f(li,2,ku)-di1*f(li,2,kv))
888 us(ijk4)=us(ijk4)+2*rr*((-dj1*f(lr,2,ku)+di1*f(lr,2,kv))
890 & -(-dj1*f(li,2,ku)+di1*f(li,2,kv))
892 vs(ijk4)=vs(ijk4)+2*rr*((-di1*f(lr,2,ku)-dj1*f(lr,2,kv))
894 & -(-di1*f(li,2,ku)-dj1*f(li,2,kv))
896 us(ijk5)=us(ijk5)+2*rr*((-dj1*f(lr,2,ku)-di1*f(lr,2,kv))
898 & -(-dj1*f(li,2,ku)-di1*f(li,2,kv))
900 vs(ijk5)=vs(ijk5)+2*rr*(( di1*f(lr,2,ku)-dj1*f(lr,2,kv))
902 & -( di1*f(li,2,ku)-dj1*f(li,2,kv))
904 us(ijk6)=us(ijk6)+2*rr*((-di1*f(lr,2,ku)-dj1*f(lr,2,kv))
906 & -(-di1*f(li,2,ku)-dj1*f(li,2,kv))
908 vs(ijk6)=vs(ijk6)+2*rr*(( dj1*f(lr,2,ku)-di1*f(lr,2,kv))
910 & -( dj1*f(li,2,ku)-di1*f(li,2,kv))
912 us(ijk7)=us(ijk7)+2*rr*(( di1*f(lr,2,ku)-dj1*f(lr,2,kv))
914 & -( di1*f(li,2,ku)-dj1*f(li,2,kv))
916 vs(ijk7)=vs(ijk7)+2*rr*(( dj1*f(lr,2,ku)+di1*f(lr,2,kv))
918 & -( dj1*f(li,2,ku)+di1*f(li,2,kv))
920 us(ijk8)=us(ijk8)+2*rr*(( dj1*f(lr,2,ku)-di1*f(lr,2,kv))
922 & -( dj1*f(li,2,ku)-di1*f(li,2,kv))
924 vs(ijk8)=vs(ijk8)+2*rr*(( di1*f(lr,2,ku)+dj1*f(lr,2,kv))
926 & -( di1*f(li,2,ku)+dj1*f(li,2,kv))
subroutine spdz2uv(I, M, ENN1, ELONN1, EON, EONTOP, D, Z, U, V, UTOP, VTOP)
Computes the wind components from divergence and vorticity in spectral space.
subroutine splegend(I, M, SLAT, CLAT, EPS, EPSTOP, PLN, PLNTOP)
Evaluates the orthonormal associated Legendre polynomials in the spectral domain at a given latitude.
subroutine spsynth(I, M, IM, IX, NC, NCTOP, KM, CLAT, PLN, PLNTOP, MP, SPC, SPCTOP, F)
Synthesizes Fourier coefficients from spectral coefficients for a latitude pair (Northern and Souther...
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 spwget(IROMB, MAXWV, EPS, EPSTOP, ENN1, ELONN1, EON, EONTOP)
This subprogram gets wave-space constants.