HDF5 documents and links 
Introduction to HDF5 
HDF5 User's Guide 
HDF5 Reference Manual 
HDF5 Application Developer's Guide 

HDF5 Software Changes from Release to Release

This document is intended to assist application developers who must keep an application synchronized with the HDF5 library or related software.

Release 1.8.1 (current release) versus Release 1.8.0

HDF5 Release 1.8.1 is a minor release with several bugfixes and optimizations and limited new features.

The most significant new feature is an expanded set of Fortran90 APIs, enabling essentially all new C library features of Release 1.8.0.

New Functions and Tools

C functions:
There are no new C functions for Release 1.8.1.

Fortran subroutines:
The following Fortran subroutines are new for Release 1.8.1 and are documented in the HDF5 Reference Manual.

H5A
h5acreate_f
h5acreate_by_name_f
h5adelete_by_idx_f
h5adelete_by_name_f
h5aexists_f
h5aexists_by_name_f
h5aget_create_plist_f
h5aget_info_f
h5aget_info_by_idx_f
                  
 
h5aget_info_by_name_f
h5aget_name_by_idx_f
h5aget_storage_size_f
h5aopen_f
h5aopen_by_idx_f
h5aopen_by_name_f
h5arename_f
h5arename_by_name_f
                  
H5D
h5dcreate_anon_f
h5dcreate_f
                  
 
h5dopen_f
h5dset_extent_f
                  
H5G
h5gcreate_anon_f
h5gcreate_f
h5gget_create_plist_f
h5gget_info_f
                  
 
h5gget_info_by_idx_f
h5gget_info_by_name_f
h5gopen_f
                  
H5L
h5lcopy_f
h5lcreate_external_f
h5lcreate_hard_f
h5lcreate_soft_f
h5ldelete_f
h5ldelete_by_idx_f
                  
 
h5lexists_f
h5lget_info_f
h5lget_info_by_idx_f
h5lget_name_by_idx_f
h5lmove_f
                  
H5O
h5olink_f
                  
 
h5oopen_f
                  
H5P
h5pget_attr_creation_order_f
h5pget_attr_phase_change_f
h5pget_char_encoding_f
h5pget_copy_object_f
h5pget_create_inter_group_f
h5pget_data_transform_f
h5pget_elink_prefix_f
h5pget_est_link_info_f
h5pget_fapl_direct_f
h5pget_link_creation_order_f
h5pget_link_phase_change_f
h5pget_local_heap_size_hint_f
h5pget_nlinks_f
h5pget_obj_track_times_f
h5pget_shared_mesg_index_f
h5pget_shared_mesg_nindexes_f
                  
 
h5pset_attr_creation_order_f
h5pset_attr_phase_change_f
h5pset_char_encoding_f
h5pset_copy_object_f
h5pset_create_inter_group_f
h5pset_data_transform_f
h5pset_elink_prefix_f
h5pset_est_link_info_f
h5pset_fapl_direct_f
h5pset_libver_bounds_f
h5pset_link_creation_order_f
h5pset_link_phase_change_f
h5pset_local_heap_size_hint_f
h5pset_obj_track_times_f
h5pset_nbit_f
h5pset_nlinks_f
h5pset_scaleoffset_f
                  
H5R
h5rget_name_f
                  
 
                  
H5S
h5sdecode_f
h5sencode_f
                  
 
h5sextent_equal_f
                  
H5T
h5tcommit_anon_f
h5tcommit_f
h5tcommitted_f
h5tcompiler_conv_f
                  
 
h5tdecode_f
h5tencode_f
h5tget_create_plist_f
h5topen_f
                  

C++ wrappers:
There are no new C++ wrappers for Release 1.8.1.

Functions and Tools with Changed Syntax

C functions with changed syntax:
There are no C functions with changed syntax in Release 1.8.1.

Fortran subroutines with changed syntax:
In the following Fortran subroutines, spos is a new parameter indicating the position of the sign bit:
     h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
     h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)

Changed C++ wrappers:
  • The class AbstractDS was moved out of H5Object.

    The class Attribute now multiply inherits from IdComponent and AbstractDs; the class DataSet now multiply inherits from H5Object and AbstractDs.

    In addition, data member IdComponent::id was moved into subclasses: Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList.

  • IdComponent::dereference was incorrect; it was changed from:
         void IdComponent::dereference(IdComponent& obj, void* ref)
    to:
         void H5Object::dereference(H5File& h5file, void* ref)
         void H5Object::dereference(H5Object& obj, void* ref)

Tools with changed syntax:
  • The command-line syntax of h5repack was changed in Release 1.8.0 to the following:
         h5repack [OPTIONS] in_file out_file

    Since this would be imcompatible with existing user scripts, the original syntax has be re-enabled in this release:
         h5repack -i in_file -o out_file [OPTIONS]

    h5repack now understands either syntax.

  • An h5repack option to set the minimum number of links in indexed format was introduced in Release 1.8.0 as '-d min_indexed_links' or '--indexed=min_indexed_links'. In Release 1.8.1, the '-i' form has been changed to '-d' as follows:
         -d min_indexed_links
    or
         --indexed=min_indexed_links

  • The command-line syntax of h5diff was changed in Release 1.8.0 to the following:
         h5diff [OPTIONS] file1 file2 [object1 [object2 ] ]

Tools with new options:
  • h5dump -m T  or  --format T   Sets format of floating point output

Changed Behavior or Output

Changed library behavior:
A 4GB limit on the size of dataset chunks is now properly enforced when a dataset is created.

The HDF5 Library now works more effectively with external links. Some valid external links that previously failed will now be properly recognized. See H5Lcreate_external.

C functions with changed behavior:
The behavior of H5Lcreate_external has changed as described immediately above.

Tools with changed behavior and changed output:
The h5dump -p option now prints the compression ratio if a compression filter is associated with a dataset.

h5dump now supports external links, displaying the target objects (datasets, groups, and named datatypes).

Tools with changed output:

Changed Library Configuration

The following configuration flag is new with this release:
--disable-sharedlib-rpath

Removed Patch Requirement

The patch that was required for Cygwin with HDF5 Release 1.8.0 has been rolled into this release and no longer needs to be applied by the user.

Release 1.8.0 versus Release 1.6.x

HDF5 Release 1.8.0 is a major release with several new features and a variety of bugfixes, optimizations, and portability enhancements.

See the document “What’s New in HDF5 1.8.0” for a high-level overview of the new functionality in this release. The following pages assume a familiarity with that overview.

This section provides details of the API-level changes that have been made in the transition to HDF5 Release 1.8.0 from the Release 1.6.x series.

API Compatibility Macros with Associated Renamed and New Functions

Release 1.8.0 introduces API compatibility macros designed to facilitate application migration. These macros are intended to facilitate developer management of a clean, step-by-step migration from an older HDF5 Library to the new release; they can also be used to enable older applications to use the new library without requiring that the application be rewritten. See API Compatibility Macros in HDF5 for a full description.

Macros are identified in reference manual function indexes by an italic typeface.

The new macros and the new and old functions to which they may be mapped are as follows:

H5Acreate      H5Acreate1
H5Acreate2
Renamed from H5Acreate
New
H5Aiterate      H5Aiterate1
H5Aiterate2
Renamed from H5Aiterate
New
H5Eclear      H5Eclear1
H5Eclear2
Renamed from H5Eclear
New
H5Eget_auto      H5Eget_auto1
H5Eget_auto2
Renamed from H5Eget_auto
New
H5Eprint      H5Eprint1
H5Eprint2
Renamed from H5Eprint
New
H5Epush      H5Epush1
H5Epush2
Renamed from H5Epush
New
H5Eset_auto      H5Eset_auto1
H5Eset_auto2
Renamed from H5Eset_auto
New
H5Ewalk      H5Ewalk1
H5Ewalk2
Renamed from H5Ewalk
New
H5Gcreate      H5Gcreate1
H5Gcreate2
Renamed from H5Gcreate
New
H5Gopen      H5Gopen1
H5Gopen2
Renamed from H5Gopen
New
H5Pget_filter      H5Pget_filter1
H5Pget_filter2
Renamed from H5Pget_filter
New
H5Pget_filter_by_id      H5Pget_filter_by_id1
H5Pget_filter_by_id2
Renamed from H5Pget_filter_by_id
New
H5Pinsert      H5Pinsert1
H5Pinsert2
Renamed from H5Pinsert
New
H5Pregister      H5Pregister1
H5Pregister2
Renamed from H5Pregister
New
H5Rget_obj_type      H5Rget_obj_type1
H5Rget_obj_type2
Renamed from H5Rget_obj_type
New
H5Tarray_create      H5Tarray_create1
H5Tarray_create2
Renamed from H5Tarray_create
New
H5Tcommit      H5Tcommit1
H5Tcommit2
Renamed from H5Tcommit
New
H5Tget_array_dims      H5Tget_array_dims1
H5Tget_array_dims2
Renamed from H5Tget_array_dims
New
H5Topen      H5Topen1
H5Topen2
Renamed from H5Topen
New

New Functions and Tools

C functions:
The following C functions are new for Release 1.8.0 and, unless otherwise noted, are documented in the HDF5 Reference Manual.

Recursive iteration
 
H5Lvisit      herr_t H5Lvisit( hid_t group_id, H5_index_t index_type, H5_iter_order_t order, H5L_iterate_t op, void *op_data )
See entry.
H5Lvisit_by_name      herr_t H5Lvisit_by_name( hid_t loc_id, const char *group_name, H5_index_t index_type, H5_iter_order_t order, H5L_iterate_t op, void *op_data, hid_t lapl_id )
See entry.
H5Ovisit      herr_t H5Ovisit( hid_t group_id, H5_index_t index_type, H5_iter_order_t order, H5O_iterate_t op, void *op_data )
See entry.
H5Ovisit_by_name      herr_t H5Ovisit_by_name( hid_t loc_id, const char *object_name, H5_index_t index_type, H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id )
See entry.

“Format bounds” property
Release-to-release format compatibility
 
H5Pset_libver_bounds      herr_t H5Pset_libver_bounds( hid_t fapl_id, H5F_libver_t low, H5F_libver_t high )
See entry.
H5Pget_libver_bounds      herr_t H5Pget_libver_bounds( hid_t fapl_id, H5F_libver_t *low, H5F_libver_t *high )
See entry.

Configurable compact-or-indexed
groups (compact and large groups)
 
H5Pset_link_phase_change      herr_t H5Pset_link_phase_change( hid_t gcpl_id, unsigned max_compact, unsigned min_dense )
See entry.
H5Pget_link_phase_change      herr_t H5Pget_link_phase_change( hid_t gcpl_id, unsigned *max_compact, unsigned *min_dense )
See entry.
H5Pset_est_link_info      herr_t H5Pset_est_link_info( hid_t gcpl_id, unsigned est_num_entries, unsigned est_name_len )
See entry.
H5Pget_est_link_info      herr_t H5Pget_est_link_info( hid_t gcpl_id, unsigned *est_num_entries, unsigned *est_name_len )
See entry.
H5Pset_nlinks      herr_t H5Pset_nlinks( hid_t lapl_id, size_t nlinks )
See entry.
H5Pget_nlinks      herr_t H5Pget_nlinks( hid_t lapl_id, size_t *nlinks )
See entry.

