summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2024-01-03 16:55:17 (GMT)
committerGitHub <noreply@github.com>2024-01-03 16:55:17 (GMT)
commit8f1a93f1a208055c9b872a06be28a20e72f8f488 (patch)
tree4791557ccb219f56111fa52a96462d319d1e4473 /fortran
parent812be1a3bdbc2fca620f85b3d0dc2f7216a9d463 (diff)
downloadhdf5-8f1a93f1a208055c9b872a06be28a20e72f8f488.zip
hdf5-8f1a93f1a208055c9b872a06be28a20e72f8f488.tar.gz
hdf5-8f1a93f1a208055c9b872a06be28a20e72f8f488.tar.bz2
New Fortran Examples added (#3916)
* added subfiling example * Added filtered writes with no selection example
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/CMakeLists.txt2
-rw-r--r--fortran/src/H5_f.c2
-rw-r--r--fortran/src/H5_ff.F906
-rw-r--r--fortran/src/H5config_f.inc.cmake21
-rw-r--r--fortran/src/H5config_f.inc.in18
-rw-r--r--fortran/src/H5f90global.F906
-rw-r--r--fortran/src/Makefile.am2
7 files changed, 53 insertions, 4 deletions
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index 87557db..60c0c3a 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -431,6 +431,7 @@ if (BUILD_STATIC_LIBS)
FILES
${HDF5_F90_BINARY_DIR}/static/H5f90i_gen.h
${HDF5_F90_BINARY_DIR}/static/H5fortran_types.F90
+ ${HDF5_F90_BINARY_DIR}/H5config_f.inc
DESTINATION
${HDF5_INSTALL_INCLUDE_DIR}
COMPONENT
@@ -441,6 +442,7 @@ else ()
FILES
${HDF5_F90_BINARY_DIR}/shared/H5f90i_gen.h
${HDF5_F90_BINARY_DIR}/shared/H5fortran_types.F90
+ ${HDF5_F90_BINARY_DIR}/H5config_f.inc
DESTINATION
${HDF5_INSTALL_INCLUDE_DIR}
COMPONENT
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 0392c2b..b1dc7db 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -771,6 +771,8 @@ h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid
* H5S flags
*/
h5s_hid_flags[0] = (hid_t_f)H5S_ALL;
+ h5s_hid_flags[1] = (hid_t_f)H5S_BLOCK;
+ h5s_hid_flags[2] = (hid_t_f)H5S_PLIST;
h5s_hsize_flags[0] = (hsize_t_f)H5S_UNLIMITED;
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90
index 05a48ac..fe6337a 100644
--- a/fortran/src/H5_ff.F90
+++ b/fortran/src/H5_ff.F90
@@ -139,7 +139,7 @@ MODULE H5LIB
INTEGER, DIMENSION(1:H5S_FLAGS_LEN) :: H5S_flags
INTEGER, PARAMETER :: H5S_HSIZE_FLAGS_LEN = 1
INTEGER(HSIZE_T), DIMENSION(1:H5S_HSIZE_FLAGS_LEN) :: H5S_hsize_flags
- INTEGER, PARAMETER :: H5S_HID_FLAGS_LEN = 1
+ INTEGER, PARAMETER :: H5S_HID_FLAGS_LEN = 3
INTEGER(HSIZE_T), DIMENSION(1:H5S_HID_FLAGS_LEN) :: H5S_hid_flags
!
! H5T flags declaration
@@ -632,7 +632,9 @@ CONTAINS
!
! H5S flags
!
- H5S_ALL_F = H5S_hid_flags(1)
+ H5S_ALL_F = H5S_hid_flags(1)
+ H5S_BLOCK_F = H5S_hid_flags(2)
+ H5S_PLIST_F = H5S_hid_flags(3)
H5S_UNLIMITED_F = H5S_hsize_flags(1)
diff --git a/fortran/src/H5config_f.inc.cmake b/fortran/src/H5config_f.inc.cmake
index 433fd35..77ff707 100644
--- a/fortran/src/H5config_f.inc.cmake
+++ b/fortran/src/H5config_f.inc.cmake
@@ -9,7 +9,7 @@
! If you do not have access to either file, you may request a copy from *
! help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! fortran/src/H5config_f.inc. Generated from fortran/src/H5config_f.inc.in by configure
+! fortran/H5config_f.inc. Generated from fortran/src/H5config_f.inc.cmake by CMake
! Define if there is parallel support
#cmakedefine01 CMAKE_H5_HAVE_PARALLEL
@@ -116,3 +116,22 @@
#else
#define H5_NO_DEPRECATED_SYMBOLS
#endif
+
+! For major interface/format changes
+#define H5_VERS_MAJOR @H5_VERS_MAJOR@
+
+! For minor interface/format changes
+#define H5_VERS_MINOR @H5_VERS_MINOR@
+
+! For tweaks, bug-fixes, or development
+#define H5_VERS_RELEASE @H5_VERS_RELEASE@
+
+! macros for comparing versions
+#define H5_VERSION_GE(Maj, Min, Rel) \
+ (((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR == Min) && (H5_VERS_RELEASE >= Rel)) || \
+ ((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR > Min)) || (H5_VERS_MAJOR > Maj))
+
+#define H5_VERSION_LE(Maj, Min, Rel) \
+ (((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR == Min) && (H5_VERS_RELEASE <= Rel)) || \
+ ((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR < Min)) || (H5_VERS_MAJOR < Maj))
+
diff --git a/fortran/src/H5config_f.inc.in b/fortran/src/H5config_f.inc.in
index 3aeded9..5fe1bcc 100644
--- a/fortran/src/H5config_f.inc.in
+++ b/fortran/src/H5config_f.inc.in
@@ -80,3 +80,21 @@
! Define if deprecated public API symbols are disabled
#undef NO_DEPRECATED_SYMBOLS
+! For major interface/format changes
+#undef VERS_MAJOR
+
+! For minor interface/format changes
+#undef VERS_MINOR
+
+! For tweaks, bug-fixes, or development
+#undef VERS_RELEASE
+
+! macros for comparing versions
+#define VERSION_GE(Maj, Min, Rel) \
+ (((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR == Min) && (H5_VERS_RELEASE >= Rel)) || \
+ ((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR > Min)) || (H5_VERS_MAJOR > Maj))
+
+#define VERSION_LE(Maj, Min, Rel) \
+ (((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR == Min) && (H5_VERS_RELEASE <= Rel)) || \
+ ((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR < Min)) || (H5_VERS_MAJOR < Maj))
+
diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90
index aa04623..fb25f7e 100644
--- a/fortran/src/H5f90global.F90
+++ b/fortran/src/H5f90global.F90
@@ -773,6 +773,8 @@ MODULE H5GLOBAL
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ATTRIBUTES DLLEXPORT :: H5S_UNLIMITED_F
!DEC$ATTRIBUTES DLLEXPORT :: H5S_ALL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5S_BLOCK_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5S_PLIST_F
!DEC$ATTRIBUTES DLLEXPORT :: H5S_SCALAR_F
!DEC$ATTRIBUTES DLLEXPORT :: H5S_SIMPLE_F
!DEC$ATTRIBUTES DLLEXPORT :: H5S_NULL_F
@@ -796,7 +798,9 @@ MODULE H5GLOBAL
!> @{
INTEGER(HSIZE_T) :: H5S_UNLIMITED_F !< H5S_UNLIMITED
- INTEGER(HID_T) :: H5S_ALL_F !< H5S_ALL
+ INTEGER(HID_T) :: H5S_ALL_F !< H5S_ALL
+ INTEGER(HID_T) :: H5S_BLOCK_F !< H5S_BLOCK
+ INTEGER(HID_T) :: H5S_PLIST_F !< H5S_PLIST
INTEGER :: H5S_SCALAR_F !< H5S_SCALAR
INTEGER :: H5S_SIMPLE_F !< H5S_SIMPLE
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index d42a41d..44561f6 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -75,6 +75,7 @@ install-data-local:
fi
$(CP) $(top_builddir)/$(subdir)/H5f90i_gen.h $(DESTDIR)$(includedir)/.
$(CP) $(top_srcdir)/fortran/src/H5f90i.h $(DESTDIR)$(includedir)/.
+ $(CP) $(top_builddir)/$(subdir)/H5config_f.inc $(DESTDIR)$(includedir)/.
uninstall-local:
@if test -n "$(F9XMODEXT)" -a "X$(F9XMODEXT)" != "Xo"; then \
@@ -84,6 +85,7 @@ uninstall-local:
fi; \
$(RM) $(DESTDIR)$(bindir)/$(H5FC_NAME)
$(RM) $(DESTDIR)$(includedir)/H5f90i*.h
+ $(RM) $(DESTDIR)$(includedir)/H5config_f.inc
# Also install and uninstall (uninstall-local above) h5fc script
install-exec-local: