mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	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
This commit is contained in:
		
							parent
							
								
									7c2ededab6
								
							
						
					
					
						commit
						e59af9a781
					
				@ -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.
 | 
					! Decode a weak signal in a wide/slow JT9 submode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
					  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
 | 
					     ! We're in JT9 mode, or should do JT9 first
 | 
				
			||||||
     call timer('decjt9  ',0)
 | 
					     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,       &
 | 
					          newdat9,params%npts8,params%nfa,params%nfsplit,params%nfb,       &
 | 
				
			||||||
          params%ntol,params%nzhsym,logical(params%nagain),params%ndepth,  &
 | 
					          params%ntol,params%nzhsym,logical(params%nagain),params%ndepth,  &
 | 
				
			||||||
          params%nmode,params%nsubmode,params%nexp_decode)
 | 
					          params%nmode,params%nsubmode,params%nexp_decode)
 | 
				
			||||||
@ -118,7 +118,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
 | 
				
			|||||||
        call timer('jt65a   ',1)
 | 
					        call timer('jt65a   ',1)
 | 
				
			||||||
     else
 | 
					     else
 | 
				
			||||||
        call timer('decjt9  ',0)
 | 
					        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,    &
 | 
					             newdat9,params%npts8,params%nfa,params%nfsplit,params%nfb,    &
 | 
				
			||||||
             params%ntol,params%nzhsym,logical(params%nagain),             &
 | 
					             params%ntol,params%nzhsym,logical(params%nagain),             &
 | 
				
			||||||
             params%ndepth,params%nmode,params%nsubmode,params%nexp_decode)
 | 
					             params%ndepth,params%nmode,params%nsubmode,params%nexp_decode)
 | 
				
			||||||
@ -140,11 +140,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
contains
 | 
					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)
 | 
					       decoded,qual,ich,is_average,ave)
 | 
				
			||||||
    implicit none
 | 
					    implicit none
 | 
				
			||||||
    class(jt4_decoder), intent(inout) :: this
 | 
					    class(jt4_decoder), intent(inout) :: this
 | 
				
			||||||
    integer, intent(in) :: utc
 | 
					 | 
				
			||||||
    integer, intent(in) :: snr
 | 
					    integer, intent(in) :: snr
 | 
				
			||||||
    real, intent(in) :: dt
 | 
					    real, intent(in) :: dt
 | 
				
			||||||
    integer, intent(in) :: freq
 | 
					    integer, intent(in) :: freq
 | 
				
			||||||
@ -163,18 +162,18 @@ contains
 | 
				
			|||||||
       if (int(qual).gt.0) then
 | 
					       if (int(qual).gt.0) then
 | 
				
			||||||
          write(cqual, '(i2)') int(qual)
 | 
					          write(cqual, '(i2)') int(qual)
 | 
				
			||||||
          if (ave.gt.0) then
 | 
					          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
 | 
					                  char(ichar('A')+ich-1), ave
 | 
				
			||||||
          else
 | 
					          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)
 | 
					                  char(ichar('A')+ich-1)
 | 
				
			||||||
          end if
 | 
					          end if
 | 
				
			||||||
       else
 | 
					       else
 | 
				
			||||||
          write(*,1000) utc,snr,dt,freq,sync,decoded,' *',               &
 | 
					          write(*,1000) params%nutc,snr,dt,freq,sync,decoded,' *',               &
 | 
				
			||||||
               char(ichar('A')+ich-1)
 | 
					               char(ichar('A')+ich-1)
 | 
				
			||||||
       end if
 | 
					       end if
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
       write(*,1000) utc,snr,dt,freq
 | 
					       write(*,1000) params%nutc,snr,dt,freq
 | 
				
			||||||
    end if
 | 
					    end if
 | 
				
			||||||
1000 format(i4.4,i4,f5.2,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3)
 | 
					1000 format(i4.4,i4,f5.2,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3)
 | 
				
			||||||
    select type(this)
 | 
					    select type(this)
 | 
				
			||||||
@ -202,14 +201,13 @@ contains
 | 
				
			|||||||
1000 format(a1,i5.4,f6.1,f6.2,i6,1x,a1)
 | 
					1000 format(a1,i5.4,f6.1,f6.2,i6,1x,a1)
 | 
				
			||||||
  end subroutine jt4_average
 | 
					  end subroutine jt4_average
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  subroutine jt65_decoded(this,utc,sync,snr,dt,freq,drift,nflip,width,     &
 | 
					  subroutine jt65_decoded(this,sync,snr,dt,freq,drift,nflip,width,     &
 | 
				
			||||||
       decoded0,ft,qual,nsmo,nsum,minsync,nsubmode,naggressive,single_decode)
 | 
					       decoded0,ft,qual,nsmo,nsum,minsync)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    use jt65_decode
 | 
					    use jt65_decode
 | 
				
			||||||
    implicit none
 | 
					    implicit none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class(jt65_decoder), intent(inout) :: this
 | 
					    class(jt65_decoder), intent(inout) :: this
 | 
				
			||||||
    integer, intent(in) :: utc
 | 
					 | 
				
			||||||
    real, intent(in) :: sync
 | 
					    real, intent(in) :: sync
 | 
				
			||||||
    integer, intent(in) :: snr
 | 
					    integer, intent(in) :: snr
 | 
				
			||||||
    real, intent(in) :: dt
 | 
					    real, intent(in) :: dt
 | 
				
			||||||
@ -223,9 +221,6 @@ contains
 | 
				
			|||||||
    integer, intent(in) :: nsmo
 | 
					    integer, intent(in) :: nsmo
 | 
				
			||||||
    integer, intent(in) :: nsum
 | 
					    integer, intent(in) :: nsum
 | 
				
			||||||
    integer, intent(in) :: minsync
 | 
					    integer, intent(in) :: minsync
 | 
				
			||||||
    integer, intent(in) :: nsubmode
 | 
					 | 
				
			||||||
    integer, intent(in) :: naggressive
 | 
					 | 
				
			||||||
    logical, intent(in) :: single_decode
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    integer i,n
 | 
					    integer i,n
 | 
				
			||||||
    character*5 ctail,decoded*22,csync*2,fmt*33
 | 
					    character*5 ctail,decoded*22,csync*2,fmt*33
 | 
				
			||||||
@ -236,21 +231,22 @@ contains
 | 
				
			|||||||
!    write(*,3301) ft,qual,nsmo,nsum,minsync,naggressive,sync    !###
 | 
					!    write(*,3301) ft,qual,nsmo,nsum,minsync,naggressive,sync    !###
 | 
				
			||||||
!3301 format('decoded.f90:',6i3,f5.1)        !###
 | 
					!3301 format('decoded.f90:',6i3,f5.1)        !###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (iand(params%nexp_decode,32).ne.0) print *, 'OK'
 | 
				
			||||||
    decoded=decoded0
 | 
					    decoded=decoded0
 | 
				
			||||||
    fmt='(i4.4,i4,f5.1,i5,1x,a1,1x,a22,a5)'
 | 
					    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
 | 
					    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
 | 
					    else
 | 
				
			||||||
       ctail='     '
 | 
					       ctail='     '
 | 
				
			||||||
       if(naggressive.gt.0 .and. ft.gt.0) then
 | 
					       if(params%naggressive.gt.0 .and. ft.gt.0) then
 | 
				
			||||||
          ctail(1:1)='d'
 | 
					          ctail(1:1)='d'
 | 
				
			||||||
          if(ft.eq.1) ctail(1:1)='f'
 | 
					          if(ft.eq.1) ctail(1:1)='f'
 | 
				
			||||||
          n=max(2,nsum+1)
 | 
					          n=max(2,nsum+1)
 | 
				
			||||||
          n=min(n,36)
 | 
					          n=min(n,36)
 | 
				
			||||||
          ctail(2:2)=c(n:n)
 | 
					          ctail(2:2)=c(n:n)
 | 
				
			||||||
          n=min(nsmo+1,36)
 | 
					          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
 | 
					          if(ft.eq.2) then
 | 
				
			||||||
             ctail(5:5)='*'
 | 
					             ctail(5:5)='*'
 | 
				
			||||||
             if(qual.le.9) ctail(5:5)=char(48+qual)
 | 
					             if(qual.le.9) ctail(5:5)=char(48+qual)
 | 
				
			||||||