User-defined links
 
H5Lcreate_ud      herr_t H5Lcreate_ud( hid_t link_loc_id, const char *link_name, H5L_type_t link_type, const char *udata, size_t udata_size, hid_t lcpl_id, hid_t lapl_id )
See entry.
H5Lregister      herr_t H5Lregister( const H5L_class_t * link_class )
See entry.
H5Lunregister      herr_t H5Lunregister( H5L_type_t link_cls_id )
See entry.
H5Oincr_refcount      herr_t H5Oincr_refcount( hid_t object_id )
See entry.
H5Odecr_refcount      herr_t H5Odecr_refcount( hid_t object_id )
See entry.

External links
 
H5Lcreate_external      herr_t H5Lcreate_external( const char *file_name, const char *object_name, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id )
See entry.
H5Lunpack_elink_val      herr_t H5Lunpack_elink_val( char *ext_linkval, size_t link_size, const char **filename, const char **obj_path )
See entry.
H5Pset_elink_prefix      herr_t H5Pset_elink_prefix( hid_t lapl_id, const char *prefix )
See entry.
H5Pget_elink_prefix      herr_t H5Pget_elink_prefix( hid_t lapl_id, const char **prefix )
See entry.

Link creation order
tracking and indexing
 
H5Pset_link_creation_order      herr_t H5Pset_link_creation_order( hid_t ocpl_id, unsigned *crt_order_flags )
See entry.
H5Pget_link_creation_order      herr_t H5Pget_link_creation_order( hid_t ocpl_id, unsigned *crt_order_flags )
See entry.
H5Gget_create_plist      hid_t H5Gget_create_plist( hid_t group_id )
See entry.
H5Gget_info_by_idx      herr_t H5Gget_info_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_type, H5_iter_order_t order, hsize_t n, H5G_info_t *group_info, hid_t lapl_id )
See entry.
H5Tget_create_plist      hid_t H5Tget_create_plist( hid_t dtype_id )
See entry.

Link API (H5L), an all-new interface
(includes user-defined and external links)
 
H5Lcopy      herr_t H5Lcopy( hid_t src_loc_id, const char *src_name, hid_t dest_loc_id, const char *dest_name, hid_t lcpl_id hid_t lapl_id )
See entry.
H5Lcreate_external      herr_t H5Lcreate_external( const char *file_name, const char *object_name, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id )
See entry.
H5Lcreate_hard      herr_t H5Lcreate_hard( hid_t obj_loc_id, const char *obj_name, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id )
See entry.
H5Lcreate_soft      herr_t H5Lcreate_soft( const char *target_path, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id )
See entry.
H5Lcreate_ud      herr_t H5Lcreate_ud( hid_t link_loc_id, const char *link_name, H5L_type_t link_type, const char *udata, size_t udata_size, hid_t lcpl_id, hid_t lapl_id )
See entry.
H5Ldelete      herr_t H5Ldelete( hid_t loc_id, const char *name, hid_t lapl_id )
See entry.
H5Ldelete_by_idx      herr_t H5Ldelete_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, hid_t lapl_id )
See entry.
H5Lexists      htri_t H5Lexists( hid_t loc_id, const char *name, hid_t lapl_id )
See entry.
H5Lget_info      herr_t H5Lget_info( hid_t link_loc_id, const char *link_name, H5L_info_t *link_buff, hid_t lapl_id )
See entry.
H5Lget_info_by_idx      herr_t H5Lget_info_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, H5L_info_t *link_val, hid_t lapl_id )
See entry.
H5Lget_name_by_idx      ssize_t H5Lget_name_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, char *name, size_t size, hid_t lapl_id )
See entry.
H5Lget_val      herr_t H5Lget_val( hid_t link_loc_id, const char *link_name, void *linkval_buff, size_t size, hid_t lapl_id )
See entry.
H5Lget_val_by_idx      ssize_t H5Lget_val_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, char *value_buf, size_t size, hid_t lapl_id )
See entry.
H5Lis_registered      htri_t H5Lis_registered( H5L_type_t link_cls_id )
See entry.
H5Literate      herr_t H5Literate( hid_t loc_id, H5_index_t index_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate_t op, void *op_data )
See entry.
H5Literate_by_name      herr_t H5Literate( hid_t loc_id, const char *group_name, H5_index_t index_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate_t op, void *op_data, hid_t *lapl_id )
See entry.
H5Lmove      herr_t H5Lmove( hid_t src_loc_id, const char *src_name, hid_t dest_loc_id, const char *dest_name, hid_t lcpl, hid_t lapl )
See entry.
H5Lregister      herr_t H5Lregister( const H5L_class_t * link_class )
See entry.
H5Lunpack_elink_val      herr_t H5Lunpack_elink_val( char *ext_linkval, size_t link_size, const char **filename, const char **obj_path )
See entry.
H5Lunregister      herr_t H5Lunregister( H5L_type_t link_cls_id )
See entry.
H5Lvisit      herr_t H5Lvisit( hid_t group_id, H5_index_t index_type, H5_iter_order_t order, H5L_iterate_t op, void *op_data )
See entry.
H5Lvisit_by_name      herr_t H5Lvisit_by_name( hid_t loc_id, const char *group_name, H5_index_t index_type, H5_iter_order_t order, H5L_iterate_t op, void *op_data, hid_t lapl_id )
See entry.

Enhanced attribute handling
 
H5Acreate2      hid_t H5Acreate2( hid_t loc_id, const char *obj_name, const char *attr_name, hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t aapl_id, hid_t lapl_id )
See entry.
H5Adelete_by_idx      herr_t H5Adelete_by_idx( hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id )
See entry.
H5Adelete_by_name      herr_t H5Adelete_by_name( hid_t loc_id, const char *obj_name, const char *attr_name, hid_t lapl_id )
See entry.
H5Aget_info      herr_t H5Aget_info( hid_t attr_id, H5A_info_t *ainfo )
See entry.
H5Aget_info_by_idx      herr_t H5Aget_info_by_idx( hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5A_info_t *ainfo, hid_t lapl_id )
See entry.
H5Aget_info_by_name      herr_t H5Aget_info_by_name( hid_t loc_id, const char *obj_name, const char *attr_name, H5A_info_t *ainfo, hid_t lapl_id )
See entry.
H5Aget_name_by_idx      ssize_t H5Aget_name_by_idx( hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, char *name, size_t size, hid_t lapl_id )
See entry.
H5Aget_storage_size      hsize_t H5Aget_storage_size( hid_t attr_id )
See entry.
H5Aiterate2      herr_t H5Aiterate2( hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, hsize_t *n, H5A_operator2_t op, void *op_data )
See entry.
H5Aiterate_by_name      herr_t H5Aiterate_by_name( hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t *n, H5A_operator2_t op, void *op_data, hid_t lapd_id )
See entry.
H5Aopen      herr_t H5Aopen( hid_t loc_id, const char *obj_name, const char *attr_name, hid_t aapl_id, hid_t lapl_id )
See entry.
H5Aopen_by_idx      herr_t H5Aopen_by_idx( hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t aapl_id, hid_t lapl_id )
See entry.
H5Arename_by_name      herr_t H5Arename_by_name( hid_t loc_id, const char *obj_name, const char *old_attr_name, const char *new_attr_name, hid_t lapl_id )
See entry.

Managing large numbers of attributes
 
H5Pset_attr_phase_change      herr_t H5Pset_attr_phase_change( hid_t ocpl_id, unsigned max_compact, unsigned min_dense )
See entry.
H5Pget_attr_phase_change      herr_t H5Pget_attr_phase_change( hid_t ocpl_id, unsigned *max_compact, unsigned *min_dense )
See entry.

Attribute creation order
tracking and indexing
 
H5Pset_attr_creation_order      herr_t H5Pset_attr_creation_order( hid_t ocpl_id, unsigned crt_order_flags )
See entry.
H5Pget_attr_creation_order      herr_t H5Pget_attr_creation_order( hid_t ocpl_id, unsigned *crt_order_flags )
See entry.
H5Aget_create_plist      hid_t H5Aget_create_plist( hid_t attr_id )
See entry.

Shared object header messages (SOHM)
 
H5Pset_shared_mesg_index      herr_t H5Pset_shared_mesg_index( hid_t fcpl_id, unsigned index_num, unsigned mesg_type_flags, unsigned min_mesg_size )
See entry.
H5Pset_shared_mesg_nindexes      herr_t H5Pset_shared_mesg_nindexes( hid_t plist_id, unsigned nindexes )
See entry.
H5Pset_shared_mesg_phase_change      herr_t H5Pset_shared_mesg_phase_change( hid_t fcpl_id, unsigned max_list, unsigned min_btree )
See entry.
H5Pget_shared_mesg_index      herr_t H5Pget_shared_mesg_index( hid_t fcpl_id, unsigned index_num, unsigned *mesg_type_flags, unsigned *min_mesg_size )
See entry.
H5Pget_shared_mesg_nindexes      herr_t H5Pget_shared_mesg_nindexes( hid_t fcpl_id, unsigned *nindexes )
See entry.
H5Pget_shared_mesg_phase_change      herr_t H5Pget_shared_mesg_phase_change( hid_t fcpl_id, unsigned *max_list, unsigned *min_btree )
See entry.

Enhanced local heap size
management   (group meta data)
 
H5Pset_local_heap_size_hint      herr_t H5Pset_local_heap_size_hint( hid_t gcpl_id, size_t *size_hint )
See entry.
H5Pget_local_heap_size_hint      herr_t H5Pget_local_heap_size_hint( hid_t gcpl_id, size_t size_hint )
See entry.

UNICODE support
 
H5Pset_char_encoding      herr_t H5Pset_char_encoding( hid_t plist_id, H5T_cset_t encoding )
See entry.
H5Pget_char_encoding      herr_t H5Pget_char_encoding( hid_t plist_id, H5T_cset_t encoding )
See entry.

Object API (H5O), all new
 
H5Oclose      herr_t H5Oclose( hid_t object_id )
See entry.
H5Ocopy      herr_t H5Ocopy( hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, const char *dst_name, hid_t ocp_plist_id, hid_t lcpl_id )
See entry.
H5Odecr_refcount      herr_t H5Odecr_refcount( hid_t object_id )
See entry.
H5Oget_comment      ssize_t H5Oget_comment( hid_t object_id, char *comment, size_t bufsize )
See entry.
H5Oget_comment_by_name      ssize_t H5Oget_comment_by_name( hid_t loc_id, const char *name, char *comment, size_t bufsize, hid_t lapl_id )
See entry.
H5Oget_info      herr_t H5Oget_info( hid_t object_id, H5O_info_t *obj_info )
See entry.
H5Oget_info_by_idx      herr_t H5Oget_info_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, H5O_info_t *obj_info, hid_t lapl_id )
See entry.
H5Oget_info_by_name      herr_t H5Oget_info_by_name( hid_t loc_id, const char *object_name, H5O_info_t *object_info, hid_t lapl_id )
See entry.
H5Oincr_refcount      herr_t H5Oincr_refcount( hid_t object_id )
See entry.
H5Olink      herr_t H5Olink( hid_t obj_id, hid_t new_loc_id, const char *new_link_name, hid_t lcpl, hid_t lapl )
See entry.
H5Oopen      hid_t H5Oopen( hid_t loc_id, const char *name, hid_t lapl_id )
See entry.
H5Oopen_by_addr      hid_t H5Oopen_by_addr( hid_t loc_id, haddr_t addr )
See entry.
H5Oopen_by_idx      herr_t H5Oopen_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, hid_t lapl_id )
See entry.
H5Oset_comment      herr_t H5Oset_comment( hid_t object_id, const char *comment )
See entry.
H5Oset_comment_by_name      herr_t H5Oset_comment_by_name( hid_t loc_id, const char *name, const char *comment, hid_t lapl_id )
See entry.
H5Ovisit      herr_t H5Ovisit( hid_t group_id, H5_index_t index_type, H5_iter_order_t order, H5O_iterate_t op, void *op_data )
See entry.
H5Ovisit_by_name      herr_t H5Ovisit_by_name( hid_t loc_id, const char *object_name, H5_index_t index_type, H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id )
See entry.

