From 1c9e159ffe6cf85a5c076f747758dc47eb7a111a Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Tue, 4 Sep 2012 22:46:58 -0500 Subject: [svn-r22737] Fix for HDF5 HDFFV-8109 H5S_UNLIMITED_F has a wrong type Tested: jam (gnu) --- fortran/src/H5_f.c | 69 ++++++++++++++++++++++----------------------- fortran/src/H5_ff.f90 | 3 ++ fortran/src/H5f90global.f90 | 50 ++++++++++++++++++-------------- fortran/src/H5f90proto.h | 2 +- 4 files changed, 67 insertions(+), 57 deletions(-) diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index 05b7da0..7b55384 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -330,20 +330,21 @@ nh5close_types_c( hid_t_f * types, int_f *lentypes, * PURPOSE * Initialize Fortran flags * INPUTS - * h5d_flags - H5D inteface flags - * h5e_flags - H5E inteface flags - * h5e_hid_flags - H5E inteface flags of type hid_t - * h5f_flags - H5F interface flags - * h5fd_flags - H5FD interface flags - * h5fd_hid_flags - H5FD interface flags of type hid_t - * h5g_flags - H5G interface flags - * h5i_flags - H5I interface flags - * h5p_flags - H5P interface flags - * h5p_flags_int - H5P interface flags of type integer - * h5r_flags - H5R interface flags - * h5s_flags - H5S interface flags - * h5t_flags - H5T interface flags - * h5z_flags - H5Z interface flags + * h5d_flags - H5D inteface flags + * h5e_flags - H5E inteface flags + * h5e_hid_flags - H5E inteface flags of type hid_t + * h5f_flags - H5F interface flags + * h5fd_flags - H5FD interface flags + * h5fd_hid_flags - H5FD interface flags of type hid_t + * h5g_flags - H5G interface flags + * h5i_flags - H5I interface flags + * h5p_flags - H5P interface flags + * h5p_flags_int - H5P interface flags of type integer + * h5r_flags - H5R interface flags + * h5s_flags - H5S interface flags + * h5s_hsize_flags - H5S interface flags of type hsize_t + * h5t_flags - H5T interface flags + * h5z_flags - H5Z interface flags * OUTPUTS * None * RETURNS @@ -368,7 +369,7 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int int_f *h5fd_flags, hid_t_f *h5fd_hid_flags, int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, - int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags) + hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags) /******/ { int ret_value = -1; @@ -579,31 +580,29 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int /* * H5S flags */ - - h5s_flags[0] = (int_f)H5S_SCALAR; h5s_flags[1] = (int_f)H5S_SIMPLE; h5s_flags[2] = (int_f)H5S_NULL; h5s_flags[3] = (int_f)H5S_SELECT_SET; h5s_flags[4] = (int_f)H5S_SELECT_OR; - h5s_flags[5] = (int_f)H5S_UNLIMITED; - h5s_flags[6] = (int_f)H5S_ALL; - - h5s_flags[7] = (int_f)H5S_SELECT_NOOP; - h5s_flags[8] = (int_f)H5S_SELECT_AND; - h5s_flags[9] = (int_f)H5S_SELECT_XOR; - h5s_flags[10] = (int_f)H5S_SELECT_NOTB; - h5s_flags[11] = (int_f)H5S_SELECT_NOTA; - h5s_flags[12] = (int_f)H5S_SELECT_APPEND; - h5s_flags[13] = (int_f)H5S_SELECT_PREPEND; - h5s_flags[14] = (int_f)H5S_SELECT_INVALID; - - - h5s_flags[15] = (int_f)H5S_SEL_ERROR; - h5s_flags[16] = (int_f)H5S_SEL_NONE; - h5s_flags[17] = (int_f)H5S_SEL_POINTS; - h5s_flags[18] = (int_f)H5S_SEL_HYPERSLABS; - h5s_flags[19] = (int_f)H5S_SEL_ALL; + h5s_flags[5] = (int_f)H5S_ALL; + + h5s_flags[6] = (int_f)H5S_SELECT_NOOP; + h5s_flags[7] = (int_f)H5S_SELECT_AND; + h5s_flags[8] = (int_f)H5S_SELECT_XOR; + h5s_flags[9] = (int_f)H5S_SELECT_NOTB; + h5s_flags[10] = (int_f)H5S_SELECT_NOTA; + h5s_flags[11] = (int_f)H5S_SELECT_APPEND; + h5s_flags[12] = (int_f)H5S_SELECT_PREPEND; + h5s_flags[13] = (int_f)H5S_SELECT_INVALID; + + h5s_flags[14] = (int_f)H5S_SEL_ERROR; + h5s_flags[15] = (int_f)H5S_SEL_NONE; + h5s_flags[16] = (int_f)H5S_SEL_POINTS; + h5s_flags[17] = (int_f)H5S_SEL_HYPERSLABS; + h5s_flags[18] = (int_f)H5S_SEL_ALL; + + h5s_hsize_flags[0] = (hsize_t_f)H5S_UNLIMITED; /* * H5T flags diff --git a/fortran/src/H5_ff.f90 b/fortran/src/H5_ff.f90 index dcd1917..c51b039 100644 --- a/fortran/src/H5_ff.f90 +++ b/fortran/src/H5_ff.f90 @@ -100,6 +100,7 @@ CONTAINS i_H5P_flags_int, & i_H5R_flags, & i_H5S_flags, & + i_H5S_hsize_flags, & i_H5T_flags, & i_H5Z_flags, & i_H5generic_flags) @@ -118,6 +119,7 @@ CONTAINS INTEGER i_H5P_flags_int(H5P_FLAGS_INT_LEN) INTEGER i_H5R_flags(H5R_FLAGS_LEN) INTEGER i_H5S_flags(H5S_FLAGS_LEN) + INTEGER(HSIZE_T) i_H5S_hsize_flags(H5S_HSIZE_FLAGS_LEN) INTEGER i_H5T_flags(H5T_FLAGS_LEN) INTEGER i_H5Z_flags(H5Z_FLAGS_LEN) INTEGER i_H5generic_flags(H5generic_FLAGS_LEN) @@ -150,6 +152,7 @@ CONTAINS H5P_flags_int, & H5R_flags, & H5S_flags, & + H5S_hsize_flags, & H5T_flags, & H5Z_flags, & H5generic_flags) diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90 index a23ec34..6943270 100644 --- a/fortran/src/H5f90global.f90 +++ b/fortran/src/H5f90global.f90 @@ -690,7 +690,7 @@ MODULE H5GLOBAL ! ! H5S flags declaration ! - INTEGER, PARAMETER :: H5S_FLAGS_LEN = 20 + INTEGER, PARAMETER :: H5S_FLAGS_LEN = 19 INTEGER H5S_flags(H5S_FLAGS_LEN) !DEC$if defined(BUILD_HDF5_DLL) !DEC$ATTRIBUTES DLLEXPORT :: /H5S_FLAGS/ @@ -701,7 +701,6 @@ MODULE H5GLOBAL INTEGER :: H5S_SIMPLE_F INTEGER :: H5S_NULL_F - INTEGER :: H5S_UNLIMITED_F INTEGER :: H5S_ALL_F INTEGER :: H5S_SELECT_NOOP_F @@ -715,7 +714,6 @@ MODULE H5GLOBAL INTEGER :: H5S_SELECT_PREPEND_F INTEGER :: H5S_SELECT_INVALID_F - INTEGER :: H5S_SEL_ERROR_F INTEGER :: H5S_SEL_NONE_F INTEGER :: H5S_SEL_POINTS_F @@ -727,24 +725,34 @@ MODULE H5GLOBAL EQUIVALENCE(H5S_flags(3), H5S_NULL_F) EQUIVALENCE(H5S_flags(4), H5S_SELECT_SET_F) EQUIVALENCE(H5S_flags(5), H5S_SELECT_OR_F) - EQUIVALENCE(H5S_flags(6), H5S_UNLIMITED_F) - EQUIVALENCE(H5S_flags(7), H5S_ALL_F) - - EQUIVALENCE(H5S_flags(8), H5S_SELECT_NOOP_F) - EQUIVALENCE(H5S_flags(9), H5S_SELECT_AND_F) - EQUIVALENCE(H5S_flags(10), H5S_SELECT_XOR_F) - EQUIVALENCE(H5S_flags(11), H5S_SELECT_NOTB_F) - EQUIVALENCE(H5S_flags(12), H5S_SELECT_NOTA_F) - EQUIVALENCE(H5S_flags(13), H5S_SELECT_APPEND_F) - EQUIVALENCE(H5S_flags(14), H5S_SELECT_PREPEND_F) - EQUIVALENCE(H5S_flags(15), H5S_SELECT_INVALID_F) - - - EQUIVALENCE(H5S_flags(16), H5S_SEL_ERROR_F) - EQUIVALENCE(H5S_flags(17), H5S_SEL_NONE_F) - EQUIVALENCE(H5S_flags(18), H5S_SEL_POINTS_F) - EQUIVALENCE(H5S_flags(19), H5S_SEL_HYPERSLABS_F) - EQUIVALENCE(H5S_flags(20), H5S_SEL_ALL_F) + EQUIVALENCE(H5S_flags(6), H5S_ALL_F) + + EQUIVALENCE(H5S_flags(7), H5S_SELECT_NOOP_F) + EQUIVALENCE(H5S_flags(8), H5S_SELECT_AND_F) + EQUIVALENCE(H5S_flags(9), H5S_SELECT_XOR_F) + EQUIVALENCE(H5S_flags(10), H5S_SELECT_NOTB_F) + EQUIVALENCE(H5S_flags(11), H5S_SELECT_NOTA_F) + EQUIVALENCE(H5S_flags(12), H5S_SELECT_APPEND_F) + EQUIVALENCE(H5S_flags(13), H5S_SELECT_PREPEND_F) + EQUIVALENCE(H5S_flags(14), H5S_SELECT_INVALID_F) + + + EQUIVALENCE(H5S_flags(15), H5S_SEL_ERROR_F) + EQUIVALENCE(H5S_flags(16), H5S_SEL_NONE_F) + EQUIVALENCE(H5S_flags(17), H5S_SEL_POINTS_F) + EQUIVALENCE(H5S_flags(18), H5S_SEL_HYPERSLABS_F) + EQUIVALENCE(H5S_flags(19), H5S_SEL_ALL_F) + + INTEGER, PARAMETER :: H5S_HSIZE_FLAGS_LEN = 1 + INTEGER(HSIZE_T) H5S_hsize_flags(H5S_HSIZE_FLAGS_LEN) + !DEC$if defined(BUILD_HDF5_DLL) DEC$ATTRIBUTES DLLEXPORT :: /H5S_HSIZE_FLAGS/ + !DEC$endif + COMMON /H5S_HSIZE_FLAGS/ H5S_hsize_flags + + INTEGER(HSIZE_T) :: H5S_UNLIMITED_F + + EQUIVALENCE(H5S_hsize_flags(1), H5S_UNLIMITED_F) + ! ! H5T flags declaration ! diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index a504653..d0a8361 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -1235,7 +1235,7 @@ H5_FCDLL int_f nh5init_flags_c(int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_ int_f *h5fd_flags, hid_t_f *h5fd_hid_flags, int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, - int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags); + hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags); H5_FCDLL int_f nh5init1_flags_c(int_f *h5lib_flags); H5_FCDLL int_f nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum); H5_FCDLL int_f nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum); -- cgit v0.12