diff --git a/lib/test_qra64.f90 b/lib/test_qra64.f90 index c16abde2f..f816244a3 100644 --- a/lib/test_qra64.f90 +++ b/lib/test_qra64.f90 @@ -33,7 +33,7 @@ program test_qra64 nsps=7680 i50=-28 - ia=-24 + ia=-20 ib=-33 if(nsnr.ne.0) then ia=nsnr @@ -63,19 +63,17 @@ program test_qra64 write(*,1000) (j,j=0,11) write(12,1000) (j,j=0,11) -1000 format(/'SNR d Dop Sync Dec1 DecN Bad',i6,11i4,' tdec dtavg dtrms'/97('-')) +1000 format(/'SNR d Dop Sync Dec Bad',i6,11i4,' tdec'/80('-')) dterr=tsym/4.0 - nferr=max(1,nint(0.5*baud)) + nferr=max(1,nint(0.5*baud),nint(fdop/3.0)) + ndecodes0=nfiles do nsnr=ia,ib,-1 nsync=0 ndecodes=0 nfalse=0 nretcode=0 - navg=0 - sumxdt=0. - sqxdt=0. write(cmd1(55:57),'(i3)') nsnr call system(cmd1) call sec0(0,tdec) @@ -89,17 +87,15 @@ program test_qra64 read(line(11:20),*) xdt,nf irc=-1 if(line(23:23).ne.' ') read(line(45:46),*) irc -! write(71,3071) dt,xdt,abs(xdt-dt),dterr,nf0,nf,abs(nf-nf0),nferr,irc -!3071 format(4f6.2,4i5,i8) - if(abs(xdt-dt).le.dterr .and. abs(nf-nf0).le.nferr) nsync=nsync+1 - if(irc.lt.0) cycle decok=index(line,'W9XYZ').gt.0 + if((abs(xdt-dt).le.dterr .and. abs(nf-nf0).le.nferr) .or. decok) then + nsync=nsync+1 + endif + if(irc.lt.0) cycle if(decok) then i=irc if(i.le.11) then ndecodes=ndecodes + 1 - sumxdt=sumxdt + xdt - sqxdt=sqxdt + xdt*xdt navg=navg + 1 else i=mod(i,10) @@ -110,22 +106,24 @@ program test_qra64 nfalse=nfalse + 1 print*,'False: ',line endif - enddo + enddo ! iline 10 close(10) - xdt_avg=0. - xdt_rms=0. - if(ndecodes.ge.2) then - xdt_avg=sumxdt/ndecodes - xdt_rms=sqxdt/(ndecodes-1) - xdt_avg*xdt_avg + write(*,1100) nsnr,ndepth,fDop,nsync,ndecodes,nfalse,nretcode, & + tdec/nfiles + write(12,1100) nsnr,ndepth,fDop,nsync,ndecodes,nfalse,nretcode, & + tdec/nfiles +1100 format(i3,i2,f5.1,2i5,i4,i6,11i4,f6.2) + if(ndecodes.lt.nfiles/2 .and. ndecodes0.ge.nfiles/2) then + snr_thresh=nsnr + float(nfiles/2 - ndecodes)/(ndecodes0-ndecodes) + write(13,1200) ndepth,fdop,csubmode,snr_thresh +1200 format(i1,f6.1,2x,a1,f7.1) + flush(13) endif - write(*,1100) nsnr,ndepth,fDop,nsync,ndecodes,navg,nfalse,nretcode, & - tdec/nfiles,xdt_avg,xdt_rms - write(12,1100) nsnr,ndepth,fDop,nsync,ndecodes,navg,nfalse,nretcode, & - tdec/nfiles,xdt_avg,xdt_rms -1100 format(i3,i2,f5.1,3i5,i4,i6,11i4,3f6.2) flush(6) flush(12) - enddo + if(ndecodes.eq.0) exit !Bail out if no decodes at this SNR + ndecodes0=ndecodes + enddo ! nsnr 999 end program test_qra64