mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-10-31 23:57:10 -04:00
7b35691f5e
Add test program fersum; several tweaks to fer65. Code cleanup in lorentzian, and return chisqr in a(5). git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6567 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
73 lines
2.0 KiB
Fortran
73 lines
2.0 KiB
Fortran
program fersum
|
|
|
|
character mode*5
|
|
character infile*40
|
|
real dop(0:9)
|
|
real thresh(0:9,12),threshsync(0:9,12)
|
|
data dop/0.25,0.5,1.0,2.0,4.0,8.0,16.0,32.0,64.0,128.0/
|
|
|
|
nargs=iargc()
|
|
if(nargs.ne.1) then
|
|
print*,'Usage: fersum <infile>'
|
|
go to 999
|
|
endif
|
|
call getarg(1,infile)
|
|
open(10,file=infile,status='old')
|
|
thresh=0.
|
|
threshsync=0.
|
|
|
|
do iblk=1,999
|
|
1 read(10,1002,end=100) mode,iters,ntot,naggr,d,navg,nds
|
|
1002 format(a5,8x,i5,4x,i6,7x,i3,6x,f6.2,17x,i3,5x,i2)
|
|
write(33,*) iblk,mode
|
|
if(mode.eq.' ') go to 1
|
|
read(10,1002)
|
|
read(10,1002)
|
|
read(10,1002)
|
|
|
|
nsync0=0
|
|
ngood0=0
|
|
xsum0=0.
|
|
do n=1,99
|
|
read(10,1010,end=100) snr,nsync,ngood,nbad,xsync,esync,dsnr,esnr, &
|
|
xdt,edt,dfreq,efreq,xsum,esum,xwidth,ewidth
|
|
1010 format(f5.1,2i6i4,2f6.1,f6.1,f5.1,f6.2,f5.2,6f5.1)
|
|
if(snr.eq.0.0) exit
|
|
if(mode(5:5).eq.'A') nmode=1
|
|
if(mode(5:5).eq.'B') nmode=2
|
|
if(mode(5:5).eq.'C') nmode=3
|
|
j=nint(log(d)/log(2.0) + 2.0)
|
|
if(navg.eq.1 .and. nds.eq.0) k=nmode
|
|
if(navg.eq.1 .and. nds.eq.1) k=nmode+3
|
|
if(navg.gt.1 .and. nds.eq.0) k=nmode+6
|
|
if(navg.gt.1 .and. nds.eq.1) k=nmode+9
|
|
if(nsync0.le.iters/2 .and. nsync.ge.iters/2) then
|
|
threshsync(j,k)=snr-float(nsync-iters/2)/(nsync-nsync0)
|
|
endif
|
|
if(ngood0.le.iters/2 .and. ngood.ge.iters/2) then
|
|
threshold=snr-float(ngood-iters/2)/(ngood-ngood0)
|
|
xsumavg=max(1.0,0.5*(xsum0+xsum))
|
|
! write(*,1020) mode,iters,ntot,naggr,d,navg,nds,threshold,xsumavg
|
|
!1020 format(a5,i7,i7,i3,f7.2,i3,i3,f7.1,f6.1)
|
|
thresh(j,k)=threshold
|
|
endif
|
|
nsync0=nsync
|
|
ngood0=ngood
|
|
xsum0=xsum
|
|
enddo
|
|
enddo
|
|
|
|
100 write(12,1100)
|
|
1100 format(' ')
|
|
do i=0,9
|
|
write(12,1110) dop(i),thresh(i,1:12)
|
|
1110 format(f6.2,13f6.1)
|
|
enddo
|
|
|
|
write(12,1110)
|
|
do i=0,9
|
|
write(12,1110) dop(i),threshsync(i,1:12)
|
|
enddo
|
|
|
|
999 end program fersum
|