I have downloaded the latest FFTW3 zip. I used Visual Studio's lib exe to generate the necessary lib files for the Intel Fortran compiler. Now I have a problem with the *.f03 files which define interfaces and parameters (constants).
- First, only one of the files,
fftw3.f03, contained the necessary parameters used by the interface declarations.
- The other two,
fftw3l.f03 and fftw3q.f03 contained no parameters at all.
I had to make module wrappers for the three files in order for the intel compiler to recognize and compile them. In order to do that I had to convert fftw3.f which contains a bunch of parameters, into a module. Then I had to use this module in the two module wrappers for the fftw3l.f03 and fftw3q.f03 files. In addition, in these two module wrappers I had to declare this parameter integer, parameter :: C_FFTW_R2R_KIND = C_INT32_T as it was not present in the two files and is not present in fftw3.f, but it IS present in fftw3.f03. So now I have three files, two of which look like this:
module FFTW3L_Module
use, intrinsic :: iso_c_binding
use FFTW3ParamsModule
integer, parameter :: C_FFTW_R2R_KIND = C_INT32_T
include 'fftw3l.f03'
end module FFTW3L_Module
and one of which looks like this
module FFTW3_Module
use, intrinsic :: iso_c_binding
include 'fftw3.f03'
end module FFTW3_Module
As I see it, there are three errors
- The parameter
C_FFTW_R2R_KIND = C_INT32_T is missing in two files
- Two files need fftw3.f and one does not
- Inconsistencies between the development and use of these files.
I have downloaded the latest FFTW3 zip. I used Visual Studio's lib exe to generate the necessary lib files for the Intel Fortran compiler. Now I have a problem with the
*.f03files which define interfaces and parameters (constants).fftw3.f03, contained the necessary parameters used by the interface declarations.fftw3l.f03andfftw3q.f03contained no parameters at all.I had to make module wrappers for the three files in order for the intel compiler to recognize and compile them. In order to do that I had to convert
fftw3.fwhich contains a bunch of parameters, into a module. Then I had to use this module in the two module wrappers for thefftw3l.f03andfftw3q.f03files. In addition, in these two module wrappers I had to declare this parameterinteger, parameter :: C_FFTW_R2R_KIND = C_INT32_Tas it was not present in the two files and is not present infftw3.f, but it IS present infftw3.f03. So now I have three files, two of which look like this:and one of which looks like this
As I see it, there are three errors
C_FFTW_R2R_KIND = C_INT32_Tis missing in two files