Move some variables into the q65 module.

This commit is contained in:
Joe Taylor 2021-01-13 10:23:38 -05:00
parent daed54db2d
commit 71385aa20a
3 changed files with 8 additions and 23 deletions

View File

@ -57,7 +57,6 @@ contains
integer dat4(13) !Decoded message as 12 6-bit integers
integer apmask1(78),apsymbols1(78)
integer dgen(13)
integer codewords(63,206)
logical lclearave,lapcqonly,unpk77_success
complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s
complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s
@ -102,7 +101,7 @@ contains
dgen=0
call q65_enc(dgen,codewords) !Initialize the Q65 codec
call timer('sync_q65',0)
call q65_sync(nutc,iwave,ntrperiod,mode65,codewords,ncw,nsps, &
call q65_sync(nutc,iwave,ntrperiod,mode65,nsps, &
nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4, &
snr2,idec)
call timer('sync_q65',1)

View File

@ -1,34 +1,22 @@
module q65
parameter (MAXAVE=64)
parameter (PLOG_MIN=-240.0) !List decoding threshold
parameter (NSTEP=8) !Time bins per symbol, in s1() and s1a()
parameter (PLOG_MIN=-240.0) !List decoding threshold
integer nsave,nlist,LL0
integer iutc(MAXAVE)
integer iseq(MAXAVE)
integer listutc(10)
integer apsym0(58),aph10(10)
integer apmask(13),apsymbols(13)
integer navg,ibwa,ibwb,LL
real f0save(MAXAVE)
real xdtsave(MAXAVE)
real snr1save(MAXAVE)
integer codewords(63,206)
integer navg,ibwa,ibwb,ncw
real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra
real,allocatable :: s3save(:,:,:)
real,allocatable :: s3avg(:,:)
contains
subroutine q65_clravg
iutc=-1
iseq=-1
snr1save=0.
xdtsave=0.
f0save=0.0
nsave=0
if(allocated(s3save)) s3save=0.
if(allocated(s3avg)) s3avg=0.
s1a=0.
navg=0
return
end subroutine q65_clravg

View File

@ -1,4 +1,4 @@
subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65,codewords,ncw,nsps, &
subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65,nsps, &
nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4,snr2,idec)
! Detect and align with the Q65 sync vector, returning time and frequency
@ -17,11 +17,9 @@ subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65,codewords,ncw,nsps, &
use timer_module, only: timer
use q65
parameter (NSTEP=8) !Step size nsps/NSTEP
parameter (LN=2176*63) !LN=LL*NN; LL=64*(mode_q65+2), NN=63
integer*2 iwave(0:12000*ntrperiod-1) !Raw data
integer isync(22) !Indices of sync symbols
integer codewords(63,206)
integer dat4(13)
integer ijpk(2)
character*37 decoded