Appendix C: Specific Features of Fortran 95 Interfaces for LAPACK Routines

Intel® MKL implements Fortran 95 interface for LAPACK package, further referred to as MKL LAPACK95, to provide full capacity of MKL FORTRAN 77 LAPACK routines. This is the principal difference of Intel MKL from the Netlib Fortran 95 implementation for LAPACK.

A new feature of MKL LAPACK95 by comparison with Intel MKL LAPACK77 implementation is presenting a package of source interfaces along with wrappers that make the implementation compiler-independent. As a result, the MKL LAPACK package can be used in all programming environments intended for Fortran 95.

Depending on the degree and type of difference from Netlib implementation, the MKL LAPACK95 interfaces fall into several groups that require different transformations (see “MKL Fortran 95 Interfaces for LAPACK Routines vs. Netlib Implementation”). The groups are given in full with the calling sequences of the routines and appropriate differences from Netlib analogs.

The following conventions are used:

<interface> ::=  <name of interface> ‘(’ <arguments list>‘)’
<arguments list> ::=  <first argument> {<argument>}*
<first argument> ::=  < identifier >
<argument> ::=  <required argument>|<optional argument>
<required argument> ::=  ‘,’ <identifier>
<optional argument> ::=  ‘[,’ <identifier> ‘]’
<name of interface> ::=  <identifier>

where defined notions are separated from definitions by ::=, notion names are marked by angle brackets, terminals are given in quotes, and {…}* denotes repetition zero, one, or more times.

<first argument> and each <required argument> should be present in all calls of denoted interface, <optional argument> may be omitted. Comments to interface definitions are provided where necessary. Comment lines begin with character !.

Two interfaces with one name are presented when two variants of subroutine calls (separated by types of arguments) exist.

For more complete information about compiler optimizations, see our Optimization Notice.