Object creation or copying with
“create intermediate groups” property
 
H5Pset_create_intermediate_group   herr_t H5Pset_create_intermediate_group( hid_t gcpl_id, unsigned crt_intermed_group )
See entry.
H5Pget_create_intermediate_group herr_t H5Pget_create_intermediate_group( hid_t gcpl_id, unsigned *crt_intermed_group )
See entry.

Object copy properties
 
H5Ocopy      herr_t H5Ocopy( hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, const char *dst_name, hid_t ocp_plist_id, hid_t lcpl_id )
See entry.
H5Pset_copy_object      herr_t H5Pset_copy_object( hid_t cplist_id, unsigned copy_options )
See entry.
H5Pget_copy_object      herr_t H5Pget_copy_object( hid_t cplist_id, unsigned *copy_options )
See entry.

Improved object and file
information retrieval
 
H5Aget_info      herr_t H5Aget_info( hid_t attr_id, H5A_info_t *ainfo )
See entry.
H5Aget_info_by_name      herr_t H5Aget_info_by_name( hid_t loc_id, const char *obj_name, const char *attr_name, H5A_info_t *ainfo, hid_t lapl_id )
See entry.
H5Aget_info_by_idx      herr_t H5Aget_info_by_idx( hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5A_info_t *ainfo, hid_t lapl_id )
See entry.
H5Fget_info      herr_t H5Fget_info( hid_t obj_id, H5F_info_t *bh_info )
See entry.
H5Gget_info      herr_t H5Gget_info( hid_t group_id, H5G_info_t group_info )
See entry.
H5Gget_info_by_name      herr_t H5Gget_info_by_name( hid_t loc_id, const char *group_name, H5G_info_t group_info, hid_t lapl_id )
See entry.
H5Gget_info_by_idx      herr_t H5Gget_info_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_type, H5_iter_order_t order, hsize_t n, H5G_info_t group_info, hid_t lapl_id )
See entry.
H5Lget_info      herr_t H5Lget_info( hid_t link_loc_id, const char *link_name, H5L_info_t *link_buff, hid_t lapl_id )
See entry.
H5Lget_info_by_idx      herr_t H5Lget_info_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, H5L_info_t *link_val, hid_t lapl_id )
See entry.
H5Oget_info      herr_t H5Oget_info( hid_t object_id, H5O_info_t *obj_info )
See entry.
H5Oget_info_by_name      herr_t H5Oget_info_by_name( hid_t loc_id, const char *object_name, H5O_info_t *object_info, hid_t lapl_id )
See entry.
H5Oget_info_by_idx      herr_t H5Oget_info_by_idx( hid_t loc_id, const char *group_name, H5_index_t index_field, H5_iter_order_t order, hsize_t n, H5O_info_t *obj_info, hid_t lapl_id )
See entry.

Name of referenced object
 
H5Rget_name      ssize_t H5Rget_name( hid_t loc_id, H5R_type_t ref_type, void *ref, char *name, size_t size )
See entry.

Anonymous object creation
 
H5Dcreate_anon      hid_t H5Dcreate_anon( hid_t loc_id, hid_t type_id, hid_t space_id, hid_t dcpl_id, hid_t dapl_id )
See entry.
H5Gcreate_anon      hid_t H5Gcreate_anon(hid_t loc_id, const char * name, hid_t gcpl_id, hid_t gapl_id)
See entry.
H5Tcommit_anon      herr_t H5Tcommit_anon( hid_t loc_id, hid_t type_id, hid_t tcpl_id, hid_t tapl_id )
See entry.
H5Lcreate_hard      herr_t H5Lcreate_hard( hid_t obj_loc_id, const char *obj_name, hid_t link_loc_id, const char *link_name, hid_t lcpl, hid_t lapl )
See entry.

New-style object creation and open
functions  (includes anonymous
object creation)
 
H5Dcreate_anon      hid_t H5Dcreate_anon( hid_t loc_id, hid_t type_id, hid_t space_id, hid_t dcpl_id, hid_t dapl_id )
See entry.
H5Dcreate2      hid_t H5Dcreate2( hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t lcpl_id, hid_t dcpl_id, hid_t dapl_id )
See entry.
H5Dopen2      hid_t H5Dopen2( hid_t loc_id, const char *name, hid_t dapl_id )
See entry.
H5Gcreate_anon      hid_t H5Gcreate_anon(hid_t loc_id, const char * name, hid_t gcpl_id, hid_t gapl_id)
See entry.
H5Gcreate2      hid_t H5Gcreate2( hid_t loc_id, const char *name, hid_t lcpl_id, hid_t gcpl_id, hid_t gapl_id )
See entry.
H5Gopen2      hid_t H5Gopen2( hid_t loc_id, const char * name, hid_t gapl_id )
See entry.
H5Tcommit_anon      herr_t H5Tcommit_anon( hid_t loc_id, hid_t type_id, hid_t tcpl_id, hid_t tapl_id )
See entry.
H5Tcommit2      herr_t H5Tcommit2( hid_t loc_id, const char *name, hid_t type_id, hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id )
See entry.
H5Topen2      hid_t H5Topen2( hid_t loc_id, const char * name, hid_t tapl_id )
See entry.

User-defined identifiers
 
H5Iregister      hid_t H5Iregister(H5I_type_t type, void *object)
See entry.
H5Iregister_type      H5I_type_t H5Iregister_type(size_t hash_size, unsigned reserved, H5I_free_t free_func)
See entry.
H5Idestroy_type      herr_t H5Idestroy_type(H5I_type_t type)
See entry.
H5Iinc_type_ref      int H5Iinc_type_ref(H5I_type_t type)
See entry.
H5Idec_type_ref      int H5Idec_type_ref(H5I_type_t type)
See entry.
H5Iget_type_ref      int H5Iget_type_ref(H5I_type_t type)
See entry.

Other identifier API (H5I) enhancements
 
H5Iclear_type      herr_t H5Iclear_type(H5I_type_t type, hbool_t force)
See entry.
H5Inmembers      int H5Inmembers(H5I_type_t type, hsize_t *num_members)
See entry.
H5Iobject_verify      void * H5Iobject_verify(hid_t id, H5I_type_t id_type)
See entry.
H5Iremove_verify      void * H5Iremove_verify(hid_t id, H5I_type_t id_type)
See entry.
H5Isearch      void * H5Isearch(H5I_type_t type, H5I_search_func_t func, void *key)
See entry.
H5Itype_exists      htri_t H5Itype_exists(H5I_type_t type)
See entry.

Compression filters: N-bit
and scale-offset
 
H5Pset_nbit      herr_t H5Pset_nbit( hid_t plist_id )
See entry.
H5Pset_scaleoffset      herr_t H5Pset_scaleoffset( hid_t plist_id, H5Z_SO_scale_type_t scale_type, int scale_factor )
See entry.

User-defined datatype conversion
callback functions
 
H5Pget_type_conv_cb      herr_t H5Pget_type_conv_cb( hid_t plist, H5T_conv_except_func_t *func, void **op_data )
See entry.
H5Pset_type_conv_cb      herr_t H5Pset_type_conv_cb( hid_t plist, H5T_conv_except_func_t func, void *op_data )
See entry.

Datatype compiler conversion check
 
H5Tcompiler_conv      htri_t H5Tcompiler_conv( hid_t src_id, hid_t dst_id )
See entry.

Dataset array size reduction
 
H5Dset_extent      herr_t H5Dset_extent( hid_t dset_id, const hsize_t *size )
See entry.

Dataspace equivalence
 
H5Sextent_equal      herr_t H5Sextent_equal( hid_t sid1, hid_t sid2 )
See entry.

Direct I/O, bypassing system cache
 
H5Pset_fapl_direct      herr_t H5Pset_fapl_direct( hid_t fapl_id, size_t alignment, size_t block_size, size_t cbuf_size )
See entry.
H5Pget_fapl_direct      herr_t H5Pget_fapl_direct( hid_t fapl_id, size_t *alignment, size_t *block_size, size_t *cbuf_size )
See entry.

Parallel I/O optimization
(collective chunk I/O)
 
H5Pset_dxpl_mpio_chunk_opt      herr_t H5Pset_dxpl_mpio_chunk_opt(hid_t dxpl_id, H5FD_mpio_chunk_opt_t opt_mode)
See entry.
H5Pset_dxpl_mpio_chunk_opt_num      herr_t H5Pset_dxpl_mpio_chunk_opt_num(hid_t dxpl_id, unsigned num_chunk_per_proc)
See entry.
H5Pset_dxpl_mpio_chunk_opt_ratio      herr_t H5Pset_dxpl_mpio_chunk_opt_ratio(hid_t dxpl_id, unsigned percent_num_proc_per_chunk)
See entry.
H5Pset_dxpl_mpio_collective_opt      herr_t H5Pset_dxpl_mpio_collective_opt( hid_t dxpl_id, H5FD_mpio_collective_opt_t opt_mode )
See entry.

Enhanced error handling (H5E)
 
H5Eauto_is_v2      herr_t H5Eauto_is_v2( hid_t estack_id, unsigned *is_stack )
See entry.
H5Eclear2      herr_t H5Eclear2( hid_t estack_id )
See entry.
H5Eclose_msg      herr_t H5Eclose_msg (hid_t mesg_id)
See entry.
H5Eclose_stack      herr_t H5Eclose_stack(hid_t estack_id)
See entry.
H5Ecreate_msg      hid_t H5Ecreate_msg(hid_t class, H5E_type_t msg_type, const char* mesg)
See entry.
H5Eget_auto2      herr_t H5Eget_auto2(hid_t estack_id, H5E_auto2_t * func, void **client_data)
See entry.
H5Eget_class_name      ssize_t H5Eget_class_name(hid_t class_id, char* name, size_t size)
See entry.
H5Eget_current_stack      hid_t H5Eget_current_stack(void)
See entry.
H5Eget_msg      ssize_t H5Eget_msg(hid_t mesg_id, H5E_type_t* mesg_type, char* mesg, size_t size)
See entry.
H5Eget_num      ssize_t H5Eget_num(hid_t estack_id)
See entry.
H5Epop      herr_t H5Epop(hid_t estack_id, size_t count)
See entry.
H5Eprint2      herr_t H5Eprint2(hid_t estack_id, FILE * stream)
See entry.
H5Epush2      herr_t H5Epush2(hid_t estack_id, const char *file, const char *func, unsigned line, hid_t class_id, hid_t major_id, hid_t minor_id, const char *msg, ...)
See entry.
H5Eregister_class      hid_t H5Eregister_class(const char* cls_name, const char* lib_name, const char* version)
See entry.
H5Eset_auto2      herr_t H5Eset_auto2(hid_t estack_id, H5E_auto2_t func, void *client_data)
See entry.
H5Eset_current_stack      herr_t H5Eset_current_stack(hid_t estack_id)
See entry.
H5Eunregister_class      herr_t H5Eunregister_class(hid_t class_id)
See entry.
H5Ewalk2      herr_t H5Ewalk2(hid_t estack_id, H5E_direction_t direction, H5E_walk2_t func, void * client_data)
See entry.

