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