subroutine DIDFT(nmax,nmay,mmax,mmay,a,z) real z(0:nmax,0:nmay) complex a(-mmax/2:mmax/2,-mmay/2:mmay/2) complex gfy(-mmax/2:mmax/2,0:nmay) complex i, W, V real pi *-- 定数の定義 --- i=(0.0,1.0) pi=3.14159 W=exp(2.0*pi*i/(real(nmax+1))) V=exp(2.0*pi*i/(real(nmay+1))) *-- y 方向の複素 IDFT --- do m=-mmax/2,mmax/2 do n=0,nmay gfy(m,n)=a(m,-mmay/2) do k=-mmay/2+1,mmay/2 gfy(m,n)=gfy(m,n)+a(m,k)*(V**(n*k)) end do end do end do *-- x 方向の実 IDFT --- do n=0,nmay do m=0,nmax z(m,n)=gfy(-mmax/2,n) do j=-mmax/2+1,mmax/2 z(m,n)=z(m,n)+gfy(j,n)*(W**(m*j)) end do z(m,n)=real(z(m,n)) end do end do return end