fftw3: Defining an FFTW module
7.7 Defining an FFTW module
===========================
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.)