diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 4129cd481..fb4e80c01 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -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 diff --git a/lib/q65_decode.f90 b/lib/q65_decode.f90 index 86ecdb9d5..d1466f63e 100644 --- a/lib/q65_decode.f90 +++ b/lib/q65_decode.f90 @@ -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 diff --git a/lib/qra/q65/q65.f90 b/lib/qra/q65/q65.f90 index bca660c43..9e5bf9415 100644 --- a/lib/qra/q65/q65.f90 +++ b/lib/qra/q65/q65.f90 @@ -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