From e59af9a78123c814ce6cd55f64a5d73685ff5261 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 5 May 2016 01:32:30 +0000 Subject: [PATCH] Strip out callback arguments that are constant and known to the callback implememtation git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6671 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/decode9w.f90 | 2 +- lib/decoder.f90 | 45 ++++++++++++++++++++------------------------- lib/jt4_decode.f90 | 15 +++++++-------- lib/jt65_decode.f90 | 19 ++++++------------- lib/jt65_test.f90 | 20 ++++++++------------ lib/jt9_decode.f90 | 11 +++++------ 6 files changed, 47 insertions(+), 65 deletions(-) diff --git a/lib/decode9w.f90 b/lib/decode9w.f90 index b601d8ce7..54c227222 100644 --- a/lib/decode9w.f90 +++ b/lib/decode9w.f90 @@ -1,4 +1,4 @@ -subroutine decode9w(nutc,nfqso,ntol,nsubmode,ss,id2,sync,nsnr,xdt1,f0,decoded) +subroutine decode9w(nfqso,ntol,nsubmode,ss,id2,sync,nsnr,xdt1,f0,decoded) ! Decode a weak signal in a wide/slow JT9 submode. diff --git a/lib/decoder.f90 b/lib/decoder.f90 index bf22b643f..cbe632afd 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -95,7 +95,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) else if(params%nmode.eq.9 .or. (params%nmode.eq.(65+9) .and. params%ntxmode.eq.9)) then ! We're in JT9 mode, or should do JT9 first call timer('decjt9 ',0) - call my_jt9%decode(jt9_decoded,ss,id2,params%nutc,params%nfqso, & + call my_jt9%decode(jt9_decoded,ss,id2,params%nfqso, & newdat9,params%npts8,params%nfa,params%nfsplit,params%nfb, & params%ntol,params%nzhsym,logical(params%nagain),params%ndepth, & params%nmode,params%nsubmode,params%nexp_decode) @@ -118,7 +118,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('jt65a ',1) else call timer('decjt9 ',0) - call my_jt9%decode(jt9_decoded,ss,id2,params%nutc,params%nfqso, & + call my_jt9%decode(jt9_decoded,ss,id2,params%nfqso, & newdat9,params%npts8,params%nfa,params%nfsplit,params%nfb, & params%ntol,params%nzhsym,logical(params%nagain), & params%ndepth,params%nmode,params%nsubmode,params%nexp_decode) @@ -140,11 +140,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample) contains - subroutine jt4_decoded(this,utc,snr,dt,freq,have_sync,sync,is_deep, & + subroutine jt4_decoded(this,snr,dt,freq,have_sync,sync,is_deep, & decoded,qual,ich,is_average,ave) implicit none class(jt4_decoder), intent(inout) :: this - integer, intent(in) :: utc integer, intent(in) :: snr real, intent(in) :: dt integer, intent(in) :: freq @@ -163,18 +162,18 @@ contains if (int(qual).gt.0) then write(cqual, '(i2)') int(qual) if (ave.gt.0) then - write(*,1000) utc,snr,dt,freq,sync,decoded,cqual, & + write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual, & char(ichar('A')+ich-1), ave else - write(*,1000) utc,snr,dt,freq,sync,decoded,cqual, & + write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual, & char(ichar('A')+ich-1) end if else - write(*,1000) utc,snr,dt,freq,sync,decoded,' *', & + write(*,1000) params%nutc,snr,dt,freq,sync,decoded,' *', & char(ichar('A')+ich-1) end if else - write(*,1000) utc,snr,dt,freq + write(*,1000) params%nutc,snr,dt,freq end if 1000 format(i4.4,i4,f5.2,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3) select type(this) @@ -202,14 +201,13 @@ contains 1000 format(a1,i5.4,f6.1,f6.2,i6,1x,a1) end subroutine jt4_average - subroutine jt65_decoded(this,utc,sync,snr,dt,freq,drift,nflip,width, & - decoded0,ft,qual,nsmo,nsum,minsync,nsubmode,naggressive,single_decode) + subroutine jt65_decoded(this,sync,snr,dt,freq,drift,nflip,width, & + decoded0,ft,qual,nsmo,nsum,minsync) use jt65_decode implicit none class(jt65_decoder), intent(inout) :: this - integer, intent(in) :: utc real, intent(in) :: sync integer, intent(in) :: snr real, intent(in) :: dt @@ -223,9 +221,6 @@ contains integer, intent(in) :: nsmo integer, intent(in) :: nsum integer, intent(in) :: minsync - integer, intent(in) :: nsubmode - integer, intent(in) :: naggressive - logical, intent(in) :: single_decode integer i,n character*5 ctail,decoded*22,csync*2,fmt*33 @@ -236,21 +231,22 @@ contains ! write(*,3301) ft,qual,nsmo,nsum,minsync,naggressive,sync !### !3301 format('decoded.f90:',6i3,f5.1) !### + if (iand(params%nexp_decode,32).ne.0) print *, 'OK' decoded=decoded0 fmt='(i4.4,i4,f5.1,i5,1x,a1,1x,a22,a5)' - if(single_decode) fmt='(i4.4,i4,f5.1,i5,1x,a2,1x,a22,a5)' + if(iand(params%nexp_decode,32).ne.0) fmt='(i4.4,i4,f5.1,i5,1x,a2,1x,a22,a5)' if(ft.eq.0 .and. minsync.ge.0 .and. int(sync).lt.minsync) then - write(*,fmt) utc,snr,dt,freq + write(*,fmt) params%nutc,snr,dt,freq else ctail=' ' - if(naggressive.gt.0 .and. ft.gt.0) then + if(params%naggressive.gt.0 .and. ft.gt.0) then ctail(1:1)='d' if(ft.eq.1) ctail(1:1)='f' n=max(2,nsum+1) n=min(n,36) ctail(2:2)=c(n:n) n=min(nsmo+1,36) - if(nsubmode.gt.0) ctail(3:3)=c(n:n) + if(params%nsubmode.gt.0) ctail(3:3)=c(n:n) if(ft.eq.2) then ctail(5:5)='*' if(qual.le.9) ctail(5:5)=char(48+qual) @@ -270,10 +266,10 @@ contains endif endif endif - write(*,fmt) utc,snr,dt,freq,csync,decoded,ctail + write(*,fmt) params%nutc,snr,dt,freq,csync,decoded,ctail endif - write(13,1012) utc,nint(sync),snr,dt,float(freq),drift,decoded,ft,nsum,nsmo + write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift,decoded,ft,nsum,nsmo 1012 format(i4.4,i4,i5,f6.2,f8.0,i4,3x,a22,' JT65',3i3) call flush(6) @@ -284,12 +280,11 @@ contains end select end subroutine jt65_decoded - subroutine jt9_decoded (this, utc, sync, snr, dt, freq, drift, decoded) + subroutine jt9_decoded (this, sync, snr, dt, freq, drift, decoded) use jt9_decode implicit none class(jt9_decoder), intent(inout) :: this - integer, intent(in) :: utc real, intent(in) :: sync integer, intent(in) :: snr real, intent(in) :: dt @@ -298,9 +293,9 @@ contains character(len=22), intent(in) :: decoded !$omp critical(decode_results) - write(*,1000) utc,snr,dt,nint(freq),decoded -1000 format(i4.4,i4,f5.1,i5,1x,'@',1x,a22) - write(13,1002) utc,nint(sync),snr,dt,freq,drift,decoded + write(*,1000) params%nutc,snr,dt,nint(freq),decoded +1000 format(i4.4,i4,f5.1,i5,1x,'@ ',1x,a22) + write(13,1002) params%nutc,nint(sync),snr,dt,freq,drift,decoded 1002 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT9') call flush(6) !$omp end critical(decode_results) diff --git a/lib/jt4_decode.f90 b/lib/jt4_decode.f90 index 85511ea76..3696f1294 100644 --- a/lib/jt4_decode.f90 +++ b/lib/jt4_decode.f90 @@ -11,12 +11,11 @@ module jt4_decode ! Callback function to be called with each decode ! abstract interface - subroutine jt4_decode_callback (this, utc, snr, dt, freq, have_sync, & + subroutine jt4_decode_callback (this, snr, dt, freq, have_sync, & sync, is_deep, decoded, qual, ich, is_average, ave) import jt4_decoder implicit none class(jt4_decoder), intent(inout) :: this - integer, intent(in) :: utc integer, intent(in) :: snr real, intent(in) :: dt integer, intent(in) :: freq @@ -187,7 +186,7 @@ contains nsnr=nint(snrx) if(sync.lt.syncmin) then if (associated (this%decode_callback)) then - call this%decode_callback(nutc,nsnr,dtxz,nfreqz,.false.,csync, & + call this%decode_callback(nsnr,dtxz,nfreqz,.false.,csync, & .false.,decoded,0.,ich,.false.,0) end if go to 990 @@ -219,7 +218,7 @@ contains if(nfano.gt.0) then ! Fano succeeded: report the message and return FANO OK if (associated (this%decode_callback)) then - call this%decode_callback(nutc,nsnr,dtx,nfreq,.true.,csync, & + call this%decode_callback(nsnr,dtx,nfreq,.true.,csync, & .false.,decoded,0.,ich,.false.,0) end if nsave=0 @@ -255,7 +254,7 @@ contains if(nfanoave.gt.0) then ! Fano succeeded: report the message AVG FANO OK if (associated (this%decode_callback)) then - call this%decode_callback(nutc,nsnr,dtx,nfreq,.true.,csync, & + call this%decode_callback(nsnr,dtx,nfreq,.true.,csync, & .false.,avemsg,0.,ich,.true.,nfanoave) end if prtavg=.true. @@ -279,10 +278,10 @@ contains qual=qbest if (associated (this%decode_callback)) then if(int(qual).ge.nq1) then - call this%decode_callback(nutc,nsnr,dtx,nfreqz,.true.,csync,.true., & + call this%decode_callback(nsnr,dtx,nfreqz,.true.,csync,.true., & deepmsg,qual,ich,.false.,0) else - call this%decode_callback(nutc,nsnr,dtxz,nfreqz,.true.,csync, & + call this%decode_callback(nsnr,dtxz,nfreqz,.true.,csync, & .false.,blank,0.,ich,.false.,0) endif end if @@ -294,7 +293,7 @@ contains qave=qabest if (associated (this%decode_callback)) then if(int(qave).ge.nq1) then - call this%decode_callback(nutc,nsnr,dtx,nfreq,.true.,csync,.true., & + call this%decode_callback(nsnr,dtx,nfreq,.true.,csync,.true., & deepave,qave,ich,.true.,ndeepave) endif end if diff --git a/lib/jt65_decode.f90 b/lib/jt65_decode.f90 index 9596ccfa2..82f257600 100644 --- a/lib/jt65_decode.f90 +++ b/lib/jt65_decode.f90 @@ -12,14 +12,12 @@ module jt65_decode ! Callback function to be called with each decode ! abstract interface - subroutine jt65_decode_callback(this,utc,sync,snr,dt,freq,drift, & - nflip,width,decoded,ft,qual,nsmo,nsum,minsync,nsubmode, & - naggressive,single_decode) + subroutine jt65_decode_callback(this,sync,snr,dt,freq,drift, & + nflip,width,decoded,ft,qual,nsmo,nsum,minsync) import jt65_decoder implicit none class(jt65_decoder), intent(inout) :: this - integer, intent(in) :: utc real, intent(in) :: sync integer, intent(in) :: snr real, intent(in) :: dt @@ -33,9 +31,6 @@ module jt65_decode integer, intent(in) :: nsmo integer, intent(in) :: nsum integer, intent(in) :: minsync - integer, intent(in) :: nsubmode - integer, intent(in) :: naggressive - logical, intent(in) :: single_decode end subroutine jt65_decode_callback end interface @@ -249,9 +244,8 @@ contains nqave=qave if (associated(this%callback) .and. nsum.ge.2) then - call this%callback(nutc,sync1,nsnr,dtx-1.0,nfreq,ndrift, & - nflip,width,avemsg,nftt,nqave,nsmo,nsum,minsync, & - nsubmode,naggressive,single_decode) + call this%callback(sync1,nsnr,dtx-1.0,nfreq,ndrift, & + nflip,width,avemsg,nftt,nqave,nsmo,nsum,minsync) prtavg=.true. cycle end if @@ -301,9 +295,8 @@ contains dec(ndecoded)%decoded=decoded nqual=min(qual,9999.0) if (associated(this%callback)) then - call this%callback(nutc,sync1,nsnr,dtx-1.0,nfreq,ndrift, & - nflip,width,decoded,nft,nqual,nsmo,nsum,minsync, & - nsubmode,naggressive,single_decode) + call this%callback(sync1,nsnr,dtx-1.0,nfreq,ndrift, & + nflip,width,decoded,nft,nqual,nsmo,nsum,minsync) end if endif decoded0=decoded diff --git a/lib/jt65_test.f90 b/lib/jt65_test.f90 index bdfcf896c..914824247 100644 --- a/lib/jt65_test.f90 +++ b/lib/jt65_test.f90 @@ -37,13 +37,12 @@ contains call timer('jt65a ',1) end subroutine test - subroutine my_callback (this,utc,sync,snr,dt,freq,drift,nflip,width, & - decoded,ft,qual,smo,sum,minsync,submode,aggression,single_decode) + subroutine my_callback (this,sync,snr,dt,freq,drift,nflip,width, & + decoded,ft,qual,smo,sum,minsync) use jt65_decode implicit none class(jt65_decoder), intent(inout) :: this - integer, intent(in) :: utc real, intent(in) :: sync integer, intent(in) :: snr real, intent(in) :: dt @@ -57,9 +56,6 @@ contains integer, intent(in) :: smo integer, intent(in) :: sum integer, intent(in) :: minsync - integer, intent(in) :: submode - integer, intent(in) :: aggression - logical, intent(in) :: single_decode integer nwidth real t @@ -68,16 +64,16 @@ contains nwidth=max(nint(sqrt(t)),2) !### deal with nflip here! ### !### also single_decode, csync, etc... ### - write(*,1010) utc,snr,dt,freq,decoded -1010 format(i4.4,i4,f5.1,i5,1x,'#',1x,a22) - write(13,1012) utc,nint(sync),snr,dt,freq,drift,nwidth, & + write(*,1010) snr,dt,freq,decoded +1010 format(i4,f5.1,i5,1x,'#',1x,a22) + write(13,1012) nint(sync),snr,dt,freq,drift,nwidth, & decoded,ft,sum,smo -1012 format(i4.4,i4,i5,f6.2,i5,i4,i3,1x,a22,' JT65',3i3) +1012 format(i4,i5,f6.2,i5,i4,i3,1x,a22,' JT65',3i3) nft=ft call flush(6) -! write(79,3001) utc,sync,snr,dt,freq,candidates, & +! write(79,3001) sync,snr,dt,freq,candidates, & ! hard_min,total_min,rtt,tries,ft,qual,decoded -!3001 format(i4.4,f5.1,i4,f5.1,i5,i6,i3,i4,f6.3,i8,i2,i3,1x,a22) +!3001 format(f5.1,i4,f5.1,i5,i6,i3,i4,f6.3,i8,i2,i3,1x,a22) end subroutine my_callback diff --git a/lib/jt9_decode.f90 b/lib/jt9_decode.f90 index 615aa317a..d6e2ece58 100644 --- a/lib/jt9_decode.f90 +++ b/lib/jt9_decode.f90 @@ -7,12 +7,11 @@ module jt9_decode end type jt9_decoder abstract interface - subroutine jt9_decode_callback (this, utc, sync, snr, dt, freq, drift, & + subroutine jt9_decode_callback (this, sync, snr, dt, freq, drift, & decoded) import jt9_decoder implicit none class(jt9_decoder), intent(inout) :: this - integer, intent(in) :: utc real, intent(in) :: sync integer, intent(in) :: snr real, intent(in) :: dt @@ -24,7 +23,7 @@ module jt9_decode contains - subroutine decode(this,callback,ss,id2,nutc,nfqso,newdat,npts8,nfa, & + subroutine decode(this,callback,ss,id2,nfqso,newdat,npts8,nfa, & nfsplit,nfb,ntol,nzhsym,nagain,ndepth,nmode,nsubmode,nexp_decode) use timer_module, only: timer @@ -45,10 +44,10 @@ contains this%callback => callback if(nmode.eq.9 .and. nsubmode.ge.1) then - call decode9w(nutc,nfqso,ntol,nsubmode,ss,id2,sync,nsnr,xdt,freq,msg) + call decode9w(nfqso,ntol,nsubmode,ss,id2,sync,nsnr,xdt,freq,msg) if (associated(this%callback)) then ndrift=0 - call this%callback(nutc,sync,nsnr,xdt,freq,ndrift,msg) + call this%callback(sync,nsnr,xdt,freq,ndrift,msg) end if go to 999 endif @@ -152,7 +151,7 @@ contains if(msg.ne.' ') then numfano=numfano+1 if (associated(this%callback)) then - call this%callback(nutc,sync,nsnr,xdt,freq,ndrift,msg) + call this%callback(sync,nsnr,xdt,freq,ndrift,msg) end if iaa=max(1,i-1) ibb=min(NSMAX,i+22)