Temporary version: decode call at 47 buffers only does subtractions.

This commit is contained in:
Joe Taylor 2020-03-06 10:38:24 -05:00
parent 431ec50212
commit f367b6d6b9
2 changed files with 27 additions and 11 deletions

View File

@ -432,9 +432,9 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, &
nbadcrc=0 ! If we get this far: valid codeword, valid (i3,n3), nonquirky message. nbadcrc=0 ! If we get this far: valid codeword, valid (i3,n3), nonquirky message.
call get_ft8_tones_from_77bits(message77,itone) call get_ft8_tones_from_77bits(message77,itone)
if(lsubtract) then if(lsubtract) then
call timer('sub_ft8b',0) call timer('sub_ft8a',0)
call subtractft8(dd0,itone,f1,xdt,.false.) call subtractft8(dd0,itone,f1,xdt,.false.)
call timer('sub_ft8b',1) call timer('sub_ft8a',1)
endif endif
xsig=0.0 xsig=0.0
xnoi=0.0 xnoi=0.0

View File

@ -44,15 +44,15 @@ contains
real s(NH1,NHSYM) real s(NH1,NHSYM)
real sbase(NH1) real sbase(NH1)
real candidate(3,MAXCAND) real candidate(3,MAXCAND)
real dd(15*12000) real dd(15*12000),dd1(15*12000)
logical, intent(in) :: lft8apon,lapcqonly,nagain logical, intent(in) :: lft8apon,lapcqonly,nagain
logical newdat,lsubtract,ldupe logical newdat,lsubtract,ldupe
logical lsubtracted(MAX_EARLY)
character*12 mycall12,hiscall12 character*12 mycall12,hiscall12
character*6 hisgrid6 character*6 hisgrid6
integer*2 iwave(15*12000) integer*2 iwave(15*12000)
integer apsym2(58),aph10(10) integer apsym2(58),aph10(10)
character datetime*13,msg37*37 character datetime*13,msg37*37
! character message*22
character*37 allmessages(100) character*37 allmessages(100)
integer allsnrs(100) integer allsnrs(100)
integer itone(NN) integer itone(NN)
@ -60,14 +60,14 @@ contains
real f1_save(MAX_EARLY) real f1_save(MAX_EARLY)
real xdt_save(MAX_EARLY) real xdt_save(MAX_EARLY)
save s,dd,ndec_early,itone_save,f1_save,xdt_save save s,dd,dd1,ndec_early,itone_save,f1_save,xdt_save,lsubtracted
this%callback => callback this%callback => callback
write(datetime,1001) nutc !### TEMPORARY ### write(datetime,1001) nutc !### TEMPORARY ###
1001 format("000000_",i6.6) 1001 format("000000_",i6.6)
call ft8apset(mycall12,hiscall12,ncontest,apsym2,aph10) call ft8apset(mycall12,hiscall12,ncontest,apsym2,aph10)
dd=iwave if(nzhsym.le.47) dd=iwave
if(nzhsym.eq.41) then if(nzhsym.eq.41) then
ndecodes=0 ndecodes=0
allmessages=' ' allmessages=' '
@ -75,13 +75,29 @@ contains
else else
ndecodes=ndec_early ndecodes=ndec_early
endif endif
if(nzhsym.gt.41 .and. ndec_early.ge.1) then if(nzhsym.eq.47 .and. ndec_early.ge.1) then
! print*,'AAA',nzhsym,ndec_early lsubtracted=.false.
call timer('sub_ft8a',0) call timer('sub_ft8b',0)
do i=1,ndec_early do i=1,ndec_early
if(xdt_save(i)-0.5.lt.0.396) then
call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.)
lsubtracted(i)=.true.
endif
enddo
call timer('sub_ft8b',1)
dd1=dd
go to 900
endif
if(nzhsym.eq.50 .and. ndec_early.ge.1) then
n=47*3456
dd(1:n)=dd1(1:n)
dd(n+1:)=iwave(n+1)
call timer('sub_ft8c',0)
do i=1,ndec_early
if(lsubtracted(i)) cycle
call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.) call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.)
enddo enddo
call timer('sub_ft8a',1) call timer('sub_ft8c',1)
endif endif
ifa=nfa ifa=nfa
ifb=nfb ifb=nfb
@ -159,7 +175,7 @@ contains
if(nzhsym.lt.50) ndec_early=ndecodes if(nzhsym.lt.50) ndec_early=ndecodes
! print*,'BBB',nzhsym,ndecodes ! print*,'BBB',nzhsym,ndecodes
return 900 return
end subroutine decode end subroutine decode
end module ft8_decode end module ft8_decode