-
Notifications
You must be signed in to change notification settings - Fork 700
Description
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.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.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_Tis missing in two files - Two files need fftw3.f and one does not
- Inconsistencies between the development and use of these files.