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

View File

@ -1,34 +1,22 @@
module q65 module q65
parameter (MAXAVE=64) parameter (NSTEP=8) !Time bins per symbol, in s1() and s1a()
parameter (PLOG_MIN=-240.0) !List decoding threshold parameter (PLOG_MIN=-240.0) !List decoding threshold
integer nsave,nlist,LL0 integer nsave,nlist,LL0
integer iutc(MAXAVE)
integer iseq(MAXAVE)
integer listutc(10) integer listutc(10)
integer apsym0(58),aph10(10) integer apsym0(58),aph10(10)
integer apmask(13),apsymbols(13) integer apmask(13),apsymbols(13)
integer navg,ibwa,ibwb,LL integer codewords(63,206)
real f0save(MAXAVE) integer navg,ibwa,ibwb,ncw
real xdtsave(MAXAVE)
real snr1save(MAXAVE)
real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra
real,allocatable :: s3save(:,:,:)
real,allocatable :: s3avg(:,:)
contains contains
subroutine q65_clravg subroutine q65_clravg
iutc=-1 s1a=0.
iseq=-1 navg=0
snr1save=0.
xdtsave=0.
f0save=0.0
nsave=0
if(allocated(s3save)) s3save=0.
if(allocated(s3avg)) s3avg=0.
return return
end subroutine q65_clravg 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) nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4,snr2,idec)
! Detect and align with the Q65 sync vector, returning time and frequency ! 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 timer_module, only: timer
use q65 use q65
parameter (NSTEP=8) !Step size nsps/NSTEP
parameter (LN=2176*63) !LN=LL*NN; LL=64*(mode_q65+2), NN=63 parameter (LN=2176*63) !LN=LL*NN; LL=64*(mode_q65+2), NN=63
integer*2 iwave(0:12000*ntrperiod-1) !Raw data integer*2 iwave(0:12000*ntrperiod-1) !Raw data
integer isync(22) !Indices of sync symbols integer isync(22) !Indices of sync symbols
integer codewords(63,206)
integer dat4(13) integer dat4(13)
integer ijpk(2) integer ijpk(2)
character*37 decoded character*37 decoded