Meta data cache management
 
H5Fget_mdc_config      herr_t H5Fget_mdc_config(hid_t file_id, H5AC_cache_config_t *config_ptr)
See entry.
H5Fget_mdc_hit_rate      herr_t H5Fget_mdc_hit_rate(hid_t file_id, double *hit_rate_ptr)
See entry.
H5Fget_mdc_size      herr_t H5Fget_mdc_size(hid_t file_id, size_t *max_size_ptr, size_t *min_clean_size_ptr, size_t *cur_size_ptr, int *cur_num_entries_ptr)
See entry.
H5Freset_mdc_hit_rate_stats      herr_t H5Freset_mdc_hit_rate_stats(hid_t file_id)
See entry.
H5Fset_mdc_config      herr_t H5Fset_mdc_config(hid_t file_id, H5AC_cache_config_t *config_ptr)
See entry.
H5Pset_mdc_config      herr_t H5Pset_mdc_config(hid_t plist_id, H5AC_cache_config_t * config_ptr)
See entry.
H5Pget_mdc_config      herr_t H5Pget_mdc_config(hid_t plist_id, H5AC_cache_config_t * config_ptr)
See entry.

File read/write status
 
H5Fget_intent      herr_t H5Fget_intent( hid_t file_id, unsigned *intent )
See entry.

Arithmetic data transform on I/O
 
H5Pget_data_transform      herr_t H5Pget_data_transform( hid_t plist_id, char* expression, size_t size)
See entry.
H5Pset_data_transform      herr_t H5Pset_data_transform( hid_t plist, const char* expression )
See entry.

Dataspace and datatype serial conversion
 
H5Sdecode      hid_t H5Sdecode( const void *buf )
See entry.
H5Sencode      herr_t H5Sencode( hid_t obj_id, void *buf, size_t *nalloc )
See entry.
H5Tdecode      hid_t H5Tdecode( const void *buf )
See entry.
H5Tencode      herr_t H5Tencode( hid_t obj_id, void *buf, size_t *nalloc )
See entry.

Enhanced filter management
 
H5Pget_filter2 herr_t H5Pget_filter2( hid_t plist_id, unsigned idx, unsigned int *flags, size_t *cd_nelmts, unsigned cd_values[], size_t namelen, char name[], unsigned *filter_config)
See entry.
H5Pget_filter_by_id2 hid_t H5Pget_filter_by_id2( hid_t plist_id, H5Z_filter_t filter_id, unsigned int *flags, size_t *cd_nelmts, unsigned int cd_values[], size_t namelen, char name[], unsigned int *filter_config)
See entry.

Comparison of properties
 
H5Pinsert2 hid_t H5Pinsert2( hid_t plid, const char *name, size_t size, void *value, H5P_prp_set_func_t set, H5P_prp_get_func_t get, H5P_prp_delete_func_t delete, H5P_prp_copy_func_t copy, H5P_prp_compare_func_t compare, H5P_prp_close_func_t close)
See entry.
H5Pregister2 herr_t H5Pregister2( hid_t class, const char * name, size_t size, void * default, H5P_prp_create_func_t create, H5P_prp_set_func_t set, H5P_prp_get_func_t get, H5P_prp_delete_func_t delete, H5P_prp_copy_func_t copy, H5P_prp_compare_func_t compare, H5P_prp_close_func_t close)
See entry.

Two-way conversion between datatype
and text description of datatype
 
H5LTtext_to_dtype hid_t H5LTtext_to_datatype( const char *text, H5LT_lang_t lang_type)
See entry.
H5LTdtype_to_text herr_t H5LTdtype_to_text( hid_t datatype, char *str, H5LT_lang_t lang_type, size_t *len)
See entry.

Fortran subroutines:
New Fortran subroutines in the main library are not yet included for Release 1.8.0-beta.

See below for Fortran routines for High-Level HDF5 APIs.

C++ wrappers:
There no new C++ wrappers for Release 1.8.0-beta.

High Level C APIs:

H5LT: The following functions have been added to the HDF5 Lite (H5LT) API:
H5LTtext_to_dtype hid_t H5LTtext_to_datatype( const char *text, H5LT_lang_t lang_type)
See entry.
H5LTdtype_to_text herr_t H5LTdtype_to_text( hid_t datatype, char *str, H5LT_lang_t lang_type, size_t *len)
See entry.
H5LTset_attribute_long_long herr_t H5LTset_attribute_long_long( hid_t loc_id, const char *obj_name, const char *attr_name, const long_long *data, size_t *size)
See entry.
H5LTget_attribute_long_long     herr_t H5LTget_attribute_long_long( hid_t loc_id, const char *obj_name, const char *attr_name, long_long *data)
See entry.

Two high-level C APIs are distributed for the first time with this release:
 
  • H5PT, the HDF5 Packet Table interface
  • H5DS, the HDF5 Dimension Scale interface

Full documentation for these interfaces can be accessed directly from the High Level APIs overview page.

The new functions included in the packet table (H5PT) high-level APIs are as follows:
H5PTcreate_fl hid_t H5PTcreate_fl( hid_t loc_id, const char * dset_name, hid_t dtype_id, hsize_t chunk_size )
H5PTcreate_vl hid_t H5PTcreate_vl( hid_t loc_id, const char *dset_name, hsize_t chunk_size )
H5PTopen hid_t H5PTopen( hid_t loc_id, const char *dset_name )
H5PTclose herr_t H5PTclose( hid_t table_id )
H5PTappend herr_t H5PTappend( hid_t table_id, hsize_t nrecords, const void *data)
H5PTcreate_index herr_t H5PTcreate_index( hid_t table_id)
H5PTset_index herr_t H5PTset_index( hid_t table_id, hsize_t pt_index)
H5PTread_packets herr_t H5PTread_packets( hid_t table_id, hsize_t start, hsize_t nrecords, void *data)
H5PTget_next herr_t H5PTget_next( hid_t table_id, hsize_t nrecords, void *data)
H5PTget_num_packets herr_t H5PTget_num_packets( hid_t table_id, hsize_t * nrecords)
H5PTis_valid herr_t H5PTis_valid( hid_t table_id)
H5PTis_varlen herr_t H5PTis_varlen( hid_t table_id)
H5PTfree_vlen_readbuff     herr_t H5PTfree_vlen_readbuff( hid_t table_id, hsize_t bufflen, void * buff)
 

The new functions included in the dimension scale (H5DS) high-level APIs are as follows:
H5DSset_scale herr_t H5DSmake_scale(hid_t dsid, char *dimname)
H5DSattach_scale herr_t H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
H5DSdetach_scale herr_t H5DSdetach_scale(hid_t did, hid_t dsid, unsigned int idx)
H5DSis_attached htri_t H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx)
H5DSis_scale htri_t H5DSis_scale(hid_t did)
H5DSiterate_scales herr_t H5DSiterate_scales(hid_t did, unsigned dim, int *idx, H5DS_iterate_t visitor, void *visitor_data)
H5DSset_label herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
H5DSget_label ssize_t H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
H5DSget_scale_name     hssize_t H5DSget_scale_name(hid_t did, char name, size_t *size)
H5DSget_num_scales int H5DSget_num_scales(hid_t did, unsigned int idx)

High Level Fortan90 APIs:
Fortran90 subroutines are now available for the following high-level APIs:
     H5LT: HDF5 Lite
     H5IM: HDF5 Image
     H5TB: HDF5 Table

Tools:
h5stat
Not yet documented in reference manual.

Deprecated and Deleted Functions

The following functions, subroutines and wrappers have been removed in this release:
C functions:
 
H5Pset_fapl_gass
H5Pget_fapl_gass
 
       HDF5 no longer provides GASS support.
