Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
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

Examples for Linking a Fortran Application

These examples illustrate linking of an application under the following conditions:

  • Main module is in Fortran.
  • You are using the Intel® Fortran Compiler.
  • You are using the Intel MPI library.
  • Intel® oneAPI Math Kernel Library (oneMKL) functions use LP64 interfaces.
  • The PATH environment variable contains a directory with the MPI linker scripts.
  • $MKLPATH is a user-defined variable containing <mkl_directory>/lib.

To link dynamically with ScaLAPACK for a cluster of systems based on the Intel® 64 architecture, use the following link line:

mpiifort <user files to link>                         \
   -L$MKLPATH                                         \
   -lmkl_scalapack_lp64                               \
   -lmkl_blacs_intelmpi_lp64                          \
   -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core     \
   -liomp5 -lpthread

To link statically with Cluster FFT for a cluster of systems based on the Intel® 64 architecture, use the following link line:

mpiifort <user files to link>                         \
   -Wl,--start-group                                  \
   $MKLPATH/libmkl_cdft_core.a                        \
   $MKLPATH/libmkl_blacs_intelmpi_lp64.a              \
   $MKLPATH/libmkl_intel_lp64.a                       \
   $MKLPATH/libmkl_intel_thread.a                     \
   $MKLPATH/libmkl_core.a                             \
   -Wl,--end-group                                    \
   -liomp5 -lpthread

To link statically with Cluster Sparse Solver for a cluster of systems based on the Intel® 64 architecture, use the following link line:

mpiifort <user files to link>                         \
   -Wl,--start-group                                  \
   $MKLPATH/libmkl_blacs_intelmpi_lp64.a              \
   $MKLPATH/libmkl_intel_lp64.a                       \
   $MKLPATH/libmkl_intel_thread.a                     \
   $MKLPATH/libmkl_core.a                             \
   -Wl,--end-group                                    \
   -liomp5 -lpthread