Enable FST280 decoding with jt9[.exe]. So far, with 60 s periods only.

This commit is contained in:
Joe Taylor 2020-06-17 15:07:15 -04:00
parent 5aeaf5dc78
commit b0a979e3f2

View File

@ -25,7 +25,7 @@ program jt9
fhigh=4000,nrxfreq=1500,ntrperiod=1,ndepth=1,nexp_decode=0 fhigh=4000,nrxfreq=1500,ntrperiod=1,ndepth=1,nexp_decode=0
logical :: read_files = .true., tx9 = .false., display_help = .false., & logical :: read_files = .true., tx9 = .false., display_help = .false., &
bLowSidelobes = .false. bLowSidelobes = .false.
type (option) :: long_options(26) = [ & type (option) :: long_options(27) = [ &
option ('help', .false., 'h', 'Display this help message', ''), & option ('help', .false., 'h', 'Display this help message', ''), &
option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), & option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), &
option ('tr-period', .true., 'p', 'Tx/Rx period, default MINUTES=1', & option ('tr-period', .true., 'p', 'Tx/Rx period, default MINUTES=1', &
@ -52,7 +52,8 @@ program jt9
'THREADS'), & 'THREADS'), &
option ('jt4', .false., '4', 'JT4 mode', ''), & option ('jt4', .false., '4', 'JT4 mode', ''), &
option ('ft4', .false., '5', 'FT4 mode', ''), & option ('ft4', .false., '5', 'FT4 mode', ''), &
option ('jt65', .false.,'6', 'JT65 mode', ''), & option ('jt65', .false.,'6', 'JT65 mode', ''), &
option ('fst280', .false., '7', 'FT8 mode', ''), &
option ('ft8', .false., '8', 'FT8 mode', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), &
option ('jt9', .false., '9', 'JT9 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), &
option ('qra64', .false., 'q', 'QRA64 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), &
@ -79,7 +80,7 @@ program jt9
nsubmode = 0 nsubmode = 0
do do
call getopt('hs:e:a:b:r:m:p:d:f:w:t:98654qTL:S:H:c:G:x:g:X:', & call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654qTL:S:H:c:G:x:g:X:', &
long_options,c,optarg,arglen,stat,offset,remain,.true.) long_options,c,optarg,arglen,stat,offset,remain,.true.)
if (stat .ne. 0) then if (stat .ne. 0) then
exit exit
@ -120,10 +121,12 @@ program jt9
mode = 5 mode = 5
case ('6') case ('6')
if (mode.lt.65) mode = mode + 65 if (mode.lt.65) mode = mode + 65
case ('9') case ('7')
if (mode.lt.9.or.mode.eq.65) mode = mode + 9 mode = 280
case ('8') case ('8')
mode = 8 mode = 8
case ('9')
if (mode.lt.9.or.mode.eq.65) mode = mode + 9
case ('T') case ('T')
tx9 = .true. tx9 = .true.
case ('w') case ('w')
@ -182,7 +185,6 @@ program jt9
allocate(shared_data) allocate(shared_data)
nflatten=0 nflatten=0
do iarg = offset + 1, offset + remain do iarg = offset + 1, offset + remain
call get_command_argument (iarg, optarg, arglen) call get_command_argument (iarg, optarg, arglen)
infile = optarg(:arglen) infile = optarg(:arglen)
@ -220,11 +222,11 @@ program jt9
k=0 k=0
nhsym0=-999 nhsym0=-999
npts=(60*ntrperiod-6)*12000 npts=(60*ntrperiod-6)*12000
if(mode.eq.280) npts=60*ntrperiod*12000
if(iarg .eq. offset + 1) then if(iarg .eq. offset + 1) then
call init_timer (trim(data_dir)//'/timer.out') call init_timer (trim(data_dir)//'/timer.out')
call timer('jt9 ',0) call timer('jt9 ',0)
endif endif
shared_data%id2=0 !??? Why is this necessary ??? shared_data%id2=0 !??? Why is this necessary ???
if(mode.eq.5) npts=21*3456 if(mode.eq.5) npts=21*3456
do iblk=1,npts/kstep do iblk=1,npts/kstep
@ -249,7 +251,7 @@ program jt9
call timer('symspec ',1) call timer('symspec ',1)
endif endif
nhsym0=nhsym nhsym0=nhsym
if(nhsym.ge.181) exit if(nhsym.ge.181 .and. mode.ne.280) exit
endif endif
enddo enddo
close(unit=wav%lun) close(unit=wav%lun)
@ -264,20 +266,14 @@ program jt9
shared_data%params%nfb=fhigh shared_data%params%nfb=fhigh
shared_data%params%ntol=20 shared_data%params%ntol=20
shared_data%params%kin=64800 shared_data%params%kin=64800
if(mode.eq.280) shared_data%params%kin=720000 !### 60 s periods ###
shared_data%params%nzhsym=181 shared_data%params%nzhsym=181
shared_data%params%ndepth=ndepth shared_data%params%ndepth=ndepth
shared_data%params%lft8apon=.true. shared_data%params%lft8apon=.true.
shared_data%params%ljt65apon=.true. shared_data%params%ljt65apon=.true.
shared_data%params%napwid=75 shared_data%params%napwid=75
shared_data%params%dttol=3. shared_data%params%dttol=3.
! shared_data%params%minsync=0 !### TEST ONLY
! shared_data%params%nfqso=1500 !### TEST ONLY
! mycall="G3WDG " !### TEST ONLY
! hiscall="VK7MO " !### TEST ONLY
! hisgrid="QE37 " !### TEST ONLY
if(mode.eq.164 .and. nsubmode.lt.100) nsubmode=nsubmode+100 if(mode.eq.164 .and. nsubmode.lt.100) nsubmode=nsubmode+100
shared_data%params%naggressive=0 shared_data%params%naggressive=0
shared_data%params%n2pass=2 shared_data%params%n2pass=2
! shared_data%params%nranera=8 !### ntrials=10000 ! shared_data%params%nranera=8 !### ntrials=10000