H5Pset_fapl_srb
H5Pget_fapl_srb
 
       SRB functionality is now supported through the mechanism described in Integration of HDF5 and the Storage Resource Broker for object-level access (http://www.hdfgroup.org/hdf-srb-html/).
H5Pset_fapl_stream
H5Pget_fapl_stream
 
       The stream virtual file driver (H5FD_STREAM) has been removed from the HDF5 distribution. The functionality remains available from < . . . >.
H5Tset_overflow
H5Tget_overflow
       These two functions are replaced by H5Pget_type_conv_cb and H5Pset_type_conv_cb.

Several functions, subroutines, and wrappers are deprecated in this HDF5 release and may eventually be removed from the HDF5 distribution and from the HDF5 Reference Manual. A Release 1.6.x compatibility mode is provided enabling these and other Release 1.6.x compatibility features, but is available only if the HDF5 Library is configured with the default settings or with the flag --with-default-api-version=v16. Release 1.8.0 also provides macros that can be mapped selectively to 1.6.x and 1.8.0 function versions according to the needs of a user application. The backward compatibility mode is enabled in the Release 1.8.0 binaries distributed by NCSA. See API Compatibility Macros in HDF5 for full details.
 
Deprecated functions are marked in the function index at the beginning of each API section in the HDF5 Reference Manual.

Virtual File Driver Removed

The stream virtual file driver (H5FD_STREAM) have been removed in this release. This affects the functions H5Pset_fapl_stream and H5Pget_fapl_stream and the constant H5FD_STREAM.

This virtual file driver will remain available at http://hdf5-addons.origo.ethz.ch/. Note that as of this writing, this transition is still in progress; the necessary integration tools may not be available when HDF5 Release 1.8.0 first comes out.

Functions with New or Changed Symbols or Fixed Values

Symbols and preset values associated with the following functions, subroutines or wrappers have changed as noted.

C functions:

H5Tregister
Null is no longer a valid value for the parameter func.
 
H5Pget_filter_by_id
H5Pmodify_filter
H5Premove_filter
H5Pset_filter
H5Zfilter_avail
H5Zget_filter_info
Two new filter identifiers are available for the filter parameter:
    H5Z_FILTER_NBIT
    H5Z_FILTER_SCALEOFFSET
 
H5Pget_filter
Two new filter identifiers are available as the return value:
    H5Z_FILTER_NBIT
    H5Z_FILTER_SCALEOFFSET
 

Fortran90 subroutines:

h5pget_filter_f
h5pget_filter_by_id_f
h5pmodify_filter_f
h5premove_filter_f
h5pset_filter_f
h5zfilter_avail_f
h5zget_filter_info_f
Two new filter identifiers are available for the filter or filter_id parameters:
    H5Z_FILTER_NBIT_F
    H5Z_FILTER_SCALEOFFSET_F
 

Functions with Changed Syntax

Function syntax changes in this release are handled through the mechanism described in API Compatibility Macros in HDF5.

Renamed Functions

The following C functions have been renamed. The original function names remain available under certain circumstances; see API Compatibility Macros in HDF5 for full details.

Original name New name
H5Acreate H5Acreate1
H5Aiterate
 
H5Aiterate1
 
H5Eclear H5Eclear1
H5Eget_auto H5Eget_auto1
H5Eprint H5Eprint1
H5Epush H5Epush1
H5Eset_auto H5Eset_auto1
H5Ewalk
 
H5Ewalk1
 
H5Gcreate H5Gcreate1
H5Gopen
 
H5Gopen1
 
H5Pget_filter H5Pget_filter1
H5Pget_filter_by_id     H5Pget_filter_by_id1
H5Pinsert H5Pinsert1
H5Pregister
 
H5Pregister1
 
H5Rget_obj_type
 
H5Rget_obj_type1
 
H5Tarray_create H5Tarray_create1
H5Tcommit H5Tcommit1
H5Tget_array_ndims H5Tget_array_ndims1
H5Topen H5Topen1

Changed Library Structures

The following library structures have changed as follows:

C API:

H5FD_t
In this struct, the field fileno[2] has changed to fileno.
The struct is otherwise unchanged.
 
H5Z_class_t
This struct contains three new fields:
    version
    encoder_present
    decoder_present
The struct is now defined as follows:
    typedef struct H5Z_class_t {
        int version; 
        H5Z_filter_t filter_id;
        unsigned encoder_present
        unsigned decoder_present
        const char  *comment;
        H5Z_can_apply_func_t can_apply_func;
        H5Z_set_local_func_t set_local_func;
        H5Z_func_t filter_func;            
    } H5Z_class_t;

Changed ENUMs

The following enumerated datatypes used by the library are discontinued in this release:

H5E_major_t — Major error numbers
H5E_minor_t — Minor error numbers
HDF5 error codes have changed from the ENUM format used in earlier releases to an identifier format. As ENUMs, error codes were constants defined at compile time; as identifiers, error codes are defined at runtime, in the same manner as HDF5 object identifiers (file, dataset, group, etc.).

Under normal circumstances, this change should be transparent to user applications.

The following enumerated datatypes used by the library have changed in the C and Fortran APIs as follows:

H5G_obj_t — Object types
This ENUM has reordered as follows:
    H5G_GROUP
    H5G_DATASET
    H5G_TYPE
    H5G_LINK
 
H5I_type_t — Identifier types
The following symbols have been added to this ENUM:
    H5I_UNINT
    H5I_ERROR_CLASS
    H5I_ERROR_MSG
    H5I_ERROR_STACK
 
Another new symbol
    H5I_NTYPES
replaces the old symbol
    H5I_NGROUPS
While visible in the public API, H5I_NTYPES functions as a limit value for the HDF5 Library and is not generally used at the application level. The same was true of H5I_NGROUPS.
 
H5S_class_t — Dataspace type identifiers
The following symbol has been added:
    H5S_NULL
 
H5T_cset_t — Character set encoding identifiers
The following symbol has been added:
    H5T_CSET_UTF8
 
H5Z_filter_t — Filters identifiers
The following symbols have been added:
    H5Z_FILTER_NBIT
    H5Z_FILTER_SCALEOFFSET
 

New Datatypes

The following OpenVMS-specific floating point datatypes are new with this release:
H5T_VAX_F32
H5T_VAX_F64

New Property Lists

The following property lists are new with this release:
H5P_DATASET_ACCESS
H5P_GROUP_CREATE
H5P_GROUP_ACCESS
H5P_DATATYPE_CREATE
H5P_DATATYPE_ACCESS
H5P_ATTRIBUTE_CREATE

Changed Library Configuration

The following configuration features have changed as follows.
  • New with this release:
        --disable-dependency-tracking
        
        --enable-hdf5v1_6
        
        --enable-dconv-exception
        --disable-dconv-exception
        --enable-dconv-accuracy
        --disable-dconv-accuracy
        
        --program-prefix=PREFIX
        --program-prefix=SUFFIX
        --program-transform-name=PROGRAM
        
        --enable-maintainer-mode
        
        --disable-dependency-tracking
        --enable-dependency-tracking
        
        --enable-codestack
        
        --enable-direct-vfd
        
        --with-tags[=TAGS]
        
  • New with this release, but expected to be useful only to those working inside the HDF5 library or working very closely with HDF5 developers:
        --enable-build-all
        --enable-metadata-trace-file
        
  • New with this release, but not actively supported:
        --enable-fphdf5
        
  • Changed in this release:
        --enable-shared[=PKGS]
        --enable-static[=PKGS]
        --enable-fast-install[=PKGS]
        
  • Removed in this release:
        --enable-hdf5v1_4
        --enable-funcstack
        --with-ssl=LIB
        --with-gass=DIR
        --with-srb=DIR

The environment variables FC and FCFLAGS replace F9X and F9XFLAGS, respectively, which are deprecated in this release.

Additional new “influential environment variables” in this release include the following:
    CXX
    CXXFLAGS
    CXXCPP
    F77
    FFLAGS

 

Release 1.6.7 versus Release 1.6.6

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.6 to Release 1.6.7. As this is primarily a bug-fix release, the only interface changes are one changed function signature and the changes related to the removal of the stream I/O driver, as outlined below.

Function with Changed Syntax

The following function syntax has changed; the affected parameter is noted in red.

C function:
H5Sselect_elements
herr_t H5Sselect_elements( hid_t space_id, H5S_seloper_t op,
        size_t num_elements, const hsize_t *coord )

(This syntax change was listed on 10 September 2008, several months after Release 1.6.7.)

Stream I/O Driver Removed

The stream I/O driver, H5FD_STREAM, has been removd from and is no longer distributed with the HDF5 Library. The following APIs have therefore been removed from this release.
    H5Pset_fapl_stream
    H5Pget_fapl_stream
The stream driver ENUM value H5FD_STREAM has also been removed.

While the stream driver is no longer distributed by The HDF Group, it will be made available as a source code distribution from http://hdf5-addons.origo.ethz.ch/. An integration mechanism will be developed and instructions for using the driver with HDF5 will be posted on that site.

Release 1.6.6 versus Release 1.6.5

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.5 to Release 1.6.6.

Release 1.6.6 is primarily a bug-fix release and includes no changes in the syntax or intended behavior of the library’s public interfaces. There are, however, two changes in tool interfaces.

Tools with Changed Options and/or Behavior

The following tools have changed in this release; these changes are documented on the Tools page of the HDF5 Reference Manual.
 
h5repack:
A new -n option allows the user to specify that a new file created by h5repack will use native datatypes. The default behavior is to use the original file datatypes.
     -n   Use native HDF5 datatypes when repacking.
(Default behavior is to use the original file datatypes.)
Note that the default behavior of this tool has changed; prior to Release 1.6.6, h5repack generated files only with native datatypes.

h5dump:
This tool includes a new -b option for binary output.
     -b B   or
--binary=B   
Output dataset to a binary file using the datatype specified by B.
B must have one of the following values:
     LE        Little-endian
     BE        Big-endian
     MEMORY    Memory datatype
     FILE      File datatype
Recommended usage is with the -d and -o options.

 

Release 1.6.5 versus Release 1.6.4

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.4 to Release 1.6.5.

New Functions and Tools

C functions and
Fortran subroutines:
HDF5 Release 1.6.5 is primarily a maintenance release, focusing on bugfixes, optimization and portability; there are no new C APIs or Fortran subroutines.
 
High Level C APIs:
The High Level C APIs (HL), including the HDF5 Image, HDF5 Table, and HDF5 Lite interfaces (H5IM, H5TB, and H5LT, respectively), have been distributed with the main HDF5 source code distribution since Release 1.6.4 and are documented in HDF5: High Level APIs. (Note: In release 1.8 and later, the HL APIs are documented in the HDF5 Reference Manual.)
 
C++ wrappers:
void PropList::copyProp(PropList& dest, const char* name) const
void PropList::copyProp(PropList& dest, const string& name) const
string CommonFG::getComment(const string& name) const
void CommonFG::removeComment(const char* name) const
void CommonFG::removeComment(const string& name) const
hsize_t Attribute::getStorageSize() const
void Attribute::close()
void DataSet::close()
void DataSpace::close()
void DataType::close()
void H5File::close()
void Group::close()
void PropList::close()
H5T_order_t AtomType::getOrder() const
void H5Object::renameAttr(const char* oldname, const char* newname) const
void H5Object::renameAttr(const string& oldname, const string& newname) const
string CommonFG::getObjnameByIdx(hsize_t idx) const
ArrayType AbstractDs::getArrayType() const
VarLenType AbstractDs::getVarLenType() const
ArrayType CommonFG::openArrayType(const char* name) const
ArrayType CommonFG::openArrayType(const string& name) const
VarLenType CommonFG::openVarLenType(const char* name) const
VarLenType CommonFG::openVarLenType(const string& name) const
ArrayType CompType::getMemberArrayType(unsigned member_num) const
VarLenType CompType::getMemberVarLenType(unsigned member_num) const
 

Functions with New or Changed Symbols or Fixed Values

Symbols and preset values associated with the following functions have changed as noted.

C functions:
H5Fget_obj_count
H5F_OBJ_LOCAL has been added as a qualifier on the types of objects to be counted. H5F_OBJ_LOCAL restricts the search to objects opened through current file identifier.
H5Tset_tag
The H5T_OPAQUE_TAG_MAX macro constant, specifying the maximum size of an opaque datatype tag, was added in H5Tpublic.h.

Functions with Changed Syntax

The following functions have changed as noted. Changed items are indicated in red.

C++ wrappers:
In all cases below, a parameter datatype has changed from int to unsigned.
string CompType::getMemberName( unsigned member_num ) const
size_t CompType::getMemberOffset( unsigned member_num ) const
int CompType::getMemberDims( unsigned member_num, size_t* dims, int* perm ) const
H5T_class_t CompType::getMemberClass( unsigned member_num ) const
hid_t CompType::p_get_member_type( unsigned member_num) const
DataType CompType::getMemberDataType( unsigned member_num ) const
ArrayType CompType::getMemberArrayType( unsigned member_num ) const
CompType CompType::getMemberCompType( unsigned member_num ) const
EnumType CompType::getMemberEnumType( unsigned member_num ) const
IntType CompType::getMemberIntType( unsigned member_num ) const
FloatType CompType::getMemberFloatType( unsigned member_num ) const
StrType CompType::getMemberStrType( unsigned member_num ) const
VarLenType CompType::getMemberVarLenType( unsigned member_num ) const

Changed Library Configuration

 

Release 1.6.4 versus Release 1.6.3

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.3 to Release 1.6.4.

New Functions and Tools

C functions and
Fortran subroutines:
HDF5 Release 1.6.4 "Bugfix Release"; there are no new C APIs or Fortran subroutines.
 
High Level C APIs:
The High Level C APIs (HL), including the HDF5 Image, HDF5 Table, and HDF5 Lite interfaces (H5IM, H5TB, and H5LT, respectively) , have been brought into the main HDF5 source code distribution. A link to the HL documentation appears on the opening page of the HDF5 document set or can be accessed directly at http://www.hdfgroup.org/HDF5/hdf5_hl/doc/RM_hdf5hl.html

The HL library, libhdf5_hl.a(so), is built and installed by default but can be disabled with the --disable-hl configure flag.
 
Tools:
A new pair of tools, h5jam and h5unjam, is available to manage user blocks in HDF5 files. See their entry in the HDF5 Reference Manual.

Deleted Functions

The following functions have been removed in this release.
 
C++ wrappers:
The C++ wrappers now rely on the C library's reference counting in place of the class RefCounter, which existed before the C mechanism was available. RefCounter has therefore been removed.

Functions with Changed Syntax

The following functions have changed as noted. In general, one or more parameters or the return value has changed from a signed to an unsigned datatype. Changed items are indicated in red.

C functions:
H5Pget_version
herr_t H5Pget_version(hid_t plist_id, unsigned *boot/*out*/,
unsigned *freelist/*out*/, unsigned *stab/*out*/, unsigned *shhdr/*out*/)
H5Pset_sym_k
H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk)
H5Pget_sym_k
H5Pget_sym_k(hid_t plist_id, unsigned *ik/*out*/, unsigned *lk/*out*/)
H5Pset_istore_k
herr_t H5Pset_istore_k(hid_t plist_id, unsigned ik)
H5Pget_istore_k
herr_t H5Pget_istore_k(hid_t plist_id, unsigned *ik/*out*/)
H5Pget_external
herr_t H5Pget_external(hid_t plist_id, unsigned idx, size_t name_size,
char *name/*out*/, off_t *offset/*out*/, hsize_t *size/*out*/)
H5Pget_filter
H5Z_filter_t H5Pget_filter(hid_t plist_id, unsigned filter,
unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/,
unsigned cd_values[]/*out*/, unsigned int *flags/*out*/,
size_t namelen, char name[])
H5Sselect_hyperslab
herr_t H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op,
const hsize_t start[], const hsize_t _stride[], const hsize_t count[],
const hsize_t _block[])
H5Sselect_elements
herr_t H5Sselect_elements(hid_t space_id, H5S_seloper_t op,
size_t num_elemn, const hsize_t **coord)
H5Tget_member_name
char *H5Tget_member_name(hid_t type_id, unsigned membno)
H5Tget_member_offset
size_t H5Tget_member_offset(hid_t type_id, unsigned membno)
H5Tget_member_class
H5T_class_t H5Tget_member_class(hid_t type_id, unsigned membno)
H5Tget_member_type
hid_t H5Tget_member_type(hid_t type_id, unsigned membno)
H5Tget_member_value
herr_t H5Tget_member_value(hid_t type_id, unsigned membno,
void *value/*out*/)

