summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-12-21 15:53:24 (GMT)
committerGitHub <noreply@github.com>2023-12-21 15:53:24 (GMT)
commitaa734a5d7e19c0eb9232e55a2f257fd87ffee0f1 (patch)
tree4ae5cdc2ab39a1b73813203c194c72c9abcd3a42
parent773245a0847e6b482f28b919fe4ed29b0f366834 (diff)
downloadhdf5-aa734a5d7e19c0eb9232e55a2f257fd87ffee0f1.zip
hdf5-aa734a5d7e19c0eb9232e55a2f257fd87ffee0f1.tar.gz
hdf5-aa734a5d7e19c0eb9232e55a2f257fd87ffee0f1.tar.bz2
Add VDS examples and fix non-standalone build (#3898)
* Choose a size for rdata dimension * Fix platform naming conflicts * Fix doxygen references to point within library repo
-rw-r--r--CMakeInstallation.cmake7
-rw-r--r--HDF5Examples/C/CMakeLists.txt4
-rw-r--r--HDF5Examples/C/H5D/CMakeLists.txt5
-rw-r--r--HDF5Examples/C/H5D/C_sourcefiles.cmake2
-rw-r--r--HDF5Examples/C/H5FLT/CMakeLists.txt13
-rw-r--r--HDF5Examples/C/H5G/CMakeLists.txt18
-rw-r--r--HDF5Examples/C/H5G/C_sourcefiles.cmake2
-rw-r--r--HDF5Examples/C/H5PAR/CMakeLists.txt2
-rw-r--r--HDF5Examples/C/H5T/CMakeLists.txt8
-rw-r--r--HDF5Examples/C/H5VDS/CMakeLists.txt164
-rw-r--r--HDF5Examples/C/H5VDS/C_sourcefiles.cmake20
-rw-r--r--HDF5Examples/C/H5VDS/Makefile.am51
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-eiger.c205
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-exc.c245
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-exclim.c239
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim-maxmin.c358
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim.c357
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-percival.c254
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds-simpleIO.c196
-rw-r--r--HDF5Examples/C/H5VDS/h5ex_vds.c254
-rw-r--r--HDF5Examples/C/H5VDS/test.sh.in98
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.ddl10
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.tst17
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.ddl10
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.tst81
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.ddl55
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.tst84
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.ddl330
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.tst379
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.ddl810
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.tst1060
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.ddl410
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.tst95
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.ddl14
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.tst12
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.ddl14
-rw-r--r--HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.tst34
-rw-r--r--HDF5Examples/C/Perf/CMakeLists.txt4
-rw-r--r--HDF5Examples/CMakeLists.txt52
-rw-r--r--HDF5Examples/FORTRAN/H5D/CMakeLists.txt4
-rw-r--r--HDF5Examples/FORTRAN/H5G/CMakeLists.txt18
-rw-r--r--HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt2
-rw-r--r--HDF5Examples/FORTRAN/H5T/CMakeLists.txt8
-rw-r--r--HDF5Examples/JAVA/H5D/CMakeLists.txt21
-rw-r--r--HDF5Examples/JAVA/H5G/CMakeLists.txt21
-rw-r--r--HDF5Examples/JAVA/H5G/Java_sourcefiles.cmake2
-rw-r--r--HDF5Examples/JAVA/H5J/CMakeLists.txt21
-rw-r--r--HDF5Examples/JAVA/H5J/Java_sourcefiles.cmake2
-rw-r--r--HDF5Examples/JAVA/H5T/CMakeLists.txt21
-rw-r--r--HDF5Examples/config/cmake/HDFExampleMacros.cmake35
-rw-r--r--HDF5Examples/config/cmake/UseJava.cmake2
-rw-r--r--config/cmake/HDF5ExampleCache.cmake18
-rw-r--r--config/cmake/HDFMacros.cmake5
-rw-r--r--config/cmake/UseJava.cmake99
-rw-r--r--config/cmake/javaTargets.cmake.in3
-rw-r--r--doxygen/dox/ExamplesAPI.dox622
-rw-r--r--doxygen/dox/IntroParExamples.dox16
-rw-r--r--doxygen/dox/IntroParHDF5.dox8
-rw-r--r--doxygen/dox/LearnBasics3.dox4
-rw-r--r--doxygen/hdf5doxy_layout.xml1
60 files changed, 6433 insertions, 473 deletions
diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake
index f28bb94..aae6d65 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -57,13 +57,6 @@ set (HDF5_INCLUDES_BUILD_TIME
)
#-----------------------------------------------------------------------------
-# Set variables needed for installation
-#-----------------------------------------------------------------------------
-set (HDF5_VERSION_STRING ${HDF5_PACKAGE_VERSION})
-set (HDF5_VERSION_MAJOR ${HDF5_PACKAGE_VERSION_MAJOR})
-set (HDF5_VERSION_MINOR ${HDF5_PACKAGE_VERSION_MINOR})
-
-#-----------------------------------------------------------------------------
# Configure the hdf5-config.cmake file for the build directory
#-----------------------------------------------------------------------------
set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
diff --git a/HDF5Examples/C/CMakeLists.txt b/HDF5Examples/C/CMakeLists.txt
index 4cc0b3a..4e589bc 100644
--- a/HDF5Examples/C/CMakeLists.txt
+++ b/HDF5Examples/C/CMakeLists.txt
@@ -15,6 +15,10 @@ if (${H5_LIBVER_DIR} GREATER 16)
endif ()
endif ()
+if (${H5_LIBVER_DIR} GREATER 110)
+ add_subdirectory (${PROJECT_SOURCE_DIR}/H5VDS)
+endif ()
+
if (H5_HAVE_PARALLEL AND HDF5_ENABLE_PARALLEL)
add_subdirectory (${PROJECT_SOURCE_DIR}/H5PAR)
endif ()
diff --git a/HDF5Examples/C/H5D/CMakeLists.txt b/HDF5Examples/C/H5D/CMakeLists.txt
index 68cbd23..02f9ac7 100644
--- a/HDF5Examples/C/H5D/CMakeLists.txt
+++ b/HDF5Examples/C/H5D/CMakeLists.txt
@@ -88,7 +88,6 @@ endif ()
# endif ()
# endforeach ()
#endif ()
-
#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.12")
# foreach (example_name ${1_12_examples})
# if (H5EX_BUILD_TESTING)
@@ -232,7 +231,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -246,7 +245,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
endif ()
diff --git a/HDF5Examples/C/H5D/C_sourcefiles.cmake b/HDF5Examples/C/H5D/C_sourcefiles.cmake
index 87e0d6f..971993f 100644
--- a/HDF5Examples/C/H5D/C_sourcefiles.cmake
+++ b/HDF5Examples/C/H5D/C_sourcefiles.cmake
@@ -30,7 +30,7 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
)
endif ()
-if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8" AND NOT ${${EXAMPLE_VARNAME}_USE_16_API})
+if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8" AND NOT ${EXAMPLE_VARNAME}_USE_16_API)
set (1_8_examples
h5ex_d_nbit
h5ex_d_sofloat
diff --git a/HDF5Examples/C/H5FLT/CMakeLists.txt b/HDF5Examples/C/H5FLT/CMakeLists.txt
index 482d65b..9345b66 100644
--- a/HDF5Examples/C/H5FLT/CMakeLists.txt
+++ b/HDF5Examples/C/H5FLT/CMakeLists.txt
@@ -141,6 +141,11 @@ else ()
set (ZSTD_AVAILABLE 0)
endif ()
+set (LIB_TYPE STATIC)
+if (BUILD_SHARED_LIBS)
+ set (LIB_TYPE SHARED)
+endif ()
+
#run-time loadable library examples
foreach (example ${dyn_examples})
add_executable (${EXAMPLE_VARNAME}_${example} ${PROJECT_SOURCE_DIR}/${example}.c)
@@ -196,7 +201,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_ERRREF=1"
-D "GREP_ERRREF=Filter present but encoding disabled"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname}-ERR PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
add_test (
@@ -219,7 +224,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
-D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
endif ()
@@ -240,7 +245,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
-D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
else ()
add_test (
@@ -257,7 +262,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
-D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
diff --git a/HDF5Examples/C/H5G/CMakeLists.txt b/HDF5Examples/C/H5G/CMakeLists.txt
index ffbc614..f517199 100644
--- a/HDF5Examples/C/H5G/CMakeLists.txt
+++ b/HDF5Examples/C/H5G/CMakeLists.txt
@@ -212,7 +212,7 @@ if (H5EX_BUILD_TESTING)
h5ex_g_iterate
h5ex_g_traverse
)
- if (NOT ${H5_LIBVER_DIR} EQUAL 16)
+ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8")
set (exfiles ${exfiles}
h5ex_g_visit
)
@@ -243,7 +243,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -257,7 +257,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
endif ()
@@ -274,7 +274,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
if (HDF5_BUILD_TOOLS)
add_test (
@@ -287,7 +287,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
endif ()
@@ -311,7 +311,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -325,7 +325,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}1.ddl"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname}1 PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
add_test (
@@ -338,7 +338,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}2.ddl"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname}2 PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_H5DUMP-${testname}1)
endif ()
@@ -361,7 +361,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
endmacro ()
diff --git a/HDF5Examples/C/H5G/C_sourcefiles.cmake b/HDF5Examples/C/H5G/C_sourcefiles.cmake
index 133fb43..e8e3692 100644
--- a/HDF5Examples/C/H5G/C_sourcefiles.cmake
+++ b/HDF5Examples/C/H5G/C_sourcefiles.cmake
@@ -9,7 +9,7 @@ set (common_examples
h5ex_g_traverse
)
-if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8" AND NOT ${${EXAMPLE_VARNAME}_USE_16_API})
+if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8" AND NOT ${EXAMPLE_VARNAME}_USE_16_API)
set (1_8_examples
h5ex_g_compact
h5ex_g_corder
diff --git a/HDF5Examples/C/H5PAR/CMakeLists.txt b/HDF5Examples/C/H5PAR/CMakeLists.txt
index 4e2e297..6e569b4 100644
--- a/HDF5Examples/C/H5PAR/CMakeLists.txt
+++ b/HDF5Examples/C/H5PAR/CMakeLists.txt
@@ -41,7 +41,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_REFERENCE:STRING=PHDF5 example finished with no errors"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/grepTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/grepTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
set (last_test "${EXAMPLE_VARNAME}_${testname}")
diff --git a/HDF5Examples/C/H5T/CMakeLists.txt b/HDF5Examples/C/H5T/CMakeLists.txt
index 0f8884b..fb5a4e4 100644
--- a/HDF5Examples/C/H5T/CMakeLists.txt
+++ b/HDF5Examples/C/H5T/CMakeLists.txt
@@ -146,7 +146,7 @@ if (HDF5_BUILD_TOOLS)
)
endif ()
elseif ((${example_name} STREQUAL "h5ex_t_objref" OR ${example_name} STREQUAL "h5ex_t_objrefatt") OR (${example_name} STREQUAL "h5ex_t_regref" OR ${example_name} STREQUAL "h5ex_t_regrefatt"))
- if (${${EXAMPLE_VARNAME}_USE_16_API} OR ${${EXAMPLE_VARNAME}_USE_18_API} OR ${${EXAMPLE_VARNAME}_USE_110_API})
+ if (${EXAMPLE_VARNAME}_USE_16_API OR ${EXAMPLE_VARNAME}_USE_18_API OR ${EXAMPLE_VARNAME}_USE_110_API)
if (HDF5_VERSION_MAJOR VERSION_EQUAL "1.8")
if (HDF5_VERSION_STRING VERSION_LESS_EQUAL "1.8.21")
add_custom_command (
@@ -340,7 +340,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -354,7 +354,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
endif ()
@@ -377,7 +377,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
endmacro ()
diff --git a/HDF5Examples/C/H5VDS/CMakeLists.txt b/HDF5Examples/C/H5VDS/CMakeLists.txt
new file mode 100644
index 0000000..87fcb9f
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/CMakeLists.txt
@@ -0,0 +1,164 @@
+cmake_minimum_required (VERSION 3.12)
+project (HDF5Examples_C_H5VDS C)
+
+#-----------------------------------------------------------------------------
+# Define Sources
+#-----------------------------------------------------------------------------
+include (C_sourcefiles.cmake)
+
+#foreach (example_name ${examples})
+#endforeach ()
+
+if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10")
+ foreach (example_name ${1_10_examples})
+ add_executable (${EXAMPLE_VARNAME}_${example_name} ${PROJECT_SOURCE_DIR}/${example_name}.c)
+ target_compile_options(${EXAMPLE_VARNAME}_${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}_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
+ endif ()
+ target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EX_HDF5_LINK_LIBS})
+ if (H5EX_BUILD_TESTING)
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_${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}_${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}_${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}_${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 ${examples})
+# endforeach ()
+
+ foreach (example_name ${1_10_examples})
+ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10")
+ add_custom_command (
+ TARGET ${EXAMPLE_VARNAME}_${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}_${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}_${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}_${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 ()
+ endforeach ()
+
+# foreach (example_name ${1_12_examples})
+# endforeach ()
+# foreach (example_name ${1_14_examples})
+# endforeach ()
+# foreach (example_name ${1_16_examples})
+# endforeach ()
+endif ()
+
+if (H5EX_BUILD_TESTING)
+ macro (ADD_H5_TEST testname)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_${testname}-clearall
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${testname}*.h5
+ )
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:${EXAMPLE_VARNAME}_${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 "${H5EX_RESOURCES_DIR}/runTest.cmake"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
+ if (HDF5_BUILD_TOOLS)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_H5DUMP-${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 "${H5EX_RESOURCES_DIR}/runTest.cmake"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
+ endif ()
+ endmacro ()
+
+ foreach (example_name ${examples} ${1_10_examples})
+ ADD_H5_TEST (${example_name})
+ endforeach ()
+endif ()
diff --git a/HDF5Examples/C/H5VDS/C_sourcefiles.cmake b/HDF5Examples/C/H5VDS/C_sourcefiles.cmake
new file mode 100644
index 0000000..a408faf
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/C_sourcefiles.cmake
@@ -0,0 +1,20 @@
+#-----------------------------------------------------------------------------
+# Define Sources, one file per application
+#-----------------------------------------------------------------------------
+set (examples)
+
+if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10" AND NOT ${EXAMPLE_VARNAME}_USE_16_API AND NOT ${EXAMPLE_VARNAME}_USE_18_API)
+ set (1_10_examples
+ h5ex_vds
+ h5ex_vds-exc
+# h5ex_vds-exclim
+ h5ex_vds-eiger
+ h5ex_vds-simpleIO
+ h5ex_vds-percival
+ h5ex_vds-percival-unlim
+ h5ex_vds-percival-unlim-maxmin
+ )
+else ()
+ set (1_10_examples)
+endif ()
+
diff --git a/HDF5Examples/C/H5VDS/Makefile.am b/HDF5Examples/C/H5VDS/Makefile.am
new file mode 100644
index 0000000..e4f5320
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/Makefile.am
@@ -0,0 +1,51 @@
+#
+# 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_vds \
+ h5ex_vds-exc \
+ h5ex_vds-exclim \
+ h5ex_vds-eiger \
+ h5ex_vds-simpleIO \
+ h5ex_vds-percival \
+ h5ex_vds-percival-unlim \
+ h5ex_vds-percival-unlim-maxmin
+
+
+EXTRA_DIST = \
+ tfiles/h5ex_vds.tst \
+ tfiles/h5ex_vds-exc.tst \
+ tfiles/h5ex_vds-exclim.tst \
+ tfiles/h5ex_vds-eiger.tst \
+ tfiles/h5ex_vds-simpleIO.tst \
+ tfiles/h5ex_vds-percival.tst \
+ tfiles/h5ex_vds-percival-unlim.tst \
+ tfiles/h5ex_vds-percival-unlim-maxmin.tst \
+ tfiles/h5ex_vds.ddl \
+ tfiles/h5ex_vds-exc.ddl \
+ tfiles/h5ex_vds-exclim.ddl \
+ tfiles/h5ex_vds-eiger.ddl \
+ tfiles/h5ex_vds-simpleIO.ddl \
+ tfiles/h5ex_vds-percival.ddl \
+ tfiles/h5ex_vds-percival-unlim.ddl \
+ tfiles/h5ex_vds-percival-unlim-maxmin.ddl \
+ test.sh
+
+TESTS = test.sh
+
+CLEANFILES = Makefile test.sh
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-eiger.c b/HDF5Examples/C/H5VDS/h5ex_vds-eiger.c
new file mode 100644
index 0000000..0629d73
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-eiger.c
@@ -0,0 +1,205 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of the virtual dataset.
+ Eiger use case. Every 5 frames 10x10 are in the source
+ dataset "/A" in file with the name f-<#>.h5
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILE "h5ex_vds-eiger.h5"
+#define DATASET "VDS-Eiger"
+#define VDSDIM0 5
+#define VDSDIM1 10
+#define VDSDIM2 10
+#define DIM0 5
+#define DIM1 10
+#define DIM2 10
+#define RANK 3
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t vdsdims_max[3] = {H5S_UNLIMITED, VDSDIM1, VDSDIM1};
+ hsize_t dims[3] = {DIM0, DIM1, DIM2};
+ hsize_t start[3], stride[3], count[3], block[3]; /* Hyperslab parameters */
+ hsize_t start_out[3], stride_out[3], count_out[3], block_out[3]; /* Hyperslab parameter out */
+ int rdata[VDSDIM0][VDSDIM1][VDSDIM2]; /* Read buffer for virtual dataset */
+ int i, j, k;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ vspace = H5Screate_simple(RANK, vdsdims, vdsdims_max);
+
+ /* Create dataspaces for the source dataset. */
+ src_space = H5Screate_simple(RANK, dims, NULL);
+
+ /* Create VDS creation property */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /* Initialize hyperslab values */
+
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ stride[0] = DIM0;
+ stride[1] = 1;
+ stride[2] = 1;
+ count[0] = H5S_UNLIMITED;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = DIM0;
+ block[1] = DIM1;
+ block[2] = DIM2;
+
+ /*
+ * Build the mappings
+ *
+ */
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, stride, count, block);
+ status = H5Pset_virtual(dcpl, vspace, "f-%b.h5", "/A", src_space);
+
+ /* Create a virtual dataset */
+ dset = H5Dcreate2(file, DATASET, H5T_NATIVE_INT, vspace, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(vspace);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ dset = H5Dopen2(file, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(dset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset \n");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset ");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+
+ /* Make sure it is ALL selection and then print the coordinates. */
+ if (H5Sget_select_type(src_space) == H5S_SEL_ALL) {
+ printf("H5S_ALL \n");
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read the data using the default properties.
+ */
+ status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata[0]);
+
+ /*
+ * Output the data to the screen.
+ */
+ printf(" VDS Data:\n");
+ for (i = 0; i < VDSDIM0; i++) {
+ printf(" [");
+ for (j = 0; j < VDSDIM1; j++) {
+ printf(" [");
+ for (k = 0; k < VDSDIM1; k++)
+ printf(" %3d", rdata[i][j][k]);
+ printf("]");
+ }
+ printf("]\n");
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-exc.c b/HDF5Examples/C/H5VDS/h5ex_vds-exc.c
new file mode 100644
index 0000000..10bb68c
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-exc.c
@@ -0,0 +1,245 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of the virtual dataset.
+ Excalibur use case with k=2 and m=3.
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILE "h5ex_vds-exc.h5"
+#define DATASET "VDS-Excalibur"
+#define VDSDIM0 0
+#define VDSDIM1 15
+#define VDSDIM2 6
+#define LDIM0 0
+#define LDIM1 2
+#define LDIM2 6
+#define NDIM0 0
+#define NDIM1 3
+#define NDIM2 6
+#define RANK 3
+
+const char *SRC_FILE[] = {"ae.h5", "be.h5", "ce.h5", "de.h5", "ee.h5", "fe.h5"};
+
+const char *SRC_DATASET[] = {"A", "B", "C", "D", "E", "F"};
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t lsrc_space = H5I_INVALID_HID;
+ hid_t nsrc_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t vdsdims_max[3] = {H5S_UNLIMITED, VDSDIM1, VDSDIM2};
+ hsize_t ldims[3] = {LDIM0, LDIM1, LDIM2};
+ hsize_t ldims_max[3] = {H5S_UNLIMITED, LDIM1, LDIM2};
+ hsize_t ndims[3] = {NDIM0, NDIM1, NDIM2};
+ hsize_t ndims_max[3] = {H5S_UNLIMITED, NDIM1, NDIM2};
+ hsize_t start[3], count[3], block[3]; /* Hyperslab parameters */
+ hsize_t start_out[3], stride_out[3], count_out[3], block_out[3];
+ int rdata[40][VDSDIM1][VDSDIM2]; /* Read buffer for virtual dataset */
+ int l = 2;
+ int n = 3;
+ int i, j, k;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ space = H5Screate_simple(RANK, vdsdims, vdsdims_max);
+ /* Create dataspaces for A, C, and E datasets. */
+ lsrc_space = H5Screate_simple(RANK, ldims, ldims_max);
+ /* Create dataspaces for B, D, and F datasets. */
+ nsrc_space = H5Screate_simple(RANK, ndims, ndims_max);
+
+ /* Create VDS creation property */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /* Initialize hyperslab values */
+
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ count[0] = H5S_UNLIMITED;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = 1;
+ block[1] = l;
+ block[2] = VDSDIM2;
+
+ /*
+ * Build the mappings for A, C and E source datasets.
+ * Unlimited hyperslab selection is the same in the source datasets.
+ * Unlimited hyperslab selections in the virtual dataset have different offsets.
+ */
+ status = H5Sselect_hyperslab(lsrc_space, H5S_SELECT_SET, start, NULL, count, block);
+ for (i = 0; i < 3; i++) {
+ start[1] = (hsize_t)((l + n) * i);
+ status = H5Sselect_hyperslab(space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Pset_virtual(dcpl, space, SRC_FILE[2 * i], SRC_DATASET[2 * i], lsrc_space);
+ }
+
+ /* Reinitialize start[1] and block[1] to build the second set of mappings. */
+ start[1] = 0;
+ block[1] = n;
+ /*
+ * Build the mappings for B, D and F source datasets.
+ * Unlimited hyperslab selection is the same in the source datasets.
+ * Unlimited hyperslab selections in the virtual dataset have different offsets.
+ */
+ status = H5Sselect_hyperslab(nsrc_space, H5S_SELECT_SET, start, NULL, count, block);
+ for (i = 0; i < 3; i++) {
+ start[1] = (hsize_t)(l + (l + n) * i);
+ status = H5Sselect_hyperslab(space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Pset_virtual(dcpl, space, SRC_FILE[2 * i + 1], SRC_DATASET[2 * i + 1], nsrc_space);
+ }
+
+ /* Create a virtual dataset */
+ dset = H5Dcreate2(file, DATASET, H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(space);
+ status = H5Sclose(nsrc_space);
+ status = H5Sclose(lsrc_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ dset = H5Dopen2(file, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(dset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset \n");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset \n");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+ if (H5Sget_select_type(src_space) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(src_space, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read the data using the default properties.
+ */
+ status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata[0]);
+
+ /*
+ * Output the data to the screen.
+ */
+ printf(" VDS Data:\n");
+ for (i = 0; i < VDSDIM0; i++) {
+ printf(" [");
+ for (j = 0; j < VDSDIM1; j++) {
+ printf(" [");
+ for (k = 0; k < VDSDIM1; k++)
+ printf(" %3d", rdata[i][j][k]);
+ printf("]");
+ }
+ printf("]\n");
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-exclim.c b/HDF5Examples/C/H5VDS/h5ex_vds-exclim.c
new file mode 100644
index 0000000..6bebe76
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-exclim.c
@@ -0,0 +1,239 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of the virtual dataset.
+ Excalibur use case with k=2 and m=3 and only 3 planes in
+ Z-direction (i.e., not unlimited).
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILE "h5ex_vds-exclim.h5"
+#define DATASET "VDS-Excaliburlim"
+#define VDSDIM0 3
+#define VDSDIM1 15
+#define VDSDIM2 6
+#define LDIM0 3
+#define LDIM1 2
+#define LDIM2 6
+#define NDIM0 3
+#define NDIM1 3
+#define NDIM2 6
+#define RANK 3
+
+const char *SRC_FILE[] = {"ael.h5", "bel.h5", "cel.h5", "del.h5", "eel.h5", "fel.h5"};
+
+const char *SRC_DATASET[] = {"A", "B", "C", "D", "E", "F"};
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t lsrc_space = H5I_INVALID_HID;
+ hid_t nsrc_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t ldims[3] = {LDIM0, LDIM1, LDIM2};
+ hsize_t ndims[3] = {NDIM0, NDIM1, NDIM2};
+ hsize_t start[3], count[3], block[3]; /* Hyperslab parameters */
+ hsize_t start_out[3], stride_out[3], count_out[3], block_out[3];
+ int rdata[VDSDIM0][VDSDIM1][VDSDIM2]; /* Read buffer for virtual dataset */
+ int l = 2;
+ int n = 3;
+ int i, j, k;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ space = H5Screate_simple(RANK, vdsdims, NULL);
+ /* Create dataspaces for A, C, and E datasets. */
+ lsrc_space = H5Screate_simple(RANK, ldims, NULL);
+ /* Create dataspaces for B, D, and F datasets. */
+ nsrc_space = H5Screate_simple(RANK, ndims, NULL);
+
+ /* Create VDS creation property */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /* Initialize hyperslab values */
+
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ count[0] = VDSDIM0;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = 1;
+ block[1] = l;
+ block[2] = VDSDIM2;
+
+ /*
+ * Build the mappings for A, C and E source datasets.
+ */
+ status = H5Sselect_hyperslab(lsrc_space, H5S_SELECT_SET, start, NULL, count, block);
+ for (i = 0; i < 3; i++) {
+ start[1] = (hsize_t)((l + n) * i);
+ status = H5Sselect_hyperslab(space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Pset_virtual(dcpl, space, SRC_FILE[2 * i], SRC_DATASET[2 * i], lsrc_space);
+ }
+
+ /* Reinitialize start[0] and block[1] */
+ start[0] = 0;
+ block[1] = n;
+ /*
+ * Build the mappings for B, D and F source datasets.
+ */
+ status = H5Sselect_hyperslab(nsrc_space, H5S_SELECT_SET, start, NULL, count, block);
+ for (i = 0; i < 3; i++) {
+ start[1] = (hsize_t)(l + (l + n) * i);
+ status = H5Sselect_hyperslab(space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Pset_virtual(dcpl, space, SRC_FILE[2 * i + 1], SRC_DATASET[2 * i + 1], nsrc_space);
+ }
+
+ /* Create a virtual dataset */
+ dset = H5Dcreate2(file, DATASET, H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(space);
+ status = H5Sclose(nsrc_space);
+ status = H5Sclose(lsrc_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ dset = H5Dopen2(file, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(dset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset \n");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset \n");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+ if (H5Sget_select_type(src_space) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read the data using the default properties.
+ */
+ status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata[0]);
+
+ /*
+ * Output the data to the screen.
+ */
+ printf(" VDS Data:\n");
+ for (i = 0; i < VDSDIM0; i++) {
+ printf(" [");
+ for (j = 0; j < VDSDIM1; j++) {
+ printf(" [");
+ for (k = 0; k < VDSDIM1; k++)
+ printf(" %3d", rdata[i][j][k]);
+ printf("]");
+ }
+ printf("]\n");
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim-maxmin.c b/HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim-maxmin.c
new file mode 100644
index 0000000..8ef996a
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim-maxmin.c
@@ -0,0 +1,358 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of the virtual dataset.
+ Percival use case. Every fifth 10x10 plane in VDS is stored in
+ the corresponding 3D unlimited dataset.
+ There are 4 source datasets total.
+ Each of the source datasets is extended to different sizes.
+ VDS access property can be used to get max and min extent.
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define VFILE "h5ex_vds-percival-unlim-maxmin.h5"
+#define DATASET "VDS-Percival-unlim-maxmin"
+#define VDSDIM0 H5S_UNLIMITED
+#define VDSDIM1 10
+#define VDSDIM2 10
+
+#define DIM0 H5S_UNLIMITED
+#define DIM0_1 4 /* Initial size of the source datasets */
+#define DIM1 10
+#define DIM2 10
+#define RANK 3
+#define PLANE_STRIDE 4
+
+const char *SRC_FILE[] = {"apum.h5", "bpum.h5", "cpum.h5", "dpum.h5"};
+
+const char *SRC_DATASET[] = {"A", "B", "C", "D"};
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t vfile = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t vdset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t mem_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ hid_t dapl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[3] = {4 * DIM0_1, VDSDIM1, VDSDIM2};
+ hsize_t vdsdims_max[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t dims[3] = {DIM0_1, DIM1, DIM2};
+ hsize_t memdims[3] = {DIM0_1, DIM1, DIM2};
+ hsize_t extdims[3] = {0, DIM1, DIM2}; /* Dimensions of the extended source datasets */
+ hsize_t chunk_dims[3] = {DIM0_1, DIM1, DIM2};
+ hsize_t dims_max[3] = {DIM0, DIM1, DIM2};
+ hsize_t vdsdims_out[3];
+ hsize_t vdsdims_max_out[3], start[3], stride[3], count[3], src_count[3],
+ block[3]; /* Hyperslab parameters */
+ hsize_t start_out[3], stride_out[3], count_out[3], block_out[3]; /* Hyperslab parameter out */
+ int wdata[DIM0_1 * DIM1 * DIM2];
+ int rdata[8 * DIM0_1][VDSDIM1][VDSDIM2]; /* Read buffer for virtual dataset */
+ int i, j, k;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ /*
+ * Create source files and datasets. This step is optional.
+ */
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ /*
+ * Initialize data for i-th source dataset.
+ */
+ for (j = 0; j < DIM0_1 * DIM1 * DIM2; j++)
+ wdata[j] = i + 1;
+
+ /*
+ * Create the source files and datasets. Write data to each dataset and
+ * close all resources.
+ */
+
+ file = H5Fcreate(SRC_FILE[i], H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ src_space = H5Screate_simple(RANK, dims, dims_max);
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+ status = H5Pset_chunk(dcpl, RANK, chunk_dims);
+ dset = H5Dcreate2(file, SRC_DATASET[i], H5T_NATIVE_INT, src_space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
+ status = H5Sclose(src_space);
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+ }
+
+ vfile = H5Fcreate(VFILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ vspace = H5Screate_simple(RANK, vdsdims, vdsdims_max);
+
+ /* Create dataspaces for the source dataset. */
+ src_space = H5Screate_simple(RANK, dims, dims_max);
+
+ /* Create VDS creation property */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /* Initialize hyperslab values */
+
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ stride[0] = PLANE_STRIDE; /* we will select every fifth plane in VDS */
+ stride[1] = 1;
+ stride[2] = 1;
+ count[0] = H5S_UNLIMITED;
+ count[1] = 1;
+ count[2] = 1;
+ src_count[0] = H5S_UNLIMITED;
+ src_count[1] = 1;
+ src_count[2] = 1;
+ block[0] = 1;
+ block[1] = DIM1;
+ block[2] = DIM2;
+
+ /*
+ * Build the mappings
+ */
+ status = H5Sselect_hyperslab(src_space, H5S_SELECT_SET, start, NULL, src_count, block);
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, stride, count, block);
+ status = H5Pset_virtual(dcpl, vspace, SRC_FILE[i], SRC_DATASET[i], src_space);
+ start[0]++;
+ }
+
+ H5Sselect_none(vspace);
+
+ /* Create a virtual dataset */
+ vdset = H5Dcreate2(vfile, DATASET, H5T_NATIVE_INT, vspace, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(vspace);
+ status = H5Sclose(src_space);
+ status = H5Pclose(dcpl);
+
+ /* Let's add data to the source datasets and check new dimensions for VDS */
+ /* We will add only one plane to the first source dataset, two planes to the
+ second one, three to the third, and four to the forth. */
+
+ /* Let's add data to the source datasets and check new dimensions for VDS */
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ /*
+ * Initialize data for i-th source dataset.
+ */
+ for (j = 0; j < (i + 1) * DIM1 * DIM2; j++)
+ wdata[j] = 10 * (i + 1);
+
+ /*
+ * Open the source files and datasets. Append data to each dataset and
+ * close all resources.
+ */
+
+ file = H5Fopen(SRC_FILE[i], H5F_ACC_RDWR, H5P_DEFAULT);
+ dset = H5Dopen2(file, SRC_DATASET[i], H5P_DEFAULT);
+ extdims[0] = DIM0_1 + i + 1;
+ status = H5Dset_extent(dset, extdims);
+ src_space = H5Dget_space(dset);
+ start[0] = DIM0_1;
+ start[1] = 0;
+ start[2] = 0;
+ count[0] = 1;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = i + 1;
+ block[1] = DIM1;
+ block[2] = DIM2;
+
+ memdims[0] = i + 1;
+ mem_space = H5Screate_simple(RANK, memdims, NULL);
+ status = H5Sselect_hyperslab(src_space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, mem_space, src_space, H5P_DEFAULT, wdata);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+ }
+
+ status = H5Dclose(vdset);
+ status = H5Fclose(vfile);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ vfile = H5Fopen(VFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+
+ /*
+ * Open VDS using different access properties to use max or
+ * min extents depending on the sizes of the underlying datasets
+ */
+ dapl = H5Pcreate(H5P_DATASET_ACCESS);
+
+ for (i = 0; i < 2; i++) {
+ status = H5Pset_virtual_view(dapl, i ? H5D_VDS_LAST_AVAILABLE : H5D_VDS_FIRST_MISSING);
+ vdset = H5Dopen2(vfile, DATASET, dapl);
+
+ /* Let's get space of the VDS and its dimension; we should get 32(or 20)x10x10 */
+ vspace = H5Dget_space(vdset);
+ H5Sget_simple_extent_dims(vspace, vdsdims_out, vdsdims_max_out);
+ printf("VDS dimensions, bounds = H5D_VDS_%s: ", i ? "LAST_AVAILABLE" : "FIRST_MISSING");
+ for (j = 0; j < RANK; j++)
+ printf(" %d ", (int)vdsdims_out[j]);
+ printf("\n");
+
+ /* Close */
+ status = H5Dclose(vdset);
+ status = H5Sclose(vspace);
+ }
+
+ status = H5Pclose(dapl);
+
+ vdset = H5Dopen2(vfile, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(vdset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset \n");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset \n");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+ if (H5Sget_select_type(src_space) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(src_space)) {
+ status = H5Sget_regular_hyperslab(src_space, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read data from VDS.
+ */
+ vspace = H5Dget_space(vdset);
+ H5Sget_simple_extent_dims(vspace, vdsdims_out, vdsdims_max_out);
+ printf("VDS dimensions second time \n");
+ printf(" Current: ");
+ for (i = 0; i < RANK; i++)
+ printf(" %d ", (int)vdsdims_out[i]);
+ printf("\n");
+
+ /* Read all VDS data */
+
+ /* We should be able to do it by using H5S_ALL instead of making selection
+ * or using H5Sselect_all from vspace.
+ */
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ count[0] = 1;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = vdsdims_out[0];
+ block[1] = vdsdims_out[1];
+ block[2] = vdsdims_out[2];
+
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, NULL, count, block);
+ mem_space = H5Screate_simple(RANK, vdsdims_out, NULL);
+ status = H5Dread(vdset, H5T_NATIVE_INT, mem_space, vspace, H5P_DEFAULT, rdata);
+ printf(" All data: \n");
+ for (i = 0; i < (int)vdsdims_out[0]; i++) {
+ for (j = 0; j < (int)vdsdims_out[1]; j++) {
+ printf("(%d, %d, 0)", i, j);
+ for (k = 0; k < (int)vdsdims_out[2]; k++)
+ printf(" %d ", rdata[i][j][k]);
+ printf("\n");
+ }
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Sclose(mem_space);
+ status = H5Pclose(dcpl);
+ status = H5Dclose(vdset);
+ status = H5Fclose(vfile);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim.c b/HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim.c
new file mode 100644
index 0000000..fadfb79
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-percival-unlim.c
@@ -0,0 +1,357 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of the virtual dataset.
+ Percival use case. Every fifth 10x10 plane in VDS is stored in
+ the corresponding 3D unlimited dataset.
+ There are 4 source datasets total.
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define VFILE "h5ex_vds-percival-unlim.h5"
+#define DATASET "VDS-Percival-unlim"
+#define VDSDIM0 H5S_UNLIMITED
+#define VDSDIM1 10
+#define VDSDIM2 10
+
+#define DIM0 H5S_UNLIMITED
+#define DIM0_1 10 /* Initial size of the datasets */
+#define DIM1 10
+#define DIM2 10
+#define RANK 3
+#define PLANE_STRIDE 4
+
+const char *SRC_FILE[] = {"apu.h5", "bpu.h5", "cpu.h5", "dpu.h5"};
+
+const char *SRC_DATASET[] = {"A", "B", "C", "D"};
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t vfile = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t vdset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t mem_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[3] = {4 * DIM0_1, VDSDIM1, VDSDIM2};
+ hsize_t vdsdims_max[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t dims[3] = {DIM0_1, DIM1, DIM2};
+ hsize_t extdims[3] = {2 * DIM0_1, DIM1, DIM2};
+ hsize_t chunk_dims[3] = {DIM0_1, DIM1, DIM2};
+ hsize_t dims_max[3] = {DIM0, DIM1, DIM2};
+ hsize_t vdsdims_out[3];
+ hsize_t vdsdims_max_out[3], start[3], stride[3], count[3], src_count[3],
+ block[3]; /* Hyperslab parameters */
+ hsize_t start_out[3], stride_out[3], count_out[3], block_out[3]; /* Hyperslab parameter out */
+ int wdata[DIM0_1 * DIM1 * DIM2];
+ int rdata[8 * DIM0_1][VDSDIM1][VDSDIM2];
+ int a_rdata[2 * DIM0_1][VDSDIM1][VDSDIM2];
+ int i, j, k;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ /*
+ * Create source files and datasets. This step is optional.
+ */
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ /*
+ * Initialize data for i-th source dataset.
+ */
+ for (j = 0; j < DIM0_1 * DIM1 * DIM2; j++)
+ wdata[j] = i + 1;
+
+ /*
+ * Create the source files and datasets. Write data to each dataset and
+ * close all resources.
+ */
+
+ file = H5Fcreate(SRC_FILE[i], H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ src_space = H5Screate_simple(RANK, dims, dims_max);
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+ status = H5Pset_chunk(dcpl, RANK, chunk_dims);
+ dset = H5Dcreate2(file, SRC_DATASET[i], H5T_NATIVE_INT, src_space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
+ status = H5Sclose(src_space);
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+ }
+
+ vfile = H5Fcreate(VFILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ vspace = H5Screate_simple(RANK, vdsdims, vdsdims_max);
+
+ /* Create dataspaces for the source dataset. */
+ src_space = H5Screate_simple(RANK, dims, dims_max);
+
+ /* Create VDS creation property */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /* Initialize hyperslab values */
+
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ stride[0] = PLANE_STRIDE; /* we will select every fifth plane in VDS */
+ stride[1] = 1;
+ stride[2] = 1;
+ count[0] = H5S_UNLIMITED;
+ count[1] = 1;
+ count[2] = 1;
+ src_count[0] = H5S_UNLIMITED;
+ src_count[1] = 1;
+ src_count[2] = 1;
+ block[0] = 1;
+ block[1] = DIM1;
+ block[2] = DIM2;
+
+ /*
+ * Build the mappings
+ */
+ status = H5Sselect_hyperslab(src_space, H5S_SELECT_SET, start, NULL, src_count, block);
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, stride, count, block);
+ status = H5Pset_virtual(dcpl, vspace, SRC_FILE[i], SRC_DATASET[i], src_space);
+ start[0]++;
+ }
+
+ H5Sselect_none(vspace);
+
+ /* Create a virtual dataset */
+ vdset = H5Dcreate2(vfile, DATASET, H5T_NATIVE_INT, vspace, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(vspace);
+ status = H5Sclose(src_space);
+ status = H5Pclose(dcpl);
+
+ /* Let's get space of the VDS and its dimension; we should get 40x10x10 */
+ vspace = H5Dget_space(vdset);
+ H5Sget_simple_extent_dims(vspace, vdsdims_out, vdsdims_max_out);
+ printf("VDS dimensions first time \n");
+ printf(" Current: ");
+ for (i = 0; i < RANK; i++)
+ printf(" %d ", (int)vdsdims_out[i]);
+ printf("\n");
+
+ /* Let's add data to the source datasets and check new dimensions for VDS */
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ /*
+ * Initialize data for i-th source dataset.
+ */
+ for (j = 0; j < DIM0_1 * DIM1 * DIM2; j++)
+ wdata[j] = 10 * (i + 1);
+
+ /*
+ * Create the source files and datasets. Write data to each dataset and
+ * close all resources.
+ */
+ file = H5Fopen(SRC_FILE[i], H5F_ACC_RDWR, H5P_DEFAULT);
+ dset = H5Dopen2(file, SRC_DATASET[i], H5P_DEFAULT);
+ status = H5Dset_extent(dset, extdims);
+ src_space = H5Dget_space(dset);
+ start[0] = DIM0_1;
+ start[1] = 0;
+ start[2] = 0;
+ count[0] = 1;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = DIM0_1;
+ block[1] = DIM1;
+ block[2] = DIM2;
+
+ mem_space = H5Screate_simple(RANK, dims, NULL);
+ status = H5Sselect_hyperslab(src_space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, mem_space, src_space, H5P_DEFAULT, wdata);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+ }
+
+ status = H5Dclose(vdset);
+ status = H5Fclose(vfile);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ vfile = H5Fopen(VFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ vdset = H5Dopen2(vfile, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(vdset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset \n");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset \n");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+ if (H5Sget_select_type(src_space) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(src_space)) {
+ status = H5Sget_regular_hyperslab(src_space, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read data from VDS.
+ */
+ vspace = H5Dget_space(vdset);
+ H5Sget_simple_extent_dims(vspace, vdsdims_out, vdsdims_max_out);
+ printf("VDS dimensions second time \n");
+ printf(" Current: ");
+ for (i = 0; i < RANK; i++)
+ printf(" %d ", (int)vdsdims_out[i]);
+ printf("\n");
+
+ /* Read all VDS data */
+
+ /* We should be able to do it by using H5S_ALL instead of making selection
+ * or using H5Sselect_all from vspace.
+ */
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ count[0] = 1;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = vdsdims_out[0];
+ block[1] = vdsdims_out[1];
+ block[2] = vdsdims_out[2];
+
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, NULL, count, block);
+ mem_space = H5Screate_simple(RANK, vdsdims_out, NULL);
+ status = H5Dread(vdset, H5T_NATIVE_INT, mem_space, vspace, H5P_DEFAULT, rdata);
+ printf(" All data: \n");
+ for (i = 0; i < (int)vdsdims_out[0]; i++) {
+ for (j = 0; j < (int)vdsdims_out[1]; j++) {
+ printf("(%d, %d, 0)", i, j);
+ for (k = 0; k < (int)vdsdims_out[2]; k++)
+ printf(" %d ", rdata[i][j][k]);
+ printf("\n");
+ }
+ }
+ /* Read VDS, but only data mapped to dataset a.h5 */
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ stride[0] = PLANE_STRIDE;
+ stride[1] = 1;
+ stride[2] = 1;
+ count[0] = 2 * DIM0_1;
+ count[1] = 1;
+ count[2] = 1;
+ block[0] = 1;
+ block[1] = vdsdims_out[1];
+ block[2] = vdsdims_out[2];
+ dims[0] = 2 * DIM0_1;
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, stride, count, block);
+ mem_space = H5Screate_simple(RANK, dims, NULL);
+ status = H5Dread(vdset, H5T_NATIVE_INT, mem_space, vspace, H5P_DEFAULT, a_rdata);
+ printf(" All data: \n");
+ for (i = 0; i < 2 * DIM0_1; i++) {
+ for (j = 0; j < (int)vdsdims_out[1]; j++) {
+ printf("(%d, %d, 0)", i, j);
+ for (k = 0; k < (int)vdsdims_out[2]; k++)
+ printf(" %d ", a_rdata[i][j][k]);
+ printf("\n");
+ }
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Sclose(mem_space);
+ status = H5Pclose(dcpl);
+ status = H5Dclose(vdset);
+ status = H5Fclose(vfile);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-percival.c b/HDF5Examples/C/H5VDS/h5ex_vds-percival.c
new file mode 100644
index 0000000..edbef18
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-percival.c
@@ -0,0 +1,254 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of the virtual dataset.
+ Percival use case. Every fifth 10x10 plane in VDS is stored in
+ the corresponding 3D unlimited dataset.
+ There are 4 source datasets total.
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILE "h5ex_vds-percival.h5"
+#define DATASET "VDS-Percival"
+#define VDSDIM0 40
+#define VDSDIM1 10
+#define VDSDIM2 10
+#define DIM0 10
+#define DIM1 10
+#define DIM2 10
+#define RANK 3
+#define PLANE_STRIDE 4
+
+const char *SRC_FILE[] = {"ap.h5", "bp.h5", "cp.h5", "dp.h5"};
+
+const char *SRC_DATASET[] = {"A", "B", "C", "D"};
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t vdsdims_max[3] = {VDSDIM0, VDSDIM1, VDSDIM2};
+ hsize_t dims[3] = {DIM0, DIM1, DIM2};
+ hsize_t dims_max[3] = {DIM0, DIM1, DIM2};
+ hsize_t start[3], stride[3], count[3], src_count[3], block[3]; /* Hyperslab start parameter for VDS */
+ hsize_t start_out[3], stride_out[3], count_out[3], block_out[3]; /* Hyperslab parameter out */
+ int wdata[DIM0 * DIM1 * DIM2];
+ int rdata[VDSDIM0][VDSDIM1][VDSDIM2]; /* Read buffer for virtual dataset */
+ int i, j, k;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ /*
+ * Create source files and datasets. This step is optional.
+ */
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ /*
+ * Initialize data for i-th source dataset.
+ */
+ for (j = 0; j < DIM0 * DIM1 * DIM2; j++)
+ wdata[j] = i + 1;
+
+ /*
+ * Create the source files and datasets. Write data to each dataset and
+ * close all resources.
+ */
+
+ file = H5Fcreate(SRC_FILE[i], H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ src_space = H5Screate_simple(RANK, dims, NULL);
+ dset = H5Dcreate2(file, SRC_DATASET[i], H5T_NATIVE_INT, src_space, H5P_DEFAULT, H5P_DEFAULT,
+ H5P_DEFAULT);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+ }
+
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ vspace = H5Screate_simple(RANK, vdsdims, vdsdims_max);
+
+ /* Create dataspaces for the source dataset. */
+ src_space = H5Screate_simple(RANK, dims, dims_max);
+
+ /* Create VDS creation property */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /* Initialize hyperslab values */
+
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ stride[0] = PLANE_STRIDE; /* we will select every fifth plane in VDS */
+ stride[1] = 1;
+ stride[2] = 1;
+ count[0] = VDSDIM0 / 4;
+ count[1] = 1;
+ count[2] = 1;
+ src_count[0] = DIM0;
+ src_count[1] = 1;
+ src_count[2] = 1;
+ block[0] = 1;
+ block[1] = DIM1;
+ block[2] = DIM2;
+
+ /*
+ * Build the mappings
+ */
+ status = H5Sselect_hyperslab(src_space, H5S_SELECT_SET, start, NULL, src_count, block);
+ for (i = 0; i < PLANE_STRIDE; i++) {
+ status = H5Sselect_hyperslab(vspace, H5S_SELECT_SET, start, stride, count, block);
+ status = H5Pset_virtual(dcpl, vspace, SRC_FILE[i], SRC_DATASET[i], src_space);
+ start[0]++;
+ }
+
+ H5Sselect_none(vspace);
+
+ /* Create a virtual dataset */
+ dset = H5Dcreate2(file, DATASET, H5T_NATIVE_INT, vspace, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(vspace);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ dset = H5Dopen2(file, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(dset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset \n");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset \n");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+ if (H5Sget_select_type(src_space) == H5S_SEL_HYPERSLABS) {
+ if (H5Sis_regular_hyperslab(src_space)) {
+ status = H5Sget_regular_hyperslab(src_space, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1], (unsigned long long)start_out[2]);
+ printf(" stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
+ printf(" count = [%llu, %llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1], (unsigned long long)count_out[2]);
+ printf(" block = [%llu, %llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1], (unsigned long long)block_out[2]);
+ }
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read the data using the default properties.
+ */
+ status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata[0]);
+
+ /*
+ * Output the data to the screen.
+ */
+ printf(" VDS Data:\n");
+ for (i = 0; i < VDSDIM0; i++) {
+ printf(" [");
+ for (j = 0; j < VDSDIM1; j++) {
+ printf(" [");
+ for (k = 0; k < VDSDIM1; k++)
+ printf(" %3d", rdata[i][j][k]);
+ printf("]");
+ }
+ printf("]\n");
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds-simpleIO.c b/HDF5Examples/C/H5VDS/h5ex_vds-simpleIO.c
new file mode 100644
index 0000000..3bd3133
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds-simpleIO.c
@@ -0,0 +1,196 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of virtual dataset I/O
+ The program creates 2-dim source dataset and writes
+ data to it. Then it creates 2-dim virtual dataset that has
+ the same dimension sizes and maps the all elements of the
+ virtual dataset to all elements of the source dataset.
+ Then VDS is read back.
+
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILE "h5ex_vds-simpleIO.h5"
+#define DATASET "VDS"
+#define DIM1 6
+#define DIM0 4
+#define RANK 2
+
+#define SRC_FILE "as.h5"
+#define SRC_DATASET "/A"
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[2] = {DIM0, DIM1}; /* Virtual dataset dimension */
+ hsize_t dims[2] = {DIM0, DIM1}; /* Source dataset dimensions */
+ int wdata[DIM0][DIM1]; /* Write buffer for source dataset */
+ int rdata[DIM0][DIM1]; /* Read buffer for virtual dataset */
+ int i, j;
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ char *filename = NULL;
+ char *dsetname = NULL;
+
+ /*
+ * Initialize data.
+ */
+ for (i = 0; i < DIM0; i++)
+ for (j = 0; j < DIM1; j++)
+ wdata[i][j] = i + 1;
+
+ /*
+ * Create the source file and the dataset. Write data to the source dataset
+ * and close all resources.
+ */
+ file = H5Fcreate(SRC_FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ space = H5Screate_simple(RANK, dims, NULL);
+ dset = H5Dcreate2(file, SRC_DATASET, H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata[0]);
+ status = H5Sclose(space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /* Create file in which virtual dataset will be stored. */
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ vspace = H5Screate_simple(RANK, vdsdims, NULL);
+
+ /* Set VDS creation property. */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+
+ /*
+ * Build the mappings.
+ * Selections in the source datasets are H5S_ALL.
+ * In the virtual dataset we select the first, the second and the third rows
+ * and map each row to the data in the corresponding source dataset.
+ */
+ src_space = H5Screate_simple(RANK, dims, NULL);
+ status = H5Pset_virtual(dcpl, vspace, SRC_FILE, SRC_DATASET, src_space);
+
+ /* Create a virtual dataset */
+ dset = H5Dcreate2(file, DATASET, H5T_NATIVE_INT, vspace, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(vspace);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open the file and virtual dataset
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ dset = H5Dopen2(file, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(dset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset ");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure it is ALL selection and then print selection. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_ALL) {
+ printf("Selection is H5S_ALL \n");
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset ");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+
+ /* Make sure it is ALL selection and then print selection */
+ if (H5Sget_select_type(src_space) == H5S_SEL_ALL) {
+ printf("Selection is H5S_ALL \n");
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ }
+
+ /*
+ * Read the data using the default properties.
+ */
+ status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata[0]);
+
+ /*
+ * Output the data to the screen.
+ */
+ printf(" VDS Data:\n");
+ for (i = 0; i < DIM0; i++) {
+ printf(" [");
+ for (j = 0; j < DIM1; j++)
+ printf(" %3d", rdata[i][j]);
+ printf("]\n");
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/h5ex_vds.c b/HDF5Examples/C/H5VDS/h5ex_vds.c
new file mode 100644
index 0000000..96a8137
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/h5ex_vds.c
@@ -0,0 +1,254 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/************************************************************
+
+ This example illustrates the concept of virtual dataset.
+ The program creates three 1-dim source datasets and writes
+ data to them. Then it creates a 2-dim virtual dataset and
+ maps the first three rows of the virtual dataset to the data
+ in the source datasets. Elements of a row are mapped to all
+ elements of the corresponding source dataset.
+ The fourth row is not mapped and will be filled with the fill
+ values when virtual dataset is read back.
+
+ The program closes all datasets, and then reopens the virtual
+ dataset, and finds and prints its creation properties.
+ Then it reads the values.
+
+ This file is intended for use with HDF5 Library version 1.10
+
+ ************************************************************/
+
+#include "hdf5.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILE "h5ex_vds.h5"
+#define DATASET "VDS"
+#define VDSDIM1 6
+#define VDSDIM0 4
+#define DIM0 6
+#define RANK1 1
+#define RANK2 2
+
+const char *SRC_FILE[] = {"h5ex_vds_a.h5", "h5ex_vds_b.h5", "h5ex_vds_c.h5"};
+
+const char *SRC_DATASET[] = {"A", "B", "C"};
+
+int
+main(void)
+{
+ hid_t file = H5I_INVALID_HID;
+ hid_t space = H5I_INVALID_HID;
+ hid_t dset = H5I_INVALID_HID;
+ hid_t src_space = H5I_INVALID_HID;
+ hid_t vspace = H5I_INVALID_HID;
+ hid_t dcpl = H5I_INVALID_HID;
+ herr_t status;
+ hsize_t vdsdims[2] = {VDSDIM0, VDSDIM1}; /* Virtual datasets dimension */
+ hsize_t dims[1] = {DIM0}; /* Source datasets dimensions */
+ hsize_t start[2], count[2], block[2]; /* Hyperslab parameters */
+ hsize_t start_out[2], stride_out[2], count_out[2], block_out[2];
+ int wdata[DIM0]; /* Write buffer for source dataset */
+ int rdata[VDSDIM0][VDSDIM1]; /* Read buffer for virtual dataset */
+ int i, j, k, l, block_inc;
+ int fill_value = -1; /* Fill value for VDS */
+ H5D_layout_t layout; /* Storage layout */
+ size_t num_map; /* Number of mappings */
+ ssize_t len; /* Length of the string; also a return value */
+ hsize_t *buf = NULL; /* Buffer to hold hyperslab coordinates */
+ char *filename = NULL;
+ char *dsetname = NULL;
+ hsize_t nblocks;
+
+ /*
+ * Create source files and datasets. This step is optional.
+ */
+ for (i = 0; i < 3; i++) {
+ /*
+ * Initialize data for i-th source dataset.
+ */
+ for (j = 0; j < DIM0; j++)
+ wdata[j] = i + 1;
+
+ /*
+ * Create the source files and datasets. Write data to each dataset and
+ * close all resources.
+ */
+
+ file = H5Fcreate(SRC_FILE[i], H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ space = H5Screate_simple(RANK1, dims, NULL);
+ dset = H5Dcreate2(file, SRC_DATASET[i], H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ status = H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
+ status = H5Sclose(space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+ }
+
+ /* Create file in which virtual dataset will be stored. */
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Create VDS dataspace. */
+ space = H5Screate_simple(RANK2, vdsdims, NULL);
+
+ /* Set VDS creation property. */
+ dcpl = H5Pcreate(H5P_DATASET_CREATE);
+ status = H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fill_value);
+
+ /* Initialize hyperslab values. */
+ start[0] = 0;
+ start[1] = 0;
+ count[0] = 1;
+ count[1] = 1;
+ block[0] = 1;
+ block[1] = VDSDIM1;
+
+ /*
+ * Build the mappings.
+ * Selections in the source datasets are H5S_ALL.
+ * In the virtual dataset we select the first, the second and the third rows
+ * and map each row to the data in the corresponding source dataset.
+ */
+ src_space = H5Screate_simple(RANK1, dims, NULL);
+ for (i = 0; i < 3; i++) {
+ start[0] = (hsize_t)i;
+ /* Select i-th row in the virtual dataset; selection in the source datasets is the same. */
+ status = H5Sselect_hyperslab(space, H5S_SELECT_SET, start, NULL, count, block);
+ status = H5Pset_virtual(dcpl, space, SRC_FILE[i], SRC_DATASET[i], src_space);
+ }
+
+ /* Create a virtual dataset. */
+ dset = H5Dcreate2(file, DATASET, H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
+ status = H5Sclose(space);
+ status = H5Sclose(src_space);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ /*
+ * Now we begin the read section of this example.
+ */
+
+ /*
+ * Open file and dataset using the default properties.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ dset = H5Dopen2(file, DATASET, H5P_DEFAULT);
+
+ /*
+ * Get creation property list and mapping properties.
+ */
+ dcpl = H5Dget_create_plist(dset);
+
+ /*
+ * Get storage layout.
+ */
+ layout = H5Pget_layout(dcpl);
+ if (H5D_VIRTUAL == layout)
+ printf(" Dataset has a virtual layout \n");
+ else
+ printf("Wrong layout found \n");
+
+ /*
+ * Find the number of mappings.
+ */
+ status = H5Pget_virtual_count(dcpl, &num_map);
+ printf(" Number of mappings is %lu\n", (unsigned long)num_map);
+
+ /*
+ * Get mapping parameters for each mapping.
+ */
+ for (i = 0; i < (int)num_map; i++) {
+ printf(" Mapping %d \n", i);
+ printf(" Selection in the virtual dataset ");
+ /* Get selection in the virtual dataset */
+ vspace = H5Pget_virtual_vspace(dcpl, (size_t)i);
+
+ /* Make sure that this is a hyperslab selection and then print information. */
+ if (H5Sget_select_type(vspace) == H5S_SEL_HYPERSLABS) {
+ nblocks = H5Sget_select_hyper_nblocks(vspace);
+ buf = (hsize_t *)malloc(sizeof(hsize_t) * 2 * RANK2 * nblocks);
+ status = H5Sget_select_hyper_blocklist(vspace, (hsize_t)0, nblocks, buf);
+ for (l = 0; l < nblocks; l++) {
+ block_inc = 2 * RANK2 * l;
+ printf("(");
+ for (k = 0; k < RANK2 - 1; k++)
+ printf("%d,", (int)buf[block_inc + k]);
+ printf("%d) - (", (int)buf[block_inc + k]);
+ for (k = 0; k < RANK2 - 1; k++)
+ printf("%d,", (int)buf[block_inc + RANK2 + k]);
+ printf("%d)\n", (int)buf[block_inc + RANK2 + k]);
+ }
+ /* We also can use new APIs to get start, stride, count and block */
+ if (H5Sis_regular_hyperslab(vspace)) {
+ status = H5Sget_regular_hyperslab(vspace, start_out, stride_out, count_out, block_out);
+ printf(" start = [%llu, %llu] \n", (unsigned long long)start_out[0],
+ (unsigned long long)start_out[1]);
+ printf(" stride = [%llu, %llu] \n", (unsigned long long)stride_out[0],
+ (unsigned long long)stride_out[1]);
+ printf(" count = [%llu, %llu] \n", (unsigned long long)count_out[0],
+ (unsigned long long)count_out[1]);
+ printf(" block = [%llu, %llu] \n", (unsigned long long)block_out[0],
+ (unsigned long long)block_out[1]);
+ }
+ }
+ /* Get source file name */
+ len = H5Pget_virtual_filename(dcpl, (size_t)i, NULL, 0);
+ filename = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_filename(dcpl, (size_t)i, filename, len + 1);
+ printf(" Source filename %s\n", filename);
+
+ /* Get source dataset name */
+ len = H5Pget_virtual_dsetname(dcpl, (size_t)i, NULL, 0);
+ dsetname = (char *)malloc((size_t)len * sizeof(char) + 1);
+ H5Pget_virtual_dsetname(dcpl, (size_t)i, dsetname, len + 1);
+ printf(" Source dataset name %s\n", dsetname);
+
+ /* Get selection in the source dataset */
+ printf(" Selection in the source dataset ");
+ src_space = H5Pget_virtual_srcspace(dcpl, (size_t)i);
+
+ /* Make sure it is ALL selection and then print the coordinates. */
+ if (H5Sget_select_type(src_space) == H5S_SEL_ALL) {
+ printf("(0) - (%d) \n", DIM0 - 1);
+ }
+ H5Sclose(vspace);
+ H5Sclose(src_space);
+ free(filename);
+ free(dsetname);
+ free(buf);
+ }
+
+ /*
+ * Read the data using the default properties.
+ */
+ status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata[0]);
+
+ /*
+ * Output the data to the screen.
+ */
+ printf(" VDS Data:\n");
+ for (i = 0; i < VDSDIM0; i++) {
+ printf(" [");
+ for (j = 0; j < VDSDIM1; j++)
+ printf(" %3d", rdata[i][j]);
+ printf("]\n");
+ }
+
+ /*
+ * Close and release resources.
+ */
+ status = H5Pclose(dcpl);
+ status = H5Dclose(dset);
+ status = H5Fclose(file);
+
+ return 0;
+}
diff --git a/HDF5Examples/C/H5VDS/test.sh.in b/HDF5Examples/C/H5VDS/test.sh.in
new file mode 100644
index 0000000..91888f5
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/test.sh.in
@@ -0,0 +1,98 @@
+#! /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 $CC in
+*/*) H5DUMP=`echo $CC | 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=""
+topics110="vds vds-exc vds-exclim vds-eiger vds-simpleIO vds-percival vds-percival-unlim vds-percival-unlim-maxmin"
+
+return_val=0
+
+version_compare "$H5_LIBVER" "1.10.0"
+if [ "$version_lt" = 0 ]; then
+ for topic in $topics110
+ do
+ fname=h5ex_$topic
+ $ECHO_N "Testing C/H5VDS/$fname...$ECHO_C"
+ exout ./$fname >tmp.test
+ status=$?
+ if test $status -eq 1
+ then
+ echo " Unsupported feature"
+ status=0
+ else
+ cmp -s tmp.test $srcdir/tfiles/110/$fname.tst
+ 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/110/$fname.ddl
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ echo " Passed"
+ fi
+ fi
+ return_val=`expr $status + $return_val`
+ fi
+ done
+fi
+
+
+rm -f tmp.test
+echo "$return_val tests failed in C/H5VDS/"
+exit $return_val
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.ddl
new file mode 100644
index 0000000..b622169
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.ddl
@@ -0,0 +1,10 @@
+HDF5 "h5ex_vds-eiger.h5" {
+GROUP "/" {
+ DATASET "VDS-Eiger" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 0, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ DATA {
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.tst
new file mode 100644
index 0000000..580c708
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-eiger.tst
@@ -0,0 +1,17 @@
+ Dataset has a virtual layout
+ Number of mappings is 1
+ Mapping 0
+ Selection in the virtual dataset
+ start = [0, 0, 0]
+ stride = [5, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [5, 10, 10]
+ Source filename f-%b.h5
+ Source dataset name /A
+ Selection in the source dataset H5S_ALL
+ VDS 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 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0]]
+ [ [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0]]
+ [ [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0]]
+ [ [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0]]
+ [ [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0]]
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.ddl
new file mode 100644
index 0000000..eb00999
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.ddl
@@ -0,0 +1,10 @@
+HDF5 "h5ex_vds-exc.h5" {
+GROUP "/" {
+ DATASET "VDS-Excalibur" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 0, 15, 6 ) / ( H5S_UNLIMITED, 15, 6 ) }
+ DATA {
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.tst
new file mode 100644
index 0000000..917c11a
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exc.tst
@@ -0,0 +1,81 @@
+ Dataset has a virtual layout
+ Number of mappings is 6
+ Mapping 0
+ Selection in the virtual dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 2, 6]
+ Source filename ae.h5
+ Source dataset name A
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 2, 6]
+ Mapping 1
+ Selection in the virtual dataset
+ start = [0, 5, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 2, 6]
+ Source filename ce.h5
+ Source dataset name C
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 2, 6]
+ Mapping 2
+ Selection in the virtual dataset
+ start = [0, 10, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 2, 6]
+ Source filename ee.h5
+ Source dataset name E
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 2, 6]
+ Mapping 3
+ Selection in the virtual dataset
+ start = [0, 2, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 3, 6]
+ Source filename be.h5
+ Source dataset name B
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 3, 6]
+ Mapping 4
+ Selection in the virtual dataset
+ start = [0, 7, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 3, 6]
+ Source filename de.h5
+ Source dataset name D
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 3, 6]
+ Mapping 5
+ Selection in the virtual dataset
+ start = [0, 12, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 3, 6]
+ Source filename fe.h5
+ Source dataset name F
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 3, 6]
+ VDS Data:
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.ddl
new file mode 100644
index 0000000..401b84f
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.ddl
@@ -0,0 +1,55 @@
+HDF5 "h5ex_vds-exclim.h5" {
+GROUP "/" {
+ DATASET "VDS-Excaliburlim" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 3, 15, 6 ) / ( 3, 15, 6 ) }
+ DATA {
+ (0,0,0): 0, 0, 0, 0, 0, 0,
+ (0,1,0): 0, 0, 0, 0, 0, 0,
+ (0,2,0): 0, 0, 0, 0, 0, 0,
+ (0,3,0): 0, 0, 0, 0, 0, 0,
+ (0,4,0): 0, 0, 0, 0, 0, 0,
+ (0,5,0): 0, 0, 0, 0, 0, 0,
+ (0,6,0): 0, 0, 0, 0, 0, 0,
+ (0,7,0): 0, 0, 0, 0, 0, 0,
+ (0,8,0): 0, 0, 0, 0, 0, 0,
+ (0,9,0): 0, 0, 0, 0, 0, 0,
+ (0,10,0): 0, 0, 0, 0, 0, 0,
+ (0,11,0): 0, 0, 0, 0, 0, 0,
+ (0,12,0): 0, 0, 0, 0, 0, 0,
+ (0,13,0): 0, 0, 0, 0, 0, 0,
+ (0,14,0): 0, 0, 0, 0, 0, 0,
+ (1,0,0): 0, 0, 0, 0, 0, 0,
+ (1,1,0): 0, 0, 0, 0, 0, 0,
+ (1,2,0): 0, 0, 0, 0, 0, 0,
+ (1,3,0): 0, 0, 0, 0, 0, 0,
+ (1,4,0): 0, 0, 0, 0, 0, 0,
+ (1,5,0): 0, 0, 0, 0, 0, 0,
+ (1,6,0): 0, 0, 0, 0, 0, 0,
+ (1,7,0): 0, 0, 0, 0, 0, 0,
+ (1,8,0): 0, 0, 0, 0, 0, 0,
+ (1,9,0): 0, 0, 0, 0, 0, 0,
+ (1,10,0): 0, 0, 0, 0, 0, 0,
+ (1,11,0): 0, 0, 0, 0, 0, 0,
+ (1,12,0): 0, 0, 0, 0, 0, 0,
+ (1,13,0): 0, 0, 0, 0, 0, 0,
+ (1,14,0): 0, 0, 0, 0, 0, 0,
+ (2,0,0): 0, 0, 0, 0, 0, 0,
+ (2,1,0): 0, 0, 0, 0, 0, 0,
+ (2,2,0): 0, 0, 0, 0, 0, 0,
+ (2,3,0): 0, 0, 0, 0, 0, 0,
+ (2,4,0): 0, 0, 0, 0, 0, 0,
+ (2,5,0): 0, 0, 0, 0, 0, 0,
+ (2,6,0): 0, 0, 0, 0, 0, 0,
+ (2,7,0): 0, 0, 0, 0, 0, 0,
+ (2,8,0): 0, 0, 0, 0, 0, 0,
+ (2,9,0): 0, 0, 0, 0, 0, 0,
+ (2,10,0): 0, 0, 0, 0, 0, 0,
+ (2,11,0): 0, 0, 0, 0, 0, 0,
+ (2,12,0): 0, 0, 0, 0, 0, 0,
+ (2,13,0): 0, 0, 0, 0, 0, 0,
+ (2,14,0): 0, 0, 0, 0, 0, 0
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.tst
new file mode 100644
index 0000000..d5b0db7
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-exclim.tst
@@ -0,0 +1,84 @@
+ Dataset has a virtual layout
+ Number of mappings is 6
+ Mapping 0
+ Selection in the virtual dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 2, 6]
+ Source filename ael.h5
+ Source dataset name A
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 2, 6]
+ Mapping 1
+ Selection in the virtual dataset
+ start = [0, 5, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 2, 6]
+ Source filename cel.h5
+ Source dataset name C
+ Selection in the source dataset
+ start = [0, 5, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 2, 6]
+ Mapping 2
+ Selection in the virtual dataset
+ start = [0, 10, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 2, 6]
+ Source filename eel.h5
+ Source dataset name E
+ Selection in the source dataset
+ start = [0, 10, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 2, 6]
+ Mapping 3
+ Selection in the virtual dataset
+ start = [0, 2, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 3, 6]
+ Source filename bel.h5
+ Source dataset name B
+ Selection in the source dataset
+ start = [0, 2, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 3, 6]
+ Mapping 4
+ Selection in the virtual dataset
+ start = [0, 7, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 3, 6]
+ Source filename del.h5
+ Source dataset name D
+ Selection in the source dataset
+ start = [0, 7, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 3, 6]
+ Mapping 5
+ Selection in the virtual dataset
+ start = [0, 12, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 3, 6]
+ Source filename fel.h5
+ Source dataset name F
+ Selection in the source dataset
+ start = [0, 12, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [3, 3, 6]
+ VDS 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 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]
+ [ [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]
+ [ [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 1437410176 32670 -402914496] [ 0 0 0 0 0 0 1437410176 32670 -402914496 32764 -402914232 32764 -402914368 32764 1]]
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.ddl
new file mode 100644
index 0000000..1008165
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.ddl
@@ -0,0 +1,330 @@
+HDF5 "h5ex_vds-percival-unlim-maxmin.h5" {
+GROUP "/" {
+ DATASET "VDS-Percival-unlim-maxmin" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 32, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ DATA {
+ (0,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (1,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (2,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (3,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (4,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (5,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (6,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (7,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (8,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (9,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (10,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (11,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (12,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (13,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (14,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (16,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (17,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (18,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (19,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (20,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (21,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (22,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (23,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (24,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (26,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (27,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (28,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (31,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.tst
new file mode 100644
index 0000000..8ccd85e
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim-maxmin.tst
@@ -0,0 +1,379 @@
+VDS dimensions, bounds = H5D_VDS_FIRST_MISSING: 20 10 10
+VDS dimensions, bounds = H5D_VDS_LAST_AVAILABLE: 32 10 10
+ Dataset has a virtual layout
+ Number of mappings is 4
+ Mapping 0
+ Selection in the virtual dataset
+ start = [0, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename apum.h5
+ Source dataset name A
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Mapping 1
+ Selection in the virtual dataset
+ start = [1, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename bpum.h5
+ Source dataset name B
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Mapping 2
+ Selection in the virtual dataset
+ start = [2, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename cpum.h5
+ Source dataset name C
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Mapping 3
+ Selection in the virtual dataset
+ start = [3, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename dpum.h5
+ Source dataset name D
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+VDS dimensions second time
+ Current: 32 10 10
+ All data:
+(0, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(2, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(3, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(4, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(6, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(7, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(8, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(10, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(11, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(12, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(13, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(14, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(15, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(16, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(17, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(18, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(18, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(19, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(19, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(20, 0, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 1, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 2, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 3, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 4, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 5, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 6, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 7, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 8, 0) 0 0 0 0 0 0 0 0 0 0
+(20, 9, 0) 0 0 0 0 0 0 0 0 0 0
+(21, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(21, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(22, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(22, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(23, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(23, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(24, 0, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 1, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 2, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 3, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 4, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 5, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 6, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 7, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 8, 0) 0 0 0 0 0 0 0 0 0 0
+(24, 9, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 0, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 1, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 2, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 3, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 4, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 5, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 6, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 7, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 8, 0) 0 0 0 0 0 0 0 0 0 0
+(25, 9, 0) 0 0 0 0 0 0 0 0 0 0
+(26, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(26, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(27, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(27, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(28, 0, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 1, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 2, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 3, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 4, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 5, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 6, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 7, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 8, 0) 0 0 0 0 0 0 0 0 0 0
+(28, 9, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 0, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 1, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 2, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 3, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 4, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 5, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 6, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 7, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 8, 0) 0 0 0 0 0 0 0 0 0 0
+(29, 9, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 0, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 1, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 2, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 3, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 4, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 5, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 6, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 7, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 8, 0) 0 0 0 0 0 0 0 0 0 0
+(30, 9, 0) 0 0 0 0 0 0 0 0 0 0
+(31, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(31, 9, 0) 40 40 40 40 40 40 40 40 40 40
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.ddl
new file mode 100644
index 0000000..4a51060
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.ddl
@@ -0,0 +1,810 @@
+HDF5 "h5ex_vds-percival-unlim.h5" {
+GROUP "/" {
+ DATASET "VDS-Percival-unlim" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 80, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ DATA {
+ (0,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (1,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (2,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (3,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (4,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (5,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (6,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (7,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (8,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (9,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (10,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (11,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (12,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (13,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (14,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (16,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (17,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (18,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (20,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (21,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (22,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (23,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (24,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (25,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (26,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (27,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (28,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (29,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (30,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (31,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (32,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (33,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (34,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (35,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (36,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (37,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (38,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (39,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (40,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (40,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (41,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (41,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (42,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (42,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (43,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (43,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (44,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (44,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (45,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (45,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (46,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (46,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (47,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (47,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (48,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (48,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (49,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (49,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (50,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (50,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (51,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (51,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (52,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (52,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (53,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (53,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (54,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (54,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (55,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (55,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (56,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (56,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (57,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (57,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (58,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (58,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (59,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (59,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (60,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (60,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (61,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (61,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (62,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (62,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (63,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (63,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (64,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (64,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (65,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (65,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (66,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (66,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (67,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (67,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (68,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (68,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (69,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (69,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (70,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (70,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (71,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (71,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (72,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (72,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (73,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (73,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (74,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (74,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (75,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (75,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (76,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (76,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (77,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (77,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (78,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (78,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (79,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (79,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.tst
new file mode 100644
index 0000000..d6197f0
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival-unlim.tst
@@ -0,0 +1,1060 @@
+VDS dimensions first time
+ Current: 40 10 10
+ Dataset has a virtual layout
+ Number of mappings is 4
+ Mapping 0
+ Selection in the virtual dataset
+ start = [0, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename apu.h5
+ Source dataset name A
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Mapping 1
+ Selection in the virtual dataset
+ start = [1, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename bpu.h5
+ Source dataset name B
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Mapping 2
+ Selection in the virtual dataset
+ start = [2, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename cpu.h5
+ Source dataset name C
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Mapping 3
+ Selection in the virtual dataset
+ start = [3, 0, 0]
+ stride = [4, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+ Source filename dpu.h5
+ Source dataset name D
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [18446744073709551615, 1, 1]
+ block = [1, 10, 10]
+VDS dimensions second time
+ Current: 80 10 10
+ All data:
+(0, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(1, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(2, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(2, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(3, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(3, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(4, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(5, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(6, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(6, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(7, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(7, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(8, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(9, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(10, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(10, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(11, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(11, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(12, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(12, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(13, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(13, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(14, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(14, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(15, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(15, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(16, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(16, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(17, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(17, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(18, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(18, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(19, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(19, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(20, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(20, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(21, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(21, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(22, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(22, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(23, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(23, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(24, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(24, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(25, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(25, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(26, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(26, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(27, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(27, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(28, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(28, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(29, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(29, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(30, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(30, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(31, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(31, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(32, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(32, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(33, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(33, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(34, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(34, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(35, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(35, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(36, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(36, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(37, 0, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 1, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 2, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 3, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 4, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 5, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 6, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 7, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 8, 0) 2 2 2 2 2 2 2 2 2 2
+(37, 9, 0) 2 2 2 2 2 2 2 2 2 2
+(38, 0, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 1, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 2, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 3, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 4, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 5, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 6, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 7, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 8, 0) 3 3 3 3 3 3 3 3 3 3
+(38, 9, 0) 3 3 3 3 3 3 3 3 3 3
+(39, 0, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 1, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 2, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 3, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 4, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 5, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 6, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 7, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 8, 0) 4 4 4 4 4 4 4 4 4 4
+(39, 9, 0) 4 4 4 4 4 4 4 4 4 4
+(40, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(40, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(41, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(41, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(42, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(42, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(43, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(43, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(44, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(44, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(45, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(45, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(46, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(46, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(47, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(47, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(48, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(48, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(49, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(49, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(50, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(50, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(51, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(51, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(52, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(52, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(53, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(53, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(54, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(54, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(55, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(55, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(56, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(56, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(57, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(57, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(58, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(58, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(59, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(59, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(60, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(60, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(61, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(61, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(62, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(62, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(63, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(63, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(64, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(64, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(65, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(65, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(66, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(66, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(67, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(67, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(68, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(68, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(69, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(69, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(70, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(70, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(71, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(71, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(72, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(72, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(73, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(73, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(74, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(74, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(75, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(75, 9, 0) 40 40 40 40 40 40 40 40 40 40
+(76, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(76, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(77, 0, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 1, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 2, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 3, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 4, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 5, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 6, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 7, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 8, 0) 20 20 20 20 20 20 20 20 20 20
+(77, 9, 0) 20 20 20 20 20 20 20 20 20 20
+(78, 0, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 1, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 2, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 3, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 4, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 5, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 6, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 7, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 8, 0) 30 30 30 30 30 30 30 30 30 30
+(78, 9, 0) 30 30 30 30 30 30 30 30 30 30
+(79, 0, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 1, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 2, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 3, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 4, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 5, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 6, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 7, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 8, 0) 40 40 40 40 40 40 40 40 40 40
+(79, 9, 0) 40 40 40 40 40 40 40 40 40 40
+ All data:
+(0, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(0, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(1, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(2, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(3, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(4, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(5, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(6, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(7, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(8, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 0, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 1, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 2, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 3, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 4, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 5, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 6, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 7, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 8, 0) 1 1 1 1 1 1 1 1 1 1
+(9, 9, 0) 1 1 1 1 1 1 1 1 1 1
+(10, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(10, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(11, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(12, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(13, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(14, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(15, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(16, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(17, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(18, 9, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 0, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 1, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 2, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 3, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 4, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 5, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 6, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 7, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 8, 0) 10 10 10 10 10 10 10 10 10 10
+(19, 9, 0) 10 10 10 10 10 10 10 10 10 10
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.ddl
new file mode 100644
index 0000000..5279876
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.ddl
@@ -0,0 +1,410 @@
+HDF5 "h5ex_vds-percival.h5" {
+GROUP "/" {
+ DATASET "VDS-Percival" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 40, 10, 10 ) / ( 40, 10, 10 ) }
+ DATA {
+ (0,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (1,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (2,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (3,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (4,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (5,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (6,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (7,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (8,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (9,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (10,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (11,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (12,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (13,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (14,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (16,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (16,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (17,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (17,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (18,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (19,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (20,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (20,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (21,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (21,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (22,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (22,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (23,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (23,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (24,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (24,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (25,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (25,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (26,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (26,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (27,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (27,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (28,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (28,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (29,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (29,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (30,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (30,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (31,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (31,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (32,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (32,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (33,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (33,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (34,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (34,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (35,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (35,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (36,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (36,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (37,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (37,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (38,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (38,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (39,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (39,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.tst
new file mode 100644
index 0000000..9d39e9e
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-percival.tst
@@ -0,0 +1,95 @@
+ Dataset has a virtual layout
+ Number of mappings is 4
+ Mapping 0
+ Selection in the virtual dataset
+ start = [0, 0, 0]
+ stride = [4, 1, 1]
+ count = [10, 1, 1]
+ block = [1, 10, 10]
+ Source filename ap.h5
+ Source dataset name A
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [10, 10, 10]
+ Mapping 1
+ Selection in the virtual dataset
+ start = [1, 0, 0]
+ stride = [4, 1, 1]
+ count = [10, 1, 1]
+ block = [1, 10, 10]
+ Source filename bp.h5
+ Source dataset name B
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [10, 10, 10]
+ Mapping 2
+ Selection in the virtual dataset
+ start = [2, 0, 0]
+ stride = [4, 1, 1]
+ count = [10, 1, 1]
+ block = [1, 10, 10]
+ Source filename cp.h5
+ Source dataset name C
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [10, 10, 10]
+ Mapping 3
+ Selection in the virtual dataset
+ start = [3, 0, 0]
+ stride = [4, 1, 1]
+ count = [10, 1, 1]
+ block = [1, 10, 10]
+ Source filename dp.h5
+ Source dataset name D
+ Selection in the source dataset
+ start = [0, 0, 0]
+ stride = [1, 1, 1]
+ count = [1, 1, 1]
+ block = [10, 10, 10]
+ VDS 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
+ [ [ 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 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 1 1 1 1]]
+ [ [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2] [ 2 2 2 2 2 2 2 2 2 2]]
+ [ [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3] [ 3 3 3 3 3 3 3 3 3 3]]
+ [ [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4] [ 4 4 4 4 4 4 4 4 4 4]]
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.ddl
new file mode 100644
index 0000000..8a667e6
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.ddl
@@ -0,0 +1,14 @@
+HDF5 "h5ex_vds-simpleIO.h5" {
+GROUP "/" {
+ DATASET "VDS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 4, 6 ) / ( 4, 6 ) }
+ DATA {
+ (0,0): 1, 1, 1, 1, 1, 1,
+ (1,0): 2, 2, 2, 2, 2, 2,
+ (2,0): 3, 3, 3, 3, 3, 3,
+ (3,0): 4, 4, 4, 4, 4, 4
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.tst
new file mode 100644
index 0000000..ec39242
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds-simpleIO.tst
@@ -0,0 +1,12 @@
+ Dataset has a virtual layout
+ Number of mappings is 1
+ Mapping 0
+ Selection in the virtual dataset Selection is H5S_ALL
+ Source filename as.h5
+ Source dataset name /A
+ Selection in the source dataset Selection is H5S_ALL
+ VDS Data:
+ [ 1 1 1 1 1 1]
+ [ 2 2 2 2 2 2]
+ [ 3 3 3 3 3 3]
+ [ 4 4 4 4 4 4]
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.ddl b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.ddl
new file mode 100644
index 0000000..efbff7d
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.ddl
@@ -0,0 +1,14 @@
+HDF5 "h5ex_vds.h5" {
+GROUP "/" {
+ DATASET "VDS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 4, 6 ) / ( 4, 6 ) }
+ DATA {
+ (0,0): 1, 1, 1, 1, 1, 1,
+ (1,0): 2, 2, 2, 2, 2, 2,
+ (2,0): 3, 3, 3, 3, 3, 3,
+ (3,0): -1, -1, -1, -1, -1, -1
+ }
+ }
+}
+}
diff --git a/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.tst b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.tst
new file mode 100644
index 0000000..410ac4d
--- /dev/null
+++ b/HDF5Examples/C/H5VDS/tfiles/110/h5ex_vds.tst
@@ -0,0 +1,34 @@
+ Dataset has a virtual layout
+ Number of mappings is 3
+ Mapping 0
+ Selection in the virtual dataset (0,0) - (0,5)
+ start = [0, 0]
+ stride = [1, 1]
+ count = [1, 1]
+ block = [1, 6]
+ Source filename h5ex_vds_a.h5
+ Source dataset name A
+ Selection in the source dataset (0) - (5)
+ Mapping 1
+ Selection in the virtual dataset (1,0) - (1,5)
+ start = [1, 0]
+ stride = [1, 1]
+ count = [1, 1]
+ block = [1, 6]
+ Source filename h5ex_vds_b.h5
+ Source dataset name B
+ Selection in the source dataset (0) - (5)
+ Mapping 2
+ Selection in the virtual dataset (2,0) - (2,5)
+ start = [2, 0]
+ stride = [1, 1]
+ count = [1, 1]
+ block = [1, 6]
+ Source filename h5ex_vds_c.h5
+ Source dataset name C
+ Selection in the source dataset (0) - (5)
+ VDS Data:
+ [ 1 1 1 1 1 1]
+ [ 2 2 2 2 2 2]
+ [ 3 3 3 3 3 3]
+ [ -1 -1 -1 -1 -1 -1]
diff --git a/HDF5Examples/C/Perf/CMakeLists.txt b/HDF5Examples/C/Perf/CMakeLists.txt
index 5cbba67..e41def2 100644
--- a/HDF5Examples/C/Perf/CMakeLists.txt
+++ b/HDF5Examples/C/Perf/CMakeLists.txt
@@ -42,7 +42,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -56,7 +56,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}.dmp"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
endif ()
diff --git a/HDF5Examples/CMakeLists.txt b/HDF5Examples/CMakeLists.txt
index e944b9e..00adfc0 100644
--- a/HDF5Examples/CMakeLists.txt
+++ b/HDF5Examples/CMakeLists.txt
@@ -4,29 +4,45 @@ project (H5EXAMPLES C)
#-----------------------------------------------------------------------------
# Define some CMake variables for use later in the project
#-----------------------------------------------------------------------------
-set (HDF5EX_C_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/C)
-set (HDF5EX_F90_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/FORTRAN)
-set (HDF5EX_JAVA_DIR ${H5EXAMPLES_SOURCE_DIR}/JAVA)
-set (HDF5EX_RESOURCES_DIR ${H5EXAMPLES_SOURCE_DIR}/config/cmake)
-
+set (H5EX_C_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/C)
+set (H5EX_F90_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/FORTRAN)
+set (H5EX_JAVA_DIR ${H5EXAMPLES_SOURCE_DIR}/JAVA)
#-----------------------------------------------------------------------------
# Basic HDF5Examples stuff here
#-----------------------------------------------------------------------------
-include (${HDF5EX_RESOURCES_DIR}/HDFMacros.cmake)
-include (${HDF5EX_RESOURCES_DIR}/HDFExampleMacros.cmake)
-set (CMAKE_JAVA_INCLUDE_PATH "")
+if (NOT EXAMPLES_EXTERNALLY_CONFIGURED)
+ set (H5EX_RESOURCES_DIR ${H5EXAMPLES_SOURCE_DIR}/config/cmake)
+
+ include (${H5EX_RESOURCES_DIR}/HDFMacros.cmake)
+ include (${H5EX_RESOURCES_DIR}/HDFExampleMacros.cmake)
+ set (CMAKE_JAVA_INCLUDE_PATH "")
-SET_HDF_BUILD_TYPE()
+ SET_HDF_BUILD_TYPE()
-BASIC_SETTINGS (EXAMPLES)
+ BASIC_SETTINGS (EX)
+
+ #-----------------------------------------------------------------------------
+ # HDF5 support
+ #-----------------------------------------------------------------------------
+ HDF5_SUPPORT (TRUE)
+ APIVersion(${HDF5_VERSION} H5_LIBVER_DIR)
+endif ()
+message (STATUS "HDF5 link libs: ${H5EX_HDF5_LINK_LIBS}")
+message (STATUS "HDF5 H5_LIBVER_DIR: ${H5_LIBVER_DIR} HDF5_VERSION_MAJOR: ${HDF5_VERSION_MAJOR}")
#-----------------------------------------------------------------------------
-# HDF5 support
+# Option to build JAVA examples
#-----------------------------------------------------------------------------
-HDF5_SUPPORT (TRUE)
-message (STATUS "HDF5 link libs: ${H5EX_HDF5_LINK_LIBS}")
-APIVersion(${HDF5_VERSION} H5_LIBVER_DIR)
-message (STATUS "HDF5 H5_LIBVER_DIR: ${H5_LIBVER_DIR}")
+option (HDF_BUILD_JAVA "Build JAVA support" OFF)
+if (HDF_BUILD_JAVA)
+ find_package (Java)
+ INCLUDE_DIRECTORIES (
+ ${JAVA_INCLUDE_PATH}
+ ${JAVA_INCLUDE_PATH2}
+ )
+
+ include (${H5EX_RESOURCES_DIR}/UseJava.cmake)
+endif ()
#-----------------------------------------------------------------------------
# parse the full version number from H5public.h and include in H5_VERS_INFO
@@ -54,7 +70,7 @@ endif ()
#-----------------------------------------------------------------------------
# Option to Enable MPI Parallel
#-----------------------------------------------------------------------------
-set (CMAKE_MODULE_PATH ${H5EXAMPLES_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
+set (CMAKE_MODULE_PATH ${H5EX_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
option (HDF_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF)
if (HDF_ENABLE_PARALLEL)
find_package(MPI REQUIRED)
@@ -117,7 +133,7 @@ if (H5EX_BUILD_TESTING)
enable_testing ()
include (CTest)
include (${PROJECT_SOURCE_DIR}/CTestConfig.cmake)
- configure_file (${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/CTestCustom.cmake ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
+ configure_file (${H5EX_RESOURCES_DIR}/CTestCustom.cmake ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
endif ()
if (${H5_LIBVER_DIR} GREATER 16)
@@ -142,7 +158,7 @@ if (${H5_LIBVER_DIR} GREATER 16)
endif ()
endif ()
- configure_file (${HDF5EX_F90_SRC_DIR}/H5D/h5_version.h.in ${PROJECT_BINARY_DIR}/FORTRAN/H5D/h5_version.h @ONLY)
+ configure_file (${H5EX_F90_SRC_DIR}/H5D/h5_version.h.in ${PROJECT_BINARY_DIR}/FORTRAN/H5D/h5_version.h @ONLY)
else ()
set (HDF_BUILD_FORTRAN OFF CACHE BOOL "Build examples FORTRAN support" FORCE)
endif ()
diff --git a/HDF5Examples/FORTRAN/H5D/CMakeLists.txt b/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
index 5369a49..0d7f5b5 100644
--- a/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
@@ -255,7 +255,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -269,7 +269,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname})
endif ()
diff --git a/HDF5Examples/FORTRAN/H5G/CMakeLists.txt b/HDF5Examples/FORTRAN/H5G/CMakeLists.txt
index 508283c..77bd0cb 100644
--- a/HDF5Examples/FORTRAN/H5G/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5G/CMakeLists.txt
@@ -205,7 +205,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -219,7 +219,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname})
endif ()
@@ -236,7 +236,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
if (HDF5_BUILD_TOOLS)
add_test (
@@ -249,7 +249,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname})
endif ()
@@ -274,7 +274,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
else ()
add_test (
@@ -287,7 +287,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
@@ -302,7 +302,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}1.ddl"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}1 PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname})
add_test (
@@ -315,7 +315,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}2.ddl"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}2 PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}1)
endif ()
@@ -338,7 +338,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
endmacro ()
diff --git a/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt b/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt
index 792caaf..98ef271 100644
--- a/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt
@@ -57,7 +57,7 @@ if (H5EX_BUILD_TESTING)
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_REFERENCE:STRING=PHDF5 example finished with no errors"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/grepTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/grepTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
set (last_test "${EXAMPLE_VARNAME}_f90_${testname}")
diff --git a/HDF5Examples/FORTRAN/H5T/CMakeLists.txt b/HDF5Examples/FORTRAN/H5T/CMakeLists.txt
index 262adf8..8462bbf 100644
--- a/HDF5Examples/FORTRAN/H5T/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5T/CMakeLists.txt
@@ -148,7 +148,7 @@ if (HDF5_BUILD_TOOLS)
)
endif ()
elseif ((${example_name} STREQUAL "h5ex_t_objref_F03" OR ${example_name} STREQUAL "h5ex_t_objrefatt_F03") OR (${example_name} STREQUAL "h5ex_t_regref_F03" OR ${example_name} STREQUAL "h5ex_t_regrefatt_F03"))
- if (${${EXAMPLE_VARNAME}_USE_16_API} OR ${${EXAMPLE_VARNAME}_USE_18_API} OR ${${EXAMPLE_VARNAME}_USE_110_API})
+ if (${EXAMPLE_VARNAME}_USE_16_API OR ${EXAMPLE_VARNAME}_USE_18_API OR ${EXAMPLE_VARNAME}_USE_110_API)
if (HDF5_VERSION_MAJOR VERSION_EQUAL "1.8")
if (HDF5_VERSION_STRING VERSION_LESS_EQUAL "1.8.21")
add_custom_command (
@@ -317,7 +317,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
if (HDF5_BUILD_TOOLS)
@@ -331,7 +331,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname})
endif ()
@@ -354,7 +354,7 @@ if (H5EX_BUILD_TESTING)
-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"
+ -P "${H5EX_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
endmacro ()
diff --git a/HDF5Examples/JAVA/H5D/CMakeLists.txt b/HDF5Examples/JAVA/H5D/CMakeLists.txt
index bc06506..017830b 100644
--- a/HDF5Examples/JAVA/H5D/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5D/CMakeLists.txt
@@ -19,15 +19,18 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
-set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMAKE_JAVA_INCLUDE_PATH ".")
+foreach (CMAKE_JINCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
+ set (CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_JINCLUDE_PATH}")
+endforeach ()
set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
set (CMAKE_JAVA_CLASSPATH ".")
-foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (CMAKE_INCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
endforeach ()
-foreach (HCP_JAR ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (HCP_JAR ${HDF5_JAVA_INCLUDE_DIRS})
get_filename_component (_HCP_FILE ${HCP_JAR} NAME)
set (HDFJAVA_CLASSJARS "${_HCP_FILE} ${HDFJAVA_CLASSJARS}")
endforeach ()
@@ -39,13 +42,13 @@ foreach (example ${HDF_JAVA_EXAMPLES})
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name}
+ add_jar (${EXAMPLE_VARNAME}J_${example_name}
SOURCES ${example}
MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
- add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}J_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}J_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}J_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -56,14 +59,14 @@ if (H5EX_BUILD_TESTING)
-D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
-D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
- -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
+ -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}J_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${PROJECT_BINARY_DIR}/${resultfile}.out"
-D "TEST_REFERENCE=${resultfile}.txt"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_SKIP_COMPARE=TRUE"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/jrunTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/jrunTest.cmake"
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (${EXAMPLE_VARNAME}_jnative-h5-${resultfile} PROPERTIES DEPENDS ${last_test})
diff --git a/HDF5Examples/JAVA/H5G/CMakeLists.txt b/HDF5Examples/JAVA/H5G/CMakeLists.txt
index 957934b..bd43f2a 100644
--- a/HDF5Examples/JAVA/H5G/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5G/CMakeLists.txt
@@ -19,15 +19,18 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
-set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMAKE_JAVA_INCLUDE_PATH ".")
+foreach (CMAKE_JINCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
+ set (CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_JINCLUDE_PATH}")
+endforeach ()
set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
set (CMAKE_JAVA_CLASSPATH ".")
-foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (CMAKE_INCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
endforeach ()
-foreach (HCP_JAR ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (HCP_JAR ${HDF5_JAVA_INCLUDE_DIRS})
get_filename_component (_HCP_FILE ${HCP_JAR} NAME)
set (HDFJAVA_CLASSJARS "${_HCP_FILE} ${HDFJAVA_CLASSJARS}")
endforeach ()
@@ -39,13 +42,13 @@ foreach (example ${HDF_JAVA_EXAMPLES})
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name}
+ add_jar (${EXAMPLE_VARNAME}J_${example_name}
SOURCES ${example}
MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
- add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}J_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}J_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}J_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -56,14 +59,14 @@ if (H5EX_BUILD_TESTING)
-D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
-D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
- -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
+ -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}J_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${PROJECT_BINARY_DIR}/${resultfile}.out"
-D "TEST_REFERENCE=${resultfile}.txt"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_SKIP_COMPARE=TRUE"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/jrunTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/jrunTest.cmake"
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (${EXAMPLE_VARNAME}_jnative-h5-${resultfile} PROPERTIES DEPENDS ${last_test})
diff --git a/HDF5Examples/JAVA/H5G/Java_sourcefiles.cmake b/HDF5Examples/JAVA/H5G/Java_sourcefiles.cmake
index d5142bd..ad7732a 100644
--- a/HDF5Examples/JAVA/H5G/Java_sourcefiles.cmake
+++ b/HDF5Examples/JAVA/H5G/Java_sourcefiles.cmake
@@ -8,7 +8,7 @@ set (HDF_JAVA_EXAMPLES
H5Ex_G_Phase.java
)
if (${H5_LIBVER_DIR} GREATER 18)
- if ((${H5_LIBVER_DIR} EQUAL 110) AND NOT (${${EXAMPLE_VARNAME}_USE_16_API} OR ${${EXAMPLE_VARNAME}_USE_18_API} OR ${${EXAMPLE_VARNAME}_USE_110_API}))
+ if ((H5_LIBVER_DIR EQUAL 110) AND NOT (${EXAMPLE_VARNAME}_USE_16_API OR ${EXAMPLE_VARNAME}_USE_18_API OR ${EXAMPLE_VARNAME}_USE_110_API))
set (HDF_JAVA_EXAMPLES ${HDF_JAVA_EXAMPLES}
110/H5Ex_G_Iterate.java
110/H5Ex_G_Intermediate.java
diff --git a/HDF5Examples/JAVA/H5J/CMakeLists.txt b/HDF5Examples/JAVA/H5J/CMakeLists.txt
index eaefa7d..1bd28a1 100644
--- a/HDF5Examples/JAVA/H5J/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5J/CMakeLists.txt
@@ -19,15 +19,18 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
-set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMAKE_JAVA_INCLUDE_PATH ".")
+foreach (CMAKE_JINCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
+ set (CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_JINCLUDE_PATH}")
+endforeach ()
set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
set (CMAKE_JAVA_CLASSPATH ".")
-foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (CMAKE_INCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
endforeach ()
-foreach (HCP_JAR ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (HCP_JAR ${HDF5_JAVA_INCLUDE_DIRS})
get_filename_component (_HCP_FILE ${HCP_JAR} NAME)
set (HDFJAVA_CLASSJARS "${_HCP_FILE} ${HDFJAVA_CLASSJARS}")
endforeach ()
@@ -39,13 +42,13 @@ foreach (example ${HDF_JAVA_EXAMPLES})
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name}
+ add_jar (${EXAMPLE_VARNAME}J_${example_name}
SOURCES ${example}
MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
- add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}J_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}J_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}J_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -56,14 +59,14 @@ if (H5EX_BUILD_TESTING)
-D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
-D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
- -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
+ -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}J_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${PROJECT_BINARY_DIR}/${resultfile}.out"
-D "TEST_REFERENCE=${resultfile}.txt"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_SKIP_COMPARE=TRUE"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/jrunTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/jrunTest.cmake"
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (${EXAMPLE_VARNAME}_jnative-h5-${resultfile} PROPERTIES DEPENDS ${last_test})
diff --git a/HDF5Examples/JAVA/H5J/Java_sourcefiles.cmake b/HDF5Examples/JAVA/H5J/Java_sourcefiles.cmake
index 0a8a40b..c643a16 100644
--- a/HDF5Examples/JAVA/H5J/Java_sourcefiles.cmake
+++ b/HDF5Examples/JAVA/H5J/Java_sourcefiles.cmake
@@ -10,7 +10,7 @@ set (HDF_JAVA_EXAMPLES
HDF5GroupDatasetCreate.java
HDF5SubsetSelect.java
)
-if (NOT ${${EXAMPLE_VARNAME}_USE_110_API} AND ${H5_LIBVER_DIR} EQUAL 110)
+if (NOT ${EXAMPLE_VARNAME}_USE_110_API AND H5_LIBVER_DIR EQUAL 110)
set (HDF_JAVA_EXAMPLES ${HDF_JAVA_EXAMPLES}
110/HDF5FileStructure.java
)
diff --git a/HDF5Examples/JAVA/H5T/CMakeLists.txt b/HDF5Examples/JAVA/H5T/CMakeLists.txt
index 0d2cb41..1c06804 100644
--- a/HDF5Examples/JAVA/H5T/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5T/CMakeLists.txt
@@ -19,15 +19,18 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
-set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMAKE_JAVA_INCLUDE_PATH ".")
+foreach (CMAKE_JINCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
+ set (CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_JINCLUDE_PATH}")
+endforeach ()
set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
set (CMAKE_JAVA_CLASSPATH ".")
-foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (CMAKE_INCLUDE_PATH ${HDF5_JAVA_INCLUDE_DIRS})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
endforeach ()
-foreach (HCP_JAR ${CMAKE_JAVA_INCLUDE_PATH})
+foreach (HCP_JAR ${HDF5_JAVA_INCLUDE_DIRS})
get_filename_component (_HCP_FILE ${HCP_JAR} NAME)
set (HDFJAVA_CLASSJARS "${_HCP_FILE} ${HDFJAVA_CLASSJARS}")
endforeach ()
@@ -39,13 +42,13 @@ foreach (example ${HDF_JAVA_EXAMPLES})
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name}
+ add_jar (${EXAMPLE_VARNAME}J_${example_name}
SOURCES ${example}
MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
- get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
- add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}J_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}J_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}J_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}J_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -56,14 +59,14 @@ if (H5EX_BUILD_TESTING)
-D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
-D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
- -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
+ -D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}J_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${PROJECT_BINARY_DIR}/${resultfile}.out"
-D "TEST_REFERENCE=${resultfile}.txt"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_SKIP_COMPARE=TRUE"
- -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/jrunTest.cmake"
+ -P "${H5EX_RESOURCES_DIR}/jrunTest.cmake"
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (${EXAMPLE_VARNAME}_jnative-h5-${resultfile} PROPERTIES DEPENDS ${last_test})
diff --git a/HDF5Examples/config/cmake/HDFExampleMacros.cmake b/HDF5Examples/config/cmake/HDFExampleMacros.cmake
index 82fd8ac..3bb1d48 100644
--- a/HDF5Examples/config/cmake/HDFExampleMacros.cmake
+++ b/HDF5Examples/config/cmake/HDFExampleMacros.cmake
@@ -21,23 +21,10 @@ macro (BASIC_SETTINGS varname)
set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1)
#-----------------------------------------------------------------------------
- # Define some CMake variables for use later in the project
- #-----------------------------------------------------------------------------
- set (${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR ${${EXAMPLE_PACKAGE_NAME}_SOURCE_DIR}/config/cmake)
- set (${EXAMPLE_PACKAGE_NAME}_SRC_DIR ${${EXAMPLE_PACKAGE_NAME}_SOURCE_DIR}/src)
-
- #-----------------------------------------------------------------------------
# Setup output Directories
#-----------------------------------------------------------------------------
SET_HDF_OUTPUT_DIRS(${EXAMPLE_PACKAGE_NAME})
- #-----------------------------------------------------------------------------
- # Option to use Shared/Static libs, default is static
- #-----------------------------------------------------------------------------
- set (LIB_TYPE STATIC)
- if (BUILD_SHARED_LIBS)
- set (LIB_TYPE SHARED)
- endif ()
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
if (MSVC)
@@ -116,24 +103,10 @@ macro (BASIC_SETTINGS varname)
set (${EXAMPLE_PACKAGE_NAME}_INCLUDES_BUILD_TIME
${${EXAMPLE_PACKAGE_NAME}_SRC_DIR} ${${EXAMPLE_PACKAGE_NAME}_BINARY_DIR}
)
-
- #-----------------------------------------------------------------------------
- # Option to build JAVA examples
- #-----------------------------------------------------------------------------
- option (HDF_BUILD_JAVA "Build JAVA support" OFF)
- if (HDF_BUILD_JAVA)
- find_package (Java)
- INCLUDE_DIRECTORIES (
- ${JAVA_INCLUDE_PATH}
- ${JAVA_INCLUDE_PATH2}
- )
-
- include (${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/UseJava.cmake)
- endif ()
endmacro ()
macro (HDF5_SUPPORT)
- set (CMAKE_MODULE_PATH ${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
+ set (CMAKE_MODULE_PATH ${H5EX_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
option (USE_SHARED_LIBS "Use Shared Libraries" ON)
if (NOT H5EX_HDF5_HEADER)
@@ -273,12 +246,6 @@ macro (HDF5_SUPPORT)
list (APPEND H5EX_HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR_FORTRAN})
endif ()
message (STATUS "HDF5 link libs: ${H5EX_HDF5_LINK_LIBS} Includes: ${H5EX_HDF5_INCLUDE_DIRS}")
-
- if (USE_SHARED_LIBS)
- set (H5_LIB_TYPE SHARED)
- else ()
- set (H5_LIB_TYPE STATIC)
- endif ()
endmacro ()
#-------------------------------------------------------------------------------
diff --git a/HDF5Examples/config/cmake/UseJava.cmake b/HDF5Examples/config/cmake/UseJava.cmake
index b4af653..12e324c 100644
--- a/HDF5Examples/config/cmake/UseJava.cmake
+++ b/HDF5Examples/config/cmake/UseJava.cmake
@@ -881,7 +881,7 @@ function(add_jar _TARGET_NAME)
${_GENERATE_NATIVE_HEADERS}
${_JAVA_SOURCES_FILELISTS}
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
- DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
+ DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS} ${_JAVA_SOURCES_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
VERBATIM
diff --git a/config/cmake/HDF5ExampleCache.cmake b/config/cmake/HDF5ExampleCache.cmake
index 043be1a..f5fb620 100644
--- a/config/cmake/HDF5ExampleCache.cmake
+++ b/config/cmake/HDF5ExampleCache.cmake
@@ -23,6 +23,23 @@ set (H5EX_HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR}" CA
set (H5EX_HDF5_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "HDF5 build folder" FORCE)
set (EXAMPLES_EXTERNALLY_CONFIGURED ON CACHE BOOL "Examples build is used in another project" FORCE)
+set (EXAMPLE_VARNAME "H5")
+set (H5EX_RESOURCES_DIR ${HDF_RESOURCES_DIR})
+message (STATUS "HDF5 Example H5EX_RESOURCES_DIR: ${H5EX_RESOURCES_DIR}")
+if (DEFAULT_API_VERSION MATCHES "v16")
+ set (H5_LIBVER_DIR 16)
+elseif (DEFAULT_API_VERSION MATCHES "v18")
+ set (H5_LIBVER_DIR 18)
+elseif (DEFAULT_API_VERSION MATCHES "v110")
+ set (H5_LIBVER_DIR 110)
+elseif (DEFAULT_API_VERSION MATCHES "v112")
+ set (H5_LIBVER_DIR 112)
+elseif (DEFAULT_API_VERSION MATCHES "v114")
+ set (H5_LIBVER_DIR 114)
+elseif (DEFAULT_API_VERSION MATCHES "v116")
+ set (H5_LIBVER_DIR 116)
+endif ()
+
if (NOT BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
set (USE_SHARED_LIBS OFF CACHE BOOL "Use Shared Libraries for Examples" FORCE)
set (H5EX_HDF5_LINK_LIBS ${HDF5_LIB_TARGET} CACHE STRING "HDF5 target" FORCE)
@@ -53,3 +70,4 @@ message (STATUS "HDF5 Example link libs: ${H5EX_HDF5_LINK_LIBS} Includes: ${H5EX
set (HDF5_TOOLS_DIR ${CMAKE_TEST_OUTPUT_DIRECTORY} CACHE STRING "HDF5 Directory for all Executables" FORCE)
set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:h5dump${tgt_file_ext}> CACHE STRING "HDF5 h5dump target" FORCE)
set (H5EX_HDF5_REPACK_EXECUTABLE $<TARGET_FILE:h5repack${tgt_file_ext}> CACHE STRING "HDF5 h5repack target" FORCE)
+
diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake
index 369df96..30c16e6 100644
--- a/config/cmake/HDFMacros.cmake
+++ b/config/cmake/HDFMacros.cmake
@@ -482,9 +482,7 @@ macro (HDF_DIR_PATHS package_prefix)
endif ()
SET_HDF_BUILD_TYPE()
-#-----------------------------------------------------------------------------
-# Setup output Directories
-#-----------------------------------------------------------------------------
+
SET_HDF_OUTPUT_DIRS(${package_prefix})
include (FetchContent)
@@ -510,4 +508,3 @@ macro (ADD_H5_FLAGS h5_flag_var infile)
endif ()
#message (TRACE "h5_flag_var=${${h5_flag_var}}")
endmacro ()
-
diff --git a/config/cmake/UseJava.cmake b/config/cmake/UseJava.cmake
index 2783cb6..12e324c 100644
--- a/config/cmake/UseJava.cmake
+++ b/config/cmake/UseJava.cmake
@@ -6,7 +6,7 @@ UseJava
This file provides support for ``Java``. It is assumed that
:module:`FindJava` has already been loaded. See :module:`FindJava` for
-information on how to load Java into your ``CMake`` project.
+information on how to load Java into your CMake project.
Synopsis
^^^^^^^^
@@ -42,6 +42,7 @@ Creating And Installing JARs
add_jar(<target_name>
[SOURCES] <source1> [<source2>...] [<resource1>...]
+ [RESOURCES NAMESPACE <ns1> <resource1>... [NAMESPACE <nsX> <resourceX>...]... ]
[INCLUDE_JARS <jar1> [<jar2>...]]
[ENTRY_POINT <entry>]
[VERSION <version>]
@@ -64,6 +65,34 @@ Creating And Installing JARs
.. versionadded:: 3.4
Support for response files, prefixed by ``@``.
+ ``RESOURCES``
+ .. versionadded:: 3.21
+
+ Adds the named ``<resource>`` files to the jar by stripping the source file
+ path and placing the file beneath ``<ns>`` within the jar.
+
+ For example::
+
+ RESOURCES NAMESPACE "/com/my/namespace" "a/path/to/resource.txt"
+
+ results in a resource accessible via ``/com/my/namespace/resource.txt``
+ within the jar.
+
+ Resources may be added without adjusting the namespace by adding them to
+ the list of ``SOURCES`` (original behavior), in this case, resource
+ paths must be relative to ``CMAKE_CURRENT_SOURCE_DIR``. Adding resources
+ without using the ``RESOURCES`` parameter in out of source builds will
+ almost certainly result in confusion.
+
+ .. note::
+
+ Adding resources via the ``SOURCES`` parameter relies upon a hard-coded
+ list of file extensions which are tested to determine whether they
+ compile (e.g. File.java). ``SOURCES`` files which match the extensions
+ are compiled. Files which do not match are treated as resources. To
+ include uncompiled resources matching those file extensions use
+ the ``RESOURCES`` parameter.
+
``INCLUDE_JARS``
The list of jars are added to the classpath when compiling the java sources
and also to the dependencies of the target. ``INCLUDE_JARS`` also accepts
@@ -264,7 +293,7 @@ Header Generation
.. deprecated:: 3.11
This command will no longer be supported starting with version 10 of the JDK
- due to the `suppression of javah tool <http://openjdk.java.net/jeps/313>`_.
+ due to the `suppression of javah tool <https://openjdk.org/jeps/313>`_.
The :ref:`add_jar(GENERATE_NATIVE_HEADERS) <add_jar>` command should be
used instead.
@@ -526,6 +555,7 @@ function (__java_copy_file src dest comment)
${dest}
DEPENDS ${src}
COMMENT ${comment}
+ VERBATIM
)
endfunction ()
@@ -552,6 +582,58 @@ function(__java_export_jar VAR TARGET PATH)
set(${VAR} "${${VAR}}" PARENT_SCOPE)
endfunction()
+function(__java_copy_resource_namespaces VAR DEST JAVA_RESOURCE_FILES JAVA_RESOURCE_FILES_RELATIVE)
+
+ set(_ns_ID "")
+ set(_ns_VAL "")
+
+ foreach(_item IN LISTS VAR)
+ if(NOT _ns_ID)
+ if(NOT _item STREQUAL "NAMESPACE")
+ message(FATAL_ERROR "UseJava: Expecting \"NAMESPACE\", got\t\"${_item}\"")
+ return()
+ endif()
+ endif()
+
+ if(_item STREQUAL "NAMESPACE")
+ set(_ns_VAL "") # Prepare for next namespace
+ set(_ns_ID "${_item}")
+ continue()
+ endif()
+
+ if( NOT _ns_VAL)
+ # we're expecting the next token to be a namespace value
+ # whatever it is, we're treating it like a namespace
+ set(_ns_VAL "${_item}")
+ continue()
+ endif()
+
+ if(_ns_ID AND _ns_VAL)
+ # We're expecting a file name, check to see if we got one
+ cmake_path(ABSOLUTE_PATH _item OUTPUT_VARIABLE _test_file_name)
+ if (NOT EXISTS "${_test_file_name}")
+ message(FATAL_ERROR "UseJava: File does not exist:\t${_item}")
+ return()
+ endif()
+ endif()
+
+ cmake_path(ABSOLUTE_PATH _item OUTPUT_VARIABLE _abs_file_name)
+ cmake_path(GET _item FILENAME _resource_file_name)
+ set(_dest_resource_file_name "${_ns_VAL}/${_resource_file_name}" )
+
+ __java_copy_file( ${_abs_file_name}
+ ${DEST}/${_dest_resource_file_name}
+ "Copying ${_item} to the build directory")
+
+ list(APPEND RESOURCE_FILES_LIST ${DEST}/${_dest_resource_file_name})
+ list(APPEND RELATIVE_RESOURCE_FILES_LIST ${_dest_resource_file_name})
+
+ endforeach()
+
+ set(${JAVA_RESOURCE_FILES} "${RESOURCE_FILES_LIST}" PARENT_SCOPE)
+ set(${JAVA_RESOURCE_FILES_RELATIVE} "${RELATIVE_RESOURCE_FILES_LIST}" PARENT_SCOPE)
+endfunction()
+
# define helper scripts
set(_JAVA_EXPORT_TARGETS_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/javaTargets.cmake.in)
set(_JAVA_CLASS_FILELIST_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaClassFilelist.cmake)
@@ -746,6 +828,13 @@ function(add_jar _TARGET_NAME)
endif ()
endforeach()
+ if(_add_jar_RESOURCES) # Process RESOURCES if it exists
+ __java_copy_resource_namespaces("${_add_jar_RESOURCES}"
+ ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ _JAVA_RESOURCE_FILES
+ _JAVA_RESOURCE_FILES_RELATIVE)
+ endif()
+
foreach(_JAVA_INCLUDE_JAR IN LISTS _add_jar_INCLUDE_JARS)
if (TARGET ${_JAVA_INCLUDE_JAR})
get_target_property(_JAVA_JAR_PATH ${_JAVA_INCLUDE_JAR} JAR_FILE)
@@ -792,9 +881,10 @@ function(add_jar _TARGET_NAME)
${_GENERATE_NATIVE_HEADERS}
${_JAVA_SOURCES_FILELISTS}
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
- DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
+ DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS} ${_JAVA_SOURCES_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
+ VERBATIM
)
add_custom_command(
OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
@@ -804,6 +894,7 @@ function(add_jar _TARGET_NAME)
-P ${_JAVA_CLASS_FILELIST_SCRIPT}
DEPENDS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ VERBATIM
)
else ()
# create an empty java_class_filelist
@@ -834,6 +925,7 @@ function(add_jar _TARGET_NAME)
DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+ VERBATIM
)
else ()
add_custom_command(
@@ -849,6 +941,7 @@ function(add_jar _TARGET_NAME)
WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+ VERBATIM
)
endif ()
diff --git a/config/cmake/javaTargets.cmake.in b/config/cmake/javaTargets.cmake.in
index 6e14256..f3670c2 100644
--- a/config/cmake/javaTargets.cmake.in
+++ b/config/cmake/javaTargets.cmake.in
@@ -1,6 +1,5 @@
-cmake_minimum_required(VERSION 2.8.12)
cmake_policy(PUSH)
-cmake_policy(VERSION 2.8)
+cmake_policy(VERSION 2.8.12...3.27)
#----------------------------------------------------------------
# Generated CMake Java target import file.
diff --git a/doxygen/dox/ExamplesAPI.dox b/doxygen/dox/ExamplesAPI.dox
index a6fbab1..5178b08 100644
--- a/doxygen/dox/ExamplesAPI.dox
+++ b/doxygen/dox/ExamplesAPI.dox
@@ -27,236 +27,236 @@ Languages are C, Fortran, Java (JHI5), Java Object Package, Python (High Level),
<tr>
<td>Set Space Allocation Time for Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_alloc.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_alloc.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Alloc.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_alloc.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_alloc.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Alloc.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Alloc.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_alloc.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_alloc.tst">h5ex_d_alloc.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_alloc.ddl">h5ex_d_alloc.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_alloc.tst">h5ex_d_alloc.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_alloc.ddl">h5ex_d_alloc.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using Fletcher32 Checksum Filter</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_checksum.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_checksum.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Checksum.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_checksum.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_checksum.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Checksum.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Checksum.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_checksum.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_checksum.tst">h5ex_d_checksum.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_checksum.ddl">h5ex_d_checksum.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_checksum.tst">h5ex_d_checksum.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_checksum.ddl">h5ex_d_checksum.ddl</a></td>
</tr>
<tr>
<td>Read / Write Chunked Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_chunk.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_chunk.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Chunk.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_chunk.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_chunk.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Chunk.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Chunk.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_chunk.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_chunk.tst">h5ex_d_chunk.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_chunk.ddl">h5ex_d_chunk.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_chunk.tst">h5ex_d_chunk.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_chunk.ddl">h5ex_d_chunk.ddl</a></td>
</tr>
<tr>
<td>Read / Write Compact Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_compact.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_compact.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Compact.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_compact.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_compact.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Compact.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Compact.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_compact.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_compact.tst">h5ex_d_compact.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_compact.ddl">h5ex_d_compact.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_compact.tst">h5ex_d_compact.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_compact.ddl">h5ex_d_compact.ddl</a></td>
</tr>
<tr>
<td>Read / Write to External Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_extern.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_extern.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_External.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_extern.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_External.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_External.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_extern.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_extern.tst">h5ex_d_extern.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_extern.ddl">h5ex_d_extern.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_extern.tst">h5ex_d_extern.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_extern.ddl">h5ex_d_extern.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset w/ Fill Value</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_fillval.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_fillval.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_FillValue.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_fillval.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_fillval.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_FillValue.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_FillValue.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_fillval.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_fillval.tst">h5ex_d_fillval.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_fillval.ddl">h5ex_d_fillval.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_fillval.tst">h5ex_d_fillval.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_fillval.ddl">h5ex_d_fillval.ddl</a></td>
</tr>
<tr>
<td>Read / Write GZIP Compressed Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_gzip.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_gzip.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Gzip.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_gzip.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_gzip.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Gzip.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Gzip.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_gzip.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_gzip.tst">h5ex_d_gzip.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_gzip.ddl">h5ex_d_gzip.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_gzip.tst">h5ex_d_gzip.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_gzip.ddl">h5ex_d_gzip.ddl</a></td>
</tr>
<tr>
<td>Read / Write Data by Hyperslabs</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_hyper.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_hyper.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Hyperslab.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_hyper.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_hyper.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Hyperslab.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Hyperslab.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_hyper.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_hyper.tst">h5ex_d_hyper.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_hyper.ddl">h5ex_d_hyper.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_hyper.tst">h5ex_d_hyper.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_hyper.ddl">h5ex_d_hyper.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset with n-bit Filter</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_nbit.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_nbit.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Nbit.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_nbit.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_nbit.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Nbit.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Nbit.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_nbit.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_nbit.tst">h5ex_d_nbit.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_nbit.ddl">h5ex_d_nbit.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_nbit.tst">h5ex_d_nbit.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_nbit.ddl">h5ex_d_nbit.ddl</a></td>
</tr>
<tr>
<td>Read / Write Integer Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_rdwr.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_rdwr.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_ReadWrite.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_rdwr.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_rdwr.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_ReadWrite.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_ReadWrite.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_rdwrc.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_rdwrc.tst">h5ex_d_rdwrc.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_rdwr.ddl">h5ex_d_rdwr.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_rdwrc.tst">h5ex_d_rdwrc.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_rdwr.ddl">h5ex_d_rdwr.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset w/ Shuffle Filter and GZIP Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_shuffle.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_shuffle.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Shuffle.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Shuffle.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Shuffle.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_shuffle.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_shuffle.tst">h5ex_d_shuffle.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_shuffle.ddl">h5ex_d_shuffle.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_shuffle.tst">h5ex_d_shuffle.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_shuffle.ddl">h5ex_d_shuffle.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using Scale-Offset Filter (float)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_sofloat.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_sofloat.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Sofloat.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Sofloat.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Sofloat.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_sofloat.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_sofloat.tst">h5ex_d_sofloat.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_sofloat.ddl">h5ex_d_sofloat.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_sofloat.tst">h5ex_d_sofloat.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_sofloat.ddl">h5ex_d_sofloat.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using Scale-Offset Filter (integer)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_soint.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_soint.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Soint.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_soint.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_soint.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Soint.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Soint.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_soint.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_soint.tst">h5ex_d_soint.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_soint.ddl">h5ex_d_soint.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_soint.tst">h5ex_d_soint.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_soint.ddl">h5ex_d_soint.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using SZIP Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_szip.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_szip.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Szip.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_szip.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_szip.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Szip.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Szip.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_szip.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_szip.tst">h5ex_d_szip.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_szip.ddl">h5ex_d_szip.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_szip.tst">h5ex_d_szip.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_szip.ddl">h5ex_d_szip.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using Data Transform Expression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_transform.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_transform.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_Transform.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_transform.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_transform.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_Transform.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_Transform.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_transform.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_transform.tst">h5ex_d_transform.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_transform.ddl">h5ex_d_transform.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_transform.tst">h5ex_d_transform.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/18/h5ex_d_transform.ddl">h5ex_d_transform.ddl</a></td>
</tr>
<tr>
<td>Read / Write Unlimited Dimension Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_unlimadd.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_unlimadd.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_UnlimitedAdd.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_UnlimitedAdd.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_UnlimitedAdd.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_unlimadd.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_unlimadd.tst">h5ex_d_unlimadd.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_unlimadd.ddl">h5ex_d_unlimadd.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_unlimadd.tst">h5ex_d_unlimadd.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_unlimadd.ddl">h5ex_d_unlimadd.ddl</a></td>
</tr>
<tr>
<td>Read / Write GZIP Compressed Unlimited Dimension Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_unlimgzip.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_unlimgzip.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_UnlimitedGzip.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_UnlimitedGzip.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_UnlimitedGzip.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_unlimgzip.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_unlimgzip.tst">h5ex_d_unlimgzip.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_unlimgzip.ddl">h5ex_d_unlimgzip.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_unlimgzip.tst">h5ex_d_unlimgzip.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_unlimgzip.ddl">h5ex_d_unlimgzip.ddl</a></td>
</tr>
<tr>
<td>Read / Write / Edit Unlimited Dimension Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_unlimmod.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5D/h5ex_d_unlimmod.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5D/H5Ex_D_UnlimitedMod.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_unlimmod.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5D/h5ex_d_unlimmod.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5D/H5Ex_D_UnlimitedMod.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datasets/H5ObjectEx_D_UnlimitedMod.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_d_unlimmod.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_unlimmod.tst">h5ex_d_unlimmod.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/testfiles/114/h5ex_d_unlimmod.ddl">h5ex_d_unlimmod.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_unlimmod.tst">h5ex_d_unlimmod.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/tfiles/16/h5ex_d_unlimmod.ddl">h5ex_d_unlimmod.ddl</a></td>
</tr>
</table>
@@ -272,105 +272,105 @@ FORTRAN
<tr>
<td>Create "compact-or-indexed" Format Groups</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_compact.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5G/h5ex_g_compact.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Compact.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_compact.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5G/h5ex_g_compact.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Compact.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Compact.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_compact.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_compact.tst">h5ex_g_.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_compact1.ddl">h5ex_g_compact1.ddl</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_compact2.ddl">h5ex_g_compact2.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_compact.tst">h5ex_g_.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_compact1.ddl">h5ex_g_compact1.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_compact2.ddl">h5ex_g_compact2.ddl</a></td>
</tr>
<tr>
<td>Track links in a Group by Creation Order</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_corder.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5G/h5ex_g_corder.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Corder.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_corder.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5G/h5ex_g_corder.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Corder.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Corder.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_corder.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_corder.tst">h5ex_g_corder.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_corder.tst">h5ex_g_corder.tst</a></td>
<td>h5ex_g_corder.ddl</td>
</tr>
<tr>
<td>Create / Open / Close a Group</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_create.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5G/h5ex_g_create.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Create.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_create.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5G/h5ex_g_create.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Create.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Create.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_create.h5</td>
<td>h5ex_g_create.tst</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_create.ddl">h5ex_g_create.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/16/h5ex_g_create.ddl">h5ex_g_create.ddl</a></td>
</tr>
<tr>
<td>Create Intermediate Groups</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_intermediate.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_intermediate.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Intermediate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Intermediate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Intermediate.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_intermediate.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_intermediate.tst">h5ex_g_intermediate.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_intermediate.tst">h5ex_g_intermediate.tst</a></td>
<td>h5ex_g_intermediate.ddl</td>
</tr>
<tr>
<td>Iterate over Groups w/ H5Literate</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_iterate.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_iterate.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Iterate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Iterate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Iterate.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_iterate.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_iterate.tst">h5ex_g_iterate.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/16/h5ex_g_iterate.tst">h5ex_g_iterate.tst</a></td>
<td>h5ex_g_iterate.ddl</td>
</tr>
<tr>
<td>Set Conditions to Convert between Compact and Dense Groups</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_phase.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5G/h5ex_g_phase.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Phase.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_phase.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5G/h5ex_g_phase.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Phase.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Phase.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_phase.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_phase.tst">h5ex_g_phase.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_phase.tst">h5ex_g_phase.tst</a></td>
<td>h5ex_g_phase.ddl</td>
</tr>
<tr>
<td>Recursively Traverse a File with H5Literate</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_traverse.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_traverse.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Traverse.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Traverse.java">Java</a>
JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_g_traverse.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_traverse.tst">h5ex_g_traverse.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/16/h5ex_g_traverse.tst">h5ex_g_traverse.tst</a></td>
<td>h5ex_g_traverse.ddl</td>
</tr>
<tr>
<td>Recursively Traverse a File with H5Ovisit / H5Lvisit</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/h5ex_g_visit.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/h5ex_g_visit.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5G/H5Ex_G_Visit.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5G/H5Ex_G_Visit.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/groups/H5ObjectEx_G_Visit.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_g_visit.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5G/testfiles/114/h5ex_g_visit.tst">h5ex_g_visit.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5G/tfiles/18/h5ex_g_visit.tst">h5ex_g_visit.tst</a></td>
<td>h5ex_g_visit.ddl</td>
</tr>
</table>
@@ -387,347 +387,347 @@ FORTRAN
<tr>
<td>Read / Write Array (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_arrayatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_arrayatt.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_ArrayAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_arrayatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_arrayatt.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_ArrayAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_ArrayAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_arrayatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_arrayatt.tst">h5ex_t_arrayatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_arrayatt.ddl">h5ex_t_arrayatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_arrayatt.tst">h5ex_t_arrayatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_arrayatt.ddl">h5ex_t_arrayatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Array (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_array.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_array.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Array.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_array.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_array.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Array.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Array.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_array.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_array.tst">h5ex_t_array.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_array.ddl">h5ex_t_array.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_array.tst">h5ex_t_array.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_array.ddl">h5ex_t_array.ddl</a></td>
</tr>
<tr>
<td>Read / Write Bitfield (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_bitatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_bitatt.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_BitAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_bitatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_bitatt.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_BitAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_BitAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_bitatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_bitatt.tst">h5ex_t_bitatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_bitatt.ddl">h5ex_t_bitatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_bitatt.tst">h5ex_t_bitatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_bitatt.ddl">h5ex_t_bitatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Bitfield (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_bit.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_bit.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Bit.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_bit.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_bit.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Bit.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Bit.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_bit.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_bit.tst">h5ex_t_bit.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_bit.ddl">h5ex_t_bit.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_bit.tst">h5ex_t_bit.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_bit.ddl">h5ex_t_bit.ddl</a></td>
</tr>
<tr>
<td>Read / Write Compound (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_cmpdatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_cmpdatt.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_CompoundAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_cmpdatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_cmpdatt.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_CompoundAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_CompoundAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_cmpdatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cmpdatt.tst">h5ex_t_cmpdatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cmpdatt.ddl">h5ex_t_cmpdatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cmpdatt.tst">h5ex_t_cmpdatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cmpdatt.ddl">h5ex_t_cmpdatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Compound (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_cmpd.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_cmpd.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Compound.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_cmpd.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_cmpd.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Compound.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Compound.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_cmpd.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cmpd.tst">h5ex_t_cmpd.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cmpd.ddl">h5ex_t_cmpd.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cmpd.tst">h5ex_t_cmpd.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cmpd.ddl">h5ex_t_cmpd.ddl</a></td>
</tr>
<tr>
<td>Commit Named Datatype and Read Back</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_commit.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_commit.c">C</a>
FORTRAN
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Commit.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Commit.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Commit.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_commit.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_commit.tst">h5ex_t_commit.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_commit.ddl">h5ex_t_commit.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_commit.tst">h5ex_t_commit.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_commit.ddl">h5ex_t_commit.ddl</a></td>
</tr>
<tr>
<td>Convert Between Datatypes in Memory</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_convert.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_convert.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_convert.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_convert.tst">h5ex_t_convert.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_convert.ddl">h5ex_t_convert.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_convert.tst">h5ex_t_convert.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_convert.ddl">h5ex_t_convert.ddl</a></td>
</tr>
<tr>
<td>Read / Write Complex Compound (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_cpxcmpdatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_cpxcmpdatt.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_cpxcmpdatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cpxcmpdatt.tst">h5ex_t_cpxcmpdatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cpxcmpdatt.ddl">h5ex_t_cpxcmpdatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cpxcmpdatt.tst">h5ex_t_cpxcmpdatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cpxcmpdatt.ddl">h5ex_t_cpxcmpdatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Complex Compound (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_cpxcmpd.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_cpxcmpd.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_cpxcmpd.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cpxcmpd.tst">h5ex_t_cpxcmpd.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_cpxcmpd.ddl">h5ex_t_cpxcmpd.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cpxcmpd.tst">h5ex_t_cpxcmpd.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_cpxcmpd.ddl">h5ex_t_cpxcmpd.ddl</a></td>
</tr>
<tr>
<td>Read / Write Enumerated (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_enumatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_enumatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_enumatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_enumatt_F03.F90">FORTRAN</a>
Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_enumatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_enumatt.tst">h5ex_t_enumatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_enumatt.ddl">h5ex_t_enumatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_enumatt.tst">h5ex_t_enumatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_enumatt.ddl">h5ex_t_enumatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Enumerated (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_enum.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_enum_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_enum.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_enum_F03.F90">FORTRAN</a>
Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_enum.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_enum.tst">h5ex_t_enum.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_enum.ddl">h5ex_t_enum.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_enum.tst">h5ex_t_enum.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_enum.ddl">h5ex_t_enum.ddl</a></td>
</tr>
<tr>
<td>Read / Write Floating Point (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_floatatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_floatatt_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_FloatAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_floatatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_floatatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_FloatAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_FloatAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_floatatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_floatatt.tst">h5ex_t_floatatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_floatatt.ddl">h5ex_t_floatatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_floatatt.tst">h5ex_t_floatatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_floatatt.ddl">h5ex_t_floatatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Floating Point (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_float.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_float_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Float.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_float.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_float_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Float.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Float.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_float.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_float.tst">h5ex_t_float.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_float.ddl">h5ex_t_float.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_float.tst">h5ex_t_float.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_float.ddl">h5ex_t_float.ddl</a></td>
</tr>
<tr>
<td>Read / Write Integer Datatype (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_intatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_intatt_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_IntegerAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_intatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_intatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_IntegerAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_IntegerAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_intatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_intatt.tst">h5ex_t_intatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_intatt.ddl">h5ex_t_intatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_intatt.tst">h5ex_t_intatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_intatt.ddl">h5ex_t_intatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Integer Datatype (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_int.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_int_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Integer.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_int.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_int_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Integer.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Integer.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_int.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_int.tst">h5ex_t_int.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_int.ddl">h5ex_t_int.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_int.tst">h5ex_t_int.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_int.ddl">h5ex_t_int.ddl</a></td>
</tr>
<tr>
<td>Read / Write Object References (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_objrefatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_objrefatt_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_ObjectReferenceAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_objrefatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_objrefatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_ObjectReferenceAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_ObjectReferenceAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_objrefatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_objrefatt.tst">h5ex_t_objrefatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_objrefatt.ddl">h5ex_t_objrefatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_objrefatt.tst">h5ex_t_objrefatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_objrefatt.ddl">h5ex_t_objrefatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Object References (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_objref.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_objref_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_ObjectReference.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_objref.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_objref_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_ObjectReference.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_ObjectReference.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_objref.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_objref.tst">h5ex_t_objref.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_objref.ddl">h5ex_t_objref.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_objref.tst">h5ex_t_objref.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_objref.ddl">h5ex_t_objref.ddl</a></td>
</tr>
<tr>
<td>Read / Write Opaque (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_opaqueatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_opaqueatt_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_OpaqueAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_opaqueatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_opaqueatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_OpaqueAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_OpaqueAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_opaqueatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_opaqueatt.tst">h5ex_t_opaqueatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_opaqueatt.ddl">h5ex_t_opaqueatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_opaqueatt.tst">h5ex_t_opaqueatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_opaqueatt.ddl">h5ex_t_opaqueatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Opaque (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_opaque.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_opaque_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_Opaque.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_opaque.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_opaque_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_Opaque.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_Opaque.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_opaque.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_opaque.tst">h5ex_t_opaque.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_opaque.ddl">h5ex_t_opaque.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_opaque.tst">h5ex_t_opaque.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_opaque.ddl">h5ex_t_opaque.ddl</a></td>
</tr>
<tr>
<td>Read / Write Region References (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_regrefatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_regrefatt_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_RegionReferenceAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_regrefatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_regrefatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_RegionReferenceAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_RegionReferenceAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_regrefatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_regrefatt.tst">h5ex_t_regrefatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_regrefatt.ddl">h5ex_t_regrefatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_regrefatt.tst">h5ex_t_regrefatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_regrefatt.ddl">h5ex_t_regrefatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Region References (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_regref.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_regref_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_RegionReference.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_regref.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_regref_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_RegionReference.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_RegionReference.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_regref.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_regref.tst">h5ex_t_regref.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_regref.ddl">h5ex_t_regref.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_regref.tst">h5ex_t_regref.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_regref.ddl">h5ex_t_regref.ddl</a></td>
</tr>
<tr>
<td>Read / Write String (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_stringatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_stringatt_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_StringAttribute.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_stringatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_stringatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_StringAttribute.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_StringAttribute.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_stringatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_stringatt.tst">h5ex_t_stringatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_stringatt.ddl">h5ex_t_stringatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_stringatt.tst">h5ex_t_stringatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_stringatt.ddl">h5ex_t_stringatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write String (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_string.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_string_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_String.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_string.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_string_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_String.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_String.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_string.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_string.tst">h5ex_t_string.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_string.ddl">h5ex_t_string.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_string.tst">h5ex_t_string.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_string.ddl">h5ex_t_string.ddl</a></td>
</tr>
<tr>
<td>Read / Write Variable Length (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_vlenatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_vlenatt_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_vlenatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_vlenatt_F03.F90">FORTRAN</a>
Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_vlenatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlenatt.tst">h5ex_t_vlenatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlenatt.ddl">h5ex_t_vlenatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlenatt.tst">h5ex_t_vlenatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlenatt.ddl">h5ex_t_vlenatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Variable Length (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_vlen.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_vlen_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_vlen.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_vlen_F03.F90">FORTRAN</a>
Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_vlen.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlen.tst">h5ex_t_vlen.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlen.ddl">h5ex_t_vlen.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlen.tst">h5ex_t_vlen.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlen.ddl">h5ex_t_vlen.ddl</a></td>
</tr>
<tr>
<td>Read / Write Variable Length String (Attribute)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_vlstringatt.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t__F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_vlstringatt.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t__F03.F90">FORTRAN</a>
Java JavaObj MATLAB PyHigh PyLow
</td>
<td>h5ex_t_vlstringatt.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlstringatt.tst">h5ex_t_vlstringatt.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlstringatt.ddl">h5ex_t_vlstringatt.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlstringatt.tst">h5ex_t_vlstringatt.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlstringatt.ddl">h5ex_t_vlstringatt.ddl</a></td>
</tr>
<tr>
<td>Read / Write Variable Length String (Dataset)</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/h5ex_t_vlstring.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5T/h5ex_t_vlstring_F03.F90">FORTRAN</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Java/H5T/H5Ex_T_VLString.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/h5ex_t_vlstring.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5T/h5ex_t_vlstring_F03.F90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5T/H5Ex_T_VLString.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/datatypes/H5ObjectEx_T_VLString.java">JavaObj</a>
MATLAB PyHigh PyLow
</td>
<td>h5ex_t_vlstring.h5</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlstring.tst">h5ex_t_vlstring.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5T/testfiles/114/h5ex_t_vlstring.ddl">h5ex_t_vlstring.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlstring.tst">h5ex_t_vlstring.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5T/tfiles/112/h5ex_t_vlstring.ddl">h5ex_t_vlstring.ddl</a></td>
</tr>
</table>
@@ -743,92 +743,92 @@ FORTRAN
<tr>
<td>Read / Write Dataset using Blosc Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_blosc.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_blosc.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_blosc.h5">h5ex_d_blosc.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_blosc.tst">h5ex_d_blosc.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_blosc.ddl">h5ex_d_blosc.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_blosc.h5">h5ex_d_blosc.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_blosc.tst">h5ex_d_blosc.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_blosc.ddl">h5ex_d_blosc.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using Bit Shuffle Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_bshuf.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_bshuf.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_bshuf.h5">h5ex_d_bshuf.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_bshuf.tst">h5ex_d_bshuf.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_bshuf.ddl">h5ex_d_bshuf.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_bshuf.h5">h5ex_d_bshuf.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_bshuf.tst">h5ex_d_bshuf.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_bshuf.ddl">h5ex_d_bshuf.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using BZip2 Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_bzip2.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_bzip2.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_bzip2.h5">h5ex_d_bzip2.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_bzip2.tst">h5ex_d_bzip2.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_bzip2.ddl">h5ex_d_bzip2.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_bzip2.h5">h5ex_d_bzip2.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_bzip2.tst">h5ex_d_bzip2.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_bzip2.ddl">h5ex_d_bzip2.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using JPEG Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_jpeg.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_jpeg.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_jpeg.h5">h5ex_d_jpeg.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_jpeg.tst">h5ex_d_jpeg.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_jpeg.ddl">h5ex_d_jpeg.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_jpeg.h5">h5ex_d_jpeg.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_jpeg.tst">h5ex_d_jpeg.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_jpeg.ddl">h5ex_d_jpeg.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using LZ4 Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_lz4.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_lz4.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_lz4.h5">h5ex_d_lz4.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_lz4.tst">h5ex_d_lz4.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_lz4.ddl">h5ex_d_lz4.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_lz4.h5">h5ex_d_lz4.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_lz4.tst">h5ex_d_lz4.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_lz4.ddl">h5ex_d_lz4.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using LZF Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_lzf.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_lzf.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_lzf.h5">h5ex_d_lzf.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_lzf.tst">h5ex_d_lzf.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_lzf.ddl">h5ex_d_lzf.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_lzf.h5">h5ex_d_lzf.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_lzf.tst">h5ex_d_lzf.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_lzf.ddl">h5ex_d_lzf.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using MAFISC Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_mafisc.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_mafisc.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_mafisc.h5">h5ex_d_mafisc.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_mafisc.tst">h5ex_d_mafisc.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_mafisc.ddl">h5ex_d_mafisc.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_mafisc.h5">h5ex_d_mafisc.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_mafisc.tst">h5ex_d_mafisc.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_mafisc.ddl">h5ex_d_mafisc.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using ZFP Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_zfp.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_zfp.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_zfp.h5">h5ex_d_zfp.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_zfp.tst">h5ex_d_zfp.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_zfp.ddl">h5ex_d_zfp.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.h5">h5ex_d_zfp.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.tst">h5ex_d_zfp.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.ddl">h5ex_d_zfp.ddl</a></td>
</tr>
<tr>
<td>Read / Write Dataset using ZStd Compression</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/h5ex_d_zstd.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/h5ex_d_zstd.c">C</a>
FORTRAN Java JavaObj MATLAB PyHigh PyLow
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_zstd.h5">h5ex_d_zstd.h5</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_zstd.tst">h5ex_d_zstd.tst</a></td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Filters/testfiles/114/h5ex_d_zstd.ddl">h5ex_d_zstd.ddl</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zstd.h5">h5ex_d_zstd.h5</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zstd.tst">h5ex_d_zstd.tst</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zstd.ddl">h5ex_d_zstd.ddl</a></td>
</tr>
</table>
@@ -842,66 +842,66 @@ FORTRAN
<tr>
<td>Create/Read/Write an Attribute</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5AttributeCreate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5AttributeCreate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/intro/H5Object_CreateAttribute.java">JavaObj</a>
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5AttributeCreate.txt">HDF5AttributeCreate.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5AttributeCreate.txt">HDF5AttributeCreate.txt</a></td>
</tr>
<tr>
<td>Create Datasets</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5DatasetCreate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5DatasetCreate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/intro/H5Object_CreateDataset.java">JavaObj</a>
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5DatasetCreate.txt">HDF5DatasetCreate.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5DatasetCreate.txt">HDF5DatasetCreate.txt</a></td>
</tr>
<tr>
<td>Read/Write Datasets</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5DatasetRead.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5DatasetRead.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/intro/H5Object_ReadWrite.java">JavaObj</a>
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5DatasetRead.txt">HDF5DatasetRead.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5DatasetRead.txt">HDF5DatasetRead.txt</a></td>
</tr>
<tr>
<td>Create an Empty File</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5FileCreate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5FileCreate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/intro/H5Object_CreateFile.java">JavaObj</a>
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5FileCreate.txt">HDF5FileCreate.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5FileCreate.txt">HDF5FileCreate.txt</a></td>
</tr>
<tr>
<td>Retrieve the File Structure</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5FileStructure.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5FileStructure.java">Java</a>
JavaObj
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5FileStructure.txt">HDF5FileStructure.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5FileStructure.txt">HDF5FileStructure.txt</a></td>
</tr>
<tr>
<td>Create Groups</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5GroupCreate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5GroupCreate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/intro/H5Object_CreateGroup.java">JavaObj</a>
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5GroupCreate.java">HDF5GroupCreate.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5GroupCreate.java">HDF5GroupCreate.txt</a></td>
</tr>
<tr>
<td>Select a Subset of a Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5SubsetSelect.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5SubsetSelect.java">Java</a>
JavaObj
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5SubsetSelect.txt">HDF5SubsetSelect.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5SubsetSelect.txt">HDF5SubsetSelect.txt</a></td>
</tr>
<tr>
<td>Create Two Datasets Within Groups</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/HDF5GroupDatasetCreate.java">Java</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/HDF5GroupDatasetCreate.java">Java</a>
<a href="https://github.com/HDFGroup/hdfview/blob/master/test/org.hdfgroup.object.example.test/intro/H5Object_CreateGroupDataset.java">JavaObj</a>
</td>
-<td><a href="https://github.com/HDFGroup/hdf5-examples/blob/master/JAVA/intro/testfiles/114/HDF5GroupDatasetCreate.java">HDF5GroupDatasetCreate.txt</a></td>
+<td><a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/JAVA/H5J/tfiles/110/HDF5GroupDatasetCreate.java">HDF5GroupDatasetCreate.txt</a></td>
</tr>
</table>
@@ -917,8 +917,8 @@ FORTRAN
<tr>
<td>Creating and Accessing a File</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_file_create.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5Parallel/ph5_file_create.f90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_file_create.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_file_create.f90">FORTRAN</a>
MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -927,8 +927,8 @@ FORTRAN
<tr>
<td>Creating and Accessing a Dataset</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_dataset.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5Parallel/ph5_dataset.f90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_dataset.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_dataset.f90">FORTRAN</a>
MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -937,8 +937,8 @@ FORTRAN
<tr>
<td>Writing and Reading Contiguous Hyperslabs</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_row.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5Parallel/ph5_hyperslab_by_row.f90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_row.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_hyperslab_by_row.f90">FORTRAN</a>
MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -947,8 +947,8 @@ FORTRAN
<tr>
<td>Writing and Reading Regularly Spaced Data Hyperslabs</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_col.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5Parallel/ph5_hyperslab_by_col.f90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_col.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_hyperslab_by_col.f90">FORTRAN</a>
MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -957,8 +957,8 @@ FORTRAN
<tr>
<td>Writing and Reading Pattern Hyperslabs</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_pattern.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5Parallel/ph5_hyperslab_by_pattern.f90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_pattern.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_hyperslab_by_pattern.f90">FORTRAN</a>
MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -967,8 +967,8 @@ FORTRAN
<tr>
<td>Writing and Reading Chunk Hyperslabs</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_chunk.c">C</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/FORTRAN/H5Parallel/ph5_hyperslab_by_chunk.f90">FORTRAN</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_chunk.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_hyperslab_by_chunk.f90">FORTRAN</a>
MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -977,7 +977,7 @@ FORTRAN
<tr>
<td>Using the Subfiling VFD to Write a File Striped Across Multiple Subfiles</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_subfiling.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_subfiling.c">C</a>
FORTRAN MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -986,7 +986,7 @@ FORTRAN
<tr>
<td>Write to Datasets with Filters Applied</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_filtered_writes.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_filtered_writes.c">C</a>
FORTRAN MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
@@ -995,7 +995,7 @@ FORTRAN
<tr>
<td>Collectively Write Datasets with Filters and Not All Ranks have Data</td>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_filtered_writes_no_sel.c">C</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_filtered_writes_no_sel.c">C</a>
FORTRAN MATLAB PyHigh PyLow
</td>
<td>ph5_.h5</td>
diff --git a/doxygen/dox/IntroParExamples.dox b/doxygen/dox/IntroParExamples.dox
index 3929106..40e07c7 100644
--- a/doxygen/dox/IntroParExamples.dox
+++ b/doxygen/dox/IntroParExamples.dox
@@ -95,7 +95,7 @@ Below is the example program:
<table>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_row.c">hyperslab_by_row.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_row.c">hyperslab_by_row.c</a>
</td>
</tr>
</table>
@@ -205,7 +205,7 @@ Below is the F90 example program which illustrates how to write contiguous hyper
<table>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Fortran/H5Parallel/ph5_f90_hyperslab_by_col.F90">hyperslab_by_col.F90</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_f90_hyperslab_by_col.F90">hyperslab_by_col.F90</a>
</td>
</tr>
</table>
@@ -275,7 +275,7 @@ Below is an example program for writing hyperslabs by column in Parallel HDF5:
<table>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_col.c">hyperslab_by_col.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_col.c">hyperslab_by_col.c</a>
</td>
</tr>
</table>
@@ -346,7 +346,7 @@ Below is the example program for writing hyperslabs by column in Parallel HDF5:
<table>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Fortran/H5Parallel/ph5_f90_hyperslab_by_row.F90">hyperslab_by_row.F90</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_f90_hyperslab_by_row.F90">hyperslab_by_row.F90</a>
</td>
</tr>
</table>
@@ -431,12 +431,12 @@ Below are example programs for writing hyperslabs by pattern in Parallel HDF5:
<table>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_pattern.c">hyperslab_by_pattern.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_pattern.c">hyperslab_by_pattern.c</a>
</td>
</tr>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Fortran/H5Parallel/ph5_f90_hyperslab_by_pattern.F90">hyperslab_by_pattern.F90</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_f90_hyperslab_by_pattern.F90">hyperslab_by_pattern.F90</a>
</td>
</tr>
</table>
@@ -530,12 +530,12 @@ Below are example programs for writing hyperslabs by pattern in Parallel HDF5:
<table>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_hyperslab_by_chunk.c">hyperslab_by_chunk.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_hyperslab_by_chunk.c">hyperslab_by_chunk.c</a>
</td>
</tr>
<tr>
<td>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Fortran/H5Parallel/ph5_f90_hyperslab_by_chunk.F90">hyperslab_by_chunk.F90</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_f90_hyperslab_by_chunk.F90">hyperslab_by_chunk.F90</a>
</td>
</tr>
</table>
diff --git a/doxygen/dox/IntroParHDF5.dox b/doxygen/dox/IntroParHDF5.dox
index 1f04e96..73a2589 100644
--- a/doxygen/dox/IntroParHDF5.dox
+++ b/doxygen/dox/IntroParHDF5.dox
@@ -145,8 +145,8 @@ Following is example code for creating an access template in HDF5:
\endcode
The following example programs create an HDF5 file using Parallel HDF5:
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_file_create.c">C: file_create.c</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Fortran/H5Parallel/ph5_f90_file_create.F90">F90: file_create.F90</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_file_create.c">C: file_create.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_f90_file_create.F90">F90: file_create.F90</a>
\subsection subsec_pintro_create_dset Creating and Accessing a Dataset with PHDF5
@@ -226,8 +226,8 @@ The following code demonstrates a collective write using Parallel HDF5:
\endcode
The following example programs create an HDF5 dataset using Parallel HDF5:
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5Parallel/ph5_dataset.c">C: dataset.c</a>
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/Fortran/H5Parallel/ph5_f90_dataset.F90">F90: dataset.F90</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5PAR/ph5_dataset.c">C: dataset.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/FORTRAN/H5PAR/ph5_f90_dataset.F90">F90: dataset.F90</a>
\subsubsection subsec_pintro_hyperslabs Hyperslabs
diff --git a/doxygen/dox/LearnBasics3.dox b/doxygen/dox/LearnBasics3.dox
index eb3dc7c..abfb7b1 100644
--- a/doxygen/dox/LearnBasics3.dox
+++ b/doxygen/dox/LearnBasics3.dox
@@ -156,9 +156,9 @@ Specifically look at the \ref ExAPI.
There are examples for different languages.
The C example to create a chunked dataset is:
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_chunk.c">h5ex_d_chunk.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_chunk.c">h5ex_d_chunk.c</a>
The C example to create a compact dataset is:
-<a href="https://github.com/HDFGroup/hdf5-examples/blob/master/C/H5D/h5ex_d_compact.c">h5ex_d_compact.c</a>
+<a href="https://github.com/HDFGroup/hdf5/blob/develop/HDF5Examples/C/H5D/h5ex_d_compact.c">h5ex_d_compact.c</a>
\section secLBDsetLayoutChange Changing the Layout after Dataset Creation
The dataset layout is a Dataset Creation Property List. This means that once the dataset has been
diff --git a/doxygen/hdf5doxy_layout.xml b/doxygen/hdf5doxy_layout.xml
index 77900a3..2dee15f 100644
--- a/doxygen/hdf5doxy_layout.xml
+++ b/doxygen/hdf5doxy_layout.xml
@@ -8,6 +8,7 @@
<tab type="user" url="@ref RM" title="Reference Manual" />
<tab type="user" url="@ref GLS" title="Glossary" />
<tab type="user" url="https://portal.hdfgroup.org/display/HDF5/HDF5+Application+Developer%27s+Guide" title="Application Developer's Guide" />
+ <tab type="user" url="https://github.com/HDFGroup/arch-doc/blob/main/An_Overview_of_the_HDF5_Library_Architecture.v2.pdf" title="HDF5 Library Architecture Overview" />
<tab type="user" url="@ref SPEC" title="Specifications" />
<tab type="user" url="@ref Cookbook" title="Cookbook" />
<tab type="user" url="@ref TN" title="Technical Notes" />