diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2023-09-07 22:25:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-07 22:25:07 (GMT) |
commit | 08e115b7d8f95551be8bede824847997d95d0cf1 (patch) | |
tree | a377c6607419278eaafc8cf3043608f93afe1ad7 /fortran/src/H5_ff.F90 | |
parent | 8253ab9ebf6a082dc07eb931f27b169d6a45d577 (diff) | |
download | hdf5-08e115b7d8f95551be8bede824847997d95d0cf1.zip hdf5-08e115b7d8f95551be8bede824847997d95d0cf1.tar.gz hdf5-08e115b7d8f95551be8bede824847997d95d0cf1.tar.bz2 |
Added new Fortran API wrappers (#3511)
* Added new wrappers for
h5get_free_list_sizes_f
H5Sselect_intersect_block_f
H5Sselect_shape_same_f
h5pget_no_selection_io_cause_f
h5pget_mpio_no_collective_cause_f
H5Lvisit_by_name_f
H5Lvisit_f
H5Fget_info_f
h5dwrite_chunk_f
h5dread_chunk_f
* added h5pget_file_space_page_size_f, h5pset_file_space_page_size_f, h5pget_file_space_strategy_f, h5pset_file_space_strategy_f, h5info tests
* added fortran tests
* Update tH5F.F90
Diffstat (limited to 'fortran/src/H5_ff.F90')
-rw-r--r-- | fortran/src/H5_ff.F90 | 129 |
1 files changed, 101 insertions, 28 deletions
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90 index 42e7058..7bd2e26 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.F90 @@ -58,7 +58,7 @@ MODULE H5LIB ! ! H5F flags declaration ! - INTEGER, PARAMETER :: H5F_FLAGS_LEN = 25 + INTEGER, PARAMETER :: H5F_FLAGS_LEN = 30 INTEGER, DIMENSION(1:H5F_FLAGS_LEN) :: H5F_flags ! ! H5generic flags declaration @@ -76,7 +76,7 @@ MODULE H5LIB ! ! H5D flags declaration ! - INTEGER, PARAMETER :: H5D_FLAGS_LEN = 32 + INTEGER, PARAMETER :: H5D_FLAGS_LEN = 57 INTEGER, DIMENSION(1:H5D_FLAGS_LEN) :: H5D_flags INTEGER, PARAMETER :: H5D_SIZE_FLAGS_LEN = 2 INTEGER(SIZE_T), DIMENSION(1:H5D_SIZE_FLAGS_LEN) :: H5D_size_flags @@ -168,7 +168,7 @@ MODULE H5LIB INTEGER, DIMENSION(1:H5LIB_FLAGS_LEN) :: H5LIB_flags PUBLIC :: h5open_f, h5close_f, h5get_libversion_f, h5dont_atexit_f, h5kind_to_type, h5offsetof, h5gmtime - PUBLIC :: h5garbage_collect_f, h5check_version_f + PUBLIC :: h5garbage_collect_f, h5check_version_f, h5get_free_list_sizes_f CONTAINS !> @@ -350,31 +350,36 @@ CONTAINS ! ! H5F flags ! - H5F_ACC_RDWR_F = H5F_flags(1) - H5F_ACC_RDONLY_F = H5F_flags(2) - H5F_ACC_TRUNC_F = H5F_flags(3) - H5F_ACC_EXCL_F = H5F_flags(4) - H5F_ACC_DEBUG_F = H5F_flags(5) - H5F_SCOPE_LOCAL_F = H5F_flags(6) - H5F_SCOPE_GLOBAL_F = H5F_flags(7) - H5F_CLOSE_DEFAULT_F = H5F_flags(8) - H5F_CLOSE_WEAK_F = H5F_flags(9) - H5F_CLOSE_SEMI_F = H5F_flags(10) - H5F_CLOSE_STRONG_F = H5F_flags(11) - H5F_OBJ_FILE_F = H5F_flags(12) - H5F_OBJ_DATASET_F = H5F_flags(13) - H5F_OBJ_GROUP_F = H5F_flags(14) - H5F_OBJ_DATATYPE_F = H5F_flags(15) - H5F_OBJ_ALL_F = H5F_flags(16) - H5F_LIBVER_EARLIEST_F = H5F_flags(17) - H5F_LIBVER_LATEST_F = H5F_flags(18) - H5F_LIBVER_ERROR_F = H5F_flags(19) - H5F_LIBVER_NBOUNDS_F = H5F_flags(20) - H5F_UNLIMITED_F = H5F_flags(21) - H5F_LIBVER_V18_F = H5F_flags(22) - H5F_LIBVER_V110_F = H5F_flags(23) - H5F_LIBVER_V112_F = H5F_flags(24) - H5F_LIBVER_V114_F = H5F_flags(25) + H5F_ACC_RDWR_F = H5F_flags(1) + H5F_ACC_RDONLY_F = H5F_flags(2) + H5F_ACC_TRUNC_F = H5F_flags(3) + H5F_ACC_EXCL_F = H5F_flags(4) + H5F_ACC_DEBUG_F = H5F_flags(5) + H5F_SCOPE_LOCAL_F = H5F_flags(6) + H5F_SCOPE_GLOBAL_F = H5F_flags(7) + H5F_CLOSE_DEFAULT_F = H5F_flags(8) + H5F_CLOSE_WEAK_F = H5F_flags(9) + H5F_CLOSE_SEMI_F = H5F_flags(10) + H5F_CLOSE_STRONG_F = H5F_flags(11) + H5F_OBJ_FILE_F = H5F_flags(12) + H5F_OBJ_DATASET_F = H5F_flags(13) + H5F_OBJ_GROUP_F = H5F_flags(14) + H5F_OBJ_DATATYPE_F = H5F_flags(15) + H5F_OBJ_ALL_F = H5F_flags(16) + H5F_LIBVER_EARLIEST_F = H5F_flags(17) + H5F_LIBVER_LATEST_F = H5F_flags(18) + H5F_LIBVER_ERROR_F = H5F_flags(19) + H5F_LIBVER_NBOUNDS_F = H5F_flags(20) + H5F_UNLIMITED_F = H5F_flags(21) + H5F_FSPACE_STRATEGY_FSM_AGGR_F = H5F_flags(22) + H5F_FSPACE_STRATEGY_PAGE_F = H5F_flags(23) + H5F_FSPACE_STRATEGY_AGGR_F = H5F_flags(24) + H5F_FSPACE_STRATEGY_NONE_F = H5F_flags(25) + H5F_FSPACE_STRATEGY_NTYPES_F = H5F_flags(26) + H5F_LIBVER_V18_F = H5F_flags(27) + H5F_LIBVER_V110_F = H5F_flags(28) + H5F_LIBVER_V112_F = H5F_flags(29) + H5F_LIBVER_V114_F = H5F_flags(30) ! ! H5generic flags ! @@ -439,6 +444,31 @@ CONTAINS H5D_SELECTION_IO_MODE_DEFAULT_F = H5D_flags(30) H5D_SELECTION_IO_MODE_OFF_F = H5D_flags(31) H5D_SELECTION_IO_MODE_ON_F = H5D_flags(32) + H5D_MPIO_COLLECTIVE_F = H5D_flags(33) + H5D_MPIO_SET_INDEPENDENT_F = H5D_flags(34) + H5D_MPIO_DATATYPE_CONVERSION_F = H5D_flags(35) + H5D_MPIO_DATA_TRANSFORMS_F = H5D_flags(36) + H5D_MPIO_MPI_OPT_TYPES_ENV_VAR_DISABLED_F = H5D_flags(37) + H5D_MPIO_NOT_SIMPLE_OR_SCALAR_DATASPACES_F = H5D_flags(38) + H5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_F = H5D_flags(39) + H5D_MPIO_PARALLEL_FILTERED_WRITES_DISABLED_F = H5D_flags(40) + H5D_MPIO_ERROR_WHILE_CHECKING_COLLECTIVE_POSSIBLE_F = H5D_flags(41) + H5D_MPIO_NO_SELECTION_IO_F = H5D_flags(42) + H5D_MPIO_NO_COLLECTIVE_MAX_CAUSE_F = H5D_flags(43) + H5D_SEL_IO_DISABLE_BY_API_F = H5D_flags(44) + H5D_SEL_IO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_F = H5D_flags(45) + H5D_SEL_IO_CONTIGUOUS_SIEVE_BUFFER_F = H5D_flags(46) + H5D_SEL_IO_NO_VECTOR_OR_SELECTION_IO_CB_F = H5D_flags(47) + H5D_SEL_IO_PAGE_BUFFER_F = H5D_flags(48) + H5D_SEL_IO_DATASET_FILTER_F = H5D_flags(49) + H5D_SEL_IO_CHUNK_CACHE_F = H5D_flags(50) + H5D_SEL_IO_TCONV_BUF_TOO_SMALL_F = H5D_flags(51) + H5D_SEL_IO_BKG_BUF_TOO_SMALL_F = H5D_flags(52) + H5D_SEL_IO_DEFAULT_OFF_F = H5D_flags(53) + H5D_MPIO_NO_SELECTION_IO_CAUSES_F = H5D_flags(54) + H5D_MPIO_NO_CHUNK_OPTIMIZATION_F = H5D_flags(55) + H5D_MPIO_LINK_CHUNK_F = H5D_flags(56) + H5D_MPIO_MULTI_CHUNK_F = H5D_flags(57) H5D_CHUNK_CACHE_NSLOTS_DFLT_F = H5D_size_flags(1) H5D_CHUNK_CACHE_NBYTES_DFLT_F = H5D_size_flags(2) @@ -801,6 +831,8 @@ CONTAINS !! \param relnum Release version of the library. !! \param error \fortran_error !! +!! See C API: @ref H5get_libversion() +!! SUBROUTINE h5get_libversion_f(majnum, minnum, relnum, error) IMPLICIT NONE INTEGER, INTENT(OUT) :: majnum, minnum, relnum, error @@ -826,6 +858,8 @@ CONTAINS !! \param relnum Release version of the library. !! \param error \fortran_error !! +!! See C API: @ref H5check_version() +!! SUBROUTINE h5check_version_f(majnum, minnum, relnum, error) IMPLICIT NONE INTEGER, INTENT(IN) :: majnum, minnum, relnum @@ -848,6 +882,8 @@ CONTAINS !! !! \param error \fortran_error !! +!! See C API: @ref H5garbage_collect() +!! SUBROUTINE h5garbage_collect_f(error) IMPLICIT NONE INTEGER, INTENT(OUT) :: error @@ -867,6 +903,8 @@ CONTAINS !! !! \param error \fortran_error !! +!! See C API: @ref H5dont_atexit() +!! SUBROUTINE h5dont_atexit_f(error) IMPLICIT NONE INTEGER, INTENT(OUT) :: error @@ -882,6 +920,41 @@ CONTAINS !> !! \ingroup FH5 +!! \brief Gets the current size of the free lists used to manage memory +!! +!! \param reg_size The current size of all "regular" free list memory used +!! \param arr_size The current size of all "array" free list memory used +!! \param blk_size The current size of all "block" free list memory used +!! \param fac_size The current size of all "factory" free list memory used +!! \param error \fortran_error +!! +!! See C API: @ref H5get_free_list_sizes() +!! + SUBROUTINE h5get_free_list_sizes_f(reg_size, arr_size, blk_size, fac_size, error) + IMPLICIT NONE + INTEGER(C_SIZE_T), INTENT(OUT) :: reg_size + INTEGER(C_SIZE_T), INTENT(OUT) :: arr_size + INTEGER(C_SIZE_T), INTENT(OUT) :: blk_size + INTEGER(C_SIZE_T), INTENT(OUT) :: fac_size + INTEGER, INTENT(OUT) :: error + + INTERFACE + INTEGER(C_INT) FUNCTION H5get_free_list_sizes(reg_size, arr_size, blk_size, fac_size) BIND(C,NAME='H5get_free_list_sizes') + IMPORT :: C_INT, C_SIZE_T + IMPLICIT NONE + INTEGER(C_SIZE_T), INTENT(OUT) :: reg_size + INTEGER(C_SIZE_T), INTENT(OUT) :: arr_size + INTEGER(C_SIZE_T), INTENT(OUT) :: blk_size + INTEGER(C_SIZE_T), INTENT(OUT) :: fac_size + END FUNCTION H5get_free_list_sizes + END INTERFACE + + error = INT(H5get_free_list_sizes(reg_size, arr_size, blk_size, fac_size)) + + END SUBROUTINE h5get_free_list_sizes_f + +!> +!! \ingroup FH5 !! !! \brief Converts the KIND to the correct HDF type !! |