28 lines
		
	
	
		
			440 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			440 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| subroutine ps4(dat,nfft,s)
 | |
| 
 | |
|   parameter (NMAX=2520+2)
 | |
|   parameter (NHMAX=NMAX/2-1)
 | |
|   real dat(nfft)
 | |
|   real dat2(NMAX)
 | |
|   real s(NHMAX)
 | |
|   complex c(0:NMAX)
 | |
|   equivalence(dat2,c)
 | |
| 
 | |
|   nh=nfft/2
 | |
|   do i=1,nh
 | |
|      dat2(i)=dat(i)/128.0       !### Why 128 ??
 | |
|   enddo
 | |
|   do i=nh+1,nfft
 | |
|      dat2(i)=0.
 | |
|   enddo
 | |
| 
 | |
|   call four2a(c,nfft,1,-1,0)
 | |
| 
 | |
|   fac=1.0/nfft
 | |
|   do i=1,nh
 | |
|      s(i)=fac*(real(c(i))**2 + aimag(c(i))**2)
 | |
|   enddo
 | |
| 
 | |
|   return
 | |
| end subroutine ps4
 |