55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| program count4
 | |
| 
 | |
|   parameter(NMAX=1000)
 | |
|   character*47 line
 | |
|   real snr(NMAX)
 | |
|   real dt(NMAX)
 | |
|   real f(NMAX)
 | |
| 
 | |
|   open(10,file='/users/joe/appdata/local/wsjt-x/all.txt',status='old')
 | |
| 
 | |
|   read(10,1000,end=10) line
 | |
| 1000 format(a47)
 | |
| 
 | |
|   nsync1=0
 | |
|   nsync2=0
 | |
|   n1=0
 | |
|   n2=0
 | |
|   nerr=0
 | |
| 
 | |
|   do i=1,99999
 | |
|      read(10,1000,end=10) line
 | |
|      if(line(47:47).ne.' ') cycle                !Skip average decodes
 | |
|      if(line(20:20).eq.'*') nsync1=nsync1+1
 | |
|      if(line(20:20).eq.'#') nsync2=nsync2+1
 | |
|      if(line(22:34).eq.'CQ K1ABC FN42') then
 | |
|         n2=n2+1                                  !Correlation decode
 | |
|         read(line,1002) snr(n2),dt(n2),f(n2)
 | |
| 1002    format(4x,f4.0,f5.2,f5.0)
 | |
|         if(line(42:42).eq.'*') n1=n1+1           !Convolutional decode
 | |
|      else
 | |
|         if(line(22:34).ne.'             ') nerr=nerr+1
 | |
|      endif
 | |
|   enddo
 | |
| 
 | |
| 10 call stats(snr,n2,snrave,snrdev)
 | |
|   call stats(dt,n2,dtave,dtdev)
 | |
|   call stats(f,n2,fave,fdev)
 | |
| 
 | |
| write(*,1010) nsync1,nsync2,n1,n2,nerr,snrave,dtave,fave,snrdev,dtdev,fdev
 | |
| 1010 format(5i5,f7.1,f7.2,f7.0/25x,f7.1,f7.2,f7.0)
 | |
| 
 | |
| end program count4
 | |
| 
 | |
| subroutine stats(x,nz,ave,rms)
 | |
|   real x(nz)
 | |
| 
 | |
|   ave=0.
 | |
|   rms=0.
 | |
|   if(nz.gt.0) ave=sum(x)/nz
 | |
|   x=x-ave
 | |
|   if(nz.gt.1) rms=sqrt(dot_product(x,x)/(nz-1))
 | |
| 
 | |
|   return
 | |
| end subroutine stats
 | 
