## ExternalLibraries/HDF5

2020-07-01

### Abstract

Thorn HDF5 provides the following utility programs:

• hdf5_double_to_single
Copies the entire contents of an input HDF5 file to an output HDF5 file, converting all double precision datasets to single precision.

• hdf5_merge
Merges a list of HDF5 input files into a single HDF5 output file. This can be used to concatenate HDF5 output data created as one file per timestep.

• hdf5_extract
Extracts a given list of named objects (groups or datasets) from an HDF5 input file and writes them into a new HDF5 output file. This is the reverse operation to what hdf5_merge.c does. Useful eg. for extracting individual timesteps from a time series HDF5 datafile.

All utility programs are located in the src/util/ subdirectory of thorn HDF5. To build the utilities just do a

  make <configuration>-utils


in the Cactus toplevel directory. The executables will then be placed in the exe/<configuration>/ subdirectory.

All utility programs are self-explaining – just call them without arguments to get a short usage info. If any of these utility programs is called without arguments it will print a usage message.

### 1 Using This Thorn

Refer to the Cactus UserGuide, Sec. B2.2, in order to know how this thorn can be used in a compiled configuration and how to possibly linking another specific version, already installed steparately.

#### Note on possible ExternalLibraries’ location stripping

Each thorn contained in Cactus/arrangements/ExternalLibraries will automatically adopt the library version contained in the Cactus/arrangements/<library>/dist folder. In particular, the tarball in Cactus/arrangements/<library>/dist is only used if either THORN_DIR is set to BUILD or is left empty and no precompiled copy of the library is found. If another location is specified via the THORN_DIR variable in the <machine>.cfg file at compilation, then the Cactus/lib/sbin/strip-incdirs.sh script will automatically strip away (for safety reasons) the locations:

/include

/usr/include

/usr/local/include

from THORN_INC_DIRS which default to THORN_DIR/include. Therefore, if there is any need for using one already installed version of one external library, the aforementioned location should be avoided (e.g. indicating /home as the THORN_DIR will work with no problems if the required library is installed there) or should be carefully checked, in order to avoid unwanted stripping. The same stripping happens to THORN_LIB_DIRS in lib/sbin/strip-libdirs.sh with a larger list of directories:

/lib

/usr/lib

/usr/local/lib

/lib64

/usr/lib64

/usr/local/lib64

Implements:

hdf5

### 4 Schedule

This section lists all the variables which are assigned storage by thorn ExternalLibraries/HDF5. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

NONE