summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/CMakeLists.txt1
-rw-r--r--fortran/src/H5Pff.F905
-rw-r--r--fortran/src/H5VLff.F90356
-rw-r--r--fortran/src/H5_f.c87
-rw-r--r--fortran/src/H5_ff.F90107
-rw-r--r--fortran/src/H5f90global.F90176
-rw-r--r--fortran/src/H5f90proto.h2
-rw-r--r--fortran/src/HDF5.F901
-rw-r--r--fortran/src/Makefile.am3
-rw-r--r--fortran/src/hdf5_fortrandll.def.in9
-rw-r--r--fortran/test/Makefile.am24
11 files changed, 744 insertions, 27 deletions
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index f71e820..83ee82c 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -217,6 +217,7 @@ set (f90_F_BASE_SOURCES
${HDF5_F90_SRC_SOURCE_DIR}/H5Rff.F90
${HDF5_F90_SRC_SOURCE_DIR}/H5Sff.F90
${HDF5_F90_SRC_SOURCE_DIR}/H5Tff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5VLff.F90
${HDF5_F90_SRC_SOURCE_DIR}/H5Zff.F90
)
diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90
index 13a2953..31dfbdc 100644
--- a/fortran/src/H5Pff.F90
+++ b/fortran/src/H5Pff.F90
@@ -7929,7 +7929,7 @@ SUBROUTINE h5pget_virtual_filename_f(dcpl_id, index, name, hdferr, name_len)
INTERFACE
INTEGER(SIZE_T) FUNCTION h5pget_virtual_filename(dcpl_id, index, name, size) BIND(C, NAME='H5Pget_virtual_filename')
- IMPORT :: HID_T, SIZE_T, C_PTR, C_CHAR
+ IMPORT :: HID_T, SIZE_T, C_PTR
IMPLICIT NONE
INTEGER(HID_T) , INTENT(IN), VALUE :: dcpl_id
INTEGER(SIZE_T), INTENT(IN), VALUE :: index
@@ -7997,7 +7997,7 @@ SUBROUTINE h5pget_virtual_dsetname_f(dcpl_id, index, name, hdferr, name_len)
INTERFACE
INTEGER(SIZE_T) FUNCTION h5pget_virtual_dsetname(dcpl_id, index, name, size) BIND(C, NAME='H5Pget_virtual_dsetname')
- IMPORT :: HID_T, SIZE_T, C_PTR, C_CHAR
+ IMPORT :: HID_T, SIZE_T, C_PTR
IMPLICIT NONE
INTEGER(HID_T) , INTENT(IN), VALUE :: dcpl_id
INTEGER(SIZE_T), INTENT(IN), VALUE :: index
@@ -8018,7 +8018,6 @@ SUBROUTINE h5pget_virtual_dsetname_f(dcpl_id, index, name, hdferr, name_len)
ELSE
CALL HD5c2fstring(name,c_name,LEN(name))
ENDIF
-
ENDIF
END SUBROUTINE h5pget_virtual_dsetname_f
diff --git a/fortran/src/H5VLff.F90 b/fortran/src/H5VLff.F90
new file mode 100644
index 0000000..5185c22
--- /dev/null
+++ b/fortran/src/H5VLff.F90
@@ -0,0 +1,356 @@
+!****h* ROBODoc/H5VL
+!
+! NAME
+! MODULE H5VL
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5VL functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the COPYING file, which can be found at the root of the source code *
+! distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+! If you do not have access to either file, you may request a copy from *
+! help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! _____ __ __ _____ ____ _____ _______ _ _ _______
+! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __|
+! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | ****
+! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | ****
+! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | ****
+! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_|
+!
+! If you add a new H5VL function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5VL
+
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_FUNPTR, C_CHAR, C_INT64_T, C_INT
+ USE H5GLOBAL
+ USE H5fortkit
+
+ IMPLICIT NONE
+
+CONTAINS
+
+! H5VLregister_connector
+
+!
+!****s* H5VL/H5VLregister_connector_by_name_f
+!
+! NAME
+! H5VLregister_connector_by_name_f
+!
+! PURPOSE
+! Registers a new VOL connector as a member of the virtual object
+! layer class by name.
+!
+! INPUTS
+! cls -
+! OUTPUTS
+! vol_id -
+! hdferr - Returns 0 if successful and -1 if fails
+! SOURCE
+
+ SUBROUTINE H5VLregister_connector_by_name_f(name, vol_id, hdferr, vipl_id)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(OUT) :: vol_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: vipl_id
+!*****
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+ INTEGER(HID_T) :: vipl_id_default
+
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5VLregister_connector_by_name(name, vipl_id) BIND(C,NAME='H5VLregister_connector_by_name')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(IN), VALUE :: vipl_id
+ END FUNCTION H5VLregister_connector_by_name
+ END INTERFACE
+
+ vipl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(vipl_id)) vipl_id_default = vipl_id
+
+ c_name = TRIM(name)//C_NULL_CHAR
+ vol_id = H5VLregister_connector_by_name(c_name, vipl_id_default)
+
+ hdferr = 0
+ IF(vol_id.LT.0) hdferr = H5I_INVALID_HID_F
+
+ END SUBROUTINE H5VLregister_connector_by_name_f
+
+ SUBROUTINE H5VLregister_connector_by_value_f(connector_value, vol_id, hdferr, vipl_id)
+ IMPLICIT NONE
+ INTEGER, INTENT(IN) :: connector_value
+ INTEGER(HID_T), INTENT(OUT) :: vol_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: vipl_id
+!*****
+ INTEGER(HID_T) :: vipl_id_default
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5VLregister_connector_by_value(connector_value, vipl_id) &
+ BIND(C,NAME='H5VLregister_connector_by_value')
+ IMPORT :: HID_T
+ IMPORT :: C_INT
+ INTEGER(C_INT), VALUE :: connector_value
+ INTEGER(HID_T), INTENT(IN), VALUE :: vipl_id
+ END FUNCTION H5VLregister_connector_by_value
+ END INTERFACE
+
+
+ vipl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(vipl_id)) vipl_id_default = vipl_id
+
+ vol_id = H5VLregister_connector_by_value(INT(connector_value,C_INT), vipl_id_default)
+
+ hdferr = 0
+ IF(vol_id.LT.0) hdferr = H5I_INVALID_HID_F
+
+ END SUBROUTINE H5VLregister_connector_by_value_f
+
+!
+!****s* H5VL/H5VLis_connector_registered_f
+!
+! NAME
+! H5VLis_connector_registered_f
+!
+! PURPOSE
+! Tests whether a VOL class has been registered or not.
+!
+! INPUTS
+! cls -
+! OUTPUTS
+! vol_id -
+! hdferr - Returns 0 if successful and -1 if fails
+! SOURCE
+
+ SUBROUTINE H5VLis_connector_registered_f(name, registered, hdferr)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ LOGICAL, INTENT(OUT) :: registered
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+ INTEGER(C_INT) :: registered_c
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5VLis_connector_registered(name) BIND(C,NAME='H5VLis_connector_registered')
+ IMPORT :: C_CHAR
+ IMPORT :: C_INT
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ END FUNCTION H5VLis_connector_registered
+ END INTERFACE
+
+ c_name = TRIM(name)//C_NULL_CHAR
+ registered_c = H5VLis_connector_registered(c_name)
+
+ hdferr = 0
+ registered = .FALSE.
+ IF(registered_c .GT. 0) registered = .TRUE.
+ IF(registered_c .LT. 0) hdferr = INT(registered_c)
+
+ END SUBROUTINE H5VLis_connector_registered_f
+
+!
+!****s* H5VL/H5VLis_connector_registered_f
+!
+! NAME
+! H5VLis_connector_registered_f
+!
+! PURPOSE
+! Retrieves the ID for a registered VOL connector.
+!
+! INPUTS
+! cls -
+! OUTPUTS
+! vol_id -
+! hdferr - Returns 0 if successful and -1 if fails
+! SOURCE
+
+ SUBROUTINE H5VLget_connector_id_f(name, vol_id, hdferr)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(OUT) :: vol_id
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5VLget_connector_id(name) BIND(C,NAME='H5VLget_connector_id')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ END FUNCTION H5VLget_connector_id
+ END INTERFACE
+
+ c_name = TRIM(name)//C_NULL_CHAR
+ vol_id = H5VLget_connector_id(c_name)
+
+ IF(vol_id.LT.0)THEN
+ hdferr = -1
+ vol_id = H5I_INVALID_HID_F
+ ENDIF
+
+ END SUBROUTINE H5VLget_connector_id_f
+
+ SUBROUTINE H5VLget_connector_name_f(obj_id, name, hdferr, name_len)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(SIZE_T), OPTIONAL :: name_len
+!*****
+ CHARACTER(LEN=1,KIND=C_CHAR), DIMENSION(1:LEN(name)+1), TARGET :: c_name
+ INTEGER(SIZE_T) :: l
+ TYPE(C_PTR) :: f_ptr
+
+ INTERFACE
+ INTEGER(SIZE_T) FUNCTION H5VLget_connector_name(obj_id, name, size) BIND(C,NAME='H5VLget_connector_name')
+ IMPORT :: HID_T, SIZE_T, C_PTR, C_CHAR
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN), VALUE :: obj_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name
+ ! TYPE(C_PTR), value :: name
+ INTEGER(SIZE_T), INTENT(IN), VALUE :: size
+ END FUNCTION H5VLget_connector_name
+ END INTERFACE
+
+ hdferr = 0
+ IF(PRESENT(name_len))THEN
+ name_len = INT(H5VLget_connector_name(obj_id, c_name, 0_SIZE_T), SIZE_T)
+ IF(name_len.LT.0) hdferr = H5I_INVALID_HID_F
+ ELSE
+ ! f_ptr = C_LOC(c_name(1)(1:1))
+ PRINT*,LEN(name)+1
+ l = INT(LEN(name)+1,SIZE_T)
+ IF(INT(H5VLget_connector_name(obj_id, c_name, l), SIZE_T).LT.0)THEN
+ hdferr = H5I_INVALID_HID_F
+ ELSE
+ PRINT*,c_name
+ CALL HD5c2fstring(name,c_name,LEN(name))
+ PRINT*,"name", name
+ ENDIF
+ ENDIF
+
+ END SUBROUTINE H5VLget_connector_name_f
+
+!
+!
+!****s* H5VL/H5VLclose_f
+!
+! NAME
+! H5VLclose_f
+!
+! PURPOSE
+! Closes a VOL connector ID.
+!
+! INPUTS
+! plugin_id - A valid identifier of the connectory to unregister.
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! SOURCE
+
+ SUBROUTINE H5VLclose_f(vol_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: vol_id
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION H5VLclose(vol_id) BIND(C, NAME='H5VLclose')
+ IMPORT :: HID_T
+ INTEGER(HID_T), INTENT(IN), VALUE :: vol_id
+ END FUNCTION H5VLclose
+ END INTERFACE
+
+ hdferr = INT(H5VLclose(vol_id))
+
+ END SUBROUTINE H5VLclose_f
+
+!
+!****s* H5VL/H5VLunregister_connector_f
+!
+! NAME
+! H5VLunregister_connector_f
+!
+! PURPOSE
+! Removes a VOL connector ID from the library.
+!
+! INPUTS
+! plugin_id - A valid identifier of the connector to unregister.
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! SOURCE
+
+ SUBROUTINE H5VLunregister_connector_f(plugin_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plugin_id
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION H5VLunregister_connector(plugin_id) BIND(C, NAME='H5VLunregister_connector')
+ IMPORT :: HID_T
+ INTEGER(HID_T), INTENT(IN), VALUE :: plugin_id
+ END FUNCTION H5VLunregister_connector
+ END INTERFACE
+
+ hdferr = INT(H5VLunregister_connector(plugin_id))
+
+ END SUBROUTINE H5VLunregister_connector_f
+
+ !---------------------------------------------------------------------------
+ ! Function: H5VLcmp_connector_cls_f
+ !
+ ! Purpose: Compares two connector classes (based on their value field)
+ !
+ ! Return: Success: Non-negative, *cmp set to a value like strcmp
+ !
+ ! Failure: Negative, *cmp unset
+ !
+ !---------------------------------------------------------------------------
+
+ SUBROUTINE H5VLcmp_connector_cls_f(cmp, connector_id1, connector_id2, hdferr)
+ IMPLICIT NONE
+ INTEGER, INTENT(OUT), TARGET :: cmp
+ INTEGER(HID_T), INTENT(IN) :: connector_id1
+ INTEGER(HID_T), INTENT(IN) :: connector_id2
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+
+ INTEGER(C_INT) :: cmp_c
+
+ INTERFACE
+ INTEGER FUNCTION H5VLcmp_connector_cls(cmp, connector_id1, connector_id2) BIND(C, NAME='H5VLcmp_connector_cls')
+ IMPORT :: HID_T
+ IMPORT :: C_INT
+ INTEGER(C_INT) :: cmp
+ INTEGER(HID_T), INTENT(IN), VALUE :: connector_id1
+ INTEGER(HID_T), INTENT(IN), VALUE :: connector_id2
+ END FUNCTION H5VLcmp_connector_cls
+ END INTERFACE
+
+ hdferr = INT(H5VLcmp_connector_cls(cmp_c, connector_id1, connector_id2))
+ cmp = INT(cmp_c)
+
+ END SUBROUTINE H5VLcmp_connector_cls_f
+
+END MODULE H5VL
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 69ba8b3..fdf4b9e 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -335,6 +335,7 @@ h5close_types_c( hid_t_f * types, int_f *lentypes,
* h5s_hid_flags - H5S interface flags of type hid_t
* h5s_hsize_flags - H5S interface flags of type hsize_t
* h5t_flags - H5T interface flags
+ * h5vl_flags - H5VL interface flags
* h5z_flags - H5Z interface flags
* OUTPUTS
* None
@@ -366,7 +367,7 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_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,
+ int_f *h5t_flags, int_f *h5vl_flags, int_f *h5z_flags, int_f *h5_generic_flags,
haddr_t_f *h5_haddr_generic_flags)
/******/
{
@@ -498,6 +499,16 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
h5i_flags[4] = (int_f)H5I_DATASET;
h5i_flags[5] = (int_f)H5I_ATTR;
h5i_flags[6] = (int_f)H5I_BADID;
+ h5i_flags[7] = (int_f)H5I_UNINIT;
+ h5i_flags[8] = (int_f)H5I_VFL;
+ h5i_flags[9] = (int_f)H5I_VOL;
+ h5i_flags[10] = (int_f)H5I_GENPROP_CLS;
+ h5i_flags[11] = (int_f)H5I_GENPROP_LST;
+ h5i_flags[12] = (int_f)H5I_ERROR_CLASS;
+ h5i_flags[13] = (int_f)H5I_ERROR_MSG;
+ h5i_flags[14] = (int_f)H5I_ERROR_STACK;
+ h5i_flags[15] = (int_f)H5I_NTYPES;
+ h5i_flags[16] = (int_f)H5I_INVALID_HID;
/*
* H5L flags
*/
@@ -671,7 +682,75 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
h5t_flags[32] = (int_f)H5T_ARRAY;
h5t_flags[33] = (int_f)H5T_DIR_ASCEND;
h5t_flags[34] = (int_f)H5T_DIR_DESCEND;
-
+/*
+ * H5VL flags
+ */
+ h5vl_flags[0] = (int_f)H5VL_ATTR_GET_ACPL;
+ h5vl_flags[1] = (int_f)H5VL_ATTR_GET_INFO;
+ h5vl_flags[2] = (int_f)H5VL_ATTR_GET_NAME;
+ h5vl_flags[3] = (int_f)H5VL_ATTR_GET_SPACE;
+ h5vl_flags[4] = (int_f)H5VL_ATTR_GET_STORAGE_SIZE;
+ h5vl_flags[5] = (int_f)H5VL_ATTR_GET_TYPE;
+ h5vl_flags[6] = (int_f)H5VL_ATTR_DELETE;
+ h5vl_flags[7] = (int_f)H5VL_ATTR_EXISTS;
+ h5vl_flags[8] = (int_f)H5VL_ATTR_ITER;
+ h5vl_flags[8] = (int_f)H5VL_ATTR_RENAME;
+ h5vl_flags[9] = (int_f)H5VL_DATASET_GET_DAPL;
+ h5vl_flags[11] = (int_f)H5VL_DATASET_GET_DCPL;
+ h5vl_flags[12] = (int_f)H5VL_DATASET_GET_OFFSET;
+ h5vl_flags[13] = (int_f)H5VL_DATASET_GET_SPACE;
+ h5vl_flags[14] = (int_f)H5VL_DATASET_GET_SPACE_STATUS;
+ h5vl_flags[15] = (int_f)H5VL_DATASET_GET_STORAGE_SIZE;
+ h5vl_flags[16] = (int_f)H5VL_DATASET_GET_TYPE;
+ h5vl_flags[17] = (int_f)H5VL_DATASET_SET_EXTENT;
+ h5vl_flags[18] = (int_f)H5VL_DATASET_FLUSH;
+ h5vl_flags[19] = (int_f)H5VL_DATASET_REFRESH;
+ h5vl_flags[20] = (int_f)H5VL_DATATYPE_GET_BINARY;
+ h5vl_flags[21] = (int_f)H5VL_DATATYPE_GET_TCPL;
+ h5vl_flags[22] = (int_f)H5VL_DATATYPE_FLUSH;
+ h5vl_flags[23] = (int_f)H5VL_DATATYPE_REFRESH;
+ h5vl_flags[24] = (int_f)H5VL_FILE_GET_FAPL;
+ h5vl_flags[25] = (int_f)H5VL_FILE_GET_FCPL;
+ h5vl_flags[26] = (int_f)H5VL_FILE_GET_INTENT;
+ h5vl_flags[27] = (int_f)H5VL_FILE_GET_NAME;
+ h5vl_flags[28] = (int_f)H5VL_FILE_GET_OBJ_COUNT;
+ h5vl_flags[29] = (int_f)H5VL_FILE_GET_OBJ_IDS;
+ h5vl_flags[30] = (int_f)H5VL_FILE_FLUSH;
+ h5vl_flags[31] = (int_f)H5VL_FILE_REOPEN;
+ h5vl_flags[32] = (int_f)H5VL_FILE_MOUNT;
+ h5vl_flags[33] = (int_f)H5VL_FILE_UNMOUNT;
+ h5vl_flags[34] = (int_f)H5VL_FILE_IS_ACCESSIBLE;
+ h5vl_flags[35] = (int_f)H5VL_GROUP_GET_GCPL;
+ h5vl_flags[36] = (int_f)H5VL_GROUP_GET_INFO;
+ h5vl_flags[37] = (int_f)H5VL_GROUP_FLUSH;
+ h5vl_flags[38] = (int_f)H5VL_GROUP_REFRESH;
+ h5vl_flags[39] = (int_f)H5VL_LINK_CREATE_HARD;
+ h5vl_flags[40] = (int_f)H5VL_LINK_CREATE_SOFT;
+ h5vl_flags[41] = (int_f)H5VL_LINK_CREATE_UD;
+ h5vl_flags[42] = (int_f)H5VL_LINK_GET_INFO;
+ h5vl_flags[43] = (int_f)H5VL_LINK_GET_NAME;
+ h5vl_flags[44] = (int_f)H5VL_LINK_GET_VAL;
+ h5vl_flags[45] = (int_f)H5VL_LINK_DELETE;
+ h5vl_flags[46] = (int_f)H5VL_LINK_EXISTS;
+ h5vl_flags[47] = (int_f)H5VL_LINK_ITER;
+ h5vl_flags[48] = (int_f)H5VL_REF_GET_NAME;
+ h5vl_flags[49] = (int_f)H5VL_REF_GET_REGION;
+ h5vl_flags[50] = (int_f)H5VL_REF_GET_TYPE;
+ h5vl_flags[51] = (int_f)H5VL_ID_GET_NAME;
+ h5vl_flags[52] = (int_f)H5VL_OBJECT_CHANGE_REF_COUNT;
+ h5vl_flags[53] = (int_f)H5VL_OBJECT_EXISTS;
+ h5vl_flags[54] = (int_f)H5VL_OBJECT_VISIT;
+ h5vl_flags[55] = (int_f)H5VL_REF_CREATE;
+ h5vl_flags[56] = (int_f)H5VL_OBJECT_FLUSH;
+ h5vl_flags[57] = (int_f)H5VL_OBJECT_REFRESH;
+ h5vl_flags[58] = (int_f)H5VL_REQUEST_WAITANY;
+ h5vl_flags[59] = (int_f)H5VL_REQUEST_WAITSOME;
+ h5vl_flags[60] = (int_f)H5VL_REQUEST_WAITALL;
+ h5vl_flags[61] = (int_f)H5VL_OBJECT_BY_SELF;
+ h5vl_flags[62] = (int_f)H5VL_OBJECT_BY_NAME;
+ h5vl_flags[63] = (int_f)H5VL_OBJECT_BY_IDX;
+ h5vl_flags[64] = (int_f)H5VL_OBJECT_BY_ADDR;
+ h5vl_flags[65] = (int_f)H5VL_OBJECT_BY_REF;
/*
* H5Z flags
*/
@@ -695,10 +774,6 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
h5z_flags[17] = (int_f)H5Z_SO_FLOAT_ESCALE;
h5z_flags[18] = (int_f)H5Z_SO_INT;
h5z_flags[19] = (int_f)H5Z_SO_INT_MINBITS_DEFAULT;
-/*
- * H5A flags
- */
-
/*
* H5 Generic flags introduced in version 1.8
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90
index 84529e4..0d82f42 100644
--- a/fortran/src/H5_ff.F90
+++ b/fortran/src/H5_ff.F90
@@ -88,7 +88,7 @@ MODULE H5LIB
!
! H5I flags declaration
!
- INTEGER, PARAMETER :: H5I_FLAGS_LEN = 7
+ INTEGER, PARAMETER :: H5I_FLAGS_LEN = 17
INTEGER, DIMENSION(1:H5I_FLAGS_LEN) :: H5I_flags
!
! H5L flags declaration
@@ -130,6 +130,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 = 66
+ INTEGER, DIMENSION(1:H5VL_FLAGS_LEN) :: H5VL_flags
+
+ !
! H5Z flags declaration
!
INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 20
@@ -204,6 +211,7 @@ CONTAINS
i_H5S_hid_flags, &
i_H5S_hsize_flags, &
i_H5T_flags, &
+ i_H5VL_flags, &
i_H5Z_flags, &
i_H5generic_flags, &
i_H5generic_haddr_flags) &
@@ -215,7 +223,7 @@ 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, 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
@@ -235,6 +243,7 @@ CONTAINS
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 , 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
@@ -318,6 +327,7 @@ CONTAINS
H5S_hid_flags, &
H5S_hsize_flags, &
H5T_flags, &
+ H5VL_flags, &
H5Z_flags, &
H5generic_flags,&
H5generic_haddr_flags)
@@ -443,13 +453,23 @@ CONTAINS
!
! H5I flags declaration
!
- H5I_FILE_F = H5I_flags(1)
- H5I_GROUP_F = H5I_flags(2)
- H5I_DATATYPE_F = H5I_flags(3)
- H5I_DATASPACE_F = H5I_flags(4)
- H5I_DATASET_F = H5I_flags(5)
- H5I_ATTR_F = H5I_flags(6)
- H5I_BADID_F = H5I_flags(7)
+ H5I_FILE_F = H5I_flags(1)
+ H5I_GROUP_F = H5I_flags(2)
+ H5I_DATATYPE_F = H5I_flags(3)
+ H5I_DATASPACE_F = H5I_flags(4)
+ H5I_DATASET_F = H5I_flags(5)
+ H5I_ATTR_F = H5I_flags(6)
+ H5I_BADID_F = H5I_flags(7)
+ H5I_UNINIT_F = H5I_flags(8)
+ H5I_VFL_F = H5I_flags(9)
+ H5I_VOL_F = H5I_flags(10)
+ H5I_GENPROP_CLS_F = H5I_flags(11)
+ H5I_GENPROP_LST_F = H5I_flags(12)
+ H5I_ERROR_CLASS_F = H5I_flags(13)
+ H5I_ERROR_MSG_F = H5I_flags(14)
+ H5I_ERROR_STACK_F = H5I_flags(15)
+ H5I_NTYPES_F = H5I_flags(16)
+ H5I_INVALID_HID_F = H5I_flags(17)
!
! H5L flags
!
@@ -590,6 +610,75 @@ CONTAINS
H5T_DIR_ASCEND_F = H5T_flags(34)
H5T_DIR_DESCEND_F = H5T_flags(35)
!
+ ! H5VL flags declaration
+ !
+ H5VL_ATTR_GET_ACPL_F = H5VL_flags(1)
+ H5VL_ATTR_GET_INFO_F = H5VL_flags(2)
+ H5VL_ATTR_GET_NAME_F = H5VL_flags(3)
+ H5VL_ATTR_GET_SPACE_F = H5VL_flags(4)
+ H5VL_ATTR_GET_STORAGE_SIZE_F = H5VL_flags(5)
+ H5VL_ATTR_GET_TYPE_F = H5VL_flags(6)
+ H5VL_ATTR_DELETE_F = H5VL_flags(7)
+ H5VL_ATTR_EXISTS_F = H5VL_flags(8)
+ H5VL_ATTR_ITER_F = H5VL_flags(9)
+ H5VL_ATTR_RENAME_F = H5VL_flags(10)
+ H5VL_DATASET_GET_DAPL_F = H5VL_flags(11)
+ H5VL_DATASET_GET_DCPL_F = H5VL_flags(12)
+ H5VL_DATASET_GET_OFFSET_F = H5VL_flags(13)
+ H5VL_DATASET_GET_SPACE_F = H5VL_flags(14)
+ H5VL_DATASET_GET_SPACE_STATUS_F = H5VL_flags(15)
+ H5VL_DATASET_GET_STORAGE_SIZE_F = H5VL_flags(16)
+ H5VL_DATASET_GET_TYPE_F = H5VL_flags(17)
+ H5VL_DATASET_SET_EXTENT_F = H5VL_flags(18)
+ H5VL_DATASET_FLUSH_F = H5VL_flags(19)
+ H5VL_DATASET_REFRESH_F = H5VL_flags(20)
+ H5VL_DATATYPE_GET_BINARY_F = H5VL_flags(21)
+ H5VL_DATATYPE_GET_TCPL_F = H5VL_flags(22)
+ H5VL_DATATYPE_FLUSH_F = H5VL_flags(23)
+ H5VL_DATATYPE_REFRESH_F = H5VL_flags(24)
+ H5VL_FILE_GET_FAPL_F = H5VL_flags(25)
+ H5VL_FILE_GET_FCPL_F = H5VL_flags(26)
+ H5VL_FILE_GET_INTENT_F = H5VL_flags(27)
+ H5VL_FILE_GET_NAME_F = H5VL_flags(28)
+ H5VL_FILE_GET_OBJ_COUNT_F = H5VL_flags(29)
+ H5VL_FILE_GET_OBJ_IDS_F = H5VL_flags(30)
+ H5VL_FILE_FLUSH_F = H5VL_flags(31)
+ H5VL_FILE_REOPEN_F = H5VL_flags(32)
+ H5VL_FILE_MOUNT_F = H5VL_flags(33)
+ H5VL_FILE_UNMOUNT_F = H5VL_flags(34)
+ H5VL_FILE_IS_ACCESSIBLE_F = H5VL_flags(35)
+ H5VL_GROUP_GET_GCPL_F = H5VL_flags(36)
+ H5VL_GROUP_GET_INFO_F = H5VL_flags(37)
+ H5VL_GROUP_FLUSH_F = H5VL_flags(38)
+ H5VL_GROUP_REFRESH_F = H5VL_flags(39)
+ H5VL_LINK_CREATE_HARD_F = H5VL_flags(40)
+ H5VL_LINK_CREATE_SOFT_F = H5VL_flags(41)
+ H5VL_LINK_CREATE_UD_F = H5VL_flags(42)
+ H5VL_LINK_GET_INFO_F = H5VL_flags(43)
+ H5VL_LINK_GET_NAME_F = H5VL_flags(44)
+ H5VL_LINK_GET_VAL_F = H5VL_flags(45)
+ H5VL_LINK_DELETE_F = H5VL_flags(46)
+ H5VL_LINK_EXISTS_F = H5VL_flags(47)
+ H5VL_LINK_ITER_F = H5VL_flags(48)
+ H5VL_REF_GET_NAME_F = H5VL_flags(49)
+ H5VL_REF_GET_REGION_F = H5VL_flags(50)
+ H5VL_REF_GET_TYPE_F = H5VL_flags(51)
+ H5VL_ID_GET_NAME_F = H5VL_flags(52)
+ H5VL_OBJECT_CHANGE_REF_COUNT_F = H5VL_flags(53)
+ H5VL_OBJECT_EXISTS_F = H5VL_flags(54)
+ H5VL_OBJECT_VISIT_F = H5VL_flags(55)
+ H5VL_REF_CREATE_F = H5VL_flags(56)
+ H5VL_OBJECT_FLUSH_F = H5VL_flags(57)
+ H5VL_OBJECT_REFRESH_F = H5VL_flags(58)
+ H5VL_REQUEST_WAITANY_F = H5VL_flags(59)
+ H5VL_REQUEST_WAITSOME_F = H5VL_flags(60)
+ H5VL_REQUEST_WAITALL_F = H5VL_flags(61)
+ H5VL_OBJECT_BY_SELF_F = H5VL_flags(62)
+ H5VL_OBJECT_BY_NAME_F = H5VL_flags(63)
+ H5VL_OBJECT_BY_IDX_F = H5VL_flags(64)
+ H5VL_OBJECT_BY_ADDR_F = H5VL_flags(65)
+ H5VL_OBJECT_BY_REF_F = H5VL_flags(66)
+ !
! H5Z flags
!
H5Z_FILTER_ERROR_F = H5Z_flags(1)
diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90
index b705cc1..0a8a153 100644
--- a/fortran/src/H5f90global.F90
+++ b/fortran/src/H5f90global.F90
@@ -435,15 +435,36 @@ MODULE H5GLOBAL
!DEC$ATTRIBUTES DLLEXPORT :: H5I_DATASET_F
!DEC$ATTRIBUTES DLLEXPORT :: H5I_ATTR_F
!DEC$ATTRIBUTES DLLEXPORT :: H5I_BADID_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_UNINIT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_VFL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_VOL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_GENPROP_CLS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_GENPROP_LST_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_ERROR_CLASS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_ERROR_MSG_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_ERROR_STACK_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_NTYPES_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5I_INVALID_HID_F
!DEC$endif
- INTEGER :: H5I_FILE_F
- INTEGER :: H5I_GROUP_F
- INTEGER :: H5I_DATATYPE_F
- INTEGER :: H5I_DATASPACE_F
- INTEGER :: H5I_DATASET_F
- INTEGER :: H5I_ATTR_F
- INTEGER :: H5I_BADID_F
+ INTEGER :: H5I_FILE_F
+ INTEGER :: H5I_GROUP_F
+ INTEGER :: H5I_DATATYPE_F
+ INTEGER :: H5I_DATASPACE_F
+ INTEGER :: H5I_DATASET_F
+ INTEGER :: H5I_ATTR_F
+ INTEGER :: H5I_BADID_F
+ INTEGER :: H5I_UNINIT_F
+ INTEGER :: H5I_VFL_F
+ INTEGER :: H5I_VOL_F
+ INTEGER :: H5I_GENPROP_CLS_F
+ INTEGER :: H5I_GENPROP_LST_F
+ INTEGER :: H5I_ERROR_CLASS_F
+ INTEGER :: H5I_ERROR_MSG_F
+ INTEGER :: H5I_ERROR_STACK_F
+ INTEGER :: H5I_NTYPES_F
+ INTEGER :: H5I_INVALID_HID_F
+
!
! H5L flags declaration
!
@@ -719,6 +740,147 @@ MODULE H5GLOBAL
INTEGER :: H5T_DIR_ASCEND_F
INTEGER :: H5T_DIR_DESCEND_F
!
+ ! H5VL flags declaration
+ !
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_ACPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_INFO_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_NAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_SPACE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_STORAGE_SIZE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_TYPE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_DELETE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_EXISTS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_ITER_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_RENAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_DAPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_DCPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_OFFSET_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_SPACE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_SPACE_STATUS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_STORAGE_SIZE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_TYPE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_SET_EXTENT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_FLUSH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_REFRESH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_GET_BINARY_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_GET_TCPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_FLUSH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_REFRESH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_FAPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_FCPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_INTENT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_NAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_OBJ_COUNT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_OBJ_IDS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_FLUSH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_REOPEN_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_MOUNT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_UNMOUNT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_IS_ACCESSIBLE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_CACHE_VOL_CONN_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_GET_GCPL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_GET_INFO_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_FLUSH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_REFRESH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_HARD_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_SOFT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_UD_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_INFO_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_NAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_VAL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_DELETE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_EXISTS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_ITER_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_NAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_REGION_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_TYPE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ID_GET_NAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_CHANGE_REF_COUNT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_EXISTS_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_VISIT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_CREATE_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_FLUSH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_REFRESH_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITANY_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITSOME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITALL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_SELF_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_NAME_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_IDX_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_ADDR_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_REF_F
+ !DEC$endif
+
+ INTEGER :: H5VL_ATTR_GET_ACPL_F
+ INTEGER :: H5VL_ATTR_GET_INFO_F
+ INTEGER :: H5VL_ATTR_GET_NAME_F
+ INTEGER :: H5VL_ATTR_GET_SPACE_F
+ INTEGER :: H5VL_ATTR_GET_STORAGE_SIZE_F
+ INTEGER :: H5VL_ATTR_GET_TYPE_F
+ INTEGER :: H5VL_ATTR_DELETE_F
+ INTEGER :: H5VL_ATTR_EXISTS_F
+ INTEGER :: H5VL_ATTR_ITER_F
+ INTEGER :: H5VL_ATTR_RENAME_F
+ INTEGER :: H5VL_DATASET_GET_DAPL_F
+ INTEGER :: H5VL_DATASET_GET_DCPL_F
+ INTEGER :: H5VL_DATASET_GET_OFFSET_F
+ INTEGER :: H5VL_DATASET_GET_SPACE_F
+ INTEGER :: H5VL_DATASET_GET_SPACE_STATUS_F
+ INTEGER :: H5VL_DATASET_GET_STORAGE_SIZE_F
+ INTEGER :: H5VL_DATASET_GET_TYPE_F
+ INTEGER :: H5VL_DATASET_SET_EXTENT_F
+ INTEGER :: H5VL_DATASET_FLUSH_F
+ INTEGER :: H5VL_DATASET_REFRESH_F
+ INTEGER :: H5VL_DATATYPE_GET_BINARY_F
+ INTEGER :: H5VL_DATATYPE_GET_TCPL_F
+ INTEGER :: H5VL_DATATYPE_FLUSH_F
+ INTEGER :: H5VL_DATATYPE_REFRESH_F
+ INTEGER :: H5VL_FILE_GET_FAPL_F
+ INTEGER :: H5VL_FILE_GET_FCPL_F
+ INTEGER :: H5VL_FILE_GET_INTENT_F
+ INTEGER :: H5VL_FILE_GET_NAME_F
+ INTEGER :: H5VL_FILE_GET_OBJ_COUNT_F
+ INTEGER :: H5VL_FILE_GET_OBJ_IDS_F
+ INTEGER :: H5VL_FILE_FLUSH_F
+ INTEGER :: H5VL_FILE_REOPEN_F
+ INTEGER :: H5VL_FILE_MOUNT_F
+ INTEGER :: H5VL_FILE_UNMOUNT_F
+ INTEGER :: H5VL_FILE_IS_ACCESSIBLE_F
+ INTEGER :: H5VL_FILE_CACHE_VOL_CONN_F
+ INTEGER :: H5VL_GROUP_GET_GCPL_F
+ INTEGER :: H5VL_GROUP_GET_INFO_F
+ INTEGER :: H5VL_GROUP_FLUSH_F
+ INTEGER :: H5VL_GROUP_REFRESH_F
+ INTEGER :: H5VL_LINK_CREATE_HARD_F
+ INTEGER :: H5VL_LINK_CREATE_SOFT_F
+ INTEGER :: H5VL_LINK_CREATE_UD_F
+ INTEGER :: H5VL_LINK_GET_INFO_F
+ INTEGER :: H5VL_LINK_GET_NAME_F
+ INTEGER :: H5VL_LINK_GET_VAL_F
+ INTEGER :: H5VL_LINK_DELETE_F
+ INTEGER :: H5VL_LINK_EXISTS_F
+ INTEGER :: H5VL_LINK_ITER_F
+ INTEGER :: H5VL_REF_GET_NAME_F
+ INTEGER :: H5VL_REF_GET_REGION_F
+ INTEGER :: H5VL_REF_GET_TYPE_F
+ INTEGER :: H5VL_ID_GET_NAME_F
+ INTEGER :: H5VL_OBJECT_CHANGE_REF_COUNT_F
+ INTEGER :: H5VL_OBJECT_EXISTS_F
+ INTEGER :: H5VL_OBJECT_VISIT_F
+ INTEGER :: H5VL_REF_CREATE_F
+ INTEGER :: H5VL_OBJECT_FLUSH_F
+ INTEGER :: H5VL_OBJECT_REFRESH_F
+ INTEGER :: H5VL_REQUEST_WAITANY_F
+ INTEGER :: H5VL_REQUEST_WAITSOME_F
+ INTEGER :: H5VL_REQUEST_WAITALL_F
+ INTEGER :: H5VL_OBJECT_BY_SELF_F
+ INTEGER :: H5VL_OBJECT_BY_NAME_F
+ INTEGER :: H5VL_OBJECT_BY_IDX_F
+ INTEGER :: H5VL_OBJECT_BY_ADDR_F
+ INTEGER :: H5VL_OBJECT_BY_REF_F
+
+ !
! H5Z flags declaration
!
!DEC$if defined(BUILD_HDF5_DLL)
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index b357715..7945857 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -526,7 +526,7 @@ H5_FCDLL int_f h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_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,
+ int_f *h5t_flags, int_f *h5vl_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);
diff --git a/fortran/src/HDF5.F90 b/fortran/src/HDF5.F90
index 0370224..fe38b7d 100644
--- a/fortran/src/HDF5.F90
+++ b/fortran/src/HDF5.F90
@@ -38,6 +38,7 @@ MODULE HDF5
USE H5O
USE H5P
USE H5R
+ USE H5VL
USE H5Z
USE H5_gen
USE H5LIB
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index 666f6cb..4009439 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -44,7 +44,7 @@ endif
libhdf5_fortran_la_SOURCES=H5f90global.F90 \
H5fortran_types.F90 H5_ff.F90 H5Aff.F90 H5Dff.F90 H5Eff.F90 \
H5Fff.F90 H5Gff.F90 H5Iff.F90 H5Lff.F90 H5Off.F90 H5Pff.F90 H5Rff.F90 H5Sff.F90 \
- H5Tff.F90 H5Zff.F90 H5_gen.F90 H5fortkit.F90 \
+ H5Tff.F90 H5VLff.F90 H5Zff.F90 H5_gen.F90 H5fortkit.F90 \
H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c HDF5.F90
@@ -155,6 +155,7 @@ H5Pff.lo: $(srcdir)/H5Pff.F90 H5f90global.lo H5fortkit.lo
H5Rff.lo: $(srcdir)/H5Rff.F90 H5f90global.lo
H5Sff.lo: $(srcdir)/H5Sff.F90 H5f90global.lo
H5Tff.lo: $(srcdir)/H5Tff.F90 H5f90global.lo
+H5VLff.lo: $(srcdir)/H5VLff.F90 H5f90global.lo
H5Zff.lo: $(srcdir)/H5Zff.F90 H5f90global.lo
H5_gen.lo: H5_gen.F90 H5f90global.lo H5Aff.lo H5Dff.lo H5Pff.lo
HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.lo H5_ff.lo H5Aff.lo \
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index 3a0ca81..390c2b7 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -452,6 +452,15 @@ H5T_mp_H5TGET_NATIVE_TYPE_F
H5T_mp_H5TCONVERT_F
H5T_mp_H5TENUM_INSERT_F90
H5T_mp_H5TENUM_INSERT_F03
+; H5VL
+H5VL_mp_H5VLREGISTER_CONNECTOR_BY_NAME_F
+H5VL_mp_H5VLREGISTER_CONNECTOR_BY_VALUE_F
+H5VL_mp_H5VLIS_CONNECTOR_REGISTERED_F
+H5VL_mp_H5VLGET_CONNECTOR_ID_F
+H5VL_mp_H5VLGET_CONNECTOR_NAME_F
+H5VL_mp_H5VLCLOSE_F
+H5VL_mp_H5VLUNREGISTER_CONNECTOR_F
+H5VL_mp_H5VLCMP_CONNECTOR_CLS_F
; H5Z
H5Z_mp_H5ZUNREGISTER_F
H5Z_mp_H5ZFILTER_AVAIL_F
diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am
index 8613cf9..ef6cd7e 100644
--- a/fortran/test/Makefile.am
+++ b/fortran/test/Makefile.am
@@ -30,14 +30,35 @@ noinst_LTLIBRARIES=libh5test_fortran.la
# want to build a shared C library and a static Fortran library. If so,
# pass the -static flag to the library linker.
if FORTRAN_SHARED_CONDITIONAL
+ TEST_SCRIPT = test_vol_connector.sh
+ SCRIPT_DEPEND = vol_connector$(EXEEXT)
else
AM_LDFLAGS+=-static
endif
+check_SCRIPTS = $(TEST_SCRIPT)
+
# Our main targets, the tests themselves
TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03
check_PROGRAMS=$(TEST_PROG)
+if FORTRAN_SHARED_CONDITIONAL
+ check_PROGRAMS+= vol_connector
+endif
+
+if FORTRAN_SHARED_CONDITIONAL
+ # The libh5test library provides common support code for the tests.
+ # The filter_plugin* libraries are for use in filter_plugin.c.
+ # Build them as shared libraries if that option was enabled in configure.
+ noinst_LTLIBRARIES += libnull_vol_connector.la
+
+ # VOL plugin test libraries
+ #
+ # null_vol_connector is used for testing basic VOL plugin functionality.
+ libnull_vol_connector_la_SOURCES=null_vol_connector.c
+ libnull_vol_connector_la_LDFLAGS=$(AM_LDFLAGS) -avoid-version -module -shared -export-dynamic -rpath /nowhere
+endif
+
libh5test_fortran_la_SOURCES = tf_gen.F90 tf.F90 t.c
@@ -50,6 +71,7 @@ fortranlib_test_1_8_SOURCES = tH5O.F90 tH5A_1_8.F90 tH5G_1_8.F90 tH5MISC_1_8.F90
fortranlib_test_F03_SOURCES = tH5E_F03.F90 tH5F_F03.F90 tH5L_F03.F90 \
tH5O_F03.F90 tH5P_F03.F90 tH5T_F03.F90 tHDF5_F03.F90 fortranlib_test_F03.F90
+vol_connector_SOURCES=vol_connector.F90
fflush1_SOURCES=fflush1.F90
fflush2_SOURCES=fflush2.F90
@@ -95,6 +117,8 @@ H5_test_buildiface_SOURCES = H5_test_buildiface.F90
H5_test_buildiface_LDADD =
+DISTCLEANFILES=test_vol_connector.sh # TODO:CHECK IF WORKS MSB
+
# fflush2 depends on files created by fflush1
fflush2.chkexe_: fflush1.chkexe_