program stats character*8 arg character*40 infile character decoded*22 nargs=iargc() if(nargs.lt.1) then print*,'Usage: stats file1 ...' go to 999 endif ttol=0.1 nftol=1 write(*,1000) 1000 format(' SNR Files Sync BM FT Hint Total False BadSync'/ & 56('-')) do ifile=1,nargs call getarg(ifile,infile) open(10,file=infile,status='old') i1=index(infile,".")+1 i2=40 if(index(infile,"_").gt.1) i2=index(infile,"_") - 1 snrgen=0. read(infile(i1:i2),*,err=1) snrgen 1 snrgen=-snrgen nsynced=0 nbm=0 nftok=0 nhint=0 ngood=0 nbad=0 nbadsync=0 do iline=1,999999 read(10,1010,end=100) nutc,sync,nsnr,dt,nfreq,ncandidates,nhard, & ntotal,rtt,ntry,nft,nqual,decoded 1010 format(i4.4,f5.1,i4,f5.1,i5,i6,i3,i4,f6.3,i8,i2,i3,1x,a22) ndfreq=abs(nfreq-1500) if(sync.ge.1.0 .and. abs(dt).le.ttol .and. ndfreq.le.nftol) then nsynced=nsynced+1 else nbadsync=nbadsync+1 endif if(decoded.eq.' ') cycle if(nft.eq.2 .or. (ntotal.le.81 .and. rtt.le.0.87)) then !nag=0 if(decoded(1:11).eq.'K1ABC W9XYZ') then ngood=ngood+1 if(nft.eq.1 .and. ncandidates.eq.0) nbm=nbm+1 if(nft.eq.1) nftok=nftok+1 if(nft.ge.2) nhint=nhint+1 else nbad=nbad+1 endif endif enddo 100 write(*,1100) snrgen,nutc,nsynced,nbm,nftok,nhint,ngood,nbad, & nbadsync 1100 format(f5.1,8i6) enddo 999 end program stats