subroutine observ(moob,qqfinf,qqfing,qq1st,temp) integer moob logical qqfinf, qqfing, qq1st, qnumbr, frstrd save frstrd double precision temp(*) include 'maincomo.for' character*8 strcnv double precision trndat,blank data blank/8h / qqfinf=.false. qqfing=.false. if (qfirst) then qfirst=.false. frstrd=.true. idic=1 endif if (string.eq.'end of file') then qqfinf=.true. return endif if (string(1:10).eq.'##########') then idic=idic+1 frstrd=.true. endif 10 if (iocr.ne.9) then read(iocr,'(a80)',end=30) string else c accept string endif if (string(1:10).eq.'##########') then qqfing=.true. return endif do 20 i=1,mxrvar nxttab=index(string,tabchr) if (nxttab.gt.1) then formt=' ' if (vfmt(i).eq.11) then obs(i)=blank qmiss(i)=.true. elseif (vfmt(i).eq.10) then write(formt,'(2h(a,i2,1h))') nxttab-1 read(string,formt) obs(i) qmiss(i)=.false. else write(formt,'(2h(f,i2,3h.0))') nxttab-1 read(string,formt) obs(i) qmiss(i)=.false. if (varnam(i).eq.'time ') then obs(i)=trndat(obs(i)) endif endif do 25 j=nxttab+1,80 25 string(j-nxttab:j-nxttab)=string(j:j) else obs(i)=blank qmiss(i)=.true. endif 20 continue if (frstrd) then frstrd=.false. do 50 i=1,mxrvar if (varnam(i).eq.'id') go to 60 50 continue return 60 sfdic(idic)=strcnv(obs(i)) endif return 30 string='end of file' qqfing=.true. return end