c c------------------------------------------------------------------ c Begin file /home/sting/foster/timesdif/pltglbht.f c------------------------------------------------------------------ c subroutine pltglbht(utc,pert,cntr) c include 'gettime.h' include 'timesdif.h' character*56 toplab,lab dimension viewport(4),pert(imx,kmx,jmx,nplfld), + cntr(imx,kmx,jmx,ntimefld),pertglb(imx,jmx),cntrglb(imx,jmx) data viewport /.12,.90,.2,.70/ c xmid = 0.5*(viewport(1)+viewport(2)) call cpseti('SET',0) call cpseti('MAP',1) call cpsetr('XC1',gcmlon(1)) call cpsetr('XCM',gcmlon(imx)) call cpsetr('YC1',gcmlat(1)) call cpsetr('YCN',gcmlat(jmx)) call cpsetr('ILX',xmid) call cpsetr('ILY',-.25) call cpseti('ILP',0) call mkproj('CE',viewport,0.,0.,0.,dum,dum) ixz = 0 do ip=1,ntimefld if (ipltime(ip).gt.0) then ixz = ixz+1 if (ip.eq.itxz) goto 99 endif enddo 99 continue c c Field loop: ixp = 0 do 200 ip=1,ntimefld if (ipltime(ip).le.0) goto 200 ixp = ixp+1 if (ip.eq.itxz) goto 200 c c Selected height loop: do 100 ih = 1,nhts c c Interpolate perturbed to selected height: call glbhtint(pert(1,1,1,ixp),pert(1,1,1,ixz),imx,kmx,jmx, + pertglb,shts(ih),1,itimelog(ip),cpspval,ier,iprnt) c c Interpolate control to selected height: call glbhtint(cntr(1,1,1,ip),cntr(1,1,1,itxz),imx,kmx,jmx, + cntrglb,shts(ih),1,itimelog(ip),cpspval,ier,iprnt) c c Take diffs of interpolated fields (results in pertglb), c and contour: call mkdifglb(pertglb,cntrglb,imx,jmx,wtime(ip),cpspval) if (icolor.le.0) then call contour(pertglb,imx,imx,jmx,cint(ip),cmin(ip),cmax(ip)) else call conclr(pertglb,imx,imx,jmx,cint(ip),cmin(ip),cmax(ip)) endif if (icont.gt.0) call maplot call labrect(gcmlon,imx,gcmlat,jmx,'LONGITUDE','LATITUDE',.04) c c Top label: if (wtime(ip).gt.0.) then write(toplab,"(a8,' (% DIFFERENCE) HT=',f5.1,' UT = ', + f6.2,11x)") timelab_short(ip),shts(ih),utc else write(toplab,"(a8,' (RAW DIFFERENCE) HT=',f5.1,' UT = ', + f6.2,9x)") timelab_short(ip),shts(ih),utc endif call wrlab(toplab(1:lenstr(toplab)),xmid,viewport(4)+.05,0.) c c History vols label: write(lab,"(2x,'Difference of TIGCM histories ',a8, + ' minus ',a8,1x)") cpertvol,ccntrvol call wrlab(lab(1:lenstr(lab)),xmid,viewport(3)-.1,.012) call frame iframe = iframe+1 write(6,"('pltglbht diffs: frame ',i4,' field ',a8, + ' ht=',f5.1)") iframe,timelab_short(ip),shts(ih) c c End selected heights loop: ih=1,nhts 100 continue c c End field loop: ip=1,ntimefld 200 continue c return end c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c subroutine mkdifglb(pert,cntr,imx,jmx,wtime,spv) c dimension pert(imx,jmx),cntr(imx,jmx) c eps = 1.e-20 if (wtime.gt.0.) then do j=1,jmx do i=1,imx if (cntr(i,j).gt.eps) then pert(i,j) = (pert(i,j)-cntr(i,j)) / cntr(i,j) * 100. else pert(i,j) = spv endif enddo enddo else pert(:,:) = pert(:,:) - cntr(:,:) endif c return end