33 lines
		
	
	
		
			535 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			535 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
|   | subroutine fqso_first(nfqso,ntol,ca,ncand)
 | ||
|  | 
 | ||
|  | ! If a candidate was found within +/- ntol of nfqso, move it into ca(1).
 | ||
|  | 
 | ||
|  |   type candidate
 | ||
|  |      real freq
 | ||
|  |      real dt
 | ||
|  |      real sync
 | ||
|  |      real flip
 | ||
|  |   end type candidate
 | ||
|  |   type(candidate) ca(300),cb
 | ||
|  | 
 | ||
|  |   dmin=1.e30
 | ||
|  |   i0=0
 | ||
|  |   do i=1,ncand
 | ||
|  |      d=abs(ca(i)%freq-nfqso)
 | ||
|  |      if(d.lt.dmin) then
 | ||
|  |         i0=i
 | ||
|  |         dmin=d
 | ||
|  |      endif
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  |   if(dmin.lt.float(ntol)) then
 | ||
|  |      cb=ca(i0)
 | ||
|  |      do i=i0,2,-1
 | ||
|  |         ca(i)=ca(i-1)
 | ||
|  |      enddo
 | ||
|  |      ca(1)=cb
 | ||
|  |   endif
 | ||
|  | 
 | ||
|  |   return
 | ||
|  | end subroutine fqso_first
 |