Rather than using the include
statement to include the
fftw3.f03
interface file in any subroutine where you want to
use FFTW, you might prefer to define an FFTW Fortran module. FFTW
does not install itself as a module, primarily because
fftw3.f03
can be shared between different Fortran compilers while
modules (in general) cannot. However, it is trivial to define your
own FFTW module if you want. Just create a file containing:
module FFTW3 use, intrinsic :: iso_c_binding include 'fftw3.f03' end module
Compile this file into a module as usual for your compiler (e.g. with
gfortran -c
you will get a file fftw3.mod
). Now,
instead of include 'fftw3.f03'
, whenever you want to use FFTW
routines you can just do:
use FFTW3
as usual for Fortran modules. (You still need to link to the FFTW library, of course.)