diff --git a/commons.h b/commons.h index b5dd3f27b..302d66653 100644 --- a/commons.h +++ b/commons.h @@ -37,7 +37,8 @@ extern struct FortranCommon { int nranera; int naggressive; int nrobust; - int nspare[10]; + int nexp_decode; + int nspare[9]; char datetime[20]; char mycall[12]; char mygrid[6]; diff --git a/lib/decode65a.f90 b/lib/decode65a.f90 index 6457f2166..71f1b35b9 100644 --- a/lib/decode65a.f90 +++ b/lib/decode65a.f90 @@ -1,5 +1,5 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, & - naggressive,ndepth,sync2,a,dt,nsf,nhist,decoded) + naggressive,ndepth,nexp_decode,sync2,a,dt,nsf,nhist,decoded) ! Apply AFC corrections to a candidate JT65 signal, then decode it. @@ -73,8 +73,8 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, & call timer('sh_ffts ',1) call timer('dec65b ',0) - call decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nqd,nsf, & - nhist,decoded) + call decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nexp_decode, & + nqd,nsf,nhist,decoded) dt=dtbest !return new, improved estimate of dt call timer('dec65b ',1) diff --git a/lib/decode65b.f90 b/lib/decode65b.f90 index 1f3b25c8f..f33d07109 100644 --- a/lib/decode65b.f90 +++ b/lib/decode65b.f90 @@ -1,5 +1,5 @@ -subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nqd, & - nsf,nhist,decoded) +subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nexp_decode, & + nqd,nsf,nhist,decoded) real s2(66,126) real s3(64,63) @@ -23,8 +23,8 @@ subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nqd, & enddo nadd=mode65 - call extract(s3,nadd,nqd,ntrials,naggressive,ndepth,ncount,nhist, & - decoded,ltext,nsf) !Extract the message + call extract(s3,nadd,nqd,ntrials,naggressive,ndepth,nexp_decode, & + ncount,nhist,decoded,ltext,nsf) !Extract the message ! Suppress "birdie messages" and other garbage decodes: if(decoded(1:7).eq.'000AAA ') ncount=-1 diff --git a/lib/decoder.f90 b/lib/decoder.f90 index ebe05d779..2dce5af73 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -12,7 +12,7 @@ subroutine decoder(ss,id2,nfsample) common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, & ntol,kin,nzhsym,nsubmode,nagain,ndepth,ntxmode,nmode,minw,nclearave, & minsync,emedelay,dttol,nlist,listutc(10),n2pass,nranera,naggressive, & - nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid + nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid,hiscall,hisgrid common/tracer/limtrace,lu integer onlevel(0:10) common/tracer_priv/level,onlevel @@ -70,7 +70,8 @@ subroutine decoder(ss,id2,nfsample) nf2=nfb call timer('jt65a ',0) call jt65a(dd,npts65,newdat65,nutc,nf1,nf2,nfqso,ntol65,nsubmode, & - minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth,ndecoded) + minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth, & + nexp_decode,ndecoded) call timer('jt65a ',1) else if(nmode.eq.9 .or. (nmode.eq.(65+9) .and. ntxmode.eq.9)) then @@ -89,7 +90,8 @@ subroutine decoder(ss,id2,nfsample) nf2=nfb call timer('jt65a ',0) call jt65a(dd,npts65,newdat65,nutc,nf1,nf2,nfqso,ntol65,nsubmode, & - minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth,ndecoded) + minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth, & + nexp_decode,ndecoded) call timer('jt65a ',1) else call timer('decjt9 ',0) diff --git a/lib/exp_decode65.f90 b/lib/exp_decode65.f90 index 4ceeb109c..6de452c19 100644 --- a/lib/exp_decode65.f90 +++ b/lib/exp_decode65.f90 @@ -1,4 +1,5 @@ -subroutine exp_decode65(mrsym,mrprob,mr2sym,nhard,nsoft,nbest,correct) +subroutine exp_decode65(mrsym,mrprob,mr2sym,nexp_decode,nhard,nsoft,nbest, & + correct) use packjt use prog_args diff --git a/lib/extract.f90 b/lib/extract.f90 index 0484030b6..ff5f2e267 100644 --- a/lib/extract.f90 +++ b/lib/extract.f90 @@ -1,5 +1,5 @@ -subroutine extract(s3,nadd,nqd,ntrials,naggressive,ndepth,ncount,nhist, & - decoded,ltext,nsf) +subroutine extract(s3,nadd,nqd,ntrials,naggressive,ndepth,nexp_decode, & + ncount,nhist,decoded,ltext,nsf) ! Input: ! s3 64-point spectra for each of 63 data symbols @@ -74,7 +74,8 @@ subroutine extract(s3,nadd,nqd,ntrials,naggressive,ndepth,ncount,nhist, & if(nhard.lt.0 .and. ndepth.ge.5) then call timer('exp_deco',0) - call exp_decode65(mrsym,mrprob,mr2sym,nhard,nsoft,nbest,correct) + call exp_decode65(mrsym,mrprob,mr2sym,nexp_decode,nhard,nsoft,nbest, & + correct) if(nbest.gt.72+2*naggressive) then nhard=-1 endif diff --git a/lib/fillcom.f90 b/lib/fillcom.f90 index 3bc787ee8..4e9b017d5 100644 --- a/lib/fillcom.f90 +++ b/lib/fillcom.f90 @@ -6,7 +6,7 @@ subroutine fillcom(nutc0,ndepth0,nrxfreq,mode,tx9,flow,fsplit,fhigh) common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, & ntol,kin,nzhsym,nsubmode,nagain,ndepth,ntxmode,nmode,minw,nclearave, & minsync,emedelay,dttol,nlist,listutc(10),n2pass,nranera,naggressive, & - nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid + nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid,hiscall,hisgrid save nutc=nutc0 diff --git a/lib/jt65a.f90 b/lib/jt65a.f90 index ca365841b..24c998c97 100644 --- a/lib/jt65a.f90 +++ b/lib/jt65a.f90 @@ -1,5 +1,6 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, & - minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth,ndecoded) + minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth, & + nexp_decode,ndecoded) ! Process dd0() data to find and decode JT65 signals. @@ -91,7 +92,7 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, & if(ipass.eq.2) ntry65b=ntry65b + 1 call timer('decod65a',0) call decode65a(dd,npts,newdat,nqd,freq,nflip,mode65,nvec, & - naggressive,ndepth,sync2,a,dtx,nsf,nhist,decoded) + naggressive,ndepth,nexp_decode,sync2,a,dtx,nsf,nhist,decoded) call timer('decod65a',1) !write(*,*) icand,freq+a(1),dtx,sync1,sync2 if(decoded.eq.decoded0) cycle !Don't display dupes diff --git a/lib/jt9.f90 b/lib/jt9.f90 index f8c5c70b4..2316b0530 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -54,7 +54,7 @@ program jt9 ntr,mousefqso,newdat,npts8a,nfa,nfsplit,nfb,ntol,kin,nzhsym, & nsubmode,nagain,ndepth,ntxmode,nmode,minw,nclearave,minsync, & emedelay,dttol,nlist,listutc(10),n2pass,nranera,naggressive, & - nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid + nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid,hiscall,hisgrid common/tracer/limtrace,lu common/patience/npatience,nthreads diff --git a/lib/jt9c.f90 b/lib/jt9c.f90 index ee3c74067..f669264f8 100644 --- a/lib/jt9c.f90 +++ b/lib/jt9c.f90 @@ -9,7 +9,8 @@ subroutine jt9c(ss,savg,id2,nparams0) common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, & ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,minw,nclearave, & minsync,emedelay,dttol,nlist,listutc(10),n2pass,nranera, & - naggressive,nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid + naggressive,nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid, & + hiscall,hisgrid common/patience/npatience,nthreads equivalence (nparams,nutc) diff --git a/mainwindow.cpp b/mainwindow.cpp index 65268472a..1cd806bbe 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1697,6 +1697,12 @@ void MainWindow::decode() //decode() jt9com_.emedelay=0.0; if(m_bEME) jt9com_.emedelay=2.5; jt9com_.minSync=m_minSync; + jt9com_.nexp_decode=0; + if(m_config.MyDx()) jt9com_.nexp_decode += 1; + if(m_config.CQMyN()) jt9com_.nexp_decode += 2; + if(m_config.NDxG()) jt9com_.nexp_decode += 4; + if(m_config.NN()) jt9com_.nexp_decode += 8; + if(m_config.EMEonly()) jt9com_.nexp_decode += 16; strncpy(jt9com_.datetime, m_dateTime.toLatin1(), 20); strncpy(jt9com_.mycall, (m_config.my_callsign()+" ").toLatin1(),12);