summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2023-06-05 16:59:51 (GMT)
committerGitHub <noreply@github.com>2023-06-05 16:59:51 (GMT)
commit66cee727684ee3bca63d3ccd57bc4ae7a184bb31 (patch)
tree5e2887b82cdc69c79322541199a42a4a3b816855
parent71684199d5aafa9faaa38d9159c500be715c3f54 (diff)
downloadhdf5-66cee727684ee3bca63d3ccd57bc4ae7a184bb31.zip
hdf5-66cee727684ee3bca63d3ccd57bc4ae7a184bb31.tar.gz
hdf5-66cee727684ee3bca63d3ccd57bc4ae7a184bb31.tar.bz2
Print out the VOL connector being used in the ASYNC test (#3016)
* Print out the VOL connector being used in the ASYNC test * Add h5pget_vol_cap_flags_f with test
-rw-r--r--fortran/src/H5Pff.F9074
-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.h3
-rw-r--r--fortran/src/hdf5_fortrandll.def.in1
-rw-r--r--fortran/test/tf.F904
-rw-r--r--fortran/testpar/async.F9073
-rw-r--r--release_docs/RELEASE.txt3
9 files changed, 389 insertions, 97 deletions
diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90
index 5ccc367..c6229f7 100644
--- a/fortran/src/H5Pff.F90
+++ b/fortran/src/H5Pff.F90
@@ -6047,15 +6047,15 @@ END SUBROUTINE h5pget_virtual_dsetname_f
LOGICAL(C_BOOL) :: c_minimize
INTERFACE
- INTEGER FUNCTION h5pget_dset_no_attrs_hint_c(dcpl_id, minimize) BIND(C, NAME='H5Pget_dset_no_attrs_hint')
- IMPORT :: HID_T, C_BOOL
+ INTEGER(C_INT) FUNCTION H5Pget_dset_no_attrs_hint_c(dcpl_id, minimize) BIND(C, NAME='H5Pget_dset_no_attrs_hint')
+ IMPORT :: C_INT, HID_T, C_BOOL
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN), VALUE :: dcpl_id
LOGICAL(C_BOOL), INTENT(OUT) :: minimize
- END FUNCTION h5pget_dset_no_attrs_hint_c
+ END FUNCTION H5Pget_dset_no_attrs_hint_c
END INTERFACE
- hdferr = INT(h5pget_dset_no_attrs_hint_c(dcpl_id, c_minimize))
+ hdferr = INT(H5Pget_dset_no_attrs_hint_c(dcpl_id, c_minimize))
! Transfer value of C C_BOOL type to Fortran LOGICAL
minimize = c_minimize
@@ -6119,19 +6119,19 @@ END SUBROUTINE h5pget_virtual_dsetname_f
TYPE(C_PTR) :: new_vol_info_default
INTERFACE
- INTEGER FUNCTION h5pset_vol(plist_id, new_vol_id, new_vol_info) BIND(C, NAME='H5Pset_vol')
- IMPORT :: HID_T, C_PTR
+ INTEGER(C_INT) FUNCTION H5Pset_vol(plist_id, new_vol_id, new_vol_info) BIND(C, NAME='H5Pset_vol')
+ IMPORT :: C_INT, HID_T, C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN), VALUE :: plist_id
INTEGER(HID_T), INTENT(IN), VALUE :: new_vol_id
TYPE(C_PTR) , INTENT(IN), VALUE :: new_vol_info
- END FUNCTION h5pset_vol
+ END FUNCTION H5Pset_vol
END INTERFACE
new_vol_info_default = C_NULL_PTR
IF(PRESENT(new_vol_info)) new_vol_info_default=new_vol_info
- hdferr = INT(h5pset_vol(plist_id, new_vol_id, new_vol_info_default))
+ hdferr = INT(H5Pset_vol(plist_id, new_vol_id, new_vol_info_default))
END SUBROUTINE h5pset_vol_f
@@ -6148,26 +6148,56 @@ END SUBROUTINE h5pget_virtual_dsetname_f
!!
SUBROUTINE h5pget_vol_id_f(plist_id, vol_id, hdferr)
IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: plist_id
- INTEGER(HID_T) , INTENT(OUT) :: vol_id
- INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HID_T), INTENT(OUT) :: vol_id
+ INTEGER , INTENT(OUT) :: hdferr
INTERFACE
- INTEGER FUNCTION h5pget_vol_id(plist_id, vol_id) BIND(C, NAME='H5Pget_vol_id')
- IMPORT :: HID_T, C_PTR
+ INTEGER(C_INT) FUNCTION h5pget_vol_id(plist_id, vol_id) BIND(C, NAME='H5Pget_vol_id')
+ IMPORT :: C_INT, HID_T, C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN), VALUE :: plist_id
INTEGER(HID_T), INTENT(OUT) :: vol_id
END FUNCTION h5pget_vol_id
END INTERFACE
- hdferr = INT(h5pget_vol_id(plist_id, vol_id))
+ hdferr = INT(H5Pget_vol_id(plist_id, vol_id))
END SUBROUTINE h5pget_vol_id_f
!>
!! \ingroup FH5P
!!
+!! \brief Query the capability flags for the VOL connector that will be used with this file access property list (FAPL).
+!
+!! \param plist_id File access property list identifier
+!! \param cap_flags Flags that indicate the VOL connector capabilities
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pget_vol_cap_flags()
+!!
+ SUBROUTINE h5pget_vol_cap_flags_f(plist_id, cap_flags, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: plist_id
+ INTEGER(C_INT64_T), INTENT(OUT) :: cap_flags
+ INTEGER , INTENT(OUT) :: hdferr
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Pget_vol_cap_flags(plist_id, cap_flags) BIND(C, NAME='H5Pget_vol_cap_flags')
+ IMPORT :: C_INT, HID_T, C_PTR, C_INT64_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN), VALUE :: plist_id
+ INTEGER(C_INT64_T), INTENT(OUT) :: cap_flags
+ END FUNCTION H5Pget_vol_cap_flags
+ END INTERFACE
+
+ hdferr = INT(H5Pget_vol_cap_flags(plist_id, cap_flags))
+
+ END SUBROUTINE h5pget_vol_cap_flags_f
+
+!>
+!! \ingroup FH5P
+!!
!! \brief Gets the file locking properties. File locking is mainly used to help enforce SWMR semantics.
!!
!! \param fapl_id Target fileTarget file access property list identifier.
@@ -6187,17 +6217,17 @@ END SUBROUTINE h5pget_virtual_dsetname_f
LOGICAL(C_BOOL) :: c_ignore_flag
INTERFACE
- INTEGER FUNCTION h5pget_file_locking(fapl_id, use_file_locking, ignore_disabled_locks) &
+ INTEGER(C_INT) FUNCTION H5Pget_file_locking(fapl_id, use_file_locking, ignore_disabled_locks) &
BIND(C, NAME='H5Pget_file_locking')
- IMPORT :: HID_T, C_BOOL
+ IMPORT :: C_INT, HID_T, C_BOOL
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN), VALUE :: fapl_id
LOGICAL(C_BOOL), INTENT(OUT) :: use_file_locking
LOGICAL(C_BOOL), INTENT(OUT) :: ignore_disabled_locks
- END FUNCTION h5pget_file_locking
+ END FUNCTION H5Pget_file_locking
END INTERFACE
- hdferr = INT(h5pget_file_locking(fapl_id, c_use_flag, c_ignore_flag))
+ hdferr = INT(H5Pget_file_locking(fapl_id, c_use_flag, c_ignore_flag))
! Transfer value of C C_BOOL type to Fortran LOGICAL
use_file_locking = c_use_flag
@@ -6227,21 +6257,21 @@ END SUBROUTINE h5pget_virtual_dsetname_f
LOGICAL(C_BOOL) :: c_ignore_flag
INTERFACE
- INTEGER FUNCTION h5pset_file_locking(fapl_id, use_file_locking, ignore_disabled_locks) &
+ INTEGER(C_INT) FUNCTION H5Pset_file_locking(fapl_id, use_file_locking, ignore_disabled_locks) &
BIND(C, NAME='H5Pset_file_locking')
- IMPORT :: HID_T, C_BOOL
+ IMPORT :: C_INT, HID_T, C_BOOL
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN), VALUE :: fapl_id
LOGICAL(C_BOOL), INTENT(IN), VALUE :: use_file_locking
LOGICAL(C_BOOL), INTENT(IN), VALUE :: ignore_disabled_locks
- END FUNCTION h5pset_file_locking
+ END FUNCTION H5Pset_file_locking
END INTERFACE
! Transfer value of Fortran LOGICAL to C C_BOOL type
c_use_flag = use_file_locking
c_ignore_flag = ignore_disabled_locks
- hdferr = INT(h5pset_file_locking(fapl_id, c_use_flag, c_ignore_flag))
+ hdferr = INT(H5Pset_file_locking(fapl_id, c_use_flag, c_ignore_flag))
END SUBROUTINE h5pset_file_locking_f
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 9085ae5..5b34dd6 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -580,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 80de79b..9e1bb2e 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -397,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/tf.F90 b/fortran/test/tf.F90
index 61451af..501d243 100644
--- a/fortran/test/tf.F90
+++ b/fortran/test/tf.F90
@@ -96,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 5d2ce38..2235ecf 100644
--- a/fortran/testpar/async.F90
+++ b/fortran/testpar/async.F90
@@ -1259,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
@@ -1301,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/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 4f27dc5..7153c4e 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -176,6 +176,9 @@ New Features
Fortran Library:
----------------
+ - Added h5pget_vol_cap_flags_f and related Fortran VOL
+ capability definitions.
+
- Fortran async APIs H5A, H5D, H5ES, H5G, H5F, H5L and H5O were added.
- Added Fortran APIs: