# ThirdParty-HSL **Repository Path**: lyeemax/ThirdParty-HSL ## Basic Information - **Project Name**: ThirdParty-HSL - **Description**: No description available - **Primary Language**: Unknown - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ThirdParty-HSL This is an autotools-based build system to build and install routines from the [Harwell Subroutine Library](http://www.hsl.rl.ac.uk/) (HSL). This installation of HSL routines is used by some other COIN-OR projects, in particular [Ipopt](https://github.com/coin-or/Ipopt). For use by COIN-OR, STFC provides special packages at http://www.hsl.rl.ac.uk/ipopt/ which can be build independently or within the buildsystem in this directory. ## Dependencies - HSL routines require a Fortran compiler. Some of them are written in Fortran 77, others in Fortran 90. - MA57, HSL_MA77, and HSL_MA86 require BLAS, HSL_MA97 requires LAPACK. `configure` will look for a LAPACK installation (and assume that it includes BLAS), but if that does not succeed, the flags to link with LAPACK should be specified with the `--with-lapack-lflags` argument of `configure`. - MA57, HSL_MA77, HSL_MA97, and MC68 can use METIS. `configure` will look for a METIS library and header, but if that does not succeed, the arguments `--with-metis-lflags` and `--with-metis-cflags` can be specified for `configure`. Both Metis 4 and Metis 5 can be used with ThirdParty-HSL. ## Installation steps 1. Obtain an archive with HSL source code from http://www.hsl.rl.ac.uk/ipopt/. ********************************************************************** Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************** 2. Unpack this archive via gunzip coinhsl-x.y.z.tar.gz tar xf coinhsl-x.y.z.tar 3. Rename the directory `coinhsl-x.y.z` to `coinhsl`, or set a symbolic link: ln -s coinhsl-x.y.z coinhsl 4. Run `./configure`. Use `./configure --help` to see available options. The `configure` script will detect which source files are available in your `coinhsl` package and prepare the `Makefile` accordingly. Note, that in difference to previous versions of `ThirdParty-HSL`, the `configure` script now checks for the HSL routines in subdirectories as they are given in the `coinhsl-x.y.z.tar.gz` archive. 5. Run `make` to build the HSL library (namestem `coinhsl`). 6. Run `make install` to install the HSL library and header files. ## Single-precision codes The "HSL for Ipopt" package does not include single-precision versions of HSL routines. However, this buildsystem can build single-precision versions of MA27, MA57, and MC19 if the corresponding HSL source files are made available. To do so, download the routine-specific HSL software packages from - http://www.hsl.rl.ac.uk/download/MA27/1.0.0/a/, - http://www.hsl.rl.ac.uk/catalogue/ma57.html, and/or - http://www.hsl.rl.ac.uk/download/MC19/1.0.0/a/ and place the files `ma27s.f`, `ma57s.f`, and/or `mc19s.f` into the corresponding subdirectories of `coinhsl` before installation step 4. If building MC19 or MA57, then also copy `src/sdeps.f` from the MA57 tarball into `coinhsl/common`.