HSL (Fortran library)
# HSL (Fortran library)

HSL, originally the Harwell Subroutine Library, is a collection of Fortran 77 and 95 codes that address core problems in numerical analysis. It is primarily developed by the Numerical Analysis Group at the Rutherford Appleton Laboratory with contributions from other experts in the field.

HSL codes are easily recognizable by the format of their names, consisting of two letters followed by two numbers, dating back to early versions of Fortran's limited subroutine name length. The letters denote a broad classification of the problem they solve, and the numbers serve to distinguish different codes. For example, the well known sparse LU code MA28 (superseded by MA48) is a Matrix Algebra code number 28. Fortran 95 codes are differentiated from Fortran 77 codes by the prefix HSL_.

## History

### Early history

Original development of the Harwell Subroutine Library began in 1963 by Mike Powell and Mike Hopper for internal use on an IBM mainframe at AERE Harwell. Early contributors also included Alan Curtis. With a spreading reputation, the Library was distributed externally for the first time in 1964 upon request. The first library catalog (AERE Report M-1748) was released in 1966.

### Recent history

Over the intervening years, HSL has striven to maintain a high standard of reliability and has garnered a worldwide reputation as a prime source of numerical software. It has undergone a number of changes to reflect newly available features of the Fortran language, completing in 1990 the conversion to Fortran 77, and more recently, the entire Library has been made thread safe. Many newer codes are written in Fortran 95.

New packages continue to be developed, with a new release issued every two to three years. Many older codes have now been superseded and are available in the HSL Archive.

## Licensing

The current version, HSL 2007 is a commercial product sold by AspenTech, but is also available without charge to individual academics direct from STFC for teaching and their own academic research purposes.

Obsolete routines are stored in the HSL archive and are available for personal non-commercial use by anyone following registration with HSL. Commercial use and distribution of these routines still requires a purchased licence.

