program patternfilemake implicit none c c This program takes the Paul's mode 0 output.txt and generates the list of frames used to generate the pattern c integer*4 i,ic,icount,k,kmax,iflag character*20 infile,infile1st,infilelast,infiles(15) character*42 outname character*1 one,two,three,c,d,z,dum character*9 inname character*4 DOY,DOYsv character*6 HHMMSS,HHMMSSsv(15) data one,two,three,c,d,z /'1','2','3','c','d','z'/ data infile /'cNm0_YYYY_DOY_HHMMSS'/ c data outname /'g:\Patterns\CamN\cNcal_2006_DOY_HHMMSS.txt'/ data outname /'g:\Patterns\CamN\cNcal_2007_unfiltered.txt'/ data iflag,icount,kmax /0,0,150000/ c ic=2 if(ic.eq.1)then c open (10,file='g:\Patterns\c1m0_2006a.txt',readonly) open (10,file='g:\Patterns\c1m0_jan_a.txt',readonly) write(outname(16:16),'(a1)')one write(outname(19:19),'(a1)')one endif if(ic.eq.2)then c open (10,file='g:\Patterns\c2m0_2006a.txt',readonly) open (10,file='g:\Patterns\c2m0_jan_a.txt',readonly) write(outname(16:16),'(a1)')two write(outname(19:19),'(a1)')two endif if(ic.eq.3)then c open (10,file='g:\Patterns\c3m0_2006a.txt',readonly) open (10,file='g:\Patterns\c3m0_jan_a.txt',readonly) write(outname(16:16),'(a1)')three write(outname(19:19),'(a1)')three endif c open(11,file=outname) iflag=0 do k=1,kmax read(10,1)dum,inname,DOY,HHMMSS 1 format(a1,a9,a4,a6) if(dum.eq.z)iflag=2 !detect EOF write(infile(2:10),'(a9)')inname write(infile(11:14),'(a4)')DOY write(infile(15:20),'(a6)')HHMMSS if(k.eq.1)then infile1st=infile infilelast=infile DOYsv=DOY endif if(dum.eq.d)then icount=1 iflag=1 endif if(icount.gt.15)icount=0 if(icount.gt.0)then infiles(icount)=infile HHMMSSsv(icount)=HHMMSS c print *,infile icount=icount+1 endif if(DOY.ne.DOYsv)then print *,'detected new date, ',infilelast,' ',infile if(iflag.gt.0)then write(outname(29:32),'(a4)')DOYsv write(outname(33:38),'(a6)')HHMMSSsv(5) print *,outname open(11,file=outname) if(ic.le.2)print 101,infiles(5) if(ic.le.2)write(11,101)infiles(5) if(ic.eq.3)print 1011,infiles(5) if(ic.eq.3)write(11,1011)infiles(5) print 102,infile1st,infilelast write(11,102)infile1st,infilelast do i=1,10 c print 103,infiles(i) write(11,103)infiles(i) enddo close(11) c write(11,103)infiles(1) c write(11,103)infiles(15) endif infile1st=infile if(iflag.ne.2)iflag=0 endif infilelast=infile DOYsv=DOY 101 format('; Pattern ',a21,/,';',/,'; Shutter closed, engineering mode (mode 0), T = -XX.X C (maximum)',/) 1011 format('; Pattern ',a21,/,';',/,'; Shutter closed, engineering mode (mode 0), T = -XX.X C (minimum)',/) c101 format('; Pattern ',a21) c1011 format('; Pattern ',a21) 102 format(a20,5x,'Start time',/a20,5x,'End time') 103 format(a20) if(iflag.eq.2)go to 99 enddo 99 close(10) c close(11) stop 'done' end