Preface

Fortran has always been a principal language in the fields of
scientific, numerical, and engineering computing. A series of revisions
to the standard defining successive versions of the language has
progressively enhanced its power and kept it competitive with several
generations of rivals. The present Fortran standard is Fortran 95. The
new features contained in Fortran 95 ensure that the Fortran language
will continue to be used successfully for a long time to come. The
fact that it contains the whole of Fortran 77 as a subset means that
conversion to Fortran 95 is as simple as conversion to another
Fortran 77 compiler. For more information on Fortran 95, see [31].

The development of LAPACK was a natural step after specifications of
the Level 2 and 3 BLAS were drawn up in 1984-86 and 1987-88.
Research on block algorithms had been ongoing for several years,
but agreement on the BLAS made it possible to construct a new
software package, to take the place of LINPACK
and EISPACK,
which would achieve much greater efficiency on modern high-performance
computers.
The new package, LAPACK, written in Fortran 77, also contained a number of
algorithmic advances that had been made since LINPACK and EISPACK
were written in the 1970's.
The proposal for LAPACK was submitted while the Level 3 BLAS were
still being developed, and funding was obtained from the National
Science Foundation (NSF) beginning in 1987. Since its completion,
four follow-up projects, LAPACK 2, ScaLAPACK, ScaLAPACK 2 and LAPACK 3 have
been funded in the U.S. by the NSF and ARPA in 1990-1994, 1991-1995,
1995-1998, and 1998-2001, respectively.

This book describes LAPACK95 [12,6,14], yet another step in the development of
LAPACK. LAPACK95 is a Fortran 95 interface to the Fortran 77 LAPACK
library. It is relevant for anyone who writes in the Fortran 95 language
and needs reliable software for basic numerical linear algebra.
It may be regarded as a sequel to [1], the official reference for
LAPACK, and as such, it assumes a basic knowledge of LAPACK and frequently
refers to the LAPACK Users' Guide [1] for specific details.
This book is divided into three parts.
Part I: GENERAL INFORMATION contains chapters
providing a thorough explanation of the
design and functionality of the LAPACK95 library.
Part II: DRIVER ROUTINES contains detailed specifications
of the driver routines, including numerical examples.
Part III: COMPUTATIONAL ROUTINES contains brief specifications
of the computational routines.
A Bibliography is also provided, as well as two indexes-
Index by Keyword and Index by Routine Name.

A number of technical reports were written during the development
of LAPACK95 and published as technical reports at UNIC, Denmark,
and as LAPACK Working Notes by the University
of Tennessee. These reports are available in postscript and
pdf format.

http://www.netlib.org/lapack/lawns/

The performance results presented in this book were obtained using
computer resources at the Danish Computing Center for Research and
Education, UNIC.

This work was supported by the Danish Natural Science
Research Council through a grant for the EPOS project (Efficient
Parallel Algorithms for Optimization and Simulation) and by the
Oak Ridge National Laboratory, managed by UT/Battelle, LLC
for the U.S. Department of Energy, under contract number
DE-AC05-96OR22464.

The cover was designed by David Rogers at the Innovative Computing
Laboratory, Department of Computer Science, University of Tennessee.

Finally, we would like to thank all those who have contributed
code, criticism, ideas and encouragement. We wish especially to
express our gratitude to the LAPACK authors, Bjarne Stig Andersen,
Zohair Maany, Antoine Petitet, John Reid, Clint Whaley,
and Adam Zema. The basefiles for the LAPACK95 library are kept
in the extract system developed by Clint Whaley.