WSJT-X/lib/sync9.f90
Joe Taylor 7f72925679 First try at changing Tol to fMin and fMax. More work still to be done!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3125 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-03 16:44:31 +00:00

47 lines
1.1 KiB
Fortran

subroutine sync9(ss,nzhsym,tstep,df3,nfa,nfb,ntol,nfqso,ccfred,ia,ib,ipkbest)
parameter (NSMAX=22000) !Max length of saved spectra
real ss(184,NSMAX)
real ccfred(NSMAX)
include 'jt9sync.f90'
ipk=0
ipkbest=0
ia=max(1,nint((nfa-1000)/df3))
ib=min(NSMAX,nint((nfb-1000)/df3))
sbest=0.
lag1=-(2.5/tstep + 0.9999)
lag2=5.0/tstep + 0.9999
ccfred=0.
do i=ia,ib
smax=0.
do lag=lag1,lag2
sum=0.
do j=1,16
k=ii2(j) + lag
kaa=ka(j)+lag
kbb=kb(j)+lag
if(k.ge.1 .and. k.le.nzhsym) sum=sum + ss(k,i) - &
0.5*(ss(kaa,i)+ss(kbb,i))
enddo
if(sum.gt.smax) then
smax=sum
ipk=i
endif
enddo
ccfred(i)=smax !Best at this freq, over all lags
if(smax.gt.sbest) then
sbest=smax
ipkbest=ipk
endif
enddo
call pctile(ccfred(ia),ib-ia+1,50,xmed)
if(xmed.le.0.0) xmed=1.0
ccfred=ccfred/xmed
return
end subroutine sync9