Chris@19: Chris@19: Chris@19: Wisdom of Fortran? - FFTW 3.3.4 Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19:
Chris@19: Chris@19: Chris@19:

Chris@19: Previous: Fortran Examples, Chris@19: Up: Calling FFTW from Legacy Fortran Chris@19:


Chris@19:
Chris@19: Chris@19:

8.5 Wisdom of Fortran?

Chris@19: Chris@19:

In this section, we discuss how one can import/export FFTW wisdom Chris@19: (saved plans) to/from a Fortran program; we assume that the reader is Chris@19: already familiar with wisdom, as described in Words of Wisdom-Saving Plans. Chris@19: Chris@19:

The basic problem is that is difficult to (portably) pass files and Chris@19: strings between Fortran and C, so we cannot provide a direct Fortran Chris@19: equivalent to the fftw_export_wisdom_to_file, etcetera, Chris@19: functions. Fortran interfaces are provided for the functions Chris@19: that do not take file/string arguments, however: Chris@19: dfftw_import_system_wisdom, dfftw_import_wisdom, Chris@19: dfftw_export_wisdom, and dfftw_forget_wisdom. Chris@19: Chris@19: Chris@19:

So, for example, to import the system-wide wisdom, you would do: Chris@19: Chris@19:

             integer isuccess
Chris@19:              call dfftw_import_system_wisdom(isuccess)
Chris@19: 
Chris@19:

As usual, the C return value is turned into a first parameter; Chris@19: isuccess is non-zero on success and zero on failure (e.g. if Chris@19: there is no system wisdom installed). Chris@19: Chris@19:

If you want to import/export wisdom from/to an arbitrary file or Chris@19: elsewhere, you can employ the generic dfftw_import_wisdom and Chris@19: dfftw_export_wisdom functions, for which you must supply a Chris@19: subroutine to read/write one character at a time. The FFTW package Chris@19: contains an example file doc/f77_wisdom.f demonstrating how to Chris@19: implement import_wisdom_from_file and Chris@19: export_wisdom_to_file subroutines in this way. (These routines Chris@19: cannot be compiled into the FFTW library itself, lest all FFTW-using Chris@19: programs be required to link with the Fortran I/O library.) Chris@19: Chris@19: Chris@19: