mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Add decoder statistics to timer.out.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4958 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									3327625346
								
							
						
					
					
						commit
						0e5c5a6bfc
					
				@ -10,6 +10,7 @@ subroutine decjt9(ss,id2,nutc,nfqso,newdat,npts8,nfa,nfsplit,nfb,ntol,  &
 | 
				
			|||||||
  logical done(NSMAX)
 | 
					  logical done(NSMAX)
 | 
				
			||||||
  integer*2 id2(NTMAX*12000)
 | 
					  integer*2 id2(NTMAX*12000)
 | 
				
			||||||
  integer*1 i1SoftSymbols(207)
 | 
					  integer*1 i1SoftSymbols(207)
 | 
				
			||||||
 | 
					  common/decstats/num65,numbm,numkv,num9,numfano
 | 
				
			||||||
  save ccfred,red2
 | 
					  save ccfred,red2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nsynced=0
 | 
					  nsynced=0
 | 
				
			||||||
@ -106,8 +107,10 @@ subroutine decjt9(ss,id2,nutc,nfqso,newdat,npts8,nfa,nfsplit,nfb,ntol,  &
 | 
				
			|||||||
           if(nsync.gt.10) nsync=10
 | 
					           if(nsync.gt.10) nsync=10
 | 
				
			||||||
           nsnr=nint(snrdb)
 | 
					           nsnr=nint(snrdb)
 | 
				
			||||||
           ndrift=nint(drift/df3)
 | 
					           ndrift=nint(drift/df3)
 | 
				
			||||||
 | 
					           num9=num9+1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
           if(msg.ne.'                      ') then
 | 
					           if(msg.ne.'                      ') then
 | 
				
			||||||
 | 
					              numfano=numfano+1
 | 
				
			||||||
              if(nqd.eq.0) ndecodes0=ndecodes0+1
 | 
					              if(nqd.eq.0) ndecodes0=ndecodes0+1
 | 
				
			||||||
              if(nqd.eq.1) ndecodes1=ndecodes1+1
 | 
					              if(nqd.eq.1) ndecodes1=ndecodes1+1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ subroutine extract(s3,nadd,nqd,ncount,nhist,decoded,ltext,nbmkv)
 | 
				
			|||||||
  integer dat4(12)
 | 
					  integer dat4(12)
 | 
				
			||||||
  integer mrsym(63),mr2sym(63),mrprob(63),mr2prob(63)
 | 
					  integer mrsym(63),mr2sym(63),mrprob(63),mr2prob(63)
 | 
				
			||||||
  logical nokv,ltext
 | 
					  logical nokv,ltext
 | 
				
			||||||
 | 
					  common/decstats/num65,numbm,numkv,num9,numfano
 | 
				
			||||||
  data nokv/.false./,nsec1/0/
 | 
					  data nokv/.false./,nsec1/0/
 | 
				
			||||||
  save
 | 
					  save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -57,6 +58,7 @@ subroutine extract(s3,nadd,nqd,ncount,nhist,decoded,ltext,nbmkv)
 | 
				
			|||||||
  call graycode65(mrsym,63,-1)        !Remove gray code and interleaving
 | 
					  call graycode65(mrsym,63,-1)        !Remove gray code and interleaving
 | 
				
			||||||
  call interleave63(mrsym,-1)         !from most reliable symbols
 | 
					  call interleave63(mrsym,-1)         !from most reliable symbols
 | 
				
			||||||
  call interleave63(mrprob,-1)
 | 
					  call interleave63(mrprob,-1)
 | 
				
			||||||
 | 
					  num65=num65+1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
! Decode using Berlekamp-Massey algorithm
 | 
					! Decode using Berlekamp-Massey algorithm
 | 
				
			||||||
  call timer('rs_decod',0)
 | 
					  call timer('rs_decod',0)
 | 
				
			||||||
@ -112,5 +114,9 @@ subroutine extract(s3,nadd,nqd,ncount,nhist,decoded,ltext,nbmkv)
 | 
				
			|||||||
     nbmkv=2
 | 
					     nbmkv=2
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
900 return
 | 
					900 continue
 | 
				
			||||||
 | 
					  if(nbmkv.eq.1) numbm=numbm+1
 | 
				
			||||||
 | 
					  if(nbmkv.eq.2) numkv=numkv+1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return
 | 
				
			||||||
end subroutine extract
 | 
					end subroutine extract
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@ subroutine flat4(s,npts,nflatten)
 | 
				
			|||||||
     call pctile(s(ia),ib-ia+1,npct,base) !Find lowest npct of points in segment
 | 
					     call pctile(s(ia),ib-ia+1,npct,base) !Find lowest npct of points in segment
 | 
				
			||||||
     do i=ia,ib
 | 
					     do i=ia,ib
 | 
				
			||||||
        if(s(i).le.base) then
 | 
					        if(s(i).le.base) then
 | 
				
			||||||
           k=k+1                      !Save thesde "lower envelope" points
 | 
					           k=k+1                      !Save these "lower envelope" points
 | 
				
			||||||
           x(k)=i-i0
 | 
					           x(k)=i-i0
 | 
				
			||||||
           y(k)=s(i)
 | 
					           y(k)=s(i)
 | 
				
			||||||
        endif
 | 
					        endif
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										15
									
								
								lib/jt9.f90
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								lib/jt9.f90
									
									
									
									
									
								
							@ -39,6 +39,7 @@ program jt9
 | 
				
			|||||||
       mousefqso,newdat,nfa,nfsplit,nfb,ntol,kin,nzhsym,nsynced,ndecoded
 | 
					       mousefqso,newdat,nfa,nfsplit,nfb,ntol,kin,nzhsym,nsynced,ndecoded
 | 
				
			||||||
  common/tracer/limtrace,lu
 | 
					  common/tracer/limtrace,lu
 | 
				
			||||||
  common/patience/npatience,nthreads
 | 
					  common/patience/npatience,nthreads
 | 
				
			||||||
 | 
					  common/decstats/num65,numbm,numkv,num9,numfano
 | 
				
			||||||
  data npatience/1/,nthreads/1/
 | 
					  data npatience/1/,nthreads/1/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
@ -131,6 +132,12 @@ program jt9
 | 
				
			|||||||
  wisfile=trim(data_dir)//'/jt9_wisdom.dat'// C_NULL_CHAR
 | 
					  wisfile=trim(data_dir)//'/jt9_wisdom.dat'// C_NULL_CHAR
 | 
				
			||||||
  iret=fftwf_import_wisdom_from_filename(wisfile)
 | 
					  iret=fftwf_import_wisdom_from_filename(wisfile)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  num65=0
 | 
				
			||||||
 | 
					  numbm=0
 | 
				
			||||||
 | 
					  numkv=0
 | 
				
			||||||
 | 
					  num9=0
 | 
				
			||||||
 | 
					  numfano=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (shmem) then
 | 
					  if (shmem) then
 | 
				
			||||||
     call jt9a()
 | 
					     call jt9a()
 | 
				
			||||||
     go to 999
 | 
					     go to 999
 | 
				
			||||||
@ -211,7 +218,13 @@ program jt9
 | 
				
			|||||||
  print*,infile
 | 
					  print*,infile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
999 continue
 | 
					999 continue
 | 
				
			||||||
  !Save wisdom and free memory
 | 
					! Output decoder statistics
 | 
				
			||||||
 | 
					  write(12,1100) numbm,numkv,num65
 | 
				
			||||||
 | 
					1100 format(/'JT65: ',i6,' BM and',i7,' KV in',i7,' attempts')
 | 
				
			||||||
 | 
					  write(12,1110) numfano,num9
 | 
				
			||||||
 | 
					1110 format('JT9:  ',i6,' Fano in',12x,i7,' attempts')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! Save wisdom and free memory
 | 
				
			||||||
  iret=fftwf_export_wisdom_to_filename(wisfile)
 | 
					  iret=fftwf_export_wisdom_to_filename(wisfile)
 | 
				
			||||||
  call four2a(a,-1,1,1,1)
 | 
					  call four2a(a,-1,1,1,1)
 | 
				
			||||||
  call filbig(a,-1,1,0.0,0,0,0,0,0)        !used for FFT plans
 | 
					  call filbig(a,-1,1,0.0,0,0,0,0,0)        !used for FFT plans
 | 
				
			||||||
 | 
				
			|||||||
@ -105,8 +105,8 @@ subroutine timer(dname,k)
 | 
				
			|||||||
! Write out the timer statistics
 | 
					! Write out the timer statistics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
40 write(lu,1040)
 | 
					40 write(lu,1040)
 | 
				
			||||||
1040 format(/' name                 time  frac     dtime',       &
 | 
					1040 format(/' Name                 Time  Frac     dTime',       &
 | 
				
			||||||
             ' dfrac  calls'/56('-'))
 | 
					             ' dFrac    Calls'/58('-'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  !$ !walk backwards through the database rolling up thread data by call chain
 | 
					  !$ !walk backwards through the database rolling up thread data by call chain
 | 
				
			||||||
  !$ do i=nmax,1,-1
 | 
					  !$ do i=nmax,1,-1
 | 
				
			||||||
@ -145,7 +145,7 @@ subroutine timer(dname,k)
 | 
				
			|||||||
  i=1
 | 
					  i=1
 | 
				
			||||||
  call print_root(i)
 | 
					  call print_root(i)
 | 
				
			||||||
  write(lu,1070) sum,sumf
 | 
					  write(lu,1070) sum,sumf
 | 
				
			||||||
1070 format(/32x,f10.3,f6.2)
 | 
					1070 format(58('-')/32x,f10.3,f6.2)
 | 
				
			||||||
  nmax=0
 | 
					  nmax=0
 | 
				
			||||||
  eps=0.000001
 | 
					  eps=0.000001
 | 
				
			||||||
  ntrace=0
 | 
					  ntrace=0
 | 
				
			||||||
@ -187,11 +187,11 @@ recursive subroutine print_root(i)
 | 
				
			|||||||
        kk=nlevel(i)
 | 
					        kk=nlevel(i)
 | 
				
			||||||
        sname=space(1:kk)//name(i)//space(1:8-kk)
 | 
					        sname=space(1:kk)//name(i)//space(1:8-kk)
 | 
				
			||||||
        write(lu,2000) sname,ut(i),utf,dut,dutf,ncall(i)
 | 
					        write(lu,2000) sname,ut(i),utf,dut,dutf,ncall(i)
 | 
				
			||||||
 | 
					2000    format(a16,2(f10.3,f6.2),i9)
 | 
				
			||||||
        do j=i,nmax
 | 
					        do j=i,nmax
 | 
				
			||||||
           if(nparent(j).eq.i) call print_root(j)
 | 
					           if(nparent(j).eq.i) call print_root(j)
 | 
				
			||||||
        enddo
 | 
					        enddo
 | 
				
			||||||
     end if
 | 
					     end if
 | 
				
			||||||
  end if
 | 
					  end if
 | 
				
			||||||
2000    format(a16,2(f10.3,f6.2),i7,i5)
 | 
					 | 
				
			||||||
  return
 | 
					  return
 | 
				
			||||||
end subroutine print_root
 | 
					end subroutine print_root
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user