@ -270,10 +266,10 @@ contains
 | 
				
			|||||||
             endif
 | 
					             endif
 | 
				
			||||||
          endif
 | 
					          endif
 | 
				
			||||||
       endif
 | 
					       endif
 | 
				
			||||||
       write(*,fmt) utc,snr,dt,freq,csync,decoded,ctail
 | 
					       write(*,fmt) params%nutc,snr,dt,freq,csync,decoded,ctail
 | 
				
			||||||
    endif
 | 
					    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)
 | 
					1012 format(i4.4,i4,i5,f6.2,f8.0,i4,3x,a22,' JT65',3i3)
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -284,12 +280,11 @@ contains
 | 
				
			|||||||
    end select
 | 
					    end select
 | 
				
			||||||
  end subroutine jt65_decoded
 | 
					  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
 | 
					    use jt9_decode
 | 
				
			||||||
    implicit none
 | 
					    implicit none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class(jt9_decoder), intent(inout) :: this
 | 
					    class(jt9_decoder), intent(inout) :: this
 | 
				
			||||||
    integer, intent(in) :: utc
 | 
					 | 
				
			||||||
    real, intent(in) :: sync
 | 
					    real, intent(in) :: sync
 | 
				
			||||||
    integer, intent(in) :: snr
 | 
					    integer, intent(in) :: snr
 | 
				
			||||||
    real, intent(in) :: dt
 | 
					    real, intent(in) :: dt
 | 
				
			||||||
@ -298,9 +293,9 @@ contains
 | 
				
			|||||||
    character(len=22), intent(in) :: decoded
 | 
					    character(len=22), intent(in) :: decoded
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    !$omp critical(decode_results)
 | 
					    !$omp critical(decode_results)
 | 
				
			||||||
    write(*,1000) utc,snr,dt,nint(freq),decoded
 | 
					    write(*,1000) params%nutc,snr,dt,nint(freq),decoded
 | 
				
			||||||
1000 format(i4.4,i4,f5.1,i5,1x,'@',1x,a22)
 | 
					1000 format(i4.4,i4,f5.1,i5,1x,'@ ',1x,a22)
 | 
				
			||||||
    write(13,1002) utc,nint(sync),snr,dt,freq,drift,decoded
 | 
					    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')
 | 
					1002 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT9')
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
    !$omp end critical(decode_results)
 | 
					    !$omp end critical(decode_results)
 | 
				
			||||||
 | 
				
			|||||||
@ -11,12 +11,11 @@ module jt4_decode
 | 
				
			|||||||
  ! Callback function to be called with each decode
 | 
					  ! Callback function to be called with each decode
 | 
				
			||||||
  !
 | 
					  !
 | 
				
			||||||
  abstract interface
 | 
					  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)
 | 
					          sync, is_deep, decoded, qual, ich, is_average, ave)
 | 
				
			||||||
       import jt4_decoder
 | 
					       import jt4_decoder
 | 
				
			||||||
       implicit none
 | 
					       implicit none
 | 
				
			||||||
       class(jt4_decoder), intent(inout) :: this
 | 
					       class(jt4_decoder), intent(inout) :: this
 | 
				
			||||||
       integer, intent(in) :: utc
 | 
					 | 
				
			||||||
       integer, intent(in) :: snr
 | 
					       integer, intent(in) :: snr
 | 
				
			||||||
       real, intent(in) :: dt
 | 
					       real, intent(in) :: dt
 | 
				
			||||||
       integer, intent(in) :: freq
 | 
					       integer, intent(in) :: freq
 | 
				
			||||||
@ -187,7 +186,7 @@ contains
 | 
				
			|||||||
    nsnr=nint(snrx)
 | 
					    nsnr=nint(snrx)
 | 
				
			||||||
    if(sync.lt.syncmin) then
 | 
					    if(sync.lt.syncmin) then
 | 
				
			||||||
       if (associated (this%decode_callback)) 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)
 | 
					               .false.,decoded,0.,ich,.false.,0)
 | 
				
			||||||
       end if
 | 
					       end if
 | 
				
			||||||
       go to 990
 | 
					       go to 990
 | 
				
			||||||
@ -219,7 +218,7 @@ contains
 | 
				
			|||||||
       if(nfano.gt.0) then
 | 
					       if(nfano.gt.0) then
 | 
				
			||||||
          ! Fano succeeded: report the message and return               FANO OK
 | 
					          ! Fano succeeded: report the message and return               FANO OK
 | 
				
			||||||
          if (associated (this%decode_callback)) then
 | 
					          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)
 | 
					                  .false.,decoded,0.,ich,.false.,0)
 | 
				
			||||||
          end if
 | 
					          end if
 | 
				
			||||||
          nsave=0
 | 
					          nsave=0
 | 
				
			||||||
