c subroutine pltutvert(fplt,hts,xx,yy,nx,ny,iht,glat,glon, + locname,islt,ip,vp) c c Contour fplt(nx,ny) where nx=ntms and ny = nzprange or nhtscale, i.e., c ut on x-axis, zp or ht on y-axis: c include "flxproc.h" include "ccm.h" include "pltopt.h" real fplt(nx,ny),xx(nx),yy(ny),hts(nx,ncplzp),vp(4), + tlabchsz(3),blabchsz(3) character*(*) locname character*96 tlabs(3),blabs(3) character*32 hvol data toffset /.03/ data tlabchsz/.020,.020,.020/, blabchsz/.02,.02,.02/ c c Contour (log10 if necessary): c call cpseti('SET',0) call cpseti('MAP',0) call cpsetr('XC1',xx(1)) call cpsetr('XCM',xx(nx)) call cpsetr('YC1',yy(1)) call cpsetr('YCN',yy(ny)) call set(vp(1),vp(2),vp(3),vp(4),xx(1),xx(nx),yy(1),yy(ny),1) ilog = 0 if (iutvert_log10.gt.0.and.logplt(ip).gt.0) then call log10f(fplt,nx*ny,1.e-20,spval) ilog = 1 endif pltmin = cmin(ip) pltmax = cmax(ip) conint = cint(ip) scfac = scalefac(ip) call contour(fplt,nx,nx,ny) call cpgetr('CIU',ciu) ! contour interval used if (cmin(ip).ge.cmax(ip)) then call cpgetr('ZMN',zmin) ! field min call cpgetr('ZMX',zmax) ! field max else zmin = cmin(ip) zmax = cmax(ip) endif c c Add axes labels: c isltax = 1 if (islt.gt.0) isltax = 0 boffset = .10 if (islt.le.0) boffset = .28 if (iht.le.0) then call labutxy(mtimes,ntms,yy,ny,'ZP',0.,isltax,glon) else call labutxy(mtimes,ntms,yy,ny,'HEIGHT (KM)',0.,isltax,glon) endif c c Add extra non-linear y-axes on right (mb if linear y-axis is in ht, c or ht if linear y-axis is zp) c iyax = 2 if (iht.gt.0) iyax = 12 c call yaxzpht(dum,hts,cplzp,nx,ncplzp,dzp,yy,ny,p0,iht,iyax,vp, + spval) c c Define info label with location and name c (will be lower of two top labels): c call clearstr(tlabs(1)) if (islt.le.0) then if (glat.ne.zmflag.and.glon.ne.zmflag) then ! regular lat,lon write(tlabs(1),"(' LAT=',f7.2,' LON=',f8.2)") glat,glon else if (glat.ne.zmflag) then ! zonal means write(tlabs(1),"(' LAT=',f7.2,' (ZONAL MEANS)')") glat else ! global means write(tlabs(1),"(' (GLOBAL MEANS)')") endif endif else ! local time write(tlabs(1),"(' LAT=',f7.2,' SLT=',f6.2)") glat,glon endif lname = lenstr(locname) llab = lenstr(tlabs(1)) if (lname.gt.0.and.lname+llab+3.le.80) + write(tlabs(1)(llab+1:llab+lname+3),"(' (',a,')')") + locname(1:lname) c c Define field label (will go at top): c call clearstr(tlabs(2)) if (ifcpl(ip).gt.0) then if (ilog.le.0) then write(tlabs(2),"('FIELD ',a,' (COUPLED ',a,'/',a,')')") + flab8(ip)(1:lenstr(flab8(ip))),model(1:lenstr(model)), + ccmres(1:lenstr(ccmres)) else write(tlabs(2),"('LOG10 ',a,' (COUPLED ',a,'/',a,')')") + flab8(ip)(1:lenstr(flab8(ip))),model(1:lenstr(model)), + ccmres(1:lenstr(ccmres)) endif else if (ilog.le.0) then write(tlabs(2),"('FIELD ',a,' (',a,' ONLY)')") + flab8(ip)(1:lenstr(flab8(ip))),model(1:lenstr(model)) else write(tlabs(2),"('LOG10 ',a,' (',a,' ONLY)')") + flab8(ip)(1:lenstr(flab8(ip))),model(1:lenstr(model)) endif endif call clearstr(tlabs(3)) ! unused c c ccm history (bottom of 3 bottom labels): c call clearstr(blabs(1)) write(blabs(1),"('CCM FILE ',a,' (DAY ',f7.3,')')") + ccmlsd(1:lenstr(ccmlsd)),ccmday c c tgcm history (middle of 3 bottom labels): c call clearstr(blabs(2)) c write(blabs(2),"('TGCM HISTORY ',a)") c + histvols(ivol)(1:lenstr(histvols(ivol))) call tail(histvols(ivol)(1:lenstr(histvols(ivol))),hvol) write(blabs(2),"('TGCM HISTORY ',a,'->',a)") + histvols(1)(1:lenstr(histvols(1))),hvol(1:lenstr(hvol)) c c Min,max label (top of 3 bottom labels): c call clearstr(blabs(3)) write(blabs(3),"('MIN,MAX=',2(1pe12.4),' INTERVAL=',1pe12.4)") + zmin,zmax,ciu if (scalefac(ip).eq.1.) then write(blabs(3),"('MIN,MAX=',2(1pe12.4),' INTERVAL=',1pe12.4)") + zmin,zmax,ciu else write(blabs(3),"('MIN,MAX=',2(1pe12.4),' INTERVAL=',1pe12.4, + ' (X',1pe8.2,')')") zmin,zmax,ciu,scalefac(ip) endif c c Draw info labels: c call wrlab6(tlabs,toffset,tlabchsz, + blabs,boffset,blabchsz, vp, 0) return end