c c------------------------------------------------------------------ c Begin file /home/sting/foster/uars/satv/getinp.f c------------------------------------------------------------------ c subroutine getinp(utlim,norbfr,censatv,grid,erdist,ierot,ou, + gcmvol,nvol,mt,ipltime,zp,itimegcm,icolor) c include "uars.h" include "timegcm.h" parameter(mxvols=4,mxtms=50) character*32 gcmvol(mxvols) dimension utlim(2),censatv(2),mt(3,mxtms),ipltime(nflds) character*2 ou c call lexcon(satatt, 8HUARSATT ,natt) call lexcon(icolor, 8HCOLOR ,ncolor) call lexcon(ierot, 8HEROT ,nerot) call lexcon(censatv, 8HCENSATV ,ncensatv) call lexcon(grid, 8HGRID ,ngrid) call lexcon(erdist, 8HERDIST ,nerdist) call lexcon(ioutline,8HOUTLINE ,noutline) call lexcon(utlim, 8HUTLIM ,nutlim) call lexcon(norbfr, 8HNORBFR ,nnorbfr) call lexcon(itimegcm,8HTIMEGCM ,ntimegcm) call lexcon(gcmvol, 8HHISTVOL ,nvol) call lexcon(mt, 8HDDHHMM ,ntms) call lexcon(zp, 8HZP ,nzp) call lexcon(ipltime ,8HPLTIME ,npltime) call readlx(5,ierr) if (ierr.ne.1) then write(6,"(' ')") write(6,"(' >>> getinp readlx ierr=',i10)") ierr write(6,"(' ')") stop 'readlx' endif if (natt.ne.4) then write(6,"('>>> getinp: need UARSATT (sat attitude file) ', + ' (32 chars): natt=',i4)") natt stop 'UARSATT' endif if (nerot.le.0) ierot = 0 if (ngrid.le.0) grid = 15. if (nerdist.le.0) erdist = -1. if (nzp.le.0) zp = -4. if (ncolor.le.0) icolor = 0 c C OUTLINE = flag for geographical outlines: C =0 -> "NO" no outlines C =1 -> "CO" continental outlines C =2 -> "US" u.s. state outlines C =3 -> "PS" continental, international and state C =4 -> "PO" continental and international c if (noutline.le.0) then ou = 'CO' goto 100 endif if (ioutline.eq.0) then ou = 'NO' elseif (ioutline.eq.1) then ou = 'CO' elseif (ioutline.eq.2) then ou = 'US' elseif (ioutline.eq.3) then ou = 'PS' elseif (ioutline.eq.4) then ou = 'PO' else write(6,"('getinp: bad ioutline=',i3, + ' will default to continental')") ou = 'CO' endif 100 continue c c utlim = limits of sat ut to process within a single day: c if (nutlim.ne.2) then write(6,"('>>> getinp: need 2 values for UTLIM: nutlim=', + i3)") nutlim stop 'utlim' endif if (utlim(1).lt.0..or.utlim(1).ge.24.) then write(6,"('>>> getinp: bad utlim(1)=',f10.3)") utlim(1) stop 'utlim1' endif if (utlim(2).lt.0..or.utlim(2).ge.24.) then write(6,"('>>> getinp: bad utlim(2)=',f10.3)") utlim(2) stop 'utlim2' endif if (utlim(1).ge.utlim(2)) then write(6,"('utlim(1) must be < utlim(2): utlim1,2=',2f10.3)") + utlim stop 'utlim' endif c c Number of orbits per frame if (nnorbfr.le.0) norbfr = 1 if (ncensatv.le.0) then censatv(1) = 50. censatv(2) = 180. endif c c nvol = number of timegcm volumes: c if (ntimegcm.le.0) itimegcm = 0 if (mod(nvol,4).ne.0) then write(6,"('>>> getinp: gcm history vol names (HISTVOL) should', + ' be 32 chars each: nvol=',i4)") nvol stop 'HISTVOL' endif nvol = nvol/4 if (nvol.gt.mxvols) then write(6,"('>>> getinp: too many history vols: nvol=',i4)") nvol stop 'nvol' endif c c ntms = number of timegcm histories: c if (mod(ntms,3).ne.0) then write(6,"('>>> getinp: need 3 integers per time (DDHHMM):', + ' ntms=',i4)") ntms stop 'ntms' endif ntms = ntms/3 if (ntms.gt.mxtms) then write(6,"('>>> getinp: too many history times: ntms=',i4)") + ntms stop 'ntms' endif c c Fields to plot: c nflds (in timegcm.h) = number of fields on timegcm histories (30) c nftot = number of fields available in this code (nflds+other calculated c fields) As of 2/19/92 other fields are: c ver6300 (volume emmision rate at 6300A) c if (npltime.le.0.and.itimegcm.gt.0) then write(6,"('>>> getinp: no fields to plot? npltime=',i3)") + npltime stop 'npltime' c elseif (npltime.ne.nftot) then elseif (npltime.ne.nflds) then write(6,"('>>> getinp: need ',i3,' values for PLTIME', + ' -- got ',i3)") nflds,npltime stop 'npltime' endif c return end