我是 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'帮助;