From b0a979e3f2b86dd4c8168ac5550dcf14b445212b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 15:07:15 -0400 Subject: [PATCH] Enable FST280 decoding with jt9[.exe]. So far, with 60 s periods only. --- lib/jt9.f90 | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 7656f51e2..e2ced6542 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -25,7 +25,7 @@ program jt9 fhigh=4000,nrxfreq=1500,ntrperiod=1,ndepth=1,nexp_decode=0 logical :: read_files = .true., tx9 = .false., display_help = .false., & bLowSidelobes = .false. - type (option) :: long_options(26) = [ & + type (option) :: long_options(27) = [ & option ('help', .false., 'h', 'Display this help message', ''), & option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), & option ('tr-period', .true., 'p', 'Tx/Rx period, default MINUTES=1', & @@ -52,7 +52,8 @@ program jt9 'THREADS'), & option ('jt4', .false., '4', 'JT4 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 ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & @@ -79,7 +80,7 @@ program jt9 nsubmode = 0 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.) if (stat .ne. 0) then exit @@ -120,10 +121,12 @@ program jt9 mode = 5 case ('6') if (mode.lt.65) mode = mode + 65 - case ('9') - if (mode.lt.9.or.mode.eq.65) mode = mode + 9 + case ('7') + mode = 280 case ('8') mode = 8 + case ('9') + if (mode.lt.9.or.mode.eq.65) mode = mode + 9 case ('T') tx9 = .true. case ('w') @@ -182,7 +185,6 @@ program jt9 allocate(shared_data) nflatten=0 - do iarg = offset + 1, offset + remain call get_command_argument (iarg, optarg, arglen) infile = optarg(:arglen) @@ -220,11 +222,11 @@ program jt9 k=0 nhsym0=-999 npts=(60*ntrperiod-6)*12000 + if(mode.eq.280) npts=60*ntrperiod*12000 if(iarg .eq. offset + 1) then call init_timer (trim(data_dir)//'/timer.out') call timer('jt9 ',0) endif - shared_data%id2=0 !??? Why is this necessary ??? if(mode.eq.5) npts=21*3456 do iblk=1,npts/kstep @@ -249,7 +251,7 @@ program jt9 call timer('symspec ',1) endif nhsym0=nhsym - if(nhsym.ge.181) exit + if(nhsym.ge.181 .and. mode.ne.280) exit endif enddo close(unit=wav%lun) @@ -264,20 +266,14 @@ program jt9 shared_data%params%nfb=fhigh shared_data%params%ntol=20 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%ndepth=ndepth shared_data%params%lft8apon=.true. shared_data%params%ljt65apon=.true. shared_data%params%napwid=75 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 - shared_data%params%naggressive=0 shared_data%params%n2pass=2 ! shared_data%params%nranera=8 !### ntrials=10000