summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2014-06-16 15:39:46 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2014-06-16 15:39:46 (GMT)
commit3f56f0b0921045c0bba2c6d0253f6477582e8858 (patch)
treef559726bdb638ba2d06fc43415955cd86026ff29
parent746c1ba3bbca99ece8935a606734f7333e4e7984 (diff)
parent0e4e2a0e76f85315fc6a4b9c30381e6b00af25c9 (diff)
downloadhdf5-3f56f0b0921045c0bba2c6d0253f6477582e8858.zip
hdf5-3f56f0b0921045c0bba2c6d0253f6477582e8858.tar.gz
hdf5-3f56f0b0921045c0bba2c6d0253f6477582e8858.tar.bz2
[svn-r25289] merge from VOL branch.
-rw-r--r--MANIFEST3
-rw-r--r--README.txt2
-rw-r--r--c++/src/Makefile.in2
-rw-r--r--config/lt_vers.am2
-rwxr-xr-xconfigure117
-rw-r--r--configure.ac33
-rw-r--r--fortran/src/CMakeLists.txt22
-rw-r--r--fortran/src/H5Sf.c10
-rw-r--r--fortran/src/H5Sff.f9014
-rw-r--r--fortran/src/H5f90proto.h4
-rw-r--r--fortran/src/H5test_kind.f9024
-rw-r--r--fortran/src/H5test_kind_SIZEOF.f9024
-rw-r--r--fortran/src/H5test_kind_STORAGE_SIZE.f90230
-rw-r--r--fortran/src/Makefile.am4
-rw-r--r--fortran/src/Makefile.in17
-rw-r--r--fortran/test/CMakeLists.txt8
-rw-r--r--fortran/test/Makefile.am14
-rw-r--r--fortran/test/Makefile.in35
-rw-r--r--fortran/test/tH5P_F03.f9023
-rw-r--r--fortran/test/tH5T_F03.f9013
-rw-r--r--fortran/test/tf.f904
-rw-r--r--fortran/test/tf_F03.f90126
-rw-r--r--fortran/test/tf_F08.f90139
-rw-r--r--hl/c++/src/Makefile.in2
-rw-r--r--hl/fortran/src/Makefile.in2
-rw-r--r--hl/src/Makefile.in2
-rw-r--r--release_docs/RELEASE.txt2
-rw-r--r--src/H5Shyper.c22
-rw-r--r--src/H5Spublic.h2
-rw-r--r--src/H5public.h4
-rw-r--r--src/Makefile.in2
-rw-r--r--test/tselect.c32
-rw-r--r--testpar/CMakeLists.txt5
-rw-r--r--vms/src/h5pubconf.h6
34 files changed, 807 insertions, 144 deletions
diff --git a/MANIFEST b/MANIFEST
index f68ceda..44c2c03 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -333,6 +333,7 @@
./fortran/src/H5f90proto.h
./fortran/src/H5test_kind.f90
./fortran/src/H5test_kind_SIZEOF.f90
+./fortran/src/H5test_kind_STORAGE_SIZE.f90
./fortran/src/H5match_types.c
./fortran/src/HDF5.f90
./fortran/src/HDF5mpio.f90
@@ -353,6 +354,8 @@
./fortran/test/t.c
./fortran/test/t.h
./fortran/test/tf.f90
+./fortran/test/tf_F03.f90
+./fortran/test/tf_F08.f90
./fortran/test/tH5A.f90
./fortran/test/tH5A_1_8.f90
./fortran/test/tH5D.f90
diff --git a/README.txt b/README.txt
index f0d6b0f..38b9bd2 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.9.184 currently under development
+HDF5 version 1.9.185 currently under development
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------
diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in
index 2adc2f5..eea95cf 100644
--- a/c++/src/Makefile.in
+++ b/c++/src/Makefile.in
@@ -710,7 +710,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
# This is our main target
diff --git a/config/lt_vers.am b/config/lt_vers.am
index 5537f6f..536644e 100644
--- a/config/lt_vers.am
+++ b/config/lt_vers.am
@@ -17,7 +17,7 @@
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
## If the API changes *at all*, increment LT_VERS_INTERFACE and
diff --git a/configure b/configure
index a913c6f..79baeb5 100755
--- a/configure
+++ b/configure
@@ -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.184.
+# Generated by GNU Autoconf 2.69 for HDF5 1.9.185.
#
# 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.184'
-PACKAGE_STRING='HDF5 1.9.184'
+PACKAGE_VERSION='1.9.185'
+PACKAGE_STRING='HDF5 1.9.185'
PACKAGE_BUGREPORT='help@hdfgroup.org'
PACKAGE_URL=''
@@ -767,6 +767,10 @@ FORTRAN_DEFAULT_REALisDBLE_F_FALSE
FORTRAN_DEFAULT_REALisDBLE_F_TRUE
FORTRAN_2003_CONDITIONAL_F_FALSE
FORTRAN_2003_CONDITIONAL_F_TRUE
+FORTRAN_HAVE_STORAGE_SIZE_FALSE
+FORTRAN_HAVE_STORAGE_SIZE_TRUE
+FORTRAN_HAVE_C_SIZEOF_FALSE
+FORTRAN_HAVE_C_SIZEOF_TRUE
FORTRAN_HAVE_SIZEOF_FALSE
FORTRAN_HAVE_SIZEOF_TRUE
FCLIBS
@@ -1537,7 +1541,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.184 to adapt to many kinds of systems.
+\`configure' configures HDF5 1.9.185 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1607,7 +1611,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of HDF5 1.9.184:";;
+ short | recursive ) echo "Configuration of HDF5 1.9.185:";;
esac
cat <<\_ACEOF
@@ -1833,7 +1837,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-HDF5 configure 1.9.184
+HDF5 configure 1.9.185
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2927,7 +2931,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.184, which was
+It was created by HDF5 $as_me 1.9.185, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3798,7 +3802,7 @@ fi
# Define the identity of the package.
PACKAGE='hdf5'
- VERSION='1.9.184'
+ VERSION='1.9.185'
cat >>confdefs.h <<_ACEOF
@@ -5442,6 +5446,8 @@ else
fi
HAVE_SIZEOF="no"
+HAVE_C_SIZEOF="no"
+HAVE_STORAGE_SIZE="no"
FORTRAN_DEFAULT_REALisDBLE="no"
if test "X$HDF_FORTRAN" = "Xyes"; then
@@ -6781,6 +6787,71 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
fi
+ ## See if the fortran compiler supports the intrinsic function "C_SIZEOF"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic C_SIZEOF" >&5
+$as_echo_n "checking if Fortran compiler supports intrinsic C_SIZEOF... " >&6; }
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ cat > conftest.$ac_ext <<_ACEOF
+
+ PROGRAM main
+ USE ISO_C_BINDING
+ INTEGER(C_INT) :: a
+ INTEGER(C_SIZE_T) :: result
+ result = C_SIZEOF(a)
+ END PROGRAM
+
+_ACEOF
+if ac_fn_fc_try_run "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ HAVE_C_SIZEOF="yes"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+ ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic STORAGE_SIZE" >&5
+$as_echo_n "checking if Fortran compiler supports intrinsic STORAGE_SIZE... " >&6; }
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ cat > conftest.$ac_ext <<_ACEOF
+
+ PROGRAM main
+ INTEGER :: a
+ INTEGER :: result
+ result = STORAGE_SIZE(a)
+ END PROGRAM
+
+_ACEOF
+if ac_fn_fc_try_run "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ HAVE_STORAGE_SIZE="yes"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
## Check to see if -r8 was specified to determine if we need to
## compile the DOUBLE PRECISION interfaces.
@@ -6891,6 +6962,22 @@ else
FORTRAN_HAVE_SIZEOF_FALSE=
fi
+ if test "X$HAVE_C_SIZEOF" = "Xyes"; then
+ FORTRAN_HAVE_C_SIZEOF_TRUE=
+ FORTRAN_HAVE_C_SIZEOF_FALSE='#'
+else
+ FORTRAN_HAVE_C_SIZEOF_TRUE='#'
+ FORTRAN_HAVE_C_SIZEOF_FALSE=
+fi
+
+ if test "X$HAVE_STORAGE_SIZE" = "Xyes"; then
+ FORTRAN_HAVE_STORAGE_SIZE_TRUE=
+ FORTRAN_HAVE_STORAGE_SIZE_FALSE='#'
+else
+ FORTRAN_HAVE_STORAGE_SIZE_TRUE='#'
+ FORTRAN_HAVE_STORAGE_SIZE_FALSE=
+fi
+
if test "X$HAVE_FORTRAN_2003" = "Xyes"; then
FORTRAN_2003_CONDITIONAL_F_TRUE=
FORTRAN_2003_CONDITIONAL_F_FALSE='#'
@@ -34590,7 +34677,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@gnu.org>."
lt_cl_version="\
-HDF5 config.lt 1.9.184
+HDF5 config.lt 1.9.185
configured by $0, generated by GNU Autoconf 2.69.
Copyright (C) 2011 Free Software Foundation, Inc.
@@ -36270,6 +36357,14 @@ if test -z "${FORTRAN_HAVE_SIZEOF_TRUE}" && test -z "${FORTRAN_HAVE_SIZEOF_FALSE
as_fn_error $? "conditional \"FORTRAN_HAVE_SIZEOF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${FORTRAN_HAVE_C_SIZEOF_TRUE}" && test -z "${FORTRAN_HAVE_C_SIZEOF_FALSE}"; then
+ as_fn_error $? "conditional \"FORTRAN_HAVE_C_SIZEOF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${FORTRAN_HAVE_STORAGE_SIZE_TRUE}" && test -z "${FORTRAN_HAVE_STORAGE_SIZE_FALSE}"; then
+ as_fn_error $? "conditional \"FORTRAN_HAVE_STORAGE_SIZE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${FORTRAN_2003_CONDITIONAL_F_TRUE}" && test -z "${FORTRAN_2003_CONDITIONAL_F_FALSE}"; then
as_fn_error $? "conditional \"FORTRAN_2003_CONDITIONAL_F\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36736,7 +36831,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.184, which was
+This file was extended by HDF5 $as_me 1.9.185, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -36802,7 +36897,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.184
+HDF5 config.status 1.9.185
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 80c8b6d..fc73e7f 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.184], [help@hdfgroup.org])
+AC_INIT([HDF5], [1.9.185], [help@hdfgroup.org])
AC_CONFIG_SRCDIR([src/H5.c])
AC_CONFIG_HEADER([src/H5config.h])
@@ -407,6 +407,8 @@ else
fi
HAVE_SIZEOF="no"
+HAVE_C_SIZEOF="no"
+HAVE_STORAGE_SIZE="no"
FORTRAN_DEFAULT_REALisDBLE="no"
if test "X$HDF_FORTRAN" = "Xyes"; then
@@ -487,6 +489,33 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
HAVE_SIZEOF="yes"],
[AC_MSG_RESULT([no])])
+ ## See if the fortran compiler supports the intrinsic function "C_SIZEOF"
+
+ AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF])
+ AC_TRY_RUN([
+ PROGRAM main
+ USE ISO_C_BINDING
+ INTEGER(C_INT) :: a
+ INTEGER(C_SIZE_T) :: result
+ result = C_SIZEOF(a)
+ END PROGRAM
+ ], [AC_MSG_RESULT([yes])
+ HAVE_C_SIZEOF="yes"],
+ [AC_MSG_RESULT([no])])
+
+ ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE"
+
+ AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE])
+ AC_TRY_RUN([
+ PROGRAM main
+ INTEGER :: a
+ INTEGER :: result
+ result = STORAGE_SIZE(a)
+ END PROGRAM
+ ], [AC_MSG_RESULT([yes])
+ HAVE_STORAGE_SIZE="yes"],
+ [AC_MSG_RESULT([no])])
+
## Check to see if -r8 was specified to determine if we need to
## compile the DOUBLE PRECISION interfaces.
@@ -556,6 +585,8 @@ fi
AC_LANG_POP(Fortran)
AM_CONDITIONAL([FORTRAN_HAVE_SIZEOF], [test "X$HAVE_SIZEOF" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_HAVE_C_SIZEOF], [test "X$HAVE_C_SIZEOF" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_HAVE_STORAGE_SIZE], [test "X$HAVE_STORAGE_SIZE" = "Xyes"])
AM_CONDITIONAL([FORTRAN_2003_CONDITIONAL_F], [test "X$HAVE_FORTRAN_2003" = "Xyes"])
AM_CONDITIONAL([FORTRAN_DEFAULT_REALisDBLE_F], [test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"])
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index 723e930..f0d8996 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -19,19 +19,25 @@ endif (WIN32)
#-----------------------------------------------------------------------------
# Setup the Fortran auto-detection utilities
-# H5test_kind(_SIZEOF).f90 used to generate H5fortran_detect.f90
+# H5test_kind(_SIZEOF,_STORAGE_SIZE).f90 used to generate H5fortran_detect.f90
# H5fortran_detect.f90 used to generate H5fort_type_defines.h
# H5fort_type_defines.h used to generate H5f90i_gen.h + H5fortran_types.f90
#-----------------------------------------------------------------------------
-if (FORTRAN_HAVE_SIZEOF)
+if (FORTRAN_HAVE_STORAGE_SIZE)
add_executable (H5test_FortranHavekind
- ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90
)
-else (FORTRAN_HAVE_SIZEOF)
- add_executable (H5test_FortranHavekind
- ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
- )
-endif (FORTRAN_HAVE_SIZEOF)
+else (FORTRAN_HAVE_STORAGE_SIZE)
+ if (FORTRAN_HAVE_SIZEOF)
+ add_executable (H5test_FortranHavekind
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
+ )
+ else (FORTRAN_HAVE_SIZEOF)
+ add_executable (H5test_FortranHavekind
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
+ )
+ endif (FORTRAN_HAVE_SIZEOF)
+endif (FORTRAN_HAVE_STORAGE_SIZE)
if (WIN32 AND MSVC)
if (BUILD_SHARED_LIBS)
set_target_properties (H5test_FortranHavekind
diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c
index 7a44889..fe6c298 100644
--- a/fortran/src/H5Sf.c
+++ b/fortran/src/H5Sf.c
@@ -1125,11 +1125,11 @@ nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t
ret_value = 0;
return ret_value;
}
-/****if* H5Sf/h5sselect_select_c
+/****if* H5Sf/h5smodify_select_c
* NAME
- * h5sselect_select_c
+ * h5smodify_select_c
* PURPOSE
- * Call H5Sselect_ select
+ * Call H5Smodify_select
* INPUTS
* space1_id - identifier of the first dataspace to modify
* operator - defines how the new selection is combined
@@ -1145,7 +1145,7 @@ nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t
*/
int_f
-nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id)
+nh5smodify_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id)
/******/
{
int ret_value = -1;
@@ -1157,7 +1157,7 @@ nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id)
c_space1_id = (hid_t)*space1_id;
c_space2_id = (hid_t)*space2_id;
- if( H5Sselect_select(c_space1_id, c_op, c_space2_id)< 0) return ret_value;
+ if( H5Smodify_select(c_space1_id, c_op, c_space2_id)< 0) return ret_value;
ret_value = 0;
return ret_value;
}
diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90
index c493d46..651c2c0 100644
--- a/fortran/src/H5Sff.f90
+++ b/fortran/src/H5Sff.f90
@@ -1611,7 +1611,7 @@ CONTAINS
! !$!****s* H5S/
! !$!
! !$! NAME
-! !$! h5sselect_select_f
+! !$! h5smodify_select_f
! !$!
! !$! PURPOSE
! !$! Refine a hyperslab selection with an operation
@@ -1648,7 +1648,7 @@ CONTAINS
! !$!
! ! SOURCE
-! SUBROUTINE h5sselect_select_f(space1_id, operator, space2_id, &
+! SUBROUTINE h5smodify_select_f(space1_id, operator, space2_id, &
! hdferr)
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(INOUT) :: space1_id ! Dataspace identifier to
@@ -1668,22 +1668,22 @@ CONTAINS
! INTEGER, INTENT(OUT) :: hdferr ! Error code
! INTERFACE
-! INTEGER FUNCTION h5sselect_select_c(space1_id, operator, &
+! INTEGER FUNCTION h5smodify_select_c(space1_id, operator, &
! space2_id)
! USE H5GLOBAL
! !DEC$IF DEFINED(HDF5F90_WINDOWS)
-! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_SELECT_C'::h5sselect_select_c
+! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SMODIFY_SELECT_C'::h5smodify_select_c
! !DEC$ENDIF
! INTEGER(HID_T), INTENT(INOUT) :: space1_id
! INTEGER(HID_T), INTENT(IN) :: space2_id
! INTEGER, INTENT(IN) :: operator
-! END FUNCTION h5sselect_select_c
+! END FUNCTION h5smodify_select_c
! END INTERFACE
-! hdferr = h5sselect_select_c(space1_id, operator, space2_id)
+! hdferr = h5smodify_select_c(space1_id, operator, space2_id)
! return
-! END SUBROUTINE h5sselect_select_f
+! END SUBROUTINE h5smodify_select_f
!
!****s* H5S/h5sget_select_type_f
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 08a8f31..7c712d4 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -143,7 +143,7 @@ H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size);
#define nh5sselect_hyperslab_c H5_FC_FUNC_(h5sselect_hyperslab_c, H5SSELECT_HYPERSLAB_C)
#define nh5scombine_hyperslab_c H5_FC_FUNC_(h5scombine_hyperslab_c, H5SCOMBINE_HYPERSLAB_C)
#define nh5scombine_select_c H5_FC_FUNC_(h5scombine_select_c, H5SCOMBINE_SELECT_C)
-#define nh5sselect_select_c H5_FC_FUNC_(h5sselect_select_c, H5SSELECT_SELECT_C)
+#define nh5smodify_select_c H5_FC_FUNC_(h5smodify_select_c, H5SMODIFY_SELECT_C)
#define nh5sget_select_type_c H5_FC_FUNC_(h5sget_select_type_c, H5SGET_SELECT_TYPE_C)
#define nh5sselect_elements_c H5_FC_FUNC_(h5sselect_elements_c, H5SSELECT_ELEMENTS_C)
#define nh5sdecode_c H5_FC_FUNC_(h5sdecode_c, H5SDECODE_C)
@@ -178,7 +178,7 @@ H5_FCDLL int_f nh5sget_select_type_c ( hid_t_f *space_id , int_f *op);
H5_FCDLL int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord);
H5_FCDLL int_f nh5scombine_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block, hid_t_f *hyper_id);
H5_FCDLL int_f nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id);
-H5_FCDLL int_f nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id);
+H5_FCDLL int_f nh5smodify_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id);
H5_FCDLL int_f nh5sdecode_c ( _fcd buf, hid_t_f *obj_id );
H5_FCDLL int_f nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc );
H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal);
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90
index 3182853..1a1a0ec 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.f90
@@ -23,18 +23,18 @@
!
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! AUTHOR
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90
index 7a58b0e..468086a 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_SIZEOF.f90
@@ -24,18 +24,18 @@
!
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! AUTHOR
diff --git a/fortran/src/H5test_kind_STORAGE_SIZE.f90 b/fortran/src/H5test_kind_STORAGE_SIZE.f90
new file mode 100644
index 0000000..89c904c
--- /dev/null
+++ b/fortran/src/H5test_kind_STORAGE_SIZE.f90
@@ -0,0 +1,230 @@
+!****p* Program/H5test_kind_STORAGE_SIZE
+!
+! NAME
+! Executable: H5test_kind
+!
+! FILE
+! fortran/src/H5test_kind_STORAGE_SIZE.f90
+!
+! PURPOSE
+! This stand alone program is used at build time to generate the program
+! H5fortran_detect.f90. It cycles through all the available KIND parameters for
+! integers and reals. The appropriate program and subroutines are then generated
+! depending on which of the KIND values are found.
+!
+! NOTES
+! This program is used in place of H5test_kind.f90 or H5test_kind_SIZEOF.f90 when
+! the Fortran 2008 intrinsic function STORAGE_SIZE is available. It generates code
+! that makes use of STORAGE_SIZE in H5fortran_detect.f90, which will be standard
+! compliant. This program is the preferred method.
+!
+! The availability of STORAGE_SIZE is checked at configure time and the TRUE/FALSE
+! condition is set in the configure variable "FORTRAN_HAVE_STORAGE_SIZE".
+!
+! The use of C_SIZOF(X) is not used since the argument X must be an interoperable
+! data entity.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! AUTHOR
+! M. Scot Breitenfeld
+!
+!*****
+
+PROGRAM test_kind
+ IMPLICIT NONE
+ INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10)
+ INTEGER :: ji, jr, jd
+ last = -1
+ ii = 0
+
+ ikind_numbers = 0
+ rkind_numbers = 0
+
+ DO i = 1,100
+ j = SELECTED_INT_KIND(i)
+ IF(j .NE. last) THEN
+ IF(last .NE. -1) THEN
+ ii = ii + 1
+ ikind_numbers(ii) = last
+ ENDIF
+ last = j
+ IF(j .EQ. -1) EXIT
+ ENDIF
+ ENDDO
+
+ last = -1
+ ir = 0
+ DO i = 1,100
+ j = SELECTED_REAL_KIND(i)
+ IF(j .NE. last) THEN
+ IF(last .NE. -1) THEN
+ ir = ir + 1
+ rkind_numbers(ir) = last
+ ENDIF
+ last = j
+ IF(j .EQ. -1) EXIT
+ ENDIF
+ ENDDO
+
+! Generate program information:
+
+WRITE(*,'(40(A,/))') &
+'!****h* ROBODoc/H5fortran_detect.f90',&
+'!',&
+'! NAME',&
+'! H5fortran_detect',&
+'! ',&
+'! PURPOSE',&
+'! This stand alone program is used at build time to generate the header file',&
+'! H5fort_type_defines.h. The source code itself was automatically generated by',&
+'! the program H5test_kind_STORAGE_SIZE.f90',&
+'!',&
+'! NOTES',&
+'! This source code makes use of the Fortran intrinsic function STORAGE_SIZE because',&
+'! the availability of the intrinsic function was determined to be available at',&
+'! configure time',&
+'!',&
+'! COPYRIGHT',&
+'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',&
+'! Copyright by The HDF Group. *',&
+'! Copyright by the Board of Trustees of the University of Illinois. *',&
+'! All rights reserved. *',&
+'! *',&
+'! This file is part of HDF5. The full HDF5 copyright notice, including *',&
+'! terms governing use, modification, and redistribution, is contained in *',&
+'! the files COPYING and Copyright.html. COPYING can be found at the root *',&
+'! of the source code distribution tree; Copyright.html can be found at the *',&
+'! root level of an installed copy of the electronic HDF5 document set and *',&
+'! is linked from the top-level documents page. It can also be found at *',&
+'! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *',&
+'! access to either file, you may request a copy from help@hdfgroup.org. *',&
+'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',&
+'!',&
+'! AUTHOR',&
+'! H5test_kind_C_SIZEOF.f90',&
+'!',&
+'!*****'
+
+! GENERATE A PROGRAM
+!
+! (a) Generate the module
+
+ WRITE(*,*) "MODULE H5test_kind_STORAGE_SIZE_mod"
+ WRITE(*,*) "USE ISO_C_BINDING"
+ WRITE(*,*) "IMPLICIT NONE"
+ WRITE(*,*) "CONTAINS"
+ j = 0
+ ji = KIND(1)
+ WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" INTEGER :: a"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
+ WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ jr = 0
+ j = KIND(1.0)
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") jr
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" REAL :: a"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
+ WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ jd = 0
+ j = KIND(1.d0)
+ WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") jd
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" DOUBLE PRECISION :: a"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
+ WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ DO i = 1, ii
+ j = ikind_numbers(i)
+ WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,'(A,I0,A)')" INTEGER(KIND=",j,") :: a"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
+ WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
+ WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ", j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ ENDDO
+ WRITE(*,*) "END MODULE H5test_kind_STORAGE_SIZE_mod"
+ WRITE(*,*) ""
+
+ ! (b) generate the main program
+
+ WRITE(*,*) "PROGRAM H5test_kind_STORAGE_SIZE"
+ WRITE(*,*) "USE H5test_kind_STORAGE_SIZE_mod"
+ WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
+ ji = 0
+ WRITE(*, "("" CALL i"", i2.2,""()"")") ji
+ jr = 0
+ WRITE(*, "("" CALL r"", i2.2,""()"")") jr
+ jd = 0
+ WRITE(*, "("" CALL d"", i2.2,""()"")") jd
+ DO i = 1, ii
+ j = ikind_numbers(i)
+ WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" CALL r"", i2.2,""()"")") j
+ ENDDO
+ WRITE(*,*) "END PROGRAM H5test_kind_STORAGE_SIZE"
+
+END PROGRAM test_kind
+
+
+
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index af0e6ee..a4b3843 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -176,11 +176,15 @@ H5fortran_detect.f90: H5test_kind$(EXEEXT)
# H5test_kind.f90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.
+if FORTRAN_HAVE_STORAGE_SIZE
+ H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90
+else
if FORTRAN_HAVE_SIZEOF
H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
else
H5test_kind_SOURCES = H5test_kind.f90
endif
+endif
# Mark this directory as part of the Fortran API
FORTRAN_API=yes
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index c99796e..69990da 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -191,11 +191,11 @@ H5fortran_detect_LDADD = $(LDADD)
H5match_types_SOURCES = H5match_types.c
H5match_types_OBJECTS = H5match_types.$(OBJEXT)
H5match_types_LDADD = $(LDADD)
-am__H5test_kind_SOURCES_DIST = H5test_kind.f90 H5test_kind_SIZEOF.f90
-@FORTRAN_HAVE_SIZEOF_FALSE@am_H5test_kind_OBJECTS = \
-@FORTRAN_HAVE_SIZEOF_FALSE@ H5test_kind.$(OBJEXT)
-@FORTRAN_HAVE_SIZEOF_TRUE@am_H5test_kind_OBJECTS = \
-@FORTRAN_HAVE_SIZEOF_TRUE@ H5test_kind_SIZEOF.$(OBJEXT)
+am__H5test_kind_SOURCES_DIST = H5test_kind.f90 H5test_kind_SIZEOF.f90 \
+ H5test_kind_STORAGE_SIZE.f90
+@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_H5test_kind_OBJECTS = H5test_kind.$(OBJEXT)
+@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_H5test_kind_OBJECTS = H5test_kind_SIZEOF.$(OBJEXT)
+@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_H5test_kind_OBJECTS = H5test_kind_STORAGE_SIZE.$(OBJEXT)
H5test_kind_OBJECTS = $(am_H5test_kind_OBJECTS)
H5test_kind_LDADD = $(LDADD)
AM_V_P = $(am__v_P_@AM_V@)
@@ -761,7 +761,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
AM_FCLIBS = $(LIBHDF5)
@@ -827,11 +827,12 @@ BUILT_SOURCES = H5f90i_gen.h
# Automake knows how to build fortran programs if we tell it the source
# files.
H5fortran_detect_SOURCES = H5fortran_detect.f90
-@FORTRAN_HAVE_SIZEOF_FALSE@H5test_kind_SOURCES = H5test_kind.f90
+@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind.f90
+@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
# H5test_kind.f90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.
-@FORTRAN_HAVE_SIZEOF_TRUE@H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
+@FORTRAN_HAVE_STORAGE_SIZE_TRUE@H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90
# Mark this directory as part of the Fortran API
FORTRAN_API = yes
diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt
index 28b2ae1..7c31fe4 100644
--- a/fortran/test/CMakeLists.txt
+++ b/fortran/test/CMakeLists.txt
@@ -21,7 +21,13 @@ set_target_properties (${HDF5_F90_C_TEST_LIB_TARGET} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
-add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf.f90)
+if (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
+ add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F08.f90 tf.f90)
+else (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
+ add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F03.f90 tf.f90)
+endif (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
+
+
set (SHARED_LINK_FLAGS " ")
if (WIN32)
if (BUILD_SHARED_LIBS)
diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am
index c0b5395..9a04106 100644
--- a/fortran/test/Makefile.am
+++ b/fortran/test/Makefile.am
@@ -53,7 +53,19 @@ endif
check_PROGRAMS=$(TEST_PROG)
-libh5test_fortran_la_SOURCES= tf.f90 t.c
+if FORTRAN_HAVE_STORAGE_SIZE
+if FORTRAN_HAVE_C_SIZEOF
+ libh5test_fortran_la_SOURCES = tf_F08.f90
+else
+ libh5test_fortran_la_SOURCES = tf_F03.f90
+endif
+else
+ libh5test_fortran_la_SOURCES = tf_F03.f90
+endif
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+libh5test_fortran_la_SOURCES += tf.f90 t.c
# Source files are used for both the library and fortranlib_test.
# Automake will complain about this without the following workaround.
diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in
index 4afaf91..ec5de437 100644
--- a/fortran/test/Makefile.in
+++ b/fortran/test/Makefile.in
@@ -103,7 +103,16 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libh5test_fortran_la_LIBADD =
-am_libh5test_fortran_la_OBJECTS = tf.lo t.lo
+am__libh5test_fortran_la_SOURCES_DIST = tf_F03.f90 tf.f90 t.c \
+ tf_F08.f90
+@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_libh5test_fortran_la_OBJECTS = tf_F03.lo \
+@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.lo \
+@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.lo
+@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_libh5test_fortran_la_OBJECTS = tf_F08.lo \
+@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.lo \
+@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.lo
+@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_libh5test_fortran_la_OBJECTS = \
+@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ tf_F03.lo tf.lo t.lo
libh5test_fortran_la_OBJECTS = $(am_libh5test_fortran_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -215,9 +224,9 @@ am__v_FCLD_1 =
SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \
$(fflush2_SOURCES) $(fortranlib_test_SOURCES) \
$(fortranlib_test_1_8_SOURCES) $(fortranlib_test_F03_SOURCES)
-DIST_SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \
- $(fflush2_SOURCES) $(fortranlib_test_SOURCES) \
- $(fortranlib_test_1_8_SOURCES) \
+DIST_SOURCES = $(am__libh5test_fortran_la_SOURCES_DIST) \
+ $(fflush1_SOURCES) $(fflush2_SOURCES) \
+ $(fortranlib_test_SOURCES) $(fortranlib_test_1_8_SOURCES) \
$(am__fortranlib_test_F03_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -767,7 +776,23 @@ noinst_LTLIBRARIES = libh5test_fortran.la
# Our main targets, the tests themselves
TEST_PROG = fortranlib_test fflush1 fflush2 fortranlib_test_1_8 \
$(am__append_2)
-libh5test_fortran_la_SOURCES = tf.f90 t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@libh5test_fortran_la_SOURCES = tf_F03.f90 \
+@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.f90 \
+@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@libh5test_fortran_la_SOURCES = tf_F08.f90 \
+@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.f90 \
+@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+@FORTRAN_HAVE_STORAGE_SIZE_FALSE@libh5test_fortran_la_SOURCES = \
+@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ tf_F03.f90 tf.f90 t.c
# Source files are used for both the library and fortranlib_test.
# Automake will complain about this without the following workaround.
diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90
index 6039a52..0f2f3de 100644
--- a/fortran/test/tH5P_F03.f90
+++ b/fortran/test/tH5P_F03.f90
@@ -106,20 +106,12 @@ SUBROUTINE test_create(total_error)
INTEGER(hsize_t), DIMENSION(1:5), PARAMETER :: ch_size= (/1, 1, 1, 4, 1/)
CHARACTER(LEN=14) :: filename ='test_create.h5'
- ! /* compound datatype operations */
- TYPE, BIND(C) :: comp_datatype
- REAL :: a
- INTEGER :: x
- DOUBLE PRECISION :: y
- CHARACTER(LEN=1) :: z
- END TYPE comp_datatype
-
TYPE(comp_datatype), TARGET :: rd_c, fill_ctype
INTEGER :: error
INTEGER(SIZE_T) :: h5off
TYPE(C_PTR) :: f_ptr
LOGICAL :: differ1, differ2
-
+
!/*
! * Create a file.
! */
@@ -136,8 +128,7 @@ SUBROUTINE test_create(total_error)
CALL check("h5pset_chunk_f",error, total_error)
! /* Create a compound datatype */
-
- CALL h5tcreate_f(H5T_COMPOUND_F, INT(SIZEOF(fill_ctype),size_t), comp_type_id, error)
+ CALL h5tcreate_f(H5T_COMPOUND_F, H5_SIZEOF(fill_ctype), comp_type_id, error)
CALL check("h5tcreate_f", error, total_error)
h5off = H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%a))
CALL h5tinsert_f(comp_type_id, "a", h5off , H5T_NATIVE_REAL, error)
@@ -412,7 +403,7 @@ SUBROUTINE test_h5p_file_image(total_error)
! Set file image
f_ptr = C_LOC(buffer(1))
- size = SIZEOF(buffer)
+ size = H5_SIZEOF(buffer)
CALL h5pset_file_image_f(fapl_1, f_ptr, size, error)
CALL check("h5pset_file_image_f", error, total_error)
@@ -505,13 +496,13 @@ SUBROUTINE external_test_offset(cleanup,total_error)
! Create the dataset
CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, error)
CALL check("h5pcreate_f", error, total_error)
- CALL h5pset_external_f(dcpl, "extern_1a.raw", INT(0,off_t), INT(SIZEOF(part), hsize_t), error)
+ CALL h5pset_external_f(dcpl, "extern_1a.raw", INT(0,off_t), INT(H5_SIZEOF(part), hsize_t), error)
CALL check("h5pset_external_f",error,total_error)
- CALL h5pset_external_f(dcpl, "extern_2a.raw", INT(10,off_t), INT(SIZEOF(part), hsize_t), error)
+ CALL h5pset_external_f(dcpl, "extern_2a.raw", INT(10,off_t), INT(H5_SIZEOF(part), hsize_t), error)
CALL check("h5pset_external_f",error,total_error)
- CALL h5pset_external_f(dcpl, "extern_3a.raw", INT(20,off_t), INT(SIZEOF(part), hsize_t), error)
+ CALL h5pset_external_f(dcpl, "extern_3a.raw", INT(20,off_t), INT(H5_SIZEOF(part), hsize_t), error)
CALL check("h5pset_external_f",error,total_error)
- CALL h5pset_external_f(dcpl, "extern_4a.raw", INT(30,off_t), INT(SIZEOF(part), hsize_t), error)
+ CALL h5pset_external_f(dcpl, "extern_4a.raw", INT(30,off_t), INT(H5_SIZEOF(part), hsize_t), error)
CALL check("h5pset_external_f",error,total_error)
cur_size(1) = 100
diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90
index fc3ebd0..f15424d 100644
--- a/fortran/test/tH5T_F03.f90
+++ b/fortran/test/tH5T_F03.f90
@@ -661,9 +661,6 @@ END SUBROUTINE test_array_compound_atomic
USE ISO_C_BINDING
IMPLICIT NONE
- INTEGER, PARAMETER :: r_k4 = SELECTED_REAL_KIND(5)
- INTEGER, PARAMETER :: r_k8 = SELECTED_REAL_KIND(10)
-
INTEGER, INTENT(INOUT) :: total_error
INTEGER, PARAMETER :: LENGTH = 5
@@ -685,8 +682,8 @@ END SUBROUTINE test_array_compound_atomic
TYPE CmpField_struct
INTEGER, DIMENSION(1:ALEN) :: a
- REAL(KIND=r_k4), DIMENSION(1:ALEN) :: b
- REAL(KIND=r_k8), DIMENSION(1:ALEN) :: c
+ REAL(KIND=sp), DIMENSION(1:ALEN) :: b
+ REAL(KIND=dp), DIMENSION(1:ALEN) :: c
ENDTYPE CmpField_struct
TYPE(CmpField_struct), DIMENSION(1:LENGTH), TARGET :: cf
@@ -702,7 +699,7 @@ END SUBROUTINE test_array_compound_atomic
TYPE(CmpDTSinfo_struct) :: dtsinfo
TYPE fld_t_struct
- REAL(KIND=r_k4), DIMENSION(1:ALEN) :: b
+ REAL(KIND=sp), DIMENSION(1:ALEN) :: b
END TYPE fld_t_struct
INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
@@ -741,10 +738,10 @@ END SUBROUTINE test_array_compound_atomic
! -----------------------
CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, error)
CALL check("h5tget_size_f", error, total_error)
- IF(sizeof(cf(1)%b(1)).EQ.4)THEN
+ IF(h5_sizeof(cf(1)%b(1)).EQ.4_size_t)THEN
CALL h5tget_size_f(H5T_NATIVE_REAL_4, type_sizer, error)
CALL check("h5tget_size_f", error, total_error)
- ELSE IF(sizeof(cf(1)%b(1)).EQ.8)THEN
+ ELSE IF(h5_sizeof(cf(1)%b(1)).EQ.8_size_t)THEN
CALL h5tget_size_f(H5T_NATIVE_REAL_8, type_sizer, error)
CALL check("h5tget_size_f", error, total_error)
ENDIF
diff --git a/fortran/test/tf.f90 b/fortran/test/tf.f90
index 2964840..063e93d 100644
--- a/fortran/test/tf.f90
+++ b/fortran/test/tf.f90
@@ -29,7 +29,9 @@
!*****
MODULE TH5_MISC
- INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15, 307)
+ USE TH5_MISC_PROVISIONAL
+
+ IMPLICIT NONE
CONTAINS
diff --git a/fortran/test/tf_F03.f90 b/fortran/test/tf_F03.f90
new file mode 100644
index 0000000..365879a
--- /dev/null
+++ b/fortran/test/tf_F03.f90
@@ -0,0 +1,126 @@
+!****h* root/fortran/test/tf_F08.f90
+!
+! NAME
+! tf_F08.f90
+!
+! FUNCTION
+! Contains Functions that are part of the F2008 standard and needed by
+! the hdf5 fortran tests.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! CONTAINS SUBROUTINES
+! H5_SIZEOF
+!
+!*****
+MODULE TH5_MISC_PROVISIONAL
+ IMPLICIT NONE
+
+ INTEGER, PARAMETER :: sp = KIND(0.0)
+ INTEGER, PARAMETER :: dp = KIND(0.D0)
+
+ ! generic compound datatype
+ TYPE, BIND(C) :: comp_datatype
+ REAL :: a
+ INTEGER :: x
+ DOUBLE PRECISION :: y
+ CHARACTER(LEN=1) :: z
+ END TYPE comp_datatype
+
+ PUBLIC :: H5_SIZEOF
+ INTERFACE H5_SIZEOF
+ MODULE PROCEDURE H5_SIZEOF_CMPD
+ MODULE PROCEDURE H5_SIZEOF_CHR
+ MODULE PROCEDURE H5_SIZEOF_I, H5_SIZEOF_IV
+ MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP
+ END INTERFACE
+
+CONTAINS
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_cmpd
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a)
+ IMPLICIT NONE
+ TYPE(comp_datatype), INTENT(in) :: a
+
+ H5_SIZEOF_CMPD = SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_CMPD
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_chr
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(in):: a
+
+ H5_SIZEOF_CHR = SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_CHR
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_i
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a)
+ IMPLICIT NONE
+ INTEGER, INTENT(in):: a
+
+ H5_SIZEOF_I = SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_I
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_iv
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_IV(a)
+ IMPLICIT NONE
+ INTEGER, DIMENSION(:), INTENT(in):: a
+
+ H5_SIZEOF_IV = SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_IV
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_sp
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a)
+ IMPLICIT NONE
+ REAL(sp), INTENT(in):: a
+
+ H5_SIZEOF_SP = SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_SP
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_dp
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a)
+ IMPLICIT NONE
+ REAL(dp), INTENT(in):: a
+
+ H5_SIZEOF_DP = SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_DP
+
+END MODULE TH5_MISC_PROVISIONAL
diff --git a/fortran/test/tf_F08.f90 b/fortran/test/tf_F08.f90
new file mode 100644
index 0000000..3ad2820
--- /dev/null
+++ b/fortran/test/tf_F08.f90
@@ -0,0 +1,139 @@
+!****h* root/fortran/test/tf_F08.f90
+!
+! NAME
+! tf_F08.f90
+!
+! FUNCTION
+! Contains functions that are part of the F2008 standard and needed by
+! the hdf5 fortran tests.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! CONTAINS SUBROUTINES
+! H5_SIZEOF
+!
+! NOTES
+! This file contains "sizeof" functions that are F2008 standard compliant
+! and replace the non-standard 'SIZEOF' functions found in the file tf_F03.
+! Unfortunity we need to wrap the C_SIZEOF/STORAGE_SIZE functions to handle different
+! data types from the various tests.
+!
+! F08+TS29113 requires C interoperable variable as argument for C_SIZEOF.
+!
+! This file will be build instead of tf_F03.f90 if the intrinsic fortran
+! function C_SIZEOF/STORAGE_SIZE is found during configure.
+!
+!*****
+MODULE TH5_MISC_PROVISIONAL
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER, PARAMETER :: sp = KIND(0.0)
+ INTEGER, PARAMETER :: dp = KIND(0.D0)
+
+ ! generic compound datatype
+ TYPE, BIND(C) :: comp_datatype
+ REAL :: a
+ INTEGER :: x
+ DOUBLE PRECISION :: y
+ CHARACTER(LEN=1) :: z
+ END TYPE comp_datatype
+
+ PUBLIC :: H5_SIZEOF
+ INTERFACE H5_SIZEOF
+ MODULE PROCEDURE H5_SIZEOF_CMPD
+ MODULE PROCEDURE H5_SIZEOF_CHR
+ MODULE PROCEDURE H5_SIZEOF_I, H5_SIZEOF_IV
+ MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP
+ END INTERFACE
+
+CONTAINS
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_cmpd
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a)
+ IMPLICIT NONE
+ TYPE(comp_datatype), INTENT(in) :: a
+
+ H5_SIZEOF_CMPD = C_SIZEOF(a)
+
+ END FUNCTION H5_SIZEOF_CMPD
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_chr
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(in) :: a
+
+ H5_SIZEOF_CHR = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+ END FUNCTION H5_SIZEOF_CHR
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_i
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a)
+ IMPLICIT NONE
+ INTEGER, INTENT(in):: a
+
+ H5_SIZEOF_I = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+ END FUNCTION H5_SIZEOF_I
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_iv
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_IV(a)
+ IMPLICIT NONE
+ INTEGER, DIMENSION(:), INTENT(in):: a
+
+ H5_SIZEOF_IV = SIZE(a)*storage_size(a(1), c_size_t)/storage_size(c_char_'a',c_size_t)
+
+ END FUNCTION H5_SIZEOF_IV
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_sp
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a)
+ IMPLICIT NONE
+ REAL(sp), INTENT(in):: a
+
+ H5_SIZEOF_SP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+ END FUNCTION H5_SIZEOF_SP
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_dp
+!DEC$endif
+ INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a)
+ IMPLICIT NONE
+ REAL(dp), INTENT(in):: a
+
+ H5_SIZEOF_DP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+ END FUNCTION H5_SIZEOF_DP
+
+END MODULE TH5_MISC_PROVISIONAL
diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in
index f8901fa..3fb23e4 100644
--- a/hl/c++/src/Makefile.in
+++ b/hl/c++/src/Makefile.in
@@ -702,7 +702,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
# This is our main target
diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in
index b47bde1..776ac77 100644
--- a/hl/fortran/src/Makefile.in
+++ b/hl/fortran/src/Makefile.in
@@ -717,7 +717,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
# Our main target, the high-level fortran library
diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in
index a56a677..3f8543f 100644
--- a/hl/src/Makefile.in
+++ b/hl/src/Makefile.in
@@ -698,7 +698,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
# This library is our main target.
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 95cd578..871a07e 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.9.184 currently under development
+HDF5 version 1.9.185 currently under development
================================================================================
diff --git a/src/H5Shyper.c b/src/H5Shyper.c
index 0f92ab7..12f8b4e 100644
--- a/src/H5Shyper.c
+++ b/src/H5Shyper.c
@@ -86,7 +86,7 @@ static herr_t H5S_fill_in_hyperslab(H5S_t *old_space, H5S_seloper_t op,
static herr_t H5S_fill_in_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2,
H5S_t **result);
static H5S_t *H5S_combine_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2);
-static herr_t H5S_select_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2);
+static herr_t H5S_modify_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2);
static herr_t H5S_hyper_get_seq_list_gen(const H5S_t *space, H5S_sel_iter_t *iter,
size_t maxseq, size_t maxelem, size_t *nseq, size_t *nelem, hsize_t *off,
size_t *len);
@@ -7845,7 +7845,7 @@ H5Scombine_select(hid_t space1_id, H5S_seloper_t op, hid_t space2_id)
/* Note: currently, the offset of each dataspace is ignored */
#if 0
/* Check that both dataspaces have the same offset */
- /* Same note as in H5Sselect_select */
+ /* Same note as in H5Smodify_select */
for(u=0; u<space1->extent.rank; u++) {
if(space1->select.offset[u] != space2->select.offset[u])
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "dataspaces not same offset")
@@ -7873,9 +7873,9 @@ done:
/*-------------------------------------------------------------------------
- * Function: H5S_select_select
+ * Function: H5S_modify_select
*
- * Purpose: Internal version of H5Sselect_select().
+ * Purpose: Internal version of H5Smodify_select().
*
* Return: New dataspace on success/NULL on failure
*
@@ -7888,7 +7888,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5S_select_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2)
+H5S_modify_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2)
{
herr_t ret_value = SUCCEED; /* Return value */
@@ -7930,17 +7930,17 @@ H5S_select_select(H5S_t *space1, H5S_seloper_t op, H5S_t *space2)
done:
FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5S_select_select() */
+} /* end H5S_modify_select() */
/*--------------------------------------------------------------------------
NAME
- H5Sselect_select
+ H5Smodify_select
PURPOSE
Refine a hyperslab selection with an operation using a second hyperslab
to modify it
USAGE
- herr_t H5Sselect_select(space1, op, space2)
+ herr_t H5Smodify_select(space1, op, space2)
hid_t space1; IN/OUT: First Dataspace ID
H5S_seloper_t op; IN: Selection operation
hid_t space2; IN: Second Dataspace ID
@@ -7956,7 +7956,7 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5Sselect_select(hid_t space1_id, H5S_seloper_t op, hid_t space2_id)
+H5Smodify_select(hid_t space1_id, H5S_seloper_t op, hid_t space2_id)
{
H5S_t *space1; /* First Dataspace */
H5S_t *space2; /* Second Dataspace */
@@ -8007,12 +8007,12 @@ H5Sselect_select(hid_t space1_id, H5S_seloper_t op, hid_t space2_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "dataspaces don't have hyperslab selections")
/* Go refine the first selection */
- if(H5S_select_select(space1, op, space2) < 0)
+ if(H5S_modify_select(space1, op, space2) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to modify hyperslab selection")
done:
FUNC_LEAVE_API(ret_value)
-} /* end H5Sselect_select() */
+} /* end H5Smodify_select() */
/*--------------------------------------------------------------------------
diff --git a/src/H5Spublic.h b/src/H5Spublic.h
index c20ac1c..b2373a7 100644
--- a/src/H5Spublic.h
+++ b/src/H5Spublic.h
@@ -124,7 +124,7 @@ H5_DLL hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op,
const hsize_t _stride[],
const hsize_t count[],
const hsize_t _block[]);
-H5_DLL herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op,
+H5_DLL herr_t H5Smodify_select(hid_t space1_id, H5S_seloper_t op,
hid_t space2_id);
H5_DLL hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op,
hid_t space2_id);
diff --git a/src/H5public.h b/src/H5public.h
index bcd6765..d96854e 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 184 /* For tweaks, bug-fixes, or development */
+#define H5_VERS_RELEASE 185 /* For tweaks, bug-fixes, or development */
#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */
/* Empty string for real releases. */
-#define H5_VERS_INFO "HDF5 library version: 1.9.184" /* Full version string */
+#define H5_VERS_INFO "HDF5 library version: 1.9.185" /* 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 736f885..21eadd1 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -770,7 +770,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 6
-LT_VERS_REVISION = 174
+LT_VERS_REVISION = 175
LT_VERS_AGE = 0
# Our main target, the HDF5 library
diff --git a/test/tselect.c b/test/tselect.c
index 0fc8b40..a945ca8 100644
--- a/test/tselect.c
+++ b/test/tselect.c
@@ -4935,7 +4935,7 @@ test_select_hyper_union(void)
**
** test_select_hyper_union_stagger(): Test basic H5S (dataspace) selection code.
** Tests unions of staggered hyperslabs. (Uses H5Scombine_hyperslab
-** and H5Sselect_select instead of H5Sselect_hyperslab)
+** and H5Smodify_select instead of H5Sselect_hyperslab)
**
****************************************************************/
static void
@@ -5039,8 +5039,8 @@ test_select_hyper_union_stagger(void)
CHECK(error, FAIL, "H5Sselect_hyperslab");
/* Combine the copied dataspace with the temporary dataspace */
- error=H5Sselect_select(tmp_space,H5S_SELECT_OR,tmp2_space);
- CHECK(error, FAIL, "H5Sselect_select");
+ error=H5Smodify_select(tmp_space,H5S_SELECT_OR,tmp2_space);
+ CHECK(error, FAIL, "H5Smodify_select");
/* Create Memory Dataspace */
memspace=H5Screate_simple(memrank,dimsm,NULL);
@@ -5292,7 +5292,7 @@ test_select_hyper_union_3d(void)
**
** test_select_hyper_valid_combination(): Tests invalid and valid
** combinations of selections on dataspace for H5Scombine_select
-** and H5Sselect_select.
+** and H5Smodify_select.
**
****************************************************************/
static void
@@ -5307,10 +5307,10 @@ test_select_hyper_valid_combination(void)
hsize_t dims3D[] = {SPACE4_DIM1, SPACE4_DIM2, SPACE4_DIM3};
hsize_t coord1[1][SPACE2_RANK]; /* Coordinates for single point selection */
- hsize_t start[SPACE9_RANK]; /* Hyperslab start */
- hsize_t stride[SPACE9_RANK]; /* Hyperslab stride */
- hsize_t count[SPACE9_RANK]; /* Hyperslab block count */
- hsize_t block[SPACE9_RANK]; /* Hyperslab block size */
+ hsize_t start[SPACE4_RANK]; /* Hyperslab start */
+ hsize_t stride[SPACE4_RANK]; /* Hyperslab stride */
+ hsize_t count[SPACE4_RANK]; /* Hyperslab block count */
+ hsize_t block[SPACE4_RANK]; /* Hyperslab block size */
herr_t ret; /* Generic return value */
/* Output message about test being performed */
@@ -5357,29 +5357,29 @@ test_select_hyper_valid_combination(void)
tmp_sid = H5Scombine_select(single_pt_sid, H5S_SELECT_AND, single_hyper_sid);
VERIFY(tmp_sid, FAIL, "H5Scombine_select");
- tmp_sid = H5Sselect_select(single_pt_sid, H5S_SELECT_AND, single_hyper_sid);
- VERIFY(tmp_sid, FAIL, "H5Sselect_select");
+ tmp_sid = H5Smodify_select(single_pt_sid, H5S_SELECT_AND, single_hyper_sid);
+ VERIFY(tmp_sid, FAIL, "H5Smodify_select");
/* Test the invalid combination between two hyperslab but of different dimension size */
tmp_sid = H5Scombine_select(single_hyper_sid, H5S_SELECT_AND, regular_hyper_sid);
VERIFY(tmp_sid, FAIL, "H5Scombine_select");
- tmp_sid = H5Sselect_select(single_hyper_sid, H5S_SELECT_AND, regular_hyper_sid);
- VERIFY(tmp_sid, FAIL, "H5Sselect_select");
+ tmp_sid = H5Smodify_select(single_hyper_sid, H5S_SELECT_AND, regular_hyper_sid);
+ VERIFY(tmp_sid, FAIL, "H5Smodify_select");
/* Test invalid operation inputs to the two functions */
tmp_sid = H5Scombine_select(single_hyper_sid, H5S_SELECT_SET, single_hyper_sid);
VERIFY(tmp_sid, FAIL, "H5Scombine_select");
- tmp_sid = H5Sselect_select(single_hyper_sid, H5S_SELECT_SET, single_hyper_sid);
- VERIFY(tmp_sid, FAIL, "H5Sselect_select");
+ tmp_sid = H5Smodify_select(single_hyper_sid, H5S_SELECT_SET, single_hyper_sid);
+ VERIFY(tmp_sid, FAIL, "H5Smodify_select");
/* Test inputs in case of non-existent space ids */
tmp_sid = H5Scombine_select(single_hyper_sid, H5S_SELECT_AND, non_existent_sid);
VERIFY(tmp_sid, FAIL, "H5Scombine_select");
- tmp_sid = H5Sselect_select(single_hyper_sid, H5S_SELECT_AND, non_existent_sid);
- VERIFY(tmp_sid, FAIL, "H5Sselect_select");
+ tmp_sid = H5Smodify_select(single_hyper_sid, H5S_SELECT_AND, non_existent_sid);
+ VERIFY(tmp_sid, FAIL, "H5Smodify_select");
/* Close dataspaces */
ret = H5Sclose(single_pt_sid);
diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt
index 7f3fe7f..8c631a3 100644
--- a/testpar/CMakeLists.txt
+++ b/testpar/CMakeLists.txt
@@ -43,7 +43,6 @@ ENDMACRO (ADD_H5P_EXE file)
set (H5P_TESTS
t_mpi
-# t_posix_compliant
t_cache
t_pflush1
t_pflush2
@@ -54,8 +53,4 @@ foreach (testp ${H5P_TESTS})
ADD_H5P_EXE(${testp})
endforeach (testp ${H5P_TESTS})
-if (NOT WIN32)
- ADD_H5P_EXE(t_posix_compliant)
-endif (NOT WIN32)
-
include (CMakeTests.cmake)
diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h
index 746a85e..c7059f2 100644
--- a/vms/src/h5pubconf.h
+++ b/vms/src/h5pubconf.h
@@ -511,7 +511,7 @@
#define H5_PACKAGE_NAME "HDF5"
/* Define to the full name and version of this package. */
-#define H5_PACKAGE_STRING "HDF5 1.9.184"
+#define H5_PACKAGE_STRING "HDF5 1.9.185"
/* Define to the one symbol short name of this package. */
#define H5_PACKAGE_TARNAME "hdf5"
@@ -520,7 +520,7 @@
#define H5_PACKAGE_URL ""
/* Define to the version of this package. */
-#define H5_PACKAGE_VERSION "1.9.184"
+#define H5_PACKAGE_VERSION "1.9.185"
/* Width for printf() for type `long long' or `__int64', use `ll' */
#define H5_PRINTF_LL_WIDTH "ll"
@@ -683,7 +683,7 @@
/* #undef H5_USING_MEMCHECKER */
/* Version number of package */
-#define H5_VERSION "1.9.184"
+#define H5_VERSION "1.9.185"
/* Define if vsnprintf() returns the correct value for formatted strings that
don't fit into size allowed */