summaryrefslogtreecommitdiffstats
path: root/hl/fortran/src
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2023-09-07 22:25:07 (GMT)
committerGitHub <noreply@github.com>2023-09-07 22:25:07 (GMT)
commit08e115b7d8f95551be8bede824847997d95d0cf1 (patch)
treea377c6607419278eaafc8cf3043608f93afe1ad7 /hl/fortran/src
parent8253ab9ebf6a082dc07eb931f27b169d6a45d577 (diff)
downloadhdf5-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/src')
-rw-r--r--hl/fortran/src/CMakeLists.txt2
-rw-r--r--hl/fortran/src/H5DOff.F9091
-rw-r--r--hl/fortran/src/Makefile.am3
-rw-r--r--hl/fortran/src/hdf5_hl_fortrandll.def.in2
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