summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-06-15 00:46:48 (GMT)
committerGitHub <noreply@github.com>2023-06-15 00:46:48 (GMT)
commitd987620daeb226f3e2c89a48383f52cef83a94c6 (patch)
tree3a57f2b538e1a664dd5f0512c676fe3ef1f355fb
parent3d231bd0c018c4ac7a78640a51d404332a712d72 (diff)
downloadhdf5-d987620daeb226f3e2c89a48383f52cef83a94c6.zip
hdf5-d987620daeb226f3e2c89a48383f52cef83a94c6.tar.gz
hdf5-d987620daeb226f3e2c89a48383f52cef83a94c6.tar.bz2
Sync fortran src files with develop (#3126)
* Sync fortran src files with develop
-rw-r--r--fortran/src/H5Of.c97
-rw-r--r--fortran/src/H5_f.c65
-rw-r--r--fortran/src/H5_ff.F90153
-rw-r--r--fortran/src/H5f90global.F90110
-rw-r--r--fortran/src/H5f90proto.h8
-rw-r--r--fortran/src/hdf5_fortrandll.def.in10
-rw-r--r--fortran/test/tH5G_1_8.F902
-rw-r--r--fortran/test/tH5I.F902
-rw-r--r--fortran/test/tH5P_F03.F9012
-rw-r--r--fortran/test/tH5T_F03.F9030
-rw-r--r--fortran/test/tf.F908
-rw-r--r--fortran/testpar/async.F90101
-rw-r--r--src/H5Fpublic.h1
13 files changed, 384 insertions, 215 deletions
diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c
index 186a9a2..54e5187 100644
--- a/fortran/src/H5Of.c
+++ b/fortran/src/H5Of.c
@@ -132,50 +132,6 @@ done:
return ret_value;
}
-/****if* H5Of/h5ovisit_c
- * NAME
- * h5ovisit_c
- * PURPOSE
- * Calls H5Ovisit
- * INPUTS
- * object_id - Identifier specifying subject group
- * index_type - Type of index which determines the order
- * order - Order within index
- * idx - Iteration position at which to start
- * op - Callback function passing data regarding the link to the calling application
- * op_data - User-defined pointer to data required by the application for its processing of the link
- * fields - Flags specifying the fields to include in object_info.
- *
- * OUTPUTS
- * idx - Position at which an interrupted iteration may be restarted
- *
- * RETURNS
- * >0 on success, 0< on failure
- * AUTHOR
- * M. Scot Breitenfeld
- * November 19, 2008
- * SOURCE
- */
-int_f
-h5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate2_t op, void *op_data,
- int_f *fields)
-/******/
-{
- int_f ret_value = -1; /* Return value */
- herr_t func_ret_value; /* H5Linterate return value */
-
- /*
- * Call H5Ovisit
- */
-
- func_ret_value = H5Ovisit3((hid_t)*group_id, (H5_index_t)*index_type, (H5_iter_order_t)*order, op,
- op_data, (unsigned)*fields);
-
- ret_value = (int_f)func_ret_value;
-
- return ret_value;
-}
-
/****if* H5Of/h5oopen_by_token_c
* NAME
* h5oopen_by_token_c
@@ -358,59 +314,6 @@ done:
return ret_value;
}
-/****if* H5Of/h5ovisit_by_name_c
- * NAME
- * h5ovisit_by_name_c
- * PURPOSE
- * Calls H5Ovisit_by_name
- * INPUTS
- * object_id - Identifier specifying subject group.
- * index_type - Type of index which determines the order.
- * order - Order within index.
- * idx - Iteration position at which to start.
- * op - Callback function passing data regarding the link to the calling application.
- * op_data - User-defined pointer to data required by the application for its processing of the link.
- * fields - Flags specifying the fields to include in object_info.
- *
- * OUTPUTS
- * idx - Position at which an interrupted iteration may be restarted.
- *
- * RETURNS
- * >0 on success, 0< on failure
- * AUTHOR
- * M. Scot Breitenfeld
- * May 16, 2012
- * SOURCE
- */
-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_iterate2_t op, void *op_data, hid_t_f *lapl_id, int_f *fields)
-/******/
-{
- int_f ret_value = -1; /* Return value */
- herr_t func_ret_value; /* H5Linterate return value */
- char *c_object_name = NULL; /* Buffer to hold C string */
-
- /*
- * Convert FORTRAN name to C name
- */
- if ((c_object_name = HD5f2cstring(object_name, (size_t)*namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Ovisit_by_name
- */
- func_ret_value =
- H5Ovisit_by_name3((hid_t)*loc_id, c_object_name, (H5_index_t)*index_type, (H5_iter_order_t)*order, op,
- op_data, (unsigned)*fields, (hid_t)*lapl_id);
- ret_value = (int_f)func_ret_value;
-
-done:
- if (c_object_name)
- HDfree(c_object_name);
- return ret_value;
-}
-
/****if* H5Of/h5odecr_refcount_c
* NAME
* h5odecr_refcount_c
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index a9f2d96..396acf9 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -428,8 +428,9 @@ h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid
H5ES_status_t *h5es_flags, hid_t_f *h5es_hid_flags, int_f *h5f_flags, 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,
- hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5z_flags,
- int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags)
+ hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5vl_flags,
+ uint64_t *h5vl_int64_flags, int_f *h5z_flags, int_f *h5_generic_flags,
+ haddr_t_f *h5_haddr_generic_flags)
/******/
{
/*
@@ -821,6 +822,66 @@ h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid
h5t_flags[34] = (int_f)H5T_DIR_DESCEND;
/*
+ * H5VL flags
+ */
+
+ /*
+ * Capability flags for VOL connectors
+ */
+
+ h5vl_flags[0] = (int_f)H5VL_VERSION;
+ h5vl_flags[1] = (int_f)H5_VOL_INVALID;
+ h5vl_flags[2] = (int_f)H5_VOL_NATIVE;
+
+ h5vl_int64_flags[0] = H5VL_CAP_FLAG_NONE;
+ h5vl_int64_flags[1] = H5VL_CAP_FLAG_THREADSAFE;
+ h5vl_int64_flags[2] = H5VL_CAP_FLAG_ASYNC;
+ h5vl_int64_flags[3] = H5VL_CAP_FLAG_NATIVE_FILES;
+ h5vl_int64_flags[4] = H5VL_CAP_FLAG_ATTR_BASIC;
+ h5vl_int64_flags[5] = H5VL_CAP_FLAG_ATTR_MORE;
+ h5vl_int64_flags[6] = H5VL_CAP_FLAG_DATASET_BASIC;
+ h5vl_int64_flags[7] = H5VL_CAP_FLAG_DATASET_MORE;
+ h5vl_int64_flags[8] = H5VL_CAP_FLAG_FILE_BASIC;
+ h5vl_int64_flags[9] = H5VL_CAP_FLAG_FILE_MORE;
+ h5vl_int64_flags[10] = H5VL_CAP_FLAG_GROUP_BASIC;
+ h5vl_int64_flags[11] = H5VL_CAP_FLAG_GROUP_MORE;
+ h5vl_int64_flags[12] = H5VL_CAP_FLAG_LINK_BASIC;
+ h5vl_int64_flags[13] = H5VL_CAP_FLAG_LINK_MORE;
+ h5vl_int64_flags[14] = H5VL_CAP_FLAG_MAP_BASIC;
+ h5vl_int64_flags[15] = H5VL_CAP_FLAG_MAP_MORE;
+ h5vl_int64_flags[16] = H5VL_CAP_FLAG_OBJECT_BASIC;
+ h5vl_int64_flags[17] = H5VL_CAP_FLAG_OBJECT_MORE;
+ h5vl_int64_flags[18] = H5VL_CAP_FLAG_REF_BASIC;
+ h5vl_int64_flags[19] = H5VL_CAP_FLAG_REF_MORE;
+ h5vl_int64_flags[20] = H5VL_CAP_FLAG_OBJ_REF;
+ h5vl_int64_flags[21] = H5VL_CAP_FLAG_REG_REF;
+ h5vl_int64_flags[22] = H5VL_CAP_FLAG_ATTR_REF;
+ h5vl_int64_flags[23] = H5VL_CAP_FLAG_STORED_DATATYPES;
+ h5vl_int64_flags[24] = H5VL_CAP_FLAG_CREATION_ORDER;
+ h5vl_int64_flags[25] = H5VL_CAP_FLAG_ITERATE;
+ h5vl_int64_flags[26] = H5VL_CAP_FLAG_STORAGE_SIZE;
+ h5vl_int64_flags[27] = H5VL_CAP_FLAG_BY_IDX;
+ h5vl_int64_flags[28] = H5VL_CAP_FLAG_GET_PLIST;
+ h5vl_int64_flags[29] = H5VL_CAP_FLAG_FLUSH_REFRESH;
+ h5vl_int64_flags[30] = H5VL_CAP_FLAG_EXTERNAL_LINKS;
+ h5vl_int64_flags[31] = H5VL_CAP_FLAG_HARD_LINKS;
+ h5vl_int64_flags[32] = H5VL_CAP_FLAG_SOFT_LINKS;
+ h5vl_int64_flags[33] = H5VL_CAP_FLAG_UD_LINKS;
+ h5vl_int64_flags[34] = H5VL_CAP_FLAG_TRACK_TIMES;
+ h5vl_int64_flags[35] = H5VL_CAP_FLAG_MOUNT;
+ h5vl_int64_flags[36] = H5VL_CAP_FLAG_FILTERS;
+ h5vl_int64_flags[37] = H5VL_CAP_FLAG_FILL_VALUES;
+
+ h5vl_int64_flags[38] = H5VL_OPT_QUERY_SUPPORTED;
+ h5vl_int64_flags[39] = H5VL_OPT_QUERY_READ_DATA;
+ h5vl_int64_flags[40] = H5VL_OPT_QUERY_WRITE_DATA;
+ h5vl_int64_flags[41] = H5VL_OPT_QUERY_QUERY_METADATA;
+ h5vl_int64_flags[42] = H5VL_OPT_QUERY_MODIFY_METADATA;
+ h5vl_int64_flags[43] = H5VL_OPT_QUERY_COLLECTIVE;
+ h5vl_int64_flags[44] = H5VL_OPT_QUERY_NO_ASYNC;
+ h5vl_int64_flags[45] = H5VL_OPT_QUERY_MULTI_OBJ;
+
+ /*
* H5Z flags
*/
h5z_flags[0] = (int_f)H5Z_FILTER_ERROR;
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90
index 651c96d..ecea23d 100644
--- a/fortran/src/H5_ff.F90
+++ b/fortran/src/H5_ff.F90
@@ -51,7 +51,7 @@
MODULE H5LIB
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_INTPTR_T
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_INTPTR_T, C_INT64_T
USE H5GLOBAL
IMPLICIT NONE
@@ -149,6 +149,13 @@ MODULE H5LIB
!
INTEGER, PARAMETER :: H5T_FLAGS_LEN = 35
INTEGER, DIMENSION(1:H5T_FLAGS_LEN) :: H5T_flags
+ !
+ ! H5VL flags declaration
+ !
+ INTEGER, PARAMETER :: H5VL_FLAGS_LEN = 3
+ INTEGER, DIMENSION(1:H5VL_FLAGS_LEN) :: H5VL_flags
+ INTEGER, PARAMETER :: H5VL_INT64_FLAGS_LEN = 46
+ INTEGER(C_INT64_T), DIMENSION(1:H5VL_INT64_FLAGS_LEN) :: H5VL_int64_flags
!
! H5Z flags declaration
@@ -209,11 +216,13 @@ CONTAINS
i_H5S_hid_flags, &
i_H5S_hsize_flags, &
i_H5T_flags, &
+ i_H5VL_flags, &
+ i_H5VL_int64_flags, &
i_H5Z_flags, &
i_H5generic_flags, &
i_H5generic_haddr_flags) &
BIND(C,NAME='h5init_flags_c')
- IMPORT :: HID_T, SIZE_T, HSIZE_T, HADDR_T
+ IMPORT :: HID_T, SIZE_T, HSIZE_T, HADDR_T, C_INT64_T
IMPORT :: H5D_FLAGS_LEN, H5D_SIZE_FLAGS_LEN, &
H5E_FLAGS_LEN, H5E_HID_FLAGS_LEN, &
H5ES_FLAGS_LEN, H5ES_HID_FLAGS_LEN, &
@@ -221,31 +230,34 @@ CONTAINS
H5FD_HID_FLAGS_LEN, H5I_FLAGS_LEN, H5L_FLAGS_LEN, &
H5O_FLAGS_LEN, H5P_FLAGS_LEN, H5P_FLAGS_INT_LEN, &
H5R_FLAGS_LEN, H5S_FLAGS_LEN, H5S_HID_FLAGS_LEN, H5S_HSIZE_FLAGS_LEN, &
- H5T_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN, H5generic_haddr_FLAGS_LEN
+ H5T_FLAGS_LEN, H5VL_FLAGS_LEN, H5VL_INT64_FLAGS_LEN, &
+ H5Z_FLAGS_LEN, H5generic_FLAGS_LEN, H5generic_haddr_FLAGS_LEN
IMPLICIT NONE
- INTEGER , DIMENSION(1:H5D_FLAGS_LEN) :: i_H5D_flags
- INTEGER(SIZE_T) , DIMENSION(1:H5D_SIZE_FLAGS_LEN) :: i_H5D_size_flags
- INTEGER , DIMENSION(1:H5E_FLAGS_LEN) :: i_H5E_flags
- INTEGER(HID_T) , DIMENSION(1:H5E_HID_FLAGS_LEN) :: i_H5E_hid_flags
- INTEGER , DIMENSION(1:H5ES_FLAGS_LEN) :: i_H5ES_flags
- INTEGER(HID_T) , DIMENSION(1:H5ES_HID_FLAGS_LEN) :: i_H5ES_hid_flags
- INTEGER , DIMENSION(1:H5F_FLAGS_LEN) :: i_H5F_flags
- INTEGER , DIMENSION(1:H5G_FLAGS_LEN) :: i_H5G_flags
- INTEGER , DIMENSION(1:H5FD_FLAGS_LEN) :: i_H5FD_flags
- INTEGER(HID_T) , DIMENSION(1:H5FD_HID_FLAGS_LEN) :: i_H5FD_hid_flags
- INTEGER , DIMENSION(1:H5I_FLAGS_LEN) :: i_H5I_flags
- INTEGER , DIMENSION(1:H5L_FLAGS_LEN) :: i_H5L_flags
- INTEGER , DIMENSION(1:H5O_FLAGS_LEN) :: i_H5O_flags
- INTEGER(HID_T) , DIMENSION(1:H5P_FLAGS_LEN) :: i_H5P_flags
- INTEGER , DIMENSION(1:H5P_FLAGS_INT_LEN) :: i_H5P_flags_int
- INTEGER , DIMENSION(1:H5R_FLAGS_LEN) :: i_H5R_flags
- INTEGER , DIMENSION(1:H5S_FLAGS_LEN) :: i_H5S_flags
- INTEGER(HID_T) , DIMENSION(1:H5S_HID_FLAGS_LEN) :: i_H5S_hid_flags
- INTEGER(HSIZE_T), DIMENSION(1:H5S_HSIZE_FLAGS_LEN) :: i_H5S_hsize_flags
- INTEGER , DIMENSION(1:H5T_FLAGS_LEN) :: i_H5T_flags
- INTEGER , DIMENSION(1:H5Z_FLAGS_LEN) :: i_H5Z_flags
- INTEGER , DIMENSION(1:H5generic_FLAGS_LEN) :: i_H5generic_flags
- INTEGER(HADDR_T), DIMENSION(1:H5generic_haddr_FLAGS_LEN) :: i_H5generic_haddr_flags
+ INTEGER , DIMENSION(1:H5D_FLAGS_LEN) :: i_H5D_flags
+ INTEGER(SIZE_T) , DIMENSION(1:H5D_SIZE_FLAGS_LEN) :: i_H5D_size_flags
+ INTEGER , DIMENSION(1:H5E_FLAGS_LEN) :: i_H5E_flags
+ INTEGER(HID_T) , DIMENSION(1:H5E_HID_FLAGS_LEN) :: i_H5E_hid_flags
+ INTEGER , DIMENSION(1:H5ES_FLAGS_LEN) :: i_H5ES_flags
+ INTEGER(HID_T) , DIMENSION(1:H5ES_HID_FLAGS_LEN) :: i_H5ES_hid_flags
+ INTEGER , DIMENSION(1:H5F_FLAGS_LEN) :: i_H5F_flags
+ INTEGER , DIMENSION(1:H5G_FLAGS_LEN) :: i_H5G_flags
+ INTEGER , DIMENSION(1:H5FD_FLAGS_LEN) :: i_H5FD_flags
+ INTEGER(HID_T) , DIMENSION(1:H5FD_HID_FLAGS_LEN) :: i_H5FD_hid_flags
+ INTEGER , DIMENSION(1:H5I_FLAGS_LEN) :: i_H5I_flags
+ INTEGER , DIMENSION(1:H5L_FLAGS_LEN) :: i_H5L_flags
+ INTEGER , DIMENSION(1:H5O_FLAGS_LEN) :: i_H5O_flags
+ INTEGER(HID_T) , DIMENSION(1:H5P_FLAGS_LEN) :: i_H5P_flags
+ INTEGER , DIMENSION(1:H5P_FLAGS_INT_LEN) :: i_H5P_flags_int
+ INTEGER , DIMENSION(1:H5R_FLAGS_LEN) :: i_H5R_flags
+ INTEGER , DIMENSION(1:H5S_FLAGS_LEN) :: i_H5S_flags
+ INTEGER(HID_T) , DIMENSION(1:H5S_HID_FLAGS_LEN) :: i_H5S_hid_flags
+ INTEGER(HSIZE_T) , DIMENSION(1:H5S_HSIZE_FLAGS_LEN) :: i_H5S_hsize_flags
+ INTEGER , DIMENSION(1:H5T_FLAGS_LEN) :: i_H5T_flags
+ INTEGER , DIMENSION(1:H5VL_FLAGS_LEN) :: i_H5VL_flags
+ INTEGER(C_INT64_T), DIMENSION(1:H5VL_INT64_FLAGS_LEN) :: i_H5VL_int64_flags
+ INTEGER , DIMENSION(1:H5Z_FLAGS_LEN) :: i_H5Z_flags
+ INTEGER , DIMENSION(1:H5generic_FLAGS_LEN) :: i_H5generic_flags
+ INTEGER(HADDR_T) , DIMENSION(1:H5generic_haddr_FLAGS_LEN) :: i_H5generic_haddr_flags
END FUNCTION h5init_flags_c
INTEGER FUNCTION h5init1_flags_c( i_H5LIB_flags ) &
@@ -331,6 +343,8 @@ CONTAINS
H5S_hid_flags, &
H5S_hsize_flags, &
H5T_flags, &
+ H5VL_flags, &
+ H5VL_int64_flags, &
H5Z_flags, &
H5generic_flags,&
H5generic_haddr_flags)
@@ -454,28 +468,28 @@ CONTAINS
!
! H5FD flags
!
- H5FD_MPIO_INDEPENDENT_F = H5FD_flags(1)
- H5FD_MPIO_COLLECTIVE_F = H5FD_flags(2)
- H5FD_MEM_NOLIST_F = H5FD_flags(3)
- H5FD_MEM_DEFAULT_F = H5FD_flags(4)
- H5FD_MEM_SUPER_F = H5FD_flags(5)
- H5FD_MEM_BTREE_F = H5FD_flags(6)
- H5FD_MEM_DRAW_F = H5FD_flags(7)
- H5FD_MEM_GHEAP_F = H5FD_flags(8)
- H5FD_MEM_LHEAP_F = H5FD_flags(9)
- H5FD_MEM_OHDR_F = H5FD_flags(10)
- H5FD_MEM_NTYPES_F = H5FD_flags(11)
+ H5FD_MPIO_INDEPENDENT_F = H5FD_flags(1)
+ H5FD_MPIO_COLLECTIVE_F = H5FD_flags(2)
+ H5FD_MEM_NOLIST_F = H5FD_flags(3)
+ H5FD_MEM_DEFAULT_F = H5FD_flags(4)
+ H5FD_MEM_SUPER_F = H5FD_flags(5)
+ H5FD_MEM_BTREE_F = H5FD_flags(6)
+ H5FD_MEM_DRAW_F = H5FD_flags(7)
+ H5FD_MEM_GHEAP_F = H5FD_flags(8)
+ H5FD_MEM_LHEAP_F = H5FD_flags(9)
+ H5FD_MEM_OHDR_F = H5FD_flags(10)
+ H5FD_MEM_NTYPES_F = H5FD_flags(11)
H5FD_SUBFILING_CURR_FAPL_VERSION_F = H5FD_flags(12)
H5FD_SUBFILING_FAPL_MAGIC_F = H5FD_flags(13)
H5FD_SUBFILING_DEFAULT_STRIPE_COUNT_F = H5FD_flags(14)
H5FD_IOC_FAPL_MAGIC_F = H5FD_flags(15)
H5FD_IOC_CURR_FAPL_VERSION_F = H5FD_flags(16)
H5FD_IOC_DEFAULT_THREAD_POOL_SIZE_F = H5FD_flags(17)
- SELECT_IOC_ONE_PER_NODE_F = H5FD_flags(18)
- SELECT_IOC_EVERY_NTH_RANK_F = H5FD_flags(19)
- SELECT_IOC_WITH_CONFIG_F = H5FD_flags(20)
- SELECT_IOC_TOTAL_F = H5FD_flags(21)
- IOC_SELECTION_OPTIONS_F = H5FD_flags(22)
+ SELECT_IOC_ONE_PER_NODE_F = H5FD_flags(18)
+ SELECT_IOC_EVERY_NTH_RANK_F = H5FD_flags(19)
+ SELECT_IOC_WITH_CONFIG_F = H5FD_flags(20)
+ SELECT_IOC_TOTAL_F = H5FD_flags(21)
+ IOC_SELECTION_OPTIONS_F = H5FD_flags(22)
!
! H5FD file driver flags
@@ -649,6 +663,61 @@ CONTAINS
H5T_DIR_ASCEND_F = H5T_flags(34)
H5T_DIR_DESCEND_F = H5T_flags(35)
!
+ ! H5VL flags
+ !
+ H5VL_VERSION_F = H5VL_flags(1)
+ H5_VOL_INVALID_F = H5VL_flags(2)
+ H5_VOL_NATIVE_F = H5VL_flags(3)
+
+ H5VL_CAP_FLAG_NONE_F = H5VL_int64_flags(1)
+ H5VL_CAP_FLAG_THREADSAFE_F = H5VL_int64_flags(2)
+ H5VL_CAP_FLAG_ASYNC_F = H5VL_int64_flags(3)
+ H5VL_CAP_FLAG_NATIVE_FILES_F = H5VL_int64_flags(4)
+ H5VL_CAP_FLAG_ATTR_BASIC_F = H5VL_int64_flags(5)
+ H5VL_CAP_FLAG_ATTR_MORE_F = H5VL_int64_flags(6)
+ H5VL_CAP_FLAG_DATASET_BASIC_F = H5VL_int64_flags(7)
+ H5VL_CAP_FLAG_DATASET_MORE_F = H5VL_int64_flags(8)
+ H5VL_CAP_FLAG_FILE_BASIC_F = H5VL_int64_flags(9)
+ H5VL_CAP_FLAG_FILE_MORE_F = H5VL_int64_flags(10)
+ H5VL_CAP_FLAG_GROUP_BASIC_F = H5VL_int64_flags(11)
+ H5VL_CAP_FLAG_GROUP_MORE_F = H5VL_int64_flags(12)
+ H5VL_CAP_FLAG_LINK_BASIC_F = H5VL_int64_flags(13)
+ H5VL_CAP_FLAG_LINK_MORE_F = H5VL_int64_flags(14)
+ H5VL_CAP_FLAG_MAP_BASIC_F = H5VL_int64_flags(15)
+ H5VL_CAP_FLAG_MAP_MORE_F = H5VL_int64_flags(16)
+ H5VL_CAP_FLAG_OBJECT_BASIC_F = H5VL_int64_flags(17)
+ H5VL_CAP_FLAG_OBJECT_MORE_F = H5VL_int64_flags(18)
+ H5VL_CAP_FLAG_REF_BASIC_F = H5VL_int64_flags(19)
+ H5VL_CAP_FLAG_REF_MORE_F = H5VL_int64_flags(20)
+ H5VL_CAP_FLAG_OBJ_REF_F = H5VL_int64_flags(21)
+ H5VL_CAP_FLAG_REG_REF_F = H5VL_int64_flags(22)
+ H5VL_CAP_FLAG_ATTR_REF_F = H5VL_int64_flags(23)
+ H5VL_CAP_FLAG_STORED_DATATYPES_F = H5VL_int64_flags(24)
+ H5VL_CAP_FLAG_CREATION_ORDER_F = H5VL_int64_flags(25)
+ H5VL_CAP_FLAG_ITERATE_F = H5VL_int64_flags(26)
+ H5VL_CAP_FLAG_STORAGE_SIZE_F = H5VL_int64_flags(27)
+ H5VL_CAP_FLAG_BY_IDX_F = H5VL_int64_flags(28)
+ H5VL_CAP_FLAG_GET_PLIST_F = H5VL_int64_flags(29)
+ H5VL_CAP_FLAG_FLUSH_REFRESH_F = H5VL_int64_flags(30)
+ H5VL_CAP_FLAG_EXTERNAL_LINKS_F = H5VL_int64_flags(31)
+ H5VL_CAP_FLAG_HARD_LINKS_F = H5VL_int64_flags(32)
+ H5VL_CAP_FLAG_SOFT_LINKS_F = H5VL_int64_flags(33)
+ H5VL_CAP_FLAG_UD_LINKS_F = H5VL_int64_flags(34)
+ H5VL_CAP_FLAG_TRACK_TIMES_F = H5VL_int64_flags(35)
+ H5VL_CAP_FLAG_MOUNT_F = H5VL_int64_flags(36)
+ H5VL_CAP_FLAG_FILTERS_F = H5VL_int64_flags(37)
+ H5VL_CAP_FLAG_FILL_VALUES_F = H5VL_int64_flags(38)
+
+ H5VL_OPT_QUERY_SUPPORTED_F = H5VL_int64_flags(39)
+ H5VL_OPT_QUERY_READ_DATA_F = H5VL_int64_flags(40)
+ H5VL_OPT_QUERY_WRITE_DATA_F = H5VL_int64_flags(41)
+ H5VL_OPT_QUERY_QUERY_METADATA_F = H5VL_int64_flags(42)
+ H5VL_OPT_QUERY_MODIFY_METADATA_F = H5VL_int64_flags(43)
+ H5VL_OPT_QUERY_COLLECTIVE_F = H5VL_int64_flags(44)
+ H5VL_OPT_QUERY_NO_ASYNC_F = H5VL_int64_flags(45)
+ H5VL_OPT_QUERY_MULTI_OBJ_F = H5VL_int64_flags(46)
+
+ !
! H5Z flags
!
H5Z_FILTER_ERROR_F = H5Z_flags(1)
diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90
index c37e22d..049bf26 100644
--- a/fortran/src/H5f90global.F90
+++ b/fortran/src/H5f90global.F90
@@ -819,6 +819,116 @@ MODULE H5GLOBAL
INTEGER :: H5T_DIR_DESCEND_F !< H5T_DIR_DESCEND
!> @}
!
+ ! H5VL flags declaration
+ !
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_VERSION_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5_VOL_INVALID_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5_VOL_NATIVE_F
+
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_NONE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_THREADSAFE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_ASYNC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_NATIVE_FILES_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_ATTR_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_ATTR_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_DATASET_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_DATASET_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_FILE_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_FILE_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_GROUP_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_GROUP_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_LINK_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_LINK_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_MAP_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_MAP_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_OBJECT_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_OBJECT_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_REF_BASIC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_REF_MORE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_OBJ_REF_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_REG_REF_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_ATTR_REF_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_STORED_DATATYPES_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_CREATION_ORDER_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_ITERATE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_STORAGE_SIZE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_BY_IDX_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_GET_PLIST_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_FLUSH_REFRESH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_EXTERNAL_LINKS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_HARD_LINKS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_SOFT_LINKS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_UD_LINKS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_TRACK_TIMES_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_MOUNT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_FILTERS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_CAP_FLAG_FILL_VALUES_F
+
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_SUPPORTED_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_READ_DATA_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_WRITE_DATA_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_QUERY_METADATA_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_MODIFY_METADATA_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_COLLECTIVE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_NO_ASYNC_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OPT_QUERY_MULTI_OBJ_F
+ !DEC$endif
+!> \addtogroup FH5VL
+!> @{
+ INTEGER :: H5VL_VERSION_F !< H5VL_VERSION
+ INTEGER :: H5_VOL_INVALID_F !< H5_VOL_INVALID
+ INTEGER :: H5_VOL_NATIVE_F !< H5_VOL_NATIVE
+
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_NONE_F !< H5VL_CAP_FLAG_NONE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_THREADSAFE_F !< H5VL_CAP_FLAG_THREADSAFE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_ASYNC_F !< H5VL_CAP_FLAG_ASYNC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_NATIVE_FILES_F !< H5VL_CAP_FLAG_NATIVE_FILES
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_ATTR_BASIC_F !< H5VL_CAP_FLAG_ATTR_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_ATTR_MORE_F !< H5VL_CAP_FLAG_ATTR_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_DATASET_BASIC_F !< H5VL_CAP_FLAG_DATASET_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_DATASET_MORE_F !< H5VL_CAP_FLAG_DATASET_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_FILE_BASIC_F !< H5VL_CAP_FLAG_FILE_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_FILE_MORE_F !< H5VL_CAP_FLAG_FILE_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_GROUP_BASIC_F !< H5VL_CAP_FLAG_GROUP_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_GROUP_MORE_F !< H5VL_CAP_FLAG_GROUP_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_LINK_BASIC_F !< H5VL_CAP_FLAG_LINK_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_LINK_MORE_F !< H5VL_CAP_FLAG_LINK_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_MAP_BASIC_F !< H5VL_CAP_FLAG_MAP_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_MAP_MORE_F !< H5VL_CAP_FLAG_MAP_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_OBJECT_BASIC_F !< H5VL_CAP_FLAG_OBJECT_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_OBJECT_MORE_F !< H5VL_CAP_FLAG_OBJECT_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_REF_BASIC_F !< H5VL_CAP_FLAG_REF_BASIC
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_REF_MORE_F !< H5VL_CAP_FLAG_REF_MORE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_OBJ_REF_F !< H5VL_CAP_FLAG_OBJ_REF
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_REG_REF_F !< H5VL_CAP_FLAG_REG_REF
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_ATTR_REF_F !< H5VL_CAP_FLAG_ATTR_REF
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_STORED_DATATYPES_F !< H5VL_CAP_FLAG_STORED_DATATYPES
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_CREATION_ORDER_F !< H5VL_CAP_FLAG_CREATION_ORDER
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_ITERATE_F !< H5VL_CAP_FLAG_ITERATE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_STORAGE_SIZE_F !< H5VL_CAP_FLAG_STORAGE_SIZE
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_BY_IDX_F !< H5VL_CAP_FLAG_BY_IDX
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_GET_PLIST_F !< H5VL_CAP_FLAG_GET_PLIST
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_FLUSH_REFRESH_F !< H5VL_CAP_FLAG_FLUSH_REFRESH
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_EXTERNAL_LINKS_F !< H5VL_CAP_FLAG_EXTERNAL_LINKS
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_HARD_LINKS_F !< H5VL_CAP_FLAG_HARD_LINKS
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_SOFT_LINKS_F !< H5VL_CAP_FLAG_SOFT_LINKS
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_UD_LINKS_F !< H5VL_CAP_FLAG_UD_LINKS
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_TRACK_TIMES_F !< H5VL_CAP_FLAG_TRACK_TIMES
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_MOUNT_F !< H5VL_CAP_FLAG_MOUNT
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_FILTERS_F !< H5VL_CAP_FLAG_FILTERS
+ INTEGER(C_INT64_T) :: H5VL_CAP_FLAG_FILL_VALUES_F !< H5VL_CAP_FLAG_FILL_VALUES
+
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_SUPPORTED_F !< H5VL_OPT_QUERY_SUPPORTED
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_READ_DATA_F !< H5VL_OPT_QUERY_READ_DATA
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_WRITE_DATA_F !< H5VL_OPT_QUERY_WRITE_DATA
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_QUERY_METADATA_F !< H5VL_OPT_QUERY_QUERY_METADATA
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_MODIFY_METADATA_F !< H5VL_OPT_QUERY_MODIFY_METADATA
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_COLLECTIVE_F !< H5VL_OPT_QUERY_COLLECTIVE
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_NO_ASYNC_F !< H5VL_OPT_QUERY_NO_ASYNC
+ INTEGER(C_INT64_T) :: H5VL_OPT_QUERY_MULTI_OBJ_F !< H5VL_OPT_QUERY_MULTI_OBJ
+!> @}
+ !
! H5Z flags declaration
!
!DEC$if defined(BUILD_HDF5_DLL)
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 11addfa..5b34dd6 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -344,11 +344,6 @@ H5_FCDLL int_f h5oclose_c(hid_t_f *object_id);
H5_FCDLL int_f h5oopen_by_token_c(hid_t_f *loc_id, H5O_token_t *token, hid_t_f *obj_id);
H5_FCDLL int_f h5olink_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 h5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate2_t op,
- void *op_data, int_f *fields);
-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_iterate2_t op, void *op_data, hid_t_f *lapl_id,
- int_f *fields);
H5_FCDLL int_f h5oget_info_c(hid_t_f *object_id, H5O_info_t_f *object_info, int_f *fields);
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,
@@ -585,7 +580,8 @@ H5_FCDLL int_f h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f
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,
hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, int_f *h5t_flags,
- int_f *h5z_flags, int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags);
+ int_f *h5vl_flags, uint64_t *h5vl_int64_flags, int_f *h5z_flags,
+ int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags);
H5_FCDLL int_f h5init1_flags_c(int_f *h5lib_flags);
H5_FCDLL int_f h5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum);
H5_FCDLL int_f h5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum);
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index 4719633..9e1bb2e 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -107,6 +107,15 @@ H5E_mp_H5EPRINT_F
H5E_mp_H5EGET_MAJOR_F
H5E_mp_H5EGET_MINOR_F
H5E_mp_H5ESET_AUTO_F
+; H5ES
+H5ES_mp_H5ESCREATE_F
+H5ES_mp_H5ESGET_COUNT_F
+H5ES_mp_H5ESGET_OP_COUNTER_F
+H5ES_mp_H5ESWAIT_F
+H5ES_mp_H5ESCANCEL_F
+H5ES_mp_H5ESGET_ERR_STATUS_F
+H5ES_mp_H5ESGET_ERR_COUNT_F
+H5ES_mp_H5ESCLOSE_F
; H5F
H5F_mp_H5FCREATE_F
H5F_mp_H5FCREATE_ASYNC_F
@@ -388,6 +397,7 @@ H5P_mp_H5PGET_VIRTUAL_DSETNAME_F
H5P_mp_H5PGET_DSET_NO_ATTRS_HINT_F
H5P_mp_H5PSET_DSET_NO_ATTRS_HINT_F
H5P_mp_H5PSET_VOL_F
+H5P_mp_H5PGET_VOL_CAP_FLAGS_F
H5P_mp_H5PGET_VOL_ID_F
H5P_mp_H5PSET_FILE_LOCKING_F
H5P_mp_H5PGET_FILE_LOCKING_F
diff --git a/fortran/test/tH5G_1_8.F90 b/fortran/test/tH5G_1_8.F90
index c820d78..9444619 100644
--- a/fortran/test/tH5G_1_8.F90
+++ b/fortran/test/tH5G_1_8.F90
@@ -1220,7 +1220,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
!!$ printf(" %d: Unexpected object type should have been a dataset\n", __LINE__);
!!$ TEST_ERROR
!!$ } end if
-!!$ if(H5F_addr_ne(oinfo1.addr, oinfo2.addr)) {
+!!$ if(H5_addr_ne(oinfo1.addr, oinfo2.addr)) {
!!$ H5_FAILED();
!!$ puts(" Hard link test failed. Link seems not to point to the ");
!!$ puts(" expected file location.");
diff --git a/fortran/test/tH5I.F90 b/fortran/test/tH5I.F90
index 7f9b3ab..a5fedb9 100644
--- a/fortran/test/tH5I.F90
+++ b/fortran/test/tH5I.F90
@@ -245,7 +245,7 @@ CONTAINS
CALL h5sclose_f(dspace_id, error)
CALL check("h5sclose_f",error,total_error)
!
- ! Close the dataype.
+ ! Close the datatype.
!
CALL h5tclose_f(atype_id, error)
CALL check("h5tclose_f",error,total_error)
diff --git a/fortran/test/tH5P_F03.F90 b/fortran/test/tH5P_F03.F90
index 0875b81..f15a471 100644
--- a/fortran/test/tH5P_F03.F90
+++ b/fortran/test/tH5P_F03.F90
@@ -532,6 +532,7 @@ SUBROUTINE external_test_offset(cleanup,total_error)
INTEGER(hid_t) :: dset=-1 ! dataset
INTEGER(hid_t) :: grp=-1 ! group to emit diagnostics
INTEGER(size_t) :: i, j ! miscellaneous counters
+ INTEGER :: k
CHARACTER(LEN=180) :: filename ! file names
INTEGER, DIMENSION(1:25) :: part
INTEGER, DIMENSION(1:100), TARGET :: whole ! raw data buffers
@@ -598,8 +599,9 @@ SUBROUTINE external_test_offset(cleanup,total_error)
CALL h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, error, mem_space_id=space, file_space_id=space)
CALL check("h5dread_f", error, total_error)
- DO i = 1, 100
- IF(whole(i) .NE. i-1)THEN
+ DO k = 1, 100
+ CALL verify("h5dread_f", whole(k), k-1, error)
+ IF(error .NE. 0)THEN
WRITE(*,*) "Incorrect value(s) read."
total_error = total_error + 1
EXIT
@@ -619,8 +621,10 @@ SUBROUTINE external_test_offset(cleanup,total_error)
CALL h5sclose_f(hs_space, error)
CALL check("h5sclose_f", error, total_error)
- DO i = INT(hs_start(1))+1, INT(hs_start(1)+hs_count(1))
- IF(whole(i) .NE. i-1)THEN
+
+ DO k = INT(hs_start(1))+1, INT(hs_start(1)+hs_count(1))
+ CALL verify("h5dread_f", whole(k), k-1, error)
+ IF(error .NE. 0)THEN
WRITE(*,*) "Incorrect value(s) read."
total_error = total_error + 1
EXIT
diff --git a/fortran/test/tH5T_F03.F90 b/fortran/test/tH5T_F03.F90
index 86e49b6..0f56806 100644
--- a/fortran/test/tH5T_F03.F90
+++ b/fortran/test/tH5T_F03.F90
@@ -3598,32 +3598,26 @@ SUBROUTINE multiple_dset_rw(total_error)
CALL check("h5dread_multi_f", error, total_error)
! check the written and read in values
+ error = 0
DO i = 1, rdim
- IF(rbuf_real(i).NE.wbuf_real(i))THEN
- total_error = total_error + 1
- END IF
+ CALL VERIFY("h5dread_multi_f",rbuf_real(i), wbuf_real(i), error)
END DO
+ total_error = total_error + error
DO i = 1, idim
- IF(rbuf_int(i).NE.wbuf_int(i))THEN
- total_error = total_error + 1
- END IF
+ CALL VERIFY("h5dread_multi_f",rbuf_int(i),wbuf_int(i), error)
END DO
+ total_error = total_error + error
DO i = 1, cdim
- IF(rbuf_chr(i).NE.wbuf_chr(i))THEN
- total_error = total_error + 1
- END IF
+ CALL VERIFY("h5dread_multi_f",rbuf_chr(i),wbuf_chr(i), error)
END DO
+ total_error = total_error + error
+ error = 0
DO i = 1, ddim
- IF(rbuf_derived(i)%r.NE.wbuf_derived(i)%r)THEN
- total_error = total_error + 1
- END IF
- IF(rbuf_derived(i)%i.NE.wbuf_derived(i)%i)THEN
- total_error = total_error + 1
- END IF
- IF(rbuf_derived(i)%c.NE.wbuf_derived(i)%c)THEN
- total_error = total_error + 1
- END IF
+ CALL VERIFY("h5dread_multi_f",rbuf_derived(i)%r,wbuf_derived(i)%r,error)
+ CALL VERIFY("h5dread_multi_f",rbuf_derived(i)%i,wbuf_derived(i)%i,error)
+ CALL VERIFY("h5dread_multi_f",rbuf_derived(i)%c,wbuf_derived(i)%c,error)
END DO
+ total_error = total_error + error
DO i = 1, idim
DO j = 1, idim2
DO k = 1, idim3
diff --git a/fortran/test/tf.F90 b/fortran/test/tf.F90
index 73f43bc..501d243 100644
--- a/fortran/test/tf.F90
+++ b/fortran/test/tf.F90
@@ -69,9 +69,11 @@ CONTAINS
CHARACTER(LEN=*), INTENT(IN) :: title_header ! test name
INTEGER, PARAMETER :: width = TAB_SPACE+10
- CHARACTER(LEN=2*width) ::title_centered =" "
+ CHARACTER(LEN=2*width) ::title_centered
INTEGER :: len, i
+ title_centered(:) = " "
+
len=LEN_TRIM(title_header)
title_centered(1:3) ="| |"
title_centered((width-len)/2:(width-len)/2+len) = TRIM(title_header)
@@ -94,8 +96,8 @@ CONTAINS
ENDDO
WRITE(*,'("| |")')
- WRITE(*,'(A)') title_centered
-
+ WRITE(*,'(A)') TRIM(title_centered)
+
WRITE(*,'("| |")', ADVANCE="NO")
DO i = 1, width-5
WRITE(*,'(1X)', ADVANCE="NO")
diff --git a/fortran/testpar/async.F90 b/fortran/testpar/async.F90
index e3a80ad..2235ecf 100644
--- a/fortran/testpar/async.F90
+++ b/fortran/testpar/async.F90
@@ -26,6 +26,10 @@ MODULE test_async_APIs
LOGICAL :: async_enabled = .TRUE.
LOGICAL :: mpi_thread_mult = .TRUE.
+ INTEGER(C_INT), PARAMETER :: logical_true = 1
+ INTEGER(C_INT), PARAMETER :: logical_false = 0
+
+
! Custom group iteration callback data
TYPE, bind(c) :: iter_info
CHARACTER(KIND=C_CHAR), DIMENSION(1:12) :: name ! The name of the object
@@ -174,7 +178,7 @@ CONTAINS
INTEGER(HID_T) :: space_id
INTEGER(HID_T) :: attr_id0, attr_id1, attr_id2
LOGICAL :: exists
- LOGICAL(C_BOOL), TARGET :: exists0 = .FALSE., exists1 = .FALSE., exists2 = .FALSE., exists3 = .FALSE.
+ INTEGER(C_INT), TARGET :: exists0=logical_false, exists1=logical_false, exists2=logical_false, exists3=logical_false
TYPE(C_PTR) :: f_ptr, f_ptr1, f_ptr2
CALL H5EScreate_f(es_id, hdferror)
@@ -194,8 +198,8 @@ CONTAINS
CALL H5Screate_f(H5S_SCALAR_F, space_id, hdferror)
CALL check("H5Screate_f", hdferror, total_error)
- f_ptr1 = C_LOC(app_file)
- f_ptr2 = C_LOC(app_func)
+ f_ptr1 = C_LOC(app_file(1:1))
+ f_ptr2 = C_LOC(app_func(1:1))
CALL h5acreate_async_f(file_id, attr_name, H5T_NATIVE_INTEGER, space_id, attr_id0, es_id, hdferror, &
file=f_ptr1, func=f_ptr2, line=app_line)
CALL check("h5acreate_f",hdferror,total_error)
@@ -300,10 +304,10 @@ CONTAINS
CALL check("H5ESwait_f", hdferror, total_error)
CALL VERIFY("H5ESwait_f", err_occurred, .FALSE., total_error)
- CALL VERIFY("H5Aexists_async_f", LOGICAL(exists0), .TRUE., total_error)
- CALL VERIFY("H5Aexists_async_f", LOGICAL(exists1), .TRUE., total_error)
- CALL VERIFY("H5Aexists_by_name_async_f", LOGICAL(exists2), .TRUE., total_error)
- CALL VERIFY("H5Aexists_by_name_async_f", LOGICAL(exists3), .TRUE., total_error)
+ CALL VERIFY("H5Aexists_async_f", exists0, logical_true, total_error)
+ CALL VERIFY("H5Aexists_async_f", exists1, logical_true, total_error)
+ CALL VERIFY("H5Aexists_by_name_async_f", exists2, logical_true, total_error)
+ CALL VERIFY("H5Aexists_by_name_async_f", exists3, logical_true, total_error)
CALL VERIFY("H5Aread_async_f", attr_rdata0, attr_data0, total_error)
CALL VERIFY("H5Aread_async_f", attr_rdata1, attr_data1, total_error)
@@ -784,7 +788,7 @@ CONTAINS
INTEGER(hid_t) :: sid = -1 ! Dataspace ID
CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group"
CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME2 = "corder_grp00"
- LOGICAL(C_BOOL), TARGET :: exists1, exists2
+ INTEGER(C_INT), TARGET :: exists1, exists2
LOGICAL :: exists
TYPE(C_PTR) :: f_ptr
@@ -911,12 +915,12 @@ CONTAINS
CALL H5Fopen_async_f(filename, H5F_ACC_RDWR_F, file_id, es_id, hdferror, access_prp = fapl_id )
CALL check("h5fopen_async_f",hdferror,total_error)
- exists1 = .FALSE.
+ exists1 = logical_false
f_ptr = C_LOC(exists1)
CALL H5Lexists_async_f(file_id, "hard_zero", f_ptr, es_id, hdferror)
CALL check("H5Lexists_async_f",hdferror,total_error)
- exists2 = .FALSE.
+ exists2 = logical_false
f_ptr = C_LOC(exists2)
CALL H5Lexists_async_f(file_id, "hard_two", f_ptr, es_id, hdferror)
CALL check("H5Lexists_async_f",hdferror,total_error)
@@ -931,8 +935,8 @@ CONTAINS
CALL check("H5ESwait_f", hdferror, total_error)
CALL VERIFY("H5ESwait_f", err_occurred, .FALSE., total_error)
- CALL VERIFY("H5Lexists_async_f", LOGICAL(exists1), .TRUE., total_error)
- CALL VERIFY("H5Lexists_async_f", LOGICAL(exists2), .TRUE., total_error)
+ CALL VERIFY("H5Lexists_async_f", exists1, logical_true, total_error)
+ CALL VERIFY("H5Lexists_async_f", exists2, logical_true, total_error)
CALL h5fopen_f(filename, H5F_ACC_RDWR_F, file_id, hdferror, access_prp = fapl_id )
CALL check("h5fopen_f",hdferror, total_error)
@@ -1255,7 +1259,11 @@ PROGRAM async_test
LOGICAL :: registered
INTEGER :: sum
INTEGER :: nerrors = 0
+ INTEGER :: len, idx
+ CHARACTER(LEN=255) :: vol_connector_string, vol_connector_name
+ INTEGER(C_INT64_T) :: cap_flags
+ INTEGER(HID_T) :: plist_id
LOGICAL :: cleanup
INTEGER :: ret_total_error = 0
@@ -1297,47 +1305,60 @@ PROGRAM async_test
!
CALL h5open_f(hdferror)
-
! CHECK ASYNC VOLS AVAILABILITY
!
- ! (1) Check if ASYNC VOL is available
- CALL H5VLis_connector_registered_by_name_f("async", registered, hdferror)
- CALL check("H5VLis_connector_registered_by_name_f", hdferror, total_error)
- IF(.NOT.registered)THEN
+ IF(mpi_rank==0) WRITE(*,'(A)', ADVANCE="NO") "VOL CONNECTOR TESTED: "
+
+ CALL get_environment_variable("HDF5_VOL_CONNECTOR", VALUE=vol_connector_string, LENGTH=len)
+ IF(len .EQ. 0)THEN
+
+ ! No VOL connector set; using native VOL connector
+ async_enabled = .FALSE.
+ IF(mpi_rank==0) WRITE(*,'(A,/)') "NATIVE"
+
+ ELSE
+
+ idx = INDEX(vol_connector_string, " ")
+ vol_connector_name = vol_connector_string(1:idx-1)
- ! (2) check if the DAOS VOL is available
- CALL H5VLis_connector_registered_by_name_f("daos", registered, hdferror)
+ ! (1) Check if the VOL is available
+ CALL H5VLis_connector_registered_by_name_f(TRIM(vol_connector_name), registered, hdferror)
CALL check("H5VLis_connector_registered_by_name_f", hdferror, total_error)
IF(.NOT.registered)THEN
- ! No async compatible VOL found
+ ! No VOL found registered
async_enabled = .FALSE.
+ IF(mpi_rank==0) WRITE(*,'(A,/)') "NATIVE"
ELSE
- CALL H5Vlregister_connector_by_name_f("daos", vol_id, hdferror)
- CALL check("H5Vlregister_connector_by_name_f", hdferror, total_error)
+ ! (2) Check if the VOL is async compatible
+ CALL h5pcreate_f(H5P_FILE_ACCESS_F, plist_id, hdferror)
+ CALL check("h5pcreate_f", hdferror, total_error)
+ CALL h5pget_vol_cap_flags_f(plist_id, cap_flags, hdferror)
+ CALL check("h5pget_vol_cap_flags_f", hdferror, total_error)
+ CALL h5pclose_f(plist_id, hdferror)
+ CALL check("h5pcreate_f", hdferror, total_error)
+ IF(H5VL_CAP_FLAG_ASYNC_F.EQ.1_C_INT64_T) async_enabled = .TRUE.
+ IF(async_enabled .EQV. .FALSE.)THEN
+ ! No async compatible VOL found
+ IF(mpi_rank==0) WRITE(*,'(A,/)') "NATIVE"
+ ELSE
+ IF(mpi_rank==0) WRITE(*,'(A,/)') TRIM(vol_connector_name)
+ CALL H5Vlregister_connector_by_name_f(TRIM(vol_connector_name), vol_id, hdferror)
+ CALL check("H5Vlregister_connector_by_name_f", hdferror, total_error)
+ ENDIF
ENDIF
- ELSE
- CALL H5Vlregister_connector_by_name_f("async", vol_id, hdferror)
- CALL check("H5Vlregister_connector_by_name_f", hdferror, total_error)
- ENDIF
-
- IF ( (async_enabled .EQV. .TRUE.) .AND. (mpi_thread_mult .EQV. .FALSE.) ) THEN
- total_error = -1 ! Skip test
- IF(mpi_rank==0) CALL write_test_status(total_error, &
- "No MPI_Init_thread support for MPI_THREAD_MULTIPLE", total_error)
- CALL MPI_Barrier(MPI_COMM_WORLD, mpierror)
- CALL MPI_Finalize(mpierror)
- STOP
+ IF ( (async_enabled .EQV. .TRUE.) .AND. (mpi_thread_mult .EQV. .FALSE.) ) THEN
+ total_error = -1 ! Skip test
+ IF(mpi_rank==0) CALL write_test_status(total_error, &
+ "No MPI_Init_thread support for MPI_THREAD_MULTIPLE", total_error)
+ CALL MPI_Barrier(MPI_COMM_WORLD, mpierror)
+ CALL MPI_Finalize(mpierror)
+ STOP
+ ENDIF
ENDIF
-! IF(total_error.LT.0)THEN
-! IF(mpi_rank==0) CALL write_test_status(total_error, &
-! 'Testing async APIs', total_error)
-! STOP
-! ENDIF
-
! H5ES API TESTING
ret_total_error = 0
CALL H5ES_tests(cleanup, ret_total_error)
diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h
index 97bf22a..191f5cd 100644
--- a/src/H5Fpublic.h
+++ b/src/H5Fpublic.h
@@ -1915,7 +1915,6 @@ H5_DLL herr_t H5Fset_latest_format(hid_t file_id, hbool_t latest_format);
* \details H5Fis_hdf5() determines whether a file is in the HDF5 format.
*
* \todo In which version was this function deprecated?
- * \todo In which version was this function introduced?
*
*/
H5_DLL htri_t H5Fis_hdf5(const char *file_name);