
      program mkbob
c
c Make unix byte file for use with Bob ("Brick Of Bytes") on Picard (SGI) 
c from timesgcm histories:
c
      include 'tigcm.h'
      dimension fields(imx,kmx,jmx,nfhist),glb(imx,kmx,jmx)
      data luhist/8/
      character*16 flnm
      character*56 rdir
c nfhist = 17: tn,un,vn,o2,o1,n4s,no,o+,n2d,ti,te,ne,o2+,w,z,pot,n2
      data fieldlab
     + /'TN      ','UN      ','VN      ','O2      ','O1      ',  
     +  'N4S     ','NO      ','O+      ','N2D     ','TI      ',
     +  'TE      ','NE      ','O2+     ','WN      ','Z       ',
     +  'POTEN   ','N2      '/
      data rdir
     + /'sting.hao.ucar.edu:/d/foster/tigcmbob                   '/
c
      call setgrid(gcmlat,glat1,dlat,jmx, gcmlon,glon1,dlon,imx,
     +             gcmzp,zp1,dzp,kmx)
      call getinp
      istart = 1
c
c Time loop: get ti(e)gcm data for current ut:
c
      do it=1,ntms
        write(6,"('tigcmbob calling getgcm for it=',i3,' mt=',3i3,
     +    '...')") it,(mtimes(i,it),i=1,3)
        call getgcm(histvol,nhvols,istart,mtimes(1,it),fields,
     +    imx,kmx,jmx,nfhist,iden,luhist,istart,ivol,ier)
        if (ier.eq.1) then
          write(6,"('tigcmbob: getgcm could not find history ',3i3,
     +      ' it=',i3)") (mtimes(i,it),i=1,3),it
          goto 100
        elseif (ier.ne.0) then
          write(6,"('Error ',i3,' from getgcm: it=',i3,' mt=',3i3)")
     +      it,(mtimes(i,it),i=1,3)
          stop 'getgcm'
        endif
        ut(it) = mtimes(2,it)+mtimes(3,it)/60.
        write(6,"('tigcmbob after getgcm: it=',i3,' mt=',3i3)") it,
     +    (mtimes(i,it),i=1,3)
c
c Mkbyte writes byte file acceptable by Bob (on picard)
c If censlt was set from lexical reads, it will be local time at 
c   center of longitude axis, otherwise x-axis will be -180 to +180.
c
        do ip=1,nfhist
          if (mkfields(ip).gt.0) then
            if (ncenslt.le.0) then
              glb(:,:,:) = fields(:,:,:,ip)
            else
              slt0 = censlt-12.
              if (slt0.lt.0.) slt0 = slt0-12.
              ix0 = ixslt(slt0,ut(it),xlon,gcmlon,imx,dlon)
              write(6,"('censlt=',f5.2,' ut=',f5.2,' slt0=',f5.2,
     +          ' ix0=',i3,' xlon=',f7.2)") censlt,ut(it),slt0,ix0,xlon
              do i=1,imx
                ix = mod(ix0+i-1,imx)
                if (ix.eq.0) ix = imx
                glb(i,:,:) = fields(ix,:,:,ip)
              enddo
            endif
            if (ilog(ip).gt.0) call log10f(glb,imx*kmx*jmx,1.e-20,spval)
            call clearstr(flnm)
            write(flnm,"(a,'.dat')")fieldlab(ip)(1:lenstr(fieldlab(ip)))
            len = lenstr(flnm)
            ier = mkbyte(glb,imx,kmx,jmx,flnm(1:len))
            call rcpfile(0,flnm,rdir)
          endif
        enddo
        istart = 0
 100    continue
      enddo	! time loop
c
      stop 'success!'
      end
