CISL provides numerous **file format** and **mathematical** libraries for users of the supercomputing systems it manages. Below is a partial list.

To see which others are available, execute the **module av **command. When you determine which library you want to use, run the **module load** command, specifying the library name as in this example:

module load netcdf

Some of the most-used file format and mathematical libraries that CISL provides are:

**BLAS**—The optimized Math Kernel Library (MKL) described below implements Basic Linear Algebra Subroutines, which provide vector, vector-matrix, and matrix-matrix functionality.**GSL**is the GNU Scientific Library for C and C++ programmers. (Fortran programmers also can use GSL if they write an interface for the desired procedure.) It contains a wide range of mathematical subroutines such as random number generators, special functions, and least-square fittings. The GSL web page provides an introduction.**HDF5**(Hierarchical Data Format) is a data model, library, and file format for managing large data sets. It also supports parallel I/O.**JasPer**is a set of software routines that facilitate the handling of data for digital imagery, according to the JPEG2000 Project. See the JasPer Software Reference Manual.**LAPACK**and**ScaLAPACK**are extensive libraries of linear algebra subroutines. These routines are implemented in the optimized Math Kernel Library. ScaLAPACK is the parallel, MPI-based version of LAPACK.**MKL**is the Intel Math Kernel Library of general-purpose math routines including BLAS, BLACS, LAPACK, ScaLAPACK, fast Fourier transforms, and many others.**NetCDF**(network Common Data Form) is a collection of data access libraries and a set of interfaces for accessing the data. We recommend using the precompiled binaries that can be loaded with the module load command. Source code also is available at the Unidata NetCDF web site.**PnetCDF**(Parallel netCDF) is a library providing high-performance I/O while maintaining file-format compatibility with NetCDF. The PnetCDF home page has links to a tutorial and examples.**WGRIB**is a program that many NCAR users find helpful for manipulating, inventorying, and decoding GRIB files. See the WGRIB home page for release highlights and product documentation.

Compiler vendors such as Intel provide the **optimized math libraries** (MKL, for example). These libraries likely will give you the best performance on computers where they are available, but they may not be supported on some other systems where you run jobs. To minimize portability issues, write conditional code to account for differences in the systems you will use, then select the appropriate code when compiling on each individual system.

**NCAR math libraries** are described and downloadable at NCAR Classic Libraries for Geophysics. They are sequential, so are useful for code that does not require parallel functionality. They are written primarily in Fortran 77.

If you are unable to locate a library, contact us at cislhelp@ucar.edu for assistance.