Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Creating the Wrapper Library

Three header files are used to compile the Fortran wrapper library: fftw2_mkl.h, fftw2_f77_mkl.h, and fftw.h. The fftw2_mkl.h and fftw2_f77_mkl.h files are located in the .\interfaces\fftw2xf\wrapperssubdirectory in the Intel® oneAPI Math Kernel Library (oneMKL) directory.

The file fftw.h, used to compile libraries and located in the .\include\fftwsubdirectory in the Intel® oneAPI Math Kernel Library (oneMKL) directory, slightly differs from the original FFTW (www.fftw.org) header filefftw.h.

The source code for the wrappers, makefiles, and files with lists of functions are located in the .\interfaces\fftw2xf subdirectory in the Intel® oneAPI Math Kernel Library (oneMKL) directory.

A wrapper library contains wrappers for complex and real transforms in a serial and multi-threaded mode for double- or single-precision floating-point data types. A makefile parameter manages the data type.

Parameters of a makefile also specify the platform (required), compiler, and data precision. The makefile comment heading provides the exact description of these parameters.

Because a C compiler builds the Fortran wrapper library, function names in the wrapper library and Fortran object module may be different. The file fftw2_f77_mkl.h in the .\interfaces\fftw2xf\sourcesubdirectory in the Intel® oneAPI Math Kernel Library (oneMKL) directory defines function names according to the names in the Fortran module. If a required name is missing in the file, you can modify the file to add the name before building the library.

To build the library, run the make command on Linux* OS and macOS* or the nmake command on Windows* OS with appropriate parameters.

For example, on Linux OS the command

make libintel64

builds a double-precision wrapper library for Intel® 64 architecture based applications using the Intel® oneAPI DPC++/C++ Compiler or the Intel® Fortran Compiler (Compilers and data precision are chosen by default.)

Each makefile creates the library in the directory with Intel® oneAPI Math Kernel Library (oneMKL) libraries corresponding to the platform used. For example,./lib/ia32 (on Linux OS and macOS) or .\lib\ia32 (on Windows* OS).

In the names of a wrapper library, the suffix corresponds to the compiler used and the letter preceding the underscore is "f" for the Fortran programming language.

For example,

fftw2xf_intel.lib (on Windows OS); libfftw2xf_intel.a (on Linux OS and macOS);