@ -255,7 +254,7 @@ contains
 | 
				
			|||||||
          if(nfanoave.gt.0) then
 | 
					          if(nfanoave.gt.0) then
 | 
				
			||||||
             ! Fano succeeded: report the message                   AVG FANO OK
 | 
					             ! Fano succeeded: report the message                   AVG FANO OK
 | 
				
			||||||
             if (associated (this%decode_callback)) then
 | 
					             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)
 | 
					                     .false.,avemsg,0.,ich,.true.,nfanoave)
 | 
				
			||||||
             end if
 | 
					             end if
 | 
				
			||||||
             prtavg=.true.
 | 
					             prtavg=.true.
 | 
				
			||||||
@ -279,10 +278,10 @@ contains
 | 
				
			|||||||
    qual=qbest
 | 
					    qual=qbest
 | 
				
			||||||
    if (associated (this%decode_callback)) then
 | 
					    if (associated (this%decode_callback)) then
 | 
				
			||||||
       if(int(qual).ge.nq1) 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)
 | 
					               deepmsg,qual,ich,.false.,0)
 | 
				
			||||||
       else
 | 
					       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)
 | 
					               .false.,blank,0.,ich,.false.,0)
 | 
				
			||||||
       endif
 | 
					       endif
 | 
				
			||||||
    end if
 | 
					    end if
 | 
				
			||||||
@ -294,7 +293,7 @@ contains
 | 
				
			|||||||
    qave=qabest
 | 
					    qave=qabest
 | 
				
			||||||
    if (associated (this%decode_callback)) then
 | 
					    if (associated (this%decode_callback)) then
 | 
				
			||||||
       if(int(qave).ge.nq1) 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)
 | 
					               deepave,qave,ich,.true.,ndeepave)
 | 
				
			||||||
       endif
 | 
					       endif
 | 
				
			||||||
    end if
 | 
					    end if
 | 
				
			||||||
 | 
				
			|||||||
@ -12,14 +12,12 @@ module jt65_decode
 | 
				
			|||||||
  ! Callback function to be called with each decode
 | 
					  ! Callback function to be called with each decode
 | 
				
			||||||
  !
 | 
					  !
 | 
				
			||||||
  abstract interface
 | 
					  abstract interface
 | 
				
			||||||
     subroutine jt65_decode_callback(this,utc,sync,snr,dt,freq,drift,     &
 | 
					     subroutine jt65_decode_callback(this,sync,snr,dt,freq,drift,     &
 | 
				
			||||||
          nflip,width,decoded,ft,qual,nsmo,nsum,minsync,nsubmode,         &
 | 
					          nflip,width,decoded,ft,qual,nsmo,nsum,minsync)
 | 
				
			||||||
          naggressive,single_decode)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
       import jt65_decoder
 | 
					       import jt65_decoder
 | 
				
			||||||
       implicit none
 | 
					       implicit none
 | 
				
			||||||
       class(jt65_decoder), intent(inout) :: this
 | 
					       class(jt65_decoder), intent(inout) :: this
 | 
				
			||||||
       integer, intent(in) :: utc
 | 
					 | 
				
			||||||
       real, intent(in) :: sync
 | 
					       real, intent(in) :: sync
 | 
				
			||||||
       integer, intent(in) :: snr
 | 
					       integer, intent(in) :: snr
 | 
				
			||||||
       real, intent(in) :: dt
 | 
					       real, intent(in) :: dt
 | 
				
			||||||
@ -33,9 +31,6 @@ module jt65_decode
 | 
				
			|||||||
       integer, intent(in) :: nsmo
 | 
					       integer, intent(in) :: nsmo
 | 
				
			||||||
       integer, intent(in) :: nsum
 | 
					       integer, intent(in) :: nsum
 | 
				
			||||||
       integer, intent(in) :: minsync
 | 
					       integer, intent(in) :: minsync
 | 
				
			||||||
       integer, intent(in) :: nsubmode
 | 
					 | 
				
			||||||
       integer, intent(in) :: naggressive
 | 
					 | 
				
			||||||
       logical, intent(in) :: single_decode
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
     end subroutine jt65_decode_callback
 | 
					     end subroutine jt65_decode_callback
 | 
				
			||||||
  end interface
 | 
					  end interface
 | 
				
			||||||