H5Diterate is affected by a similar change in the syntax of H5D_operator_t.
herr_t (*H5D_operator_t)(void *elem, hid_t type_id, unsigned ndim,
const hsize_t *point, void *operator_data)

Fortran subroutines:
h5sselect_hyperslab_f
SUBROUTINE h5sselect_hyperslab_f(space_id, operator, start, count, &
hdferr, stride, block)
h5sselect_elements_f
SUBROUTINE h5sselect_elements_f(space_id, operator, rank, &
num_elements, coord, hdferr)

C++ wrappers:
FileCreatPropList::getVersion
void FileCreatPropList::getVersion( unsigned& super, unsigned& freelist,
unsigned& stab, unsigned& shhdr) const
FileCreatPropList::setSymk
void FileCreatPropList::setSymk( unsigned ik, unsigned lk ) const
FileCreatPropList::getSymk
void FileCreatPropList::getSymk( unsigned& ik, unsigned& lk ) const
FileCreatPropList::setIstorek
void FileCreatPropList::setIstorek( unsigned ik ) const
FileCreatPropList::getIstorek
unsigned FileCreatPropList::getIstorek() const
DSetCreatPropList::getExternal
void DSetCreatPropList::getExternal( unsigned idx, size_t name_size,
char* name, off_t& offset, hsize_t& size ) const
DSetCreatPropList::getFilter
H5Z_filter_t DSetCreatPropList::getFilter( ine filter_number,
unsigned int &flags, size_t &cd_nelmts, unsigned int* cd_values,
size_t namelen, char name[] ) const
DataSpace::selectHyperslab
void DataSpace::selectHyperslab( H5S_seloper_t op, const hsize_t *count,
const hsize_t *start, const hsize_t *stride, const hsize_t *block ) const
DataSpace::selectElements
void DataSpace::selectElements( H5S_seloper_t op,
const size_t num_elements, const hsize_t *coord[ ] ) const
CompType::getMemberName
string CompType::getMemberName( unsigned member_num ) const
CompType::getMemberOffset
size_t CompType::getMemberOffset( unsigned member_num ) const
CompType::getMemberClass
H5T_class_t CompType::getMemberClass( unsigned member_num ) const
EnumType::getMemberValue
void EnumType::getMemberValue( unsigned member_no, void *value ) const

(These lists of syntax changes were added on 31 March and 5 April 2005, shortly after Release 1.6.4.)

Deleted Constants

The following constants have been removed from the HDF5 Library: (This list of deleted constants was added on 21 March 2005, shortly after Release 1.6.4.)

Changed Library Configuration

HDF5 Library configuration has been upgraded from GNU autoconf 2.53 to autoconf 2.59.

 

Release 1.6.3 versus Release 1.6.2

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.2 to Release 1.6.3.

New Functions and Tools

C functions:
The following C functions are new for Release 1.6.3 and are documented in the HDF5 Reference Manual.
H5Fget_name      ssize_t H5Fget_name (hid_t obj_id, char *name, size_t size)
See entry.
H5Fget_filesize      herr_t H5Fget_filesize (hid_t file_id, hsize_t * size)
See entry.
H5Iget_file_id      hid_t H5Iget_file_id (hid_t obj_id)
See entry.
H5Premove_filter      herr_t H5Premove_filter (hid_t obj_id, H5Z_filter_t filter)
See entry.
H5Zget_filter_info      herr_t H5Zget_filter_info (H5Z_filter_t filter, unsigned int * flags)
See entry.
 
Fortran subroutines:
The following Fortran90 subroutines are new for Release 1.6.3 and are documented in the HDF5 Reference Manual.
New Fortran90 subroutines corresponding to the new C functions listed above:
    h5fget_name_f
    h5fget_filesize_f
    h5iget_file_id_f
    h5premove_filter_f
    h5zget_filter_info_f
New Fortran90 subroutines corresponding to C functions from prior releases:
    None
    
 
C++ wrappers:
C++ wrappers have been brought in sync with the C library, rendering the C++ API significantly more complete. Most of the new wrappers are for H5P and H5T APIs.

All available C++ elements are now documented in the HDF5 C++ API Reference Manual. (The HDF5 C++ API Reference Manual is also a new addition in this release.)

 
Tools:
The following tools are new for Release 1.6.3 and are documented on the Tools page of the HDF5 Reference Manual.
h5new_tool is designed to do whatever this sentence says. (Clearly, this is a placeholder entry that should be removed before release.)
 
The following tool was in Release 1.6.2 but was not included in formal documentation. A full description is now included on the Tools page of the HDF5 Reference Manual.
h5repack is designed to copy an HDF5 file to a new file with or without compression and/or chunking.

Deleted Functions

The following function has been removed in this release.
 
C++ wrapper:
CompType::getMemberDims

Functions with Changed Syntax

The following functions have changed as noted.

C functions:
H5Pset_fapl_multi
The prototype for this function was changed from:
  • herr_t H5Pset_fapl_multi (hid_t fapl_id, const H5FD_mem_t * memb_map, const hid_t * memb_fapl, const char ** memb_name, const haddr_t * memb_addr, hbool_t relax)
to:
  • herr_t H5Pset_fapl_multi (hid_t fapl_id, const H5FD_mem_t * memb_map, const hid_t * memb_fapl, const char * const * memb_name, const haddr_t * memb_addr, hbool_t relax)

This change should not appreciably affect application programs.

H5Tconvert
The prototype for this function was changed from:
  • herr_t H5Tconvert (hid_t src_id, hid_t dst_id, hsize_t nelmts, void * buf, void * background, hid_t plist_id)
to:
  • herr_t H5Tconvert (hid_t src_id, hid_t dst_id, size_t nelmts, void * buf, void * background, hid_t plist_id)

This was changed to prevent overflows when hsize_t and size_t types are different sizes. Application code may need to be modified to take this into account. Application code using this function may also be affected by the changes to H5Tregister and H5Tunregister described below.

H5Tregister and H5Tunregister
These two routines are affected by the change to the H5T_conv_t typedef (described below) and may require application registered datatype conversion routines to be modified to conform to the changed typedef.
 
C++ wrappers:
H5::Exception and its subclasses
Constructors used by H5::Exception and its subclasses that were previously overloaded to take char pointers have been removed. Constructors that passed in a reference of string have been changed to pass by value. In addition, the default value of the detailed message has been changed from 0/NULL to DEFAULT_MSG (meaning "No detailed information provided").
 
DSetCreatPropList::setLayout
The prototype for DSetCreatPropList::setLayout has been changed: the first parameter has been removed.

Constants with Changed Values

The following library structures have changed as noted.

C API:
H5T_conv_t
This function pointer typedef's definition has been changed from:
  • typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t * cdata, hsize_t nelmts, size_t buf_stride, size_t bkg_stride, void * buf, void * bkg, hid_t plist_id)
to:
  • typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t * cdata, size_t nelmts, size_t buf_stride, size_t bkg_stride, void * buf, void * bkg, hid_t plist_id)

This was changed to prevent overflows when hsize_t and size_t types are different sizes. Application code may need to be modified to take this into account.

 

Release 1.6.2 versus Release 1.6.1

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.1 to Release 1.6.2.

New Functions and Tools

C functions:
The following C functions are new for Release 1.6.2 and are documented in the HDF5 Reference Manual.
H5Iget_ref      int H5Iget_ref (hid_t obj_id)
See entry.
H5Iinc_ref      int H5Iinc_ref (hid_t obj_id)
See entry.
H5Idec_ref      int H5Idec_ref (hid_t obj_id)
See entry.
 
Fortran subroutines:
The following Fortran90 subroutines are new for Release 1.6.2 and are documented in the HDF5 Reference Manual.
Corresponding to the new C functions listed above:
    h5iget_ref_f
    h5iinc_ref_f
    h5idec_ref_f
    
 
Tools:
The following tools are new for Release 1.6.2 and are documented on the Tools page of the HDF5 Reference Manual.
h5pcc is designed to aid in the compilation of C applications that employ the HDF5 Library.
h5pfc is designed to aid in the compilation of Fortran90 applications that employ the HDF5 Library.

Deleted Functions

None.

Functions with Changed Syntax

None.

Constants with Changed Values

None.

 

Release 1.6.1 versus Release 1.6.0

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.6.0 to Release 1.6.1.

New Functions and Tools

C functions:
The following C function is new for Release 1.6.1 and is documented in the HDF5 Reference Manual.
H5Fget_freespace      hssize_t H5Fget_freespace (hid_t file_id)
See entry.
 
Fortran subroutines
The following Fortran90 subroutines were new for Release 1.6.0 but were not documented. They are now included in the HDF5 Reference Manual.
h5get_fapl_mpiposix_f      h5pget_fapl_mpiposix_f(prp_id, comm, use_gpfs, hdferr)
See entry.
h5set_fapl_mpiposix_f      h5pset_fapl_mpiposix_f(prp_id, comm, use_gpfs, hdferr)
See entry.
 
