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 /hl/fortran | |
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 'hl/fortran')
-rw-r--r-- | hl/fortran/src/CMakeLists.txt | 2 | ||||
-rw-r--r-- | hl/fortran/src/H5DOff.F90 | 91 | ||||
-rw-r--r-- | hl/fortran/src/Makefile.am | 3 | ||||
-rw-r--r-- | hl/fortran/src/hdf5_hl_fortrandll.def.in | 2 |
4 files changed, 97 insertions, 1 deletions
diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt index 0aa0f15..d9f0af2 100644 --- a/hl/fortran/src/CMakeLists.txt +++ b/hl/fortran/src/CMakeLists.txt @@ -111,6 +111,7 @@ set (HDF5_HL_F90_F_BASE_SOURCES ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5TBff.F90 ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5LTff.F90 ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5IMff.F90 + ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5DOff.F90 ) if (BUILD_STATIC_LIBS) @@ -242,6 +243,7 @@ set (mod_export_files h5lt.mod h5lt_const.mod h5im.mod + h5do.mod ) if (BUILD_STATIC_LIBS) diff --git a/hl/fortran/src/H5DOff.F90 b/hl/fortran/src/H5DOff.F90 new file mode 100644 index 0000000..df4157c --- /dev/null +++ b/hl/fortran/src/H5DOff.F90 @@ -0,0 +1,91 @@ +!> @defgroup FH5DO Fortran High Level Optimized Interface +!! +!! @see H5DO, C-HL API +!! +!! @see @ref H5DO_UG, User Guide +!! + +!> @ingroup FH5DO +!! +!! @brief This module contains Fortran interfaces for H5DO +! +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! Copyright by The HDF Group. * +! 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://www.hdfgroup.org/licenses. * +! If you do not have access to either file, you may request a copy from * +! help@hdfgroup.org. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! _____ __ __ _____ ____ _____ _______ _ _ _______ +! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| +! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** +! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** +! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** +! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| +! +! If you add a new function here then you MUST add the function name to the +! Windows dll file 'hdf5_hl_fortrandll.def.in' in the hl/fortran/src directory. +! This is needed for Windows based operating systems. +! + +MODULE H5DO + + USE h5fortran_types + USE hdf5 + IMPLICIT NONE + +CONTAINS + +!> +!! \ingroup FH5DO +!! +!! \brief Appends data to a dataset along a specified dimension. +!! +!! \param dset_id Dataset identifier +!! \param dxpl_id Dataset transfer property list identifier +!! \param axis Dataset Dimension (0-based) for the append +!! \param extension Number of elements to append for the axis-th dimension +!! \param memtype The memory datatype identifier +!! \param buf Buffer with data for the append +!! \param errcode \fortran_error +!! +!! See C API: @ref H5DOappend() +!! + SUBROUTINE H5DOappend_f (dset_id, dxpl_id, axis, extension, memtype, buf, errcode) + + IMPLICIT NONE + + INTEGER(hid_t) , INTENT(IN) :: dset_id + INTEGER(hid_t) , INTENT(IN) :: dxpl_id + INTEGER , INTENT(IN) :: axis + INTEGER(SIZE_T), INTENT(IN) :: extension + INTEGER(hid_t) , INTENT(IN) :: memtype + TYPE(C_PTR) :: buf + INTEGER , INTENT(OUT) :: errcode + + INTERFACE + INTEGER(C_INT) FUNCTION H5DOappend(dset_id, dxpl_id, axis, extension, memtype, buf) & + BIND(C,NAME='H5DOappend') + + IMPORT :: C_INT, C_PTR + IMPORT :: HID_T, SIZE_T + IMPLICIT NONE + + INTEGER(hid_t) , VALUE :: dset_id + INTEGER(hid_t) , VALUE :: dxpl_id + INTEGER(C_INT) , VALUE :: axis + INTEGER(SIZE_T), VALUE :: extension + INTEGER(hid_t) , VALUE :: memtype + TYPE(C_PTR) , VALUE :: buf + END FUNCTION H5DOappend + END INTERFACE + + errcode = INT(H5DOappend(dset_id, dxpl_id, INT(axis,C_INT), extension, memtype, buf)) + + END SUBROUTINE H5DOappend_f + +END MODULE H5DO diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am index 8fe618d..5834c99 100644 --- a/hl/fortran/src/Makefile.am +++ b/hl/fortran/src/Makefile.am @@ -44,7 +44,7 @@ endif # List sources to include in the HDF5 HL Fortran library. libhdf5hl_fortran_la_SOURCES=H5DSfc.c H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c \ - H5DSff.F90 H5LTff.F90 H5TBff.F90 H5IMff.F90 H5LTff_gen.F90 H5TBff_gen.F90 + H5DSff.F90 H5LTff.F90 H5TBff.F90 H5IMff.F90 H5DOff.F90 H5LTff_gen.F90 H5TBff_gen.F90 # HDF5 HL Fortran library depends on HDF5 Library. libhdf5hl_fortran_la_LIBADD=$(LIBH5_HL) $(LIBH5F) @@ -111,6 +111,7 @@ H5DSff.lo: $(srcdir)/H5DSff.F90 H5LTff.lo: $(srcdir)/H5LTff.F90 H5IMff.lo: $(srcdir)/H5IMff.F90 H5TBff.lo: $(srcdir)/H5TBff.F90 +H5DOff.lo: $(srcdir)/H5DOff.F90 H5LTff_gen.lo: H5LTff.lo H5LTff_gen.F90 H5TBff_gen.lo: H5TBff.lo H5LTff_gen.F90 H5TBff_gen.F90 include $(top_srcdir)/config/conclude_fc.am diff --git a/hl/fortran/src/hdf5_hl_fortrandll.def.in b/hl/fortran/src/hdf5_hl_fortrandll.def.in index b48cae3..5f6d0b3 100644 --- a/hl/fortran/src/hdf5_hl_fortrandll.def.in +++ b/hl/fortran/src/hdf5_hl_fortrandll.def.in @@ -88,3 +88,5 @@ H5TB_CONST_mp_H5TBINSERT_FIELD_F_STRING H5TB_CONST_mp_H5TBDELETE_FIELD_F H5TB_CONST_mp_H5TBGET_TABLE_INFO_F H5TB_CONST_mp_H5TBGET_FIELD_INFO_F +; H5DO +H5DO_mp_H5DOAPPEND_F |