twofft.f90

来自「FORTRANvisualfortran常用数值算法集及源码」· F90 代码 · 共 26 行

F90
26
字号
SUBROUTINE twofft(data1,data2,fft1,fft2,n)
INTEGER n
REAL data1(n),data2(n)
COMPLEX fft1(n),fft2(n)
!USES four1
INTEGER j,n2
COMPLEX h1,h2,c1,c2
c1=cmplx(0.5,0.0)
c2=cmplx(0.0,-0.5)
do j=1,n
  fft1(j)=cmplx(data1(j),data2(j))
end do
call four1(fft1,n,1)
fft2(1)=cmplx(aimag(fft1(1)),0.0)
fft1(1)=cmplx(real(fft1(1)),0.0)
n2=n+2
do j=2,n/2+1
  h1=c1*(fft1(j)+conjg(fft1(n2-j)))
  h2=c2*(fft1(j)-conjg(fft1(n2-j)))
  fft1(j)=h1
  fft1(n2-j)=conjg(h1)
  fft2(j)=h2
  fft2(n2-j)=conjg(h2)
end do
END SUBROUTINE twofft

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?