Tools:
Release 1.6.1 contains no new tools.

Deleted Functions

None.

Functions with Changed Syntax

The following functions have changed as noted.
C functions:
H5Gget_obj_info
The H5G_stat_t struct contains two new fields.
This change will be transparent to existing applications, though those calling H5Gget_obj_info will have to be recompiled before linking with the updated library.
 
Fortran90 subroutines:
h5pset_cache_f
The rdcc_nbytes parameter has changed from INTEGER to INTEGER(SIZE_T) to better match the C API and the h5pget_cache_f subroutine.

Constants with Changed Values

None.

 

Release 1.6.0 versus Release 1.4.5

This section lists the API-level changes that have been made in the transition from the HDF5 Release 1.4.x series to Release 1.6.0.

New Functions and Tools

The following functions are new for Release 1.6.0 and are included in the HDF5 Reference Manual.
H5set_free_list_limits herr_t H5set_free_list_limits (int reg_global_lim, int reg_list_lim, int arr_global_lim, int arr_list_lim, int blk_global_lim, int blk_list_lim)
H5Dget_offset hsize_t H5Dget_offset (hid_t dset_id)
H5Dget_space_status hid_t H5Dget_space_status (hid_t dset_id, H5D_space_status_t *status)
H5Fget_obj_ids int H5Fget_obj_ids (hid_t file_id, unsigned int types, int max_objs, hid_t *obj_id_list)
H5Fget_vfd_handle herr_t H5Fget_vfd_handle (hid_t file_id, hid_t fapl_id, void *file_handle)
H5Gget_num_objs herr_t H5Gget_num_objs (hid_t loc_id, hsize_t* num_obj)
H5Gget_objname_by_idx ssize_t H5Gget_objname_by_idx (hid_t group_id, hsize_t idx, char *name, size_t* size)
H5Gget_objtype_by_idx int H5Gget_objtype_by_idx (hid_t group_id, hsize_t idx)
H5Iget_name ssize_t H5Iget_name (hid_t obj_id, char *name, size_t size)
H5Pall_filters_avail htri_t H5Pall_filters_avail (hid_t dcpl_id)
H5Pfill_value_defined herr_t H5Pfill_value_defined (hid_t plist_id, H5D_fill_value_t *status)
H5Pget_alloc_time herr_t H5Pget_alloc_time (hid_t plist_id, H5D_alloc_time_t *alloc_time)
H5Pget_edc_check H5Z_EDC_t H5Pget_edc_check (hid_t plist)
H5Pget_family_offset herr_t H5Pget_family_offset (hid_t fapl_id, hsize_t *offset)
H5Pget_fapl_mpiposix herr_t H5Pget_fapl_mpiposix (hid_t fapl_id, MPI_Comm *comm)
H5Pget_fclose_degree herr_t H5Pget_fclose_degree(hid_t fapl_id, H5F_close_degree_t *fc_degree)
(This item corrected 14 September 2004.)
H5Pget_fill_time herr_t H5Pget_fill_time (hid_t plist_id, H5D_fill_time_t *fill_time)
H5Pget_filter_by_id herr_t H5Pget_filter_by_id (hid_t plist_id, H5Z_filter_t filter, unsigned int *flags, size_t *cd_nelmts, unsigned int cd_values[], size_t namelen, char *name[])
H5Pget_hyper_vector_size herr_t H5Pget_hyper_vector_size (hid_t dxpl_id, size_t *vector_size)
H5Pget_multi_type herr_t H5Pget_multi_type (hid_t fapl_id, H5FD_mem_t *type)
H5Pmodify_filter herr_t H5Pmodify_filter (hid_t plist, H5Z_filter_t filter, unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[])
H5Pset_alloc_time herr_t H5Pset_alloc_time (hid_t plist_id, H5D_alloc_time_t alloc_time)
H5Pset_edc_check herr_t H5Pset_edc_check (hid_t plist, H5Z_EDC_t check)
H5Pset_family_offset herr_t H5Pset_family_offset (hid_t fapl_id, hsize_t offset)
H5Pset_fapl_mpiposix herr_t H5Pset_fapl_mpiposix (hid_t fapl_id, MPI_Comm comm)
H5Pset_fclose_degree herr_t H5Pset_fclose_degree(hid_t fapl_id, H5F_close_degree_t fc_degree)
(This item corrected 14 September 2004.)
H5Pset_fill_time herr_t H5Pset_fill_time (hid_t plist_id, H5D_fill_time_t fill_time)
H5Pset_filter herr_t H5Pset_filter (hid_t plist, H5Z_filter_t filter, unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[])
H5Pset_filter_callback herr_t H5Pset_filter_callback (hid_t plist, H5Z_filter_func_t func, void *op_data)
H5Pset_fletcher32 herr_t H5Pset_fletcher32 (hid_t plist)
H5Pset_hyper_vector_size  herr_t H5Pset_hyper_vector_size (hid_t dxpl_id, size_t vector_size)
H5Pset_multi_type herr_t H5Pset_multi_type (hid_t fapl_id, H5FD_mem_t type)
H5Pset_shuffle herr_t H5Pset_shuffle (hid_t plist_id)
H5Pset_szip herr_t H5Pset_szip (hid_t plist, unsigned int options_mask, unsigned int pixels_per_block)
H5Rget_object_type int H5Rget_object_type (hid_t id, void *ref)
H5Sget_select_type H5S_sel_type H5Sget_select_type (hid_t space_id)
H5Tdetect_class htri_t H5Tdetect_class (hid_t dtype_id, H5T_class_t dtype_class)
H5Tget_native_type hid_t H5Tget_native_type (hid_t type_id, H5T_direction_t direction)
H5Tis_variable_str htri_t H5Tis_variable_str (hid_t dtype_id)
H5Zfilter_avail herr_t H5Zfilter_avail (H5Z_filter_t filter)
H5Zunregister herr_t H5Zunregister (H5Z_filter_t filter)
 
The following tools are new for Release 1.6.0 and are included in the HDF5 Reference Manual.
h5diff
h5import
h5fc
h5c++
h5perf
h5redeploy

Deleted Functions

The following functions are deprecated in HDF5 Release 1.6.0. A backward compatibility mode is provided in this release, enabling these functions and other Release 1.4.x compatibility features, but is available only when the HDF5 library is configured with the flag H5_WANT_H5_V1_4_COMPAT. The backward compatibility mode is not enabled in the binaries distributed by NCSA.
       
H5Pset_hyper_cache
H5Pget_hyper_cache
      
H5Rget_object_type
      
 

The above functions will eventually be removed from the HDF5 distribution and from the HDF5 Reference Manual.

Functions with Changed Syntax

The following functions have changed as noted.
C functions:
H5FDflush and VFL "flush" callbacks
An extra parameter closing has been added to these functions, to allow the library to indicate that the file will be closed following the call to "flush". Actions in the "flush" call that are duplicated in the VFL "close" call may be omitted by the VFL driver.
* H5Gget_objtype_by_idx
The function return type has changed from int to the enumerated type H5G_obj_t.
* H5Pset(get)_buffer
The size parameter for H5Pset_buffer has changed from type hsize_t to size_t.
The H5Pget_buffer return type has similarly changed from hsize_t to size_t.
* H5Pset(get)_cache
The rdcc_nbytes parameter has changed from type int to size_t.
(This item corrected 3 March 2004.)
* H5Pset_fapl_log
The verbosity parameter has been removed.
Two new parameters have been added: flags of type unsigned and buf_size of type size_t.
* H5Pset(get)_fapl_mpiposix
A use_gpfs parameter of type hbool_t has been added.
* H5Pset(get)_sieve_buf_size
The size parameter has changed from type hsize_t to size_t.
* H5Pset(get)_sym_k
The lk parameter has changed from type int to unsigned.
* H5Sget_select_bounds
The start and end parameters have changed from type hsize_t * to hssize_t * to better match the rest of the dataspace API.
* H5Zregister
This function is substantially revised in Release 1.6.0 with a new H5Z_class_t struct and new set local and can apply callback functions.
 
Fortran90 functions:
h5pset(get)_fapl_core_f
The backing_store parameter has changed from INTEGER to LOGICAL to better match the C API.
h5pset(get)_preserve_f
The flag parameter has changed from INTEGER to LOGICAL to better match the C API.

Backward compatibility with the Release 1.4.x syntax is available for the functions indicated above with a leading asterisk (*). The backward compatibility features are available only when the HDF5 library is configured with the flag H5_WANT_H5_V1_4_COMPAT, is not enabled in the binaries distributed by NCSA, and will eventually be removed from the HDF5 distribution.

Constants with Changed Values

 

Release 1.4.5 versus Release 1.4.4

C Library

Added functions:
herr_t H5Pset_fapl_mpiposix(hid_t fapl_id, MPI_Comm comm);
herr_t H5Pget_fapl_mpiposix(hid_t fapl_id, MPI_Comm *comm/*out*/);
Changed functions: The following functions have changed behavior.

H5Pset_fapl_mpio  
H5Pget_fapl_mpio
H5Fcreate
H5Fopen
H5Fclose
Previously, the Communicator and Info object arguments supplied to H5Pset_fapl_mpio were stored in the property with its handle values. This meant changes to the communicator or the Info object after calling H5Pset_fapl_mpio would affect the how the property list functioned. This was also the case when H5Fopen/create operated. They just stored the handle value. This is not according to the MPI-2 defined behavior of how Info objects should be handled. (MPI-2 defines Info objects must be parsed when called.)
H5Pset_fapl_mpio now stores a duplicate of each of the communicator and Info object.
H5Pget_fapl_mpio now returns a duplicate of its stored communicator and Info object. It is now the responsibility of the applications to free those objects when done.

H5Fcreate and H5Fopen also store a duplicate of the communicator and Info object supplied by the file access property List. H5Fclose frees the duplicates.

Advice to users: User applications should release the communicator and Info object returned by H5Pget_fapl_mpio when they are no longer needed.

Removed functions:
None       
          
There were no other public API changes in the C library for this release.

Fortran90 Library

The following missing Fortran functions were added:

h5get_libversion_f, h5check_version_f, h5garbage_collect_f, h5dont_atexit_f
h5tget_member_index_f, h5tvlen_create_f
h5dget_storage_size_f, h5dvlen_get_max_len_f , h5dwrite_vl_f, h5dread_vl_f

Only integer, real and character types are supported for VL datatypes.

Release 1.4.4 versus Release 1.4.3

C Library

Added functions:
H5Pget_small_data_block_size
H5Pset_small_data_block_size
H5Tget_member_index
      
          
Changed functions:
None       
          
Removed functions:
None       
          
There were no other public API changes in the C library for this release.

Fortran90 Library

h5dwrite_f, h5dread_f, h5awrite_f, h5aread_f were overloaded with dims argument to be assumed size array of type INTEGER(HSIZE_T). We recommend to use the subroutines with the new type. Module subroutines that accept dims as INTEGER array of size 7 will be deprecated in the 1.6.0 release.

Release 1.4.3 versus Release 1.4.2

C Library

Removed function:
H5Pset_fapl_dpss 
      
          
      
          
There were no other public API changes in the C library for this release.

