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