Generic + Data I/O Libraries

BOOST

http://www.boost.org/ We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

Licensing Terms and Conditions

License

Usage

List available versions

module avail boost
module load boost
module show boost

CGNS

http://cgns.github.io/

The CFD General Notation System (CGNS) provides a general, portable, and extensible standard for the storage and retrieval of computational fluid dynamics (CFD) analysis data. It consists of a collection of conventions, and free and open software implementing those conventions. It is self-descriptive, machine-independent, well-documented, and administered by an international steering committee. It is also an American Institute of Aeronautics and Astronautics (AIAA) Recommended Practice.

JASPER

http://www.ece.uvic.ca/~frodo/jasper/

The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).

Licensing Terms and Conditions

License

Usage

http://www.ece.uvic.ca/~frodo/jasper/jasper.pdf

List available versions

module avail jasper
module load jasper
module show jasper

NETCDF

http://www.unidata.ucar.edu/software/netcdf/

NetCDF (network Common Data Form) is a set of interfaces for array-oriented data access and a freely distributed collection of data access libraries for C, Fortran, C++, Java, and other languages. The netCDF libraries support a machine-independent format for representing scientific data. Together, the interfaces, libraries, and format support the creation, access, and sharing of scientific data. Licensing Terms and Conditions License

Usage

List available versions

module avail netcdf
module load netcdf
gcc -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf -lm
g++ -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf_c++ -lnetcdf -lm
gfortran -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdff -lnetcdf -lm

NETCDF for parallel I/O

NOTE: you need to load MPI module

mpicc -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf
mpicxx -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf_c++ -lnetcdf
mpif90 -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdff -lnetcdf -lm

HDF5

https://www.hdfgroup.org/HDF5/

The HDF5 technology suite includes:

A versatile data model that can represent very complex data objects and a wide variety of metadata. A completely portable file format with no limit on the number or size of data objects in the collection. A software library that runs on a range of computational platforms, from laptops to massively parallel systems, and implements a high-level API with C, C++, Fortran 90, and Java interfaces. A rich set of integrated performance features that allow for access time and storage space optimizations. Tools and applications for managing, manipulating, viewing, and analyzing the data in the collection. Licensing Terms and Conditions The HDF5 data model, file format, API, library, and tools are open and distributed without charge. License

Libraries

libhdf5.a           - HDF5 C Library
libhdf5_hl_cpp.a    - HDF5 High Level C++ APIs
libhdf5_cpp.a       - HDF5 C++ Library
libhdf5hl_fortran.a - HDF5 High Level Fortran APIs
libhdf5_fortran.a   - HDF5 Fortran Library
libhdf5_hl.a        - HDF5 High Level C APIs

Usage

List available versions

module avail hdf5
module load hdf5

Compiling For Unix platforms, the following compile scripts are included with the binary distribution of the HDF5 software:

  • h5cc: compile script for HDF5 C programs.
  • h5fc: compile script for HDF5 F90 programs.
  • h5c++: compile script for HDF5 C++ programs.
h5cc hdf5_example.c

Generic Compilation

gcc -I$HDF5ROOT/include hdf5_example.c -L$HDF5ROOT/lib -lhdf5 -lsz -lz -lm
g++ -I$HDF5ROOT/include hdf5_example.cpp -L$HDF5ROOT/lib -lhdf5_cpp -lhdf5 -lsz -lz -lm
gfortran -I$HDF5ROOT/include hdf5_example.f90 -L$HDF5ROOT/lib -lhdf5_fortran -lhdf5 -lsz -lz -lm

HDF5 for parallel I/O

(phdf5 website)phdf5

NOTE: you need to load MPI module

mpicc -I$HDF5ROOT/include hdf5_example.c -L$HDF5ROOT/lib -lhdf5 -lsz -lz -lm
mpicxx -I$HDF5ROOT/include hdf5_example.cpp -L$HDF5ROOT/lib -lhdf5_cpp -lhdf5 -lsz -lz -lm
mpif90 -I$HDF5ROOT/include hdf5_example.f90 -L$HDF5ROOT/lib -lhdf5_fortran -lhdf5 -lsz -lz -lm

UDUNITS

http://www.unidata.ucar.edu/software/udunits/

The UDUNITS package supports units of physical quantities. Its C library provides for arithmetic manipulation of units and for conversion of numeric values between compatible units. The package contains an extensive unit database, which is in XML format and user-extendable. The package also contains a command-line utility for investigating units and converting values.

UDUNITS

Usage

List available versions

module avail udunits2
module load udunits2
module show udunits2