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
 |