@ -249,9 +244,8 @@ contains
 | 
				
			|||||||
                nqave=qave
 | 
					                nqave=qave
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (associated(this%callback) .and. nsum.ge.2) then
 | 
					                if (associated(this%callback) .and. nsum.ge.2) then
 | 
				
			||||||
                   call this%callback(nutc,sync1,nsnr,dtx-1.0,nfreq,ndrift,  &
 | 
					                   call this%callback(sync1,nsnr,dtx-1.0,nfreq,ndrift,  &
 | 
				
			||||||
                        nflip,width,avemsg,nftt,nqave,nsmo,nsum,minsync,     &
 | 
					                        nflip,width,avemsg,nftt,nqave,nsmo,nsum,minsync)
 | 
				
			||||||
                        nsubmode,naggressive,single_decode)
 | 
					 | 
				
			||||||
                   prtavg=.true.
 | 
					                   prtavg=.true.
 | 
				
			||||||
                   cycle
 | 
					                   cycle
 | 
				
			||||||
                end if
 | 
					                end if
 | 
				
			||||||
@ -301,9 +295,8 @@ contains
 | 
				
			|||||||
                dec(ndecoded)%decoded=decoded
 | 
					                dec(ndecoded)%decoded=decoded
 | 
				
			||||||
                nqual=min(qual,9999.0)
 | 
					                nqual=min(qual,9999.0)
 | 
				
			||||||
                if (associated(this%callback)) then
 | 
					                if (associated(this%callback)) then
 | 
				
			||||||
                   call this%callback(nutc,sync1,nsnr,dtx-1.0,nfreq,ndrift,  &
 | 
					                   call this%callback(sync1,nsnr,dtx-1.0,nfreq,ndrift,  &
 | 
				
			||||||
                        nflip,width,decoded,nft,nqual,nsmo,nsum,minsync,     &
 | 
					                        nflip,width,decoded,nft,nqual,nsmo,nsum,minsync)
 | 
				
			||||||
                        nsubmode,naggressive,single_decode)
 | 
					 | 
				
			||||||
                end if
 | 
					                end if
 | 
				
			||||||
             endif
 | 
					             endif
 | 
				
			||||||
             decoded0=decoded
 | 
					             decoded0=decoded
 | 
				
			||||||
 | 
				
			|||||||
@ -37,13 +37,12 @@ contains
 | 
				
			|||||||
    call timer('jt65a   ',1)
 | 
					    call timer('jt65a   ',1)
 | 
				
			||||||
  end subroutine test
 | 
					  end subroutine test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  subroutine my_callback (this,utc,sync,snr,dt,freq,drift,nflip,width,     &
 | 
					  subroutine my_callback (this,sync,snr,dt,freq,drift,nflip,width,     &
 | 
				
			||||||
       decoded,ft,qual,smo,sum,minsync,submode,aggression,single_decode)
 | 
					       decoded,ft,qual,smo,sum,minsync)
 | 
				
			||||||
    use jt65_decode
 | 
					    use jt65_decode
 | 
				
			||||||
    implicit none
 | 
					    implicit none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class(jt65_decoder), intent(inout) :: this
 | 
					    class(jt65_decoder), intent(inout) :: this
 | 
				
			||||||
    integer, intent(in) :: utc
 | 
					 | 
				
			||||||
    real, intent(in) :: sync
 | 
					    real, intent(in) :: sync
 | 
				
			||||||
    integer, intent(in) :: snr
 | 
					    integer, intent(in) :: snr
 | 
				
			||||||
    real, intent(in) :: dt
 | 
					    real, intent(in) :: dt
 | 
				
			||||||
@ -57,9 +56,6 @@ contains
 | 
				
			|||||||
    integer, intent(in) :: smo
 | 
					    integer, intent(in) :: smo
 | 
				
			||||||
    integer, intent(in) :: sum
 | 
					    integer, intent(in) :: sum
 | 
				
			||||||
    integer, intent(in) :: minsync
 | 
					    integer, intent(in) :: minsync
 | 
				
			||||||
    integer, intent(in) :: submode
 | 
					 | 
				
			||||||
    integer, intent(in) :: aggression
 | 
					 | 
				
			||||||
    logical, intent(in) :: single_decode
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    integer nwidth
 | 
					    integer nwidth
 | 
				
			||||||
    real t
 | 
					    real t
 | 
				
			||||||
@ -68,16 +64,16 @@ contains
 | 
				
			|||||||
    nwidth=max(nint(sqrt(t)),2)
 | 
					    nwidth=max(nint(sqrt(t)),2)
 | 
				
			||||||
!### deal with nflip here! ###
 | 
					!### deal with nflip here! ###
 | 
				
			||||||
!### also single_decode, csync, etc... ###
 | 
					!### also single_decode, csync, etc... ###
 | 
				
			||||||
    write(*,1010) utc,snr,dt,freq,decoded
 | 
					    write(*,1010) snr,dt,freq,decoded
 | 
				
			||||||
1010 format(i4.4,i4,f5.1,i5,1x,'#',1x,a22)
 | 
					1010 format(i4,f5.1,i5,1x,'#',1x,a22)
 | 
				
			||||||
    write(13,1012) utc,nint(sync),snr,dt,freq,drift,nwidth,         &
 | 
					    write(13,1012) nint(sync),snr,dt,freq,drift,nwidth,         &
 | 
				
			||||||
         decoded,ft,sum,smo
 | 
					         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
 | 
					    nft=ft
 | 
				
			||||||
    call flush(6)
 | 
					    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
 | 
					!         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
 | 
					  end subroutine my_callback
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,12 +7,11 @@ module jt9_decode
 | 
				
			|||||||
  end type jt9_decoder
 | 
					  end type jt9_decoder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  abstract interface
 | 
					  abstract interface
 | 
				
			||||||
     subroutine jt9_decode_callback (this, utc, sync, snr, dt, freq, drift, &
 | 
					     subroutine jt9_decode_callback (this, sync, snr, dt, freq, drift, &
 | 
				
			||||||
          decoded)
 | 
					          decoded)
 | 
				
			||||||
       import jt9_decoder
 | 
					       import jt9_decoder
 | 
				
			||||||
       implicit none
 | 
					       implicit none
 | 
				
			||||||
       class(jt9_decoder), intent(inout) :: this
 | 
					       class(jt9_decoder), intent(inout) :: this
 | 
				
			||||||
       integer, intent(in) :: utc
 | 
					 | 
				
			||||||
       real, intent(in) :: sync
 | 
					       real, intent(in) :: sync
 | 
				
			||||||
       integer, intent(in) :: snr
 | 
					       integer, intent(in) :: snr
 | 
				
			||||||
       real, intent(in) :: dt
 | 
					       real, intent(in) :: dt
 | 
				
			||||||
@ -24,7 +23,7 @@ module jt9_decode
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
contains
 | 
					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)
 | 
					       nfsplit,nfb,ntol,nzhsym,nagain,ndepth,nmode,nsubmode,nexp_decode)
 | 
				
			||||||
    use timer_module, only: timer
 | 
					    use timer_module, only: timer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -45,10 +44,10 @@ contains
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    this%callback => callback
 | 
					    this%callback => callback
 | 
				
			||||||
    if(nmode.eq.9 .and. nsubmode.ge.1) then
 | 
					    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
 | 
					       if (associated(this%callback)) then
 | 
				
			||||||
          ndrift=0
 | 
					          ndrift=0
 | 
				
			||||||
          call this%callback(nutc,sync,nsnr,xdt,freq,ndrift,msg)
 | 
					          call this%callback(sync,nsnr,xdt,freq,ndrift,msg)
 | 
				
			||||||
       end if
 | 
					       end if
 | 
				
			||||||
       go to 999
 | 
					       go to 999
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
@ -152,7 +151,7 @@ contains
 | 
				
			|||||||
             if(msg.ne.'                      ') then
 | 
					             if(msg.ne.'                      ') then
 | 
				
			||||||
                numfano=numfano+1
 | 
					                numfano=numfano+1
 | 
				
			||||||
                if (associated(this%callback)) then
 | 
					                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
 | 
					                end if
 | 
				
			||||||
                iaa=max(1,i-1)
 | 
					                iaa=max(1,i-1)
 | 
				
			||||||
                ibb=min(NSMAX,i+22)
 | 
					                ibb=min(NSMAX,i+22)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user