Node:Fortran-interface routines, Next:, Previous:Calling FFTW from Fortran, Up:Calling FFTW from Fortran

6.1 Fortran-interface routines

Nearly all of the FFTW functions have Fortran-callable equivalents. The name of the Fortran routine is the same as that of the corresponding C routine, but with the fftw_ prefix replaced by dfftw_. (The single and long-double precision versions use sfftw_ and lfftw_, respectively, instead of fftwf_ and fftwl_.)1

For the most part, all of the arguments to the functions are the same, with the following exceptions:

In general, you should take care to use Fortran data types that correspond to (i.e. are the same size as) the C types used by FFTW. If your C and Fortran compilers are made by the same vendor, the correspondence is usually straightforward (i.e. integer corresponds to int, real corresponds to float, etcetera). The native Fortran double/single-precision complex type should be compatible with fftw_complex/fftwf_complex. Such simple correspondences are assumed in the examples below.


  1. Technically, Fortran 77 identifiers are not allowed to have more than 6 characters, nor may they contain underscores. Any compiler that enforces this limitation doesn't deserve to link to FFTW.

  2. The reason for this is that some Fortran implementations seem to have trouble with C function return values, and vice versa.