cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: FFTW 3.3.5: Extended and quadruple precision in Fortran cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127:
cannam@127:

cannam@127: Previous: , Up: Overview of Fortran interface   [Contents][Index]

cannam@127:
cannam@127:
cannam@127: cannam@127:

7.1.1 Extended and quadruple precision in Fortran

cannam@127: cannam@127: 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:

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:

cannam@127: cannam@127:
cannam@127:
  use, intrinsic :: iso_c_binding 
cannam@127:   include 'fftw3.f03'
cannam@127:   include 'fftw3l.f03'
cannam@127: 
cannam@127: 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:

cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: