diff options
Diffstat (limited to 'fortran')
-rw-r--r-- | fortran/src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | fortran/src/H5Pff.F90 | 5 | ||||
-rw-r--r-- | fortran/src/H5VLff.F90 | 356 | ||||
-rw-r--r-- | fortran/src/H5_f.c | 87 | ||||
-rw-r--r-- | fortran/src/H5_ff.F90 | 107 | ||||
-rw-r--r-- | fortran/src/H5f90global.F90 | 176 | ||||
-rw-r--r-- | fortran/src/H5f90proto.h | 2 | ||||
-rw-r--r-- | fortran/src/HDF5.F90 | 1 | ||||
-rw-r--r-- | fortran/src/Makefile.am | 3 | ||||
-rw-r--r-- | fortran/src/hdf5_fortrandll.def.in | 9 | ||||
-rw-r--r-- | fortran/test/Makefile.am | 24 |
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_ |