Previous: Fortran Examples, Up: Calling FFTW from Legacy Fortran [Contents][Index]

### 8.5 Wisdom of Fortran?

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

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

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

            integer isuccess
            call dfftw_import_system_wisdom(isuccess)

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

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