mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
	
	
		
			43 lines
		
	
	
		
			687 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			687 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
|  | !program smolorentz
 | ||
|  | subroutine smolorentz(s1,nz,w,s2)
 | ||
|  | 
 | ||
|  | !  parameter (nz=512)
 | ||
|  |   real s1(nz),s2(nz)
 | ||
|  |   real y(-50:50)
 | ||
|  | !  character*8 arg
 | ||
|  | 
 | ||
|  | !  s1=0.
 | ||
|  | !  s1(256)=1.
 | ||
|  | 
 | ||
|  | !  call getarg(1,arg)
 | ||
|  | !  read(arg,*) w
 | ||
|  |   
 | ||
|  |   do i=-50,50
 | ||
|  |      x=i
 | ||
|  |      z=x/(0.5*w)
 | ||
|  |      y(i)=0.
 | ||
|  |      if(abs(z).lt.3.0) then
 | ||
|  |         d=1.0 + z*z
 | ||
|  |         y(i)=(1.0/d - 0.1)*10.0/9.0
 | ||
|  |      endif
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  |   jz=nint(1.5*w)
 | ||
|  |   if(jz.gt.50) jz=50
 | ||
|  |   do i=1,nz
 | ||
|  |      s=0.
 | ||
|  |      sy=0.
 | ||
|  |      do j=-jz,jz
 | ||
|  |         k=i+j
 | ||
|  |         if(k.ge.1 .and. k.le.nz) then
 | ||
|  |            s=s + s1(k)*y(j)
 | ||
|  |            sy=sy+y(j)
 | ||
|  |         endif
 | ||
|  |      enddo
 | ||
|  |      s2(i)=s/sy
 | ||
|  | !     write(52,3002) i-256,s1(i),s2(i)
 | ||
|  | !3002 format(i5,2f10.4)
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  | end subroutine smolorentz
 |