Fix a problem in hint65. (More tests needed!)

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6606 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-04-10 19:02:59 +00:00
parent 07151fb980
commit 03d74a6208

View File

@ -15,7 +15,7 @@ subroutine hint65(s3,mrs,mrs2,mrsym,mr2sym,mrprob,nadd,flip, &
character*4 grid2(MAXCALLS),rpt(MAXRPT) character*4 grid2(MAXCALLS),rpt(MAXRPT)
character callsign*12,grid*4 character callsign*12,grid*4
character*180 line character*180 line
character ceme*3,msg*22 character ceme*3,msg*22,msg00*22
character*22 msg0(MAXMSG),decoded character*22 msg0(MAXMSG),decoded
logical*1 eme(MAXCALLS) logical*1 eme(MAXCALLS)
logical first logical first
@ -59,6 +59,7 @@ subroutine hint65(s3,mrs,mrs2,mrsym,mr2sym,mrprob,nadd,flip, &
ceme=line(i2+1:i3-1) ceme=line(i2+1:i3-1)
eme(i)=ceme.eq.'EME' eme(i)=ceme.eq.'EME'
if(neme.eq.1 .and. (.not.eme(i))) cycle if(neme.eq.1 .and. (.not.eme(i))) cycle
if(callsign(1:6).eq.hiscall .and. grid.eq.hisgrid) cycle
j=j+1 j=j+1
call2(j)=callsign(1:6) !### Fix for compound callsigns! call2(j)=callsign(1:6) !### Fix for compound callsigns!
grid2(j)=grid grid2(j)=grid
@ -69,7 +70,8 @@ subroutine hint65(s3,mrs,mrs2,mrsym,mr2sym,mrprob,nadd,flip, &
! NB: generation of test messages is not yet complete! ! NB: generation of test messages is not yet complete!
j=0 j=0
do i=-1,ncalls !### if ncalls is too small, generate random msgs ??? do i=-1,ncalls
if(i.eq.0 .and. hiscall.eq.' ' .and. hisgrid.eq.' ') cycle
mz=2 mz=2
if(i.eq.-1) mz=1 if(i.eq.-1) mz=1
if(i.eq.0) mz=65 if(i.eq.0) mz=65
@ -115,6 +117,7 @@ subroutine hint65(s3,mrs,mrs2,mrsym,mr2sym,mrprob,nadd,flip, &
! a bank of matched filters on the symbol spectra s3(i,j). ! a bank of matched filters on the symbol spectra s3(i,j).
ipk=1 ipk=1
ipk2=0 ipk2=0
msg00=' '
do k=1,nused do k=1,nused
if(k.ge.2 .and. k.le.64 .and. flip.lt.0.0) cycle if(k.ge.2 .and. k.le.64 .and. flip.lt.0.0) cycle
! Test all messages if flip=+1; skip the CQ messages if flip=-1. ! Test all messages if flip=+1; skip the CQ messages if flip=-1.
@ -129,12 +132,15 @@ subroutine hint65(s3,mrs,mrs2,mrsym,mr2sym,mrprob,nadd,flip, &
p=psum/ref p=psum/ref
if(p.gt.u1) then if(p.gt.u1) then
u2=u1 if(msg0(k).ne.msg00) then
ipk2=ipk ipk2=ipk
u2=u1
endif
u1=p u1=p
ipk=k ipk=k
msg00=msg0(k)
endif endif
if(p.ne.u1 .and. p.gt.u2) then if(msg0(k).ne.msg00 .and. p.gt.u2) then
u2=p u2=p
ipk2=k ipk2=k
endif endif