0

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

我正在使用 fftw3 包,需要复杂到复杂的 ffts。例如,应转换 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是解决我的问题的解决方案,可以使用跨步,但是我无法让它以某种方式工作。有人可以帮忙吗?

这个链接其实是fftw的高级复杂ffts的'C'帮助;

4

0 回答 0