cannam@127: cannam@127: cannam@127: cannam@127: cannam@127:
cannam@127:cannam@127: Previous: Overview of Fortran interface, Up: Overview of Fortran interface [Contents][Index]
cannam@127:If FFTW is compiled in long double (extended) precision
cannam@127: (see Installation and Customization), you may be able to call the
cannam@127: resulting fftwl_ routines (see Precision) from Fortran if
cannam@127: your compiler supports the C_LONG_DOUBLE_COMPLEX type code.
cannam@127: 
Because some Fortran compilers do not support
cannam@127: C_LONG_DOUBLE_COMPLEX, the fftwl_ declarations are
cannam@127: segregated into a separate interface file fftw3l.f03, which you
cannam@127: should include in addition to fftw3.f03 (which declares
cannam@127: precision-independent ‘FFTW_’ constants):
cannam@127: 
use, intrinsic :: iso_c_binding cannam@127: include 'fftw3.f03' cannam@127: include 'fftw3l.f03' cannam@127:
We also support using the nonstandard __float128
cannam@127: quadruple-precision type provided by recent versions of gcc on
cannam@127: 32- and 64-bit x86 hardware (see Installation and Customization),
cannam@127: using the corresponding real(16) and complex(16) types
cannam@127: supported by gfortran.  The quadruple-precision ‘fftwq_’
cannam@127: functions (see Precision) are declared in a fftw3q.f03
cannam@127: interface file, which should be included in addition to
cannam@127: fftw3l.f03, as above.  You should also link with
cannam@127: -lfftw3q -lquadmath -lm as in C.
cannam@127: