Fortran FFTW大步迈进''类Matlab''

时间:2013-05-14 12:46:31

标签: fortran multidimensional-array fftw stride

我是fortran的新手,并试图将我的matlab代码有效地转换为.f

我正在使用fftw3包,需要复杂的步幅复杂。 例如应该转换3d数组中的2个维度。

我在matlab中做的是

fft(fft(u,[],2),[],3) 

其中u(Nx,Ny,Nz)是3d矩阵。

我可以通过循环在fortran中执行此操作,但这比matlabs ffts慢得多,如下所示;

call dfftw_plan_dft_2d(planf,Nx,Nz,inf,outf,FFTW_FORWARD,FFTW_MEASURE)
do l=1,Nx;
    call dfftw_execute_dft_(planf,f(l,:,:),fh(l,:,:));
end do

fft_many是我的问题的解决方案,可以使用步幅,但我不能让它以某种方式工作。有人可以帮忙吗?

This link实际上是fftw先进复杂fft的'C'帮助;

0 个答案:

没有答案