Fortran90 Library

There were no changes to the public Fortran90 APIs for this release.

Release 1.4.2 versus Release 1.4.1

C Library

The HDF5 Release 1.4.2 C library is a "Bugfix Release"; there are no API changes in the underlying HDF5 library.

Fortran90 Library

The following functions in the HDF5 Release 1.4.2 Fortran90 library have an additional parameter, dims, that was not present in Release 1.4.1:
h5aread_f(attr_id, memtype_id,  buf, dims, hdferr)
h5awrite_f(attr_id, memtype_id,  buf, dims, hdferr)
h5dread_f(dset_id, mem_type_id, buf, dims, hdferr, mem_space_id, &
           file_space_id, xfer_prp)
h5dwrite_f(dset_id, mem_type_id, buf, dims, hdferr, mem_space_id, &
           file_space_id, xfer_prp)
The dims parameter enables library portability between the UNIX and Microsoft Windows platforms.

Release 1.4.1 versus Release 1.4.0

Release 1.4.1 is a "Tools Release"; there are no API changes in the underlying HDF5 library.

Release 1.4.0 versus Release 1.2.2

Several functions were added to or removed from the HDF5 library in the development of Release 1.4.0. A few functions have been modified in minor ways.

New Functions

The following functions are new for Release 1.4.0 and are included in the HDF5 Reference Manual.
herr_t H5Dvlen_get_buf_size (hid_t dataset_id, hid_t type_id, 
           hid_t space_id, hsize_t *size);
herr_t H5Epush (const char *file, const char *func,
           unsigned line, H5E_major_t maj, H5E_minor_t min, 
           const char *str);
hid_t H5Pget_driver (hid_t plist_id);
void *H5Pget_driver_info (hid_t plist_id);
herr_t H5Pget_dxpl_mpio (hid_t dxpl_id, 
           H5FD_mpio_xfer_t *xfer_mode/*out*/);
herr_t H5Pget_dxpl_multi (hid_t dxpl_id, 
           hid_t *memb_dxpl/*out*/);
herr_t H5Pget_fapl_core (hid_t fapl_id, size_t *increment/*out*/,
           hbool_t *backing_store/*out*/) 
herr_t H5Pget_fapl_family (hid_t fapl_id, 
           hsize_t *memb_size/*out*/, hid_t *memb_fapl_id/*out*/);
herr_t H5Pget_fapl_mpio (hid_t fapl_id, MPI_Comm *comm/*out*/,
           MPI_Info *info/*out*/);
herr_t H5Pget_fapl_multi (hid_t fapl_id, 
           H5FD_mem_t *memb_map/*out*/, hid_t *memb_fapl/*out*/, 
           char **memb_name/*out*/, haddr_t *memb_addr/*out*/, 
           hbool_t *relax/*out*/);
herr_t H5Pget_fapl_stream (hid_t fapl_id,
           H5FD_stream_fapl_t *fapl /*out*/ );
herr_t H5Pget_meta_block_size (hid_t fapl_id, 
           hsize_t *size/*out*/);
herr_t H5Pget_sieve_buf_size (hid_t fapl_id, 
           hsize_t *size/*out*/);
herr_t H5Pset_driver (hid_t plist_id, hid_t driver_id,
           const void *driver_info);
herr_t H5Pset_dxpl_mpio (hid_t dxpl_id, 
           H5FD_mpio_xfer_t xfer_mode);
herr_t H5Pset_dxpl_multi (hid_t dxpl_id, 
           const hid_t *memb_dxpl);
herr_t H5Pset_fapl_core (hid_t fapl_id, size_t increment, 
           hbool_t backing_store)
herr_t H5Pset_fapl_family (hid_t fapl_id, hsize_t memb_size,
           hid_t memb_fapl_id);
herr_t H5Pset_fapl_log (hid_t fapl_id, char *logfile, 
           int verbosity);
herr_t H5Pset_fapl_mpio (hid_t fapl_id, MPI_Comm comm, 
           MPI_Info info);
herr_t H5Pset_fapl_multi (hid_t fapl_id, 
           const H5FD_mem_t *memb_map, const hid_t *memb_fapl, 
           const char **memb_name, const haddr_t *memb_addr, 
           hbool_t relax);
herr_t H5Pset_fapl_sec2 (hid_t fapl_id);
herr_t H5Pset_fapl_split (hid_t fapl, const char *meta_ext,
           hid_t meta_plist_id, const char *raw_ext,
           hid_t raw_plist_id);
herr_t H5Pset_fapl_stdio (hid_t fapl_id);
herr_t H5Pset_fapl_stream (hid_t fapl_id,
           H5FD_stream_fapl_t *fapl);
herr_t H5Pset_meta_block_size(hid_t fapl_id, hsize_t size);
herr_t H5Pset_sieve_buf_size(hid_t fapl_id, hsize_t size);
hid_t H5Tarray_create (hid_t base, int rank, const hsize_t dims[], 
           const int perm[])
int H5Tget_array_dims (hid_t adtype_id, hsize_t *dims[], int *perm[])
int H5Tget_array_ndims (hid_t adtype_id)

The following functions are new for Release 1.4.0, but are intended only for use in specialized environments. These are also included in the HDF5 Reference Manual.

herr_t H5Pget_fapl_dpss (hid_t fapl_id);
herr_t H5Pget_fapl_gass (hid_t fapl_id, GASS_Info *info/*out*/);
herr_t H5Pget_fapl_srb (hid_t fapl_id, SRB_Info *info);
herr_t H5Pset_fapl_dpss (hid_t fapl_id);
herr_t H5Pset_fapl_gass (hid_t fapl_id, GASS_Info info);
herr_t H5Pset_fapl_srb (hid_t fapl_id, SRB_Info info);

The following functions are new for Release 1.4.0 but are intended only for driver development work, not for general use. They are listed in the List of VFL Functions document in the HDF5 Technical Notes. They are described in detail only in the source code and do not appear in the HDF5 Reference Manual.

haddr_t H5FDalloc (H5FD_t *file, H5FD_mem_t type, 
          hsize_t size);
herr_t H5FDclose (H5FD_t *file);
int H5FDcmp (const H5FD_t *f1, const H5FD_t *f2);
herr_t H5FDflush (H5FD_t *file);
herr_t H5FDfree (H5FD_t *file, H5FD_mem_t type, 
          haddr_t addr, hsize_t size);
haddr_t H5FDget_eoa (H5FD_t *file);
haddr_t H5FDget_eof (H5FD_t *file);
H5FD_t *H5FDopen (const char *name, unsigned flags, 
          hid_t fapl_id, haddr_t maxaddr);
int H5FDquery (const H5FD_t *f, unsigned long *flags);
herr_t H5FDread (H5FD_t *file, hid_t dxpl_id, haddr_t addr, 
          hsize_t size, void *buf/*out*/);
haddr_t H5FDrealloc (H5FD_t *file, H5FD_mem_t type, 
          haddr_t addr, hsize_t old_size, hsize_t new_size);
hid_t H5FDregister (const H5FD_class_t *cls);
herr_t H5FDset_eoa (H5FD_t *file, haddr_t eof);
herr_t H5FDunregister (hid_t driver_id);
herr_t H5FDwrite (H5FD_t *file, H5FD_mem_t type, 
          hid_t dxpl_id, haddr_t addr, hsize_t size, 
          const void *buf);

Deleted Functions

The following functions have been removed from the HDF5 library and from the HDF5 Reference Manual.
H5Pget_core
H5Pget_driver
H5Pget_family
H5Pget_mpi
H5Pget_sec2
H5Pget_split
H5Pget_stdio
H5Pget_xfer
      
H5Pset_core
H5Pset_family
H5Pset_mpi
H5Pset_sec2
H5Pset_split
H5Pset_stdio
H5Pset_xfer
      
H5RAclose
H5RAcreate
H5RAopen
H5RAread
H5RAwrite
H5Tget_member_dims
H5Tinsert_array
Note that the entire H5RA interface, an experimental interface for ragged arrays, has been removed from the library.

Functions with Changed Syntax

The following functions have changed slightly.
H5Pget_buffer
Return type has changed to hsize_t.
H5Pset_buffer
The type of the size parameter has changed to hsize_t.
H5Tconvert
The type of the nelmts parameter has changed to hsize_t.

Constants with Changed Values

The values of the constants H5P_DEFAULT and H5S_ALL have been changed from -2 to 0. These default values had to be special-cased in situations where they could be returned to distinguish them from error values.

 

Migration from Release 1.2.2 to Release 1.4.x

H5Tinsert_array

The functionality of H5Tinsert_array has been replaced by H5Tarray_create. Here is an example of changing code from H5Tinsert_array to H5Tarray_create.
V1.2.2
{
    struct tmp_struct {
        int a;
        float f[3];
        double d[2][4];
    };
    size_t f_dims[1]={3};
    size_t d_dims[2]={2,4};
    hid_t compound_type;

    compound_type=H5Tcreate(H5T_COMPOUND,sizeof(struct tmp_struct));
    H5Tinsert(compound_type,"a",HOFFSET(struct tmp_struct,a),H5T_NATIVE_INT);
    H5Tinsert_array(compound_type,"f",HOFFSET(struct tmp_struct,f),1,f_dims,NULL,H5T_NATIVE_FLOAT);
    H5Tinsert_array(compound_type,"d",HOFFSET(struct tmp_struct,d),2,d_dims,NULL,H5T_NATIVE_DOUBLE);
}

V1.4.0
{
    struct tmp_struct {
        int a;
        float f[3];
        double d[2][4];
    };
    hsize_t f_dims[1]={3};
    hsize_t d_dims[2]={2,4};
    hid_t compound_type;
    hid_t array_type;

    compound_type=H5Tcreate(H5T_COMPOUND,sizeof(struct tmp_struct));
    H5Tinsert(compound_type,"a",HOFFSET(struct tmp_struct,a),H5T_NATIVE_INT);
    array_type=H5Tarray_create(H5T_NATIVE_FLOAT,1,f_dims,NULL);
    H5Tinsert(compound_type,"f",HOFFSET(struct tmp_struct,f),array_type);
    H5Tclose(array_type);
    array_type=H5Tarray_create(H5T_NATIVE_DOUBLE,2,d_dims,NULL);
    H5Tinsert(compound_type,"d",HOFFSET(struct tmp_struct,d),array_type);
    H5Tclose(array_type);
}

This and Prior Releases: The RELEASE.txt and HISTORY.txt Files

The HDF5 source code, as distributed to users and developers, contains two files that will be of interest to readers of this document. Both files are located at the top level of the source code tree and are duplicated here for your reference:

RELEASE.txt
Technical notes regarding the release, including new features and the changes since the last release, notes regarding new or revised utilities, notes regarding alternative language APIs (Fortran90, C++), bugs fixed since the last release, platforms on which the release has been tested, and known problems. This is the file commonly known as "the release notes."

HISTORY.txt
A release-by-release history of the HDF5 library. This file is a compiled set of the release notes (i.e., the RELEASE.txt files) from prior releases.

HDF5 documents and links 
Introduction to HDF5 
HDF5 User's Guide 
HDF5 Reference Manual 
HDF5 Application Developer's Guide 

THG Help Desk:
Describes HDF5 Release 1.8.1, May 2008.
Last modified: 10 September 2008