c c------------------------------------------------------------------ c Begin file /home/sting/foster/vid/pltglb.f c------------------------------------------------------------------ c subroutine pltglb(plot,imx,jmx,gcmlon,gcmlat,init,ut,cint,cmin, + cmax,plon,slt,slev,fldlab,mt,info,totmin,totmax,icolor,labform, + icella,kpbar,kpgraph,jday1,mkframes,zptop,nfixclr) dimension plot(imx,jmx),gcmlon(imx),gcmlat(jmx) dimension viewport(4),mt(3) c character*4 chxnum(3),chynum(3) character*4 chxnum(5),chynum(3) character*8 labform character*40 toplab(2),fldlab c c Warning: kpgraph left and right are hardwired -- should match viewport c c data viewport /.16,.94,.3,.8/ c data viewport /.14,.92,.34,.84/ c data viewport /.14,.92,.37,.87/ data viewport /.14,.92,.42,.92/ data charsz/.08/, clabsz/.015/ data chynum /'-90',' 0',' 90'/ save chxnum,chynum c c Set up conpack for plotting with cylindrical equidistant maps: if (init.gt.0) then if (slt.ge.0.) then if (slt.eq.12.) then chxnum(1) = ' 0 ' chxnum(2) = ' 6 ' chxnum(3) = ' 12 ' chxnum(4) = ' 18 ' chxnum(5) = ' 0 ' else write(6,"('pltglb: slt=',f7.2,' better check chxnum')") if (slt.lt.10.) write(chxnum(2),"(1x,i1,1x)") nint(slt) if (slt.ge.10.) write(chxnum(2),"(1x,i2)") nint(slt) slt0 = slt-12. if (slt0.lt.0.) slt0 = 24.+slt0 slt1 = slt+12. if (slt1.ge.24.) slt1 = slt1-24. if (slt0.lt.10.) write(chxnum(1),"(1x,i1,1x)") nint(slt0) if (slt0.ge.10.) write(chxnum(1),"(1x,i2)") nint(slt0) if (slt1.lt.10.) write(chxnum(3),"(1x,i1,1x)") nint(slt1) if (slt1.ge.10.) write(chxnum(3),"(1x,i2)") nint(slt1) endif else chxnum(1) = '-180' chxnum(2) = ' -90' chxnum(3) = ' 0 ' chxnum(4) = ' 90 ' chxnum(5) = '+180' endif call cpsetr('XC1',-180.) call cpsetr('XCM',180.) call cpsetr('YC1',-90.) call cpsetr('YCN',90.) call cpseti('SET',0) call cpseti('MAP',1) c c No line labels are used if doing color. (note if not doing color, c set LLP=2; LLP=3 produced bug -- see kennison mail in mail dir) c 5/13: now even LLP=2 is producing the bug -- leave it at LLP=1 c even tho this makes line labels too small to read c if (icolor.gt.0) then call cpseti('LLP -- line label positioning',0) else call cpseti('LLP -- line label positioning',2) endif call cpseti('LLO -- line label orientation',1) call cpsetr('LLS - line label size',clabsz) call cpsetc('HLT - high/low label test',' ') if (info.le.0) then call cpsetc('ILT - info label text',' ') else xmid = 0.5*(viewport(1)+viewport(2)) call cpsetr('ILX',xmid) call cpsetr('ILY',-.88) if (icolor.le.0) call cpsetr('ILY',-.45) call cpseti('ILP',0) call cpsetr('ILS',.022) if (kpbar.le.0.and.kpgraph.le.0) then call cpsetc('ILT - info label text', + 'MIN $ZMN$, MAX $ZMX$, CINT $CIU$') else call cpsetc('ILT - info label text',' ') endif endif call mapsti('DO',0) ! solid outlines endif call mkproj('CE',viewport,-999.,ut,0.,plon,0.) if (mkframes.gt.0) then if (icolor.gt.0) then call conclr(plot,imx,imx,jmx,cint,cmin,cmax,icella,nfixclr) iclrbar = 1 else call contour(plot,imx,imx,jmx,cint,cmin,cmax) iclrbar = 0 endif endif write(toplab(1),"(a)") fldlab c c slev assumed to be zp if <= zptop, height otherwise: if (slev.le.zptop) then write(toplab(2),"('DAY=',i5,' UT=',f5.2,' ZP=',f5.1,14x)") + jday1+mt(1)-1,ut,slev else write(toplab(2),"('DAY=',i5,' UT=',f5.2,' HT=',f6.2,14x)") + jday1+mt(1)-1,ut,slev endif c c Make continental outlines in black: c (line width may have been set up to 2, but do leave outlines at c single pixel width) c if (mkframes.gt.0) then call gqlwsc(ier,width) if (icolor.gt.0) then call sflush call gsplci(0) call gslwsc(1.) endif call maplot if (icolor.gt.0) then call sflush call gsplci(1) call gslwsc(width) endif call labce(chxnum,5,chynum,3,'LOCAL TIME','LATITUDE',toplab, + iclrbar,icolor,labform,icella,kpbar,kpgraph,mt,jday1) endif if (info.gt.0) then if (init.gt.0) then write(6,"(' ')") if (mkframes.gt.0) then write(6,"('pltglb: ',a/a)") toplab else write(6,"('pltglb (no plots made): ',a/a)") toplab endif write(6,"(' ')") endif call fminmax(plot,imx*jmx,rmin,rmax,1.e36) if (rmin.lt.totmin) totmin = rmin if (rmax.gt.totmax) totmax = rmax call cpgetr('CIU',ciu) call cpgeti('NCL -- number of contour levels',ncl) write(6,"('min,max=',2e12.4,' totmin,max=',2e12.4,/ + 'ciu=',e12.4,' ncl=',i3)") + rmin,rmax,totmin,totmax,ciu,ncl endif c if (mkframes.gt.0) call box(1) c return end