[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.
This commit is contained in:
Scot Breitenfeld 2015-02-03 13:52:27 -05:00
parent 3946ec882b
commit 5060fb1050
3 changed files with 50 additions and 41 deletions

View File

@ -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:

View File

@ -471,27 +471,25 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
/*
* H5G flags
*/
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[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[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;

View File

@ -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(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(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(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