cannam@95: cannam@95:
cannam@95:cannam@95: Previous: Fortran Examples, cannam@95: Up: Calling FFTW from Legacy Fortran cannam@95:
In this section, we discuss how one can import/export FFTW wisdom cannam@95: (saved plans) to/from a Fortran program; we assume that the reader is cannam@95: already familiar with wisdom, as described in Words of Wisdom-Saving Plans. cannam@95: cannam@95:
The basic problem is that is difficult to (portably) pass files and
cannam@95: strings between Fortran and C, so we cannot provide a direct Fortran
cannam@95: equivalent to the fftw_export_wisdom_to_file, etcetera,
cannam@95: functions.  Fortran interfaces are provided for the functions
cannam@95: that do not take file/string arguments, however:
cannam@95: dfftw_import_system_wisdom, dfftw_import_wisdom,
cannam@95: dfftw_export_wisdom, and dfftw_forget_wisdom. 
cannam@95: 
cannam@95: 
cannam@95:    
So, for example, to import the system-wide wisdom, you would do: cannam@95: cannam@95:
integer isuccess cannam@95: call dfftw_import_system_wisdom(isuccess) cannam@95:cannam@95:
As usual, the C return value is turned into a first parameter;
cannam@95: isuccess is non-zero on success and zero on failure (e.g. if
cannam@95: there is no system wisdom installed).
cannam@95: 
cannam@95:    
If you want to import/export wisdom from/to an arbitrary file or
cannam@95: elsewhere, you can employ the generic dfftw_import_wisdom and
cannam@95: dfftw_export_wisdom functions, for which you must supply a
cannam@95: subroutine to read/write one character at a time.  The FFTW package
cannam@95: contains an example file doc/f77_wisdom.f demonstrating how to
cannam@95: implement import_wisdom_from_file and
cannam@95: export_wisdom_to_file subroutines in this way.  (These routines
cannam@95: cannot be compiled into the FFTW library itself, lest all FFTW-using
cannam@95: programs be required to link with the Fortran I/O library.)
cannam@95: 
cannam@95:    
cannam@95: