
      subroutine pltsat(plot,imx,jmx,gcmlon,gcmlat,init,ut,cint,cmin,
     +  cmax,plon,slt,slev,fldlab,mt,info,totmin,totmax,icolor,labform,
     +  eradii,censatv,icella,kpbar,kpgraph,jday1,mkframes,zptop,
     +  nfixclr)
      dimension plot(imx,jmx),gcmlon(imx),gcmlat(jmx),censatv(2)
      dimension viewport(4),mt(3)
      character*8 labform
      character*40 toplab(2),fldlab
      data charsz/.08/, clabsz/.015/
      save viewport
c
      if (init.gt.0) then
        call cpsetr('XC1',-180.)
        call cpsetr('XCM',180.)
        call cpsetr('YC1',gcmlat(1))
        call cpsetr('YCN',gcmlat(jmx))
        call cpseti('SET',0)
        call cpseti('MAP',1)
        if (icolor.gt.0) then
          call cpseti('LLP -- line label positioning',0)
          viewport(1) = .04
          viewport(2) = .74
          viewport(3) = .19
          viewport(4) = .89
        else
          call cpseti('LLP -- line label positioning',2)
          viewport(1) = .15
          viewport(2) = .85
          viewport(3) = .15
          viewport(4) = .85
        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
          call cpsetr('ILX',.5)
          call cpsetr('ILY',-.12)
          call cpseti('ILP',0)
          call cpsetr('ILS',.027)
          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	! info
        call mapsti('DO',0)	! solid outlines
      endif	! init
      cenlat = censatv(1)
      if (censatv(2).eq.999.) then
        cenlon = plon
      else
        cenlon = censatv(2)
      endif
      call cpsetr('ORV',1.e12)
      call mkproj('SV',viewport,-999.,ut,cenlat,cenlon,eradii)
      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
      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
      if (mkframes.gt.0) then
        call gqlwsc(ier,width)
        call mapsti('DA',131071)
        call sflush
        if (icolor.gt.0) then
          call gsplci(0)
        else
          call gsplci(1)
        endif
        call gslwsc(1.)
        call maplot
        call mapgrd
        call maplbl
        call sflush
        call gsplci(1)
        call gslwsc(width)
c       write(6,"('pltsat calling labsv with kpgraph=',i3)") kpgraph
        call labsv(toplab,iclrbar,icolor,labform,icella,kpbar,kpgraph,
     +    mt,jday1)
      endif
      if (info.gt.0) then
c       if (mkframes.gt.0) call box(1)
        if (init.gt.0) then
          write(6,"(' ')")
          if (mkframes.gt.0) then
            write(6,"('pltsat: ',a/a)") toplab
          else
            write(6,"('pltsat (no plots made): ',a/a)") toplab
          endif
          write(6,"(' ')")
        endif
c
c Find min,max for this particular projection:
c       call fminmax(plot,imx*jmx,rmin,rmax,1.e36)
c
        rmin = 1.e36
        rmax = -1.e36
        do j=1,jmx
          do i=1,imx
            call maptrn(gcmlat(j),gcmlon(i),xpos,ypos)
            if (xpos.eq.1.e12.or.ypos.eq.1.e12) goto 101
            if (plot(i,j).ne.1.e36) then
              if (plot(i,j).lt.rmin) rmin = plot(i,j)
              if (plot(i,j).gt.rmax) rmax = plot(i,j)
            endif
 101        continue
          enddo
        enddo
        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
      return
      end
