summaryrefslogtreecommitdiffstats
path: root/HDF5Examples/FORTRAN/H5D
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-11-27 21:30:15 (GMT)
committerGitHub <noreply@github.com>2023-11-27 21:30:15 (GMT)
commitfc88fcde1091cf12c1e88c783a14ee0f1cffe31c (patch)
tree91b88b62cd30ed37ee9227e43989e95035be43c3 /HDF5Examples/FORTRAN/H5D
parenta067bf71f57723d2dfca7dfe2ffd9ea502eccd4f (diff)
downloadhdf5-fc88fcde1091cf12c1e88c783a14ee0f1cffe31c.zip
hdf5-fc88fcde1091cf12c1e88c783a14ee0f1cffe31c.tar.gz
hdf5-fc88fcde1091cf12c1e88c783a14ee0f1cffe31c.tar.bz2
Develop merge examples (#3851)
* Merge examples repo into library * Change grepTest to be more fault-tolerant * Update examples macro file * Exclude all Fortran examples from doxygen
Diffstat (limited to 'HDF5Examples/FORTRAN/H5D')
-rw-r--r--HDF5Examples/FORTRAN/H5D/CMakeLists.txt289
-rw-r--r--HDF5Examples/FORTRAN/H5D/Fortran_sourcefiles.cmake35
-rw-r--r--HDF5Examples/FORTRAN/H5D/Makefile.am77
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5_version.h.in23
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_alloc.F90140
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_checksum.F90166
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_chunk.F90182
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_compact.F90128
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90137
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_fillval.F90140
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_gzip.F90164
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_hyper.F90148
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_nbit.F90160
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr.F9093
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind.F90135
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind_F03.F90135
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_soint.F90173
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_szip.F90157
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_transform.F90133
-rw-r--r--HDF5Examples/FORTRAN/H5D/h5ex_d_unlimmod.F90175
-rwxr-xr-xHDF5Examples/FORTRAN/H5D/test.sh.in211
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/110/h5ex_d_nbit07.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/114/h5ex_d_alloc.tst18
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.ddl30
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.tst18
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.ddl199
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.tst2
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.ddl18
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.tst26
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.ddl17
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.tst8
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.ddl17
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.tst6
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.ddl20
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.tst17
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.tst2
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.ddl18
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.tst26
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.tst2
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit07.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit22.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.ddl17
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.tst8
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.ddl30
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.tst14
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.ddl30
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.tst14
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.tst5
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.ddl198
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.tst2
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.ddl6
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.tst17
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.ddl20
-rw-r--r--HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.tst14
57 files changed, 5008 insertions, 0 deletions
diff --git a/HDF5Examples/FORTRAN/H5D/CMakeLists.txt b/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
new file mode 100644
index 0000000..dbc126c
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
@@ -0,0 +1,289 @@
+cmake_minimum_required (VERSION 3.12)
+project (HDF5Examples_FORTRAN_H5D C CXX Fortran)
+
+# --------------------------------------------------------------------
+# Notes: When creating examples they should be prefixed
+# with "f90_". This allows for easier filtering of the examples.
+# --------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# Setup include Directories
+#-----------------------------------------------------------------------------
+INCLUDE_DIRECTORIES (
+ ${CMAKE_Fortran_MODULE_DIRECTORY}
+ ${PROJECT_BINARY_DIR}
+ ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+)
+
+#-----------------------------------------------------------------------------
+# Define Sources
+#-----------------------------------------------------------------------------
+include (Fortran_sourcefiles.cmake)
+
+foreach (example_name ${common_examples})
+ add_executable (${EXAMPLE_VARNAME}_f90_${example_name} ${PROJECT_SOURCE_DIR}/${example_name}.F90)
+ target_compile_options(${EXAMPLE_VARNAME}_f90_${example_name}
+ PRIVATE
+ "-DH5_LIBVER_DIR=${H5_LIBVER_DIR}"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_16_API}>:-DH5_USE_16_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_18_API}>:-DH5_USE_18_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_110_API}>:-DH5_USE_110_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_112_API}>:-DH5_USE_112_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_114_API}>:-DH5_USE_114_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_116_API}>:-DH5_USE_116_API>"
+ )
+ if (H5_HAVE_PARALLEL)
+ target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
+ endif ()
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${LINK_Fortran_LIBS})
+ set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
+ if (H5EX_BUILD_TESTING)
+ if (${example_name} STREQUAL "h5ex_d_alloc")
+ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.14")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/114/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+ )
+ else ()
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/18/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+ )
+ endif ()
+ else ()
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/18/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+ )
+ endif ()
+ endif ()
+endforeach ()
+
+if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10")
+ foreach (example_name ${1_10_examples})
+ add_executable (${EXAMPLE_VARNAME}_f90_${example_name} ${PROJECT_SOURCE_DIR}/${example_name}.F90)
+ target_compile_options(${EXAMPLE_VARNAME}_f90_${example_name}
+ PRIVATE
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_16_API}>:-DH5_USE_16_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_18_API}>:-DH5_USE_18_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_110_API}>:-DH5_USE_110_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_112_API}>:-DH5_USE_112_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_114_API}>:-DH5_USE_114_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_116_API}>:-DH5_USE_116_API>"
+ )
+ if (H5_HAVE_PARALLEL)
+ target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
+ endif ()
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_HDF5_LINK_LIBS})
+ if (H5EX_BUILD_TESTING)
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/110/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+ )
+ endif ()
+ endforeach ()
+endif ()
+
+
+#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.12")
+# foreach (example_name ${1_12_examples})
+# if (H5EX_BUILD_TESTING)
+# add_custom_command (
+# TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+# POST_BUILD
+# COMMAND ${CMAKE_COMMAND}
+# ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/112/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+# )
+# endif ()
+# endforeach ()
+#endif ()
+#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.14")
+# foreach (example_name ${1_14_examples})
+# if (H5EX_BUILD_TESTING)
+# add_custom_command (
+# TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+# POST_BUILD
+# COMMAND ${CMAKE_COMMAND}
+# ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/114/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+# )
+# endif ()
+# endforeach ()
+#endif ()
+#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.16")
+# foreach (example_name ${1_16_examples})
+# if (H5EX_BUILD_TESTING)
+# add_custom_command (
+# TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+# POST_BUILD
+# COMMAND ${CMAKE_COMMAND}
+# ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/116/${example_name}.tst ${PROJECT_BINARY_DIR}/${example_name}.tst
+# )
+# endif ()
+# endforeach ()
+#endif ()
+
+if (HDF5_BUILD_TOOLS)
+ foreach (example_name ${common_examples})
+ if (${example_name} STREQUAL "h5ex_d_nbit")
+ if (HDF5_VERSION_MAJOR VERSION_EQUAL "1.8" AND HDF5_VERSION_STRING VERSION_LESS_EQUAL "1.8.22")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/18/${example_name}22.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ elseif (HDF5_VERSION_MAJOR VERSION_EQUAL "1.10" AND HDF5_VERSION_STRING VERSION_LESS_EQUAL "1.10.7")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/110/${example_name}07.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ else ()
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/18/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ endif ()
+ else ()
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/18/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ endif ()
+ endforeach ()
+
+ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10")
+ foreach (example_name ${1_10_examples})
+ if (${example_name} STREQUAL "h5ex_d_nbit")
+ if (HDF5_VERSION_MAJOR VERSION_EQUAL "1.10" AND HDF5_VERSION_STRING VERSION_LESS_EQUAL "1.10.7")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/110/${example_name}07.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ else ()
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/110/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ endif ()
+ elseif (${example_name} STREQUAL "h5ex_d_alloc")
+ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.14")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/114/${example_name}07.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ endif ()
+ else ()
+ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/110/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ )
+ endif ()
+ #if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.12")
+ # add_custom_command (
+ # TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ # POST_BUILD
+ # COMMAND ${CMAKE_COMMAND}
+ # ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/112/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ # )
+ #endif ()
+ #if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.14")
+ # add_custom_command (
+ # TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ # POST_BUILD
+ # COMMAND ${CMAKE_COMMAND}
+ # ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/114/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ # )
+ #endif ()
+ #if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.16")
+ # add_custom_command (
+ # TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
+ # POST_BUILD
+ # COMMAND ${CMAKE_COMMAND}
+ # ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/tfiles/116/${example_name}.ddl ${PROJECT_BINARY_DIR}/${example_name}.ddl
+ # )
+ #endif ()
+ endif ()
+ endforeach ()
+
+# foreach (example_name ${1_12_examples})
+# endforeach ()
+# foreach (example_name ${1_14_examples})
+# endforeach ()
+# foreach (example_name ${1_16_examples})
+# endforeach ()
+ endif ()
+endif ()
+
+if (H5EX_BUILD_TESTING)
+ macro (ADD_H5_TEST testname)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_f90_${testname}-clearall
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${testname}.h5
+ )
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_f90_${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:${EXAMPLE_VARNAME}_f90_${testname}>"
+ -D "TEST_ARGS:STRING="
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_EXPECT=0"
+ -D "TEST_OUTPUT=${testname}.out"
+ -D "TEST_REFERENCE=${testname}.tst"
+ -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
+ -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
+ if (HDF5_BUILD_TOOLS)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=${H5EX_HDF5_DUMP_EXECUTABLE}"
+ -D "TEST_ARGS:STRING=${ARGN};${testname}.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testname}.ddl.out"
+ -D "TEST_EXPECT=0"
+ -D "TEST_REFERENCE=${testname}.ddl"
+ -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
+ -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname})
+ endif ()
+ endmacro ()
+
+ foreach (example_name ${common_examples} ${1_10_examples})
+ if (${example_name} STREQUAL "h5ex_d_transform")
+ ADD_H5_TEST (${example_name} -n)
+ else ()
+# if (${example_name} STREQUAL "h5ex_d_alloc" AND ${H5_LIBVER_DIR} GREATER 112)
+ ADD_H5_TEST (${example_name})
+# else ()
+# message (STATUS " Skipping f90_${example_name} test")
+# endif ()
+ endif ()
+ endforeach ()
+endif ()
diff --git a/HDF5Examples/FORTRAN/H5D/Fortran_sourcefiles.cmake b/HDF5Examples/FORTRAN/H5D/Fortran_sourcefiles.cmake
new file mode 100644
index 0000000..b435e72
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/Fortran_sourcefiles.cmake
@@ -0,0 +1,35 @@
+#-----------------------------------------------------------------------------
+# Define Sources, one file per application
+#-----------------------------------------------------------------------------
+set (examples)
+
+set (common_examples
+ h5ex_d_alloc
+ h5ex_d_checksum
+ h5ex_d_chunk
+ h5ex_d_compact
+ h5ex_d_extern
+ h5ex_d_fillval
+ h5ex_d_hyper
+ h5ex_d_rdwr
+ h5ex_d_unlimmod
+ h5ex_d_nbit
+# h5ex_d_sofloat
+ h5ex_d_soint
+ h5ex_d_transform
+)
+
+if (HDF5_ENABLE_Z_LIB_SUPPORT)
+ set (common_examples ${common_examples}
+ h5ex_d_gzip
+ )
+endif ()
+
+if (HDF5_ENABLE_SZIP_SUPPORT)
+ set (common_examples ${common_examples}
+ h5ex_d_szip
+ )
+endif ()
+
+set (1_10_examples
+)
diff --git a/HDF5Examples/FORTRAN/H5D/Makefile.am b/HDF5Examples/FORTRAN/H5D/Makefile.am
new file mode 100644
index 0000000..dc98f1f
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/Makefile.am
@@ -0,0 +1,77 @@
+#
+# 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 files COPYING and Copyright.html. COPYING can be found at the root
+# of the source code distribution tree; Copyright.html can be found at the
+# root level of an installed copy of the electronic HDF5 document set and
+# is linked from the top-level documents page. It can also be found at
+# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
+# access to either file, you may request a copy from help@hdfgroup.org.
+##
+## Makefile.am
+## Run automake to generate a Makefile.in from this file.
+##
+noinst_PROGRAMS = \
+ h5ex_d_alloc \
+ h5ex_d_checksum \
+ h5ex_d_chunk \
+ h5ex_d_compact \
+ h5ex_d_extern \
+ h5ex_d_fillval \
+ h5ex_d_gzip \
+ h5ex_d_hyper \
+ h5ex_d_nbit \
+ h5ex_d_rdwr \
+ h5ex_d_soint \
+ h5ex_d_szip \
+ h5ex_d_transform \
+ h5ex_d_unlimmod
+
+h5ex_d_alloc_SOURCES = h5ex_d_alloc.F90
+h5ex_d_checksum_SOURCES = h5ex_d_checksum.F90
+h5ex_d_chunk_SOURCES = h5ex_d_chunk.F90
+h5ex_d_compact_SOURCES = h5ex_d_compact.F90
+h5ex_d_extern_SOURCES = h5ex_d_extern.F90
+h5ex_d_fillval_SOURCES = h5ex_d_fillval.F90
+h5ex_d_gzip_SOURCES = h5ex_d_gzip.F90
+h5ex_d_hyper_SOURCES = h5ex_d_hyper.F90
+h5ex_d_nbit_SOURCES = h5ex_d_nbit.F90
+h5ex_d_rdwr_SOURCES = h5ex_d_rdwr.F90
+h5ex_d_soint_SOURCES = h5ex_d_soint.F90
+h5ex_d_szip_SOURCES = h5ex_d_szip.F90
+h5ex_d_transform_SOURCES = h5ex_d_transform.F90
+h5ex_d_unlimmod_SOURCES = h5ex_d_unlimmod.F90
+
+if FORTRAN_2003_CONDITIONAL_F
+ noinst_PROGRAMS += h5ex_d_rdwr_kind
+ h5ex_d_rdwr_kind_SOURCES = h5ex_d_rdwr_kind.F90
+endif
+
+
+EXTRA_DIST = tfiles/h5ex_d_rdwr.tst tfiles/h5ex_d_hyper.tst tfiles/h5ex_d_chunk.tst \
+tfiles/h5ex_d_gzip.tst tfiles/h5ex_d_extern.tst tfiles/h5ex_d_compact.tst \
+tfiles/h5ex_d_unlimadd.tst \
+tfiles/h5ex_d_checksum.tst tfiles/h5ex_d_transform.tst \
+tfiles/h5ex_d_fillval.tst tfiles/h5ex_d_alloc.tst \
+tfiles/h5ex_d_rdwr.ddl tfiles/h5ex_d_hyper.ddl tfiles/h5ex_d_chunk.ddl \
+tfiles/h5ex_d_gzip.ddl tfiles/h5ex_d_extern.ddl tfiles/h5ex_d_compact.ddl \
+tfiles/h5ex_d_unlimadd.ddl \
+tfiles/h5ex_d_checksum.ddl tfiles/h5ex_d_transform.ddl \
+tfiles/h5ex_d_soint.tst tfiles/h5ex_d_soint.dll \
+tfiles/h5ex_d_szip.tst tfiles/h5ex_d_szip.dll \
+tfiles/h5ex_d_nbit.tst tfiles/h5ex_d_nbit.dll \
+tfiles/h5ex_d_unlimmod.tst tfiles/h5ex_d_unlimmod.dll \
+tfiles/h5ex_d_fillval.ddl tfiles/h5ex_d_alloc.ddl \
+test.sh
+
+if FORTRAN_2003_CONDITIONAL_F
+ EXTRA_DIST += tfiles/h5ex_d_rdwr_kind.tst tfiles/h5ex_d_rdwr_kind.dll
+endif
+
+TESTS = test.sh
+
+CLEANFILES = Makefile test.sh
diff --git a/HDF5Examples/FORTRAN/H5D/h5_version.h.in b/HDF5Examples/FORTRAN/H5D/h5_version.h.in
new file mode 100644
index 0000000..6827675
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5_version.h.in
@@ -0,0 +1,23 @@
+! Version numbers
+!
+! 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/HDF5Examples/FORTRAN/H5D/h5ex_d_alloc.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_alloc.F90
new file mode 100644
index 0000000..906936d
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_alloc.F90
@@ -0,0 +1,140 @@
+! ***********************************************************
+!
+! this example shows how to set the space allocation time
+! for a dataset. the program first creates two datasets,
+! one with the default allocation time (late) and one with
+! early allocation time, and displays whether each has been
+! allocated and their allocation size. next, it writes data
+! to the datasets, and again displays whether each has been
+! allocated and their allocation size.
+!
+! this file is intended for use with hdf5 library version 1.8
+!
+! ***********************************************************
+
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=15), PARAMETER :: filename = "h5ex_d_alloc.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset1 = "DS1"
+ CHARACTER(LEN=3) , PARAMETER :: dataset2 = "DS2"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+ INTEGER , PARAMETER :: fillval = 99
+ INTEGER , PARAMETER :: rank = 2
+
+ INTEGER :: space_status
+ INTEGER :: i, j
+ INTEGER :: hdferr
+ INTEGER(HID_T) :: file, space, dset1, dset2, dcpl ! handles
+ INTEGER(HSIZE_T) :: storage_size
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/) ! size write buffer
+ INTEGER , DIMENSION(1:dim0,1:dim1) :: wdata ! write buffer
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = i*j-j
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace.
+ !
+ CALL h5screate_simple_f(rank, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, and set the chunk size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ !
+ ! Set the allocation time to "early". This way we can be sure
+ ! that reading from the dataset immediately after creation will
+ ! return the fill value.
+ !
+ CALL h5pset_alloc_time_f(dcpl, H5D_ALLOC_TIME_EARLY_F,hdferr)
+ !
+ WRITE(*,'(/,"Creating datasets...",/)')
+ WRITE(*,'(A," has allocation time H5D_ALLOC_TIME_LATE_F")') dataset1
+ WRITE(*,'(A," has allocation time H5D_ALLOC_TIME_EARLY_F"/)') dataset2
+ !
+ ! Create the dataset using the dataset creation property list.
+ !
+ CALL h5dcreate_f(file, dataset1, H5T_STD_I32LE, space, dset1, hdferr)
+ CALL h5dcreate_f(file, dataset2, H5T_STD_I32LE, space, dset2, hdferr, dcpl)
+ !
+ ! Retrieve and print space status and storage size for dset1.
+ !
+ storage_size = 0
+ CALL h5dget_space_status_f(dset1, space_status, hdferr)
+ CALL h5dget_storage_size_f(dset1, storage_size, hdferr)
+ !
+ IF(space_status.EQ.H5D_SPACE_STS_ALLOCATED_F)THEN
+ WRITE(*,'("Space for ",A," has been allocated.")') dataset1
+ ELSE
+ WRITE(*,'("Space for ",A," has not been allocated.")') dataset1
+ END IF
+ WRITE(*,'("Storage size for ",A," is: ",I0," bytes.")') dataset1, storage_size
+ !
+ ! Retrieve and print space status and storage size for dset2.
+ !
+ CALL h5dget_space_status_f(dset2, space_status, hdferr)
+ CALL h5dget_storage_size_f(dset2, storage_size, hdferr)
+ !
+ IF(space_status.EQ.H5D_SPACE_STS_ALLOCATED_F)THEN
+ WRITE(*,'("Space for ",A," has been allocated.")') dataset2
+ ELSE
+ WRITE(*,'("Space for ",A," has not been allocated.")') dataset2
+ END IF
+ WRITE(*,'("Storage size for ",A," is: ",I0," bytes.")') dataset2, storage_size
+ !
+ WRITE(*,'(/,"Writing data...",/)')
+ !
+ ! Write the data to the datasets.
+ !
+ CALL h5dwrite_f(dset1, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ CALL h5dwrite_f(dset2, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Retrieve and print space status and storage size for dset1.
+ !
+ CALL h5dget_space_status_f(dset1, space_status, hdferr)
+ CALL h5dget_storage_size_f(dset1, storage_size, hdferr)
+ !
+ IF(space_status.EQ.H5D_SPACE_STS_ALLOCATED_F)THEN
+ WRITE(*,'("Space for ",A," has been allocated.")') dataset1
+ ELSE
+ WRITE(*,'("Space for ",A," has not been allocated.")') dataset1
+ END IF
+ WRITE(*,'("Storage size for ",A," is: ",I0," bytes.")') dataset1, storage_size
+ !
+ ! Retrieve and print space status and storage size for dset2.
+ !
+ CALL h5dget_space_status_f(dset2, space_status, hdferr)
+ CALL h5dget_storage_size_f(dset2, storage_size, hdferr)
+ !
+ IF(space_status.EQ.H5D_SPACE_STS_ALLOCATED_F)THEN
+ WRITE(*,'("Space for ",A," has been allocated.")') dataset2
+ ELSE
+ WRITE(*,'("Space for ",A," has not been allocated.")') dataset2
+ END IF
+ WRITE(*,'("Storage size for ",A," is: ",I0," bytes.",/)') dataset2, storage_size
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset1, hdferr)
+ CALL h5dclose_f(dset2, hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_checksum.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_checksum.F90
new file mode 100644
index 0000000..b0464a3
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_checksum.F90
@@ -0,0 +1,166 @@
+! ************************************************************
+!
+! This example shows how to read and write data to a dataset
+! using the Fletcher32 checksum filter. The program first
+! checks if the Fletcher32 filter is available, then if it
+! is it writes integers to a dataset using Fletcher32, then
+! closes the file. Next, it reopens the file, reads back
+! the data, checks if the filter detected an error and
+! outputs the type of filter and the maximum value in the
+! dataset to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! *************************************************************
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=18), PARAMETER :: filename = "h5ex_d_checksum.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 32
+ INTEGER , PARAMETER :: dim1 = 64
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 8
+
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER :: hdferr
+ LOGICAL :: avail
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/), chunk =(/chunk0,chunk1/)
+ INTEGER(SIZE_T) :: nelmts
+ INTEGER, DIMENSION(1:1) :: cd_values
+ INTEGER :: flags, filter_info
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: filter_id
+ INTEGER :: filter_info_both
+ INTEGER :: max, i, j
+ INTEGER(SIZE_T), PARAMETER :: MaxChrLen = 80
+ CHARACTER(LEN=MaxChrLen) :: name
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Check if the Fletcher32 filter is available and can be used for
+ ! both encoding and decoding. Normally we do not perform error
+ ! checking in these examples for the sake of clarity, but in this
+ ! case we will make an exception because this filter is an
+ ! optional part of the hdf5 library.
+ !
+ CALL h5zfilter_avail_f(H5Z_FILTER_FLETCHER32_F, avail, hdferr)
+
+ IF (.NOT.avail) THEN
+ WRITE(*,'("N-Bit filter not available.",/)')
+ STOP
+ ENDIF
+
+ CALL h5zget_filter_info_f(H5Z_FILTER_FLETCHER32_F, filter_info, hdferr)
+
+ filter_info_both=IOR(H5Z_FILTER_ENCODE_ENABLED_F,H5Z_FILTER_DECODE_ENABLED_F)
+ IF (filter_info .NE. filter_info_both) THEN
+ WRITE(*,'("N-Bit filter not available for encoding and decoding.",/)')
+ STOP
+ ENDIF
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = i * j - j
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, add the N-Bit filter
+ ! and set the chunk size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_fletcher32_f(dcpl, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve dataset creation property list.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ !
+ ! Retrieve and print the filter type. Here we only retrieve the
+ ! first filter because we know that we only added one filter.
+ !
+ nelmts = 0
+ CALL H5Pget_filter_f(dcpl, 0, flags, nelmts, cd_values, MaxChrLen, name, filter_id, hdferr)
+ WRITE(*,'("Filter type is: ")', ADVANCE='NO')
+ IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_DEFLATE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SHUFFLE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SHUFFLE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_FLETCHER32_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_FLETCHER32_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SZIP_F")')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Check if the read was successful. Normally we do not perform
+ ! error checking in these examples for the sake of clarity, but in
+ ! this case we will make an exception because this is how the
+ ! fletcher32 checksum filter reports data errors.
+ !
+ IF (hdferr.LT.0)THEN
+ WRITE(*,'("Dataset read failed!")')
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+ STOP
+ ENDIF
+ !
+ ! Find the maximum value in the dataset, to verify that it was
+ ! read correctly.
+ !
+ max = MAXVAL(rdata)
+ !
+ ! Print the maximum value.
+ !
+ WRITE(*,'("Maximum value in ",A," is: ",i10)') dataset, max
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_chunk.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_chunk.F90
new file mode 100644
index 0000000..52669d6
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_chunk.F90
@@ -0,0 +1,182 @@
+! ************************************************************
+!
+! This example shows how to create a chunked dataset. The
+! program first writes integers in a hyperslab selection to
+! a chunked dataset with dataspace dimensions of DIM0xDIM1
+! and chunk size of CHUNK0xCHUNK1, then closes the file.
+! Next, it reopens the file, reads back the data, and
+! outputs it to the screen. Finally it reads the data again
+! using a different hyperslab selection, and outputs
+! the result to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************
+
+! An optional example for determining the correct HDF5 version
+! for picking the correct HDF5 API parameters. This is not
+! part of the HDF5 library.
+#include "h5_version.h"
+
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=18), PARAMETER :: filename = "h5ex_d_chunk.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 6
+ INTEGER , PARAMETER :: dim1 = 8
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 4
+
+ INTEGER :: hdferr
+ INTEGER :: layout
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/), chunk = (/chunk0,chunk1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: start, stride, count, block
+
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: i, j
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ ! Initialize data to "1", to make it easier to see the selections.
+ !
+ wdata = 1
+ !
+ ! Print the data to the screen.
+ !
+ WRITE(*, '(/,"Original Data:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') wdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, and set the chunk
+ ! size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the chunked dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Define and select the first part of the hyperslab selection.
+ !
+ start = 0
+ stride = 3
+ count(1:2) = (/2,3/)
+ block = 2
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_SET_F, start, count, &
+ hdferr, stride, block)
+ !
+ ! Define and select the second part of the hyperslab selection,
+ ! which is subtracted from the first selection by the use of
+ ! H5S_SELECT_NOTB
+ !
+ block = 1
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_NOTB_F, start, count, &
+ hdferr, stride, block)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr, file_space_id=space)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve the dataset creation property list, and print the
+ ! storage layout.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ CALL h5pget_layout_f(dcpl, layout, hdferr)
+ WRITE(*,'(/,"Storage layout for ", A," is: ")', ADVANCE='NO') dataset
+ IF(layout.EQ.H5D_COMPACT_F)THEN
+ WRITE(*,'("H5D_COMPACT_F",/)')
+ ELSE IF (layout.EQ.H5D_CONTIGUOUS_F)THEN
+ WRITE(*,'("H5D_CONTIGUOUS_F",/)')
+ ELSE IF (layout.EQ.H5D_CHUNKED_F)THEN
+ WRITE(*,'("H5D_CHUNKED_F",/)')
+#if H5_VERSION_GE(1,12,0)
+ ELSE IF (layout.EQ.H5D_VIRTUAL_F)THEN
+ WRITE(*,'("H5D_VIRTUAL_F",/)')
+#endif
+ ELSE
+ WRITE(*,'("Layout Error",/)')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '("Data as written to disk by hyberslabs:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Initialize the read array.
+ !
+ rdata = 0
+ !
+ ! Define and select the hyperslab to use for reading.
+ !
+ CALL h5dget_space_f(dset, space, hdferr)
+ start(1:2) = (/0,1/)
+ stride = 4
+ count = 2
+ block(1:2) = (/2,3/)
+
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_SET_F, start, count, &
+ hdferr, stride, block)
+ !
+ ! Read the data using the previously defined hyperslab.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr, file_space_id=space)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,"Data as read from disk by hyperslab:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_compact.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_compact.F90
new file mode 100644
index 0000000..c2e5aaf
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_compact.F90
@@ -0,0 +1,128 @@
+! ************************************************************
+!
+! This example shows how to read and write data to a compact
+! dataset. The program first writes integers to a compact
+! dataset with dataspace dimensions of DIM0xDIM1, then
+! closes the file. Next, it reopens the file, reads back
+! the data, and outputs it to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************
+
+! An optional example for determining the correct HDF5 version
+! for picking the correct HDF5 API parameters. This is not
+! part of the HDF5 library.
+#include "h5_version.h"
+
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=17), PARAMETER :: filename = "h5ex_d_compact.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+
+ INTEGER :: hdferr
+ INTEGER :: layout
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: i, j
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting maximum size to NULL sets the maximum
+ ! size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, set the layout to
+ ! compact.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_layout_f(dcpl, H5D_COMPACT_F, hdferr)
+ !
+ ! Create the dataset. We will use all default properties for this
+ ! example.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the READ section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve the dataset creation property list, and print the
+ ! storage layout.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ CALL h5pget_layout_f(dcpl, layout, hdferr)
+ WRITE(*,'(/,"Storage layout for ", A," is: ")', ADVANCE='NO') dataset
+ IF(layout.EQ.H5D_COMPACT_F)THEN
+ WRITE(*,'("H5D_COMPACT_F",/)')
+ ELSE IF (layout.EQ.H5D_CONTIGUOUS_F)THEN
+ WRITE(*,'("H5D_CONTIGUOUS_F",/)')
+ ELSE IF (layout.EQ.H5D_CHUNKED_F)THEN
+ WRITE(*,'("H5D_CHUNKED_F",/)')
+#if H5_VERSION_GE(1,12,0)
+ ELSE IF (layout.EQ.H5D_VIRTUAL_F)THEN
+ WRITE(*,'("H5D_VIRTUAL_F",/)')
+#endif
+ ELSE
+ WRITE(*,'("Layout Error",/)')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(A,":")') dataset
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90
new file mode 100644
index 0000000..faef397
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90
@@ -0,0 +1,137 @@
+!************************************************************
+!
+! This example shows how to read and write data to an
+! external dataset. The program first writes integers to an
+! external dataset with dataspace dimensions of DIM0xDIM1,
+! then closes the file. Next, it reopens the file, reads
+! back the data, and outputs the name of the external data
+! file and the data to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************/
+
+! An optional example for determining the correct HDF5 version
+! for picking the correct HDF5 API parameters. This is not
+! part of the HDF5 library.
+#include "h5_version.h"
+
+PROGRAM main
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=16), PARAMETER :: filename = "h5ex_d_extern.h5"
+ CHARACTER(LEN=18), PARAMETER :: externalname = "h5ex_d_extern.data"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+ INTEGER(SIZE_T) , PARAMETER :: name_buf_size = 32
+
+ INTEGER :: hdferr
+ INTEGER :: layout
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: start, stride, count, block
+
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ CHARACTER(LEN=name_buf_size) :: name
+ INTEGER :: i, j
+ ! This change was introduced in the 1.8.12 release
+#if H5_VERSION_GE(1,8,12)
+ INTEGER(OFF_T) :: offset = 0 ! Offset, in bytes, from thebeginning of the file to the
+ ! location in the file where the data starts.
+#else
+ INTEGER :: offset = 0
+#endif
+ INTEGER(HSIZE_T) :: bytes ! Number of bytes reserved in the file for the data
+ INTEGER(SIZE_T) :: int_size ! size of integer
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting maximum size to NULL sets the maximum
+ ! size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, set the external
+ ! file.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ ! for HDF5 versions <= 1.8.2 use:
+ CALL h5tget_size_f(H5T_NATIVE_INTEGER, int_size, hdferr)
+ bytes = int_size*dim0*dim1
+ ! else use:
+ ! bytes = INT(H5F_UNLIMITED_F,HSIZE_T)
+
+ CALL h5pset_external_f(dcpl, externalname, offset, bytes, hdferr)
+ !
+ ! Create the external dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f(file, dataset, dset, hdferr)
+ !
+ ! Retrieve dataset creation property list.
+ !
+ CALL H5Dget_create_plist_f(dset, dcpl, hdferr)
+ !
+ ! Retrieve and print the name of the external file. Here we
+ ! manually set the last field in name to null, in case the name of
+ ! the file is longer than the buffer.
+ !
+ CALL H5Pget_external_f (dcpl, 0, name_buf_size, name, offset, bytes, hdferr)
+ WRITE(*,'(A," is stored in file: ",A)') dataset, TRIM(name)
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(A,":")') dataset
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_fillval.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_fillval.F90
new file mode 100644
index 0000000..8b41e0b
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_fillval.F90
@@ -0,0 +1,140 @@
+!************************************************************
+!
+! This example shows how to set the fill value for a
+! dataset. The program first sets the fill value to
+! FILLVAL, creates a dataset with dimensions of DIM0xDIM1,
+! reads from the uninitialized dataset, and outputs the
+! contents to the screen. Next, it writes integers to the
+! dataset, reads the data back, and outputs it to the
+! screen. Finally it extends the dataset, reads from it,
+! and outputs the result to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************/
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=17), PARAMETER :: filename = "h5ex_d_fillval.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+ INTEGER , PARAMETER :: edim0 = 6
+ INTEGER , PARAMETER :: edim1 = 10
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 4
+ INTEGER , PARAMETER :: fillval = 99
+
+ INTEGER :: hdferr
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: extdims = (/edim0, edim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: chunk = (/chunk0, chunk1/)
+
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER, DIMENSION(1:edim0, 1:edim1) :: rdata2 ! Read buffer for extension
+ INTEGER :: i, j
+ INTEGER :: fillvall
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ maxdims = (/H5S_UNLIMITED_F, H5S_UNLIMITED_F/)
+
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace with unlimited dimensions.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr, maxdims)
+ !
+ ! Create the dataset creation property list, and set the chunk
+ ! size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Set the fill value for the dataset.
+ !
+ CALL h5pset_fill_value_f(dcpl, H5T_NATIVE_INTEGER, fillval, hdferr)
+ !
+ ! Set the allocation time to "early". This way we can be sure
+ ! that reading from the dataset immediately after creation will
+ ! return the fill value.
+ !
+ CALL h5pset_alloc_time_f(dcpl, H5D_ALLOC_TIME_EARLY_F,hdferr)
+ !
+ ! Create the dataset using the dataset creation property list.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Read values from the dataset, which has not been written to yet.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '("Dataset before being written to:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr, file_space_id=space)
+ !
+ ! Read the data back.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '("Dataset after being written to:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Extend the dataset.
+ !
+ CALL h5dset_extent_f(dset, extdims, hdferr)
+ !
+ ! Read from the extended dataset.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata2, extdims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '("Dataset after extension:")')
+ DO i=1, extdims(1)
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata2(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_gzip.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_gzip.F90
new file mode 100644
index 0000000..b46e3fc
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_gzip.F90
@@ -0,0 +1,164 @@
+! ************************************************************
+!
+! This example shows how to read and write data to a dataset
+! using gzip compression (also called zlib or deflate). The
+! program first checks if gzip compression is available,
+! then if it is it writes integers to a dataset using gzip,
+! then closes the file. Next, it reopens the file, reads
+! back the data, and outputs the type of compression and the
+! maximum value in the dataset to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=14), PARAMETER :: filename = "h5ex_d_gzip.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 32
+ INTEGER , PARAMETER :: dim1 = 64
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 8
+
+ INTEGER :: hdferr
+ LOGICAL :: avail
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER, DIMENSION(1:1) :: cd_values
+ INTEGER :: filter_id
+ INTEGER :: filter_info_both
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/), chunk =(/chunk0,chunk1/)
+ INTEGER(SIZE_T) :: nelmts
+ INTEGER :: flags, filter_info
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: max, i, j
+ INTEGER(SIZE_T), PARAMETER :: MaxChrLen = 80
+ CHARACTER(LEN=MaxChrLen) :: name
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Check if gzip compression is available and can be used for both
+ ! compression and decompression. Normally we do not perform error
+ ! checking in these examples for the sake of clarity, but in this
+ ! case we will make an exception because this filter is an
+ ! optional part of the hdf5 library.
+ !
+ CALL h5zfilter_avail_f(H5Z_FILTER_DEFLATE_F, avail, hdferr)
+
+ IF (.NOT.avail) THEN
+ WRITE(*,'("gzip filter not available.",/)')
+ STOP 1
+ ENDIF
+ CALL h5zget_filter_info_f(H5Z_FILTER_DEFLATE_F, filter_info, hdferr)
+
+ filter_info_both=IOR(H5Z_FILTER_ENCODE_ENABLED_F,H5Z_FILTER_DECODE_ENABLED_F)
+ IF (filter_info .NE. filter_info_both) THEN
+ WRITE(*,'("gzip filter not available for encoding and decoding.",/)')
+ STOP 1
+ ENDIF
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-2)*(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, add the gzip
+ ! compression filter and set the chunk size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_deflate_f(dcpl, 9, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve dataset creation property list.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ !
+ ! Retrieve and print the filter type. Here we only retrieve the
+ ! first filter because we know that we only added one filter.
+ !
+ nelmts = 1
+ CALL H5Pget_filter_f(dcpl, 0, flags, nelmts, cd_values, MaxChrLen, name, filter_id, hdferr)
+ WRITE(*,'("Filter type is: ")', ADVANCE='NO')
+ IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_DEFLATE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SHUFFLE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SHUFFLE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_FLETCHER32_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_FLETCHER32_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SZIP_F")')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Check if the read was successful. Normally we do not perform
+ ! error checking in these examples for the sake of clarity, but in
+ ! this case we will make an exception because this is how the
+ ! fletcher32 checksum filter reports data errors.
+ !
+ IF (hdferr.LT.0)THEN
+ WRITE(*,'("Dataset read failed!")')
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+ STOP
+ ENDIF
+ !
+ ! Find the maximum value in the dataset, to verify that it was
+ ! read correctly.
+ !
+ max = MAXVAL(rdata)
+ !
+ ! Print the maximum value.
+ !
+ WRITE(*,'("Maximum value in ",A," is: ",i10)') dataset, max
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_hyper.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_hyper.F90
new file mode 100644
index 0000000..e49c20e
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_hyper.F90
@@ -0,0 +1,148 @@
+!************************************************************
+!
+! This example shows how to read and write data to a
+! dataset by hyberslabs. The program first writes integers
+! in a hyperslab selection to a dataset with dataspace
+! dimensions of DIM0xDIM1, then closes the file. Next, it
+! reopens the file, reads back the data, and outputs it to
+! the screen. Finally it reads the data again using a
+! different hyperslab selection, and outputs the result to
+! the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************/
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=15), PARAMETER :: filename = "h5ex_d_hyper.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 6
+ INTEGER , PARAMETER :: dim1 = 8
+
+ INTEGER(HID_T) :: file, space, dset ! Handles
+ INTEGER :: hdferr
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: start, stride, count, block
+
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: i, j
+
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ ! Initialize data to "1", to make it easier to see the selections.
+ !
+ wdata = 1
+ !
+ ! Print the data to the screen.
+ !
+ WRITE(*, '(/,"Original Data:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') wdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ ! Create the dataset. We will use all default properties for this
+ ! example.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr)
+ !
+ ! Define and select the first part of the hyperslab selection.
+ !
+ start = 0
+ stride = 3
+ count(1:2) = (/2,3/)
+ block = 2
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_SET_F, start, count, &
+ hdferr, stride, block)
+ !
+ ! Define and select the second part of the hyperslab selection,
+ ! which is subtracted from the first selection by the use of
+ ! H5S_SELECT_NOTB
+ !
+ block = 1
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_NOTB_F, start, count, &
+ hdferr, stride, block)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr, file_space_id=space)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,"Data as written to disk by hyberslabs:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Initialize the read array.
+ !
+ rdata = 0
+ !
+ ! Define and select the hyperslab to use for reading.
+ !
+ CALL h5dget_space_f(dset, space, hdferr)
+
+ start(1:2)=(/0,1/)
+ stride = 4
+ count = 2
+ BLOCK(1:2)=(/2,3/)
+
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_SET_F, start, count, &
+ hdferr, stride, block)
+ !
+ ! Read the data using the previously defined hyperslab.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr, file_space_id=space)
+ !
+ ! Output the DATA to the screen.
+ !
+ WRITE(*, '(/,"Data as read from disk by hyberslabs:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ WRITE(*,'(/)')
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_nbit.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_nbit.F90
new file mode 100644
index 0000000..27e4d52
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_nbit.F90
@@ -0,0 +1,160 @@
+! ************************************************************
+!
+! This example shows how to read and write data to a dataset
+! using the N-Bit filter. The program first checks if the
+! N-Bit filter is available, then if it is it writes
+! integers to a dataset using N-Bit, then closes the file.
+! Next, it reopens the file, reads back the data, and
+! outputs the type of filter and the maximum value in the
+! dataset to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************
+
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=14), PARAMETER :: filename = "h5ex_d_nbit.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 32
+ INTEGER , PARAMETER :: dim1 = 64
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 8
+
+ INTEGER :: hdferr
+ INTEGER(HID_T) :: file, space, dset, dtype, dcpl ! Handles
+ INTEGER(SIZE_T) :: nelmts = 50
+ INTEGER, DIMENSION(1:50) :: cd_values
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/), chunk = (/chunk0,chunk1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: start, stride, count, block
+ LOGICAL :: avail
+ INTEGER :: filter_id
+ INTEGER :: filter_info_both
+ INTEGER :: flags, filter_info
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: max, i, j
+ INTEGER, PARAMETER :: MaxChrLen = 80
+ CHARACTER(LEN=MaxChrLen) :: name
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ ! Check if N-Bit compression is available and can be used for both
+ ! compression and decompression. Normally we do not perform error
+ ! checking in these examples for the sake of clarity, but in this
+ ! case we will make an exception because this filter is an
+ ! optional part of the hdf5 library.
+ !
+ CALL h5zfilter_avail_f(H5Z_FILTER_NBIT_F, avail, hdferr)
+ IF (.NOT.avail) THEN
+ WRITE(*,'("N-Bit filter not available.",/)')
+ STOP 1
+ ENDIF
+
+ CALL h5zget_filter_info_f(H5Z_FILTER_NBIT_F, filter_info, hdferr)
+
+ filter_info_both=IOR(H5Z_FILTER_ENCODE_ENABLED_F,H5Z_FILTER_DECODE_ENABLED_F)
+ IF (filter_info .NE. filter_info_both) THEN
+ WRITE(*,'("N-Bit filter not available for encoding and decoding.",/)')
+ STOP 1
+ ENDIF
+
+ ! Initialize data.
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the datatype to use with the N-Bit filter. It has an
+ ! uncompressed size of 32 bits, but will have a size of 16 bits
+ ! after being packed by the N-Bit filter.
+ !
+ CALL h5tcopy_f (H5T_STD_I32LE, dtype, hdferr)
+ CALL h5tset_precision_f (dtype, INT(16,SIZE_T), hdferr)
+ CALL h5tset_offset_f (dtype, INT(5,SIZE_T), hdferr)
+ !
+ ! Create the dataset creation property list, add the N-Bit filter
+ ! and set the chunk size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_nbit_f(dcpl, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset, dtype, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5tclose_f(dtype, hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve dataset creation property list.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ !
+ ! Retrieve and print the filter type. Here we only retrieve the
+ ! first filter because we know that we only added one filter.
+ !
+ CALL H5Pget_filter_f(dcpl, 0, flags, nelmts, cd_values, INT(MaxChrLen, SIZE_T), name, filter_id, hdferr)
+ WRITE(*,'("Filter type is: ")', ADVANCE='NO')
+ IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_DEFLATE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SHUFFLE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SHUFFLE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_FLETCHER32_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_FLETCHER32_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SZIP_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_NBIT_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_NBIT_F")')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Find the maximum value in the dataset, to verify that it was
+ ! read correctly.
+ !
+ max = MAXVAL(rdata)
+ !
+ ! Print the maximum value.
+ !
+ WRITE(*,'("Maximum value in ",A," is: ",i10)') dataset, max
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr.F90
new file mode 100644
index 0000000..5155055
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr.F90
@@ -0,0 +1,93 @@
+! ************************************************************
+!
+! This example shows how to read and write data to a
+! dataset. The program first writes integers to a dataset
+! with dataspace dimensions of DIM0xDIM1, then closes the
+! file. Next, it reopens the file, reads back the data, and
+! outputs it to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+! ************************************************************
+
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=14), PARAMETER :: filename = "h5ex_d_rdwr.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+
+ INTEGER :: hdferr
+ INTEGER(HID_T) :: file, space, dset ! handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/) ! size read/write buffer
+ INTEGER , DIMENSION(1:dim0,1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: i, j
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset. We will use all default properties for this
+ ! example.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,A,":")') dataset
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ WRITE(*, '(/)')
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind.F90
new file mode 100644
index 0000000..0d7ba79
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind.F90
@@ -0,0 +1,135 @@
+! ************************************************************
+!
+! This example shows how to read and write real and integer
+! data where the precision is set by SELECTED_REAL_KIND and
+! SELECTED_INT_KIND.
+!
+! The program first writes integers
+! and reals to a dataset with dataspace dimensions of DIM0xDIM1,
+! then closes the file. Next, it reopens the file, reads back
+! the data, and outputs it to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+! with --enable-fortran2003
+!
+! ************************************************************
+
+PROGRAM main
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+! Set the precision for the real KINDs
+
+ INTEGER, PARAMETER :: sp = KIND(1.0), &
+ dp = SELECTED_REAL_KIND(2*PRECISION(1.0_sp)), &
+ qp = SELECTED_REAL_KIND(2*PRECISION(1.0_dp))
+
+ ! -10 10
+ ! Find the INTEGER KIND that can represent values from 10 to 10
+ !
+ INTEGER, PARAMETER :: ip = SELECTED_INT_KIND(10)
+ !
+ CHARACTER(LEN=23), PARAMETER :: filename = "h5ex_d_rdwr_kind.h5"
+ CHARACTER(LEN=4) , PARAMETER :: dataset_r = "DS_R"
+ CHARACTER(LEN=4) , PARAMETER :: dataset_i = "DS_I"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+
+ INTEGER :: hdferr
+ INTEGER(HID_T) :: file, space, dset_r, dset_i ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/) ! Size read/write buffer
+ INTEGER(KIND=ip), DIMENSION(1:dim0,1:dim1), TARGET :: wdata_i, rdata_i ! Write/Read buffers
+ REAL(kIND=dp), DIMENSION(1:dim0,1:dim1), TARGET :: wdata_r, rdata_r ! Write/Read buffers
+ INTEGER :: i, j
+ TYPE(C_PTR) :: f_ptr
+
+ INTEGER(HID_T) :: h5_kind_type_r, h5_kind_type_i ! HDF type corresponding to the specified KIND
+
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata_i(i,j) = (i-1)*(j-1)-(j-1)
+ wdata_r(i,j) = REAL(wdata_i(i,j),KIND=dp)
+ ENDDO
+ ENDDO
+ !
+ ! Find the HDF type corresponding to the specified KIND
+ !
+ h5_kind_type_r = h5kind_to_type(dp,H5_REAL_KIND)
+ h5_kind_type_i = h5kind_to_type(ip,H5_INTEGER_KIND)
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset_i, h5_kind_type_i, space, dset_i, hdferr)
+ CALL h5dcreate_f(file, dataset_r, h5_kind_type_r, space, dset_r, hdferr)
+ !
+ ! Write the data to the dataset.
+ !
+ f_ptr = C_LOC(wdata_i(1,1))
+ CALL h5dwrite_f(dset_i, h5_kind_type_i, f_ptr, hdferr)
+ f_ptr = C_LOC(wdata_r(1,1))
+ CALL h5dwrite_f(dset_r, h5_kind_type_r, f_ptr, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset_r, hdferr)
+ CALL h5dclose_f(dset_i, hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f(file, dataset_i, dset_i, hdferr)
+ CALL h5dopen_f(file, dataset_r, dset_r, hdferr)
+ !
+ ! Read the data using the default properties.
+ !
+ f_ptr = C_LOC(rdata_i(1,1))
+ CALL h5dread_f(dset_i, h5_kind_type_i, f_ptr, hdferr)
+ f_ptr = C_LOC(rdata_r(1,1))
+ CALL h5dread_f(dset_r, h5_kind_type_r, f_ptr, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,A,":")') dataset_i
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata_i(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ WRITE(*, '(/,A,":")') dataset_r
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80f7.3)', ADVANCE='NO') rdata_r(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ WRITE(*, '(/)')
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset_i , hdferr)
+ CALL h5dclose_f(dset_r , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind_F03.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind_F03.F90
new file mode 100644
index 0000000..e13a854
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr_kind_F03.F90
@@ -0,0 +1,135 @@
+! ************************************************************
+!
+! This example shows how to read and write real and integer
+! data where the precision is set by SELECTED_REAL_KIND and
+! SELECTED_INT_KIND.
+!
+! The program first writes integers
+! and reals to a dataset with dataspace dimensions of DIM0xDIM1,
+! then closes the file. Next, it reopens the file, reads back
+! the data, and outputs it to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+! with --enable-fortran2003
+!
+! ************************************************************
+
+PROGRAM main
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+! Set the precision for the real KINDs
+
+ INTEGER, PARAMETER :: sp = KIND(1.0), &
+ dp = SELECTED_REAL_KIND(2*PRECISION(1.0_sp)), &
+ qp = SELECTED_REAL_KIND(2*PRECISION(1.0_dp))
+
+ ! -10 10
+ ! Find the INTEGER KIND that can represent values from 10 to 10
+ !
+ INTEGER, PARAMETER :: ip = SELECTED_INT_KIND(10)
+ !
+ CHARACTER(LEN=23), PARAMETER :: filename = "h5ex_d_rdwr_kind_F03.h5"
+ CHARACTER(LEN=4) , PARAMETER :: dataset_r = "DS_R"
+ CHARACTER(LEN=4) , PARAMETER :: dataset_i = "DS_I"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+
+ INTEGER :: hdferr
+ INTEGER(HID_T) :: file, space, dset_r, dset_i ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/) ! Size read/write buffer
+ INTEGER(KIND=ip), DIMENSION(1:dim0,1:dim1), TARGET :: wdata_i, rdata_i ! Write/Read buffers
+ REAL(kIND=dp), DIMENSION(1:dim0,1:dim1), TARGET :: wdata_r, rdata_r ! Write/Read buffers
+ INTEGER :: i, j
+ TYPE(C_PTR) :: f_ptr
+
+ INTEGER(HID_T) :: h5_kind_type_r, h5_kind_type_i ! HDF type corresponding to the specified KIND
+
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata_i(i,j) = (i-1)*(j-1)-(j-1)
+ wdata_r(i,j) = (REAL(i,kind=ip)-1.0_ip)*(REAL(j,kind=ip)-1.0_ip)-(REAL(j,kind=ip)-1.0_ip)
+ ENDDO
+ ENDDO
+ !
+ ! Find the HDF type corresponding to the specified KIND
+ !
+ h5_kind_type_r = h5kind_to_type(dp,H5_REAL_KIND)
+ h5_kind_type_i = h5kind_to_type(ip,H5_INTEGER_KIND)
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset_i, h5_kind_type_i, space, dset_i, hdferr)
+ CALL h5dcreate_f(file, dataset_r, h5_kind_type_r, space, dset_r, hdferr)
+ !
+ ! Write the data to the dataset.
+ !
+ f_ptr = C_LOC(wdata_i(1,1))
+ CALL h5dwrite_f(dset_i, h5_kind_type_i, f_ptr, hdferr)
+ f_ptr = C_LOC(wdata_r(1,1))
+ CALL h5dwrite_f(dset_r, h5_kind_type_r, f_ptr, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset_r, hdferr)
+ CALL h5dclose_f(dset_i, hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f(file, dataset_i, dset_i, hdferr)
+ CALL h5dopen_f(file, dataset_r, dset_r, hdferr)
+ !
+ ! Read the data using the default properties.
+ !
+ f_ptr = C_LOC(rdata_i(1,1))
+ CALL h5dread_f(dset_i, h5_kind_type_i, f_ptr, hdferr)
+ f_ptr = C_LOC(rdata_r(1,1))
+ CALL h5dread_f(dset_r, h5_kind_type_r, f_ptr, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,A,":")') dataset_i
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata_i(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ WRITE(*, '(/,A,":")') dataset_r
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80f7.3)', ADVANCE='NO') rdata_r(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ WRITE(*, '(/)')
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset_i , hdferr)
+ CALL h5dclose_f(dset_r , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_soint.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_soint.F90
new file mode 100644
index 0000000..120e896
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_soint.F90
@@ -0,0 +1,173 @@
+!************************************************************
+!
+! This example shows how to read and write data to a dataset
+! using the Scale-Offset filter. The program first checks
+! if the Scale-Offset filter is available, then if it is it
+! writes integers to a dataset using Scale-Offset, then
+! closes the file Next, it reopens the file, reads back the
+! data, and outputs the type of filter and the maximum value
+! in the dataset to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+!************************************************************
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=15), PARAMETER :: filename = "h5ex_d_soint.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 32
+ INTEGER , PARAMETER :: dim1 = 64
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 8
+
+ INTEGER :: hdferr
+ LOGICAL :: avail
+ INTEGER(HID_T) :: file, space, dset, dtype, dcpl ! Handles
+
+ INTEGER(SIZE_T) :: nelmts = 50
+ INTEGER, DIMENSION(1:50) :: cd_values
+ INTEGER :: filter_id
+ INTEGER :: filter_info_both
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/), chunk =(/chunk0,chunk1/)
+ INTEGER :: flags, filter_info
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: max, min
+ INTEGER :: i, j
+ INTEGER, PARAMETER :: MaxChrLen = 80
+ CHARACTER(LEN=MaxChrLen) :: name
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Check if Scale-Offset compression is available and can be used
+ ! for both compression and decompression. Normally we do not
+ ! perform error checking in these examples for the sake of
+ ! clarity, but in this case we will make an exception because this
+ ! filter is an optional part of the hdf5 library.
+ !
+ CALL h5zfilter_avail_f(H5Z_FILTER_SCALEOFFSET_F, avail, hdferr)
+
+ IF (.NOT.avail) THEN
+ WRITE(*,'("Scale-Offset filter not available.",/)')
+ STOP
+ ENDIF
+
+ CALL h5zget_filter_info_f(H5Z_FILTER_SCALEOFFSET_F, filter_info, hdferr)
+
+ filter_info_both=IOR(H5Z_FILTER_ENCODE_ENABLED_F,H5Z_FILTER_DECODE_ENABLED_F)
+ IF (filter_info .NE. filter_info_both) THEN
+ WRITE(*,'("Scale-Offset filter not available for encoding and decoding.",/)')
+ STOP
+ ENDIF
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+
+ !
+ ! Find the maximum value in the dataset, to verify that it was
+ ! read correctly.
+ !
+ max = MAXVAL(wdata)
+ min = MINVAL(wdata)
+ !
+ ! Print the maximum value.
+ !
+ WRITE(*,'("Maximum value in write buffer is: ",i4)') max
+ WRITE(*,'("Minimum value in write buffer is: ",i4)') min
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, add the Scale-Offset
+ ! filter and set the chunk size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_scaleoffset_f(dcpl, H5Z_SO_INT_F, H5Z_SO_INT_MINBITS_DEFAULT_F, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve dataset creation property list.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ !
+ ! Retrieve and print the filter type. Here we only retrieve the
+ ! first filter because we know that we only added one filter.
+ !
+ nelmts = 1
+ CALL H5Pget_filter_f(dcpl, 0, flags, nelmts, cd_values, INT(MaxChrLen, SIZE_T), name, filter_id, hdferr)
+ WRITE(*,'("Filter type is: ")', ADVANCE='NO')
+ IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_DEFLATE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SHUFFLE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SHUFFLE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_FLETCHER32_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_FLETCHER32_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SZIP_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_NBIT_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_NBIT_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SCALEOFFSET_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SCALEOFFSET_F")')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ !
+ ! Find the maximum and minimum value in the dataset, to verify that it was
+ ! read correctly.
+ !
+ max = MAXVAL(rdata)
+ min = MINVAL(rdata)
+ !
+ ! Print the maximum value.
+ !
+ WRITE(*,'("Maximum value in ",A," is: ",i4)') dataset,max
+ WRITE(*,'("Minimum value in ",A," is: ",i4)') dataset,min
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_szip.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_szip.F90
new file mode 100644
index 0000000..f66036e
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_szip.F90
@@ -0,0 +1,157 @@
+!************************************************************
+!
+! This example shows how to read and write data to a dataset
+! using szip compression. The program first checks if
+! szip compression is available, then if it is it writes
+! integers to a dataset using szip, then closes the file.
+! Next, it reopens the file, reads back the data, and
+! outputs the type of compression and the maximum value in
+! the dataset to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+!************************************************************
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=14), PARAMETER :: filename = "h5ex_d_szip.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 32
+ INTEGER , PARAMETER :: dim1 = 64
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 8
+
+ INTEGER :: hdferr
+ LOGICAL :: avail
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER, DIMENSION(1:4) :: cd_values
+ INTEGER :: filter_id
+ INTEGER :: filter_info_both
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/), chunk =(/chunk0,chunk1/)
+ INTEGER(SIZE_T) :: nelmts
+ INTEGER :: flags, filter_info
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: max, i, j
+ INTEGER, PARAMETER :: MaxChrLen = 80
+ CHARACTER(LEN=MaxChrLen) :: name
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Check if gzip compression is available and can be used for both
+ ! compression and decompression. Normally we do not perform error
+ ! checking in these examples for the sake of clarity, but in this
+ ! case we will make an exception because this filter is an
+ ! optional part of the hdf5 library.
+ !
+ CALL h5zfilter_avail_f(H5Z_FILTER_SZIP_F, avail, hdferr)
+
+ IF (.NOT.avail) THEN
+ WRITE(*,'("szip filter not available.",/)')
+ STOP 1
+ ENDIF
+ CALL h5zget_filter_info_f(H5Z_FILTER_SZIP_F, filter_info, hdferr)
+
+ filter_info_both=IOR(H5Z_FILTER_ENCODE_ENABLED_F,H5Z_FILTER_DECODE_ENABLED_F)
+ IF (filter_info .NE. filter_info_both) THEN
+ WRITE(*,'("szip filter not available for encoding and decoding.",/)')
+ STOP 1
+ ENDIF
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-1)*(j-1)-(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset creation property list, add the szip
+ ! compression filter and set the chunk size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_szip_f(dcpl, H5_SZIP_NN_OM_F, 8, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Retrieve dataset creation property list.
+ !
+ CALL h5dget_create_plist_f(dset, dcpl, hdferr)
+ !
+ ! Retrieve and print the filter type. Here we only retrieve the
+ ! first filter because we know that we only added one filter.
+ !
+
+ nelmts = 1
+ CALL H5Pget_filter_f(dcpl, 0, flags, nelmts, cd_values, INT(MaxChrLen,SIZE_T), name, filter_id, hdferr)
+ WRITE(*,'("Filter type is: ")', ADVANCE='NO')
+ IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_DEFLATE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SHUFFLE_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SHUFFLE_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_FLETCHER32_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_FLETCHER32_F")')
+ ELSE IF(filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
+ WRITE(*,'(T2,"H5Z_FILTER_SZIP_F")')
+! DEFINED ONLY IN F2003 hdf5 branch
+! ELSE IF(filter_id.EQ.H5Z_FILTER_NBIT_F)THEN
+! WRITE(*,'(T2,"H5Z_FILTER_NBIT_F")')
+! ELSE IF(filter_id.EQ.H5Z_FILTER_SCALEOFFSET_F)THEN
+! WRITE(*,'(T2,"H5Z_FILTER_SCALEOFFSET_F")')
+ ENDIF
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Find the maximum value in the dataset, to verify that it was
+ ! read correctly.
+ !
+ max = MAXVAL(rdata)
+ !
+ ! Print the maximum value.
+ !
+ WRITE(*,'("Maximum value in ",A," is: ",i10)') dataset, max
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_transform.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_transform.F90
new file mode 100644
index 0000000..58767fd
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_transform.F90
@@ -0,0 +1,133 @@
+!************************************************************
+!
+! This example shows how to read and write data to a dataset
+! using a data transform expression. The program first
+! writes integers to a dataset using the transform
+! expression TRANSFORM, then closes the file. Next, it
+! reopens the file, reads back the data without a transform,
+! and outputs the data to the screen. Finally it reads the
+! data using the transform expression RTRANSFORM and outputs
+! the results to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+!************************************************************
+PROGRAM main
+
+ USE HDF5
+
+ IMPLICIT NONE
+
+ CHARACTER(LEN=19), PARAMETER :: filename = "h5ex_d_transform.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+ CHARACTER(LEN=3) , PARAMETER :: transform = "x+1"
+ CHARACTER(LEN=3) , PARAMETER :: rtransform = "x-1"
+
+ INTEGER(HID_T) :: file, space, dset, dxpl ! Handles
+ INTEGER :: hdferr
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER, DIMENSION(1:dim0, 1:dim1) :: wdata, & ! Write buffer
+ rdata ! Read buffer
+ INTEGER :: i, j
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-2)*(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '("Original Data:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') wdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace. Setting maximum size to NULL sets the maximum
+ ! size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, hdferr)
+ !
+ ! Create the dataset transfer property list and define the
+ ! transform expression.
+ !
+ CALL h5pcreate_f(H5P_DATASET_XFER_F, dxpl, hdferr)
+ CALL h5pset_data_transform_f (dxpl, transform, hdferr)
+ !
+ ! Create the dataset using the default properties. Unfortunately
+ ! we must save as a native type or the transform operation will
+ ! fail.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_NATIVE_INTEGER, space, dset, hdferr)
+ !
+ ! Write the data to the dataset using the dataset transfer
+ ! property list.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr,xfer_prp=dxpl)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dxpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we begin the read section of this example.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,"Data as written with transform ",A,":")') transform
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Create the dataset transfer property list and define the
+ ! transform expression.
+ !
+ CALL h5pcreate_f(H5P_DATASET_XFER_F, dxpl, hdferr)
+ CALL h5pset_data_transform_f (dxpl, rtransform, hdferr)
+ !
+ ! Read the data using the dataset transfer property list.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr,xfer_prp=dxpl)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,"Data as written with transform ",A," and read with transform ",A,":")') &
+ transform, rtransform
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dxpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_unlimmod.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_unlimmod.F90
new file mode 100644
index 0000000..60bf558
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_unlimmod.F90
@@ -0,0 +1,175 @@
+!************************************************************
+!
+! This example shows how to create and extend an unlimited
+! dataset. The program first writes integers to a dataset
+! with dataspace dimensions of DIM0xDIM1, then closes the
+! file. Next, it reopens the file, reads back the data,
+! outputs it to the screen, extends the dataset, and writes
+! new data to the entire extended dataset. Finally it
+! reopens the file again, reads back the data, and outputs it
+! to the screen.
+!
+! This file is intended for use with HDF5 Library version 1.8
+!
+!************************************************************
+PROGRAM main
+
+ USE HDF5
+ IMPLICIT NONE
+
+ CHARACTER(LEN=18), PARAMETER :: filename = "h5ex_d_unlimmod.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+ INTEGER , PARAMETER :: edim0 = 6
+ INTEGER , PARAMETER :: edim1 = 10
+ INTEGER , PARAMETER :: chunk0 = 4
+ INTEGER , PARAMETER :: chunk1 = 4
+
+ INTEGER(HID_T) :: file, space, dset, dcpl ! Handles
+ INTEGER :: hdferr
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: chunk =(/chunk0, chunk1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: extdims =(/edim0, edim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+
+ INTEGER, DIMENSION(1:dim0, 1:dim1), TARGET :: wdata ! Write buffer
+ INTEGER, DIMENSION(1:edim0, 1:edim1), TARGET :: wdata2 ! Write buffer for extension
+ INTEGER :: i, j
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: ndims
+ INTEGER, ALLOCATABLE, DIMENSION(:,:), TARGET :: rdata ! Read buffer
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = (i-2)*(j-1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create dataspace with unlimited dimensions.
+ !
+ maxdims = (/H5S_UNLIMITED_F, H5S_UNLIMITED_F/)
+ CALL h5screate_simple_f(2, dims, space, hdferr, maxdims)
+ !
+ ! Create the dataset creation property list, and set the chunk
+ ! size.
+ !
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, hdferr)
+ CALL h5pset_chunk_f(dcpl, 2, chunk, hdferr)
+ !
+ ! Create the unlimited dataset.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_I32LE, space, dset, hdferr, dcpl)
+ !
+ ! Write the data to the dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata, dims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ CALL h5pclose_f(dcpl , hdferr)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! In this next section we read back the data, extend the dataset,
+ ! and write new data to the entire dataset.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDWR_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Get dataspace and allocate memory for read buffer. This is a
+ ! two dimensional dataset so the dynamic allocation must be done
+ ! in steps.
+ !
+ CALL h5dget_space_f(dset, space, hdferr)
+ CALL h5sget_simple_extent_dims_f(space, dims, ndims, hdferr)
+ !
+ ! Allocate buffer for reading
+ !
+ ALLOCATE(rdata(1:dims(1),1:dims(2)))
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,"Dataset before extension:")')
+ DO i=1, dim0
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Extend the dataset.
+ !
+ CALL h5dset_extent_f(dset, extdims, hdferr)
+ !
+ ! Initialize data for writing to the extended dataset.
+ !
+ DO i = 1, edim0
+ DO j = 1, edim1
+ wdata2(i,j) = j-1
+ ENDDO
+ ENDDO
+ !
+ ! Write the data to the extended dataset.
+ !
+ CALL h5dwrite_f(dset, H5T_NATIVE_INTEGER, wdata2, extdims, hdferr)
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+ !
+ ! Now we simply read back the data and output it to the screen.
+ !
+ !
+ ! Open file and dataset using the default properties.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, hdferr)
+ CALL h5dopen_f (file, dataset, dset, hdferr)
+ !
+ ! Get dataspace and allocate memory for the read buffer as before.
+ !
+ CALL h5dget_space_f(dset, space, hdferr)
+ CALL h5sget_simple_extent_dims_f(space, dims, ndims, hdferr)
+
+ ALLOCATE( rdata(1:extdims(1),1:extdims(2)) )
+ !
+ ! Read the data using the default properties.
+ !
+ CALL h5dread_f(dset, H5T_NATIVE_INTEGER, rdata, dims, hdferr)
+ !
+ ! Output the data to the screen.
+ !
+ WRITE(*, '(/,"Dataset after extension:")')
+ DO i=1, dims(1)
+ WRITE(*,'(" [")', ADVANCE='NO')
+ WRITE(*,'(80i3)', ADVANCE='NO') rdata(i,:)
+ WRITE(*,'(" ]")')
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL h5dclose_f(dset , hdferr)
+ CALL h5sclose_f(space, hdferr)
+ CALL h5fclose_f(file , hdferr)
+
+END PROGRAM main
diff --git a/HDF5Examples/FORTRAN/H5D/test.sh.in b/HDF5Examples/FORTRAN/H5D/test.sh.in
new file mode 100755
index 0000000..76dbbcd
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/test.sh.in
@@ -0,0 +1,211 @@
+#! /bin/sh
+#
+# 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 files COPYING and Copyright.html. COPYING can be found at the root
+# of the source code distribution tree; Copyright.html can be found at the
+# root level of an installed copy of the electronic HDF5 document set and
+# is linked from the top-level documents page. It can also be found at
+# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
+# access to either file, you may request a copy from help@hdfgroup.org.
+
+srcdir=@srcdir@
+
+
+case $FC in
+*/*) H5DUMP=`echo $FC | sed -e 's/\/[^/]*$/\/h5dump/'`;
+ test -x $H5DUMP || H5DUMP=h5dump;;
+*) H5DUMP=h5dump;;
+esac
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ;;
+ *) ECHO_N= ECHO_C='\c' ;;
+esac
+ECHO_N="echo $ECHO_N"
+
+
+exout() {
+ $*
+}
+
+dumpout() {
+ $H5DUMP $*
+}
+
+# compare current version, required version.
+# returns if cur_ver < req_ver is true.
+version_compare() {
+ version_lt=0
+ if [ ! "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]; then
+ version_lt=1
+ fi
+}
+
+H5_LIBVER=@H5_LIBVER@
+H5_LIBVER_DIR=@H5_LIBVER_DIR@
+
+topics="alloc \
+ checksum \
+ chunk \
+ compact \
+ extern \
+ fillval \
+ gzip \
+ hyper \
+ rdwr \
+ soint \
+ szip \
+ unlimmod"
+
+FORTRAN_2003_CONDITIONAL_F="@FORTRAN_2003_CONDITIONAL_F@"
+
+if [ "$FORTRAN_2003_CONDITIONAL_F" = "Xyes" ]; then
+ topics="$topics rdwr_kind"
+fi
+
+return_val=0
+
+#Remove external data file from h5ex_d_extern
+rm -f h5ex_d_extern.data
+
+for topic in $topics
+do
+ fname=h5ex_d_$topic
+ $ECHO_N "Testing FORTRAN/H5D/$fname...$ECHO_C"
+ exout ./$fname >tmp.test
+ status=$?
+ if test $status -eq 1
+ then
+ echo " Unsupported feature"
+ status=0
+ else
+ if [ "$topic" = "alloc" ]; then
+ # Check if the only difference is the size of the unallocated space. This
+ # was fixed later in HDF5 to be of zero size.
+ status=0
+ diff tmp.test $srcdir/tfiles/18/$fname.tst > tmp.diff
+ if [ $? -ne 0 ]; then
+ NumOfFinds=`grep -c "0 bytes" tmp.diff | wc -l`
+ rm -f tmp.diff
+ if [ "$NumOfFinds" -gt "1" ]; then
+ status=1
+ fi
+ fi
+ else
+ cmp -s tmp.test $srcdir/tfiles/18/$fname.tst
+ status=$?
+ fi
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ dumpout $fname.h5 >tmp.test
+ rm -f $fname.h5
+ cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl
+ status=$?
+ if test $status -ne 0
+ then
+ # test to see if the only difference is because of big-endian and little-endian
+ diff tmp.test $srcdir/tfiles/18/$fname.ddl > tmp.diff
+ echo " "
+ NumOfFinds=`grep -c "DATATYPE" tmp.diff`
+ NumOfFinds=`expr $NumOfFinds \* 2`
+ NumOfLines=`wc -l <tmp.diff`
+ rm -f tmp.diff
+ if test $NumOfLines -gt $NumOfFinds
+ then
+ echo " FAILED!"
+ else
+ echo " *Inconsequential difference* ... Passed"
+ status=0
+ fi
+ else
+ echo " Passed"
+ fi
+ fi
+ return_val=`expr $status + $return_val`
+ fi
+done
+
+#######Non-standard tests#######
+USE_ALT=""
+### Set default tfiles directory for tests
+nbitdir="18"
+version_compare "$H5_LIBVER" "1.8.23"
+# check if HDF5 version is < 1.8.23
+if [ "$version_lt" = 1 ]; then
+ USE_ALT="22"
+else
+# check if HDF5 version is < 1.10.8
+ version_compare "$H5_LIBVER" "1.10.8"
+ if [ "$version_lt" = 1 ]; then
+ USE_ALT="07"
+ nbitdir="110"
+ fi
+fi
+
+topics="nbit"
+for topic in $topics18
+do
+ fname=h5ex_d_$topic
+ $ECHO_N "Testing C/H5D/$fname...$ECHO_C"
+ exout ./$fname >tmp.test
+ status=$?
+ if test $status -eq 1
+ then
+ echo " Unsupported feature"
+ status=0
+ else
+ if [[ $fname == "h5ex_d_nbit" ]]
+ then
+ tdir=$nbitdir
+ if [[ $USE_ALT == "" ]]
+ then
+ ### set USE_ALT=07 if not set above
+ USE_ALT="07"
+ fi
+ else
+ tdir=18
+ ### unset USE_ALT for the other topics
+ USE_ALT=""
+ fi
+ cmp -s tmp.test $srcdir/tfiles/18/$fname.tst
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ if [[ $fname == "h5ex_d_transform" ]]
+ then
+ targ="-n"
+ else
+ targ=""
+ fi
+ dumpout $targ $fname.h5 >tmp.test
+ rm -f $fname.h5
+ cmp -s tmp.test $srcdir/tfiles/$tdir/$fname$USE_ALT.ddl
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ echo " Passed"
+ fi
+ fi
+ return_val=`expr $status + $return_val`
+ fi
+done
+
+
+rm -f tmp.test
+echo "$return_val tests failed in FORTRAN/H5D/"
+exit $return_val
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/110/h5ex_d_nbit07.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/110/h5ex_d_nbit07.ddl
new file mode 100644
index 0000000..614e582
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/110/h5ex_d_nbit07.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_nbit.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE 32-bit little-endian integer
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/114/h5ex_d_alloc.tst b/HDF5Examples/FORTRAN/H5D/tfiles/114/h5ex_d_alloc.tst
new file mode 100644
index 0000000..f7b8aa2
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/114/h5ex_d_alloc.tst
@@ -0,0 +1,18 @@
+
+Creating datasets...
+
+DS1 has allocation time H5D_ALLOC_TIME_LATE_F
+DS2 has allocation time H5D_ALLOC_TIME_EARLY_F
+
+Space for DS1 has not been allocated.
+Storage size for DS1 is: 0 bytes.
+Space for DS2 has been allocated.
+Storage size for DS2 is: 112 bytes.
+
+Writing data...
+
+Space for DS1 has been allocated.
+Storage size for DS1 is: 112 bytes.
+Space for DS2 has been allocated.
+Storage size for DS2 is: 112 bytes.
+
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.ddl
new file mode 100644
index 0000000..1421d17
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.ddl
@@ -0,0 +1,30 @@
+HDF5 "h5ex_d_alloc.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 1, 2, 3,
+ (1,0): 0, 2, 4, 6,
+ (2,0): 0, 3, 6, 9,
+ (3,0): 0, 4, 8, 12,
+ (4,0): 0, 5, 10, 15,
+ (5,0): 0, 6, 12, 18,
+ (6,0): 0, 7, 14, 21
+ }
+ }
+ DATASET "DS2" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 1, 2, 3,
+ (1,0): 0, 2, 4, 6,
+ (2,0): 0, 3, 6, 9,
+ (3,0): 0, 4, 8, 12,
+ (4,0): 0, 5, 10, 15,
+ (5,0): 0, 6, 12, 18,
+ (6,0): 0, 7, 14, 21
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.tst
new file mode 100644
index 0000000..4591077
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_alloc.tst
@@ -0,0 +1,18 @@
+
+Creating datasets...
+
+DS1 has allocation time H5D_ALLOC_TIME_LATE_F
+DS2 has allocation time H5D_ALLOC_TIME_EARLY_F
+
+Space for DS1 has not been allocated.
+Storage size for DS1 is: 335544320 bytes.
+Space for DS2 has been allocated.
+Storage size for DS2 is: 112 bytes.
+
+Writing data...
+
+Space for DS1 has been allocated.
+Storage size for DS1 is: 112 bytes.
+Space for DS2 has been allocated.
+Storage size for DS2 is: 112 bytes.
+
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.ddl
new file mode 100644
index 0000000..4edfb24
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.ddl
@@ -0,0 +1,199 @@
+HDF5 "h5ex_d_checksum.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ (0,18): 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ (1,0): 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32,
+ (1,17): 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
+ (2,0): 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48,
+ (2,17): 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93,
+ (3,0): 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64,
+ (3,17): 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120,
+ (3,31): 124,
+ (4,0): 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75,
+ (4,16): 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140,
+ (4,29): 145, 150, 155,
+ (5,0): 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90,
+ (5,16): 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162, 168,
+ (5,29): 174, 180, 186,
+ (6,0): 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98, 105,
+ (6,16): 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182, 189,
+ (6,28): 196, 203, 210, 217,
+ (7,0): 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
+ (7,16): 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216,
+ (7,28): 224, 232, 240, 248,
+ (8,0): 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (8,15): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (8,27): 243, 252, 261, 270, 279,
+ (9,0): 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140,
+ (9,15): 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260,
+ (9,27): 270, 280, 290, 300, 310,
+ (10,0): 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143, 154,
+ (10,15): 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275, 286,
+ (10,27): 297, 308, 319, 330, 341,
+ (11,0): 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156,
+ (11,14): 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
+ (11,26): 312, 324, 336, 348, 360, 372,
+ (12,0): 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169,
+ (12,14): 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312, 325,
+ (12,26): 338, 351, 364, 377, 390, 403,
+ (13,0): 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168, 182,
+ (13,14): 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336, 350,
+ (13,26): 364, 378, 392, 406, 420, 434,
+ (14,0): 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195,
+ (14,14): 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375,
+ (14,26): 390, 405, 420, 435, 450, 465,
+ (15,0): 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208,
+ (15,14): 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400,
+ (15,26): 416, 432, 448, 464, 480, 496,
+ (16,0): 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204, 221,
+ (16,14): 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408, 425,
+ (16,26): 442, 459, 476, 493, 510, 527,
+ (17,0): 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234,
+ (17,14): 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450,
+ (17,26): 468, 486, 504, 522, 540, 558,
+ (18,0): 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228, 247,
+ (18,14): 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456, 475,
+ (18,26): 494, 513, 532, 551, 570, 589,
+ (19,0): 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260,
+ (19,14): 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500,
+ (19,26): 520, 540, 560, 580, 600, 620,
+ (20,0): 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252, 273,
+ (20,14): 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504, 525,
+ (20,26): 546, 567, 588, 609, 630, 651,
+ (21,0): 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264, 286,
+ (21,14): 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528, 550,
+ (21,26): 572, 594, 616, 638, 660, 682,
+ (22,0): 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276, 299,
+ (22,14): 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552, 575,
+ (22,26): 598, 621, 644, 667, 690, 713,
+ (23,0): 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288, 312,
+ (23,14): 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576, 600,
+ (23,26): 624, 648, 672, 696, 720, 744,
+ (24,0): 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300,
+ (24,13): 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575, 600,
+ (24,25): 625, 650, 675, 700, 725, 750, 775,
+ (25,0): 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286, 312,
+ (25,13): 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598, 624,
+ (25,25): 650, 676, 702, 728, 754, 780, 806,
+ (26,0): 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297, 324,
+ (26,13): 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621, 648,
+ (26,25): 675, 702, 729, 756, 783, 810, 837,
+ (27,0): 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308, 336,
+ (27,13): 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644, 672,
+ (27,25): 700, 728, 756, 784, 812, 840, 868,
+ (28,0): 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319, 348,
+ (28,13): 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667, 696,
+ (28,25): 725, 754, 783, 812, 841, 870, 899,
+ (29,0): 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360,
+ (29,13): 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690, 720,
+ (29,25): 750, 780, 810, 840, 870, 900, 930,
+ (30,0): 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341, 372,
+ (30,13): 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713, 744,
+ (30,25): 775, 806, 837, 868, 899, 930, 961,
+ (31,0): 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384,
+ (31,13): 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768,
+ (31,25): 800, 832, 864, 896, 928, 960, 992,
+ (32,0): 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363, 396,
+ (32,13): 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759, 792,
+ (32,25): 825, 858, 891, 924, 957, 990, 1023,
+ (33,0): 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374, 408,
+ (33,13): 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782, 816,
+ (33,25): 850, 884, 918, 952, 986, 1020, 1054,
+ (34,0): 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385, 420,
+ (34,13): 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805, 840,
+ (34,25): 875, 910, 945, 980, 1015, 1050, 1085,
+ (35,0): 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396, 432,
+ (35,13): 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828, 864,
+ (35,25): 900, 936, 972, 1008, 1044, 1080, 1116,
+ (36,0): 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407, 444,
+ (36,13): 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851, 888,
+ (36,25): 925, 962, 999, 1036, 1073, 1110, 1147,
+ (37,0): 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418, 456,
+ (37,13): 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874, 912,
+ (37,25): 950, 988, 1026, 1064, 1102, 1140, 1178,
+ (38,0): 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429, 468,
+ (38,13): 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897, 936,
+ (38,25): 975, 1014, 1053, 1092, 1131, 1170, 1209,
+ (39,0): 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440, 480,
+ (39,13): 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920, 960,
+ (39,25): 1000, 1040, 1080, 1120, 1160, 1200, 1240,
+ (40,0): 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451, 492,
+ (40,13): 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943, 984,
+ (40,25): 1025, 1066, 1107, 1148, 1189, 1230, 1271,
+ (41,0): 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462, 504,
+ (41,13): 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966, 1008,
+ (41,25): 1050, 1092, 1134, 1176, 1218, 1260, 1302,
+ (42,0): 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473, 516,
+ (42,13): 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989, 1032,
+ (42,25): 1075, 1118, 1161, 1204, 1247, 1290, 1333,
+ (43,0): 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484, 528,
+ (43,13): 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012, 1056,
+ (43,25): 1100, 1144, 1188, 1232, 1276, 1320, 1364,
+ (44,0): 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495, 540,
+ (44,13): 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035, 1080,
+ (44,25): 1125, 1170, 1215, 1260, 1305, 1350, 1395,
+ (45,0): 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506, 552,
+ (45,13): 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058, 1104,
+ (45,25): 1150, 1196, 1242, 1288, 1334, 1380, 1426,
+ (46,0): 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517, 564,
+ (46,13): 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081, 1128,
+ (46,25): 1175, 1222, 1269, 1316, 1363, 1410, 1457,
+ (47,0): 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576,
+ (47,13): 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (47,24): 1152, 1200, 1248, 1296, 1344, 1392, 1440, 1488,
+ (48,0): 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539, 588,
+ (48,13): 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (48,24): 1176, 1225, 1274, 1323, 1372, 1421, 1470, 1519,
+ (49,0): 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600,
+ (49,13): 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100, 1150,
+ (49,24): 1200, 1250, 1300, 1350, 1400, 1450, 1500, 1550,
+ (50,0): 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561, 612,
+ (50,13): 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122, 1173,
+ (50,24): 1224, 1275, 1326, 1377, 1428, 1479, 1530, 1581,
+ (51,0): 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572, 624,
+ (51,13): 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144, 1196,
+ (51,24): 1248, 1300, 1352, 1404, 1456, 1508, 1560, 1612,
+ (52,0): 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583, 636,
+ (52,13): 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166, 1219,
+ (52,24): 1272, 1325, 1378, 1431, 1484, 1537, 1590, 1643,
+ (53,0): 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594, 648,
+ (53,13): 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188, 1242,
+ (53,24): 1296, 1350, 1404, 1458, 1512, 1566, 1620, 1674,
+ (54,0): 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605, 660,
+ (54,13): 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210, 1265,
+ (54,24): 1320, 1375, 1430, 1485, 1540, 1595, 1650, 1705,
+ (55,0): 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616, 672,
+ (55,13): 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232, 1288,
+ (55,24): 1344, 1400, 1456, 1512, 1568, 1624, 1680, 1736,
+ (56,0): 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627, 684,
+ (56,13): 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254, 1311,
+ (56,24): 1368, 1425, 1482, 1539, 1596, 1653, 1710, 1767,
+ (57,0): 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638, 696,
+ (57,13): 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276, 1334,
+ (57,24): 1392, 1450, 1508, 1566, 1624, 1682, 1740, 1798,
+ (58,0): 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649, 708,
+ (58,13): 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298, 1357,
+ (58,24): 1416, 1475, 1534, 1593, 1652, 1711, 1770, 1829,
+ (59,0): 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720,
+ (59,13): 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320, 1380,
+ (59,24): 1440, 1500, 1560, 1620, 1680, 1740, 1800, 1860,
+ (60,0): 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671, 732,
+ (60,13): 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342, 1403,
+ (60,24): 1464, 1525, 1586, 1647, 1708, 1769, 1830, 1891,
+ (61,0): 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682, 744,
+ (61,13): 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364, 1426,
+ (61,24): 1488, 1550, 1612, 1674, 1736, 1798, 1860, 1922,
+ (62,0): 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693, 756,
+ (62,13): 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386, 1449,
+ (62,24): 1512, 1575, 1638, 1701, 1764, 1827, 1890, 1953,
+ (63,0): 0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768,
+ (63,13): 832, 896, 960, 1024, 1088, 1152, 1216, 1280, 1344, 1408, 1472,
+ (63,24): 1536, 1600, 1664, 1728, 1792, 1856, 1920, 1984
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.tst
new file mode 100644
index 0000000..01ed866
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_checksum.tst
@@ -0,0 +1,2 @@
+Filter type is: H5Z_FILTER_FLETCHER32_F
+Maximum value in DS1 is: 1984
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.ddl
new file mode 100644
index 0000000..2bcc28c
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.ddl
@@ -0,0 +1,18 @@
+HDF5 "h5ex_d_chunk.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 6 ) / ( 8, 6 ) }
+ DATA {
+ (0,0): 0, 1, 0, 0, 1, 0,
+ (1,0): 1, 1, 0, 1, 1, 0,
+ (2,0): 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 1, 0, 0, 1, 0,
+ (4,0): 1, 1, 0, 1, 1, 0,
+ (5,0): 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 1, 0, 0, 1, 0,
+ (7,0): 1, 1, 0, 1, 1, 0
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.tst
new file mode 100644
index 0000000..682e2aa
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_chunk.tst
@@ -0,0 +1,26 @@
+
+Original Data:
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+
+Storage layout for DS1 is: H5D_CHUNKED_F
+
+Data as written to disk by hyberslabs:
+ [ 0 1 0 0 1 0 0 1 ]
+ [ 1 1 0 1 1 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ [ 0 1 0 0 1 0 0 1 ]
+ [ 1 1 0 1 1 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+
+Data as read from disk by hyperslab:
+ [ 0 1 0 0 0 0 0 1 ]
+ [ 0 1 0 1 0 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ [ 0 1 0 1 0 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.ddl
new file mode 100644
index 0000000..b2a742b
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.ddl
@@ -0,0 +1,17 @@
+HDF5 "h5ex_d_compact.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.tst
new file mode 100644
index 0000000..5e60b06
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_compact.tst
@@ -0,0 +1,8 @@
+
+Storage layout for DS1 is: H5D_COMPACT_F
+
+DS1:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.ddl
new file mode 100644
index 0000000..1e52ad4
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.ddl
@@ -0,0 +1,17 @@
+HDF5 "h5ex_d_extern.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.tst
new file mode 100644
index 0000000..5b1e390
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_extern.tst
@@ -0,0 +1,6 @@
+DS1 is stored in file: h5ex_d_extern.data
+DS1:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.ddl
new file mode 100644
index 0000000..8130634
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.ddl
@@ -0,0 +1,20 @@
+HDF5 "h5ex_d_fillval.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 10, 6 ) / ( H5S_UNLIMITED, H5S_UNLIMITED ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 99, 99,
+ (1,0): -1, 0, 1, 2, 99, 99,
+ (2,0): -2, 0, 2, 4, 99, 99,
+ (3,0): -3, 0, 3, 6, 99, 99,
+ (4,0): -4, 0, 4, 8, 99, 99,
+ (5,0): -5, 0, 5, 10, 99, 99,
+ (6,0): -6, 0, 6, 12, 99, 99,
+ (7,0): 99, 99, 99, 99, 99, 99,
+ (8,0): 99, 99, 99, 99, 99, 99,
+ (9,0): 99, 99, 99, 99, 99, 99
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.tst
new file mode 100644
index 0000000..0106954
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_fillval.tst
@@ -0,0 +1,17 @@
+Dataset before being written to:
+ [ 99 99 99 99 99 99 99 ]
+ [ 99 99 99 99 99 99 99 ]
+ [ 99 99 99 99 99 99 99 ]
+ [ 99 99 99 99 99 99 99 ]
+Dataset after being written to:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
+Dataset after extension:
+ [ 0 -1 -2 -3 -4 -5 -6 99 99 99 ]
+ [ 0 0 0 0 0 0 0 99 99 99 ]
+ [ 0 1 2 3 4 5 6 99 99 99 ]
+ [ 0 2 4 6 8 10 12 99 99 99 ]
+ [ 99 99 99 99 99 99 99 99 99 99 ]
+ [ 99 99 99 99 99 99 99 99 99 99 ]
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.ddl
new file mode 100644
index 0000000..687a950
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_gzip.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.tst
new file mode 100644
index 0000000..9efcd78a
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_gzip.tst
@@ -0,0 +1,2 @@
+Filter type is: H5Z_FILTER_DEFLATE_F
+Maximum value in DS1 is: 1890
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.ddl
new file mode 100644
index 0000000..16767a2
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.ddl
@@ -0,0 +1,18 @@
+HDF5 "h5ex_d_hyper.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 6 ) / ( 8, 6 ) }
+ DATA {
+ (0,0): 0, 1, 0, 0, 1, 0,
+ (1,0): 1, 1, 0, 1, 1, 0,
+ (2,0): 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 1, 0, 0, 1, 0,
+ (4,0): 1, 1, 0, 1, 1, 0,
+ (5,0): 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 1, 0, 0, 1, 0,
+ (7,0): 1, 1, 0, 1, 1, 0
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.tst
new file mode 100644
index 0000000..a48266a
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_hyper.tst
@@ -0,0 +1,26 @@
+
+Original Data:
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+ [ 1 1 1 1 1 1 1 1 ]
+
+Data as written to disk by hyberslabs:
+ [ 0 1 0 0 1 0 0 1 ]
+ [ 1 1 0 1 1 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ [ 0 1 0 0 1 0 0 1 ]
+ [ 1 1 0 1 1 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+
+Data as read from disk by hyberslabs:
+ [ 0 1 0 0 0 0 0 1 ]
+ [ 0 1 0 1 0 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ [ 0 1 0 1 0 0 1 1 ]
+ [ 0 0 0 0 0 0 0 0 ]
+
+
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.ddl
new file mode 100644
index 0000000..f938abe
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_nbit.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE 32-bit little-endian integer 16-bit precision
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.tst
new file mode 100644
index 0000000..90f7a67
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit.tst
@@ -0,0 +1,2 @@
+Filter type is: H5Z_FILTER_NBIT_F
+Maximum value in DS1 is: 1890
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit07.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit07.ddl
new file mode 100644
index 0000000..f938abe
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit07.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_nbit.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE 32-bit little-endian integer 16-bit precision
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit22.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit22.ddl
new file mode 100644
index 0000000..614e582
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_nbit22.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_nbit.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE 32-bit little-endian integer
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.ddl
new file mode 100644
index 0000000..a205150
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.ddl
@@ -0,0 +1,17 @@
+HDF5 "h5ex_d_rdwr.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.tst
new file mode 100644
index 0000000..3219651
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr.tst
@@ -0,0 +1,8 @@
+
+DS1:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
+
+
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.ddl
new file mode 100644
index 0000000..3d63a79
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.ddl
@@ -0,0 +1,30 @@
+HDF5 "h5ex_d_rdwr_kind.h5" {
+GROUP "/" {
+ DATASET "DS_I" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+ DATASET "DS_R" {
+ DATATYPE H5T_IEEE_F64LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.tst
new file mode 100644
index 0000000..f5e90d8
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind.tst
@@ -0,0 +1,14 @@
+
+DS_I:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
+
+DS_R:
+ [ 0.000 -1.000 -2.000 -3.000 -4.000 -5.000 -6.000 ]
+ [ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ]
+ [ 0.000 1.000 2.000 3.000 4.000 5.000 6.000 ]
+ [ 0.000 2.000 4.000 6.000 8.000 10.000 12.000 ]
+
+
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.ddl
new file mode 100644
index 0000000..9aeac08
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.ddl
@@ -0,0 +1,30 @@
+HDF5 "h5ex_d_rdwr_kind_F03.h5" {
+GROUP "/" {
+ DATASET "DS_I" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+ DATASET "DS_R" {
+ DATATYPE H5T_IEEE_F64LE
+ DATASPACE SIMPLE { ( 7, 4 ) / ( 7, 4 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2,
+ (2,0): -2, 0, 2, 4,
+ (3,0): -3, 0, 3, 6,
+ (4,0): -4, 0, 4, 8,
+ (5,0): -5, 0, 5, 10,
+ (6,0): -6, 0, 6, 12
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.tst
new file mode 100644
index 0000000..f5e90d8
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_rdwr_kind_F03.tst
@@ -0,0 +1,14 @@
+
+DS_I:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
+
+DS_R:
+ [ 0.000 -1.000 -2.000 -3.000 -4.000 -5.000 -6.000 ]
+ [ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ]
+ [ 0.000 1.000 2.000 3.000 4.000 5.000 6.000 ]
+ [ 0.000 2.000 4.000 6.000 8.000 10.000 12.000 ]
+
+
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.ddl
new file mode 100644
index 0000000..c9e4145
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_soint.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.tst
new file mode 100644
index 0000000..ddf8b30
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_soint.tst
@@ -0,0 +1,5 @@
+Maximum value in write buffer is: 1890
+Minimum value in write buffer is: -63
+Filter type is: H5Z_FILTER_SCALEOFFSET_F
+Maximum value in DS1 is: 1890
+Minimum value in DS1 is: -63
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.ddl
new file mode 100644
index 0000000..c962781
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.ddl
@@ -0,0 +1,198 @@
+HDF5 "h5ex_d_szip.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 64, 32 ) / ( 64, 32 ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ (1,18): 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ (2,0): -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+ (2,17): 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
+ (3,0): -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45,
+ (3,17): 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
+ (4,0): -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+ (4,17): 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116,
+ (4,31): 120,
+ (5,0): -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
+ (5,16): 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135,
+ (5,29): 140, 145, 150,
+ (6,0): -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84,
+ (6,16): 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162,
+ (6,29): 168, 174, 180,
+ (7,0): -7, 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98,
+ (7,16): 105, 112, 119, 126, 133, 140, 147, 154, 161, 168, 175, 182,
+ (7,28): 189, 196, 203, 210,
+ (8,0): -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112,
+ (8,16): 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208,
+ (8,28): 216, 224, 232, 240,
+ (9,0): -9, 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126,
+ (9,16): 135, 144, 153, 162, 171, 180, 189, 198, 207, 216, 225, 234,
+ (9,28): 243, 252, 261, 270,
+ (10,0): -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130,
+ (10,15): 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
+ (10,27): 260, 270, 280, 290, 300,
+ (11,0): -11, 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143,
+ (11,15): 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275,
+ (11,27): 286, 297, 308, 319, 330,
+ (12,0): -12, 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144,
+ (12,14): 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288,
+ (12,26): 300, 312, 324, 336, 348, 360,
+ (13,0): -13, 0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156,
+ (13,14): 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312,
+ (13,26): 325, 338, 351, 364, 377, 390,
+ (14,0): -14, 0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168,
+ (14,14): 182, 196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336,
+ (14,26): 350, 364, 378, 392, 406, 420,
+ (15,0): -15, 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
+ (15,14): 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360,
+ (15,26): 375, 390, 405, 420, 435, 450,
+ (16,0): -16, 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192,
+ (16,14): 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384,
+ (16,26): 400, 416, 432, 448, 464, 480,
+ (17,0): -17, 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
+ (17,14): 221, 238, 255, 272, 289, 306, 323, 340, 357, 374, 391, 408,
+ (17,26): 425, 442, 459, 476, 493, 510,
+ (18,0): -18, 0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216,
+ (18,14): 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432,
+ (18,26): 450, 468, 486, 504, 522, 540,
+ (19,0): -19, 0, 19, 38, 57, 76, 95, 114, 133, 152, 171, 190, 209, 228,
+ (19,14): 247, 266, 285, 304, 323, 342, 361, 380, 399, 418, 437, 456,
+ (19,26): 475, 494, 513, 532, 551, 570,
+ (20,0): -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
+ (20,14): 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
+ (20,26): 500, 520, 540, 560, 580, 600,
+ (21,0): -21, 0, 21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252,
+ (21,14): 273, 294, 315, 336, 357, 378, 399, 420, 441, 462, 483, 504,
+ (21,26): 525, 546, 567, 588, 609, 630,
+ (22,0): -22, 0, 22, 44, 66, 88, 110, 132, 154, 176, 198, 220, 242, 264,
+ (22,14): 286, 308, 330, 352, 374, 396, 418, 440, 462, 484, 506, 528,
+ (22,26): 550, 572, 594, 616, 638, 660,
+ (23,0): -23, 0, 23, 46, 69, 92, 115, 138, 161, 184, 207, 230, 253, 276,
+ (23,14): 299, 322, 345, 368, 391, 414, 437, 460, 483, 506, 529, 552,
+ (23,26): 575, 598, 621, 644, 667, 690,
+ (24,0): -24, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288,
+ (24,14): 312, 336, 360, 384, 408, 432, 456, 480, 504, 528, 552, 576,
+ (24,26): 600, 624, 648, 672, 696, 720,
+ (25,0): -25, 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
+ (25,13): 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575,
+ (25,25): 600, 625, 650, 675, 700, 725, 750,
+ (26,0): -26, 0, 26, 52, 78, 104, 130, 156, 182, 208, 234, 260, 286,
+ (26,13): 312, 338, 364, 390, 416, 442, 468, 494, 520, 546, 572, 598,
+ (26,25): 624, 650, 676, 702, 728, 754, 780,
+ (27,0): -27, 0, 27, 54, 81, 108, 135, 162, 189, 216, 243, 270, 297,
+ (27,13): 324, 351, 378, 405, 432, 459, 486, 513, 540, 567, 594, 621,
+ (27,25): 648, 675, 702, 729, 756, 783, 810,
+ (28,0): -28, 0, 28, 56, 84, 112, 140, 168, 196, 224, 252, 280, 308,
+ (28,13): 336, 364, 392, 420, 448, 476, 504, 532, 560, 588, 616, 644,
+ (28,25): 672, 700, 728, 756, 784, 812, 840,
+ (29,0): -29, 0, 29, 58, 87, 116, 145, 174, 203, 232, 261, 290, 319,
+ (29,13): 348, 377, 406, 435, 464, 493, 522, 551, 580, 609, 638, 667,
+ (29,25): 696, 725, 754, 783, 812, 841, 870,
+ (30,0): -30, 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,
+ (30,13): 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690,
+ (30,25): 720, 750, 780, 810, 840, 870, 900,
+ (31,0): -31, 0, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341,
+ (31,13): 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713,
+ (31,25): 744, 775, 806, 837, 868, 899, 930,
+ (32,0): -32, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
+ (32,13): 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736,
+ (32,25): 768, 800, 832, 864, 896, 928, 960,
+ (33,0): -33, 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363,
+ (33,13): 396, 429, 462, 495, 528, 561, 594, 627, 660, 693, 726, 759,
+ (33,25): 792, 825, 858, 891, 924, 957, 990,
+ (34,0): -34, 0, 34, 68, 102, 136, 170, 204, 238, 272, 306, 340, 374,
+ (34,13): 408, 442, 476, 510, 544, 578, 612, 646, 680, 714, 748, 782,
+ (34,25): 816, 850, 884, 918, 952, 986, 1020,
+ (35,0): -35, 0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 350, 385,
+ (35,13): 420, 455, 490, 525, 560, 595, 630, 665, 700, 735, 770, 805,
+ (35,25): 840, 875, 910, 945, 980, 1015, 1050,
+ (36,0): -36, 0, 36, 72, 108, 144, 180, 216, 252, 288, 324, 360, 396,
+ (36,13): 432, 468, 504, 540, 576, 612, 648, 684, 720, 756, 792, 828,
+ (36,25): 864, 900, 936, 972, 1008, 1044, 1080,
+ (37,0): -37, 0, 37, 74, 111, 148, 185, 222, 259, 296, 333, 370, 407,
+ (37,13): 444, 481, 518, 555, 592, 629, 666, 703, 740, 777, 814, 851,
+ (37,25): 888, 925, 962, 999, 1036, 1073, 1110,
+ (38,0): -38, 0, 38, 76, 114, 152, 190, 228, 266, 304, 342, 380, 418,
+ (38,13): 456, 494, 532, 570, 608, 646, 684, 722, 760, 798, 836, 874,
+ (38,25): 912, 950, 988, 1026, 1064, 1102, 1140,
+ (39,0): -39, 0, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429,
+ (39,13): 468, 507, 546, 585, 624, 663, 702, 741, 780, 819, 858, 897,
+ (39,25): 936, 975, 1014, 1053, 1092, 1131, 1170,
+ (40,0): -40, 0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440,
+ (40,13): 480, 520, 560, 600, 640, 680, 720, 760, 800, 840, 880, 920,
+ (40,25): 960, 1000, 1040, 1080, 1120, 1160, 1200,
+ (41,0): -41, 0, 41, 82, 123, 164, 205, 246, 287, 328, 369, 410, 451,
+ (41,13): 492, 533, 574, 615, 656, 697, 738, 779, 820, 861, 902, 943,
+ (41,25): 984, 1025, 1066, 1107, 1148, 1189, 1230,
+ (42,0): -42, 0, 42, 84, 126, 168, 210, 252, 294, 336, 378, 420, 462,
+ (42,13): 504, 546, 588, 630, 672, 714, 756, 798, 840, 882, 924, 966,
+ (42,25): 1008, 1050, 1092, 1134, 1176, 1218, 1260,
+ (43,0): -43, 0, 43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473,
+ (43,13): 516, 559, 602, 645, 688, 731, 774, 817, 860, 903, 946, 989,
+ (43,25): 1032, 1075, 1118, 1161, 1204, 1247, 1290,
+ (44,0): -44, 0, 44, 88, 132, 176, 220, 264, 308, 352, 396, 440, 484,
+ (44,13): 528, 572, 616, 660, 704, 748, 792, 836, 880, 924, 968, 1012,
+ (44,25): 1056, 1100, 1144, 1188, 1232, 1276, 1320,
+ (45,0): -45, 0, 45, 90, 135, 180, 225, 270, 315, 360, 405, 450, 495,
+ (45,13): 540, 585, 630, 675, 720, 765, 810, 855, 900, 945, 990, 1035,
+ (45,25): 1080, 1125, 1170, 1215, 1260, 1305, 1350,
+ (46,0): -46, 0, 46, 92, 138, 184, 230, 276, 322, 368, 414, 460, 506,
+ (46,13): 552, 598, 644, 690, 736, 782, 828, 874, 920, 966, 1012, 1058,
+ (46,25): 1104, 1150, 1196, 1242, 1288, 1334, 1380,
+ (47,0): -47, 0, 47, 94, 141, 188, 235, 282, 329, 376, 423, 470, 517,
+ (47,13): 564, 611, 658, 705, 752, 799, 846, 893, 940, 987, 1034, 1081,
+ (47,25): 1128, 1175, 1222, 1269, 1316, 1363, 1410,
+ (48,0): -48, 0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528,
+ (48,13): 576, 624, 672, 720, 768, 816, 864, 912, 960, 1008, 1056, 1104,
+ (48,25): 1152, 1200, 1248, 1296, 1344, 1392, 1440,
+ (49,0): -49, 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539,
+ (49,13): 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127,
+ (49,25): 1176, 1225, 1274, 1323, 1372, 1421, 1470,
+ (50,0): -50, 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
+ (50,13): 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
+ (50,24): 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
+ (51,0): -51, 0, 51, 102, 153, 204, 255, 306, 357, 408, 459, 510, 561,
+ (51,13): 612, 663, 714, 765, 816, 867, 918, 969, 1020, 1071, 1122,
+ (51,24): 1173, 1224, 1275, 1326, 1377, 1428, 1479, 1530,
+ (52,0): -52, 0, 52, 104, 156, 208, 260, 312, 364, 416, 468, 520, 572,
+ (52,13): 624, 676, 728, 780, 832, 884, 936, 988, 1040, 1092, 1144,
+ (52,24): 1196, 1248, 1300, 1352, 1404, 1456, 1508, 1560,
+ (53,0): -53, 0, 53, 106, 159, 212, 265, 318, 371, 424, 477, 530, 583,
+ (53,13): 636, 689, 742, 795, 848, 901, 954, 1007, 1060, 1113, 1166,
+ (53,24): 1219, 1272, 1325, 1378, 1431, 1484, 1537, 1590,
+ (54,0): -54, 0, 54, 108, 162, 216, 270, 324, 378, 432, 486, 540, 594,
+ (54,13): 648, 702, 756, 810, 864, 918, 972, 1026, 1080, 1134, 1188,
+ (54,24): 1242, 1296, 1350, 1404, 1458, 1512, 1566, 1620,
+ (55,0): -55, 0, 55, 110, 165, 220, 275, 330, 385, 440, 495, 550, 605,
+ (55,13): 660, 715, 770, 825, 880, 935, 990, 1045, 1100, 1155, 1210,
+ (55,24): 1265, 1320, 1375, 1430, 1485, 1540, 1595, 1650,
+ (56,0): -56, 0, 56, 112, 168, 224, 280, 336, 392, 448, 504, 560, 616,
+ (56,13): 672, 728, 784, 840, 896, 952, 1008, 1064, 1120, 1176, 1232,
+ (56,24): 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680,
+ (57,0): -57, 0, 57, 114, 171, 228, 285, 342, 399, 456, 513, 570, 627,
+ (57,13): 684, 741, 798, 855, 912, 969, 1026, 1083, 1140, 1197, 1254,
+ (57,24): 1311, 1368, 1425, 1482, 1539, 1596, 1653, 1710,
+ (58,0): -58, 0, 58, 116, 174, 232, 290, 348, 406, 464, 522, 580, 638,
+ (58,13): 696, 754, 812, 870, 928, 986, 1044, 1102, 1160, 1218, 1276,
+ (58,24): 1334, 1392, 1450, 1508, 1566, 1624, 1682, 1740,
+ (59,0): -59, 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649,
+ (59,13): 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298,
+ (59,24): 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770,
+ (60,0): -60, 0, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660,
+ (60,13): 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320,
+ (60,24): 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800,
+ (61,0): -61, 0, 61, 122, 183, 244, 305, 366, 427, 488, 549, 610, 671,
+ (61,13): 732, 793, 854, 915, 976, 1037, 1098, 1159, 1220, 1281, 1342,
+ (61,24): 1403, 1464, 1525, 1586, 1647, 1708, 1769, 1830,
+ (62,0): -62, 0, 62, 124, 186, 248, 310, 372, 434, 496, 558, 620, 682,
+ (62,13): 744, 806, 868, 930, 992, 1054, 1116, 1178, 1240, 1302, 1364,
+ (62,24): 1426, 1488, 1550, 1612, 1674, 1736, 1798, 1860,
+ (63,0): -63, 0, 63, 126, 189, 252, 315, 378, 441, 504, 567, 630, 693,
+ (63,13): 756, 819, 882, 945, 1008, 1071, 1134, 1197, 1260, 1323, 1386,
+ (63,24): 1449, 1512, 1575, 1638, 1701, 1764, 1827, 1890
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.tst
new file mode 100644
index 0000000..8f6ba90
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_szip.tst
@@ -0,0 +1,2 @@
+Filter type is: H5Z_FILTER_SZIP_F
+Maximum value in DS1 is: 1890
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.ddl
new file mode 100644
index 0000000..054c2b3
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.ddl
@@ -0,0 +1,6 @@
+HDF5 "h5ex_d_transform.h5" {
+FILE_CONTENTS {
+ group /
+ dataset /DS1
+ }
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.tst
new file mode 100644
index 0000000..926e338
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_transform.tst
@@ -0,0 +1,17 @@
+Original Data:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
+
+Data as written with transform x+1:
+ [ 1 0 -1 -2 -3 -4 -5 ]
+ [ 1 1 1 1 1 1 1 ]
+ [ 1 2 3 4 5 6 7 ]
+ [ 1 3 5 7 9 11 13 ]
+
+Data as written with transform x+1 and read with transform x-1:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.ddl b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.ddl
new file mode 100644
index 0000000..2f092ea
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.ddl
@@ -0,0 +1,20 @@
+HDF5 "h5ex_d_unlimmod.h5" {
+GROUP "/" {
+ DATASET "DS1" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 10, 6 ) / ( H5S_UNLIMITED, H5S_UNLIMITED ) }
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0,
+ (1,0): 1, 1, 1, 1, 1, 1,
+ (2,0): 2, 2, 2, 2, 2, 2,
+ (3,0): 3, 3, 3, 3, 3, 3,
+ (4,0): 4, 4, 4, 4, 4, 4,
+ (5,0): 5, 5, 5, 5, 5, 5,
+ (6,0): 6, 6, 6, 6, 6, 6,
+ (7,0): 7, 7, 7, 7, 7, 7,
+ (8,0): 8, 8, 8, 8, 8, 8,
+ (9,0): 9, 9, 9, 9, 9, 9
+ }
+ }
+}
+}
diff --git a/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.tst b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.tst
new file mode 100644
index 0000000..b1dcac0
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/tfiles/18/h5ex_d_unlimmod.tst
@@ -0,0 +1,14 @@
+
+Dataset before extension:
+ [ 0 -1 -2 -3 -4 -5 -6 ]
+ [ 0 0 0 0 0 0 0 ]
+ [ 0 1 2 3 4 5 6 ]
+ [ 0 2 4 6 8 10 12 ]
+
+Dataset after extension:
+ [ 0 1 2 3 4 5 6 7 8 9 ]
+ [ 0 1 2 3 4 5 6 7 8 9 ]
+ [ 0 1 2 3 4 5 6 7 8 9 ]
+ [ 0 1 2 3 4 5 6 7 8 9 ]
+ [ 0 1 2 3 4 5 6 7 8 9 ]
+ [ 0 1 2 3 4 5 6 7 8 9 ]