c subroutine getinp c include 'tigcm.h' c call lexcon(histvol ,8HHISTVOL ,nhvols) call lexcon(mtimes ,8HDDHHMM ,ntimes) call lexcon(censlt ,8HCENSLT ,ncenslt) call lexcon(iden ,8HIDEN ,niden) call lexcon(mkbob ,8HMKBOB ,nmkbob) call lexcon(mkfields,8HMKFIELDS,nfields) call lexcon(ilog ,8HLOG ,nlog) call lexcon(ninterp ,8HNINTERP ,nintrp) call lexcon(icontour,8HCONTOUR ,ncontour) call lexcon(info ,8HINFO ,ninfo) call lexcon(szp ,8HZP ,nzp) call lexcon(cint ,8HCINT ,ncint) call lexcon(cmin ,8HCMIN ,ncmin) call lexcon(cmax ,8HCMAX ,ncmax) call readlx(5,ierr) if (ierr.ne.1) then write(6,"(' ')") write(6,"('>>> getinp readlx ierr=',i10)") ierr write(6,"(' ')") stop 'readlx' endif C C Iden = 0,1,2 for mass mixing ratios, number densities, or mixing C ratios of number densities C if (niden.lt.0.or.iden.gt.2) then write(6,"(' >>> getinp: no iden -- will default to cm-3')") iden = 1 endif c c number of time interpolations c if (nintrp.le.0) ninterp = 0 c c Contouring: c if (ncontour.le.0) icontour = 0 if (icontour.gt.0.and.nzp.le.0) szp = 2. if (ncint.le.0) cint = 0. if (ncmin.le.0) cmin = 1. if (ncmax.le.0) cmax = 0. if (nmkbob.le.0) mkbob = 0 C C Histvol(s): C if (mod(nhvols,3).ne.0) then write(6,"('>>> getinp: history volumes must be 24-chars each', + /' nhvols=',i3)") nhvols stop 'nhvols' endif nhvols = nhvols/3 if (nhvols.gt.mxvols) then write(6,"(' >>> getinp: nhvols.gt.mxvols: nhvols=',I3, + ' mxvols=',i3)") nhvols,mxvols stop 'nhvols' endif write(6,"('getinp: nhvols=',i3)") nhvols C C Number of desired times: C if (ntimes.le.0) then write(6,"('>>> getinp: need model times (DDHHMM)')") stop 'mtimes' endif if (mod(ntimes,3).ne.0) then write(6,"('>> getinp: model times should come in triplets ', + '(dd,hh,mm): ntimes=',i3)") ntimes stop 'ntimes' endif ntms = ntimes/3 if (ntms.gt.mxtms) then write(6,"('>>> getinp: too many model times (DDHHMM);', + ' ntms=',i3,' mxtms=',i3)") ntms,mxtms stop 'mxtms' endif write(6,"('getinp: ntms=',i3)") ntms c c Ut loop: c (mh,mm=99 means search only) c do 100 it=1,ntms if (mtimes(2,it).ne.99.and. + (mtimes(2,it).lt.0.or.mtimes(2,it).gt.23)) then write(6,"('>>> getinp: bad model hour: ',i3,' it=',i3)") + mtimes(2,it),it stop 'mhour' endif if (mtimes(3,it).ne.99.and. + (mtimes(3,it).lt.0.or.mtimes(3,it).gt.59)) then write(6,"('>>> getinp: bad model minute: ',i3,' it=',i3)") + mtimes(3,it),it stop 'mm' endif ut(it) = float(mtimes(2,it))+float(mtimes(3,it))/60. 100 continue c c Fields for which to make byte files: c if (nfields.le.0) then write(6,"('>>> getinp: no fields to make? nfields=',i3)") + nfields stop 'nfields' elseif (nfields.ne.nfhist) then write(6,"('>>> getinp: need ',i3,' values for MKFIELDS', + ' -- got ',i3)") nfhist,nfields stop 'mkfields' endif c c Can make only one field at a time: c nip = 0 do ip=1,nfhist if (mkfields(ip).gt.0) then nip = nip+1 ixf = ip endif enddo if (nip.ne.1) then write(6,"('>>> can make only one field per run')") stop 'nflds' endif c c Write log10 of fields: c if (nlog.ne.nfhist) then write(6,"('>>> need ',i2,' values for LOG: got ',i2)") + nfhist,nlog stop 'nlog' endif c return end