Je veux utiliser le système de sagesse FFTW pour me souvenir des plans FFTW entre les travaux. L'utilisation de la sagesse d'un programme C est documentée ici: http://www.fftw.org/fftw2_doc/fftw_2.html Pour C, la chaîne pertinente serait modifiée à FFTW_MEASURE | FFTW_USE_WISDOM
. J'ai essayé d'imiter ce ici:Comment utiliser la sagesse FFTW du Fortran moderne
!! to compile: gfortran -O3 --fast-math -I/usr/include -o usewisdom usewisdom.f90 -lfftw3
Module FFTW3
use, intrinsic :: iso_c_binding
include 'fftw3.f03'
End Module FFTW3
Program usewisdom
use FFTW3
integer (kind=c_int), parameter :: nx=2048,ny=2048,np=ny/2+1
real (kind=c_double) :: omega(ny,nx)=1.d0
complex (kind=c_double_complex) :: fftomega(np,nx)
ier=fftw_import_wisdom_from_filename("wisdom")
print *,"wisdom output should not be 0:",ier
call dfftw_plan_dft_r2c_2d(fwd,ny,nx,omega,fftomega,&
&FFTW_PATIENT | FFTW_USE_WISDOM)
call dfftw_execute_dft_r2c(fwd,omega,fftomega) !rem clobbers omega
End Program usewisdom
mais gfortran n'aime pas la chaîne:
gfortran -O3 --fast-math -I/usr/include -o usewisdom usewisdom.f90 -lfftw3
usewisdom.f90:16:21:
&FFTW_PATIENT | FFTW_USE_WISDOM)
1
Error: Syntax error in argument list at (1)
Toutes les suggestions?
vous utilisez FFTW3 pendant que vous suivez la documentation de FFTW2 !! . –
@ M.Chinoune des suggestions sur la façon dont cela devrait être fait dans FFTW3? –
Il suffit de suivre la documentation de [FFTW3] (http://www.fftw.org/fftw3_doc/Accessing-the-wisdom-API-from-Fortran.html) –