School of GeoSciences

School of GeoSciences

Scientific Libraries


This page describes the plethora of Scientific I/O libraries available on the system and how to access them. This is not entirely straight forward since these libraries also contain Fortran bindings which are compiler dependent. This problem is solved by using modules.

If you want to use the system compiler, i.e. gcc, g++ or gfortran, you do not need to do anything. The libraries are installed in the system path.

If you want to use modules from within a script you need to first setup your environment by adding

source /etc/profile.d/

to your shell script.

You can get a list of available modules by running

module avail

and you can load a module using

module load NAME_OF_MODULE

First of all you will need to select a compiler you want to use. This affects mostly the Fortran compiler since (where available) the C compilers are generally produce interchangable object code. The following compilers are currently supported

  • nag/5.1 The NAGware f95 compiler. The C and C++ parts of the libraries are compiled using the system compiler.
  • intel/10.0 The Intel ifort version 10.0 Fortran95 compiler.
  • intel/11.0 The Intel Professional Compiler Suite v 11.0 which includes C, C++ and Fortran95 compilers and various libraries. Here is the documentation. Although Intel supplies C and C++ compilers the system compilers where used
Once you have selected a compiler module more modules will become available. Select any number of the Scientific library modules and use them from your own software.

Optimised Maths Libraries

The ACML brings optimised BLAS, LAPACK and FFT libraries for gcc, Intel and NAG compilers. Just load the relevant module and link against the ACML library -lacml or -lacml_mp for multi-processor systems. Being an AMD product it probably works best on computers with AMD CPUs.

MKL is the Intel maths library and also comes with optimised BLAS and LAPACK. Paths are setup correctly when you load the Intel 11 module.

Notably adder and fleet are computers with AMD CPUs. You can find out what CPU you are using by running

grep vendor /proc/cpuinfo