Decodes without "newdat" should not add s1 into s1a again.

This commit is contained in:
Joe Taylor 2021-01-23 10:58:28 -05:00
parent e7061abc7c
commit 1489513803
3 changed files with 15 additions and 11 deletions

View File

@ -205,11 +205,11 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
open(17,file=trim(temp_dir)//'/red.dat',status='unknown')
open(14,file=trim(temp_dir)//'/avemsg.txt',status='unknown')
call timer('dec_q65 ',0)
call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr, &
params%nsubmode,params%nfqso,params%ntol,params%ndepth, &
params%nfa,params%nfb,logical(params%nclearave), &
params%emedelay,mycall,hiscall,hisgrid,params%nQSOProgress, &
ncontest,logical(params%lapcqonly),navg0)
call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr, &
params%nsubmode,params%nfqso,params%ntol,params%ndepth, &
params%nfa,params%nfb,logical(params%nclearave), &
logical(params%newdat),params%emedelay,mycall,hiscall,hisgrid, &
params%nQSOProgress,ncontest,logical(params%lapcqonly),navg0)
call timer('dec_q65 ',1)
close(17)
go to 800

View File

@ -26,9 +26,9 @@ module q65_decode
contains
subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso, &
ntol,ndepth,nfa0,nfb0,lclearave,emedelay,mycall,hiscall,hisgrid, &
nQSOprogress,ncontest,lapcqonly,navg0)
subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso, &
ntol,ndepth,nfa0,nfb0,lclearave,lnewdat0,emedelay,mycall, &
hiscall,hisgrid,nQSOprogress,ncontest,lapcqonly,navg0)
! Top-level routine that organizes the decoding of Q65 signals
! Input: iwave Raw data, i*2
@ -63,13 +63,14 @@ contains
real, allocatable :: dd(:) !Raw data
integer dat4(13) !Decoded message as 12 6-bit integers
integer dgen(13)
logical lclearave,lapcqonly,unpk77_success
logical lclearave,lnewdat0,lapcqonly,unpk77_success
complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s
complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s
! Start by setting some parameters and allocating storage for large arrays
nfa=nfa0
nfb=nfb0
lnewdat=lnewdat0
idec=-1
mode_q65=2**nsubmode
npts=ntrperiod*12000

View File

@ -14,6 +14,7 @@ module q65
integer istep,nsmo,lag1,lag2,npasses,nused,iseq
integer i0,j0
integer navg(0:1)
logical lnewdat
real,allocatable,save :: s1a(:,:,:) !Cumulative symbol spectra
real sync(85) !sync vector
real df,dtstep,dtdec,f0dec
@ -261,8 +262,10 @@ subroutine q65_symspec(iwave,nmax,iz,jz,s1)
call smo121(s1(1:iz,j),iz)
enddo
enddo
s1a(:,:,iseq)=s1a(:,:,iseq) + s1
navg(iseq)=navg(iseq) + 1
if(lnewdat) then
s1a(:,:,iseq)=s1a(:,:,iseq) + s1
navg(iseq)=navg(iseq) + 1
endif
return
end subroutine q65_symspec