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 .
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 , the official reference for LAPACK, and as such, it assumes a basic knowledge of LAPACK and frequently refers to the LAPACK Users' Guide  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.
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.