summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-02-03 18:52:27 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-02-03 18:52:27 (GMT)
commit5060fb1050c6b65bc67d04f7f7756deb7e1600d1 (patch)
tree525129b18be5c6bc56227f22cc646233059acdd7
parent3946ec882b8c405064f4008c4765f3894957c2a1 (diff)
downloadhdf5-5060fb1050c6b65bc67d04f7f7756deb7e1600d1.zip
hdf5-5060fb1050c6b65bc67d04f7f7756deb7e1600d1.tar.gz
hdf5-5060fb1050c6b65bc67d04f7f7756deb7e1600d1.tar.bz2
[svn-r26122] Fix for HDFFV-9040 h5rget_object_type_f returns different types than indicated by API
Slight change of global variable definitions from C. Tested: jam.
-rw-r--r--fortran/src/H5Off_F03.f905
-rw-r--r--fortran/src/H5_f.c39
-rw-r--r--fortran/src/H5f90global.f9051
3 files changed, 52 insertions, 43 deletions
diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90
index e6b87ea..36b6246 100644
--- a/fortran/src/H5Off_F03.f90
+++ b/fortran/src/H5Off_F03.f90
@@ -40,11 +40,6 @@ MODULE H5O_PROVISIONAL
IMPLICIT NONE
- enum, bind(c)
- enumerator :: H5O_TYPE_UNKNOWN_F = -1
- enumerator :: H5O_TYPE_GROUP_F, H5O_TYPE_DATASET_F, H5O_TYPE_NAMED_DATATYPE_F, H5O_TYPE_NTYPES_F
- end enum
-
!****t* H5T (F03)/h5o_info_t
!
! Fortran2003 Derived Type:
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 05e525d..4e6edc3 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -471,27 +471,25 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
/*
* H5G flags
*/
-
- h5g_flags[0] = (int_f)H5O_TYPE_UNKNOWN;
- h5g_flags[1] = (int_f)H5O_TYPE_GROUP;
- h5g_flags[2] = (int_f)H5O_TYPE_DATASET;
- h5g_flags[3] = (int_f)H5O_TYPE_NAMED_DATATYPE;
-/* This value can no longer be returned and all these flags should be updated
- * to reflect the refinements between links and objects. -QAK */
-/* h5g_flags[4] = H5G_LINK; */
- h5g_flags[5] = (int_f)H5L_TYPE_ERROR;
- h5g_flags[6] = (int_f)H5L_TYPE_HARD;
- h5g_flags[7] = (int_f)H5L_TYPE_SOFT;
-
- h5g_flags[8] = (int_f)H5G_STORAGE_TYPE_UNKNOWN;
- h5g_flags[9] = (int_f)H5G_STORAGE_TYPE_SYMBOL_TABLE;
- h5g_flags[10] = (int_f)H5G_STORAGE_TYPE_COMPACT;
- h5g_flags[11] = (int_f)H5G_STORAGE_TYPE_DENSE;
+ h5g_flags[0] = (int_f)H5G_UNKNOWN;
+ h5g_flags[1] = (int_f)H5G_GROUP;
+ h5g_flags[2] = (int_f)H5G_DATASET;
+ h5g_flags[3] = (int_f)H5G_TYPE;
+ h5g_flags[4] = (int_f)H5G_LINK;
+ h5g_flags[5] = (int_f)H5G_UDLINK;
+ h5g_flags[6] = (int_f)H5L_SAME_LOC;
+ h5g_flags[7] = (int_f)H5L_TYPE_ERROR;
+ h5g_flags[8] = (int_f)H5L_TYPE_HARD;
+ h5g_flags[9] = (int_f)H5L_TYPE_SOFT;
+
+ h5g_flags[10] = (int_f)H5G_STORAGE_TYPE_UNKNOWN;
+ h5g_flags[11] = (int_f)H5G_STORAGE_TYPE_SYMBOL_TABLE;
+ h5g_flags[12] = (int_f)H5G_STORAGE_TYPE_COMPACT;
+ h5g_flags[13] = (int_f)H5G_STORAGE_TYPE_DENSE;
/*
* H5I flags
*/
-
h5i_flags[0] = (int_f)H5I_FILE;
h5i_flags[1] = (int_f)H5I_GROUP;
h5i_flags[2] = (int_f)H5I_DATATYPE;
@@ -551,10 +549,15 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
h5o_flags[20] = (int_f)H5O_SHMESG_MAX_NINDEXES;
h5o_flags[21] = (int_f)H5O_SHMESG_MAX_LIST_SIZE;
+/* Types of objects in file */
+ h5o_flags[22] = (int_f)H5O_TYPE_UNKNOWN; /* Unknown object type */
+ h5o_flags[23] = (int_f)H5O_TYPE_GROUP; /* Object is a group */
+ h5o_flags[24] = (int_f)H5O_TYPE_DATASET; /* Object is a dataset */
+ h5o_flags[25] = (int_f)H5O_TYPE_NAMED_DATATYPE; /* Object is a named data type */
+ h5o_flags[26] = (int_f)H5O_TYPE_NTYPES; /* Number of different object types */
/*
* H5P flags
*/
-
h5p_flags[0] = (hid_t_f)H5P_FILE_CREATE;
h5p_flags[1] = (hid_t_f)H5P_FILE_ACCESS;
h5p_flags[2] = (hid_t_f)H5P_DATASET_CREATE;
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index da1837a..08a4eb1 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -44,6 +44,8 @@
MODULE H5GLOBAL
USE H5FORTRAN_TYPES
+ IMPLICIT NONE
+
! Definitions for reference datatypes.
! If you change the value of these parameters, do not forget to change corresponding
! values in the H5f90.h file.
@@ -309,12 +311,10 @@ MODULE H5GLOBAL
EQUIVALENCE(H5generic_flags(7), H5_ITER_DEC_F)
EQUIVALENCE(H5generic_flags(8), H5_ITER_NATIVE_F)
EQUIVALENCE(H5generic_flags(9), H5_ITER_N_F)
-
-
!
! H5G flags declaration
!
- INTEGER, PARAMETER :: H5G_FLAGS_LEN = 12
+ INTEGER, PARAMETER :: H5G_FLAGS_LEN = 14
INTEGER :: H5G_flags(H5G_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ATTRIBUTES DLLEXPORT :: /H5G_FLAGS/
@@ -325,8 +325,9 @@ MODULE H5GLOBAL
INTEGER :: H5G_GROUP_F
INTEGER :: H5G_DATASET_F
INTEGER :: H5G_TYPE_F
- ! XXX: Fix problems with H5G_LINK_F! - QAK
INTEGER :: H5G_LINK_F
+ INTEGER :: H5G_UDLINK_F
+ INTEGER :: H5G_SAME_LOC_F
INTEGER :: H5G_LINK_ERROR_F
INTEGER :: H5G_LINK_HARD_F
INTEGER :: H5G_LINK_SOFT_F
@@ -335,21 +336,21 @@ MODULE H5GLOBAL
INTEGER :: H5G_STORAGE_TYPE_COMPACT_F
INTEGER :: H5G_STORAGE_TYPE_DENSE_F
- EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F)
- EQUIVALENCE(H5G_flags(2), H5G_GROUP_F)
- EQUIVALENCE(H5G_flags(3), H5G_DATASET_F)
- EQUIVALENCE(H5G_flags(4), H5G_TYPE_F)
- ! XXX: Fix problems with H5G_LINK_F! - QAK ! these are really H5L values -MSB-
- EQUIVALENCE(H5G_flags(5), H5G_LINK_F)
- EQUIVALENCE(H5G_flags(6), H5G_LINK_ERROR_F)
- EQUIVALENCE(H5G_flags(7), H5G_LINK_HARD_F)
- EQUIVALENCE(H5G_flags(8), H5G_LINK_SOFT_F)
- ! XXX
-
- EQUIVALENCE(H5G_flags(9), H5G_STORAGE_TYPE_UNKNOWN_F )
- EQUIVALENCE(H5G_flags(10), H5G_STORAGE_TYPE_SYMBOL_TABLE_F)
- EQUIVALENCE(H5G_flags(11), H5G_STORAGE_TYPE_COMPACT_F)
- EQUIVALENCE(H5G_flags(12), H5G_STORAGE_TYPE_DENSE_F)
+ EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F) ! Unknown object type
+ EQUIVALENCE(H5G_flags(2), H5G_GROUP_F) ! Object is a group
+ EQUIVALENCE(H5G_flags(3), H5G_DATASET_F) ! Object is a dataset
+ EQUIVALENCE(H5G_flags(4), H5G_TYPE_F) ! Object is a named data type
+ EQUIVALENCE(H5G_flags(5), H5G_LINK_F) ! Object is a symbolic link
+ EQUIVALENCE(H5G_flags(6), H5G_UDLINK_F) ! Object is a user-defined link
+ EQUIVALENCE(H5G_flags(7), H5G_SAME_LOC_F)
+ EQUIVALENCE(H5G_flags(8), H5G_LINK_ERROR_F)
+ EQUIVALENCE(H5G_flags(9), H5G_LINK_HARD_F)
+ EQUIVALENCE(H5G_flags(10), H5G_LINK_SOFT_F)
+
+ EQUIVALENCE(H5G_flags(11), H5G_STORAGE_TYPE_UNKNOWN_F )
+ EQUIVALENCE(H5G_flags(12), H5G_STORAGE_TYPE_SYMBOL_TABLE_F)
+ EQUIVALENCE(H5G_flags(13), H5G_STORAGE_TYPE_COMPACT_F)
+ EQUIVALENCE(H5G_flags(14), H5G_STORAGE_TYPE_DENSE_F)
!
! H5D flags declaration
!
@@ -574,7 +575,7 @@ MODULE H5GLOBAL
!
! H5O flags declaration
!
- INTEGER, PARAMETER :: H5O_FLAGS_LEN = 22
+ INTEGER, PARAMETER :: H5O_FLAGS_LEN = 27
INTEGER :: H5o_flags(H5O_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ATTRIBUTES DLLEXPORT :: /H5O_FLAGS/
@@ -603,6 +604,11 @@ MODULE H5GLOBAL
INTEGER :: H5O_HDR_ALL_FLAGS_F
INTEGER :: H5O_SHMESG_MAX_NINDEXES_F
INTEGER :: H5O_SHMESG_MAX_LIST_SIZE_F
+ INTEGER :: H5O_TYPE_UNKNOWN_F
+ INTEGER :: H5O_TYPE_GROUP_F
+ INTEGER :: H5O_TYPE_DATASET_F
+ INTEGER :: H5O_TYPE_NAMED_DATATYPE_F
+ INTEGER :: H5O_TYPE_NTYPES_F
EQUIVALENCE(h5o_flags(1) , H5O_COPY_SHALLOW_HIERARCHY_F)
EQUIVALENCE(h5o_flags(2) , H5O_COPY_EXPAND_SOFT_LINK_F)
@@ -626,6 +632,11 @@ MODULE H5GLOBAL
EQUIVALENCE(h5o_flags(20) , H5O_HDR_ALL_FLAGS_F)
EQUIVALENCE(h5o_flags(21) , H5O_SHMESG_MAX_NINDEXES_F)
EQUIVALENCE(h5o_flags(22) , H5O_SHMESG_MAX_LIST_SIZE_F)
+ EQUIVALENCE(h5o_flags(23) , H5O_TYPE_UNKNOWN_F)
+ EQUIVALENCE(h5o_flags(24) , H5O_TYPE_GROUP_F)
+ EQUIVALENCE(h5o_flags(25) , H5O_TYPE_DATASET_F)
+ EQUIVALENCE(h5o_flags(26) , H5O_TYPE_NAMED_DATATYPE_F)
+ EQUIVALENCE(h5o_flags(27) , H5O_TYPE_NTYPES_F)
!
! H5P flags declaration