diff options
69 files changed, 864 insertions, 810 deletions
@@ -1,4 +1,4 @@ -HDF5 version 1.9.210-swmr0 currently under development +HDF5 version 1.9.213-swmr0 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/bin/checkposix b/bin/checkposix index 69d43b4..db47ff3 100755 --- a/bin/checkposix +++ b/bin/checkposix @@ -83,7 +83,6 @@ if(<>) { next if $name =~ /^(ABS|ADDR_OVERFLOW|ALL_MEMBERS|BOUND|CONSTR|DETECT_[I|F|M]|DOWN)$/; next if $name =~ /^(MIN3?|MAX3?|NELMTS|POWER_OF_TWO|REGION_OVERFLOW)$/; next if $name =~ /^(UNIQUE_MEMBERS)$/; - next if $name =~ /^(IS_H5FD_MPIO)$/; next if $name =~ /^addr_defined$/; # These functions/macros are exempt. diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index b07ab2b..c0e2f11 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -110,7 +110,7 @@ install ( #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} cpplibraries) + INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index aaa8ceb..99f4790 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -683,7 +683,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 # This is our main target diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index 78c8d9b..e74f4b9 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -14,7 +14,7 @@ set(CTEST_BUILD_CONFIGURATION "Release") #set(NO_MAC_FORTRAN "true") #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON") #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) -set(CTEST_USE_TAR_SOURCE "true") +set(CTEST_USE_TAR_SOURCE ${CTEST_SCRIPT_ARG}) ############################################################################################################### # Adjust the following SET Commands as needed diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in index 3e74aa7..8287c7b 100644 --- a/config/cmake/hdf5-config.cmake.in +++ b/config/cmake/hdf5-config.cmake.in @@ -74,10 +74,10 @@ set (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@) #----------------------------------------------------------------------------- if (NOT TARGET "@HDF5_PACKAGE@") if (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib") - include (@PACKAGE_SHARE_INSTALL_DIR@/ZLIB/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) + include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) endif (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib") if (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip") - include (@PACKAGE_SHARE_INSTALL_DIR@/SZIP/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) + include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) endif (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip") include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake) set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@") diff --git a/config/lt_vers.am b/config/lt_vers.am index 3fdac98..8acd54a 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -19,7 +19,7 @@ # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.210-swmr0. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.213-swmr0. # # Report bugs to <help@hdfgroup.org>. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.210-swmr0' -PACKAGE_STRING='HDF5 1.9.210-swmr0' +PACKAGE_VERSION='1.9.213-swmr0' +PACKAGE_STRING='HDF5 1.9.213-swmr0' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1489,7 +1489,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.210-swmr0 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.213-swmr0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1559,7 +1559,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.210-swmr0:";; + short | recursive ) echo "Configuration of HDF5 1.9.213-swmr0:";; esac cat <<\_ACEOF @@ -1752,7 +1752,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.210-swmr0 +HDF5 configure 1.9.213-swmr0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2846,7 +2846,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.210-swmr0, which was +It was created by HDF5 $as_me 1.9.213-swmr0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3717,7 +3717,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.210-swmr0' + VERSION='1.9.213-swmr0' cat >>confdefs.h <<_ACEOF @@ -31732,7 +31732,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -HDF5 config.lt 1.9.210-swmr0 +HDF5 config.lt 1.9.213-swmr0 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -33874,7 +33874,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.210-swmr0, which was +This file was extended by HDF5 $as_me 1.9.213-swmr0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -33940,7 +33940,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.210-swmr0 +HDF5 config.status 1.9.213-swmr0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 7ae70c6..4262210 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.210-swmr0], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.213-swmr0], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index b149017..5b641d1 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -374,8 +374,8 @@ endif (WIN32) #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries) - #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries) + INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries) + #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c index f7121d2..8291320 100644 --- a/fortran/src/H5Af.c +++ b/fortran/src/H5Af.c @@ -2081,18 +2081,18 @@ done: } /****if* H5Af/h5awrite_f_c * NAME - * h5awrite_f_c + * h5awrite_f_c * PURPOSE - * Call H5Awrite to write a dataset + * Call H5Awrite to write a dataset * INPUTS - * attr_id - Identifier of an attribute to write. - * mem_type_id - Identifier of the attribute datatype (in memory). - * buf - data pointer buffer + * attr_id - Identifier of an attribute to write. + * mem_type_id - Identifier of the attribute datatype (in memory). + * buf - data pointer buffer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * June 11, 2008 + * June 11, 2008 * HISTORY * * @@ -2114,25 +2114,25 @@ h5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf) /****if* H5Af/h5aread_f_c * NAME - * h5aread_f_c + * h5aread_f_c * PURPOSE - * Call H5Awrite to write a dataset + * Call H5Awrite to write a dataset * INPUTS - * attr_id - Identifier of an attribute to write. - * mem_type_id - Identifier of the attribute datatype (in memory). - * buf - data pointer buffer + * attr_id - Identifier of an attribute to write. + * mem_type_id - Identifier of the attribute datatype (in memory). + * buf - data pointer buffer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * June 11, 2008 + * June 11, 2008 * HISTORY * * * SOURCE */ int_f -nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf) +h5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf) /******/ { int ret_value = -1; diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90 index 1c83320..5278280 100644 --- a/fortran/src/H5Aff_F03.f90 +++ b/fortran/src/H5Aff_F03.f90 @@ -144,8 +144,8 @@ MODULE H5A_PROVISIONAL INTERFACE INTEGER FUNCTION h5awrite_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5awrite_f_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: mem_type_id TYPE(C_PTR), VALUE :: buf @@ -156,12 +156,9 @@ MODULE H5A_PROVISIONAL ! to the C H5Aread routine INTERFACE - INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf) + INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5aread_f_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_F_C'::h5aread_f_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: mem_type_id TYPE(C_PTR), VALUE :: buf diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c index 799f40a..ecfa946 100644 --- a/fortran/src/H5Df.c +++ b/fortran/src/H5Df.c @@ -25,27 +25,26 @@ /****if* H5Df/h5dcreate_c * NAME - * h5dcreate_c + * h5dcreate_c * PURPOSE - * Call H5Dcreate2 to create a dataset + * Call H5Dcreate2 to create a dataset * INPUTS - * loc_id - file or group identifier - * name - name of the dataset - * namelen - name length - * type_id - datatype identifier - * space_id - dataspace identifier - * crt_pr - identifier of creation property list + * loc_id - file or group identifier + * name - name of the dataset + * namelen - name length + * type_id - datatype identifier + * space_id - dataspace identifier + * crt_pr - identifier of creation property list * OUTPUTS - * dset_id - dataset identifier + * dset_id - dataset identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 4, 1999 + * Wednesday, August 4, 1999 * HISTORY - * - * - Added optional parameters introduced in version 1.8 - * February, 2008 + * - Added optional parameters introduced in version 1.8 + * February, 2008 * SOURCE */ int_f @@ -81,9 +80,9 @@ DONE: /****if* H5Df/h5dopen_c * NAME - * h5dopen_c + * h5dopen_c * PURPOSE - * Call H5Dopen2 to open a dataset + * Call H5Dopen2 to open a dataset * INPUTS * loc_id - file or group identifier * name - name of the dataset @@ -132,9 +131,9 @@ DONE: /****if* H5Df/h5dwritec_c * NAME - * h5dwritec_c + * h5dwritec_c * PURPOSE - * Call h5dwrite_c to write a dataset of characters + * Call h5dwrite_c to write a dataset of characters * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -281,9 +280,9 @@ nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h /****if* H5Df/h5dwrite_c * NAME - * h5dwrite_c + * h5dwrite_c * PURPOSE - * Call H5Dwrite to write a dataset + * Call H5Dwrite to write a dataset * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -589,9 +588,9 @@ nh5dwrite_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space /****if* H5Df/h5dwrite_ref_obj_c * NAME - * h5dwrite_ref_obj_c + * h5dwrite_ref_obj_c * PURPOSE - * Call H5Dwrite to write a dataset of object references + * Call H5Dwrite to write a dataset of object references * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -656,25 +655,25 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ /****if* H5Df/h5dwrite_ref_reg_c * NAME - * h5dwrite_ref_reg_c + * h5dwrite_ref_reg_c * PURPOSE - * Call H5Dwrite to write a dataset of dataset region references + * Call H5Dwrite to write a dataset of dataset region references * INPUTS - * dset_id - dataset identifier - * mem_type_id - memory datatype identifier - * mem_space_id - memory dataspace identifier - * file_space_id - memory dataspace identifier - * xfer_pr - identifier of transfer property list - * buf - data buffer with references to the objects. - * n - number of references to be stored. + * dset_id - dataset identifier + * mem_type_id - memory datatype identifier + * mem_space_id - memory dataspace identifier + * file_space_id - memory dataspace identifier + * xfer_pr - identifier of transfer property list + * buf - data buffer with references to the objects. + * n - number of references to be stored. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, May 14, 2002 + * Tuesday, May 14, 2002 * HISTORY - * This function was added to accomodate h5dwrite_f with the - * dims argument being of INTEGER(HSIZE_T) type + * This function was added to accomodate h5dwrite_f with the + * dims argument being of INTEGER(HSIZE_T) type * SOURCE */ int_f @@ -728,9 +727,9 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ /****if* H5Df/h5dreadc_c * NAME - * h5dreadc_c + * h5dreadc_c * PURPOSE - * Call h5dread_c to read a dataset of characters + * Call h5dread_c to read a dataset of characters * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -877,9 +876,9 @@ nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi /****if* H5Df/h5dread_c * NAME - * h5dread_c + * h5dread_c * PURPOSE - * Call H5Draed to read a dataset + * Call H5Draed to read a dataset * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -1177,9 +1176,9 @@ nh5dread_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ /****if* H5Df/h5dread_ref_obj_c * NAME - * h5dread_ref_obj_c + * h5dread_ref_obj_c * PURPOSE - * Call H5Dread to read a dataset of object references + * Call H5Dread to read a dataset of object references * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -1244,9 +1243,9 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i /****if* H5Df/h5dread_ref_reg_c * NAME - * h5dread_ref_reg_c + * h5dread_ref_reg_c * PURPOSE - * Call H5Dread to read a dataset of dataset region references + * Call H5Dread to read a dataset of dataset region references * INPUTS * dset_id - dataset identifier * mem_type_id - memory datatype identifier @@ -1314,9 +1313,9 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i /****if* H5Df/h5dclose_c * NAME - * h5dclose_c + * h5dclose_c * PURPOSE - * Call H5Dclose to close a dataset + * Call H5Dclose to close a dataset * INPUTS * dset_id - identifier of the dataset to be closed * RETURNS @@ -1342,9 +1341,9 @@ nh5dclose_c ( hid_t_f *dset_id ) /****if* H5Df/h5dget_space_c * NAME - * h5dget_space_c + * h5dget_space_c * PURPOSE - * Call H5Dget_space to obtain dataspace of a dataset + * Call H5Dget_space to obtain dataspace of a dataset * INPUTS * dset_id - identifier of the dataset * OUTPUTS @@ -1377,9 +1376,9 @@ nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id) /****if* H5Df/h5dget_type_c * NAME - * h5dget_type_c + * h5dget_type_c * PURPOSE - * Call H5Dget_type to obtain datatype of a dataset + * Call H5Dget_type to obtain datatype of a dataset * INPUTS * dset_id - identifier of the dataset * OUTPUTS @@ -1414,9 +1413,9 @@ nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id) /****if* H5Df/h5dget_create_plist_c * NAME - * h5dget_create_plist_c + * h5dget_create_plist_c * PURPOSE - * Call H5Dget_create_plist to obtain creation property list + * Call H5Dget_create_plist to obtain creation property list * of a dataset * INPUTS * dset_id - identifier of the dataset @@ -1453,9 +1452,9 @@ nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id) /****if* H5Df/h5dset_extent_c * NAME - * h5dset_extent_c + * h5dset_extent_c * PURPOSE - * Call H5Dset_extent to extend dataset with unlimited dimensions + * Call H5Dset_extent to extend dataset with unlimited dimensions * INPUTS * dset_id - identifier of the dataset * OUTPUTS @@ -1506,9 +1505,9 @@ nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims) /****if* H5Df/nh5dget_storage_size_c * NAME - * nh5dget_storage_size_c + * nh5dget_storage_size_c * PURPOSE - * Call H5Dget_storage_size to return the amount of storage + * Call H5Dget_storage_size to return the amount of storage * required for a dataset * INPUTS * dset_id - identifier of the dataset @@ -1542,9 +1541,9 @@ nh5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size) /****if* H5Df/nh5dvlen_get_max_len_c * NAME - * nh5dvlen_get_max_len_c + * nh5dvlen_get_max_len_c * PURPOSE - * Get the maximum size of the VL dataset element + * Get the maximum size of the VL dataset element * INPUTS * dset_id - identifier of the dataset * type_id - datatype identifier @@ -1600,9 +1599,9 @@ DONE: } /****if* H5Df/nh5dwrite_vl_integer_c * NAME - * nh5dwrite_vl_integer_c + * nh5dwrite_vl_integer_c * PURPOSE - * Write variable length dataset + * Write variable length dataset * INPUTS * dset_id - identifier of the dataset * mem_type_id - datatype identifier @@ -1673,9 +1672,9 @@ DONE: /****if* H5Df/nh5dread_vl_integer_c * NAME - * nh5dread_vl_integer_c + * nh5dread_vl_integer_c * PURPOSE - * Read variable length dataset + * Read variable length dataset * INPUTS * dset_id - identifier of the dataset * mem_type_id - datatype identifier @@ -1745,9 +1744,9 @@ DONE: /****if* H5Df/nh5dwrite_vl_string_c * NAME - * nh5dwrite_vl_string_c + * nh5dwrite_vl_string_c * PURPOSE - * Write variable length strings from Fortran program + * Write variable length strings from Fortran program * INPUTS * dset_id - identifier of the dataset * mem_type_id - datatype identifier @@ -1832,9 +1831,9 @@ DONE: } /****if* H5Df/nh5dread_vl_string_c * NAME - * nh5dread_vl_string_c + * nh5dread_vl_string_c * PURPOSE - * Read variable length strings from Fortran program + * Read variable length strings from Fortran program * INPUTS * dset_id - identifier of the dataset * mem_type_id - datatype identifier @@ -1915,9 +1914,9 @@ nh5dread_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spa /****if* H5Df/nh5dwrite_vl_real_c * NAME - * nh5dwrite_vl_real_c + * nh5dwrite_vl_real_c * PURPOSE - * Write variable length dataset + * Write variable length dataset * INPUTS * dset_id - identifier of the dataset * mem_type_id - datatype identifier @@ -1988,9 +1987,9 @@ DONE: /****if* H5Df/nh5dread_vl_real_c * NAME - * nh5dread_vl_real_c + * nh5dread_vl_real_c * PURPOSE - * Read variable length dataset + * Read variable length dataset * INPUTS * dset_id - identifier of the dataset * mem_type_id - datatype identifier @@ -2061,20 +2060,20 @@ DONE: /****if* H5Df/h5dfillc_c * NAME - * h5dfillc_c + * h5dfillc_c * PURPOSE - * Call h5fill_c to fill memory buffer with a fill value + * Call h5fill_c to fill memory buffer with a fill value * INPUTS - * fill_value - fill value - * fill_type_id - fill value datatype identifier - * space_id - memory space selection identifier - * buf - memory buffer to fill - * mem_type_id - memory buffer dtatype identifier + * fill_value - fill value + * fill_type_id - fill value datatype identifier + * space_id - memory space selection identifier + * buf - memory buffer to fill + * mem_type_id - memory buffer dtatype identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * HISTORY * * SOURCE @@ -2088,32 +2087,32 @@ nh5dfillc_c (_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf /* * Call h5dfill_c function. */ - ret_value = nh5dfill_c(_fcdtocp(fill_value), fill_type_id, space_id, _fcdtocp(buf), mem_type_id); + ret_value = h5dfill_c(_fcdtocp(fill_value), fill_type_id, space_id, _fcdtocp(buf), mem_type_id); return ret_value; } /****if* H5Df/h5dfill_c * NAME - * h5dfill_c + * h5dfill_c * PURPOSE - * Call H5Dfill to fill memory buffer with a fill value + * Call H5Dfill to fill memory buffer with a fill value * INPUTS - * fill_value - fill value - * fill_type_id - fill value datatype identifier - * space_id - memory space selection identifier - * buf - memory buffer to fill - * mem_type_id - memory buffer dtatype identifier + * fill_value - fill value + * fill_type_id - fill value datatype identifier + * space_id - memory space selection identifier + * buf - memory buffer to fill + * mem_type_id - memory buffer dtatype identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * HISTORY * * SOURCE */ int_f -nh5dfill_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id) +h5dfill_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id) /******/ { int ret_value = -1; @@ -2210,9 +2209,9 @@ nh5dfill_double_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, /****if* H5Df/h5dget_space_status_c * NAME - * h5dget_space_status_c + * h5dget_space_status_c * PURPOSE - * Call H5Dget_space_status to request dataspace allocation status + * Call H5Dget_space_status to request dataspace allocation status * INPUTS * dset_id - dataset identifier * OUTPUTS @@ -2249,9 +2248,9 @@ nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag) } /****if* H5Df/h5dcreate_anon_c * NAME - * h5dcreate_anon_c + * h5dcreate_anon_c * PURPOSE - * Call H5Dcreate_anon + * Call H5Dcreate_anon * INPUTS * * loc_id - Identifier of the file or group within which to create the dataset. @@ -2290,30 +2289,30 @@ nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id, return ret_value; } -/****if* H5Df/nh5dwrite_f_c +/****if* H5Df/h5dwrite_f_c * NAME - * nh5dwrite_f_c + * h5dwrite_f_c * PURPOSE - * Call H5Dwrite to write a dataset + * Call H5Dwrite to write a dataset * INPUTS - * dset_id - dataset identifier - * mem_type_id - memory datatype identifier - * mem_space_id - memory dataspace identifier - * file_space_id - memory dataspace identifier - * xfer_pr - identifier of transfer property list - * buf - data buffer + * dset_id - dataset identifier + * mem_type_id - memory datatype identifier + * mem_space_id - memory dataspace identifier + * file_space_id - memory dataspace identifier + * xfer_pr - identifier of transfer property list + * buf - data buffer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * May 28, 2008 + * May 28, 2008 * HISTORY * * * SOURCE */ int_f -nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, +h5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf) /******/ { @@ -2325,24 +2324,6 @@ nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t c_file_space_id; hid_t c_xfer_prp; -/* int i, j; */ -/* typedef struct { */ -/* int x; */ -/* float y; */ -/* } r_dual_c; */ - -/* const r_dual_c *name=buf; */ - -/* r_dual_c access[4][4]; */ - -/* for ( i=0; i<4; ++i) */ -/* for (j = 0; j<4; ++j) { */ -/* access[i][j] = name[i*4+j]; */ -/* /\* access[i].x = access[i].x + 1; *\/ */ -/* printf("x = %i \n", access[i][j].x); */ -/* printf("y = %f \n", access[i][j].y); */ -/* } */ - /* * Define transfer property */ @@ -2361,36 +2342,36 @@ nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, ret_value = 0; return ret_value; } -/****if* H5Df/nh5dread_f_c + +/****if* H5Df/h5dread_f_c * NAME - * nh5dread_f_c + * h5dread_f_c * PURPOSE - * Read variable length dataset + * Read variable length dataset * INPUTS - * dset_id - identifier of the dataset - * mem_type_id - datatype identifier - * mem_space_id - dataspace identifier - * file_space_id - file dataspace identifier - * xfer - file transfer property - * dims - one-demnsional array of size 2 - * dims[0] = MAXLENGTH - * dims[1] = number of elements of VL type + * dset_id - identifier of the dataset + * mem_type_id - datatype identifier + * mem_space_id - dataspace identifier + * file_space_id - file dataspace identifier + * xfer - file transfer property + * dims - one-demnsional array of size 2 + * dims[0] = MAXLENGTH + * dims[1] = number of elements of VL type * OUTPUTS - * buf - data buffer - * len - array element lenghts + * buf - data buffer + * len - array element lenghts * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal - * Wednesday, October 24, 2002 + * M. Scot Breitenfeld + * May 28, 2008 * HISTORY * * SOURCE */ - int_f -nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, - hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf) +h5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, + hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf) /******/ { int ret_value = -1; @@ -2417,22 +2398,21 @@ nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, } /****if* H5Df/nh5dget_access_plist_c * NAME - * nh5dget_access_plist_c + * nh5dget_access_plist_c * PURPOSE - * Call H5Dget_access_plist + * Call H5Dget_access_plist * INPUTS - * dset_id - dataset identifier + * dset_id - dataset identifier * OUTPUTS - * plist_id - the dataset access property list identifier + * plist_id - the dataset access property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * M. Scot Breitenfeld - * April 13, 2009 + * M. Scot Breitenfeld + * April 13, 2009 * * SOURCE */ - int_f nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id) /******/ @@ -2452,11 +2432,11 @@ nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id) /****if* H5Df/nh5dvlen_reclaim_c * NAME - * nh5dvlen_reclaim_c + * h5dvlen_reclaim_c * PURPOSE - * Call H5Dvlen_reclaim + * Call H5Dvlen_reclaim * INPUTS - * type_id - Identifier of the datatype. + * type_id - Identifier of the datatype. * space_id - Identifier of the dataspace. * plist_id - Identifier of the property list used to create the buffer. * buf - Pointer to the buffer to be reclaimed. @@ -2470,7 +2450,7 @@ nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id) * SOURCE */ int_f -nh5dvlen_reclaim_c(hid_t_f *type_id, hid_t_f *space_id, hid_t_f *plist_id, void *buf) +h5dvlen_reclaim_c(hid_t_f *type_id, hid_t_f *space_id, hid_t_f *plist_id, void *buf) /******/ { int ret_value = -1; diff --git a/fortran/src/H5Dff_F03.f90 b/fortran/src/H5Dff_F03.f90 index d39c200..7026ae3 100644 --- a/fortran/src/H5Dff_F03.f90 +++ b/fortran/src/H5Dff_F03.f90 @@ -159,12 +159,9 @@ MODULE H5D_PROVISIONAL INTEGER FUNCTION h5dwrite_f_c(dset_id, mem_type_id, & mem_space_id_default , & file_space_id_default, & - xfer_prp_default, buf ) + xfer_prp_default, buf ) BIND(C, NAME='h5dwrite_f_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_F_C'::h5dwrite_f_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr INTEGER(HID_T), INTENT(IN) :: dset_id INTEGER(HID_T), INTENT(IN) :: mem_type_id INTEGER(HID_T) :: mem_space_id_default @@ -181,12 +178,9 @@ MODULE H5D_PROVISIONAL INTEGER FUNCTION h5dread_f_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf) BIND(C, NAME='h5dread_f_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_F_C'::h5dread_f_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr INTEGER(HID_T), INTENT(IN) :: dset_id INTEGER(HID_T), INTENT(IN) :: mem_type_id INTEGER(HID_T) :: mem_space_id_default @@ -207,12 +201,9 @@ MODULE H5D_PROVISIONAL INTERFACE INTEGER FUNCTION h5dfill_c(f_ptr_fill_value, fill_type_id, space_id, & - f_ptr_buf, mem_type_id) + f_ptr_buf, mem_type_id) BIND(C, NAME='h5dfill_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_C'::h5dfill_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr TYPE(C_PTR), VALUE :: f_ptr_fill_value INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier @@ -2369,7 +2360,7 @@ CONTAINS ! ! Fortran2003 Interface: SUBROUTINE h5dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr) - USE, INTRINSIC :: ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id INTEGER(HID_T), INTENT(IN) :: space_id @@ -2379,12 +2370,9 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf) + INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf) BIND(C, NAME='h5dvlen_reclaim_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_RECLAIM_C'::h5dvlen_reclaim_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR INTEGER(HID_T) :: type_id INTEGER(HID_T) :: space_id INTEGER(HID_T) :: plist_id diff --git a/fortran/src/H5Ef.c b/fortran/src/H5Ef.c index 8677977..f5c0c45 100644 --- a/fortran/src/H5Ef.c +++ b/fortran/src/H5Ef.c @@ -302,7 +302,7 @@ done: /* } */ int_f -nh5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data) +h5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data) /******/ { int ret_val = -1; diff --git a/fortran/src/H5Eff_F03.f90 b/fortran/src/H5Eff_F03.f90 index 3ba3ce96..ff8d11c 100644 --- a/fortran/src/H5Eff_F03.f90 +++ b/fortran/src/H5Eff_F03.f90 @@ -81,12 +81,10 @@ CONTAINS TYPE(C_FUNPTR) :: func_default TYPE(C_PTR) :: client_data_default INTERFACE - INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data) & + BIND(C, NAME='h5eset_auto2_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ESET_AUTO2_C'::h5eset_auto2_c - !DEC$ENDIF INTEGER :: printflag INTEGER(HID_T) :: estack_id !!$ TYPE(C_FUNPTR) :: func diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c index 4910aca..7455fca 100644 --- a/fortran/src/H5Ff.c +++ b/fortran/src/H5Ff.c @@ -699,7 +699,7 @@ done: * SOURCE */ int_f -nh5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req) +h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req) /******/ { herr_t ret_value=0; /* Return value */ diff --git a/fortran/src/H5Fff_F03.f90 b/fortran/src/H5Fff_F03.f90 index d819c34..8544870 100644 --- a/fortran/src/H5Fff_F03.f90 +++ b/fortran/src/H5Fff_F03.f90 @@ -74,12 +74,9 @@ CONTAINS INTEGER(SIZE_T) :: buf_size_default INTERFACE - INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) BIND(C, NAME='h5fget_file_image_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_FILE_IMAGE_C'::h5fget_file_image_c - !DEC$ENDIF INTEGER(HID_T) , INTENT(IN) :: file_id TYPE(C_PTR) , VALUE :: buf_ptr INTEGER(SIZE_T), INTENT(IN) :: buf_len diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c index c5138b6..7efa10a 100644 --- a/fortran/src/H5Lf.c +++ b/fortran/src/H5Lf.c @@ -987,7 +987,7 @@ done: * SOURCE */ int_f -nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ) +h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ) /******/ { int_f ret_value = -1; /* Return value */ @@ -1010,12 +1010,12 @@ nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx /****if* H5Lf/h5literate_by_name_c * NAME - * h5literate_by_name_c + * h5literate_by_name_c * PURPOSE - * Call H5Literate_by_name + * Call H5Literate_by_name * INPUTS * - * loc_id - Identifier specifying subject group + * loc_id - Identifier specifying subject group * name - Name of subject group * namelen - Name length * index_type - Type of index which determines the order @@ -1030,14 +1030,14 @@ nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx * idx - Position at which an interrupted iteration may be restarted * * RETURNS - * >0 on success, 0< on failure + * >0 on success, 0< on failure * AUTHOR * M. Scot Breitenfeld - * Augest 18, 2008 + * August 18, 2008 * SOURCE */ int_f -nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id) +h5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id) /******/ { int_f ret_value = -1; /* Return value */ diff --git a/fortran/src/H5Lff_F03.f90 b/fortran/src/H5Lff_F03.f90 index 83f80ac..fa95717 100644 --- a/fortran/src/H5Lff_F03.f90 +++ b/fortran/src/H5Lff_F03.f90 @@ -125,12 +125,10 @@ CONTAINS INTEGER , INTENT(OUT) :: hdferr !***** INTERFACE - INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) & + BIND(C, NAME='h5literate_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LITERATE_C'::h5literate_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: group_id INTEGER, INTENT(IN) :: index_type INTEGER, INTENT(IN) :: order @@ -192,7 +190,8 @@ CONTAINS ! Augest 18, 2008 ! ! Fortran2003 Interface: - SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, idx, op, op_data, return_value, hdferr, lapl_id) + SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, & + idx, op, op_data, return_value, hdferr, lapl_id) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T) , INTENT(IN) :: loc_id @@ -210,14 +209,12 @@ CONTAINS INTEGER(SIZE_T) :: namelen INTERFACE - INTEGER FUNCTION h5literate_by_name_c(loc_id, name, namelen, index_type, order, idx, op, op_data, lapl_id_default) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5literate_by_name_c(loc_id, name, namelen, index_type, order,& + idx, op, op_data, lapl_id_default) BIND(C, NAME='h5literate_by_name_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LITERATE_BY_NAME_C'::h5literate_by_name_c - !DEC$ENDIF INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER(SIZE_T) , INTENT(IN) :: namelen INTEGER , INTENT(IN) :: index_type INTEGER , INTENT(IN) :: order diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c index 05eafcf..ad8b7ed 100644 --- a/fortran/src/H5Of.c +++ b/fortran/src/H5Of.c @@ -241,7 +241,7 @@ nh5oclose_c ( hid_t_f *object_id ) * SOURCE */ int_f -nh5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data ) +h5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data ) /******/ { int_f ret_value = -1; /* Return value */ @@ -313,7 +313,7 @@ nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id) * SOURCE */ int_f -nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, +h5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, H5O_info_t_f *object_info) /******/ { @@ -363,7 +363,7 @@ nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f * * SOURCE */ int_f -nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, +h5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info) /******/ { @@ -415,7 +415,7 @@ nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, * SOURCE */ int_f -nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info) +h5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info) /******/ { int_f ret_value = 0; /* Return value */ @@ -508,14 +508,14 @@ nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, * idx - Position at which an interrupted iteration may be restarted * * RETURNS - * >0 on success, 0< on failure + * >0 on success, 0< on failure * AUTHOR * M. Scot Breitenfeld * May 16, 2012 * SOURCE */ int_f -nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, +h5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ) /******/ { @@ -523,7 +523,6 @@ nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f herr_t func_ret_value; /* H5Linterate return value */ char *c_object_name = NULL; /* Buffer to hold C string */ - /* * Convert FORTRAN name to C name */ diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90 index cfb7d56..e6b87ea 100644 --- a/fortran/src/H5Off_F03.f90 +++ b/fortran/src/H5Off_F03.f90 @@ -146,12 +146,10 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) & + BIND(C, NAME='h5ovisit_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OVISIT_C'::h5ovisit_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: object_id INTEGER, INTENT(IN) :: index_type INTEGER, INTENT(IN) :: order @@ -210,16 +208,12 @@ CONTAINS TYPE(C_PTR) :: ptr INTERFACE - INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, & - object_info) + INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, object_info) & + BIND(C, NAME='h5oget_info_by_name_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_NAME_C'::h5oget_info_by_name_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER(SIZE_T) , INTENT(IN) :: namelen INTEGER(HID_T) , INTENT(IN) :: lapl_id_default TYPE(C_PTR),VALUE :: object_info @@ -269,15 +263,12 @@ CONTAINS TYPE(C_PTR) :: ptr INTERFACE - INTEGER FUNCTION h5oget_info_c(object_id, object_info) + INTEGER FUNCTION h5oget_info_c(object_id, object_info) & + BIND(C, NAME='h5oget_info_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_C'::h5oget_info_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr INTEGER(HID_T), INTENT(IN) :: object_id TYPE(C_PTR), VALUE :: object_info - END FUNCTION h5oget_info_c END INTERFACE @@ -334,15 +325,11 @@ CONTAINS INTERFACE INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, & - index_field, order, n, lapl_id_default, object_info) + index_field, order, n, lapl_id_default, object_info) BIND(C, NAME='h5oget_info_by_idx_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_IDX_C'::h5oget_info_by_idx_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: group_name + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: group_name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name INTEGER(SIZE_T) , INTENT(IN) :: namelen INTEGER , INTENT(IN) :: index_field INTEGER , INTENT(IN) :: order @@ -419,15 +406,11 @@ CONTAINS INTERFACE INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & - op, op_data, lapl_id) + op, op_data, lapl_id) BIND(C, NAME='h5ovisit_by_name_c') USE, INTRINSIC :: ISO_C_BINDING USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OVISIT_BY_NAME_C'::h5ovisit_by_name_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: object_name INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: object_name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: object_name INTEGER(SIZE_T) :: namelen INTEGER , INTENT(IN) :: index_type INTEGER , INTENT(IN) :: order diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c index b66709a..fa4dc5b 100644 --- a/fortran/src/H5Pf.c +++ b/fortran/src/H5Pf.c @@ -388,16 +388,16 @@ nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ) /****if* H5Pf/h5pset_fill_valuec_c * NAME - * h5pset_fill_valuec_c + * h5pset_fill_valuec_c * PURPOSE - * Call h5pset_fill_value_c to a character fill value + * Call h5pset_fill_value_c to a character fill value * INPUTS - * prp_id - property list identifier - * type_id - datatype identifier (fill value is of type type_id) - * fillvalue - character value + * prp_id - property list identifier + * type_id - datatype identifier (fill value is of type type_id) + * fillvalue - character value * RETURNS - * 0 on success, -1 on failure - * Saturday, August 14, 1999 + * 0 on success, -1 on failure + * Saturday, August 14, 1999 * AUTHOR * Elena Pourmal * SOURCE @@ -411,7 +411,7 @@ nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue) /* * Call h5pset_fill_value_c function. */ - ret_value = nh5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue)); + ret_value = h5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue)); return ret_value; } @@ -433,7 +433,7 @@ nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue) * SOURCE */ int_f -nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +h5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) /******/ { int ret_value = -1; @@ -460,7 +460,7 @@ nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue /* * Call h5pset_fill_value_c function. */ - return nh5pset_fill_value_c(prp_id, type_id, fillvalue); + return h5pset_fill_value_c(prp_id, type_id, fillvalue); } int_f @@ -469,7 +469,7 @@ nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) /* * Call h5pset_fill_value_c function. */ - return nh5pset_fill_value_c(prp_id, type_id, fillvalue); + return h5pset_fill_value_c(prp_id, type_id, fillvalue); } int_f @@ -478,7 +478,7 @@ nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) /* * Call h5pset_fill_value_c function. */ - return nh5pset_fill_value_c(prp_id, type_id, fillvalue); + return h5pset_fill_value_c(prp_id, type_id, fillvalue); } /****if* H5Pf/h5pget_fill_valuec_c @@ -510,7 +510,7 @@ nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue) /* * Call h5pget_fill_value_c function. */ - ret_value = nh5pget_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue)); + ret_value = h5pget_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue)); return ret_value; } @@ -532,7 +532,7 @@ nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue) * SOURCE */ int_f -nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +h5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) /******/ { int ret_value = -1; @@ -558,7 +558,7 @@ nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue /* * Call h5pget_fill_value_c function. */ - return nh5pget_fill_value_c(prp_id, type_id, fillvalue); + return h5pget_fill_value_c(prp_id, type_id, fillvalue); } int_f @@ -567,7 +567,7 @@ nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) /* * Call h5pget_fill_value_c function. */ - return nh5pget_fill_value_c(prp_id, type_id, fillvalue); + return h5pget_fill_value_c(prp_id, type_id, fillvalue); } int_f @@ -576,7 +576,7 @@ nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) /* * Call h5pget_fill_value_c function. */ - return nh5pget_fill_value_c(prp_id, type_id, fillvalue); + return h5pget_fill_value_c(prp_id, type_id, fillvalue); } /****if* H5Pf/h5pget_version_c @@ -2742,20 +2742,50 @@ nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) *size = (size_t_f)c_size; return ret_value; } +/****if* H5Pf/h5pcreate_class_c + * NAME + * h5pcreate_class_c + * PURPOSE + * Call H5Pcreate_class to create a new property class + * INPUTS + * parent - property list class identifier + * name - name of the new class + * name_len - lenght of the "name" buffer + * OUTPUTS + * cls - new class identifier + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * Elena Pourmal + * October 11, 2002 + * + * HISTORY + * SOURCE +*/ +int_f +nh5pcreate_class_f90_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls) +/******/ +{ + int ret_value = -1; + + ret_value = h5pcreate_class_c(parent, name, name_len, cls, NULL, NULL, NULL, NULL, NULL, NULL); + return ret_value; +} + /****if* H5Pf/h5pcreate_class_c * NAME - * h5pcreate_class_c + * h5pcreate_class_c * PURPOSE - * Call H5Pcreate_class ito create a new property class + * Call H5Pcreate_class ito create a new property class * INPUTS - * parent - property list class identifier - * name - name of the new class - * name_len - lenght of the "name" buffer + * parent - property list class identifier + * name - name of the new class + * name_len - lenght of the "name" buffer * OUTPUTS - * class - new class identifier + * class - new class identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * October 11, 2002 @@ -2766,7 +2796,7 @@ nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) * SOURCE */ int_f -nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls, +h5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls, H5P_cls_create_func_t create, void *create_data, H5P_cls_copy_func_t copy, void *copy_data, H5P_cls_close_func_t close, void *close_data) @@ -2796,17 +2826,17 @@ DONE: /****if* H5Pf/h5pregisterc_c * NAME - * h5pregisterc_c + * h5pregisterc_c * PURPOSE - * Call h5pregister_c to registers a permanent property + * Call h5pregister_c to registers a permanent property * INPUTS - * class - property list class identifier - * name - name of the new property - * name_len - length of the "name" buffer - * size - property size - * value - property value of character type + * class - property list class identifier + * name - name of the new property + * name_len - length of the "name" buffer + * size - property size + * value - property value of character type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * October 11, 2002 @@ -2823,32 +2853,32 @@ nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd v /* * Call h5pregister_c function */ - ret_value = nh5pregister_c(cls, name, name_len, size, _fcdtocp(value)); + ret_value = h5pregister_c(cls, name, name_len, size, _fcdtocp(value)); return ret_value; } /****if* H5Pf/h5pregister_c * NAME - * h5pregister_c + * h5pregister_c * PURPOSE - * Call H5Pregister2 to registers a permanent property + * Call H5Pregister2 to registers a permanent property * INPUTS - * class - property list class identifier - * name - name of the new property - * name_len - length of the "name" buffer - * size - property size - * value - property value + * class - property list class identifier + * name - name of the new property + * name_len - length of the "name" buffer + * size - property size + * value - property value * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -nh5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value) +h5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value) /******/ { char* c_name = NULL; @@ -2876,7 +2906,7 @@ nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, /* * Call h5pregister_c function */ - return nh5pregister_c(cls, name, name_len, size, value); + return h5pregister_c(cls, name, name_len, size, value); } int_f @@ -2885,7 +2915,7 @@ nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, vo /* * Call h5pregister_c function */ - return nh5pregister_c(cls, name, name_len, size, value); + return h5pregister_c(cls, name, name_len, size, value); } int_f @@ -2894,25 +2924,25 @@ nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, /* * Call h5pregister_c function */ - return nh5pregister_c(cls, name, name_len, size, value); + return h5pregister_c(cls, name, name_len, size, value); } /****if* H5Pf/h5pinsertc_c * NAME - * h5pinsertc_c + * h5pinsertc_c * PURPOSE - * Call h5pinsert_c to register a temporary property + * Call h5pinsert_c to register a temporary property * INPUTS - * plist - property list identifier - * name - name of the new property - * name_len - length of the "name" buffer - * size - property size - * value - property value of character type + * plist - property list identifier + * name - name of the new property + * name_len - length of the "name" buffer + * size - property size + * value - property value of character type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE @@ -2926,32 +2956,32 @@ nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd v /* * Call h5pinsert_c function */ - ret_value = nh5pinsert_c(plist, name, name_len, size, _fcdtocp(value)); + ret_value = h5pinsert_c(plist, name, name_len, size, _fcdtocp(value)); return ret_value; } /****if* H5Pf/h5pinsert_c * NAME - * h5pinsert_c + * h5pinsert_c * PURPOSE - * Call H5Pinsert2 to iinsert a temporary property + * Call H5Pinsert2 to iinsert a temporary property * INPUTS - * plist - property list class identifier - * name - name of the new property - * name_len - length of the "name" buffer - * size - property size - * value - property value + * plist - property list class identifier + * name - name of the new property + * name_len - length of the "name" buffer + * size - property size + * value - property value * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -nh5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value) +h5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value) /******/ { char* c_name = NULL; @@ -2979,7 +3009,7 @@ nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, /* * Call h5pinsert_c function */ - return nh5pinsert_c(plist, name, name_len, size, value); + return h5pinsert_c(plist, name, name_len, size, value); } int_f @@ -2988,7 +3018,7 @@ nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, vo /* * Call h5pinsert_c function */ - return nh5pinsert_c(plist, name, name_len, size, value); + return h5pinsert_c(plist, name, name_len, size, value); } int_f @@ -2997,7 +3027,7 @@ nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, /* * Call h5pinsert_c function */ - return nh5pinsert_c(plist, name, name_len, size, value); + return h5pinsert_c(plist, name, name_len, size, value); } /****if* H5Pf/h5pexist_c @@ -3424,22 +3454,22 @@ nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED /* * Call h5pset_c function */ - ret_value = nh5pset_c(plist, name, name_len, _fcdtocp(value)); + ret_value = h5pset_c(plist, name, name_len, _fcdtocp(value)); return ret_value; } /****if* H5Pf/h5pset_c * NAME - * h5pset_c + * h5pset_c * PURPOSE - * Call H5Pset to set property value + * Call H5Pset to set property value * INPUTS - * plist - property list class identifier - * name - name of the new property - * name_len - length of the "name" buffer - * value - property value + * plist - property list class identifier + * name - name of the new property + * name_len - length of the "name" buffer + * value - property value * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * October 11, 2002 @@ -3448,7 +3478,7 @@ nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED * SOURCE */ int_f -nh5pset_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +h5pset_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /******/ { int_f ret_value = -1; @@ -3474,7 +3504,7 @@ nh5pset_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /* * Call h5pset_c function */ - return nh5pset_c(plist, name, name_len, value); + return h5pset_c(plist, name, name_len, value); } int_f @@ -3483,7 +3513,7 @@ nh5pset_real_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /* * Call h5pset_c function */ - return nh5pset_c(plist, name, name_len, value); + return h5pset_c(plist, name, name_len, value); } int_f @@ -3492,7 +3522,7 @@ nh5pset_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /* * Call h5pset_c function */ - return nh5pset_c(plist, name, name_len, value); + return h5pset_c(plist, name, name_len, value); } /****if* H5Pf/h5pgetc_c * NAME @@ -3522,31 +3552,32 @@ nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED /* * Call h5pget_c function */ - ret_value = nh5pget_c(plist, name, name_len, _fcdtocp(value)); + ret_value = h5pget_c(plist, name, name_len, _fcdtocp(value)); return ret_value; } /****if* H5Pf/h5pget_c * NAME - * h5pget_c + * h5pget_c * PURPOSE - * Call H5Pget to set property value + * Call H5Pget to set property value * INPUTS - * plist - property list class identifier - * name - name of the new property - * name_len - length of the "name" buffer - * Output: value - property value + * plist - property list class identifier + * name - name of the new property + * name_len - length of the "name" buffer + * Output: + * value - property value * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -nh5pget_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +h5pget_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /******/ { int_f ret_value = -1; @@ -3572,7 +3603,7 @@ nh5pget_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /* * Call h5pget_c function */ - return nh5pget_c(plist, name, name_len, value); + return h5pget_c(plist, name, name_len, value); } int_f @@ -3581,7 +3612,7 @@ nh5pget_real_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /* * Call h5pget_c function */ - return nh5pget_c(plist, name, name_len, value); + return h5pget_c(plist, name, name_len, value); } int_f @@ -3590,7 +3621,7 @@ nh5pget_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) /* * Call h5pget_c function */ - return nh5pget_c(plist, name, name_len, value); + return h5pget_c(plist, name, name_len, value); } @@ -5565,7 +5596,7 @@ nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nb *---------------------------------------------------------------------------*/ int_f -nh5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len) +h5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len) { int ret_value = -1; /* @@ -5595,7 +5626,7 @@ nh5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len) *---------------------------------------------------------------------------*/ int_f -nh5pget_file_image_c(hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len_ptr) +h5pget_file_image_c(hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len_ptr) { int ret_value = -1; size_t c_buf_len_ptr; diff --git a/fortran/src/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90 index 806c308..01d1d98 100644 --- a/fortran/src/H5Pff_F03.f90 +++ b/fortran/src/H5Pff_F03.f90 @@ -89,12 +89,10 @@ MODULE H5P_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) + INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) & + BIND(C, NAME='h5pget_fill_value_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_C'::h5pget_fill_value_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of ! of fillvalue datatype @@ -104,12 +102,10 @@ MODULE H5P_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) + INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) & + BIND(C, NAME='h5pset_fill_value_c') USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_C'::h5pset_fill_value_c - !DEC$ENDIF + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of ! of fillvalue datatype @@ -119,43 +115,36 @@ MODULE H5P_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) + INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) & + BIND(C, NAME='h5pset_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_C'::h5pset_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier - CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of property to modify INTEGER :: name_len TYPE(C_PTR), VALUE :: value ! Property value END FUNCTION h5pset_c END INTERFACE INTERFACE - INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) & + BIND(C, NAME='h5pget_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_C'::h5pget_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier - CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of property to modify INTEGER :: name_len TYPE(C_PTR), VALUE :: value ! Property value END FUNCTION h5pget_c END INTERFACE INTERFACE - INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) - USE iso_c_binding + INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) & + BIND(C, NAME='h5pregister_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_C'::h5pregister_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: class - CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len INTEGER(SIZE_T), INTENT(IN) :: size TYPE(C_PTR), INTENT(IN), VALUE :: value @@ -163,18 +152,15 @@ MODULE H5P_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value) - USE iso_c_binding + INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value) & + BIND(C, NAME='h5pinsert_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_C'::h5pinsert_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: plist - CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len INTEGER(SIZE_T), INTENT(IN) :: size - TYPE(c_ptr), INTENT(IN), value :: value + TYPE(C_PTR), INTENT(IN), VALUE :: value END FUNCTION h5pinsert_c END INTERFACE @@ -1140,18 +1126,12 @@ CONTAINS TYPE(C_FUNPTR) :: create_default, copy_default, close_default INTERFACE INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len, class, & - create, create_data, & - copy, copy_data, & - close, close_data) - - USE iso_c_binding + create, create_data, copy, copy_data, close, close_data) & + BIND(C, NAME='h5pcreate_class_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr USE H5GLOBAL - !DEC$IF DEFINED(HDCLOSEF90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: parent - CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len INTEGER(HID_T), INTENT(OUT) :: class TYPE(C_PTR), VALUE :: create_data, copy_data, close_data @@ -1213,12 +1193,10 @@ CONTAINS INTEGER , INTENT(OUT) :: hdferr !***** INTERFACE - INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) - USE iso_c_binding + INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) & + BIND(C, NAME='h5pset_file_image_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDCLOSEF90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILE_IMAGE_C'::h5pset_file_image_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: fapl_id TYPE(C_PTR), VALUE :: buf_ptr INTEGER(SIZE_T), INTENT(IN) :: buf_len @@ -1271,12 +1249,10 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) - USE iso_c_binding + INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) & + BIND(C, NAME='h5pget_file_image_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDCLOSEF90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILE_IMAGE_C'::h5pget_file_image_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: fapl_id TYPE(C_PTR), DIMENSION(*), INTENT(OUT) :: buf_ptr INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr diff --git a/fortran/src/H5Pff_F90.f90 b/fortran/src/H5Pff_F90.f90 index 5b75643..b5ea13d 100644 --- a/fortran/src/H5Pff_F90.f90 +++ b/fortran/src/H5Pff_F90.f90 @@ -927,22 +927,21 @@ SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr) INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len,& - class) + INTEGER FUNCTION h5pcreate_class_f90_c(parent, name, name_len, class) USE H5GLOBAL !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_F90_C'::h5pcreate_class_f90_c !DEC$ENDIF !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: parent CHARACTER(LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len INTEGER(HID_T), INTENT(OUT) :: class - END FUNCTION h5pcreate_class_c + END FUNCTION h5pcreate_class_f90_c END INTERFACE name_len = LEN(name) - hdferr = h5pcreate_class_c(parent, name, name_len, class) + hdferr = h5pcreate_class_f90_c(parent, name, name_len, class) END SUBROUTINE h5pcreate_class_f diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c index a4fb0b5..e35de21 100644 --- a/fortran/src/H5Rf.c +++ b/fortran/src/H5Rf.c @@ -143,7 +143,7 @@ done: * SOURCE */ int_f -nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id) +h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id) /******/ { int ret_value = -1; @@ -252,18 +252,18 @@ done: /****if* H5Rf/h5rdereference_ptr_c * NAME - * h5rdereference_ptr_c + * h5rdereference_ptr_c * PURPOSE - * Call H5Rdereference + * Call H5Rdereference * INPUTS - * obj_id - Valid identifier for the file containing the - * referenced object or any object in that file. - * ref_typ - The reference type of ref. - * ref - Object reference + * obj_id - Valid identifier for the file containing the + * referenced object or any object in that file. + * ref_typ - The reference type of ref. + * ref - Object reference * OUTPUTS - * ref_obj_id - Identifier of referenced object + * ref_obj_id - Identifier of referenced object * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * June 20, 2008 @@ -272,7 +272,7 @@ done: * SOURCE */ int_f -nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id) +h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id) /******/ { int ret_value = -1; @@ -351,7 +351,7 @@ done: * SOURCE */ int_f -nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id) +h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id) /******/ { hid_t c_space_id; @@ -532,9 +532,9 @@ done: /****if* H5Rf/h5rget_name_ptr_c * NAME - * h5rget_name_ptr_c + * h5rget_name_ptr_c * PURPOSE - * Call H5Rget_name + * Call H5Rget_name * INPUTS * * loc_id - Identifier for the dataset containing the reference or for the group that dataset is in. @@ -546,7 +546,7 @@ done: * size - The size of the name buffer. * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * June 20, 2008 @@ -555,7 +555,7 @@ done: * SOURCE */ int_f -nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default) +h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default) /******/ { int_f ret_value = -1; @@ -601,12 +601,9 @@ nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size * ref - Reference to query. * * OUTPUTS - * obj_type - Type of referenced object. - * H5G_UNKNOWN_F (-1) - * H5G_LINK_F 0 - * H5G_GROUP_F 1 - * H5G_DATASET_F 2 - * H5G_TYPE_F 3 + * obj_type - Type of referenced object. These are defined in H5Opublic.h, + * enum H5O_type_t + * * RETURNS * 0 on success, -1 on failure * AUTHOR @@ -616,7 +613,7 @@ nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size * SOURCE */ int_f -nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type) +h5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type) /******/ { int_f ret_value = -1; diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90 index 64f1365..77a1ff8 100644 --- a/fortran/src/H5Rff.f90 +++ b/fortran/src/H5Rff.f90 @@ -75,11 +75,10 @@ CONTAINS ! ref - reference to open ! OUTPUTS ! obj_type - object_type, possible values: -! H5G_UNKNOWN_F (-1) -! H5G_GROUP_F 0 -! H5G_DATASET_F 1 -! H5G_TYPE_F 2 -! H5G_LINK_F 3 +! H5G_UNKNOWN_F +! H5G_GROUP_F +! H5G_DATASET_F +! H5G_TYPE_F ! hdferr - Returns 0 if successful and -1 if fails ! ! AUTHOR @@ -100,11 +99,10 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference INTEGER, INTENT(OUT) :: obj_type ! Object type - ! H5G_UNKNOWN_F (-1) - ! H5G_GROUP_F 0 - ! H5G_DATASET_F 1 - ! H5G_TYPE_F 2 - ! H5G_LINK_F 3 + ! H5G_UNKNOWN_F + ! H5G_GROUP_F + ! H5G_DATASET_F + ! H5G_TYPE_F INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff_F03.f90 index e0ffa0a..fc4b2f3 100644 --- a/fortran/src/H5Rff_F03.f90 +++ b/fortran/src/H5Rff_F03.f90 @@ -90,29 +90,24 @@ MODULE H5R_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default) & + BIND(C, NAME='h5rget_name_ptr_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_PTR_C':: h5rget_name_ptr_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), INTENT(IN), VALUE :: ref - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER(SIZE_T) :: name_len INTEGER(SIZE_T) :: size_default END FUNCTION h5rget_name_ptr_c END INTERFACE INTERFACE - INTEGER FUNCTION h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id) + INTEGER FUNCTION h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id) & + BIND(C, NAME='h5rdereference_ptr_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - USE, INTRINSIC :: ISO_C_BINDING - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_PTR_C':: h5rdereference_ptr_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: obj_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), INTENT(IN), VALUE :: ref @@ -121,16 +116,13 @@ MODULE H5R_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id) & + BIND(C, NAME='h5rcreate_ptr_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_PTR_C':: h5rcreate_ptr_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name TYPE(C_PTR), VALUE :: ref INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name INTEGER :: namelen INTEGER, INTENT(IN) :: ref_type INTEGER(HID_T), INTENT(IN) :: space_id @@ -138,12 +130,10 @@ MODULE H5R_PROVISIONAL END INTERFACE INTERFACE - INTEGER FUNCTION h5rget_region_ptr_c(dset_id, ref, space_id) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5rget_region_ptr_c(dset_id, ref, space_id) & + BIND(C, NAME='h5rget_region_ptr_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_PTR_C':: h5rget_region_ptr_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: dset_id TYPE(C_PTR), VALUE :: ref INTEGER(HID_T), INTENT(OUT) :: space_id @@ -281,7 +271,6 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTEGER :: namelen ! Name length - TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(ref) @@ -689,11 +678,10 @@ CONTAINS ! ! Outputs: ! obj_type - Type of referenced object. - ! H5G_UNKNOWN_F (-1) - ! H5G_LINK_F 0 - ! H5G_GROUP_F 1 - ! H5G_DATASET_F 2 - ! H5G_TYPE_F 3 + ! H5G_UNKNOWN_F + ! H5G_GROUP_F + ! H5G_DATASET_F + ! H5G_TYPE_F ! ! hdferr - Returns 0 if successful and -1 if fails. ! @@ -713,12 +701,10 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5rget_obj_type_c(loc_id, ref_type, ref, obj_type) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5rget_obj_type_c(loc_id, ref_type, ref, obj_type) & + BIND(C, NAME='h5rget_obj_type_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_OBJ_TYPE_C':: h5rget_obj_type_c - !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), VALUE :: ref diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c index 32cdb72..ca9c30f 100644 --- a/fortran/src/H5Tf.c +++ b/fortran/src/H5Tf.c @@ -2385,9 +2385,9 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype /****if* H5Tf/h5tconvert_c * NAME - * h5tconvert_c + * h5tconvert_c * PURPOSE - * Call H5Tconvert + * Call H5Tconvert * INPUTS * * src_id - Identifier for the source datatype. @@ -2401,7 +2401,7 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype * buf - Array containing post-conversion values. * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * December 8, 2008 @@ -2409,7 +2409,7 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype * SOURCE */ int_f -nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id) +h5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id) /******/ { int ret_value = -1; diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90 index d16553a..2405837 100644 --- a/fortran/src/H5Tff_F03.f90 +++ b/fortran/src/H5Tff_F03.f90 @@ -89,12 +89,10 @@ CONTAINS TYPE(C_PTR) :: background_default INTERFACE - INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id) - USE, INTRINSIC :: ISO_C_BINDING + INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id) & + BIND(C, NAME='h5tconvert_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCONVERT_C'::H5Tconvert_c - !DEC$ENDIF INTEGER(HID_T) , INTENT(IN) :: src_id INTEGER(HID_T) , INTENT(IN) :: dst_id INTEGER(SIZE_T), INTENT(IN) :: nelmts diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index fde5f20..284ffbd 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -93,7 +93,6 @@ typedef struct H5O_info_t_f { #define nh5fget_obj_count_c H5_FC_FUNC_(h5fget_obj_count_c, H5FGET_OBJ_COUNT_C) #define nh5fget_obj_ids_c H5_FC_FUNC_(h5fget_obj_ids_c, H5FGET_OBJ_IDS_C) #define nh5fget_freespace_c H5_FC_FUNC_(h5fget_freespace_c, H5FGET_FREESPACE_C) -#define nh5fget_file_image_c H5_FC_FUNC_(h5fget_file_image_c, H5FGET_FILE_IMAGE_C) #define nh5fget_name_c H5_FC_FUNC_(h5fget_name_c, H5FGET_NAME_C) #define nh5fget_filesize_c H5_FC_FUNC_(h5fget_filesize_c, H5FGET_FILESIZE_C) @@ -109,7 +108,7 @@ H5_FCDLL int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id); H5_FCDLL int_f nh5fget_obj_count_c (hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count); H5_FCDLL int_f nh5fget_obj_ids_c (hid_t_f *file_id, int_f *obj_type, size_t_f *max_objs, hid_t_f *obj_ids, size_t_f *num_objs); H5_FCDLL int_f nh5fget_freespace_c (hid_t_f *file_id, hssize_t_f *free_space); -H5_FCDLL int_f nh5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req); +H5_FCDLL int_f h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req); H5_FCDLL int_f nh5fflush_c (hid_t_f *obj_id, int_f *scope); H5_FCDLL int_f nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen); H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size); @@ -276,16 +275,12 @@ H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid #define nh5dwrite_vl_string_c H5_FC_FUNC_(h5dwrite_vl_string_c, H5DWRITE_VL_STRING_C) #define nh5dread_vl_string_c H5_FC_FUNC_(h5dread_vl_string_c, H5DREAD_VL_STRING_C) #define nh5dfillc_c H5_FC_FUNC_(h5dfillc_c, H5DFILLC_C) -#define nh5dfill_c H5_FC_FUNC_(h5dfill_c, H5DFILL_C) #define nh5dfill_integer_c H5_FC_FUNC_(h5dfill_integer_c, H5DFILL_INTEGER_C) #define nh5dfill_real_c H5_FC_FUNC_(h5dfill_real_c, H5DFILL_REAL_C) #define nh5dfill_double_c H5_FC_FUNC_(h5dfill_double_c, H5DFILL_DOUBLE_C) #define nh5dget_space_status_c H5_FC_FUNC_(h5dget_space_status_c, H5DGET_SPACE_STATUS_C) #define nh5dcreate_anon_c H5_FC_FUNC_(h5dcreate_anon_c, H5DCREATE_ANON_C) -#define nh5dwrite_f_c H5_FC_FUNC_(h5dwrite_f_c, H5DWRITE_F_C) -#define nh5dread_f_c H5_FC_FUNC_(h5dread_f_c, H5DREAD_F_C) #define nh5dget_access_plist_c H5_FC_FUNC_(h5dget_access_plist_c, H5DGET_ACCESS_PLIST_C) -#define nh5dvlen_reclaim_c H5_FC_FUNC_(h5dvlen_reclaim_c, H5DVLEN_RECLAIM_C) H5_FCDLL int_f nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, @@ -392,18 +387,18 @@ H5_FCDLL int_f nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims); H5_FCDLL int_f nh5dvlen_get_max_len_c(hid_t_f *dataset_id, hid_t_f *type_id, hid_t_f *space_id, size_t_f *len); H5_FCDLL int_f nh5dget_storage_size_c(hid_t_f *dataset_id, hsize_t_f *size); H5_FCDLL int_f nh5dfillc_c(_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf, hid_t_f *mem_type_id); -H5_FCDLL int_f nh5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f h5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); H5_FCDLL int_f nh5dfill_integer_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); H5_FCDLL int_f nh5dfill_real_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); H5_FCDLL int_f nh5dfill_double_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); H5_FCDLL int_f nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag); H5_FCDLL int_f nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id); -H5_FCDLL int_f nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, +H5_FCDLL int_f h5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf); -H5_FCDLL int_f nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, +H5_FCDLL int_f h5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf); -H5_FCDLL int_f nh5dvlen_reclaim_c (hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf); +H5_FCDLL int_f h5dvlen_reclaim_c (hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf); /* * Functions from H5Gf.c */ @@ -524,7 +519,6 @@ H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f #define nh5areadc_5_c H5_FC_FUNC_(h5areadc_5_c, H5AREADC_5_C) #define nh5areadc_6_c H5_FC_FUNC_(h5areadc_6_c, H5AREADC_6_C) #define nh5areadc_7_c H5_FC_FUNC_(h5areadc_7_c, H5AREADC_7_C) -#define nh5aread_f_c H5_FC_FUNC_(h5aread_f_c, H5AREAD_F_C) #define nh5aget_name_c H5_FC_FUNC_(h5aget_name_c, H5AGET_NAME_C) #define nh5aopen_idx_c H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C) #define nh5aget_space_c H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C) @@ -620,7 +614,7 @@ H5_FCDLL int_f nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void H5_FCDLL int_f nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); H5_FCDLL int_f nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); H5_FCDLL int_f nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); +H5_FCDLL int_f h5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); H5_FCDLL int_f nh5aclose_c ( hid_t_f *attr_id ); H5_FCDLL int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen); H5_FCDLL int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id); @@ -674,7 +668,6 @@ H5_FCDLL int_f nh5arename_c( hid_t_f *loc_id, #define nh5topen_c H5_FC_FUNC_(h5topen_c, H5TOPEN_C) #define nh5tcommit_c H5_FC_FUNC_(h5tcommit_c, H5TCOMMIT_C) #define nh5tcommitted_c H5_FC_FUNC_(h5tcommitted_c, H5TCOMMITTED_C) -#define nh5tconvert_c H5_FC_FUNC_(h5tconvert_c, H5TCONVERT_C) #define nh5tclose_c H5_FC_FUNC_(h5tclose_c, H5TCLOSE_C) #define nh5tcopy_c H5_FC_FUNC_(h5tcopy_c, H5TCOPY_C) #define nh5tequal_c H5_FC_FUNC_(h5tequal_c, H5TEQUAL_C) @@ -797,7 +790,7 @@ H5_FCDLL int_f nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); H5_FCDLL int_f nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id); H5_FCDLL int_f nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag); H5_FCDLL int_f nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id); -H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id); +H5_FCDLL int_f h5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id); /* @@ -807,11 +800,6 @@ H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, #define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C) #define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C) #define nh5oclose_c H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C) -#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c, H5OVISIT_C) -#define nh5ovisit_by_name_c H5_FC_FUNC_(h5ovisit_by_name_c, H5OVISIT_BY_NAME_C) -#define nh5oget_info_c H5_FC_FUNC_(h5oget_info_c, H5OGET_INFO_C) -#define nh5oget_info_by_idx_c H5_FC_FUNC_(h5oget_info_by_idx_c ,H5OGET_INFO_BY_IDX_C) -#define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C) #define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C) #define nh5ocopy_c H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C) #define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C) @@ -828,13 +816,13 @@ H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id ); H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id); H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id); -H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); -H5_FCDLL int_f nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, +H5_FCDLL int_f h5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); +H5_FCDLL int_f h5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ); -H5_FCDLL int_f nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info); -H5_FCDLL int_f nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, +H5_FCDLL int_f h5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info); +H5_FCDLL int_f h5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info); -H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, +H5_FCDLL int_f h5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, H5O_info_t_f *object_info); H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, @@ -855,6 +843,7 @@ H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f * #define nh5pcreate_c H5_FC_FUNC_(h5pcreate_c, H5PCREATE_C) #define nh5pclose_c H5_FC_FUNC_(h5pclose_c, H5PCLOSE_C) #define nh5pcopy_c H5_FC_FUNC_(h5pcopy_c, H5PCOPY_C) +#define nh5pcreate_class_f90_c H5_FC_FUNC_(h5pcreate_class_f90_c, H5PCREATE_CLASS_F90_C) #define nh5pequal_c H5_FC_FUNC_(h5pequal_c, H5PEQUAL_C) #define nh5pget_class_c H5_FC_FUNC_(h5pget_class_c, H5PGET_CLASS_C) #define nh5pset_deflate_c H5_FC_FUNC_(h5pset_deflate_c, H5PSET_DEFLATE_C) @@ -862,15 +851,11 @@ H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f * #define nh5pget_preserve_c H5_FC_FUNC_(h5pget_preserve_c, H5PGET_PRESERVE_C) #define nh5pset_chunk_c H5_FC_FUNC_(h5pset_chunk_c, H5PSET_CHUNK_C) #define nh5pget_chunk_c H5_FC_FUNC_(h5pget_chunk_c, H5PGET_CHUNK_C) -#define nh5pset_file_image_c H5_FC_FUNC_(h5pset_file_image_c,H5PSET_FILE_IMAGE_C) #define nh5pset_fill_valuec_c H5_FC_FUNC_(h5pset_fill_valuec_c, H5PSET_FILL_VALUEC_C) -#define nh5pset_fill_value_c H5_FC_FUNC_(h5pset_fill_value_c, H5PSET_FILL_VALUE_C) #define nh5pset_fill_value_integer_c H5_FC_FUNC_(h5pset_fill_value_integer_c, H5PSET_FILL_VALUE_INTEGER_C) #define nh5pset_fill_value_real_c H5_FC_FUNC_(h5pset_fill_value_real_c, H5PSET_FILL_VALUE_REAL_C) #define nh5pset_fill_value_double_c H5_FC_FUNC_(h5pset_fill_value_double_c, H5PSET_FILL_VALUE_DOUBLE_C) -#define nh5pget_file_image_c H5_FC_FUNC_(h5pget_file_image_c,H5PGET_FILE_IMAGE_C) #define nh5pget_fill_valuec_c H5_FC_FUNC_(h5pget_fill_valuec_c, H5PGET_FILL_VALUEC_C) -#define nh5pget_fill_value_c H5_FC_FUNC_(h5pget_fill_value_c, H5PGET_FILL_VALUE_C) #define nh5pget_fill_value_integer_c H5_FC_FUNC_(h5pget_fill_value_integer_c, H5PGET_FILL_VALUE_INTEGER_C) #define nh5pget_fill_value_real_c H5_FC_FUNC_(h5pget_fill_value_real_c, H5PGET_FILL_VALUE_REAL_C) #define nh5pget_fill_value_double_c H5_FC_FUNC_(h5pget_fill_value_double_c, H5PGET_FILL_VALUE_DOUBLE_C) @@ -934,23 +919,18 @@ H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f * #define nh5pget_hyper_vector_size_c H5_FC_FUNC_(h5pget_hyper_vector_size_c, H5PGET_HYPER_VECTOR_SIZE_C) #define nh5pset_small_data_block_size_c H5_FC_FUNC_(h5pset_small_data_block_size_c, H5PSET_SMALL_DATA_BLOCK_SIZE_C) #define nh5pget_small_data_block_size_c H5_FC_FUNC_(h5pget_small_data_block_size_c, H5PGET_SMALL_DATA_BLOCK_SIZE_C) -#define nh5pcreate_class_c H5_FC_FUNC_(h5pcreate_class_c, H5PCREATE_CLASS_C) -#define nh5pregister_c H5_FC_FUNC_(h5pregister_c, H5PREGISTER_C) #define nh5pregister_integer_c H5_FC_FUNC_(h5pregister_integer_c, H5PREGISTER_INTEGER_C) #define nh5pregister_real_c H5_FC_FUNC_(h5pregister_real_c, H5PREGISTER_REAL_C) #define nh5pregister_double_c H5_FC_FUNC_(h5pregister_double_c, H5PREGISTER_DOUBLE_C) #define nh5pregisterc_c H5_FC_FUNC_(h5pregisterc_c, H5PREGISTERC_C) -#define nh5pinsert_c H5_FC_FUNC_(h5pinsert_c, H5PINSERT_C) #define nh5pinsert_integer_c H5_FC_FUNC_(h5pinsert_integer_c, H5PINSERT_INTEGER_C) #define nh5pinsert_real_c H5_FC_FUNC_(h5pinsert_real_c, H5PINSERT_REAL_C) #define nh5pinsert_double_c H5_FC_FUNC_(h5pinsert_double_c, H5PINSERT_DOUBLE_C) #define nh5pinsertc_c H5_FC_FUNC_(h5pinsertc_c, H5PINSERTC_C) -#define nh5pset_c H5_FC_FUNC_(h5pset_c, H5PSET_C) #define nh5pset_integer_c H5_FC_FUNC_(h5pset_integer_c, H5PSET_INTEGER_C) #define nh5pset_real_c H5_FC_FUNC_(h5pset_real_c, H5PSET_REAL_C) #define nh5pset_double_c H5_FC_FUNC_(h5pset_double_c, H5PSET_DOUBLE_C) #define nh5psetc_c H5_FC_FUNC_(h5psetc_c, H5PSETC_C) -#define nh5pget_c H5_FC_FUNC_(h5pget_c, H5PGET_C) #define nh5pget_integer_c H5_FC_FUNC_(h5pget_integer_c, H5PGET_INTEGER_C) #define nh5pget_real_c H5_FC_FUNC_(h5pget_real_c, H5PGET_REAL_C) #define nh5pget_double_c H5_FC_FUNC_(h5pget_double_c, H5PGET_DOUBLE_C) @@ -1018,15 +998,15 @@ H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype); H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level); H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); -H5_FCDLL int_f nh5pset_file_image_c (hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len); +H5_FCDLL int_f h5pset_file_image_c (hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len); H5_FCDLL int_f nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); -H5_FCDLL int_f nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f h5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); H5_FCDLL int_f nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); H5_FCDLL int_f nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); H5_FCDLL int_f nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pget_file_image_c (hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len); +H5_FCDLL int_f h5pget_file_image_c (hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len); H5_FCDLL int_f nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); -H5_FCDLL int_f nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f h5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); H5_FCDLL int_f nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); H5_FCDLL int_f nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); H5_FCDLL int_f nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); @@ -1091,26 +1071,27 @@ H5_FCDLL int_f nh5pset_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); H5_FCDLL int_f nh5pget_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); H5_FCDLL int_f nh5pset_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); H5_FCDLL int_f nh5pget_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls, +H5_FCDLL int_f h5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls, H5P_cls_create_func_t create, void *create_data, H5P_cls_copy_func_t copy, void *copy_data, H5P_cls_close_func_t close, void *close_data); -H5_FCDLL int_f nh5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pcreate_class_f90_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls); +H5_FCDLL int_f h5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f h5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); H5_FCDLL int_f nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f h5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5pset_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5pset_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5pset_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5psetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f h5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5pget_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5pget_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); H5_FCDLL int_f nh5pget_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); @@ -1175,32 +1156,27 @@ H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_ */ #define nh5rcreate_object_c H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C) #define nh5rcreate_region_c H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C) -#define nh5rcreate_ptr_c H5_FC_FUNC_(h5rcreate_ptr_c, H5RCREATE_PTR_C) #define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C) #define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C) -#define nh5rdereference_ptr_c H5_FC_FUNC_(h5rdereference_ptr_c, H5RDEREFERENCE_PTR_C) #define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C) -#define nh5rget_region_ptr_c H5_FC_FUNC_(h5rget_region_ptr_c, H5RGET_REGION_PTR_C) #define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C) #define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C) #define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C) -#define nh5rget_name_ptr_c H5_FC_FUNC_(h5rget_name_ptr_c, H5RGET_NAME_PTR_C) -#define nh5rget_obj_type_c H5_FC_FUNC_(h5rget_obj_type_c, H5RGET_OBJ_TYPE_C) H5_FCDLL int_f nh5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen); H5_FCDLL int_f nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id); -H5_FCDLL int_f nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id); +H5_FCDLL int_f h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id); H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id); H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id); -H5_FCDLL int_f nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id); +H5_FCDLL int_f h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id); H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id); -H5_FCDLL int_f nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id); +H5_FCDLL int_f h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id); H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type); H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); -H5_FCDLL int_f nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); -H5_FCDLL int_f nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type); +H5_FCDLL int_f h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); +H5_FCDLL int_f h5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type); /* * Functions from H5If.c */ @@ -1229,7 +1205,6 @@ H5_FCDLL int_f nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid); #define nh5eget_major_c H5_FC_FUNC_(h5eget_major_c, H5EGET_MAJOR_C) #define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C) #define nh5eset_auto_c H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C) -#define nh5eset_auto2_c H5_FC_FUNC_(h5eset_auto2_c, H5ESET_AUTO2_C) #define nprocess_buffer H5_FC_FUNC_(process_buffer, PROCESS_BUFFER) @@ -1239,7 +1214,7 @@ H5_FCDLL int_f nh5eprint_c2(void); H5_FCDLL int_f nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen); H5_FCDLL int_f nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen); H5_FCDLL int_f nh5eset_auto_c(int_f* printflag); -H5_FCDLL int_f nh5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data); +H5_FCDLL int_f h5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data); H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer); /* @@ -1300,9 +1275,7 @@ H5_FCDLL int_f nh5zget_filter_info_c (int_f *filter, int_f *flag); #define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C) #define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C) #define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C) -#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C) -#define nh5literate_c H5_FC_FUNC_(h5literate_c, H5LITERATE_C) -#define nh5literate_by_name_c H5_FC_FUNC_(h5literate_by_name_c, H5LITERATE_BY_NAME_C) +#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C) H5_FCDLL int_f nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, _fcd dest_name, size_t_f *dest_namelen, @@ -1338,8 +1311,8 @@ H5_FCDLL int_f nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f H5_FCDLL int_f nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size, void *linkval_buff, hid_t_f *lapl_id) ; -H5_FCDLL int_f nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ); -H5_FCDLL int_f nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id); +H5_FCDLL int_f h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ); +H5_FCDLL int_f h5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id); #endif /* _H5f90proto_H */ diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index bea4a2d..0b8e6c1 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -734,7 +734,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 AM_FCLIBS = $(LIBHDF5) diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt index 9776f06..03ef26d 100644 --- a/hl/c++/src/CMakeLists.txt +++ b/hl/c++/src/CMakeLists.txt @@ -41,7 +41,7 @@ install ( #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlcpplibraries) + INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index f78f404..c95054e 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -675,7 +675,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 # This is our main target diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt index c5b2d57..ee8604e 100644 --- a/hl/fortran/src/CMakeLists.txt +++ b/hl/fortran/src/CMakeLists.txt @@ -109,8 +109,8 @@ endif (WIN32) #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlfortlibraries) - #INSTALL_TARGET_PDB (${HDF5_HL_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlfortlibraries) + INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries) + #INSTALL_TARGET_PDB (${HDF5_HL_F90_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 1cacec0..8c5f9e0 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -690,7 +690,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 # Our main target, the high-level fortran library diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt index e3a72e4..9c9e3a9 100644 --- a/hl/src/CMakeLists.txt +++ b/hl/src/CMakeLists.txt @@ -60,7 +60,7 @@ install ( #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hllibraries) + INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 6233295..b4a1582 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -671,7 +671,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 # This library is our main target. diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel index 28068f1..2624b3b 100644 --- a/release_docs/INSTALL_parallel +++ b/release_docs/INSTALL_parallel @@ -191,7 +191,7 @@ echo SKIP TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 2.5.1 Building HDF5 for Hopper ------------------------------------------ The following steps are for building HDF5 for the Hopper compute -nodes. They would probably work for other Cray XE6 systems but have +nodes. They would probably work for other Cray systems but have not been verified. Obtain a copy from the HDF ftp server: @@ -199,39 +199,32 @@ http://www.hdfgroup.org/ftp/HDF5/current/src/ (link might change, so always double check the HDF group website). $ wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-x.x.x.tar.gz - unpack the tarball -$ cd hdf5-x.x.x/ -$ CC=cc FC=ftn ./configure \ ---prefix=/project/hdf5/hdf5 --enable-parallel --enable-fortran \ ---disable-shared --disable-production -$ make +The entire build process should be done on a MOM node in an interactive allocation and on a file system accessible by all compute nodes. +Request an interactive allocation with qsub: +qsub -I -q debug -l mppwidth=8 -Run make check. make check should be run on the compute nodes, not the -front end nodes. So using a PBS batch script, allocate 4 or more -cores. Always consult with the machine's website on how to create PBS -scripts and allocate nodes for your job. For Hopper, all the -information can be found on: -http://www.nersc.gov/systems/hopper-cray-xe6/ +- create a build directory build-hdf5: + mkdir build-hdf5; cd build-hdf5/ -save the PBS script into your HDF5 build directory. The PBS script -should contain (besides the PBS node allocation requests)the -following: +- configure HDF5: + RUNSERIAL="aprun -q -n 1" RUNPARALLEL="aprun -q -n 6" FC=ftn CC=cc /path/to/source/configure --enable-fortran --enable-parallel --disable-shared --------------------------------------------------------------- -cd $PBS_O_WORKDIR + RUNSERIAL and RUNPARALLEL tells the library how it should launch programs that are part of the build procedure. -##set RUNSERIAL and RUNPARALLEL like this in the PBS script: -export RUNPARALLEL="aprun -n 6" -export RUNSERIAL="aprun -n 1" +- Compile HDF5: + gmake -##execute make check: -make check --------------------------------------------------------------- +- Check HDF5 + gmake check + +- Install HDF5 + gmake install + +The build will be in build-hdf5/hdf5/ (or whatever you specify in --prefix). +To compile other HDF5 applications use the wrappers created by the build (build-hdf5/hdf5/bin/h5pcc or h5fc) -Once the job runs and all is well, install the binary: -$ make install 2.5.2 Hopper known issues ------------------------------ diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 99b1413..c38e3a7 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.210-swmr0 currently under development +HDF5 version 1.9.213-swmr0 currently under development ================================================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6e16a3c..39c1d3f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -914,7 +914,7 @@ endif (NOT HDF5_INSTALL_NO_DEVELOPMENT) #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} libraries) + INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index 11cb913..88e8eff 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -474,7 +474,7 @@ H5D__contig_collective_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_ FUNC_ENTER_PACKAGE /* Sanity check */ - HDassert(IS_H5FD_MPIO(io_info->dset->oloc.file)); + HDassert(H5FD_MPIO == H5F_DRIVER_ID(io_info->dset->oloc.file)); HDassert(TRUE == H5P_isa_class(io_info->dxpl_id, H5P_DATASET_XFER)); /* Call generic internal collective I/O routine */ @@ -521,7 +521,7 @@ H5D__contig_collective_write(H5D_io_info_t *io_info, const H5D_type_info_t *type FUNC_ENTER_PACKAGE /* Sanity check */ - HDassert(IS_H5FD_MPIO(io_info->dset->oloc.file)); + HDassert(H5FD_MPIO == H5F_DRIVER_ID(io_info->dset->oloc.file)); HDassert(TRUE == H5P_isa_class(io_info->dxpl_id, H5P_DATASET_XFER)); /* Call generic internal collective I/O routine */ @@ -1002,6 +1002,10 @@ H5FD_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) /* (This will be changed later, when the superblock is located) */ file->base_addr = 0; + /* Check for SWMR reader access */ + if(flags & H5F_ACC_SWMR_READ) + file->swmr_read = TRUE; + /* Set return value */ ret_value = file; diff --git a/src/H5FDcore.c b/src/H5FDcore.c index 484c481..8a4c8d1 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -94,8 +94,6 @@ typedef struct H5FD_core_t { hbool_t dirty; /* changes not saved? */ H5FD_file_image_callbacks_t fi_callbacks; /* file image callbacks */ - /* Information from file open flags, for SWMR access */ - hbool_t swmr_read; /* Whether the file is open for SWMR read access */ H5SL_t *dirty_list; /* dirty parts of the file */ } H5FD_core_t; @@ -865,10 +863,6 @@ fprintf(stderr, "\n"); } /* end if */ } /* end if */ - /* Check for SWMR reader access */ - if(flags & H5F_ACC_SWMR_READ) - file->swmr_read = TRUE; - /* Set return value */ ret_value = (H5FD_t *)file; @@ -1237,14 +1231,6 @@ H5FD_core_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, hadd HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") - /* If the file is open for SWMR read access, allow access to data past - * the end of the allocated space (the 'eoa'). This is done because the - * eoa stored in the file's superblock might be out of sync with the - * objects being written within the file by the application performing - * SWMR write operations. - */ - if(!file->swmr_read && (addr + size) > file->eoa) - HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") /* Read the part which is before the EOF marker */ if (addr < file->eof) { @@ -1303,8 +1289,6 @@ H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, had /* Check for overflow conditions */ if(REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") - if(addr + size > file->eoa) - HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") /* * Allocate more memory if necessary, careful of overflow. Also, if the diff --git a/src/H5FDdirect.c b/src/H5FDdirect.c index 9a9d6df..65c2691 100644 --- a/src/H5FDdirect.c +++ b/src/H5FDdirect.c @@ -102,8 +102,6 @@ typedef struct H5FD_direct_t { DWORD fileindexhi; #endif - /* Information from file open flags, for SWMR access */ - hbool_t swmr_read; /* Whether the file is open for SWMR read access */ } H5FD_direct_t; /* @@ -582,10 +580,6 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd if(buf2) HDfree(buf2); - /* Check for SWMR reader access */ - if(flags & H5F_ACC_SWMR_READ) - file->swmr_read = TRUE; - /* Set return value */ ret_value=(H5FD_t*)file; @@ -904,14 +898,6 @@ H5FD_direct_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, ha HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") - /* If the file is open for SWMR read access, allow access to data past - * the end of the allocated space (the 'eoa'). This is done because the - * eoa stored in the file's superblock might be out of sync with the - * objects being written within the file by the application performing - * SWMR write operations. - */ - if(!file->swmr_read && (addr + size) > file->eoa) - HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") /* If the system doesn't require data to be aligned, read the data in * the same way as sec2 driver. @@ -1098,8 +1084,6 @@ H5FD_direct_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, h HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") - if (addr+size>file->eoa) - HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") /* If the system doesn't require data to be aligned, read the data in * the same way as sec2 driver. diff --git a/src/H5FDint.c b/src/H5FDint.c index 4f3c234..ca4e0ff 100644 --- a/src/H5FDint.c +++ b/src/H5FDint.c @@ -186,6 +186,7 @@ herr_t H5FD_read(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t addr, size_t size, void *buf/*out*/) { + haddr_t eoa = HADDR_UNDEF; herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -202,6 +203,20 @@ H5FD_read(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t add HGOTO_DONE(SUCCEED) #endif /* H5_HAVE_PARALLEL */ + if(HADDR_UNDEF == (eoa = (file->cls->get_eoa)(file, type))) + HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed") + + /* + * If the file is open for SWMR read access, allow access to data past + * the end of the allocated space (the 'eoa'). This is done because the + * eoa stored in the file's superblock might be out of sync with the + * objects being written within the file by the application performing + * SWMR write operations. + */ + if(!file->swmr_read && ((addr + file->base_addr + size) > eoa)) + HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size=%llu, eoa=%llu", + (unsigned long long)(addr+ file->base_addr), (unsigned long long)size, (unsigned long long)eoa) + /* Dispatch to driver */ if((file->cls->read)(file, type, H5P_PLIST_ID(dxpl), addr + file->base_addr, size, buf) < 0) HGOTO_ERROR(H5E_VFL, H5E_READERROR, FAIL, "driver read request failed") @@ -228,6 +243,7 @@ herr_t H5FD_write(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf) { + haddr_t eoa = HADDR_UNDEF; herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -244,6 +260,12 @@ H5FD_write(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t ad HGOTO_DONE(SUCCEED) #endif /* H5_HAVE_PARALLEL */ + if(HADDR_UNDEF == (eoa = (file->cls->get_eoa)(file, type))) + HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed") + if((addr + file->base_addr + size) > eoa) + HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size=%llu, eoa=%llu", + (unsigned long long)(addr+ file->base_addr), (unsigned long long)size, (unsigned long long)eoa) + /* Dispatch to driver */ if((file->cls->write)(file, type, H5P_PLIST_ID(dxpl), addr + file->base_addr, size, buf) < 0) HGOTO_ERROR(H5E_VFL, H5E_WRITEERROR, FAIL, "driver write request failed") diff --git a/src/H5FDlog.c b/src/H5FDlog.c index 5d98955..a2284dd 100644 --- a/src/H5FDlog.c +++ b/src/H5FDlog.c @@ -126,12 +126,6 @@ typedef struct H5FD_log_t { */ hbool_t fam_to_sec2; - /* Information from file open flags, for SWMR access: - * - * Whether the file is open for SWMR read access. - */ - hbool_t swmr_read; - /* Fields for tracking I/O operations */ unsigned char *nread; /* Number of reads from a file location */ unsigned char *nwrite; /* Number of write to a file location */ @@ -647,10 +641,6 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) } /* end if */ - /* Check for SWMR reader access */ - if(flags & H5F_ACC_SWMR_READ) - file->swmr_read = TRUE; - /* Check for non-default FAPL */ if(H5P_FILE_ACCESS_DEFAULT != fapl_id) { /* This step is for h5repart tool only. If user wants to change file driver from @@ -1149,14 +1139,6 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr) if(REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu", (unsigned long long)addr) - /* If the file is open for SWMR read access, allow access to data past - * the end of the allocated space (the 'eoa'). This is done because the - * eoa stored in the file's superblock might be out of sync with the - * objects being written within the file by the application performing - * SWMR write operations. - */ - if(!file->swmr_read && (addr + size) > file->eoa) - HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu", (unsigned long long)addr) /* Log the I/O information about the read */ if(file->fa.flags != 0) { @@ -1361,8 +1343,6 @@ H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t add HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr) if(REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu", (unsigned long long)addr, (unsigned long long)size) - if((addr + size) > file->eoa) - HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu, eoa = %llu", (unsigned long long)addr, (unsigned long long)size, (unsigned long long)file->eoa) /* Log the I/O information about the write */ if(file->fa.flags & H5FD_LOG_FILE_WRITE) { diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h index 7c2a564..e98f0f4 100644 --- a/src/H5FDprivate.h +++ b/src/H5FDprivate.h @@ -40,10 +40,6 @@ /* Length of filename buffer */ #define H5FD_MAX_FILENAME_LEN 1024 -/* MPI based VFDs */ -#define IS_H5FD_MPIO(f) /* (H5F_t *f) */ \ - (H5FD_MPIO==H5F_DRIVER_ID(f)) - #ifdef H5_HAVE_PARALLEL /* ======== Temporary data transfer properties ======== */ /* Definitions for memory MPI type property */ diff --git a/src/H5FDpublic.h b/src/H5FDpublic.h index 87edf50..5513746 100644 --- a/src/H5FDpublic.h +++ b/src/H5FDpublic.h @@ -217,8 +217,8 @@ typedef enum H5F_mem_t H5FD_mem_t; */ #define H5FD_FEAT_HAS_MPI 0x00000100 /* - * Defining the H5FD_FEAT_ALLOCATE_EARLY for a VFL driver means that - * the library will use the H5D_ALLOC_TIME_EARLY on dataset create + * Defining the H5FD_FEAT_ALLOCATE_EARLY for a VFL driver will force + * the library to use the H5D_ALLOC_TIME_EARLY on dataset create * instead of the default H5D_ALLOC_TIME_LATE */ #define H5FD_FEAT_ALLOCATE_EARLY 0x00000200 @@ -235,7 +235,6 @@ typedef enum H5F_mem_t H5FD_mem_t; */ #define H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS 0x00000800 - /* Forward declaration */ typedef struct H5FD_t H5FD_t; @@ -298,6 +297,8 @@ struct H5FD_t { unsigned long feature_flags; /* VFL Driver feature Flags */ haddr_t maxaddr; /* For this file, overrides class */ haddr_t base_addr; /* Base address for HDF5 data w/in file */ + hbool_t swmr_read; /* Whether the file is open for SWMR read access */ + /* Information from file open flags, for SWMR access */ /* Space allocation management fields */ hsize_t threshold; /* Threshold for alignment */ diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index b6cdef5..49a363e 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -103,11 +103,6 @@ typedef struct H5FD_sec2_t { */ hbool_t fam_to_sec2; - /* Information from file open flags, for SWMR access: - * - * Whether the file is open for SWMR read access. - */ - hbool_t swmr_read; } H5FD_sec2_t; /* @@ -393,10 +388,6 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) HDstrncpy(file->filename, name, sizeof(file->filename)); file->filename[sizeof(file->filename) - 1] = '\0'; - /* Check for SWMR reader access */ - if(flags & H5F_ACC_SWMR_READ) - file->swmr_read = TRUE; - /* Check for non-default FAPL */ if(H5P_FILE_ACCESS_DEFAULT != fapl_id) { H5P_genplist_t *plist; /* Property list pointer */ @@ -704,15 +695,6 @@ H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr) if(REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu", (unsigned long long)addr) - /* If the file is open for SWMR read access, allow access to data past - * the end of the allocated space (the 'eoa'). This is done because the - * eoa stored in the file's superblock might be out of sync with the - * objects being written within the file by the application performing - * SWMR write operations. - */ - if(!file->swmr_read && (addr + size) > file->eoa) - HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size=%lu, eoa=%llu", - (unsigned long long)addr, size, (unsigned long long)file->eoa) /* Seek to the correct location */ if(addr != file->pos || OP_READ != file->op) { @@ -808,8 +790,6 @@ H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr) if(REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu", (unsigned long long)addr, (unsigned long long)size) - if((addr + size) > file->eoa) - HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu, eoa = %llu", (unsigned long long)addr, (unsigned long long)size, (unsigned long long)file->eoa) /* Seek to the correct location */ if(addr != file->pos || OP_WRITE != file->op) { diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c index ee97929..f172978 100644 --- a/src/H5FDstdio.c +++ b/src/H5FDstdio.c @@ -124,8 +124,6 @@ typedef struct H5FD_stdio_t { HANDLE hFile; /* Native windows file handle */ #endif /* H5_HAVE_WIN32_API */ - /* Information from file open flags, for SWMR access */ - hbool_t swmr_read; /* Whether the file is open for SWMR read access */ } H5FD_stdio_t; /* Use similar structure as in H5private.h by defining Windows stuff first. */ @@ -462,10 +460,6 @@ H5FD_stdio_open( const char *name, unsigned flags, hid_t fapl_id, #endif /* H5_VMS */ #endif /* H5_HAVE_WIN32_API */ - /* Check for SWMR reader access */ - if(flags & H5F_ACC_SWMR_READ) - file->swmr_read = 1; - return((H5FD_t*)file); } /* end H5FD_stdio_open() */ @@ -806,14 +800,6 @@ H5FD_stdio_read(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, siz H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) if (REGION_OVERFLOW(addr, size)) H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) - /* If the file is open for SWMR read access, allow access to data past - * the end of the allocated space (the 'eoa'). This is done because the - * eoa stored in the file's superblock might be out of sync with the - * objects being written within the file by the application performing - * SWMR write operations. - */ - if(!file->swmr_read && (addr + size) > file->eoa) - H5Epush_ret(func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) /* Check easy cases */ if (0 == size) @@ -919,8 +905,6 @@ H5FD_stdio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) if (REGION_OVERFLOW(addr, size)) H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) - if (addr+size > file->eoa) - H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) /* Seek to the correct file position. */ if ((file->op != H5FD_STDIO_OP_WRITE && file->op != H5FD_STDIO_OP_SEEK) || diff --git a/src/H5Fmpi.c b/src/H5Fmpi.c index 4d3ca34..39b8dfa 100644 --- a/src/H5Fmpi.c +++ b/src/H5Fmpi.c @@ -208,8 +208,8 @@ H5Fset_mpi_atomicity(hid_t file_id, hbool_t flag) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID") /* Check VFD */ - if(!IS_H5FD_MPIO(file)) - HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, must use MPI-I/O driver") + if(!H5F_HAS_FEATURE(file, H5FD_FEAT_HAS_MPI)) + HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, does not support MPI atomicity mode") /* set atomicity value */ if (H5FD_set_mpio_atomicity (file->shared->lf, flag) < 0) @@ -248,8 +248,8 @@ H5Fget_mpi_atomicity(hid_t file_id, hbool_t *flag) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID") /* Check VFD */ - if(!IS_H5FD_MPIO(file)) - HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, must use MPI-I/O driver") + if(!H5F_HAS_FEATURE(file, H5FD_FEAT_HAS_MPI)) + HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, does not support MPI atomicity mode") /* get atomicity value */ if (H5FD_get_mpio_atomicity (file->shared->lf, flag) < 0) diff --git a/src/H5Obogus.c b/src/H5Obogus.c index cee3199..d930683 100644 --- a/src/H5Obogus.c +++ b/src/H5Obogus.c @@ -87,20 +87,20 @@ const H5O_msg_class_t H5O_MSG_BOGUS[1] = {{ *------------------------------------------------------------------------- */ static void * -H5O_bogus_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, +H5O_bogus_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p) { H5O_bogus_t *mesg = NULL; void *ret_value; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_bogus_decode) + FUNC_ENTER_NOAPI_NOINIT /* check args */ HDassert(f); HDassert(p); /* Allocate the bogus message */ - if(NULL == (mesg = H5MM_calloc(sizeof(H5O_bogus_t)))) + if(NULL == (mesg = (H5O_bogus_t *)H5MM_calloc(sizeof(H5O_bogus_t)))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* decode */ @@ -137,7 +137,7 @@ done: static herr_t H5O_bogus_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void UNUSED *mesg) { - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_bogus_encode) + FUNC_ENTER_NOAPI_NOINIT_NOERR /* check args */ HDassert(f); @@ -172,7 +172,7 @@ H5O_bogus_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, con static size_t H5O_bogus_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void UNUSED *mesg) { - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_bogus_size) + FUNC_ENTER_NOAPI_NOINIT_NOERR FUNC_LEAVE_NOAPI(4) } /* end H5O_bogus_size() */ @@ -199,7 +199,7 @@ H5O_bogus_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * { const H5O_bogus_t *mesg = (const H5O_bogus_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_bogus_debug) + FUNC_ENTER_NOAPI_NOINIT_NOERR /* check args */ HDassert(f); diff --git a/src/H5Ocache.c b/src/H5Ocache.c index 42aee03..eef577c 100644 --- a/src/H5Ocache.c +++ b/src/H5Ocache.c @@ -1272,7 +1272,7 @@ H5O_chunk_deserialize(H5O_t *oh, haddr_t addr, size_t len, const uint8_t *image, HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "unknown flag for message") if((flags & H5O_MSG_FLAG_SHARED) && (flags & H5O_MSG_FLAG_DONTSHARE)) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "bad flag combination for message") - if((flags & H5O_MSG_FLAG_WAS_UNKNOWN) && (flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN)) + if((flags & H5O_MSG_FLAG_WAS_UNKNOWN) && (flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE)) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "bad flag combination for message") if((flags & H5O_MSG_FLAG_WAS_UNKNOWN) && !(flags & H5O_MSG_FLAG_MARK_IF_UNKNOWN)) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "bad flag combination for message") @@ -1348,7 +1348,8 @@ H5O_chunk_deserialize(H5O_t *oh, haddr_t addr, size_t len, const uint8_t *image, oh->mesg[mesgno].type = H5O_msg_class_g[H5O_UNKNOWN_ID]; /* Check for "fail if unknown" message flag */ - if(flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN) + if((udata->file_intent & H5F_ACC_RDWR) && + (flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE)) HGOTO_ERROR(H5E_OHDR, H5E_BADMESG, FAIL, "unknown message with 'fail if unknown' flag found") /* Check for "mark if unknown" message flag, etc. */ else if((flags & H5O_MSG_FLAG_MARK_IF_UNKNOWN) && diff --git a/src/H5Odbg.c b/src/H5Odbg.c index b91a51a..0531a90 100644 --- a/src/H5Odbg.c +++ b/src/H5Odbg.c @@ -466,7 +466,7 @@ H5O_debug_real(H5F_t *f, hid_t dxpl_id, H5O_t *oh, haddr_t addr, FILE *stream, i HDfprintf(stream, "%sDS", (flag_printed ? ", " : "<")); flag_printed = TRUE; } /* end if */ - if(oh->mesg[i].flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN) { + if(oh->mesg[i].flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE) { HDfprintf(stream, "%sFIU", (flag_printed ? ", " : "<")); flag_printed = TRUE; } /* end if */ diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h index 29e813b..44e9298 100644 --- a/src/H5Oprivate.h +++ b/src/H5Oprivate.h @@ -71,11 +71,11 @@ typedef struct H5O_proxy_t H5O_proxy_t; #define H5O_MSG_FLAG_CONSTANT 0x01u #define H5O_MSG_FLAG_SHARED 0x02u #define H5O_MSG_FLAG_DONTSHARE 0x04u -#define H5O_MSG_FLAG_FAIL_IF_UNKNOWN 0x08u +#define H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE 0x08u #define H5O_MSG_FLAG_MARK_IF_UNKNOWN 0x10u #define H5O_MSG_FLAG_WAS_UNKNOWN 0x20u #define H5O_MSG_FLAG_SHAREABLE 0x40u -#define H5O_MSG_FLAG_BITS (H5O_MSG_FLAG_CONSTANT|H5O_MSG_FLAG_SHARED|H5O_MSG_FLAG_DONTSHARE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN|H5O_MSG_FLAG_MARK_IF_UNKNOWN|H5O_MSG_FLAG_WAS_UNKNOWN|H5O_MSG_FLAG_SHAREABLE) +#define H5O_MSG_FLAG_BITS (H5O_MSG_FLAG_CONSTANT|H5O_MSG_FLAG_SHARED|H5O_MSG_FLAG_DONTSHARE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE|H5O_MSG_FLAG_MARK_IF_UNKNOWN|H5O_MSG_FLAG_WAS_UNKNOWN|H5O_MSG_FLAG_SHAREABLE) /* Flags for updating messages */ #define H5O_UPDATE_TIME 0x01u @@ -405,8 +405,14 @@ H5PL__find(H5PL_type_t plugin_type, int type_id, char *dir, const void **info) /* The library we are looking for should be called libxxx.so... on Unix * or libxxx.xxx.dylib on Mac. */ +#ifndef __CYGWIN__ if(!HDstrncmp(dp->d_name, "lib", (size_t)3) && (HDstrstr(dp->d_name, ".so") || HDstrstr(dp->d_name, ".dylib"))) { +#else + if(!HDstrncmp(dp->d_name, "cyg", (size_t)3) && + HDstrstr(dp->d_name, ".dll") ) { + +#endif h5_stat_t my_stat; size_t pathname_len; htri_t found_in_dir; diff --git a/src/H5public.h b/src/H5public.h index b01ecc9..5ca96c2 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -94,10 +94,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 210 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 213 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "swmr0" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.210-swmr0" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.213-swmr0" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index b944ca1..69cb899 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -736,7 +736,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 200 +LT_VERS_REVISION = 203 LT_VERS_AGE = 0 # Our main target, the HDF5 library diff --git a/src/hdf5.lnt b/src/hdf5.lnt index 2ccc1f5..642698a 100644 --- a/src/hdf5.lnt +++ b/src/hdf5.lnt @@ -17,12 +17,6 @@ // Suppress message about "Constant value boolean" in TRUE macros -emacro(506,TRUE) -// Suppress message about "Constant value boolean" in IS_H5FD_MPI* macros --emacro(506,IS_H5FD_MPI) - -// Suppress message about "Boolean within 'if' always evaluates false" in IS_H5FD_MPI* macros --emacro((774),IS_H5FD_MPI) - // Suppress message about our use of 'goto' in our error macros -emacro(801,HGOTO_DONE, H5Epush_goto) diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake index 4e22529..f609b7a 100644 --- a/test/CMakeTests.cmake +++ b/test/CMakeTests.cmake @@ -5,15 +5,36 @@ ############################################################################## ############################################################################## +# make test dir +file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST") +file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles") +file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files") +if (HDF5_TEST_VFD) + set (VFD_LIST + sec2 + stdio + core + split + multi + family + ) + if (DIRECT_VFD) + set (VFD_LIST ${VFD_LIST} direct) + endif (DIRECT_VFD) + foreach (vfdtest ${VFD_LIST}) + file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}") + endforeach (vfdtest ${VFD_LIST}) +endif (HDF5_TEST_VFD) + # -------------------------------------------------------------------- -# Copy all the HDF5 files from the test directory into the source directory +# Copy all the HDF5 files from the source directory into the test directory # -------------------------------------------------------------------- set (HDF5_TEST_FILES tnullspace.h5 ) foreach (h5_tfile ${HDF5_TEST_FILES}) - set (dest "${PROJECT_BINARY_DIR}/${h5_tfile}") + set (dest "${PROJECT_BINARY_DIR}/H5TEST/${h5_tfile}") #message (STATUS " Copying ${h5_tfile}") add_custom_command ( TARGET ${HDF5_TEST_LIB_TARGET} @@ -22,6 +43,20 @@ foreach (h5_tfile ${HDF5_TEST_FILES}) ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest} ) endforeach (h5_tfile ${HDF5_TEST_FILES}) +if (HDF5_TEST_VFD) + foreach (vfdtest ${VFD_LIST}) + foreach (h5_tfile ${HDF5_TEST_FILES}) + set (dest "${PROJECT_BINARY_DIR}/${vfdtest}/${h5_tfile}") + #message (STATUS " Copying ${h5_tfile}") + add_custom_command ( + TARGET ${HDF5_TEST_LIB_TARGET} + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest} + ) + endforeach (h5_tfile ${HDF5_TEST_FILES}) + endforeach (vfdtest ${VFD_LIST}) +endif (HDF5_TEST_VFD) # -------------------------------------------------------------------- # Copy all the HDF5 files from the test directory into the source directory @@ -35,7 +70,7 @@ set (HDF5_REFERENCE_FILES ) foreach (ref_file ${HDF5_REFERENCE_FILES}) - set (dest "${PROJECT_BINARY_DIR}/${ref_file}") + set (dest "${PROJECT_BINARY_DIR}/H5TEST/${ref_file}") #message (STATUS " Copying ${h5_file}") add_custom_command ( TARGET ${HDF5_TEST_LIB_TARGET} @@ -44,6 +79,20 @@ foreach (ref_file ${HDF5_REFERENCE_FILES}) ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest} ) endforeach (ref_file ${HDF5_REFERENCE_FILES}) +if (HDF5_TEST_VFD) + foreach (vfdtest ${VFD_LIST}) + foreach (ref_file ${HDF5_REFERENCE_FILES}) + set (dest "${PROJECT_BINARY_DIR}/${vfdtest}/${ref_file}") + #message (STATUS " Copying ${h5_file}") + add_custom_command ( + TARGET ${HDF5_TEST_LIB_TARGET} + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest} + ) + endforeach (ref_file ${HDF5_REFERENCE_FILES}) + endforeach (vfdtest ${VFD_LIST}) +endif (HDF5_TEST_VFD) # -------------------------------------------------------------------- # Copy test files from test/testfiles/plist_files dir to test dir @@ -76,7 +125,7 @@ set (HDF5_REFERENCE_PLIST_FILES ) foreach (plistfile ${HDF5_REFERENCE_PLIST_FILES}) - set (dest "${PROJECT_BINARY_DIR}/${plistfile}") + set (dest "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files/${plistfile}") #message (STATUS " Copying ${plistfile} to ${dset}") add_custom_command ( TARGET ${HDF5_TEST_LIB_TARGET} @@ -90,6 +139,7 @@ endforeach (plistfile ${HDF5_REFERENCE_PLIST_FILES}) #-- Copy all the HDF5 files from the test directory into the source directory # -------------------------------------------------------------------- set (HDF5_REFERENCE_TEST_FILES + bad_compound.h5 be_data.h5 be_extlink1.h5 be_extlink2.h5 @@ -126,7 +176,7 @@ set (HDF5_REFERENCE_TEST_FILES ) foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) - set (dest "${HDF5_TEST_BINARY_DIR}/${h5_file}") + set (dest "${HDF5_TEST_BINARY_DIR}/H5TEST/${h5_file}") #message (STATUS " Copying ${h5_file} to ${dest}") add_custom_command ( TARGET ${HDF5_TEST_LIB_TARGET} @@ -135,6 +185,20 @@ foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest} ) endforeach (h5_file ${HDF5_REFERENCE_TEST_FILES}) +if (HDF5_TEST_VFD) + foreach (vfdtest ${VFD_LIST}) + foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) + set (dest "${HDF5_TEST_BINARY_DIR}/${vfdtest}/${h5_file}") + #message (STATUS " Copying ${h5_file} to ${dest}") + add_custom_command ( + TARGET ${HDF5_TEST_LIB_TARGET} + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest} + ) + endforeach (h5_file ${HDF5_REFERENCE_TEST_FILES}) + endforeach (vfdtest ${VFD_LIST}) +endif (HDF5_TEST_VFD) # Remove any output file left over from previous test run add_test ( @@ -158,24 +222,42 @@ add_test ( tsohm.h5 tsohm_dst.h5 tsohm_src.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) if (HDF5_ENABLE_USING_MEMCHECKER) add_test (NAME H5TEST-testhdf5-base COMMAND $<TARGET_FILE:testhdf5> -x heap -x file -x select) - set_tests_properties (H5TEST-testhdf5-base PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects) - set_tests_properties (H5TEST-testhdf5-base PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600) + set_tests_properties (H5TEST-testhdf5-base PROPERTIES + DEPENDS H5TEST-clear-testhdf5-objects + ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) add_test (NAME H5TEST-testhdf5-heap COMMAND $<TARGET_FILE:testhdf5> -o heap) - set_tests_properties (H5TEST-testhdf5-heap PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects) - set_tests_properties (H5TEST-testhdf5-heap PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600) + set_tests_properties (H5TEST-testhdf5-heap PROPERTIES + DEPENDS H5TEST-clear-testhdf5-objects + ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) add_test (NAME H5TEST-testhdf5-file COMMAND $<TARGET_FILE:testhdf5> -o file) - set_tests_properties (H5TEST-testhdf5-file PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects) - set_tests_properties (H5TEST-testhdf5-file PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600) + set_tests_properties (H5TEST-testhdf5-file PROPERTIES + DEPENDS H5TEST-clear-testhdf5-objects + ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) add_test (NAME H5TEST-testhdf5-select COMMAND $<TARGET_FILE:testhdf5> -o select) - set_tests_properties (H5TEST-testhdf5-select PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects) - set_tests_properties (H5TEST-testhdf5-select PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600) + set_tests_properties (H5TEST-testhdf5-select PROPERTIES + DEPENDS H5TEST-clear-testhdf5-objects + ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) else (HDF5_ENABLE_USING_MEMCHECKER) add_test (NAME H5TEST-testhdf5 COMMAND $<TARGET_FILE:testhdf5>) - set_tests_properties (H5TEST-testhdf5 PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects) + set_tests_properties (H5TEST-testhdf5 PROPERTIES + DEPENDS H5TEST-clear-testhdf5-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) endif (HDF5_ENABLE_USING_MEMCHECKER) ############################################################################## @@ -192,6 +274,7 @@ add_test ( dt_arith1.h5 dt_arith2.h5 dtransform.h5 + dtypes3.h5 dtypes4.h5 dtypes5.h5 efc0.h5 @@ -238,6 +321,7 @@ add_test ( extlinks19B00027.h5 extlinks19B00028.h5 fheap.h5 + log_vfd_out.log new_multi_file_v16-r.h5 new_multi_file_v16-s.h5 objcopy_ext.dat @@ -246,11 +330,17 @@ add_test ( tstint2.h5 unregister_filter_1.h5 unregister_filter_2.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) foreach (test ${H5_TESTS}) add_test (NAME H5TEST-${test} COMMAND $<TARGET_FILE:${test}>) - set_tests_properties (H5TEST-${test} PROPERTIES DEPENDS H5TEST-clear-objects) + set_tests_properties (H5TEST-${test} PROPERTIES + DEPENDS H5TEST-clear-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) endforeach (test ${H5_TESTS}) set_tests_properties (H5TEST-flush2 PROPERTIES DEPENDS H5TEST-flush1) @@ -270,9 +360,15 @@ add_test ( COMMAND ${CMAKE_COMMAND} -E remove cache_test.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-cache COMMAND $<TARGET_FILE:cache>) -set_tests_properties (H5TEST-cache PROPERTIES DEPENDS H5TEST-clear-cache-objects) +set_tests_properties (H5TEST-cache PROPERTIES + DEPENDS H5TEST-clear-cache-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +) #-- Adding test for cache_api add_test ( @@ -280,9 +376,15 @@ add_test ( COMMAND ${CMAKE_COMMAND} -E remove cache_api_test.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-cache_api COMMAND $<TARGET_FILE:cache_api>) -set_tests_properties (H5TEST-cache_api PROPERTIES DEPENDS H5TEST-clear-cache_api-objects) +set_tests_properties (H5TEST-cache_api PROPERTIES + DEPENDS H5TEST-clear-cache_api-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +) #-- Adding test for cache_tagging add_test ( @@ -291,9 +393,15 @@ add_test ( -E remove tagging_test.h5 tagging_ext_test.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-cache_tagging COMMAND $<TARGET_FILE:cache_tagging>) -set_tests_properties (H5TEST-cache_tagging PROPERTIES DEPENDS H5TEST-clear-cache_tagging-objects) +set_tests_properties (H5TEST-cache_tagging PROPERTIES + DEPENDS H5TEST-clear-cache_tagging-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +) #-- Adding test for ttsafe add_test ( @@ -304,9 +412,15 @@ add_test ( ttsafe_dcreate.h5 ttsafe_cancel.h5 ttsafe_acreate.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-ttsafe COMMAND $<TARGET_FILE:ttsafe>) -set_tests_properties (H5TEST-ttsafe PROPERTIES DEPENDS H5TEST-clear-ttsafe-objects) +set_tests_properties (H5TEST-ttsafe PROPERTIES + DEPENDS H5TEST-clear-ttsafe-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +) #-- Adding test for err_compat if (HDF5_ENABLE_DEPRECATED_SYMBOLS) @@ -316,6 +430,8 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS) -E remove err_compat.txt err_compat.txt.err + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-err_compat COMMAND "${CMAKE_COMMAND}" -D "TEST_PROGRAM=$<TARGET_FILE:err_compat>" @@ -324,10 +440,14 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS) -D "TEST_MASK_ERROR=true" -D "TEST_OUTPUT=err_compat.txt" -D "TEST_REFERENCE=err_compat_1" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST" -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" ) - set_tests_properties (H5TEST-err_compat PROPERTIES DEPENDS H5TEST-clear-err_compat-objects) + set_tests_properties (H5TEST-err_compat PROPERTIES + DEPENDS H5TEST-clear-err_compat-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + ) endif (HDF5_ENABLE_DEPRECATED_SYMBOLS) #-- Adding test for error_test @@ -337,6 +457,8 @@ add_test ( -E remove error_test.txt error_test.txt.err + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}" -D "TEST_PROGRAM=$<TARGET_FILE:error_test>" @@ -345,11 +467,14 @@ add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}" -D "TEST_MASK_ERROR=true" -D "TEST_OUTPUT=error_test.txt" -D "TEST_REFERENCE=error_test_1" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST" -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" ) -set_tests_properties (H5TEST-error_test PROPERTIES DEPENDS H5TEST-clear-error_test-objects) -set_tests_properties (H5TEST-error_test PROPERTIES ENVIRONMENT "HDF5_PLUGIN_PRELOAD=::") +set_tests_properties (H5TEST-error_test PROPERTIES + DEPENDS H5TEST-clear-error_test-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5_PLUGIN_PRELOAD=::" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +) #-- Adding test for links_env add_test ( @@ -361,6 +486,8 @@ add_test ( extlinks_env0.h5 extlinks_env1.h5 tmp/extlinks_env1.h5 + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST ) add_test (NAME H5TEST-links_env COMMAND "${CMAKE_COMMAND}" -D "TEST_PROGRAM=$<TARGET_FILE:links_env>" @@ -370,13 +497,22 @@ add_test (NAME H5TEST-links_env COMMAND "${CMAKE_COMMAND}" -D "TEST_EXPECT=0" -D "TEST_OUTPUT=links_env.txt" -D "TEST_REFERENCE=links_env.out" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST" -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" ) -set_tests_properties (H5TEST-links_env PROPERTIES DEPENDS H5TEST-clear-links_env-objects) +set_tests_properties (H5TEST-links_env PROPERTIES + DEPENDS H5TEST-clear-links_env-objects + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +) #-- Adding test for libinfo -add_test (NAME H5TEST-testlibinfo COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIB_TARGET}>" -P "${GREP_RUNNER}") +add_test ( + NAME H5TEST-testlibinfo + COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIB_TARGET}>" -P "${GREP_RUNNER}" + WORKING_DIRECTORY + ${HDF5_TEST_BINARY_DIR}/H5TEST +) ############################################################################## ### P L U G I N T E S T S @@ -390,7 +526,10 @@ if (BUILD_SHARED_LIBS) endif (WIN32) add_test (NAME H5PLUGIN-plugin COMMAND $<TARGET_FILE:plugin>) - set_tests_properties (H5PLUGIN-plugin PROPERTIES ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/testdir2") + set_tests_properties (H5PLUGIN-plugin PROPERTIES + ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/testdir2;srcdir=${HDF5_TEST_BINARY_DIR}" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR} + ) else (BUILD_SHARED_LIBS) message (STATUS " **** Plugins libraries must be built as shared libraries **** ") add_test ( @@ -407,15 +546,6 @@ endif (BUILD_SHARED_LIBS) if (HDF5_TEST_VFD) - set (VFD_LIST - sec2 - stdio - core - split - multi - family - ) - set (H5_VFD_TESTS testhdf5 accum @@ -474,25 +604,91 @@ if (HDF5_TEST_VFD) if (NOT CYGWIN) set (H5_VFD_TESTS ${H5_VFD_TESTS} big) endif (NOT CYGWIN) - - if (DIRECT_VFD) - set (VFD_LIST ${VFD_LIST} direct) - endif (DIRECT_VFD) - MACRO (ADD_VFD_TEST vfdname resultcode) - foreach (test ${H5_VFD_TESTS}) + MACRO (CHECK_VFD_TEST vfdtest vfdname resultcode) + if (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2") + if (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split") + if (NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug) + add_test ( + NAME VFD-${vfdname}-${vfdtest} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=${vfdtest}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}" + -P "${HDF_RESOURCES_DIR}/vfdTest.cmake" + ) + set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname} + ) + else (NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug) + add_test ( + NAME VFD-${vfdname}-${vfdtest} + COMMAND ${CMAKE_COMMAND} -E echo "SKIP VFD-${vfdname}-${vfdtest}" + ) + endif(NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug) + else (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split") + add_test ( + NAME VFD-${vfdname}-${vfdtest} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=${vfdtest}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}" + -P "${HDF_RESOURCES_DIR}/vfdTest.cmake" + ) + set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname} + ) + endif (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split") + else (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2") add_test ( - NAME VFD-${vfdname}-${test} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:${test}>" - -D "TEST_ARGS:STRING=" - -D "TEST_VFD:STRING=${vfdname}" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_OUTPUT=${test}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -P "${HDF_RESOURCES_DIR}/vfdTest.cmake" + NAME VFD-${vfdname}-${vfdtest} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=${vfdtest}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}" + -P "${HDF_RESOURCES_DIR}/vfdTest.cmake" + ) + set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname} ) + endif (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2") + ENDMACRO (CHECK_VFD_TEST vfdtest vfdname resultcode) + + MACRO (ADD_VFD_TEST vfdname resultcode) + foreach (test ${H5_VFD_TESTS}) + if (WIN32) + CHECK_VFD_TEST (${test} ${vfdname} ${resultcode}) + else (WIN32) + add_test ( + NAME VFD-${vfdname}-${test} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:${test}>" + -D "TEST_ARGS:STRING=" + -D "TEST_VFD:STRING=${vfdname}" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_OUTPUT=${vfdname}-${test}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}" + -P "${HDF_RESOURCES_DIR}/vfdTest.cmake" + ) + set_tests_properties (VFD-${vfdname}-${test} PROPERTIES + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname} + ) + endif (WIN32) endforeach (test ${H5_VFD_TESTS}) + set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES DEPENDS VFD-${vfdname}-flush1) set_tests_properties (VFD-${vfdname}-flush1 PROPERTIES TIMEOUT 10) set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES TIMEOUT 10) if (HDF5_TEST_FHEAP_VFD) @@ -503,11 +699,15 @@ if (HDF5_TEST_VFD) -D "TEST_ARGS:STRING=" -D "TEST_VFD:STRING=${vfdname}" -D "TEST_EXPECT=${resultcode}" - -D "TEST_OUTPUT=fheap" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${vfdname}-fheap" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}" -P "${HDF_RESOURCES_DIR}/vfdTest.cmake" ) - set_tests_properties (VFD-${vfdname}-fheap PROPERTIES TIMEOUT 1800) + set_tests_properties (VFD-${vfdname}-fheap PROPERTIES + TIMEOUT 1800 + ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}" + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname} + ) endif (HDF5_TEST_FHEAP_VFD) ENDMACRO (ADD_VFD_TEST) diff --git a/test/accum.c b/test/accum.c index ba0cea1..785ae8a 100644 --- a/test/accum.c +++ b/test/accum.c @@ -1852,6 +1852,9 @@ test_swmr_write_big(void) file a ways. 10MB should do. */ if(H5FD_set_eoa(rf->shared->lf, H5FD_MEM_DEFAULT, (haddr_t)(1024*1024*10)) < 0) FAIL_STACK_ERROR + if(H5Fflush(fid, H5F_SCOPE_GLOBAL) < 0) + FAIL_STACK_ERROR; + /* Reset metadata accumulator for the file */ if(accum_reset(&fio_info) < 0) FAIL_STACK_ERROR; diff --git a/test/gen_bogus.c b/test/gen_bogus.c index 7d8d073..df1e81f 100644 --- a/test/gen_bogus.c +++ b/test/gen_bogus.c @@ -62,7 +62,7 @@ int main(void) if(H5Dclose(did) < 0) goto error; /* Set "fail if unknown" message flag for bogus message */ - bogus_flags = H5O_MSG_FLAG_FAIL_IF_UNKNOWN; + bogus_flags = H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE; if(H5Pset(dcpl, H5O_BOGUS_MSG_FLAGS_NAME, &bogus_flags) < 0) goto error; /* Create second dataset, with "fail if unknown" message flag */ diff --git a/test/links.c b/test/links.c index 9dd6791..9e61392 100644 --- a/test/links.c +++ b/test/links.c @@ -4215,7 +4215,8 @@ external_set_elink_cb(hid_t fapl, hbool_t new_format) op_data.target_file = filename2; /* Core file driver has issues when used as the member file driver for a family file */ /* Family file driver cannot be used with family or multi drivers for member files */ - /* Also disable parallel member drivers, because IS_H5FD_MPI whould report FALSE, causing problems */ + /* Also disable parallel member drivers, because H5F_HAS_FEATURE(H5FD_FEAT_HAS_MPI) + would report FALSE, causing problems */ base_driver = H5Pget_driver(fapl); op_data.base_fapl = (base_driver == H5FD_FAMILY || base_driver == H5FD_MULTI || base_driver == H5FD_MPIO || base_driver == H5FD_CORE) ? H5P_DEFAULT : fapl; diff --git a/test/ohdr.c b/test/ohdr.c index fa00716..1b07681 100644 --- a/test/ohdr.c +++ b/test/ohdr.c @@ -815,16 +815,13 @@ main(void) PASSED(); - TESTING("object with unknown header message & 'fail if unknown' flag set"); + TESTING("object with unknown header message & 'fail if unknown and open for write' flag set"); - /* Attempt to open the dataset with the unknown header message, and "fail if unknown" flag */ - H5E_BEGIN_TRY { - dset = H5Dopen2(file2, "/Dataset2", H5P_DEFAULT); - } H5E_END_TRY; - if(dset >= 0) { - H5Dclose(dset); + /* Open the dataset with the unknown header message, and "fail if unknown and open for write" flag */ + if((dset = H5Dopen2(file2, "/Dataset2", H5P_DEFAULT)) < 0) + TEST_ERROR + if(H5Dclose(dset) < 0) TEST_ERROR - } /* end if */ PASSED(); @@ -906,6 +903,26 @@ main(void) if(H5Dclose(dset) < 0) TEST_ERROR + /* Close the file with the bogus objects */ + if(H5Fclose(file2) < 0) + TEST_ERROR + + PASSED(); + + /* Open the file with objects that have unknown header messages (generated with gen_bogus.c) with RW intent this time */ + if((file2 = H5Fopen(testfile, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) + TEST_ERROR + + TESTING("object with unknown header message & 'fail if unknown and open for write' flag set"); + + /* Attempt to open the dataset with the unknown header message, and "fail if unknown and open for write" flag */ + H5E_BEGIN_TRY { + dset = H5Dopen2(file2, "/Dataset2", H5P_DEFAULT); + } H5E_END_TRY; + if(dset >= 0) { + H5Dclose(dset); + TEST_ERROR + } /* end if */ /* Close the file with the bogus objects */ if(H5Fclose(file2) < 0) diff --git a/test/tbogus.h5 b/test/tbogus.h5 Binary files differindex 2b8b1dd..906921c 100644 --- a/test/tbogus.h5 +++ b/test/tbogus.h5 diff --git a/test/test_plugin.sh.in b/test/test_plugin.sh.in index b268661..a6d8c50 100644 --- a/test/test_plugin.sh.in +++ b/test/test_plugin.sh.in @@ -28,8 +28,16 @@ exit_code=$EXIT_SUCCESS TEST_NAME=plugin TEST_BIN=`pwd`/$TEST_NAME FROM_DIR=`pwd`/.libs -PLUGIN_LIB1="$FROM_DIR/libdynlib1.* $FROM_DIR/libdynlib3.*" -PLUGIN_LIB2="$FROM_DIR/libdynlib2.*" +case $(uname) in + CYGWIN* ) + PLUGIN_LIB1="$FROM_DIR/cygdynlib1* $FROM_DIR/cygdynlib3*" + PLUGIN_LIB2="$FROM_DIR/cygdynlib2*" + ;; + *) + PLUGIN_LIB1="$FROM_DIR/libdynlib1.* $FROM_DIR/libdynlib3.*" + PLUGIN_LIB2="$FROM_DIR/libdynlib2.*" + :: +esac PLUGIN_LIBDIR1=testdir1 PLUGIN_LIBDIR2=testdir2 CP="cp -p" # Use -p to preserve mode,ownership,timestamps diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt index 3dba919..ce29208 100644 --- a/tools/lib/CMakeLists.txt +++ b/tools/lib/CMakeLists.txt @@ -76,7 +76,7 @@ install ( #----------------------------------------------------------------------------- if (HDF5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) - INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} toolslibraries) + INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} toolslibraries) endif (BUILD_SHARED_LIBS) install ( diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index 54e0fbe..4b74fad 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -501,7 +501,7 @@ #define H5_PACKAGE_NAME "HDF5" /* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.210-swmr0" +#define H5_PACKAGE_STRING "HDF5 1.9.213-swmr0" /* Define to the one symbol short name of this package. */ #define H5_PACKAGE_TARNAME "hdf5" @@ -510,7 +510,7 @@ #define H5_PACKAGE_URL "" /* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.210-swmr0" +#define H5_PACKAGE_VERSION "1.9.213-swmr0" /* Width for printf() for type `long long' or `__int64', use `ll' */ #define H5_PRINTF_LL_WIDTH "ll" @@ -673,7 +673,7 @@ /* #undef H5_USING_MEMCHECKER */ /* Version number of package */ -#define H5_VERSION "1.9.210-swmr0" +#define H5_VERSION "1.9.213-swmr0" /* Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed */ |