From ad4fac6b3d002f831b943d6e853e98f3b13f57e4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 10:33:36 -0400 Subject: [PATCH] Implement "Single decode" for FST280. --- lib/decoder.f90 | 3 ++- lib/fst280_decode.f90 | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 5db74e39b..b51a3f906 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -192,7 +192,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec280 ',0) call my_fst280%decode(fst280_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & - params%nsubmode,params%ndepth,params%ntr) + params%nsubmode,params%ndepth,params%ntr,params%nexp_decode, & + params%ntol) call timer('dec280 ',1) go to 800 endif diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 366e39706..865602e55 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -26,7 +26,7 @@ module fst280_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,nsubmode,ndeep,ntrperiod) + nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol) use timer_module, only: timer use packjt77 @@ -47,7 +47,7 @@ contains integer*1 apmask(280),cw(280) integer*1 hbits(328) integer*1 message101(101),message74(74) - logical badsync,unpk77_success + logical badsync,unpk77_success,single_decode integer*2 iwave(300*12000) this%callback => callback @@ -56,6 +56,7 @@ contains Keff=91 iwspr=0 nmax=15*12000 + single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then nsps=800 @@ -100,8 +101,13 @@ contains allocate( cframe(0:164*nss-1) ) npts=nmax - fa=max(100,nfa) - fb=min(4800,nfb) + if(single_decode) then + fa=max(100,nfqso-ntol) + fb=min(4800,nfqso+ntol) + else + fa=max(100,nfa) + fb=min(4800,nfb) + endif if(ndeep.eq.3) then ntmax=4 ! number of block sizes to try