summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt172
-rw-r--r--MANIFEST18
-rw-r--r--c++/examples/CMakeLists.txt31
-rw-r--r--c++/test/CMakeLists.txt26
-rwxr-xr-xconfig/cmake/CTestCustom.cmake550
-rw-r--r--config/cmake/HDF5Macros.cmake117
-rw-r--r--config/cmake/HDFMacros.cmake357
-rw-r--r--config/cmake/hdf5-config.cmake.install.in1
-rw-r--r--config/cmake/runTest.cmake48
-rw-r--r--examples/CMakeLists.txt70
-rw-r--r--fortran/examples/CMakeLists.txt4
-rw-r--r--fortran/test/CMakeLists.txt9
-rw-r--r--fortran/test/fortranlib_test.f906
-rw-r--r--fortran/testpar/CMakeLists.txt2
-rw-r--r--hl/c++/examples/CMakeLists.txt4
-rw-r--r--hl/c++/test/CMakeLists.txt4
-rw-r--r--hl/examples/CMakeLists.txt2
-rw-r--r--hl/fortran/examples/CMakeLists.txt2
-rwxr-xr-xhl/fortran/src/H5LTf90proto.h548
-rwxr-xr-xhl/fortran/src/H5LTfc.c504
-rwxr-xr-xhl/fortran/src/H5LTff.f909658
-rwxr-xr-xhl/fortran/src/H5TBfc.c61
-rwxr-xr-xhl/fortran/src/H5TBff.f901578
-rw-r--r--hl/fortran/test/CMakeLists.txt6
-rw-r--r--hl/fortran/test/tstlite.f901761
-rwxr-xr-xhl/fortran/test/tsttable.f90727
-rw-r--r--hl/test/CMakeLists.txt4
-rw-r--r--hl/tools/CMakeLists.txt12
-rw-r--r--perform/CMakeLists.txt124
-rw-r--r--perform/zip_perf.c24
-rwxr-xr-xrelease_docs/CMake.txt2
-rw-r--r--release_docs/INSTALL_VMS.txt4
-rw-r--r--release_docs/RELEASE.txt55
-rw-r--r--src/H5F.c10
-rw-r--r--src/H5Fmount.c2
-rw-r--r--src/H5Fpkg.h2
-rw-r--r--src/H5Gloc.c2
-rw-r--r--src/H5O.c4
-rw-r--r--src/H5public.h11
-rw-r--r--src/H5system.c4
-rw-r--r--src/H5win32defs.h4
-rw-r--r--test/CMakeLists.txt22
-rw-r--r--test/H5srcdir.h13
-rw-r--r--test/fheap.c2
-rw-r--r--test/getname.c2
-rw-r--r--test/h5test.c15
-rw-r--r--test/h5test.h5
-rw-r--r--test/lheap.c5
-rw-r--r--test/stab.c4
-rw-r--r--test/tfile.c116
-rw-r--r--testpar/CMakeLists.txt32
-rw-r--r--tools/h5copy/CMakeLists.txt126
-rw-r--r--tools/h5copy/h5copy.c14
-rw-r--r--tools/h5copy/h5copygentest.c13
-rw-r--r--tools/h5copy/testh5copy.sh13
-rw-r--r--tools/h5diff/CMakeLists.txt112
-rw-r--r--tools/h5diff/h5diff_common.c53
-rw-r--r--tools/h5diff/h5diffgentest.c300
-rw-r--r--tools/h5diff/testfiles/h5diff_10.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_600.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_603.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_606.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_612.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_615.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_621.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_622.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_623.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_624.txt11
-rw-r--r--tools/h5diff/testfiles/h5diff_70.txt2338
-rw-r--r--tools/h5diff/testfiles/h5diff_700.txt2038
-rw-r--r--tools/h5diff/testfiles/h5diff_701.txt2137
-rw-r--r--tools/h5diff/testfiles/h5diff_702.txt2038
-rw-r--r--tools/h5diff/testfiles/h5diff_703.txt2137
-rw-r--r--tools/h5diff/testfiles/h5diff_704.txt28
-rw-r--r--tools/h5diff/testfiles/h5diff_705.txt17
-rw-r--r--tools/h5diff/testfiles/h5diff_706.txt13
-rw-r--r--tools/h5diff/testfiles/h5diff_707.txt29
-rw-r--r--tools/h5diff/testfiles/h5diff_708.txt17
-rw-r--r--tools/h5diff/testfiles/h5diff_709.txt12
-rw-r--r--tools/h5diff/testfiles/h5diff_710.txt108
-rw-r--r--tools/h5diff/testfiles/h5diff_attr_v_level1.h5bin0 -> 7192 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_attr_v_level2.h5bin0 -> 7048 bytes
-rwxr-xr-xtools/h5diff/testh5diff.sh34
-rw-r--r--tools/h5dump/CMakeLists.txt167
-rw-r--r--tools/h5dump/h5dump.c71
-rw-r--r--tools/h5dump/h5dumpgentest.c10
-rw-r--r--tools/h5dump/testh5dump.sh.in56
-rw-r--r--tools/h5import/CMakeLists.txt196
-rw-r--r--tools/h5jam/CMakeLists.txt363
-rw-r--r--tools/h5jam/h5jam.c13
-rw-r--r--tools/h5jam/h5unjam.c11
-rw-r--r--tools/h5ls/CMakeLists.txt39
-rw-r--r--tools/h5ls/h5ls.c29
-rw-r--r--tools/h5repack/CMakeLists.txt149
-rw-r--r--tools/h5stat/CMakeLists.txt31
-rw-r--r--tools/lib/h5diff.c56
-rw-r--r--tools/lib/h5diff.h4
-rw-r--r--tools/lib/h5diff_attr.c320
-rw-r--r--tools/lib/h5diff_dset.c94
-rw-r--r--tools/lib/h5tools.c143
-rw-r--r--tools/lib/h5tools.h2
-rw-r--r--tools/lib/h5tools_str.c17
-rw-r--r--tools/lib/h5tools_utils.c7
-rw-r--r--tools/misc/CMakeLists.txt125
-rw-r--r--tools/testfiles/filter_fail.ddl30
-rw-r--r--tools/testfiles/filter_fail.h5bin0 -> 3528 bytes
-rw-r--r--tools/testfiles/help-1.ls11
-rw-r--r--tools/testfiles/help-2.ls11
-rw-r--r--tools/testfiles/help-3.ls11
-rw-r--r--tools/testfiles/tall-6.ddl27
-rw-r--r--tools/testfiles/tattrreg.ddl2
-rw-r--r--tools/testfiles/tdatareg.ddl2
-rw-r--r--tools/testfiles/textlinksrc-nodangle-1.ls11
-rw-r--r--tools/testfiles/tgroup-1.ls11
-rw-r--r--tools/testfiles/tnofilename.ddl2
-rw-r--r--tools/testfiles/treference.ddl12
-rw-r--r--vms/build.com2
-rw-r--r--vms/c++/examples/make.com2
-rw-r--r--vms/examples/make.com5
-rw-r--r--vms/fortran/examples/make.com2
-rw-r--r--vms/make.com2
-rw-r--r--vms/src/h5pubconf.h6
-rw-r--r--vms/test/H5srcdir_str.h22
-rw-r--r--windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj14
-rw-r--r--windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj21
-rw-r--r--windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj10
-rw-r--r--windows/proj/hdf5_hldll/hdf5_hldll.vcproj10
-rwxr-xr-xwindows/src/H5pubconf.h5
-rw-r--r--windows/tools/h5copy/testh5copy.bat4
-rw-r--r--windows/tools/h5diff/testh5diff.bat48
130 files changed, 22833 insertions, 7786 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 304d86d..0dfe687 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -179,6 +179,7 @@ SET (HDF5_PACKAGE_BUGREPORT "help@hdfgroup.org")
#-----------------------------------------------------------------------------
# Include some macros for reusable code
#-----------------------------------------------------------------------------
+INCLUDE (${HDF5_RESOURCES_DIR}/HDFMacros.cmake)
INCLUDE (${HDF5_RESOURCES_DIR}/HDF5Macros.cmake)
#-----------------------------------------------------------------------------
@@ -229,7 +230,7 @@ INCLUDE (${HDF5_RESOURCES_DIR}/ConfigureChecks.cmake)
# Option to use legacy naming for windows libs/programs, default is legacy
#-----------------------------------------------------------------------------
IF (WIN32 AND NOT CYGWIN)
- OPTION (H5_LEGACY_NAMING "Use Legacy Names for Libraries and Programs" ON)
+ OPTION (HDF_LEGACY_NAMING "Use Legacy Names for Libraries and Programs" OFF)
ENDIF (WIN32 AND NOT CYGWIN)
#-----------------------------------------------------------------------------
@@ -299,6 +300,7 @@ IF (WIN32)
IF (NOT CYGWIN)
ADD_DEFINITIONS (-DBIND_TO_CURRENT_VCLIBS_VERSION=1)
ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS)
+ ADD_DEFINITIONS (-D_CONSOLE)
ENDIF (NOT CYGWIN)
ENDIF (WIN32)
@@ -457,13 +459,16 @@ OPTION (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0)
IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
SET (ZLIB_USE_EXTERNAL 1)
SET (SZIP_USE_EXTERNAL 1)
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
+ SET (ZLIB_URL ${ZLIB_SVN_URL})
+ SET (SZIP_URL ${SZIP_SVN_URL})
+ ELSEIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
IF (NOT TGZ_PATH)
SET (TGZ_PATH ${HDF5_SOURCE_DIR})
ENDIF (NOT TGZ_PATH)
- SET (ZLIB_TGZ_URL ${TGZ_PATH}/${ZLIB_TGZ_NAME})
- SET (SZIP_TGZ_URL ${TGZ_PATH}/${SZIP_TGZ_NAME})
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ SET (ZLIB_URL ${TGZ_PATH}/${ZLIB_TGZ_NAME})
+ SET (SZIP_URL ${TGZ_PATH}/${SZIP_TGZ_NAME})
+ ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
#-----------------------------------------------------------------------------
@@ -483,58 +488,7 @@ IF (HDF5_ENABLE_Z_LIB_SUPPORT)
SET (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR})
ELSE (ZLIB_FOUND)
IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
- EXTERNALPROJECT_ADD (ZLIB
- SVN_REPOSITORY ${ZLIB_SVN_URL}
- # [SVN_REVISION rev]
- INSTALL_COMMAND ""
- CMAKE_ARGS
- -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
- )
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- EXTERNALPROJECT_ADD (ZLIB
- #LOG_DOWNLOAD 1
- URL ${ZLIB_TGZ_URL}
- URL_MD5 ""
- INSTALL_COMMAND ""
- CMAKE_ARGS
- -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
- )
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- EXTERNALPROJECT_GET_PROPERTY (ZLIB BINARY_DIR SOURCE_DIR)
-
- IF (BUILD_SHARED_LIBS)
- IF (WIN32 AND NOT MINGW)
- SET (ZLIB_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}zlib1${CMAKE_IMPORT_LIBRARY_SUFFIX}"
- )
- ELSE (WIN32 AND NOT MINGW)
- SET (ZLIB_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}z${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- ENDIF (WIN32 AND NOT MINGW)
- ELSE (BUILD_SHARED_LIBS)
- IF (WIN32 AND NOT MINGW)
- SET (ZLIB_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/zlib${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- ELSE (WIN32 AND NOT MINGW)
- SET (ZLIB_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libz${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- ENDIF (WIN32 AND NOT MINGW)
- ENDIF (BUILD_SHARED_LIBS)
- SET (ZLIB_INCLUDE_DIR_GEN
- "${BINARY_DIR}"
- )
- SET (ZLIB_INCLUDE_DIR
- "${SOURCE_DIR}/src"
- )
-
- SET (ZLIB_FOUND 1)
- SET (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
- SET (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR_GEN} ${ZLIB_INCLUDE_DIR})
+ EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
SET (H5_HAVE_FILTER_DEFLATE 1)
SET (H5_HAVE_ZLIB_H 1)
SET (H5_HAVE_LIBZ 1)
@@ -571,55 +525,7 @@ IF (HDF5_ENABLE_SZIP_SUPPORT)
SET (SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR})
ELSE (SZIP_FOUND)
IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
- EXTERNALPROJECT_ADD (SZIP
- SVN_REPOSITORY ${SZIP_SVN_URL}
- # [SVN_REVISION rev]
- INSTALL_COMMAND ""
- CMAKE_ARGS
- -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
- -DSZIP_ENABLE_ENCODING:BOOL=${HDF5_ENABLE_SZIP_ENCODING}
- )
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- EXTERNALPROJECT_ADD (SZIP
- #LOG_DOWNLOAD 1
- URL ${SZIP_TGZ_URL}
- URL_MD5 ""
- INSTALL_COMMAND ""
- CMAKE_ARGS
- -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
- -DSZIP_ENABLE_ENCODING:BOOL=${HDF5_ENABLE_SZIP_ENCODING}
- )
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- EXTERNALPROJECT_GET_PROPERTY (SZIP BINARY_DIR SOURCE_DIR)
-
-
- IF (BUILD_SHARED_LIBS)
- IF (WIN32 AND NOT MINGW)
- SET (SZIP_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}szip${CMAKE_IMPORT_LIBRARY_SUFFIX}"
- )
- ELSE (WIN32 AND NOT MINGW)
- SET (SZIP_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}szip${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- ENDIF (WIN32 AND NOT MINGW)
- ELSE (BUILD_SHARED_LIBS)
- SET (SZIP_LIBRARY
- "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libszip${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- ENDIF (BUILD_SHARED_LIBS)
- SET (SZIP_INCLUDE_DIR_GEN
- "${BINARY_DIR}"
- )
- SET (SZIP_INCLUDE_DIR
- "${SOURCE_DIR}/src"
- )
-
- SET (SZIP_FOUND 1)
- SET (SZIP_LIBRARIES ${SZIP_LIBRARY})
- SET (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR_GEN} ${SZIP_INCLUDE_DIR})
+ EXTERNAL_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE} ${HDF5_ENABLE_SZIP_ENCODING})
SET (H5_HAVE_FILTER_SZIP 1)
SET (H5_HAVE_SZLIB_H 1)
SET (H5_HAVE_LIBSZ 1)
@@ -647,39 +553,11 @@ IF (HDF5_PACKAGE_EXTLIBS)
FILE (MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BLDTYPE})
IF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
- ADD_CUSTOM_TARGET (ZLIB-GenHeader-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_INCLUDE_DIR_GEN}/zconf.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
- COMMENT "Copying ${ZLIB_INCLUDE_DIR_GEN}/zconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
- )
- SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/zconf.h)
- ADD_CUSTOM_TARGET (ZLIB-Library-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
- COMMENT "Copying ${ZLIB_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
- )
- GET_FILENAME_COMPONENT(ZLIB_LIB_NAME ${ZLIB_LIBRARY} NAME)
- SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ZLIB_LIB_NAME})
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ADD_DEPENDENCIES (ZLIB-GenHeader-Copy ZLIB)
- ADD_DEPENDENCIES (ZLIB-Library-Copy ZLIB)
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ PACKAGE_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
IF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
- ADD_CUSTOM_TARGET (SZIP-GenHeader-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
- COMMENT "Copying ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
- )
- SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/SZconfig.h)
- ADD_CUSTOM_TARGET (SZIP-Library-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
- COMMENT "Copying ${SZIP_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
- )
- GET_FILENAME_COMPONENT(SZIP_LIB_NAME ${SZIP_LIBRARY} NAME)
- SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SZIP_LIB_NAME})
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ADD_DEPENDENCIES (SZIP-GenHeader-Copy SZIP)
- ADD_DEPENDENCIES (SZIP-Library-Copy SZIP)
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ PACKAGE_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
ENDIF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
ENDIF (HDF5_PACKAGE_EXTLIBS)
@@ -698,16 +576,6 @@ IF (WIN32 AND NOT CYGWIN)
IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
ADD_DEPENDENCIES (ZLIB-Release-Copy ZLIB)
ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- IF (HDF5_PACKAGE_EXTLIBS)
- SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
- ADD_CUSTOM_TARGET (ZLIB-Dll-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
- COMMENT "Copying ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
- )
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ADD_DEPENDENCIES (ZLIB-Dll-Copy ZLIB)
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ENDIF (HDF5_PACKAGE_EXTLIBS)
ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
IF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
@@ -722,16 +590,6 @@ IF (WIN32 AND NOT CYGWIN)
IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
ADD_DEPENDENCIES (SZIP-Release-Copy SZIP)
ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- IF (HDF5_PACKAGE_EXTLIBS)
- SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
- ADD_CUSTOM_TARGET (SZIP-Dll-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
- COMMENT "Copying ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
- )
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ADD_DEPENDENCIES (SZIP-Dll-Copy SZIP)
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ENDIF (HDF5_PACKAGE_EXTLIBS)
ENDIF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
ENDIF (BUILD_SHARED_LIBS)
@@ -1061,7 +919,7 @@ ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
IF (NOT HDF5_EXTERNALLY_CONFIGURED)
SET (CPACK_PACKAGE_VENDOR "The HDF Group")
SET (CPACK_PACKAGE_NAME "${HDF5_PACKAGE_NAME}")
- SET (CPACK_PACKAGE_INSTALL_DIRECTORY "${HDF5_PACKAGE_NAME}")
+ SET (CPACK_PACKAGE_INSTALL_DIRECTORY "HDFGroup/${HDF5_PACKAGE_NAME}")
SET (CPACK_PACKAGE_VERSION "${HDF5_PACKAGE_VERSION}")
SET (CPACK_PACKAGE_VERSION_MAJOR "${HDF5_PACKAGE_VERSION_MAJOR}")
SET (CPACK_PACKAGE_VERSION_MINOR "${HDF5_PACKAGE_VERSION_MINOR}")
diff --git a/MANIFEST b/MANIFEST
index 6f87ccb..9d3fc50 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1186,6 +1186,8 @@
./tools/testfiles/family_file00015.h5
./tools/testfiles/family_file00016.h5
./tools/testfiles/family_file00017.h5
+./tools/testfiles/filter_fail.h5
+./tools/testfiles/filter_fail.ddl
./tools/testfiles/packedbits.h5
./tools/testfiles/packedbits.ddl
./tools/testfiles/file_space.h5
@@ -1195,6 +1197,7 @@
./tools/testfiles/tall-3.ddl
./tools/testfiles/tall-4s.ddl
./tools/testfiles/tall-5s.ddl
+./tools/testfiles/tall-6.ddl
./tools/testfiles/tall.h5
./tools/testfiles/tarray1.ddl
./tools/testfiles/tarray1.h5
@@ -1597,6 +1600,17 @@
./tools/h5diff/testfiles/h5diff_628.txt
./tools/h5diff/testfiles/h5diff_629.txt
./tools/h5diff/testfiles/h5diff_70.txt
+./tools/h5diff/testfiles/h5diff_700.txt
+./tools/h5diff/testfiles/h5diff_701.txt
+./tools/h5diff/testfiles/h5diff_702.txt
+./tools/h5diff/testfiles/h5diff_703.txt
+./tools/h5diff/testfiles/h5diff_704.txt
+./tools/h5diff/testfiles/h5diff_705.txt
+./tools/h5diff/testfiles/h5diff_706.txt
+./tools/h5diff/testfiles/h5diff_707.txt
+./tools/h5diff/testfiles/h5diff_708.txt
+./tools/h5diff/testfiles/h5diff_709.txt
+./tools/h5diff/testfiles/h5diff_710.txt
./tools/h5diff/testfiles/h5diff_80.txt
./tools/h5diff/testfiles/h5diff_90.txt
./tools/h5diff/testfiles/h5diff_100.txt
@@ -1678,6 +1692,8 @@
./tools/h5diff/testfiles/h5diff_attr1.h5
./tools/h5diff/testfiles/h5diff_attr2.h5
+./tools/h5diff/testfiles/h5diff_attr_v_level1.h5
+./tools/h5diff/testfiles/h5diff_attr_v_level2.h5
./tools/h5diff/testfiles/h5diff_basic1.h5
./tools/h5diff/testfiles/h5diff_basic2.h5
./tools/h5diff/testfiles/h5diff_dset1.h5
@@ -2015,6 +2031,7 @@
./vms/src/h5pubconf.h
./vms/test/check.com
./vms/test/make.com
+./vms/test/H5srcdir_str.h
./vms/build.com
./vms/install.com
@@ -2056,6 +2073,7 @@
./config/cmake/hdf5-config.cmake.build.in
./config/cmake/hdf5-config.cmake.install.in
./config/cmake/hdf5-config-version.cmake.in
+./config/cmake/HDFMacros.cmake
./config/cmake/HDF5Macros.cmake
./config/cmake/HDF5UseFortran.cmake
./config/cmake/libhdf5.settings.cmake.in
diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt
index 7bb6bb5..ebeff57 100644
--- a/c++/examples/CMakeLists.txt
+++ b/c++/examples/CMakeLists.txt
@@ -22,11 +22,32 @@ SET (examples
FOREACH (example ${examples})
ADD_EXECUTABLE (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
- H5_NAMING (cpp_ex_${example} ${LIB_TYPE})
+ TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
+ENDFOREACH (example ${examples})
- IF (BUILD_TESTING)
- ADD_TEST (NAME cpp_ex_${example} COMMAND $<TARGET_FILE:cpp_ex_${example}>)
- ENDIF (BUILD_TESTING)
+IF (BUILD_TESTING)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME cpp_ex-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ Group.h5
+ SDS.h5
+ SDScompound.h5
+ SDSextendible.h5
+ Select.h5
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (cpp_ex-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "cpp_ex-clear-objects")
-ENDFOREACH (example ${examples})
+ FOREACH (example ${examples})
+ ADD_TEST (NAME cpp_ex_${example} COMMAND $<TARGET_FILE:cpp_ex_${example}>)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (cpp_ex_${example} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "cpp_ex_${example}")
+ ENDFOREACH (example ${examples})
+ENDIF (BUILD_TESTING)
diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt
index 197ed84..b6e645a4 100644
--- a/c++/test/CMakeLists.txt
+++ b/c++/test/CMakeLists.txt
@@ -36,7 +36,7 @@ INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR} )
ADD_EXECUTABLE (cpp_testhdf5 ${CPP_TEST_SRCS} )
-H5_NAMING (cpp_testhdf5 ${LIB_TYPE})
+TARGET_NAMING (cpp_testhdf5 ${LIB_TYPE})
TARGET_LINK_LIBRARIES (cpp_testhdf5
${HDF5_CPP_LIB_TARGET}
${HDF5_LIB_TARGET}
@@ -61,17 +61,19 @@ IF (HDF5_TEST_VFD)
ENDIF (DIRECT_VFD)
MACRO (ADD_VFD_TEST vfdname resultcode)
- ADD_TEST (
- NAME VFD-${vfdname}-cpp_testhdf5
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:cpp_testhdf5>"
- -D "TEST_ARGS:STRING="
- -D "TEST_VFD:STRING=${vfdname}"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_OUTPUT=cpp_testhdf5"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake"
- )
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME VFD-${vfdname}-cpp_testhdf5
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:cpp_testhdf5>"
+ -D "TEST_ARGS:STRING="
+ -D "TEST_VFD:STRING=${vfdname}"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_OUTPUT=cpp_testhdf5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_VFD_TEST)
# Run test with different Virtual File Driver
diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake
index 68b0642..6dae1ce 100755
--- a/config/cmake/CTestCustom.cmake
+++ b/config/cmake/CTestCustom.cmake
@@ -26,418 +26,159 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
hl_fortran_test-clear-objects
######### tools/h5copy #########
H5COPY-clearall-objects
- H5COPY-H5LS_h5copytst-basic #uses runTest.cmake
H5COPY-clear-refs
- H5COPY-region_ref #needs clear-refs
- H5COPY-H5LS_h5copy_ref-refs #uses runTest.cmake
H5COPY-clear-ext-links
- H5COPY-ext_link #needs clear-ext-links
- H5COPY-ext_link_f #needs clear-ext-links
- H5COPY-ext_dangle_noobj #needs clear-ext-links
- H5COPY-ext_dangle_noobj_f #needs clear-ext-links
- H5COPY-ext_dangle_nofile #needs clear-ext-links
- H5COPY-ext_dangle_nofile_f #needs clear-ext-links
- H5COPY-ext_link_group #needs clear-ext-links
- H5COPY-ext_link_group_f #needs clear-ext-links
- H5COPY-H5LS_h5copy_extlinks_src-links #uses runTest.cmake
H5COPY-clear-misc
- H5COPY-CMP-h5copy_misc1 #uses runTest.cmake
######### tools/h5diff #########
H5DIFF-clearall-objects
- H5DIFF-h5diff_10 #uses runTest.cmake
- H5DIFF-h5diff_11 #uses runTest.cmake
- H5DIFF-h5diff_12 #uses runTest.cmake
- H5DIFF-h5diff_13 #uses runTest.cmake
- H5DIFF-h5diff_14 #uses runTest.cmake
- H5DIFF-h5diff_15 #uses runTest.cmake
- H5DIFF-h5diff_16_1 #uses runTest.cmake
- H5DIFF-h5diff_16_2 #uses runTest.cmake
- H5DIFF-h5diff_16_3 #uses runTest.cmake
- H5DIFF-h5diff_17 #uses runTest.cmake
- H5DIFF-h5diff_171 #uses runTest.cmake
- H5DIFF-h5diff_172 #uses runTest.cmake
- H5DIFF-h5diff_18 #uses runTest.cmake
- H5DIFF-h5diff_18_1 #uses runTest.cmake
- H5DIFF-h5diff_20 #uses runTest.cmake
- H5DIFF-h5diff_21 #uses runTest.cmake
- H5DIFF-h5diff_22 #uses runTest.cmake
- H5DIFF-h5diff_23 #uses runTest.cmake
- H5DIFF-h5diff_24 #uses runTest.cmake
- H5DIFF-h5diff_25 #uses runTest.cmake
- H5DIFF-h5diff_26 #uses runTest.cmake
- H5DIFF-h5diff_27 #uses runTest.cmake
- H5DIFF-h5diff_28 #uses runTest.cmake
- H5DIFF-h5diff_50 #uses runTest.cmake
- H5DIFF-h5diff_51 #uses runTest.cmake
- H5DIFF-h5diff_52 #uses runTest.cmake
- H5DIFF-h5diff_53 #uses runTest.cmake
- H5DIFF-h5diff_54 #uses runTest.cmake
- H5DIFF-h5diff_55 #uses runTest.cmake
- H5DIFF-h5diff_56 #uses runTest.cmake
- H5DIFF-h5diff_57 #uses runTest.cmake
- H5DIFF-h5diff_58 #uses runTest.cmake
- H5DIFF-h5diff_600 #uses runTest.cmake
- H5DIFF-h5diff_601 #uses runTest.cmake
- H5DIFF-h5diff_603 #uses runTest.cmake
- H5DIFF-h5diff_604 #uses runTest.cmake
- H5DIFF-h5diff_605 #uses runTest.cmake
- H5DIFF-h5diff_606 #uses runTest.cmake
- H5DIFF-h5diff_607 #uses runTest.cmake
- H5DIFF-h5diff_608 #uses runTest.cmake
- H5DIFF-h5diff_609 #uses runTest.cmake
- H5DIFF-h5diff_610 #uses runTest.cmake
- H5DIFF-h5diff_612 #uses runTest.cmake
- H5DIFF-h5diff_613 #uses runTest.cmake
- H5DIFF-h5diff_614 #uses runTest.cmake
- H5DIFF-h5diff_615 #uses runTest.cmake
- H5DIFF-h5diff_616 #uses runTest.cmake
- H5DIFF-h5diff_617 #uses runTest.cmake
- H5DIFF-h5diff_618 #uses runTest.cmake
- H5DIFF-h5diff_619 #uses runTest.cmake
- H5DIFF-h5diff_621 #uses runTest.cmake
- H5DIFF-h5diff_622 #uses runTest.cmake
- H5DIFF-h5diff_623 #uses runTest.cmake
- H5DIFF-h5diff_624 #uses runTest.cmake
- H5DIFF-h5diff_625 #uses runTest.cmake
- H5DIFF-h5diff_626 #uses runTest.cmake
- H5DIFF-h5diff_627 #uses runTest.cmake
- H5DIFF-h5diff_628 #uses runTest.cmake
- H5DIFF-h5diff_70 #uses runTest.cmake
- H5DIFF-h5diff_80 #uses runTest.cmake
- H5DIFF-h5diff_90 #uses runTest.cmake
- H5DIFF-h5diff_101 #uses runTest.cmake
- H5DIFF-h5diff_102 #uses runTest.cmake
- H5DIFF-h5diff_200 #uses runTest.cmake
- H5DIFF-h5diff_201 #uses runTest.cmake
- H5DIFF-h5diff_202 #uses runTest.cmake
- H5DIFF-h5diff_203 #uses runTest.cmake
- H5DIFF-h5diff_204 #uses runTest.cmake
- H5DIFF-h5diff_205 #uses runTest.cmake
- H5DIFF-h5diff_206 #uses runTest.cmake
- H5DIFF-h5diff_207 #uses runTest.cmake
- H5DIFF-h5diff_300 #uses runTest.cmake
- H5DIFF-h5diff_400 #uses runTest.cmake
- H5DIFF-h5diff_401 #uses runTest.cmake
- H5DIFF-h5diff_402 #uses runTest.cmake
- H5DIFF-h5diff_403 #uses runTest.cmake
- H5DIFF-h5diff_404 #uses runTest.cmake
- H5DIFF-h5diff_405 #uses runTest.cmake
- H5DIFF-h5diff_406 #uses runTest.cmake
- H5DIFF-h5diff_407 #uses runTest.cmake
- H5DIFF-h5diff_408 #uses runTest.cmake
- H5DIFF-h5diff_409 #uses runTest.cmake
- H5DIFF-h5diff_410 #uses runTest.cmake
- H5DIFF-h5diff_411 #uses runTest.cmake
- H5DIFF-h5diff_412 #uses runTest.cmake
- H5DIFF-h5diff_413 #uses runTest.cmake
- H5DIFF-h5diff_414 #uses runTest.cmake
- H5DIFF-h5diff_415 #uses runTest.cmake
- H5DIFF-h5diff_416 #uses runTest.cmake
- H5DIFF-h5diff_417 #uses runTest.cmake
- H5DIFF-h5diff_418 #uses runTest.cmake
- H5DIFF-h5diff_419 #uses runTest.cmake
- H5DIFF-h5diff_420 #uses runTest.cmake
- H5DIFF-h5diff_421 #uses runTest.cmake
- H5DIFF-h5diff_422 #uses runTest.cmake
- H5DIFF-h5diff_423 #uses runTest.cmake
- H5DIFF-h5diff_424 #uses runTest.cmake
- H5DIFF-h5diff_425 #uses runTest.cmake
- H5DIFF-h5diff_450 #uses runTest.cmake
- H5DIFF-h5diff_451 #uses runTest.cmake
- H5DIFF-h5diff_452 #uses runTest.cmake
- H5DIFF-h5diff_453 #uses runTest.cmake
- H5DIFF-h5diff_454 #uses runTest.cmake
- H5DIFF-h5diff_455 #uses runTest.cmake
- H5DIFF-h5diff_456 #uses runTest.cmake
- H5DIFF-h5diff_457 #uses runTest.cmake
- H5DIFF-h5diff_458 #uses runTest.cmake
- H5DIFF-h5diff_459 #uses runTest.cmake
- H5DIFF-h5diff_500 #uses runTest.cmake
- H5DIFF-h5diff_501 #uses runTest.cmake
- H5DIFF-h5diff_502 #uses runTest.cmake
- H5DIFF-h5diff_503 #uses runTest.cmake
- H5DIFF-h5diff_504 #uses runTest.cmake
- H5DIFF-h5diff_505 #uses runTest.cmake
- H5DIFF-h5diff_506 #uses runTest.cmake
- H5DIFF-h5diff_507 #uses runTest.cmake
- H5DIFF-h5diff_508 #uses runTest.cmake
- H5DIFF-h5diff_509 #uses runTest.cmake
- H5DIFF-h5diff_510 #uses runTest.cmake
- H5DIFF-h5diff_511 #uses runTest.cmake
- H5DIFF-h5diff_512 #uses runTest.cmake
- H5DIFF-h5diff_513 #uses runTest.cmake
- H5DIFF-h5diff_514 #uses runTest.cmake
- H5DIFF-h5diff_515 #uses runTest.cmake
- H5DIFF-h5diff_516 #uses runTest.cmake
- H5DIFF-h5diff_517 #uses runTest.cmake
- H5DIFF-h5diff_518 #uses runTest.cmake
- H5DIFF-h5diff_480 #uses runTest.cmake
- H5DIFF-h5diff_481 #uses runTest.cmake
- H5DIFF-h5diff_482 #uses runTest.cmake
- H5DIFF-h5diff_483 #uses runTest.cmake
- H5DIFF-h5diff_484 #uses runTest.cmake
- H5DIFF-h5diff_530 #uses runTest.cmake
######### tools/h5dump #########
H5DUMP-clearall-objects
- H5DUMP-packedbits #uses runTest.cmake
- H5DUMP-tgroup-1 #uses runTest.cmake
- H5DUMP-tgroup-2 #uses runTest.cmake
- H5DUMP-tdset-1 #uses runTest.cmake
- H5DUMP-tdset-2 #uses runTest.cmake
- H5DUMP-tattr-1 #uses runTest.cmake
- H5DUMP-tattr-2 #uses runTest.cmake
- H5DUMP-tattr-3 #uses runTest.cmake
- H5DUMP-tnamed_dtype_attr #uses runTest.cmake
- H5DUMP-tslink-1 #uses runTest.cmake
- H5DUMP-tudlink-1 #uses runTest.cmake
- H5DUMP-tslink-2 #uses runTest.cmake
- H5DUMP-tudlink-2 #uses runTest.cmake
- H5DUMP-thlink-1 #uses runTest.cmake
- H5DUMP-thlink-2 #uses runTest.cmake
- H5DUMP-thlink-3 #uses runTest.cmake
- H5DUMP-thlink-4 #uses runTest.cmake
- H5DUMP-thlink-5 #uses runTest.cmake
- H5DUMP-tcomp-1 #uses runTest.cmake
- H5DUMP-tcomp-2 #uses runTest.cmake
- H5DUMP-tcomp-4 #uses runTest.cmake
- H5DUMP-tnestcomp-1 #uses runTest.cmake
- H5DUMP-tall-1 #uses runTest.cmake
- H5DUMP-tall-2 #uses runTest.cmake
- H5DUMP-tall-3 #uses runTest.cmake
- H5DUMP-tloop-1 #uses runTest.cmake
- H5DUMP-tstr-1 #uses runTest.cmake
- H5DUMP-tstr-2 #uses runTest.cmake
- H5DUMP-tsaf #uses runTest.cmake
- H5DUMP-tvldtypes1 #uses runTest.cmake
- H5DUMP-tvldtypes2 #uses runTest.cmake
- H5DUMP-tvldtypes3 #uses runTest.cmake
- H5DUMP-tvldtypes4 #uses runTest.cmake
- H5DUMP-tvldtypes5 #uses runTest.cmake
- H5DUMP-tvlstr #uses runTest.cmake
- H5DUMP-tarray1 #uses runTest.cmake
- H5DUMP-tarray1_big #uses runTest.cmake
- H5DUMP-tarray2 #uses runTest.cmake
- H5DUMP-tarray3 #uses runTest.cmake
- H5DUMP-tarray4 #uses runTest.cmake
- H5DUMP-tarray5 #uses runTest.cmake
- H5DUMP-tarray6 #uses runTest.cmake
- H5DUMP-tarray7 #uses runTest.cmake
- H5DUMP-tarray8 #uses runTest.cmake
- H5DUMP-tempty #uses runTest.cmake
- H5DUMP-tgrp_comments #uses runTest.cmake
- H5DUMP-tsplit_file #uses runTest.cmake
- H5DUMP-tfamily #uses runTest.cmake
- H5DUMP-tmulti #uses runTest.cmake
- H5DUMP-tlarge_objname #uses runTest.cmake
- H5DUMP-tall-2A #uses runTest.cmake
- H5DUMP-tall-2B #uses runTest.cmake
- H5DUMP-tall-4s #uses runTest.cmake
- H5DUMP-tall-5s #uses runTest.cmake
- H5DUMP-tdset-3s #uses runTest.cmake
- H5DUMP-tchar1 #uses runTest.cmake
- H5DUMP-tchar1 #uses runTest.cmake
- H5DUMP-tnofilename #uses runTest.cmake
- H5DUMP-tboot1 #uses runTest.cmake
- H5DUMP-tboot2 #uses runTest.cmake
- H5DUMP-tperror #uses runTest.cmake
- H5DUMP-tcontents #uses runTest.cmake
- H5DUMP-tcompact #uses runTest.cmake
- H5DUMP-tcontiguos #uses runTest.cmake
- H5DUMP-tchunked #uses runTest.cmake
- H5DUMP-texternal #uses runTest.cmake
- H5DUMP-tfill #uses runTest.cmake
- H5DUMP-treference #uses runTest.cmake
- H5DUMP-tstringe #uses runTest.cmake
- H5DUMP-tstring #uses runTest.cmake
- H5DUMP-tstring2 #uses runTest.cmake
- H5DUMP-tindicesyes #uses runTest.cmake
- H5DUMP-tindicesno #uses runTest.cmake
- H5DUMP-tindicessub1 #uses runTest.cmake
- H5DUMP-tindicessub2 #uses runTest.cmake
- H5DUMP-tindicessub3 #uses runTest.cmake
- H5DUMP-tindicessub4 #uses runTest.cmake
- H5DUMP-tszip #uses runTest.cmake
- H5DUMP-tdeflate #uses runTest.cmake
- H5DUMP-tshuffle #uses runTest.cmake
- H5DUMP-tfletcher32 #uses runTest.cmake
- H5DUMP-tnbit #uses runTest.cmake
- H5DUMP-tscaleoffset #uses runTest.cmake
- H5DUMP-tallfilters #uses runTest.cmake
- H5DUMP-tuserfilter #uses runTest.cmake
- H5DUMP-tlonglinks #uses runTest.cmake
- H5DUMP-tbigdims #uses runTest.cmake
- H5DUMP-thyperslab #uses runTest.cmake
- H5DUMP-tnullspace #uses runTest.cmake
- H5DUMP-tvms #uses runTest.cmake
- H5DUMP-tbin1LE #uses runTest.cmake
- H5DUMP-tbin1 #uses runTest.cmake
H5DUMP-clear-out1
- H5DUMP-h5import-out1
- H5DUMP-h5diff-out1
- H5DUMP-tbin2 #uses runTest.cmake
- H5DUMP-tbin3 #uses runTest.cmake
H5DUMP-clear-out3
- H5DUMP-h5import-out3
- H5DUMP-h5diff-out3
H5DUMP-clear-objects
- H5DUMP-tbin4 #uses runTest.cmake
- H5DUMP-tdatareg #uses runTest.cmake
- H5DUMP-tdataregR #uses runTest.cmake
- H5DUMP-tattrreg #uses runTest.cmake
- H5DUMP-tattrregR #uses runTest.cmake
- H5DUMP-output-tbinregR #uses runTest.cmake
- H5DUMP-output-cmp-tbinregR #uses runTest.cmake
- H5DUMP-tordergr1 #uses runTest.cmake
- H5DUMP-tordergr2 #uses runTest.cmake
- H5DUMP-tordergr3 #uses runTest.cmake
- H5DUMP-tordergr4 #uses runTest.cmake
- H5DUMP-tordergr5 #uses runTest.cmake
- H5DUMP-torderattr1 #uses runTest.cmake
- H5DUMP-torderattr2 #uses runTest.cmake
- H5DUMP-torderattr3 #uses runTest.cmake
- H5DUMP-torderattr4 #uses runTest.cmake
- H5DUMP-tfpformat #uses runTest.cmake
- H5DUMP-textlinksrc #uses runTest.cmake
- H5DUMP-textlinkfar #uses runTest.cmake
- H5DUMP-textlink #uses runTest.cmake
H5DUMP_PACKED_BITS-clearall-objects
- H5DUMP-tpackedbits #uses runTest.cmake
- H5DUMP-tpackedbits2 #uses runTest.cmake
- H5DUMP-tnofilename-with-packed-bits #uses runTest.cmake
- H5DUMP-tpbitsSigned #uses runTest.cmake
- H5DUMP-tpbitsUnsigned #uses runTest.cmake
- H5DUMP-tpbitsOverlapped #uses runTest.cmake
- H5DUMP-tpbitsMax #uses runTest.cmake
- H5DUMP-tpbitsCompound #uses runTest.cmake
- H5DUMP-tpbitsArray #uses runTest.cmake
- H5DUMP-tpbitsMaxExceeded #uses runTest.cmake
- H5DUMP-tpbitsOffsetExceeded #uses runTest.cmake
- H5DUMP-tpbitsOffsetNegative #uses runTest.cmake
- H5DUMP-tpbitsLengthPositive #uses runTest.cmake
- H5DUMP-tpbitsLengthExceeded #uses runTest.cmake
- H5DUMP-tpbitsIncomplete #uses runTest.cmake
H5DUMP-XML-clearall-objects
- H5DUMP-XML-tall.h5 #uses runTest.cmake
- H5DUMP-XML-tattr.h5 #uses runTest.cmake
- H5DUMP-XML-tbitfields.h5 #uses runTest.cmake
- H5DUMP-XML-tcompound.h5 #uses runTest.cmake
- H5DUMP-XML-tcompound2.h5 #uses runTest.cmake
- H5DUMP-XML-tdatareg.h5 #uses runTest.cmake
- H5DUMP-XML-tdset.h5 #uses runTest.cmake
- H5DUMP-XML-tdset2.h5 #uses runTest.cmake
- H5DUMP-XML-tenum.h5 #uses runTest.cmake
- H5DUMP-XML-tgroup.h5 #uses runTest.cmake
- H5DUMP-XML-thlink.h5 #uses runTest.cmake
- H5DUMP-XML-tloop.h5 #uses runTest.cmake
- H5DUMP-XML-tloop2.h5 #uses runTest.cmake
- H5DUMP-XML-tmany.h5 #uses runTest.cmake
- H5DUMP-XML-tnestedcomp.h5 #uses runTest.cmake
- H5DUMP-XML-tcompound_complex.h5 #uses runTest.cmake
- H5DUMP-XML-tobjref.h5 #uses runTest.cmake
- H5DUMP-XML-topaque.h5 #uses runTest.cmake
- H5DUMP-XML-tslink.h5 #uses runTest.cmake
- H5DUMP-XML-tudlink.h5 #uses runTest.cmake
- H5DUMP-XML-textlink.h5 #uses runTest.cmake
- H5DUMP-XML-tstr.h5 #uses runTest.cmake
- H5DUMP-XML-tstr2.h5 #uses runTest.cmake
- H5DUMP-XML-tref.h5 #uses runTest.cmake
- H5DUMP-XML-tname-amp.h5 #uses runTest.cmake
- H5DUMP-XML-tname-apos.h5 #uses runTest.cmake
- H5DUMP-XML-tname-gt.h5 #uses runTest.cmake
- H5DUMP-XML-tname-lt.h5 #uses runTest.cmake
- H5DUMP-XML-tname-quot.h5 #uses runTest.cmake
- H5DUMP-XML-tname-sp.h5 #uses runTest.cmake
- H5DUMP-XML-tstring.h5 #uses runTest.cmake
- H5DUMP-XML-tstring-at.h5 #uses runTest.cmake
- H5DUMP-XML-tref-escapes.h5 #uses runTest.cmake
- H5DUMP-XML-tref-escapes-at.h5 #uses runTest.cmake
- H5DUMP-XML-tnodata.h5 #uses runTest.cmake
- H5DUMP-XML-tarray1.h5 #uses runTest.cmake
- H5DUMP-XML-tarray2.h5 #uses runTest.cmake
- H5DUMP-XML-tarray3.h5 #uses runTest.cmake
- H5DUMP-XML-tarray6.h5 #uses runTest.cmake
- H5DUMP-XML-tarray7.h5 #uses runTest.cmake
- H5DUMP-XML-tvldtypes1.h5 #uses runTest.cmake
- H5DUMP-XML-tvldtypes2.h5 #uses runTest.cmake
- H5DUMP-XML-tvldtypes3.h5 #uses runTest.cmake
- H5DUMP-XML-tvldtypes4.h5 #uses runTest.cmake
- H5DUMP-XML-tvldtypes5.h5 #uses runTest.cmake
- H5DUMP-XML-tvlstr.h5 #uses runTest.cmake
- H5DUMP-XML-tsaf.h5 #uses runTest.cmake
- H5DUMP-XML-tempty.h5 #uses runTest.cmake
- H5DUMP-XML-tnamed_dtype_attr.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-dtd.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-dtd-2.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-nons.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-nons-2.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-ns.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-ns-2.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-nons-uri.h5 #uses runTest.cmake
- H5DUMP-XML-tempty-dtd-uri.h5 #uses runTest.cmake
- H5DUMP-XML-tall-2A.h5 #uses runTest.cmake
- H5DUMP-XML-torderattr1.h5 #uses runTest.cmake
- H5DUMP-XML-torderattr2.h5 #uses runTest.cmake
- H5DUMP-XML-torderattr3.h5 #uses runTest.cmake
- H5DUMP-XML-torderattr4.h5 #uses runTest.cmake
- H5DUMP-XML-tfpformat.h5 #uses runTest.cmake
######### tools/h5import #########
H5IMPORT-clear-objects
+ H5IMPORT-ASCII_F32-clear-objects
+ H5IMPORT-ASCII_UI16-clear-objects
+ H5IMPORT-ASCII_UI32-clear-objects
+ H5IMPORT-ASCII_I8-clear-objects
+ H5IMPORT-ASCII_I16-clear-objects
+ H5IMPORT-ASCII_I32-clear-objects
+ H5IMPORT-ASCII_F64_R1-clear-objects
+ H5IMPORT-BINARY_I8_EOF-clear-objects
+ H5IMPORT-STR-clear-objects
+ H5IMPORT-BINARY_UI32-clear-objects
+ H5IMPORT-BINARY_UI16-clear-objects
+ H5IMPORT-BINARY_I32-clear-objects
+ H5IMPORT-BINARY_I8-clear-objects
+ H5IMPORT-BINARY_I16-clear-objects
+ H5IMPORT-BINARY_F64-clear-objects
+ H5IMPORT-ASCII_F64-clear-objects
+ ######### tools/h5jam #########
+ H5JAM-SETUP-N_twithub_u511_c-clear-objects
+ H5JAM-SETUP-N_twithub_u511_c
+ H5JAM-N_twithub_u511_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub_u511_c-clear-objects
+ H5JAM-SETUP-N_twithub_u512_c-clear-objects
+ H5JAM-SETUP-N_twithub_u512_c
+ H5JAM-N_twithub_u512_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub_u512_c-clear-objects
+ H5JAM-SETUP-N_twithub_u513_c-clear-objects
+ H5JAM-SETUP-N_twithub_u513_c
+ H5JAM-N_twithub_u513_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub_u513_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u10_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u10_c
+ H5JAM-N_twithub513_u10_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub513_u10_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u511_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u511_c
+ H5JAM-N_twithub513_u511_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub513_u511_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u512_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u512_c
+ H5JAM-N_twithub513_u512_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub513_u512_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u513_c-clear-objects
+ H5JAM-SETUP-N_twithub513_u513_c
+ H5JAM-N_twithub513_u513_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub513_u513_c-clear-objects
+ H5JAM-CHECKFILE-twithub_u10_c-clear-objects
+ H5JAM-twithub_u511_c-clear-objects
+ H5JAM-CHECKFILE-twithub_u511_c-clear-objects
+ H5JAM-twithub_u512_c-clear-objects
+ H5JAM-CHECKFILE-twithub_u512_c-clear-objects
+ H5JAM-twithub_u513_c-clear-objects
+ H5JAM-CHECKFILE-twithub_u513_c-clear-objects
+ H5JAM-twithub513_u10_c-clear-objects
+ H5JAM-CHECKFILE-twithub513_u10_c-clear-objects
+ H5JAM-twithub513_u511_c-clear-objects
+ H5JAM-CHECKFILE-twithub513_u511_c-clear-objects
+ H5JAM-twithub513_u512_c-clear-objects
+ H5JAM-CHECKFILE-twithub513_u512_c-clear-objects
+ H5JAM-twithub513_u513_c-clear-objects
+ H5JAM-CHECKFILE-twithub513_u513_c-clear-objects
+ H5JAM-SETUP-N_twithub_u10_c-clear-objects
+ H5JAM-SETUP-N_twithub_u10_c
+ H5JAM-N_twithub_u10_c-clear-objects
+ H5JAM-CHECKFILE-N_twithub_u10_c-clear-objects
+ H5JAM-SETUP-twithub_tall-clear-objects
+ H5JAM-SETUP-twithub_tall
+ H5JAM-UNJAM-twithub_tall-clear-objects
+ H5JAM-UNJAM_D-twithub_tall-clear-objects
+ H5JAM-CHECKFILE-twithub_tall-clear-objects
+ H5JAM-SETUP-twithub513_tall-clear-objects
+ H5JAM-SETUP-twithub513_tall
+ H5JAM-UNJAM-twithub513_tall-clear-objects
+ H5JAM-UNJAM_D-twithub513_tall-clear-objects
+ H5JAM-CHECKFILE-twithub513_tall-clear-objects
+ H5JAM-SETUP-N_twithub_tall-clear-objects
+ H5JAM-SETUP-N_twithub_tall
+ H5JAM-UNJAM-N_twithub_tall-clear-objects
+ H5JAM-UNJAM_D-N_twithub_tall-clear-objects
+ H5JAM-CHECKFILE-N_twithub_tall-clear-objects
+ H5JAM-SETUP-N_twithub513_tall-clear-objects
+ H5JAM-SETUP-N_twithub513_tall
+ H5JAM-UNJAM-N_twithub513_tall-clear-objects
+ H5JAM-UNJAM_D-N_twithub513_tall-clear-objects
+ H5JAM-CHECKFILE-N_twithub513_tall-clear-objects
+ H5JAM-SETUP-D_twithub_tall-clear-objects
+ H5JAM-UNJAM-D_twithub_tall-clear-objects
+ H5JAM-UNJAM_D-D_twithub_tall-clear-objects
+ H5JAM-CHECKFILE-D_twithub_tall-clear-objects
+ H5JAM-SETUP-D_twithub513_tall-clear-objects
+ H5JAM-SETUP-D_twithub513_tall
+ H5JAM-UNJAM-D_twithub513_tall-clear-objects
+ H5JAM-UNJAM_D-D_twithub513_tall-clear-objects
+ H5JAM-CHECKFILE-D_twithub513_tall-clear-objects
+ H5JAM-CHECKFILE-ta_u513-clear-objects
+ H5JAM-twithub_u10-clear-objects
+ H5JAM-CHECKFILE-twithub_u10-clear-objects
+ H5JAM-twithub_u511-clear-objects
+ H5JAM-CHECKFILE-twithub_u511-clear-objects
+ H5JAM-twithub_u512-clear-objects
+ H5JAM-CHECKFILE-twithub_u512-clear-objects
+ H5JAM-twithub_u513-clear-objects
+ H5JAM-CHECKFILE-twithub_u513-clear-objects
+ H5JAM-twithub513_u10-clear-objects
+ H5JAM-CHECKFILE-twithub513_u10-clear-objects
+ H5JAM-twithub513_u511-clear-objects
+ H5JAM-CHECKFILE-twithub513_u511-clear-objects
+ H5JAM-twithub513_u512-clear-objects
+ H5JAM-CHECKFILE-twithub513_u512-clear-objects
+ H5JAM-twithub513_u513-clear-objects
+ H5JAM-CHECKFILE-twithub513_u513-clear-objects
+ H5JAM-twithub_u10_c-clear-objects
+ H5JAM-tall_u10-clear-objects
+ H5JAM-CHECKFILE-tall_u10-clear-objects
+ H5JAM-tall_u511-clear-objects
+ H5JAM-CHECKFILE-tall_u511-clear-objects
+ H5JAM-tall_u512-clear-objects
+ H5JAM-CHECKFILE-tall_u512-clear-objects
+ H5JAM-tall_u513-clear-objects
+ H5JAM-CHECKFILE-tall_u513-clear-objects
+ H5JAM-SETUP-ta_u10-clear-objects
+ H5JAM-SETUP-ta_u10
+ H5JAM-ta_u10-clear-objects
+ H5JAM-CHECKFILE-ta_u10-clear-objects
+ H5JAM-SETUP-ta_u511-clear-objects
+ H5JAM-SETUP-ta_u511
+ H5JAM-ta_u511-clear-objects
+ H5JAM-CHECKFILE-ta_u511-clear-objects
+ H5JAM-SETUP-ta_u512-clear-objects
+ H5JAM-SETUP-ta_u512
+ H5JAM-ta_u512-clear-objects
+ H5JAM-CHECKFILE-ta_u512-clear-objects
+ H5JAM-SETUP-ta_u513-clear-objects
+ H5JAM-SETUP-ta_u513
+ H5JAM-ta_u513-clear-objects
######### tools/h5ls #########
H5LS-clearall-objects
- H5LS-help-1 #uses runTest.cmake
- H5LS-help-2 #uses runTest.cmake
- H5LS-help-3 #uses runTest.cmake
- H5LS-tall-1 #uses runTest.cmake
- H5LS-tall-2 #uses runTest.cmake
- H5LS-tgroup #uses runTest.cmake
- H5LS-tgroup-3 #uses runTest.cmake
- H5LS-tgroup-1 #uses runTest.cmake
- H5LS-tgroup-2 #uses runTest.cmake
- H5LS-tgrp_comments #uses runTest.cmake
- H5LS-tdset-1 #uses runTest.cmake
- H5LS-tslink-1 #uses runTest.cmake
- H5LS-tsoftlinks-1 #uses runTest.cmake
- H5LS-tsoftlinks-2 #uses runTest.cmake
- H5LS-tsoftlinks-3 #uses runTest.cmake
- H5LS-tsoftlinks-4 #uses runTest.cmake
- H5LS-tsoftlinks-5 #uses runTest.cmake
- H5LS-textlink-1 #uses runTest.cmake
- H5LS-textlinksrc-1 #uses runTest.cmake
- H5LS-textlinksrc-2 #uses runTest.cmake
- H5LS-textlinksrc-3 #uses runTest.cmake
- H5LS-textlinksrc-4 #uses runTest.cmake
- H5LS-textlinksrc-5 #uses runTest.cmake
- H5LS-textlinksrc-6 #uses runTest.cmake
- H5LS-textlinksrc-7 #uses runTest.cmake
- H5LS-tudlink-1 #uses runTest.cmake
- H5LS-textlinksrc-1-old #uses runTest.cmake
- H5LS-textlinksrc-2-old #uses runTest.cmake
- H5LS-textlinksrc-3-old #uses runTest.cmake
- H5LS-textlinksrc-6-old #uses runTest.cmake
- H5LS-textlinksrc-7-old #uses runTest.cmake
- H5LS-textlinksrc-nodangle-1 #uses runTest.cmake
- H5LS-textlinksrc-nodangle-2 #uses runTest.cmake
- H5LS-tsoftlinks-nodangle-1 #uses runTest.cmake
- H5LS-thlinks-nodangle-1 #uses runTest.cmake
- H5LS-thlink-1 #uses runTest.cmake
- H5LS-tcomp-1 #uses runTest.cmake
- H5LS-tnestcomp-1 #uses runTest.cmake
- H5LS-tnestcomp-2 #uses runTest.cmake
- H5LS-tnestcomp-3 #uses runTest.cmake
- H5LS-tnestcomp-4 #uses runTest.cmake
- H5LS-tloop-1 #uses runTest.cmake
- H5LS-tstr-1 #uses runTest.cmake
- H5LS-tsaf #uses runTest.cmake
- H5LS-tvldtypes1 #uses runTest.cmake
- H5LS-tarray1 #uses runTest.cmake
- H5LS-tempty #uses runTest.cmake
- H5LS-tattr2 #uses runTest.cmake
- H5LS-nosuchfile #uses runTest.cmake
- H5LS-tvldtypes2le #uses runTest.cmake
- H5LS-tdataregle #uses runTest.cmake
######### tools/h5repack #########
H5REPACK-clearall-objects
- H5REPACK-gzip_verbose_filters #uses runTest.cmake
+ H5REPACK-gzip_verbose_filters #uses runTest.cmake
H5REPACK_VERIFY_LAYOUT-dset2_chunk_20x10 #uses grepTest.cmake
H5REPACK_VERIFY_LAYOUT_ALL-chunk_20x10 #uses grepTest.cmake
H5REPACK_VERIFY_LAYOUT-dset2_conti #uses grepTest.cmake
@@ -459,26 +200,12 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
H5REPACK_VERIFY_LAYOUT_ALL-layout_short_switches #uses grepTest.cmake
######### tools/h5stat #########
H5STAT-clearall-objects
- H5STAT-h5stat_help1 #uses runTest.cmake
- H5STAT-h5stat_help2 #uses runTest.cmake
- H5STAT-h5stat_filters #uses runTest.cmake
- H5STAT-h5stat_filters-file #uses runTest.cmake
- H5STAT-h5stat_filters-F #uses runTest.cmake
- H5STAT-h5stat_filters-d #uses runTest.cmake
- H5STAT-h5stat_filters-g #uses runTest.cmake
- H5STAT-h5stat_filters-dT #uses runTest.cmake
- H5STAT-h5stat_filters-UD #uses runTest.cmake
- H5STAT-h5stat_filters-UT #uses runTest.cmake
- H5STAT-h5stat_tsohm #uses runTest.cmake
- H5STAT-h5stat_newgrat #uses runTest.cmake
- H5STAT-h5stat_newgrat-UG #uses runTest.cmake
- H5STAT-h5stat_newgrat-UA #uses runTest.cmake
######### tools/misc #########
h5repart_20K-clear-objects
h5repart_5K-clear-objects
h5repart_sec2-clear-objects
- H5MKGRP-h5mkgrp_help #uses runTest.cmake
- H5MKGRP-h5mkgrp_version #uses runTest.cmake
+ H5MKGRP_CMP-clear-h5mkgrp_help
+ H5MKGRP_CMP-clear-h5mkgrp_version
H5MKGRP-clear-h5mkgrp_single
H5MKGRP-h5mkgrp_single #uses runTest.cmake
H5MKGRP-H5LS-h5mkgrp_single #uses runTest.cmake
@@ -515,4 +242,7 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
H5MKGRP-clear-h5mkgrp_nested_mult_latest-lp
H5MKGRP-h5mkgrp_nested_mult_latest-lp #uses runTest.cmake
H5MKGRP-H5LS-h5mkgrp_nested_mult_latest-lp #uses runTest.cmake
+ ######### examples #########
+ EXAMPLES-clear-objects
+ cpp_ex-clear-objects
)
diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake
index 3edb3a2..b9e37bb 100644
--- a/config/cmake/HDF5Macros.cmake
+++ b/config/cmake/HDF5Macros.cmake
@@ -1,107 +1,6 @@
#-------------------------------------------------------------------------------
-MACRO (SET_GLOBAL_VARIABLE name value)
- SET (${name} ${value} CACHE INTERNAL "Used to pass variables between directories" FORCE)
-ENDMACRO (SET_GLOBAL_VARIABLE)
-
-#-------------------------------------------------------------------------------
-MACRO (IDE_GENERATED_PROPERTIES SOURCE_PATH HEADERS SOURCES)
- #set(source_group_path "Source/AIM/${NAME}")
- STRING (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH})
- source_group(${source_group_path} FILES ${HEADERS} ${SOURCES})
-
- #-- The following is needed if we ever start to use OS X Frameworks but only
- #-- works on CMake 2.6 and greater
- #SET_PROPERTY (SOURCE ${HEADERS}
- # PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
- #)
-ENDMACRO (IDE_GENERATED_PROPERTIES)
-
-#-------------------------------------------------------------------------------
-MACRO (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
- # INSTALL (FILES ${HEADERS}
- # DESTINATION include/R3D/${NAME}
- # COMPONENT Headers
- # )
-
- STRING (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH} )
- source_group (${source_group_path} FILES ${HEADERS} ${SOURCES})
-
- #-- The following is needed if we ever start to use OS X Frameworks but only
- #-- works on CMake 2.6 and greater
- #SET_PROPERTY (SOURCE ${HEADERS}
- # PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
- #)
-ENDMACRO (IDE_SOURCE_PROPERTIES)
-
-#-------------------------------------------------------------------------------
-MACRO (H5_NAMING target libtype)
- IF (WIN32 AND NOT MINGW)
- IF (${libtype} MATCHES "SHARED")
- IF (H5_LEGACY_NAMING)
- SET_TARGET_PROPERTIES (${target} PROPERTIES OUTPUT_NAME "dll")
- SET_TARGET_PROPERTIES (${target} PROPERTIES PREFIX "${target}")
- ELSE (H5_LEGACY_NAMING)
- SET_TARGET_PROPERTIES (${target} PROPERTIES OUTPUT_NAME "${target}dll")
- ENDIF (H5_LEGACY_NAMING)
- ENDIF (${libtype} MATCHES "SHARED")
- ENDIF (WIN32 AND NOT MINGW)
-ENDMACRO (H5_NAMING)
-
-#-------------------------------------------------------------------------------
MACRO (H5_SET_LIB_OPTIONS libtarget libname libtype)
- # message (STATUS "${libname} libtype: ${libtype}")
- IF (${libtype} MATCHES "SHARED")
- IF (WIN32 AND NOT MINGW)
- IF (H5_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "${libname}dll")
- SET (LIB_DEBUG_NAME "${libname}ddll")
- ELSE (H5_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "${libname}")
- SET (LIB_DEBUG_NAME "${libname}_D")
- ENDIF (H5_LEGACY_NAMING)
- ELSE (WIN32 AND NOT MINGW)
- SET (LIB_RELEASE_NAME "${libname}")
- SET (LIB_DEBUG_NAME "${libname}_debug")
- ENDIF (WIN32 AND NOT MINGW)
- ELSE (${libtype} MATCHES "SHARED")
- IF (WIN32 AND NOT MINGW)
- IF (H5_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "${libname}")
- SET (LIB_DEBUG_NAME "${libname}d")
- ELSE (H5_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "lib${libname}")
- SET (LIB_DEBUG_NAME "lib${libname}_D")
- ENDIF (H5_LEGACY_NAMING)
- ELSE (WIN32 AND NOT MINGW)
- # if the generator supports configuration types or if the CMAKE_BUILD_TYPE has a value
- IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
- SET (LIB_RELEASE_NAME "${libname}")
- SET (LIB_DEBUG_NAME "${libname}_debug")
- ELSE (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
- SET (LIB_RELEASE_NAME "lib${libname}")
- SET (LIB_DEBUG_NAME "lib${libname}_debug")
- ENDIF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
- ENDIF (WIN32 AND NOT MINGW)
- ENDIF (${libtype} MATCHES "SHARED")
-
- SET_TARGET_PROPERTIES (${libtarget}
- PROPERTIES
- DEBUG_OUTPUT_NAME ${LIB_DEBUG_NAME}
- RELEASE_OUTPUT_NAME ${LIB_RELEASE_NAME}
- MINSIZEREL_OUTPUT_NAME ${LIB_RELEASE_NAME}
- RELWITHDEBINFO_OUTPUT_NAME ${LIB_RELEASE_NAME}
- )
-
- #----- Use MSVC Naming conventions for Shared Libraries
- IF (MINGW AND ${libtype} MATCHES "SHARED")
- SET_TARGET_PROPERTIES (${libtarget}
- PROPERTIES
- IMPORT_SUFFIX ".lib"
- IMPORT_PREFIX ""
- PREFIX ""
- )
- ENDIF (MINGW AND ${libtype} MATCHES "SHARED")
-
+ HDF_SET_LIB_OPTIONS (${libtarget} ${libname} ${libtype})
IF (${libtype} MATCHES "SHARED")
IF (WIN32)
SET (LIBHDF_VERSION ${HDF5_PACKAGE_VERSION_MAJOR})
@@ -125,17 +24,3 @@ MACRO (H5_SET_LIB_OPTIONS libtarget libname libtype)
ENDIF (APPLE)
ENDMACRO (H5_SET_LIB_OPTIONS)
-
-#-------------------------------------------------------------------------------
-MACRO (TARGET_FORTRAN_WIN_PROPERTIES target addlinkflags)
- IF (WIN32)
- IF (MSVC)
- SET_TARGET_PROPERTIES (${target}
- PROPERTIES
- COMPILE_FLAGS "/dll"
- LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
- )
- ENDIF (MSVC)
- ENDIF (WIN32)
-ENDMACRO (TARGET_FORTRAN_WIN_PROPERTIES)
-
diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake
new file mode 100644
index 0000000..60ee6e8
--- /dev/null
+++ b/config/cmake/HDFMacros.cmake
@@ -0,0 +1,357 @@
+#-------------------------------------------------------------------------------
+MACRO (SET_GLOBAL_VARIABLE name value)
+ SET (${name} ${value} CACHE INTERNAL "Used to pass variables between directories" FORCE)
+ENDMACRO (SET_GLOBAL_VARIABLE)
+
+#-------------------------------------------------------------------------------
+MACRO (EXTERNAL_JPEG_LIBRARY compress_type jpeg_pic)
+ # May need to build JPEG with PIC on x64 machines with gcc
+ # Need to use CMAKE_ANSI_CFLAGS define so that compiler test works
+
+ IF (${compress_type} MATCHES "SVN")
+ EXTERNALPROJECT_ADD (JPEG
+ SVN_REPOSITORY ${JPEG_URL}
+ # [SVN_REVISION rev]
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+ -DCMAKE_BUILD_TYPE:STRING="Release"
+ -DCMAKE_ANSI_CFLAGS:STRING="${jpeg_pic}"
+ )
+ ELSEIF (${compress_type} MATCHES "TGZ")
+ EXTERNALPROJECT_ADD (JPEG
+ URL ${JPEG_URL}
+ URL_MD5 ""
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+ -DCMAKE_BUILD_TYPE:STRING="Release"
+ -DCMAKE_ANSI_CFLAGS:STRING="${jpeg_pic}"
+ )
+ ENDIF (${compress_type} MATCHES "SVN")
+ EXTERNALPROJECT_GET_PROPERTY (JPEG BINARY_DIR SOURCE_DIR)
+
+ SET (JPEG_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libjpeg${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ SET (JPEG_INCLUDE_DIR_GEN "${BINARY_DIR}")
+ SET (JPEG_INCLUDE_DIR "${SOURCE_DIR}/src")
+ SET (JPEG_FOUND 1)
+ SET (JPEG_LIBRARIES ${JPEG_LIBRARY})
+ SET (JPEG_INCLUDE_DIRS ${JPEG_INCLUDE_DIR_GEN} ${JPEG_INCLUDE_DIR})
+ENDMACRO (EXTERNAL_JPEG_LIBRARY)
+
+#-------------------------------------------------------------------------------
+MACRO (PACKAGE_JPEG_LIBRARY compress_type)
+ ADD_CUSTOM_TARGET (JPEG-GenHeader-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${JPEG_INCLUDE_DIR_GEN}/jconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${JPEG_INCLUDE_DIR_GEN}/jconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/jconfig.h)
+ ADD_CUSTOM_TARGET (JPEG-Library-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${JPEG_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${JPEG_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ GET_FILENAME_COMPONENT(JPEG_LIB_NAME ${JPEG_LIBRARY} NAME)
+ SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${JPEG_LIB_NAME})
+ IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ADD_DEPENDENCIES (JPEG-GenHeader-Copy JPEG)
+ ADD_DEPENDENCIES (JPEG-Library-Copy JPEG)
+ ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ENDMACRO (PACKAGE_JPEG_LIBRARY)
+
+#-------------------------------------------------------------------------------
+MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
+ IF (${compress_type} MATCHES "SVN")
+ EXTERNALPROJECT_ADD (SZIP
+ SVN_REPOSITORY ${SZIP_URL}
+ # [SVN_REVISION rev]
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+ -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
+ )
+ ELSEIF (${compress_type} MATCHES "TGZ")
+ EXTERNALPROJECT_ADD (SZIP
+ URL ${SZIP_URL}
+ URL_MD5 ""
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+ -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
+ )
+ ENDIF (${compress_type} MATCHES "SVN")
+ EXTERNALPROJECT_GET_PROPERTY (SZIP BINARY_DIR SOURCE_DIR)
+
+ IF (${BLDTYPE} MATCHES "Debug")
+ IF (WIN32 AND NOT MINGW)
+ IF (HDF_LEGACY_NAMING)
+ SET (DBG_EXT "d")
+ ELSE (HDF_LEGACY_NAMING)
+ SET (DBG_EXT "_D")
+ ENDIF (HDF_LEGACY_NAMING)
+ ELSE (WIN32 AND NOT MINGW)
+ SET (DBG_EXT "_debug")
+ ENDIF (WIN32 AND NOT MINGW)
+ ELSE (${BLDTYPE} MATCHES "Debug")
+ SET (DBG_EXT "")
+ ENDIF (${BLDTYPE} MATCHES "Debug")
+
+ IF (${libtype} MATCHES "SHARED")
+ IF (WIN32 AND NOT MINGW)
+ SET (SZIP_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}szip${DBG_EXT}${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ ELSE (WIN32 AND NOT MINGW)
+ SET (SZIP_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}szip${DBG_EXT}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ ENDIF (WIN32 AND NOT MINGW)
+ ELSE (${libtype} MATCHES "SHARED")
+ SET (SZIP_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libszip${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ ENDIF (${libtype} MATCHES "SHARED")
+ SET (SZIP_INCLUDE_DIR_GEN "${BINARY_DIR}")
+ SET (SZIP_INCLUDE_DIR "${SOURCE_DIR}/src")
+ SET (SZIP_FOUND 1)
+ SET (SZIP_LIBRARIES ${SZIP_LIBRARY})
+ SET (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR_GEN} ${SZIP_INCLUDE_DIR})
+ENDMACRO (EXTERNAL_SZIP_LIBRARY)
+
+#-------------------------------------------------------------------------------
+MACRO (PACKAGE_SZIP_LIBRARY compress_type libtype)
+ ADD_CUSTOM_TARGET (SZIP-GenHeader-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/SZconfig.h)
+ ADD_CUSTOM_TARGET (SZIP-Library-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${SZIP_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ GET_FILENAME_COMPONENT(SZIP_LIB_NAME ${SZIP_LIBRARY} NAME)
+ SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SZIP_LIB_NAME})
+ IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ADD_DEPENDENCIES (SZIP-GenHeader-Copy SZIP)
+ ADD_DEPENDENCIES (SZIP-Library-Copy SZIP)
+ ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ IF (WIN32 AND NOT CYGWIN)
+ IF (${libtype} MATCHES "SHARED")
+ GET_FILENAME_COMPONENT(SZIP_DLL_NAME ${SZIP_LIBRARY} NAME_WE)
+ # MESSAGE (STATUS "SZIP_DLL_NAME: ${SZIP_DLL_NAME}")
+ GET_FILENAME_COMPONENT(SZIP_BIN_PATH ${SZIP_LIBRARY} PATH)
+ # MESSAGE (STATUS "SZIP_BIN_PATH: ${SZIP_BIN_PATH}")
+ SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ ADD_CUSTOM_TARGET (SZIP-Dll-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ADD_DEPENDENCIES (SZIP-Dll-Copy SZIP)
+ ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ENDIF (${libtype} MATCHES "SHARED")
+ ENDIF (WIN32 AND NOT CYGWIN)
+ENDMACRO (PACKAGE_SZIP_LIBRARY)
+
+#-------------------------------------------------------------------------------
+MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
+ IF (${compress_type} MATCHES "SVN")
+ EXTERNALPROJECT_ADD (ZLIB
+ SVN_REPOSITORY ${ZLIB_URL}
+ # [SVN_REVISION rev]
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+ -DHDF_LEGACY_NAMING:BOOL=${HDF_LEGACY_NAMING}
+ )
+ ELSEIF (${compress_type} MATCHES "TGZ")
+ EXTERNALPROJECT_ADD (ZLIB
+ URL ${ZLIB_URL}
+ URL_MD5 ""
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+ -DHDF_LEGACY_NAMING:BOOL=${HDF_LEGACY_NAMING}
+ )
+ ENDIF (${compress_type} MATCHES "SVN")
+ EXTERNALPROJECT_GET_PROPERTY (ZLIB BINARY_DIR SOURCE_DIR)
+
+ IF (${BLDTYPE} MATCHES "Debug")
+ IF (WIN32 AND NOT MINGW)
+ IF (HDF_LEGACY_NAMING)
+ SET (DBG_EXT "d")
+ ELSE (HDF_LEGACY_NAMING)
+ SET (DBG_EXT "_D")
+ ENDIF (HDF_LEGACY_NAMING)
+ ELSE (WIN32 AND NOT MINGW)
+ SET (DBG_EXT "_debug")
+ ENDIF (WIN32 AND NOT MINGW)
+ ELSE (${BLDTYPE} MATCHES "Debug")
+ SET (DBG_EXT "")
+ ENDIF (${BLDTYPE} MATCHES "Debug")
+
+ IF (${libtype} MATCHES "SHARED")
+ IF (WIN32 AND NOT MINGW)
+ SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}zlib1${DBG_EXT}${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ ELSE (WIN32 AND NOT MINGW)
+ SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}z${DBG_EXT}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ ENDIF (WIN32 AND NOT MINGW)
+ ELSE (${libtype} MATCHES "SHARED")
+ IF (WIN32 AND NOT MINGW)
+ IF (HDF_LEGACY_NAMING)
+ SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/zlib${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ ELSE (HDF_LEGACY_NAMING)
+ SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libzlib${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ ENDIF (HDF_LEGACY_NAMING)
+ ELSE (WIN32 AND NOT MINGW)
+ SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libz${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ ENDIF (WIN32 AND NOT MINGW)
+ ENDIF (${libtype} MATCHES "SHARED")
+ SET (ZLIB_INCLUDE_DIR_GEN "${BINARY_DIR}")
+ SET (ZLIB_INCLUDE_DIR "${SOURCE_DIR}/src")
+ SET (ZLIB_FOUND 1)
+ SET (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
+ SET (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR_GEN} ${ZLIB_INCLUDE_DIR})
+ENDMACRO (EXTERNAL_ZLIB_LIBRARY)
+
+#-------------------------------------------------------------------------------
+MACRO (PACKAGE_ZLIB_LIBRARY compress_type libtype)
+ ADD_CUSTOM_TARGET (ZLIB-GenHeader-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_INCLUDE_DIR_GEN}/zconf.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${ZLIB_INCLUDE_DIR_GEN}/zconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/zconf.h)
+ ADD_CUSTOM_TARGET (ZLIB-Library-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${ZLIB_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ GET_FILENAME_COMPONENT(ZLIB_LIB_NAME ${ZLIB_LIBRARY} NAME)
+ SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ZLIB_LIB_NAME})
+ IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ADD_DEPENDENCIES (ZLIB-GenHeader-Copy ZLIB)
+ ADD_DEPENDENCIES (ZLIB-Library-Copy ZLIB)
+ ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ IF (WIN32 AND NOT CYGWIN)
+ IF (${libtype} MATCHES "SHARED")
+ GET_FILENAME_COMPONENT(ZLIB_DLL_NAME ${ZLIB_LIBRARY} NAME_WE)
+ # MESSAGE (STATUS "ZLIB_DLL_NAME: ${ZLIB_DLL_NAME}")
+ GET_FILENAME_COMPONENT(ZLIB_BIN_PATH ${ZLIB_LIBRARY} PATH)
+ # MESSAGE (STATUS "ZLIB_BIN_PATH: ${ZLIB_BIN_PATH}")
+ SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ ADD_CUSTOM_TARGET (ZLIB-Dll-Copy ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
+ COMMENT "Copying ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
+ )
+ IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ADD_DEPENDENCIES (ZLIB-Dll-Copy ZLIB)
+ ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
+ ENDIF (${libtype} MATCHES "SHARED")
+ ENDIF (WIN32 AND NOT CYGWIN)
+ENDMACRO (PACKAGE_ZLIB_LIBRARY)
+
+#-------------------------------------------------------------------------------
+MACRO (IDE_GENERATED_PROPERTIES SOURCE_PATH HEADERS SOURCES)
+ #set(source_group_path "Source/AIM/${NAME}")
+ STRING (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH})
+ source_group (${source_group_path} FILES ${HEADERS} ${SOURCES})
+
+ #-- The following is needed if we ever start to use OS X Frameworks but only
+ #-- works on CMake 2.6 and greater
+ #SET_PROPERTY (SOURCE ${HEADERS}
+ # PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
+ #)
+ENDMACRO (IDE_GENERATED_PROPERTIES)
+
+#-------------------------------------------------------------------------------
+MACRO (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
+ # INSTALL (FILES ${HEADERS}
+ # DESTINATION include/R3D/${NAME}
+ # COMPONENT Headers
+ # )
+
+ STRING (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH} )
+ source_group (${source_group_path} FILES ${HEADERS} ${SOURCES})
+
+ #-- The following is needed if we ever start to use OS X Frameworks but only
+ #-- works on CMake 2.6 and greater
+ #SET_PROPERTY (SOURCE ${HEADERS}
+ # PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
+ #)
+ENDMACRO (IDE_SOURCE_PROPERTIES)
+
+#-------------------------------------------------------------------------------
+MACRO (TARGET_NAMING target libtype)
+ IF (WIN32 AND NOT MINGW)
+ IF (${libtype} MATCHES "SHARED")
+ IF (HDF_LEGACY_NAMING)
+ SET_TARGET_PROPERTIES (${target} PROPERTIES OUTPUT_NAME "dll")
+ SET_TARGET_PROPERTIES (${target} PROPERTIES PREFIX "${target}")
+ ELSE (HDF_LEGACY_NAMING)
+ SET_TARGET_PROPERTIES (${target} PROPERTIES OUTPUT_NAME "${target}dll")
+ ENDIF (HDF_LEGACY_NAMING)
+ ENDIF (${libtype} MATCHES "SHARED")
+ ENDIF (WIN32 AND NOT MINGW)
+ENDMACRO (TARGET_NAMING)
+
+#-------------------------------------------------------------------------------
+MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
+ # message (STATUS "${libname} libtype: ${libtype}")
+ IF (${libtype} MATCHES "SHARED")
+ IF (WIN32 AND NOT MINGW)
+ IF (HDF_LEGACY_NAMING)
+ SET (LIB_RELEASE_NAME "${libname}dll")
+ SET (LIB_DEBUG_NAME "${libname}ddll")
+ ELSE (HDF_LEGACY_NAMING)
+ SET (LIB_RELEASE_NAME "${libname}")
+ SET (LIB_DEBUG_NAME "${libname}_D")
+ ENDIF (HDF_LEGACY_NAMING)
+ ELSE (WIN32 AND NOT MINGW)
+ SET (LIB_RELEASE_NAME "${libname}")
+ SET (LIB_DEBUG_NAME "${libname}_debug")
+ ENDIF (WIN32 AND NOT MINGW)
+ ELSE (${libtype} MATCHES "SHARED")
+ IF (WIN32 AND NOT MINGW)
+ IF (HDF_LEGACY_NAMING)
+ SET (LIB_RELEASE_NAME "${libname}")
+ SET (LIB_DEBUG_NAME "${libname}d")
+ ELSE (HDF_LEGACY_NAMING)
+ SET (LIB_RELEASE_NAME "lib${libname}")
+ SET (LIB_DEBUG_NAME "lib${libname}_D")
+ ENDIF (HDF_LEGACY_NAMING)
+ ELSE (WIN32 AND NOT MINGW)
+ # if the generator supports configuration types or if the CMAKE_BUILD_TYPE has a value
+ IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+ SET (LIB_RELEASE_NAME "${libname}")
+ SET (LIB_DEBUG_NAME "${libname}_debug")
+ ELSE (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+ SET (LIB_RELEASE_NAME "lib${libname}")
+ SET (LIB_DEBUG_NAME "lib${libname}_debug")
+ ENDIF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+ ENDIF (WIN32 AND NOT MINGW)
+ ENDIF (${libtype} MATCHES "SHARED")
+
+ SET_TARGET_PROPERTIES (${libtarget}
+ PROPERTIES
+ DEBUG_OUTPUT_NAME ${LIB_DEBUG_NAME}
+ RELEASE_OUTPUT_NAME ${LIB_RELEASE_NAME}
+ MINSIZEREL_OUTPUT_NAME ${LIB_RELEASE_NAME}
+ RELWITHDEBINFO_OUTPUT_NAME ${LIB_RELEASE_NAME}
+ )
+
+ #----- Use MSVC Naming conventions for Shared Libraries
+ IF (MINGW AND ${libtype} MATCHES "SHARED")
+ SET_TARGET_PROPERTIES (${libtarget}
+ PROPERTIES
+ IMPORT_SUFFIX ".lib"
+ IMPORT_PREFIX ""
+ PREFIX ""
+ )
+ ENDIF (MINGW AND ${libtype} MATCHES "SHARED")
+
+ENDMACRO (HDF_SET_LIB_OPTIONS)
+
+#-------------------------------------------------------------------------------
+MACRO (TARGET_FORTRAN_WIN_PROPERTIES target addlinkflags)
+ IF (WIN32)
+ IF (MSVC)
+ SET_TARGET_PROPERTIES (${target}
+ PROPERTIES
+ COMPILE_FLAGS "/dll"
+ LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
+ )
+ ENDIF (MSVC)
+ ENDIF (WIN32)
+ENDMACRO (TARGET_FORTRAN_WIN_PROPERTIES)
diff --git a/config/cmake/hdf5-config.cmake.install.in b/config/cmake/hdf5-config.cmake.install.in
index dadbeb6..8dcd86f 100644
--- a/config/cmake/hdf5-config.cmake.install.in
+++ b/config/cmake/hdf5-config.cmake.install.in
@@ -39,6 +39,7 @@ ENDIF (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
IF (HDF5_BUILD_TOOLS)
SET (HDF5_INCLUDE_DIR_TOOLS "@CMAKE_INSTALL_PREFIX@/include/tools" )
+ SET (HDF5_TOOLS_DIR "@CMAKE_INSTALL_PREFIX@/bin/tools" )
ENDIF (HDF5_BUILD_TOOLS)
#-----------------------------------------------------------------------------
diff --git a/config/cmake/runTest.cmake b/config/cmake/runTest.cmake
index 26acc39..34fac1f 100644
--- a/config/cmake/runTest.cmake
+++ b/config/cmake/runTest.cmake
@@ -14,15 +14,15 @@ ENDIF (NOT TEST_FOLDER)
IF (NOT TEST_OUTPUT)
MESSAGE (FATAL_ERROR "Require TEST_OUTPUT to be defined")
ENDIF (NOT TEST_OUTPUT)
-#IF (NOT TEST_EXPECT)
-# MESSAGE (STATUS "Require TEST_EXPECT to be defined")
-#ENDIF (NOT TEST_EXPECT)
+IF (NOT TEST_EXPECT)
+ MESSAGE (STATUS "Require TEST_EXPECT to be defined")
+ENDIF (NOT TEST_EXPECT)
#IF (NOT TEST_FILTER)
# MESSAGE (STATUS "Require TEST_FILTER to be defined")
#ENDIF (NOT TEST_FILTER)
-IF (NOT TEST_REFERENCE)
+IF (NOT TEST_SKIP_COMPARE AND NOT TEST_REFERENCE)
MESSAGE (FATAL_ERROR "Require TEST_REFERENCE to be defined")
-ENDIF (NOT TEST_REFERENCE)
+ENDIF (NOT TEST_SKIP_COMPARE AND NOT TEST_REFERENCE)
SET (ERROR_APPEND 1)
@@ -77,7 +77,7 @@ IF (TEST_MASK_ERROR)
FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "line [0-9]*" "line (number)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
@@ -91,23 +91,25 @@ IF (TEST_FILTER)
FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
ENDIF (TEST_FILTER)
-IF (WIN32 AND NOT MINGW)
- FILE (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
- FILE (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
-ENDIF (WIN32 AND NOT MINGW)
-
-# now compare the output with the reference
-EXECUTE_PROCESS (
- COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
- RESULT_VARIABLE TEST_RESULT
-)
-
-MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}")
-
-# again, if return value is !=0 scream and shout
-IF (NOT ${TEST_RESULT} STREQUAL 0)
- MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not match ${TEST_REFERENCE}")
-ENDIF (NOT ${TEST_RESULT} STREQUAL 0)
+IF (NOT TEST_SKIP_COMPARE)
+ IF (WIN32 AND NOT MINGW)
+ FILE (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
+ FILE (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
+ ENDIF (WIN32 AND NOT MINGW)
+
+ # now compare the output with the reference
+ EXECUTE_PROCESS (
+ COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
+ RESULT_VARIABLE TEST_RESULT
+ )
+
+ MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}")
+
+ # again, if return value is !=0 scream and shout
+ IF (NOT ${TEST_RESULT} STREQUAL 0)
+ MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not match ${TEST_REFERENCE}")
+ ENDIF (NOT ${TEST_RESULT} STREQUAL 0)
+ENDIF (NOT TEST_SKIP_COMPARE)
# everything went fine...
MESSAGE ("Passed: The output of ${TEST_PROGRAM} matches ${TEST_REFERENCE}")
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 86d9307..2bc8aac 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -24,24 +24,66 @@ SET (examples
FOREACH (example ${examples})
ADD_EXECUTABLE (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c)
- H5_NAMING (${example} ${LIB_TYPE})
+ TARGET_NAMING (${example} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (${example} ${HDF5_LIB_TARGET})
-
- IF (BUILD_TESTING)
- ADD_TEST (NAME ${example} COMMAND $<TARGET_FILE:${example}>)
- ENDIF (BUILD_TESTING)
ENDFOREACH (example ${examples})
-IF (BUILD_TESTING)
- FILE (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/red ${PROJECT_BINARY_DIR}/blue ${PROJECT_BINARY_DIR}/u2w)
-ENDIF (BUILD_TESTING)
-
IF (H5_HAVE_PARALLEL)
ADD_EXECUTABLE (ph5example ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c)
- H5_NAMING (ph5example ${LIB_TYPE})
+ TARGET_NAMING (ph5example ${LIB_TYPE})
TARGET_LINK_LIBRARIES (ph5example ${HDF5_LIB_TARGET})
-
- IF (BUILD_TESTING)
- ADD_TEST (NAME ph5example COMMAND $<TARGET_FILE:ph5example>)
- ENDIF (BUILD_TESTING)
ENDIF (H5_HAVE_PARALLEL)
+
+IF (BUILD_TESTING)
+ FILE (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/red ${PROJECT_BINARY_DIR}/blue ${PROJECT_BINARY_DIR}/u2w)
+
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME EXAMPLES-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ Attributes.h5
+ btrees_file.h5
+ default_file.h5
+ extlink_prefix_source.h5
+ extlink_source.h5
+ extlink_target.h5
+ group.h5
+ hard_link.h5
+ mount1.h5
+ mount2.h5
+ one_index_file.h5
+ only_dspaces_and_attrs_file.h5
+ only_huge_mesgs_file.h5
+ REF_REG.h5
+ refere.h5
+ SDS.h5
+ SDScompound.h5
+ SDSextendible.h5
+ Select.h5
+ separate_indexes_file.h5
+ small_lists_file.h5
+ soft_link.h5
+ unix2win.h5
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (EXAMPLES-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "EXAMPLES-clear-objects")
+
+ FOREACH (example ${examples})
+ ADD_TEST (NAME EXAMPLES-${example} COMMAND $<TARGET_FILE:${example}>)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (EXAMPLES-${example} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "EXAMPLES-${example}")
+ ENDFOREACH (example ${examples})
+
+ IF (H5_HAVE_PARALLEL)
+ ADD_TEST (NAME EXAMPLES-ph5example COMMAND $<TARGET_FILE:ph5example>)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (EXAMPLES-ph5example PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "EXAMPLES-ph5example")
+ ENDIF (H5_HAVE_PARALLEL)
+ENDIF (BUILD_TESTING)
diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt
index b1a9b90..ee459e1 100644
--- a/fortran/examples/CMakeLists.txt
+++ b/fortran/examples/CMakeLists.txt
@@ -32,7 +32,7 @@ SET (examples
FOREACH (example ${examples})
ADD_EXECUTABLE (f90_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
- H5_NAMING (f90_ex_${example} ${LIB_TYPE})
+ TARGET_NAMING (f90_ex_${example} ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (f90_ex_${example} "")
IF (WIN32 AND NOT CYGWIN)
SET_PROPERTY (TARGET f90_ex_${example}
@@ -54,7 +54,7 @@ ENDFOREACH (example ${examples})
IF (H5_HAVE_PARALLEL)
ADD_EXECUTABLE (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90)
- H5_NAMING (f90_ex_ph5example ${LIB_TYPE})
+ TARGET_NAMING (f90_ex_ph5example ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (f90_ex_ph5example "")
IF (WIN32 AND NOT CYGWIN)
SET_PROPERTY (TARGET f90_ex_ph5example
diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt
index df370bf..eab7180 100644
--- a/fortran/test/CMakeLists.txt
+++ b/fortran/test/CMakeLists.txt
@@ -59,7 +59,7 @@ ADD_EXECUTABLE (testhdf5_fortran
tH5VL.f90
tH5Z.f90
)
-H5_NAMING (testhdf5_fortran ${LIB_TYPE})
+TARGET_NAMING (testhdf5_fortran ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (testhdf5_fortran "")
TARGET_LINK_LIBRARIES (testhdf5_fortran
${HDF5_F90_TEST_LIB_TARGET}
@@ -81,7 +81,7 @@ ADD_EXECUTABLE (testhdf5_fortran_1_8
tH5A_1_8.f90
tH5G_1_8.f90
)
-H5_NAMING (testhdf5_fortran_1_8 ${LIB_TYPE})
+TARGET_NAMING (testhdf5_fortran_1_8 ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (testhdf5_fortran_1_8 "")
TARGET_LINK_LIBRARIES (testhdf5_fortran_1_8
${HDF5_F90_TEST_LIB_TARGET}
@@ -97,7 +97,7 @@ ADD_TEST (NAME testhdf5_fortran_1_8 COMMAND $<TARGET_FILE:testhdf5_fortran_1_8>)
#-- Adding test for fflush1
ADD_EXECUTABLE (fflush1 fflush1.f90)
-H5_NAMING (fflush1 ${LIB_TYPE})
+TARGET_NAMING (fflush1 ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (fflush1 "")
TARGET_LINK_LIBRARIES (fflush1
${HDF5_F90_LIB_TARGET}
@@ -113,7 +113,7 @@ ADD_TEST (NAME fflush1 COMMAND $<TARGET_FILE:fflush1>)
#-- Adding test for fflush2
ADD_EXECUTABLE (fflush2 fflush2.f90)
-H5_NAMING (fflush2 ${LIB_TYPE})
+TARGET_NAMING (fflush2 ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (fflush2 "")
TARGET_LINK_LIBRARIES (fflush2
${HDF5_F90_TEST_LIB_TARGET}
@@ -126,3 +126,4 @@ ENDIF (WIN32 AND MSVC)
SET_TARGET_PROPERTIES (fflush2 PROPERTIES LINKER_LANGUAGE Fortran)
ADD_TEST (NAME fflush2 COMMAND $<TARGET_FILE:fflush2>)
+SET_TESTS_PROPERTIES(fflush2 PROPERTIES DEPENDS fflush1)
diff --git a/fortran/test/fortranlib_test.f90 b/fortran/test/fortranlib_test.f90
index d8acc29..08580c8 100644
--- a/fortran/test/fortranlib_test.f90
+++ b/fortran/test/fortranlib_test.f90
@@ -172,10 +172,16 @@ PROGRAM fortranlibtest
CALL external_test(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' External dataset test', total_error)
+!DEC$ if defined(H5_VMS)
+ GOTO 9
+!DEC$ else
ret_total_error = 0
CALL multi_file_test(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' Multi file driver test', total_error)
+!DEC$ endif
+9 CONTINUE
+ ret_total_error = 0
CALL test_chunk_cache (cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' Dataset chunk cache configuration', total_error)
diff --git a/fortran/testpar/CMakeLists.txt b/fortran/testpar/CMakeLists.txt
index c94640a..c71f679 100644
--- a/fortran/testpar/CMakeLists.txt
+++ b/fortran/testpar/CMakeLists.txt
@@ -16,7 +16,7 @@ ADD_EXECUTABLE (parallel_test
hyper.f90
mdset.f90
)
-H5_NAMING (parallel_test ${LIB_TYPE})
+TARGET_NAMING (parallel_test ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (parallel_test "")
TARGET_LINK_LIBRARIES (parallel_test
${HDF5_F90_TEST_LIB_TARGET}
diff --git a/hl/c++/examples/CMakeLists.txt b/hl/c++/examples/CMakeLists.txt
index 9b86027..f396523 100644
--- a/hl/c++/examples/CMakeLists.txt
+++ b/hl/c++/examples/CMakeLists.txt
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_CPP_SRC_DIR}/src)
# Add in the examples for the Packet Table codes
# --------------------------------------------------------------------
ADD_EXECUTABLE (ptExampleFL ${HDF5_HL_CPP_EXAMPLES_SOURCE_DIR}/ptExampleFL.cpp)
-H5_NAMING (ptExampleFL ${LIB_TYPE})
+TARGET_NAMING (ptExampleFL ${LIB_TYPE})
TARGET_LINK_LIBRARIES (
ptExampleFL
${HDF5_HL_CPP_LIB_TARGET}
@@ -20,7 +20,7 @@ TARGET_LINK_LIBRARIES (
)
ADD_EXECUTABLE (ptExampleVL ${HDF5_HL_CPP_EXAMPLES_SOURCE_DIR}/ptExampleVL.cpp)
-H5_NAMING (ptExampleVL ${LIB_TYPE})
+TARGET_NAMING (ptExampleVL ${LIB_TYPE})
TARGET_LINK_LIBRARIES (
ptExampleVL
${HDF5_HL_CPP_LIB_TARGET}
diff --git a/hl/c++/test/CMakeLists.txt b/hl/c++/test/CMakeLists.txt
index c7fb793..7fc3418 100644
--- a/hl/c++/test/CMakeLists.txt
+++ b/hl/c++/test/CMakeLists.txt
@@ -17,7 +17,7 @@ IF (BUILD_TESTING)
INCLUDE_DIRECTORIES (${HDF5_CPP_SRC_DIR}/src)
ADD_EXECUTABLE (hl_ptableTest ${HDF5_HL_CPP_TEST_SOURCE_DIR}/ptableTest.cpp)
- H5_NAMING (hl_ptableTest ${LIB_TYPE})
+ TARGET_NAMING (hl_ptableTest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (
hl_ptableTest
${HDF5_LIB_TARGET}
@@ -26,8 +26,6 @@ IF (BUILD_TESTING)
${HDF5_HL_LIB_TARGET}
${HDF5_HL_CPP_LIB_TARGET}
)
- GET_TARGET_PROPERTY (hl_ptableTestpath hl_ptableTest LOCATION)
- GET_FILENAME_COMPONENT (hl_ptableTestexe ${hl_ptableTestpath} NAME)
ADD_TEST (NAME hl_ptableTest COMMAND $<TARGET_FILE:hl_ptableTest>)
ENDIF (BUILD_TESTING)
diff --git a/hl/examples/CMakeLists.txt b/hl/examples/CMakeLists.txt
index 298ce94..28672b6 100644
--- a/hl/examples/CMakeLists.txt
+++ b/hl/examples/CMakeLists.txt
@@ -43,7 +43,7 @@ SET (examples
FOREACH (example ${examples})
ADD_EXECUTABLE (hl_ex_${example} ${HDF5_HL_EXAMPLES_SOURCE_DIR}/${example}.c)
- H5_NAMING (hl_ex_${example} ${LIB_TYPE})
+ TARGET_NAMING (hl_ex_${example} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (hl_ex_${example} ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
IF (BUILD_TESTING)
diff --git a/hl/fortran/examples/CMakeLists.txt b/hl/fortran/examples/CMakeLists.txt
index 2f56297..50fa1ea 100644
--- a/hl/fortran/examples/CMakeLists.txt
+++ b/hl/fortran/examples/CMakeLists.txt
@@ -16,7 +16,7 @@ SET (examples
FOREACH (example ${examples})
ADD_EXECUTABLE (hl_f90_ex_${example} ${HDF5_HL_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
- H5_NAMING (hl_f90_ex_${example} ${LIB_TYPE})
+ TARGET_NAMING (hl_f90_ex_${example} ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (hl_f90_ex_${example} "")
TARGET_LINK_LIBRARIES (hl_f90_ex_${example}
${HDF5_HL_F90_LIB_TARGET}
diff --git a/hl/fortran/src/H5LTf90proto.h b/hl/fortran/src/H5LTf90proto.h
index c0de5ea..470f174 100755
--- a/hl/fortran/src/H5LTf90proto.h
+++ b/hl/fortran/src/H5LTf90proto.h
@@ -34,40 +34,88 @@ H5_FCDLL void HD5packFstring (char *src, char *dest, size_t len);
# define nh5ltmake_dataset_int1_c H5_FC_FUNC_(h5ltmake_dataset_int1_c, H5LTMAKE_DATASET_INT1_C)
# define nh5ltmake_dataset_int2_c H5_FC_FUNC_(h5ltmake_dataset_int2_c, H5LTMAKE_DATASET_INT2_C)
# define nh5ltmake_dataset_int3_c H5_FC_FUNC_(h5ltmake_dataset_int3_c, H5LTMAKE_DATASET_INT3_C)
+# define nh5ltmake_dataset_int4_c H5_FC_FUNC_(h5ltmake_dataset_int4_c, H5LTMAKE_DATASET_INT4_C)
+# define nh5ltmake_dataset_int5_c H5_FC_FUNC_(h5ltmake_dataset_int5_c, H5LTMAKE_DATASET_INT5_C)
+# define nh5ltmake_dataset_int6_c H5_FC_FUNC_(h5ltmake_dataset_int6_c, H5LTMAKE_DATASET_INT6_C)
+# define nh5ltmake_dataset_int7_c H5_FC_FUNC_(h5ltmake_dataset_int7_c, H5LTMAKE_DATASET_INT7_C)
# define nh5ltmake_dataset_fl1_c H5_FC_FUNC_(h5ltmake_dataset_fl1_c, H5LTMAKE_DATASET_FL1_C)
# define nh5ltmake_dataset_fl2_c H5_FC_FUNC_(h5ltmake_dataset_fl2_c, H5LTMAKE_DATASET_FL2_C)
# define nh5ltmake_dataset_fl3_c H5_FC_FUNC_(h5ltmake_dataset_fl3_c, H5LTMAKE_DATASET_FL3_C)
+# define nh5ltmake_dataset_fl4_c H5_FC_FUNC_(h5ltmake_dataset_fl4_c, H5LTMAKE_DATASET_FL4_C)
+# define nh5ltmake_dataset_fl5_c H5_FC_FUNC_(h5ltmake_dataset_fl5_c, H5LTMAKE_DATASET_FL5_C)
+# define nh5ltmake_dataset_fl6_c H5_FC_FUNC_(h5ltmake_dataset_fl6_c, H5LTMAKE_DATASET_FL6_C)
+# define nh5ltmake_dataset_fl7_c H5_FC_FUNC_(h5ltmake_dataset_fl7_c, H5LTMAKE_DATASET_FL7_C)
# define nh5ltmake_dataset_dl1_c H5_FC_FUNC_(h5ltmake_dataset_dl1_c, H5LTMAKE_DATASET_DL1_C)
# define nh5ltmake_dataset_dl2_c H5_FC_FUNC_(h5ltmake_dataset_dl2_c, H5LTMAKE_DATASET_DL2_C)
# define nh5ltmake_dataset_dl3_c H5_FC_FUNC_(h5ltmake_dataset_dl3_c, H5LTMAKE_DATASET_DL3_C)
+# define nh5ltmake_dataset_dl4_c H5_FC_FUNC_(h5ltmake_dataset_dl4_c, H5LTMAKE_DATASET_DL4_C)
+# define nh5ltmake_dataset_dl5_c H5_FC_FUNC_(h5ltmake_dataset_dl5_c, H5LTMAKE_DATASET_DL5_C)
+# define nh5ltmake_dataset_dl6_c H5_FC_FUNC_(h5ltmake_dataset_dl6_c, H5LTMAKE_DATASET_DL6_C)
+# define nh5ltmake_dataset_dl7_c H5_FC_FUNC_(h5ltmake_dataset_dl7_c, H5LTMAKE_DATASET_DL7_C)
# define nh5ltmake_dataset_nint1_c H5_FC_FUNC_(h5ltmake_dataset_nint1_c, H5LTMAKE_DATASET_NINT1_C)
# define nh5ltmake_dataset_nint2_c H5_FC_FUNC_(h5ltmake_dataset_nint2_c, H5LTMAKE_DATASET_NINT2_C)
# define nh5ltmake_dataset_nint3_c H5_FC_FUNC_(h5ltmake_dataset_nint3_c, H5LTMAKE_DATASET_NINT3_C)
+# define nh5ltmake_dataset_nint4_c H5_FC_FUNC_(h5ltmake_dataset_nint4_c, H5LTMAKE_DATASET_NINT4_C)
+# define nh5ltmake_dataset_nint5_c H5_FC_FUNC_(h5ltmake_dataset_nint5_c, H5LTMAKE_DATASET_NINT5_C)
+# define nh5ltmake_dataset_nint6_c H5_FC_FUNC_(h5ltmake_dataset_nint6_c, H5LTMAKE_DATASET_NINT6_C)
+# define nh5ltmake_dataset_nint7_c H5_FC_FUNC_(h5ltmake_dataset_nint7_c, H5LTMAKE_DATASET_NINT7_C)
# define nh5ltmake_dataset_nfl1_c H5_FC_FUNC_(h5ltmake_dataset_nfl1_c, H5LTMAKE_DATASET_NFL1_C)
# define nh5ltmake_dataset_nfl2_c H5_FC_FUNC_(h5ltmake_dataset_nfl2_c, H5LTMAKE_DATASET_NFL2_C)
# define nh5ltmake_dataset_nfl3_c H5_FC_FUNC_(h5ltmake_dataset_nfl3_c, H5LTMAKE_DATASET_NFL3_C)
+# define nh5ltmake_dataset_nfl4_c H5_FC_FUNC_(h5ltmake_dataset_nfl4_c, H5LTMAKE_DATASET_NFL4_C)
+# define nh5ltmake_dataset_nfl5_c H5_FC_FUNC_(h5ltmake_dataset_nfl5_c, H5LTMAKE_DATASET_NFL5_C)
+# define nh5ltmake_dataset_nfl6_c H5_FC_FUNC_(h5ltmake_dataset_nfl6_c, H5LTMAKE_DATASET_NFL6_C)
+# define nh5ltmake_dataset_nfl7_c H5_FC_FUNC_(h5ltmake_dataset_nfl7_c, H5LTMAKE_DATASET_NFL7_C)
# define nh5ltmake_dataset_ndl1_c H5_FC_FUNC_(h5ltmake_dataset_ndl1_c, H5LTMAKE_DATASET_NDL1_C)
# define nh5ltmake_dataset_ndl2_c H5_FC_FUNC_(h5ltmake_dataset_ndl2_c, H5LTMAKE_DATASET_NDL2_C)
# define nh5ltmake_dataset_ndl3_c H5_FC_FUNC_(h5ltmake_dataset_ndl3_c, H5LTMAKE_DATASET_NDL3_C)
+# define nh5ltmake_dataset_ndl4_c H5_FC_FUNC_(h5ltmake_dataset_ndl4_c, H5LTMAKE_DATASET_NDL4_C)
+# define nh5ltmake_dataset_ndl5_c H5_FC_FUNC_(h5ltmake_dataset_ndl5_c, H5LTMAKE_DATASET_NDL5_C)
+# define nh5ltmake_dataset_ndl6_c H5_FC_FUNC_(h5ltmake_dataset_ndl6_c, H5LTMAKE_DATASET_NDL6_C)
+# define nh5ltmake_dataset_ndl7_c H5_FC_FUNC_(h5ltmake_dataset_ndl7_c, H5LTMAKE_DATASET_NDL7_C)
# define nh5ltread_dataset_c H5_FC_FUNC_(h5ltread_dataset_c, H5LTREAD_DATASET_C)
# define nh5ltread_dataset_int1_c H5_FC_FUNC_(h5ltread_dataset_int1_c, H5LTREAD_DATASET_INT1_C)
# define nh5ltread_dataset_int2_c H5_FC_FUNC_(h5ltread_dataset_int2_c, H5LTREAD_DATASET_INT2_C)
# define nh5ltread_dataset_int3_c H5_FC_FUNC_(h5ltread_dataset_int3_c, H5LTREAD_DATASET_INT3_C)
+# define nh5ltread_dataset_int4_c H5_FC_FUNC_(h5ltread_dataset_int4_c, H5LTREAD_DATASET_INT4_C)
+# define nh5ltread_dataset_int5_c H5_FC_FUNC_(h5ltread_dataset_int5_c, H5LTREAD_DATASET_INT5_C)
+# define nh5ltread_dataset_int6_c H5_FC_FUNC_(h5ltread_dataset_int6_c, H5LTREAD_DATASET_INT6_C)
+# define nh5ltread_dataset_int7_c H5_FC_FUNC_(h5ltread_dataset_int7_c, H5LTREAD_DATASET_INT7_C)
# define nh5ltread_dataset_fl1_c H5_FC_FUNC_(h5ltread_dataset_fl1_c, H5LTREAD_DATASET_FL1_C)
# define nh5ltread_dataset_fl2_c H5_FC_FUNC_(h5ltread_dataset_fl2_c, H5LTREAD_DATASET_FL2_C)
# define nh5ltread_dataset_fl3_c H5_FC_FUNC_(h5ltread_dataset_fl3_c, H5LTREAD_DATASET_FL3_C)
+# define nh5ltread_dataset_fl4_c H5_FC_FUNC_(h5ltread_dataset_fl4_c, H5LTREAD_DATASET_FL4_C)
+# define nh5ltread_dataset_fl5_c H5_FC_FUNC_(h5ltread_dataset_fl5_c, H5LTREAD_DATASET_FL5_C)
+# define nh5ltread_dataset_fl6_c H5_FC_FUNC_(h5ltread_dataset_fl6_c, H5LTREAD_DATASET_FL6_C)
+# define nh5ltread_dataset_fl7_c H5_FC_FUNC_(h5ltread_dataset_fl7_c, H5LTREAD_DATASET_FL7_C)
# define nh5ltread_dataset_dl1_c H5_FC_FUNC_(h5ltread_dataset_dl1_c, H5LTREAD_DATASET_DL1_C)
# define nh5ltread_dataset_dl2_c H5_FC_FUNC_(h5ltread_dataset_dl2_c, H5LTREAD_DATASET_DL2_C)
# define nh5ltread_dataset_dl3_c H5_FC_FUNC_(h5ltread_dataset_dl3_c, H5LTREAD_DATASET_DL3_C)
+# define nh5ltread_dataset_dl4_c H5_FC_FUNC_(h5ltread_dataset_dl4_c, H5LTREAD_DATASET_DL4_C)
+# define nh5ltread_dataset_dl5_c H5_FC_FUNC_(h5ltread_dataset_dl5_c, H5LTREAD_DATASET_DL5_C)
+# define nh5ltread_dataset_dl6_c H5_FC_FUNC_(h5ltread_dataset_dl6_c, H5LTREAD_DATASET_DL6_C)
+# define nh5ltread_dataset_dl7_c H5_FC_FUNC_(h5ltread_dataset_dl7_c, H5LTREAD_DATASET_DL7_C)
# define nh5ltread_dataset_nint1_c H5_FC_FUNC_(h5ltread_dataset_nint1_c, H5LTREAD_DATASET_NINT1_C)
# define nh5ltread_dataset_nint2_c H5_FC_FUNC_(h5ltread_dataset_nint2_c, H5LTREAD_DATASET_NINT2_C)
# define nh5ltread_dataset_nint3_c H5_FC_FUNC_(h5ltread_dataset_nint3_c, H5LTREAD_DATASET_NINT3_C)
+# define nh5ltread_dataset_nint4_c H5_FC_FUNC_(h5ltread_dataset_nint4_c, H5LTREAD_DATASET_NINT4_C)
+# define nh5ltread_dataset_nint5_c H5_FC_FUNC_(h5ltread_dataset_nint5_c, H5LTREAD_DATASET_NINT5_C)
+# define nh5ltread_dataset_nint6_c H5_FC_FUNC_(h5ltread_dataset_nint6_c, H5LTREAD_DATASET_NINT6_C)
+# define nh5ltread_dataset_nint7_c H5_FC_FUNC_(h5ltread_dataset_nint7_c, H5LTREAD_DATASET_NINT7_C)
# define nh5ltread_dataset_nfl1_c H5_FC_FUNC_(h5ltread_dataset_nfl1_c, H5LTREAD_DATASET_NFL1_C)
# define nh5ltread_dataset_nfl2_c H5_FC_FUNC_(h5ltread_dataset_nfl2_c, H5LTREAD_DATASET_NFL2_C)
# define nh5ltread_dataset_nfl3_c H5_FC_FUNC_(h5ltread_dataset_nfl3_c, H5LTREAD_DATASET_NFL3_C)
+# define nh5ltread_dataset_nfl4_c H5_FC_FUNC_(h5ltread_dataset_nfl4_c, H5LTREAD_DATASET_NFL4_C)
+# define nh5ltread_dataset_nfl5_c H5_FC_FUNC_(h5ltread_dataset_nfl5_c, H5LTREAD_DATASET_NFL5_C)
+# define nh5ltread_dataset_nfl6_c H5_FC_FUNC_(h5ltread_dataset_nfl6_c, H5LTREAD_DATASET_NFL6_C)
+# define nh5ltread_dataset_nfl7_c H5_FC_FUNC_(h5ltread_dataset_nfl7_c, H5LTREAD_DATASET_NFL7_C)
# define nh5ltread_dataset_ndl1_c H5_FC_FUNC_(h5ltread_dataset_ndl1_c, H5LTREAD_DATASET_NDL1_C)
# define nh5ltread_dataset_ndl2_c H5_FC_FUNC_(h5ltread_dataset_ndl2_c, H5LTREAD_DATASET_NDL2_C)
# define nh5ltread_dataset_ndl3_c H5_FC_FUNC_(h5ltread_dataset_ndl3_c, H5LTREAD_DATASET_NDL3_C)
+# define nh5ltread_dataset_ndl4_c H5_FC_FUNC_(h5ltread_dataset_ndl4_c, H5LTREAD_DATASET_NDL4_C)
+# define nh5ltread_dataset_ndl5_c H5_FC_FUNC_(h5ltread_dataset_ndl5_c, H5LTREAD_DATASET_NDL5_C)
+# define nh5ltread_dataset_ndl6_c H5_FC_FUNC_(h5ltread_dataset_ndl6_c, H5LTREAD_DATASET_NDL6_C)
+# define nh5ltread_dataset_ndl7_c H5_FC_FUNC_(h5ltread_dataset_ndl7_c, H5LTREAD_DATASET_NDL7_C)
# define nh5ltmake_dataset_string_c H5_FC_FUNC_(h5ltmake_dataset_string_c, H5LTMAKE_DATASET_STRING_C)
# define nh5ltread_dataset_string_c H5_FC_FUNC_(h5ltread_dataset_string_c, H5LTREAD_DATASET_STRING_C)
@@ -181,6 +229,47 @@ nh5ltmake_dataset_int3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltmake_dataset_int4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_int5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_int6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_int7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltmake_dataset_fl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -211,6 +300,47 @@ nh5ltmake_dataset_fl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltmake_dataset_fl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_fl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_fl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_fl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltmake_dataset_dl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -241,6 +371,76 @@ nh5ltmake_dataset_dl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltmake_dataset_dl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_dl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_dl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_dl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nint2_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -271,6 +471,46 @@ nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltmake_dataset_nint4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nint5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nint6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nint7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -301,6 +541,46 @@ nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -331,6 +611,46 @@ nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltread_dataset_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -368,6 +688,42 @@ nh5ltread_dataset_int3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltread_dataset_int4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_int5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_int6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_int7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltread_dataset_fl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -395,6 +751,43 @@ nh5ltread_dataset_fl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltread_dataset_fl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_fl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_fl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_fl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltread_dataset_dl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -422,6 +815,42 @@ nh5ltread_dataset_dl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltread_dataset_dl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_dl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_dl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_dl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltread_dataset_nint1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -449,6 +878,42 @@ nh5ltread_dataset_nint3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltread_dataset_nint4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_nint5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_nint6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_nint7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltread_dataset_nfl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -476,6 +941,42 @@ nh5ltread_dataset_nfl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltread_dataset_nfl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_nfl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_nfl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_nfl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltread_dataset_ndl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -503,6 +1004,42 @@ nh5ltread_dataset_ndl3_c (hid_t_f *loc_id,
HDF5_HL_F90CSTUBDLL
int_f
+nh5ltread_dataset_ndl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_ndl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_ndl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
+nh5ltread_dataset_ndl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims);
+
+HDF5_HL_F90CSTUBDLL
+int_f
nh5ltset_attribute_int_c(hid_t_f *loc_id,
int_f *namelen,
_fcd dsetname,
@@ -759,7 +1296,8 @@ nh5tbmake_table_c(int_f *namelen1,
hid_t_f *field_types,
hsize_t_f *chunk_size,
int_f *compress,
- int_f *len, /* field_names lenghts */
+ int_f *char_len_field_names, /* field_names lenghts */
+ int_f *max_char_size_field_names, /* char len of fields */
_fcd buf); /* field_names */
HDF5_HL_F90CSTUBDLL
@@ -1069,10 +1607,10 @@ nh5tbget_field_info_c(hid_t_f *loc_id,
size_t_f *field_sizes,
size_t_f *field_offsets,
size_t_f *type_size,
- int_f *namelen2, /* field_names lenghts */
- _fcd field_names) ; /* field_names */
-
-
+ int_f *namelen2,
+ int_f *lenmax,
+ _fcd field_names,
+ int_f *maxlen_out);
#endif /* _H5LTf90proto_H */
diff --git a/hl/fortran/src/H5LTfc.c b/hl/fortran/src/H5LTfc.c
index 0985aac..484acf1 100755
--- a/hl/fortran/src/H5LTfc.c
+++ b/hl/fortran/src/H5LTfc.c
@@ -132,6 +132,50 @@ nh5ltmake_dataset_int3_c (hid_t_f *loc_id,
return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
}
int_f
+nh5ltmake_dataset_int4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_int5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_int6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_int7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
nh5ltmake_dataset_fl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -165,6 +209,50 @@ nh5ltmake_dataset_fl3_c (hid_t_f *loc_id,
return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
}
int_f
+nh5ltmake_dataset_fl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_fl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_fl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_fl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
nh5ltmake_dataset_dl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -198,6 +286,50 @@ nh5ltmake_dataset_dl3_c (hid_t_f *loc_id,
return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
}
int_f
+nh5ltmake_dataset_dl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_dl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_dl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_dl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -231,6 +363,50 @@ nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
}
int_f
+nh5ltmake_dataset_nint4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_nint5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_nint6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_nint7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -264,6 +440,50 @@ nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id,
return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
}
int_f
+nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -296,6 +516,50 @@ nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id,
{
return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
}
+int_f
+nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
+int_f
+nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ return nh5ltmake_dataset_c (loc_id, namelen, name, rank, dims, type_id, buf);
+}
/*-------------------------------------------------------------------------
* Function: H5LTread_dataset_c
*
@@ -389,6 +653,46 @@ nh5ltread_dataset_int3_c (hid_t_f *loc_id,
return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
}
int_f
+nh5ltread_dataset_int4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_int5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_int6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_int7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
nh5ltread_dataset_fl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -419,6 +723,46 @@ nh5ltread_dataset_fl3_c (hid_t_f *loc_id,
return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
}
int_f
+nh5ltread_dataset_fl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_fl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_fl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_fl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
nh5ltread_dataset_dl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -449,6 +793,46 @@ nh5ltread_dataset_dl3_c (hid_t_f *loc_id,
return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
}
int_f
+nh5ltread_dataset_dl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_dl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_dl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_dl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
nh5ltread_dataset_nint1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -479,6 +863,46 @@ nh5ltread_dataset_nint3_c (hid_t_f *loc_id,
return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
}
int_f
+nh5ltread_dataset_nint4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_nint5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_nint6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_nint7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
nh5ltread_dataset_nfl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -509,6 +933,46 @@ nh5ltread_dataset_nfl3_c (hid_t_f *loc_id,
return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
}
int_f
+nh5ltread_dataset_nfl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_nfl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_nfl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_nfl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
nh5ltread_dataset_ndl1_c (hid_t_f *loc_id,
int_f *namelen,
_fcd name,
@@ -538,6 +1002,46 @@ nh5ltread_dataset_ndl3_c (hid_t_f *loc_id,
{
return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
}
+int_f
+nh5ltread_dataset_ndl4_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_ndl5_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_ndl6_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
+int_f
+nh5ltread_dataset_ndl7_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ return nh5ltread_dataset_c(loc_id, namelen, name, type_id, buf, dims);
+}
/*-------------------------------------------------------------------------
* Function: H5LTmake_dataset_string_c
*
diff --git a/hl/fortran/src/H5LTff.f90 b/hl/fortran/src/H5LTff.f90
index 0c07449..cbc9b96 100755
--- a/hl/fortran/src/H5LTff.f90
+++ b/hl/fortran/src/H5LTff.f90
@@ -17,3370 +17,6300 @@
! This file contains FORTRAN90 interfaces for H5LT functions
!
-module h5lt
-use h5fortran_types
-use hdf5
-
-interface h5ltmake_dataset_f
- module procedure h5ltmake_dataset_f_int1
- module procedure h5ltmake_dataset_f_int2
- module procedure h5ltmake_dataset_f_int3
- module procedure h5ltmake_dataset_f_float1
- module procedure h5ltmake_dataset_f_float2
- module procedure h5ltmake_dataset_f_float3
- module procedure h5ltmake_dataset_f_double1
- module procedure h5ltmake_dataset_f_double2
- module procedure h5ltmake_dataset_f_double3
-end interface
-
-interface h5ltread_dataset_f
- module procedure h5ltread_dataset_f_int1
- module procedure h5ltread_dataset_f_int2
- module procedure h5ltread_dataset_f_int3
- module procedure h5ltread_dataset_f_float1
- module procedure h5ltread_dataset_f_float2
- module procedure h5ltread_dataset_f_float3
- module procedure h5ltread_dataset_f_double1
- module procedure h5ltread_dataset_f_double2
- module procedure h5ltread_dataset_f_double3
-end interface
-
-interface h5ltmake_dataset_int_f
- module procedure h5ltmake_dataset_int_f_1
- module procedure h5ltmake_dataset_int_f_2
- module procedure h5ltmake_dataset_int_f_3
-end interface
-
-interface h5ltmake_dataset_float_f
- module procedure h5ltmake_dataset_float_f_1
- module procedure h5ltmake_dataset_float_f_2
- module procedure h5ltmake_dataset_float_f_3
-end interface
-
-interface h5ltmake_dataset_double_f
- module procedure h5ltmake_dataset_double_f_1
- module procedure h5ltmake_dataset_double_f_2
- module procedure h5ltmake_dataset_double_f_3
-end interface
-
-interface h5ltread_dataset_int_f
- module procedure h5ltread_dataset_int_f_1
- module procedure h5ltread_dataset_int_f_2
- module procedure h5ltread_dataset_int_f_3
-end interface
-
-interface h5ltread_dataset_float_f
- module procedure h5ltread_dataset_float_f_1
- module procedure h5ltread_dataset_float_f_2
- module procedure h5ltread_dataset_float_f_3
-end interface
-
-interface h5ltread_dataset_double_f
- module procedure h5ltread_dataset_double_f_1
- module procedure h5ltread_dataset_double_f_2
- module procedure h5ltread_dataset_double_f_3
-end interface
-
-contains
-!-------------------------------------------------------------------------
-! Make/Read dataset functions
-!-------------------------------------------------------------------------
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_int1
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_int1(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_int1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT1_C'::h5ltmake_dataset_int1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltmake_dataset_int1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_int1
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_int2
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_int2(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_int2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT2_C'::h5ltmake_dataset_int2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltmake_dataset_int2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_int2
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_int3
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_int3(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_int3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT3_C'::h5ltmake_dataset_int3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltmake_dataset_int3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_int3
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_float1
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_float1(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_float1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL1_C'::h5ltmake_dataset_fl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltmake_dataset_fl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_float1
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_float2
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_float2(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_float2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL2_C'::h5ltmake_dataset_fl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltmake_dataset_fl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_float2
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_float3
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_float3(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_float3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL3_C'::h5ltmake_dataset_fl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltmake_dataset_fl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_float3
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_double1
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_double1(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_double1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL1_C'::h5ltmake_dataset_dl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltmake_dataset_dl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_double1
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_double2
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_double2(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_double2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL2_C'::h5ltmake_dataset_dl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltmake_dataset_dl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_double2
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_f_double3
-!
-! Purpose: Creates and writes a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 1, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_f_double3(loc_id,&
- dset_name,&
- rank,&
- dims,&
- type_id,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_f_double3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL3_C'::h5ltmake_dataset_dl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltmake_dataset_dl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
-
-end subroutine h5ltmake_dataset_f_double3
-
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_int1
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_int1(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_int1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(inout), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT1_C'::h5ltread_dataset_int1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(HID_T), intent(IN) :: loc_id ! file or group identifier
- integer(HID_T), intent(IN) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(LEN=*), intent(IN) :: dset_name ! name of the dataset
- integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
- integer, intent(IN), dimension(*) :: buf ! data buffer
- end function h5ltread_dataset_int1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_int1
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_int2
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_int2(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_int2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT2_C'::h5ltread_dataset_int2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltread_dataset_int2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_int2
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_int3
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_int3(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_int3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT3_C'::h5ltread_dataset_int3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltread_dataset_int3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_int3
-
-
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_float1
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_float1(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_float1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(inout), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL1_C'::h5ltread_dataset_fl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltread_dataset_fl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_float1
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_float2
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_float2(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_float2
-!DEC$endif
-!
-
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL2_C'::h5ltread_dataset_fl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltread_dataset_fl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_float2
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_float3
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_float3(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_float3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL3_C'::h5ltread_dataset_fl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltread_dataset_fl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_float3
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_double1
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_double1(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport ::h5ltread_dataset_f_double1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(inout), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL1_C'::h5ltread_dataset_dl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltread_dataset_dl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_double1
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_double2
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_double2(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_double2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL2_C'::h5ltread_dataset_dl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltread_dataset_dl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_double2
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_f_double3
-!
-! Purpose: Read a dataset of a type TYPE_ID
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_f_double3(loc_id,&
- dset_name,&
- type_id,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_f_double3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL3_C'::h5ltread_dataset_dl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltread_dataset_dl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
-
-end subroutine h5ltread_dataset_f_double3
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_int_f_1
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_int_f_1 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_int_f_1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT1_C'::h5ltmake_dataset_nint1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltmake_dataset_nint1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,h5t_native_integer,buf)
-
-end subroutine h5ltmake_dataset_int_f_1
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_int_f_2
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_int_f_2 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_int_f_2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
-
- interface
- integer function h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT2_C'::h5ltmake_dataset_nint2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltmake_dataset_nint2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
-
-end subroutine h5ltmake_dataset_int_f_2
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_int_f_3
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_int_f_3 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_int_f_3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
-
- interface
- integer function h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT3_C'::h5ltmake_dataset_nint3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltmake_dataset_nint3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
-
-end subroutine h5ltmake_dataset_int_f_3
-
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_float_f_1
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_float_f_1 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_float_f_1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL1_C'::h5ltmake_dataset_nfl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltmake_dataset_nfl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
-
-end subroutine h5ltmake_dataset_float_f_1
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_float_f_2
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_float_f_2 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_float_f_2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL2_C'::h5ltmake_dataset_nfl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltmake_dataset_nfl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
-
-end subroutine h5ltmake_dataset_float_f_2
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_float_f_3
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_float_f_3 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_float_f_3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL3_C'::h5ltmake_dataset_nfl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltmake_dataset_nfl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
-
-end subroutine h5ltmake_dataset_float_f_3
-
-
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_double_f_1
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_double_f_1 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_double_f_1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(in), &
- dimension(dims(1)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL1_C'::h5ltmake_dataset_ndl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1)) :: buf ! data buffer
- end function h5ltmake_dataset_ndl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
-
-end subroutine h5ltmake_dataset_double_f_1
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_double_f_2
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_double_f_2 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_double_f_2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL2_C'::h5ltmake_dataset_ndl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltmake_dataset_ndl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
-
-end subroutine h5ltmake_dataset_double_f_2
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_double_f_3
-!
-! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_double_f_3 (loc_id,&
- dset_name,&
- rank,&
- dims,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_double_f_3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL3_C'::h5ltmake_dataset_ndl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: rank ! rank
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(in), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltmake_dataset_ndl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
-
-end subroutine h5ltmake_dataset_double_f_3
-
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_int_f_1
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_int_f_1(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_int_f_1
-!DEC$endif
-!
-
- integer(HID_T), intent(IN) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(inout), &
- dimension(dims(1)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT1_C'::h5ltread_dataset_nint1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(inout), &
- dimension(dims(1)) :: buf ! data buffer
- end function h5ltread_dataset_nint1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
-
-end subroutine h5ltread_dataset_int_f_1
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_int_f_2
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_int_f_2(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_int_f_2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT2_C'::h5ltread_dataset_nint2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltread_dataset_nint2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
-
-end subroutine h5ltread_dataset_int_f_2
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_int_f_3
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_int_f_3(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_int_f_3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT3_C'::h5ltread_dataset_nint3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltread_dataset_nint3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
-
-end subroutine h5ltread_dataset_int_f_3
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_float_f_1
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_float_f_1(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_float_f_1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(inout), &
- dimension(dims(1)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL1_C'::h5ltread_dataset_nfl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(inout), &
- dimension(dims(1)) :: buf ! data buffer
- end function h5ltread_dataset_nfl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
-
-end subroutine h5ltread_dataset_float_f_1
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_float_f_2
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_float_f_2(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_float_f_2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL2_C'::h5ltread_dataset_nfl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltread_dataset_nfl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
-
-end subroutine h5ltread_dataset_float_f_2
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_float_f_3
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_float_f_3(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_float_f_3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- real, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL3_C'::h5ltread_dataset_nfl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- real, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltread_dataset_nfl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
-
-end subroutine h5ltread_dataset_float_f_3
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_double_f_1
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_double_f_1(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_double_f_1
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(inout), &
- dimension(dims(1)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL1_C'::h5ltread_dataset_ndl1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(inout), &
- dimension(dims(1)) :: buf ! data buffer
- end function h5ltread_dataset_ndl1_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
-
-end subroutine h5ltread_dataset_double_f_1
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_double_f_2
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_double_f_2(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_double_f_2
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL2_C'::h5ltread_dataset_ndl2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(inout), &
- dimension(dims(1),dims(2)) :: buf ! data buffer
- end function h5ltread_dataset_ndl2_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
-
-end subroutine h5ltread_dataset_double_f_2
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_double_f_3
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_double_f_3(loc_id,&
- dset_name,&
- buf,&
- dims,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_double_f_3
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- integer :: errcode ! error code
- integer :: namelen ! name length
- double precision, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
-
- interface
- integer function h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL3_C'::h5ltread_dataset_ndl3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer(hid_t), intent(in) :: type_id ! datatype identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), dimension(*), intent(in) :: dims ! size of the bufffer buf
- double precision, intent(inout), &
- dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
- end function h5ltread_dataset_ndl3_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
-
-end subroutine h5ltread_dataset_double_f_3
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltmake_dataset_string_f
-!
-! Purpose: Creates and writes a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltmake_dataset_string_f(loc_id,&
- dset_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltmake_dataset_string_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: buflen ! buffer length
-
- interface
- integer function h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buflen,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_STRING_C'::h5ltmake_dataset_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: buflen ! lenght of data buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: buf ! data buffer
- end function h5ltmake_dataset_string_c
- end interface
-
- namelen = len(dset_name)
- buflen = len(buf)
- errcode = h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buflen,buf)
-
-end subroutine h5ltmake_dataset_string_f
-
-!-------------------------------------------------------------------------
-! Function: h5ltread_dataset_string_f
-!
-! Purpose: Read a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 22, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltread_dataset_string_f(loc_id,&
- dset_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltread_dataset_string_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(inout) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_STRING_C'::h5ltread_dataset_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(inout) :: buf ! data buffer
- end function h5ltread_dataset_string_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
-
-end subroutine h5ltread_dataset_string_f
-
-
-
-
-!-------------------------------------------------------------------------
-! Make/Read attribute functions
-!-------------------------------------------------------------------------
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltset_attribute_int_f
-!
-! Purpose: Create and write an attribute
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltset_attribute_int_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- size,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltset_attribute_int_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(size_t), intent(in) :: size ! size of attribute array
- integer :: errcode ! error code
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_INT_C'::h5ltset_attribute_int_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(size_t), intent(in) :: size ! size of attribute array
- integer, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltset_attribute_int_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
-
-end subroutine h5ltset_attribute_int_f
-
-!-------------------------------------------------------------------------
-! Function: h5ltset_attribute_float_f
-!
-! Purpose: Create and write an attribute
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltset_attribute_float_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- size,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltset_attribute_float_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(size_t), intent(in) :: size ! size of attribute array
- integer :: errcode ! error code
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_FLOAT_C'::h5ltset_attribute_float_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(size_t), intent(in) :: size ! size of attribute array
- real, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltset_attribute_float_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
-
-end subroutine h5ltset_attribute_float_f
-
-!-------------------------------------------------------------------------
-! Function: h5ltset_attribute_double_f
-!
-! Purpose: Create and write an attribute
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltset_attribute_double_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- size,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltset_attribute_double_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(size_t), intent(in) :: size ! size of attribute array
- integer :: errcode ! error code
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_DOUBLE_C'::h5ltset_attribute_double_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(size_t), intent(in) :: size ! size of attribute array
- double precision, intent(in), dimension(*) :: buf ! data buffer
- end function h5ltset_attribute_double_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
-
-end subroutine h5ltset_attribute_double_f
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltset_attribute_string_f
-!
-! Purpose: Create and write an attribute
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltset_attribute_string_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltset_attribute_string_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer :: errcode ! error code
- character(len=*), intent(in) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
- integer :: buflen ! data buffer length
-
- interface
- integer function h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_STRING_C'::h5ltset_attribute_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- integer :: buflen ! data buffer length
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- character(len=*), intent(in) :: buf ! data buffer
- end function h5ltset_attribute_string_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- buflen = len(buf)
- errcode = h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf)
-
-end subroutine h5ltset_attribute_string_f
-
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_attribute_int_f
-!
-! Purpose: Reads an attribute named ATTR_NAME
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_attribute_int_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_attribute_int_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer :: errcode ! error code
- integer, intent(inout), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_INT_C'::h5ltget_attribute_int_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer, intent(inout), dimension(*) :: buf ! data buffer
- end function h5ltget_attribute_int_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
-
-end subroutine h5ltget_attribute_int_f
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_attribute_float_f
-!
-! Purpose: Reads an attribute named ATTR_NAME
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_attribute_float_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_attribute_float_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer :: errcode ! error code
- real, intent(inout), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_FLOAT_C'::h5ltget_attribute_float_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- real, intent(inout), dimension(*) :: buf ! data buffer
- end function h5ltget_attribute_float_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
-
-end subroutine h5ltget_attribute_float_f
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_attribute_double_f
-!
-! Purpose: Reads an attribute named ATTR_NAME
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_attribute_double_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_attribute_double_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer :: errcode ! error code
- double precision,intent(inout),dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_DOUBLE_C'::h5ltget_attribute_double_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- double precision, intent(inout), dimension(*) :: buf ! data buffer
- end function h5ltget_attribute_double_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
-
-end subroutine h5ltget_attribute_double_f
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_attribute_string_f
-!
-! Purpose: Reads an attribute named ATTR_NAME
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_attribute_string_f(loc_id,&
- dset_name,&
- attr_name,&
- buf,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_attribute_string_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer :: errcode ! error code
- character(len=*), intent(inout) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_STRING_C'::h5ltget_attribute_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- character(len=*), intent(inout) :: buf ! data buffer
- end function h5ltget_attribute_string_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
-
-end subroutine h5ltget_attribute_string_f
-
-!-------------------------------------------------------------------------
-! Query dataset functions
-!-------------------------------------------------------------------------
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_dataset_ndims_f
-!
-! Purpose: Gets the dimensionality of a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 30, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_dataset_ndims_f(loc_id,&
- dset_name,&
- rank,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_dataset_ndims_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(inout) :: rank ! rank
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_DATASET_NDIMS_C'::h5ltget_dataset_ndims_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(inout) :: rank ! rank
- end function h5ltget_dataset_ndims_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
-
-end subroutine h5ltget_dataset_ndims_f
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltfind_dataset_f
-!
-! Purpose: Inquires if a dataset named dset_name exists attached
-! to the object loc_id.
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-integer function h5ltfind_dataset_f(loc_id,&
- dset_name)
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltfind_dataset_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltfind_dataset_c(loc_id,namelen,dset_name)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTFIND_DATASET_C'::h5ltfind_dataset_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- end function h5ltfind_dataset_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltfind_dataset_c(loc_id,namelen,dset_name)
- h5ltfind_dataset_f = errcode
-
-end function h5ltfind_dataset_f
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_dataset_info_f
-!
-! Purpose: Gets information about a dataset
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 30, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_dataset_info_f(loc_id,&
- dset_name,&
- dims,&
- type_class,&
- type_size,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_dataset_info_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t),dimension(*),intent(inout):: dims ! dimensions
- integer, intent(inout) :: type_class ! type class
- integer(size_t), intent(inout) :: type_size ! type size
- integer :: errcode ! error code
- integer :: namelen ! name length
-
- interface
- integer function h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_DATASET_INFO_C'::h5ltget_dataset_info_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t),dimension(*),intent(inout):: dims ! dimensions
- integer, intent(inout) :: type_class ! type class
- integer(size_t), intent(inout) :: type_size ! type size
- end function h5ltget_dataset_info_c
- end interface
-
- namelen = len(dset_name)
- errcode = h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
-
-end subroutine h5ltget_dataset_info_f
-
-
-!-------------------------------------------------------------------------
-! Query attribute functions
-!-------------------------------------------------------------------------
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_attribute_ndims_f
-!
-! Purpose: Create and write an attribute
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: October 05, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_attribute_ndims_f(loc_id,&
- dset_name,&
- attr_name,&
- rank,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_attribute_ndims_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer, intent(inout) :: rank ! rank
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_NDIMS_C'::h5ltget_attribute_ndims_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer, intent(inout) :: rank ! rank
- end function h5ltget_attribute_ndims_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
-
-end subroutine h5ltget_attribute_ndims_f
-
-
-!-------------------------------------------------------------------------
-! Function: h5ltget_attribute_info_f
-!
-! Purpose: Gets information about an attribute
-!
-! Return: Success: 0, Failure: -1
-!
-! Programmer: pvn@ncsa.uiuc.edu
-!
-! Date: September 30, 2004
-!
-! Comments:
-!
-! Modifications:
-!
-!-------------------------------------------------------------------------
-
-subroutine h5ltget_attribute_info_f(loc_id,&
- dset_name,&
- attr_name,&
- dims,&
- type_class,&
- type_size,&
- errcode )
-
- implicit none
-
-!
-!This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: h5ltget_attribute_info_f
-!DEC$endif
-!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(hsize_t),dimension(*),intent(inout):: dims ! dimensions
- integer, intent(inout) :: type_class ! type class
- integer(size_t), intent(inout) :: type_size ! type size
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: attrlen ! name length
-
- interface
- integer function h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_INFO_C'::h5ltget_attribute_info_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: attr_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- integer :: namelen ! lenght of name buffer
- integer :: attrlen ! lenght of attr name buffer
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: attr_name ! name of the attribute
- integer(hsize_t),dimension(*),intent(inout):: dims ! dimensions
- integer, intent(inout) :: type_class ! type class
- integer(size_t), intent(inout) :: type_size ! type size
- end function h5ltget_attribute_info_c
- end interface
-
- namelen = len(dset_name)
- attrlen = len(attr_name)
- errcode = h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
-
-end subroutine h5ltget_attribute_info_f
-
-
-
-! end
-!
-end module H5LT
+MODULE h5lt
+ USE h5fortran_types
+ USE hdf5
+
+ INTERFACE h5ltmake_dataset_f
+ MODULE PROCEDURE h5ltmake_dataset_f_int1
+ MODULE PROCEDURE h5ltmake_dataset_f_int2
+ MODULE PROCEDURE h5ltmake_dataset_f_int3
+ MODULE PROCEDURE h5ltmake_dataset_f_int4
+ MODULE PROCEDURE h5ltmake_dataset_f_int5
+ MODULE PROCEDURE h5ltmake_dataset_f_int6
+ MODULE PROCEDURE h5ltmake_dataset_f_int7
+ MODULE PROCEDURE h5ltmake_dataset_f_float1
+ MODULE PROCEDURE h5ltmake_dataset_f_float2
+ MODULE PROCEDURE h5ltmake_dataset_f_float3
+ MODULE PROCEDURE h5ltmake_dataset_f_float4
+ MODULE PROCEDURE h5ltmake_dataset_f_float5
+ MODULE PROCEDURE h5ltmake_dataset_f_float6
+ MODULE PROCEDURE h5ltmake_dataset_f_float7
+ MODULE PROCEDURE h5ltmake_dataset_f_double1
+ MODULE PROCEDURE h5ltmake_dataset_f_double2
+ MODULE PROCEDURE h5ltmake_dataset_f_double3
+ MODULE PROCEDURE h5ltmake_dataset_f_double4
+ MODULE PROCEDURE h5ltmake_dataset_f_double5
+ MODULE PROCEDURE h5ltmake_dataset_f_double6
+ MODULE PROCEDURE h5ltmake_dataset_f_double7
+ END INTERFACE
+
+ INTERFACE h5ltread_dataset_f
+ MODULE PROCEDURE h5ltread_dataset_f_int1
+ MODULE PROCEDURE h5ltread_dataset_f_int2
+ MODULE PROCEDURE h5ltread_dataset_f_int3
+ MODULE PROCEDURE h5ltread_dataset_f_int4
+ MODULE PROCEDURE h5ltread_dataset_f_int5
+ MODULE PROCEDURE h5ltread_dataset_f_int6
+ MODULE PROCEDURE h5ltread_dataset_f_int7
+ MODULE PROCEDURE h5ltread_dataset_f_float1
+ MODULE PROCEDURE h5ltread_dataset_f_float2
+ MODULE PROCEDURE h5ltread_dataset_f_float3
+ MODULE PROCEDURE h5ltread_dataset_f_float4
+ MODULE PROCEDURE h5ltread_dataset_f_float5
+ MODULE PROCEDURE h5ltread_dataset_f_float6
+ MODULE PROCEDURE h5ltread_dataset_f_float7
+ MODULE PROCEDURE h5ltread_dataset_f_double1
+ MODULE PROCEDURE h5ltread_dataset_f_double2
+ MODULE PROCEDURE h5ltread_dataset_f_double3
+ MODULE PROCEDURE h5ltread_dataset_f_double4
+ MODULE PROCEDURE h5ltread_dataset_f_double5
+ MODULE PROCEDURE h5ltread_dataset_f_double6
+ MODULE PROCEDURE h5ltread_dataset_f_double7
+ END INTERFACE
+
+ INTERFACE h5ltmake_dataset_int_f
+ MODULE PROCEDURE h5ltmake_dataset_int_f_1
+ MODULE PROCEDURE h5ltmake_dataset_int_f_2
+ MODULE PROCEDURE h5ltmake_dataset_int_f_3
+ MODULE PROCEDURE h5ltmake_dataset_int_f_4
+ MODULE PROCEDURE h5ltmake_dataset_int_f_5
+ MODULE PROCEDURE h5ltmake_dataset_int_f_6
+ MODULE PROCEDURE h5ltmake_dataset_int_f_7
+ END INTERFACE
+
+ INTERFACE h5ltmake_dataset_float_f
+ MODULE PROCEDURE h5ltmake_dataset_float_f_1
+ MODULE PROCEDURE h5ltmake_dataset_float_f_2
+ MODULE PROCEDURE h5ltmake_dataset_float_f_3
+ MODULE PROCEDURE h5ltmake_dataset_float_f_4
+ MODULE PROCEDURE h5ltmake_dataset_float_f_5
+ MODULE PROCEDURE h5ltmake_dataset_float_f_6
+ MODULE PROCEDURE h5ltmake_dataset_float_f_7
+ END INTERFACE
+
+ INTERFACE h5ltmake_dataset_double_f
+ MODULE PROCEDURE h5ltmake_dataset_double_f_1
+ MODULE PROCEDURE h5ltmake_dataset_double_f_2
+ MODULE PROCEDURE h5ltmake_dataset_double_f_3
+ MODULE PROCEDURE h5ltmake_dataset_double_f_4
+ MODULE PROCEDURE h5ltmake_dataset_double_f_5
+ MODULE PROCEDURE h5ltmake_dataset_double_f_6
+ MODULE PROCEDURE h5ltmake_dataset_double_f_7
+ END INTERFACE
+
+ INTERFACE h5ltread_dataset_int_f
+ MODULE PROCEDURE h5ltread_dataset_int_f_1
+ MODULE PROCEDURE h5ltread_dataset_int_f_2
+ MODULE PROCEDURE h5ltread_dataset_int_f_3
+ MODULE PROCEDURE h5ltread_dataset_int_f_4
+ MODULE PROCEDURE h5ltread_dataset_int_f_5
+ MODULE PROCEDURE h5ltread_dataset_int_f_6
+ MODULE PROCEDURE h5ltread_dataset_int_f_7
+ END INTERFACE
+
+ INTERFACE h5ltread_dataset_float_f
+ MODULE PROCEDURE h5ltread_dataset_float_f_1
+ MODULE PROCEDURE h5ltread_dataset_float_f_2
+ MODULE PROCEDURE h5ltread_dataset_float_f_3
+ MODULE PROCEDURE h5ltread_dataset_float_f_4
+ MODULE PROCEDURE h5ltread_dataset_float_f_5
+ MODULE PROCEDURE h5ltread_dataset_float_f_6
+ MODULE PROCEDURE h5ltread_dataset_float_f_7
+ END INTERFACE
+
+ INTERFACE h5ltread_dataset_double_f
+ MODULE PROCEDURE h5ltread_dataset_double_f_1
+ MODULE PROCEDURE h5ltread_dataset_double_f_2
+ MODULE PROCEDURE h5ltread_dataset_double_f_3
+ MODULE PROCEDURE h5ltread_dataset_double_f_4
+ MODULE PROCEDURE h5ltread_dataset_double_f_5
+ MODULE PROCEDURE h5ltread_dataset_double_f_6
+ MODULE PROCEDURE h5ltread_dataset_double_f_7
+ END INTERFACE
+
+CONTAINS
+ !-------------------------------------------------------------------------
+ ! Make/Read dataset functions
+ !-------------------------------------------------------------------------
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int1
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int1(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT1_C'::h5ltmake_dataset_int1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int2
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int2(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT2_C'::h5ltmake_dataset_int2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int3
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int3(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT3_C'::h5ltmake_dataset_int3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int4
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int4(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT4_C'::h5ltmake_dataset_int4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int5
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int5(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT5_C'::h5ltmake_dataset_int5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int6
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int6(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT6_C'::h5ltmake_dataset_int6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_int7
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_int7(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_int7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_int7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT7_C'::h5ltmake_dataset_int7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_int7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_int7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_int7
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float1
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float1(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL1_C'::h5ltmake_dataset_fl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float2
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float2(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL2_C'::h5ltmake_dataset_fl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float3
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float3(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL3_C'::h5ltmake_dataset_fl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float4
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float4(loc_id, dset_name, rank, dims,&
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL4_C'::h5ltmake_dataset_fl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float5
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float5(loc_id, dset_name, rank, dims,&
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL5_C'::h5ltmake_dataset_fl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float6
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float6(loc_id, dset_name, rank, dims,&
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL6_C'::h5ltmake_dataset_fl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_float7
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_float7(loc_id, dset_name, rank, dims,&
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_float7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_fl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL7_C'::h5ltmake_dataset_fl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_fl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_fl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_float7
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double1
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double1(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL1_C'::h5ltmake_dataset_dl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double2
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double2(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL2_C'::h5ltmake_dataset_dl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double3
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 1, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double3(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL3_C'::h5ltmake_dataset_dl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double4
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double4(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL4_C'::h5ltmake_dataset_dl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double5
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double5(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL5_C'::h5ltmake_dataset_dl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double6
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double6(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL6_C'::h5ltmake_dataset_dl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_f_double7
+ !
+ ! Purpose: Creates and writes a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 7, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_f_double7(loc_id, dset_name, rank, dims, &
+ type_id, buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_f_double7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL7_C'::h5ltmake_dataset_dl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_dl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+ END SUBROUTINE h5ltmake_dataset_f_double7
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int1
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int1(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT1_C'::h5ltread_dataset_int1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(LEN=*), INTENT(IN) :: dset_name ! name of the dataset
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(IN), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int2
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int2(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT2_C'::h5ltread_dataset_int2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int3
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int3(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT3_C'::h5ltread_dataset_int3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int4
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 12, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int4(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT4_C'::h5ltread_dataset_int4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int5
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 12, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int5(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT5_C'::h5ltread_dataset_int5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int6
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 12, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int6(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT6_C'::h5ltread_dataset_int6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_int7
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 12, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_int7(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_int7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_int7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT7_C'::h5ltread_dataset_int7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_int7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_int7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_int7
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float1
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float1(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL1_C'::h5ltread_dataset_fl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float2
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float2(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float2
+ !DEC$endif
+ !
+
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL2_C'::h5ltread_dataset_fl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float3
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float3(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL3_C'::h5ltread_dataset_fl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float4
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float4(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL4_C'::h5ltread_dataset_fl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float5
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float5(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL5_C'::h5ltread_dataset_fl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float6
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float6(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL6_C'::h5ltread_dataset_fl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_float7
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_float7(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_float7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_fl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL7_C'::h5ltread_dataset_fl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_fl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_fl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_float7
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double1
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double1(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport ::h5ltread_dataset_f_double1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL1_C'::h5ltread_dataset_dl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double2
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double2(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_double2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL2_C'::h5ltread_dataset_dl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double3
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double3(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_double3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL3_C'::h5ltread_dataset_dl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double4
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double4(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_double4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL4_C'::h5ltread_dataset_dl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double5
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double5(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_double5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL5_C'::h5ltread_dataset_dl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double6
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double6(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_double6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL6_C'::h5ltread_dataset_dl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_f_double7
+ !
+ ! Purpose: Read a dataset of a type TYPE_ID
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_f_double7(loc_id, dset_name, type_id, buf, &
+ dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_f_double7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL7_C'::h5ltread_dataset_dl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_dl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_f_double7
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_1
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_1 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT1_C'::h5ltmake_dataset_nint1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,h5t_native_integer,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_2
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_2 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT2_C'::h5ltmake_dataset_nint2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_2
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_3
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_3 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT3_C'::h5ltmake_dataset_nint3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_4
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_4(loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT4_C'::h5ltmake_dataset_nint4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_5
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_5(loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT5_C'::h5ltmake_dataset_nint5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_6
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_6(loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT6_C'::h5ltmake_dataset_nint6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_int_f_7
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_int_f_7(loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_int_f_7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nint7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT7_C'::h5ltmake_dataset_nint7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nint7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nint7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+ END SUBROUTINE h5ltmake_dataset_int_f_7
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_1
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_1 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL1_C'::h5ltmake_dataset_nfl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_1
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_2
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_2 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL2_C'::h5ltmake_dataset_nfl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_3
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_3 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL3_C'::h5ltmake_dataset_nfl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_4
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_4 (loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL4_C'::h5ltmake_dataset_nfl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_5
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_5 (loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL5_C'::h5ltmake_dataset_nfl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_6
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_6 (loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL6_C'::h5ltmake_dataset_nfl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_float_f_7
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_float_f_7 (loc_id, dset_name, rank, dims, &
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_float_f_7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_nfl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL7_C'::h5ltmake_dataset_nfl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_nfl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_nfl7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+ END SUBROUTINE h5ltmake_dataset_float_f_7
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_1
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_1 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL1_C'::h5ltmake_dataset_ndl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_1
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_2
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_2 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL2_C'::h5ltmake_dataset_ndl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_3
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_3 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL3_C'::h5ltmake_dataset_ndl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_4
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_4 (loc_id, dset_name, rank, dims,&
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL4_C'::h5ltmake_dataset_ndl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_5
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_5 (loc_id, dset_name, rank, dims,&
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL5_C'::h5ltmake_dataset_ndl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_6
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_6 (loc_id, dset_name, rank, dims,&
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL6_C'::h5ltmake_dataset_ndl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_double_f_7
+ !
+ ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_double_f_7 (loc_id, dset_name, rank, dims,&
+ buf, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL7_C'::h5ltmake_dataset_ndl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: rank ! rank
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(in), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_ndl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+ END SUBROUTINE h5ltmake_dataset_double_f_7
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_1
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_1(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_1
+ !DEC$endif
+ !
+
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT1_C'::h5ltread_dataset_nint1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_1
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_2
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_2(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT2_C'::h5ltread_dataset_nint2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_3
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_3(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT3_C'::h5ltread_dataset_nint3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_4
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_4(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT4_C'::h5ltread_dataset_nint4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint4_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_5
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_5(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT5_C'::h5ltread_dataset_nint5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint5_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_6
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_6(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT6_C'::h5ltread_dataset_nint6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint6_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_int_f_7
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_int_f_7(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_int_f_7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nint7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT7_C'::h5ltread_dataset_nint7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nint7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nint7_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_int_f_7
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_1
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_1(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL1_C'::h5ltread_dataset_nfl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_1
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_2
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_2(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL2_C'::h5ltread_dataset_nfl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_3
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_3(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL3_C'::h5ltread_dataset_nfl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_4
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_4(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL4_C'::h5ltread_dataset_nfl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl4_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_5
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_5(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL5_C'::h5ltread_dataset_nfl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl5_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_6
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_6(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL6_C'::h5ltread_dataset_nfl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl6_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_float_f_7
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_float_f_7(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_float_f_7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_nfl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL7_C'::h5ltread_dataset_nfl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ REAL, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_nfl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_nfl7_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_float_f_7
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_1
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_1(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_1
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL1_C'::h5ltread_dataset_ndl1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl1_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_1
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_2
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_2(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_2
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL2_C'::h5ltread_dataset_ndl2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl2_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_2
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_3
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_3(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_3
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL3_C'::h5ltread_dataset_ndl3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl3_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_3
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_4
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_4(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_4
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL4_C'::h5ltread_dataset_ndl4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl4_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_4
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_5
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_5(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_5
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL5_C'::h5ltread_dataset_ndl5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl5_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_5
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_6
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_6(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_6
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL6_C'::h5ltread_dataset_ndl6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl6_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_6
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_double_f_7
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: M. Scot Breitenfeld
+ !
+ ! Date: March 8, 2011
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_double_f_7(loc_id, dset_name, buf, dims, errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_double_f_7
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL7_C'::h5ltread_dataset_ndl7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+ DOUBLE PRECISION, INTENT(inout), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_ndl7_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+ END SUBROUTINE h5ltread_dataset_double_f_7
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltmake_dataset_string_f
+ !
+ ! Purpose: Creates and writes a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltmake_dataset_string_f(loc_id,&
+ dset_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltmake_dataset_string_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: buflen ! buffer length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buflen,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_STRING_C'::h5ltmake_dataset_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: buflen ! lenght of data buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: buf ! data buffer
+ END FUNCTION h5ltmake_dataset_string_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ buflen = LEN(buf)
+ errcode = h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buflen,buf)
+
+ END SUBROUTINE h5ltmake_dataset_string_f
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltread_dataset_string_f
+ !
+ ! Purpose: Read a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 22, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltread_dataset_string_f(loc_id,&
+ dset_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltread_dataset_string_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(inout) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_STRING_C'::h5ltread_dataset_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(inout) :: buf ! data buffer
+ END FUNCTION h5ltread_dataset_string_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
+
+ END SUBROUTINE h5ltread_dataset_string_f
+
+
+
+
+ !-------------------------------------------------------------------------
+ ! Make/Read attribute functions
+ !-------------------------------------------------------------------------
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltset_attribute_int_f
+ !
+ ! Purpose: Create and write an attribute
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltset_attribute_int_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ size,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltset_attribute_int_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(size_t), INTENT(in) :: size ! size of attribute array
+ INTEGER :: errcode ! error code
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_INT_C'::h5ltset_attribute_int_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(size_t), INTENT(in) :: size ! size of attribute array
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltset_attribute_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+
+ END SUBROUTINE h5ltset_attribute_int_f
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltset_attribute_float_f
+ !
+ ! Purpose: Create and write an attribute
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltset_attribute_float_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ size,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltset_attribute_float_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(size_t), INTENT(in) :: size ! size of attribute array
+ INTEGER :: errcode ! error code
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_FLOAT_C'::h5ltset_attribute_float_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(size_t), INTENT(in) :: size ! size of attribute array
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltset_attribute_float_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+
+ END SUBROUTINE h5ltset_attribute_float_f
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltset_attribute_double_f
+ !
+ ! Purpose: Create and write an attribute
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltset_attribute_double_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ size,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltset_attribute_double_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(size_t), INTENT(in) :: size ! size of attribute array
+ INTEGER :: errcode ! error code
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_DOUBLE_C'::h5ltset_attribute_double_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(size_t), INTENT(in) :: size ! size of attribute array
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltset_attribute_double_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+
+ END SUBROUTINE h5ltset_attribute_double_f
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltset_attribute_string_f
+ !
+ ! Purpose: Create and write an attribute
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltset_attribute_string_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltset_attribute_string_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER :: errcode ! error code
+ CHARACTER(len=*), INTENT(in) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+ INTEGER :: buflen ! data buffer length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_STRING_C'::h5ltset_attribute_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ INTEGER :: buflen ! data buffer length
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ CHARACTER(len=*), INTENT(in) :: buf ! data buffer
+ END FUNCTION h5ltset_attribute_string_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ buflen = LEN(buf)
+ errcode = h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf)
+
+ END SUBROUTINE h5ltset_attribute_string_f
+
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_attribute_int_f
+ !
+ ! Purpose: Reads an attribute named ATTR_NAME
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_attribute_int_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_attribute_int_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER :: errcode ! error code
+ INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_INT_C'::h5ltget_attribute_int_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltget_attribute_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+ END SUBROUTINE h5ltget_attribute_int_f
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_attribute_float_f
+ !
+ ! Purpose: Reads an attribute named ATTR_NAME
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_attribute_float_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_attribute_float_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER :: errcode ! error code
+ REAL, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_FLOAT_C'::h5ltget_attribute_float_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ REAL, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltget_attribute_float_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+ END SUBROUTINE h5ltget_attribute_float_f
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_attribute_double_f
+ !
+ ! Purpose: Reads an attribute named ATTR_NAME
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_attribute_double_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_attribute_double_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER :: errcode ! error code
+ DOUBLE PRECISION,INTENT(inout),DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_DOUBLE_C'::h5ltget_attribute_double_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ DOUBLE PRECISION, INTENT(inout), DIMENSION(*) :: buf ! data buffer
+ END FUNCTION h5ltget_attribute_double_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+ END SUBROUTINE h5ltget_attribute_double_f
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_attribute_string_f
+ !
+ ! Purpose: Reads an attribute named ATTR_NAME
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_attribute_string_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_attribute_string_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER :: errcode ! error code
+ CHARACTER(len=*), INTENT(inout) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_STRING_C'::h5ltget_attribute_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ CHARACTER(len=*), INTENT(inout) :: buf ! data buffer
+ END FUNCTION h5ltget_attribute_string_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+ END SUBROUTINE h5ltget_attribute_string_f
+
+ !-------------------------------------------------------------------------
+ ! Query dataset functions
+ !-------------------------------------------------------------------------
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_dataset_ndims_f
+ !
+ ! Purpose: Gets the dimensionality of a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 30, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_dataset_ndims_f(loc_id,&
+ dset_name,&
+ rank,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_dataset_ndims_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(inout) :: rank ! rank
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_DATASET_NDIMS_C'::h5ltget_dataset_ndims_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(inout) :: rank ! rank
+ END FUNCTION h5ltget_dataset_ndims_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
+
+ END SUBROUTINE h5ltget_dataset_ndims_f
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltfind_dataset_f
+ !
+ ! Purpose: Inquires if a dataset named dset_name exists attached
+ ! to the object loc_id.
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ INTEGER FUNCTION h5ltfind_dataset_f(loc_id,&
+ dset_name)
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltfind_dataset_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltfind_dataset_c(loc_id,namelen,dset_name)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTFIND_DATASET_C'::h5ltfind_dataset_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ END FUNCTION h5ltfind_dataset_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltfind_dataset_c(loc_id,namelen,dset_name)
+ h5ltfind_dataset_f = errcode
+
+ END FUNCTION h5ltfind_dataset_f
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_dataset_info_f
+ !
+ ! Purpose: Gets information about a dataset
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 30, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_dataset_info_f(loc_id,&
+ dset_name,&
+ dims,&
+ type_class,&
+ type_size,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_dataset_info_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t),DIMENSION(*),INTENT(inout):: dims ! dimensions
+ INTEGER, INTENT(inout) :: type_class ! type class
+ INTEGER(size_t), INTENT(inout) :: type_size ! type size
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_DATASET_INFO_C'::h5ltget_dataset_info_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t),DIMENSION(*),INTENT(inout):: dims ! dimensions
+ INTEGER, INTENT(inout) :: type_class ! type class
+ INTEGER(size_t), INTENT(inout) :: type_size ! type size
+ END FUNCTION h5ltget_dataset_info_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ errcode = h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
+
+ END SUBROUTINE h5ltget_dataset_info_f
+
+
+ !-------------------------------------------------------------------------
+ ! Query attribute functions
+ !-------------------------------------------------------------------------
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_attribute_ndims_f
+ !
+ ! Purpose: Create and write an attribute
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: October 05, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_attribute_ndims_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ rank,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_attribute_ndims_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER, INTENT(inout) :: rank ! rank
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_NDIMS_C'::h5ltget_attribute_ndims_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER, INTENT(inout) :: rank ! rank
+ END FUNCTION h5ltget_attribute_ndims_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
+
+ END SUBROUTINE h5ltget_attribute_ndims_f
+
+
+ !-------------------------------------------------------------------------
+ ! Function: h5ltget_attribute_info_f
+ !
+ ! Purpose: Gets information about an attribute
+ !
+ ! Return: Success: 0, Failure: -1
+ !
+ ! Programmer: pvn@ncsa.uiuc.edu
+ !
+ ! Date: September 30, 2004
+ !
+ ! Comments:
+ !
+ ! Modifications:
+ !
+ !-------------------------------------------------------------------------
+
+ SUBROUTINE h5ltget_attribute_info_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ dims,&
+ type_class,&
+ type_size,&
+ errcode )
+
+ IMPLICIT NONE
+
+ !
+ !This definition is needed for Windows DLLs
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$attributes dllexport :: h5ltget_attribute_info_f
+ !DEC$endif
+ !
+
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(hsize_t),DIMENSION(*),INTENT(inout):: dims ! dimensions
+ INTEGER, INTENT(inout) :: type_class ! type class
+ INTEGER(size_t), INTENT(inout) :: type_size ! type size
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: attrlen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_INFO_C'::h5ltget_attribute_info_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ INTEGER :: namelen ! lenght of name buffer
+ INTEGER :: attrlen ! lenght of attr name buffer
+ CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(len=*), INTENT(in) :: attr_name ! name of the attribute
+ INTEGER(hsize_t),DIMENSION(*),INTENT(inout):: dims ! dimensions
+ INTEGER, INTENT(inout) :: type_class ! type class
+ INTEGER(size_t), INTENT(inout) :: type_size ! type size
+ END FUNCTION h5ltget_attribute_info_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ attrlen = LEN(attr_name)
+ errcode = h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
+
+ END SUBROUTINE h5ltget_attribute_info_f
+ ! end
+ !
+END MODULE H5LT
diff --git a/hl/fortran/src/H5TBfc.c b/hl/fortran/src/H5TBfc.c
index 76a3f1c..0efc9a8 100755
--- a/hl/fortran/src/H5TBfc.c
+++ b/hl/fortran/src/H5TBfc.c
@@ -13,6 +13,8 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+#include <math.h>
+
/* This files contains C stubs for H5D Fortran APIs */
#include "H5TBprivate.h"
@@ -47,14 +49,14 @@ nh5tbmake_table_c(int_f *namelen1,
hid_t_f *field_types,
hsize_t_f *chunk_size,
int_f *compress,
- int_f *namelen2, /* field_names lenghts */
- _fcd field_names) /* field_names */
+ int_f *char_len_field_names, /* field_names lenghts */
+ int_f *max_char_size_field_names, /* char len of fields */
+ char *field_names) /* field_names */
{
char *c_name = NULL;
char *c_name1 = NULL;
hsize_t num_elem;
hsize_t i;
- int max_len = 1;
hsize_t c_nfields = (hsize_t)*nfields;
size_t *c_field_offset = NULL;
hid_t *c_field_types = NULL;
@@ -63,9 +65,6 @@ nh5tbmake_table_c(int_f *namelen1,
int_f ret_value = 0;
num_elem = *nfields;
- for(i = 0; i < num_elem; i++)
- if(namelen2[i] > max_len)
- max_len = namelen2[i];
/*
* convert FORTRAN name to C name
@@ -91,20 +90,19 @@ nh5tbmake_table_c(int_f *namelen1,
HGOTO_DONE(FAIL)
/* copy data to long C string */
- if(NULL == (tmp = (char *)HD5f2cstring(field_names, (size_t)(max_len * num_elem))))
+ if(NULL == (tmp = (char *)HD5f2cstring(field_names, (size_t)*(max_char_size_field_names)*(size_t)num_elem)))
HGOTO_DONE(FAIL)
-
/*
* move data from temorary buffer
*/
tmp_p = tmp;
for(i = 0; i < num_elem; i++) {
- if(NULL == (c_field_names[i] = (char *)HDmalloc((size_t)namelen2[i] + 1)))
+ if(NULL == (c_field_names[i] = (char *)HDmalloc((size_t)char_len_field_names[i] + 1)))
HGOTO_DONE(FAIL)
+ HDmemcpy(c_field_names[i], tmp_p, (size_t)char_len_field_names[i]);
+ c_field_names[i][char_len_field_names[i]] = '\0';
- HDmemcpy(c_field_names[i], tmp_p, (size_t)namelen2[i]);
- c_field_names[i][namelen2[i]] = '\0';
- tmp_p = tmp_p + max_len;
+ tmp_p = tmp_p + *max_char_size_field_names;
} /* end for */
/*
@@ -125,7 +123,7 @@ done:
if(c_field_names[i])
HDfree(c_field_names[i]);
} /* end for */
- HDfree(c_field_names);
+ HDfree(c_field_names);
} /* end if */
if(tmp)
HDfree(tmp);
@@ -616,10 +614,10 @@ nh5tbinsert_field_c(hid_t_f *loc_id,
HGOTO_DONE(FAIL)
if(NULL == (c_name1 = (char *)HD5f2cstring(field_name, (size_t)*namelen1)))
HGOTO_DONE(FAIL)
-
/*
* call H5TBinsert_field function.
*/
+
if(H5TBinsert_field((hid_t)*loc_id, c_name, c_name1, (hid_t)*field_type,
(hsize_t)*position, NULL, buf) < 0)
HGOTO_DONE(FAIL)
@@ -771,13 +769,14 @@ nh5tbget_table_info_c(hid_t_f *loc_id,
if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen)))
HGOTO_DONE(FAIL)
+
/*
* call H5TBread_fields_index function.
*/
+
if(H5TBget_table_info((hid_t)*loc_id, c_name, &c_nfields, &c_nrecords) < 0)
HGOTO_DONE(FAIL)
-
- *nfields = (hsize_t_f) c_nfields;;
+ *nfields = (hsize_t_f) c_nfields;
*nrecords = (hsize_t_f) c_nrecords;
done:
@@ -811,26 +810,27 @@ nh5tbget_field_info_c(hid_t_f *loc_id,
size_t_f *field_offsets,
size_t_f *type_size,
int_f *namelen2, /* field_names lenghts */
- _fcd field_names) /* field_names */
+ int_f *lenmax, /* character len max */
+ _fcd field_names, /* field_names */
+ int_f *maxlen_out)
{
char *c_name = NULL;
hsize_t num_elem;
- int max_len = 1;
hsize_t c_nfields = *nfields;
size_t *c_field_sizes = NULL;
size_t *c_field_offsets = NULL;
size_t c_type_size;
char **c_field_names = NULL;
char *tmp = NULL, *tmp_p;
- int c_lenmax = HLTB_MAX_FIELD_LEN;
hsize_t i;
int_f ret_value = 0;
+ size_t c_lenmax;
+ size_t length = 0;
+
+ c_lenmax = (size_t)*lenmax;
num_elem = c_nfields;
- for(i = 0; i < num_elem; i++)
- if(namelen2[i] > max_len)
- max_len = namelen2[i];
/*
* convert FORTRAN name to C name
@@ -854,24 +854,25 @@ nh5tbget_field_info_c(hid_t_f *loc_id,
if(H5TBget_field_info((hid_t)*loc_id, c_name, c_field_names, c_field_sizes,
c_field_offsets, &c_type_size) < 0)
HGOTO_DONE(FAIL)
-
+
/* return values */
/* names array */
if(NULL == (tmp = (char *)HDmalloc((c_lenmax * (size_t)c_nfields) + 1)))
HGOTO_DONE(FAIL)
-
tmp_p = tmp;
HDmemset(tmp, ' ', c_lenmax * (size_t)c_nfields);
tmp[c_lenmax * c_nfields] = '\0';
for(i = 0; i < c_nfields; i++) {
- size_t field_name_len = HDstrlen(c_field_names[i]);
+ size_t field_name_len = HDstrlen(c_field_names[i]);
- HDmemcpy(tmp_p, c_field_names[i], field_name_len);
- namelen2[i] = (int_f)field_name_len;
- tmp_p += c_lenmax;
+ HDmemcpy(tmp_p, c_field_names[i], field_name_len);
+ namelen2[i] = (int_f)field_name_len;
+ length = MAX(length, strlen((c_field_names[i])));
+ tmp_p = tmp_p + c_lenmax;
} /* end for */
- HD5packFstring(tmp, _fcdtocp(field_names), (int)(c_lenmax * c_nfields));
+
+ HD5packFstring(tmp, _fcdtocp(field_names), (size_t)( c_lenmax* c_nfields));
*type_size = (size_t_f)c_type_size;
for(i = 0; i < num_elem; i++) {
@@ -879,6 +880,8 @@ nh5tbget_field_info_c(hid_t_f *loc_id,
field_offsets[i] = (size_t_f)c_field_offsets[i];
} /* end for */
+ *maxlen_out = (int_f)length;
+
done:
if(c_name)
HDfree(c_name);
diff --git a/hl/fortran/src/H5TBff.f90 b/hl/fortran/src/H5TBff.f90
index 9acdcee..36e13f9 100755
--- a/hl/fortran/src/H5TBff.f90
+++ b/hl/fortran/src/H5TBff.f90
@@ -17,49 +17,49 @@
! This file contains FORTRAN90 interfaces for H5TB functions
!
-module h5tb
-use h5fortran_types
-use hdf5
+MODULE h5tb
+USE h5fortran_types
+USE hdf5
-interface h5tbwrite_field_name_f
- module procedure h5tbwrite_field_name_f_int
- module procedure h5tbwrite_field_name_f_float
- module procedure h5tbwrite_field_name_f_double
- module procedure h5tbwrite_field_name_f_string
-end interface
+INTERFACE h5tbwrite_field_name_f
+ MODULE PROCEDURE h5tbwrite_field_name_f_int
+ MODULE PROCEDURE h5tbwrite_field_name_f_float
+ MODULE PROCEDURE h5tbwrite_field_name_f_double
+ MODULE PROCEDURE h5tbwrite_field_name_f_string
+END INTERFACE
-interface h5tbread_field_name_f
- module procedure h5tbread_field_name_f_int
- module procedure h5tbread_field_name_f_float
- module procedure h5tbread_field_name_f_double
- module procedure h5tbread_field_name_f_string
-end interface
+INTERFACE h5tbread_field_name_f
+ MODULE PROCEDURE h5tbread_field_name_f_int
+ MODULE PROCEDURE h5tbread_field_name_f_float
+ MODULE PROCEDURE h5tbread_field_name_f_double
+ MODULE PROCEDURE h5tbread_field_name_f_string
+END INTERFACE
-interface h5tbwrite_field_index_f
- module procedure h5tbwrite_field_index_f_int
- module procedure h5tbwrite_field_index_f_float
- module procedure h5tbwrite_field_index_f_double
- module procedure h5tbwrite_field_index_f_string
-end interface
+INTERFACE h5tbwrite_field_index_f
+ MODULE PROCEDURE h5tbwrite_field_index_f_int
+ MODULE PROCEDURE h5tbwrite_field_index_f_float
+ MODULE PROCEDURE h5tbwrite_field_index_f_double
+ MODULE PROCEDURE h5tbwrite_field_index_f_string
+END INTERFACE
-interface h5tbread_field_index_f
- module procedure h5tbread_field_index_f_int
- module procedure h5tbread_field_index_f_float
- module procedure h5tbread_field_index_f_double
- module procedure h5tbread_field_index_f_string
-end interface
+INTERFACE h5tbread_field_index_f
+ MODULE PROCEDURE h5tbread_field_index_f_int
+ MODULE PROCEDURE h5tbread_field_index_f_float
+ MODULE PROCEDURE h5tbread_field_index_f_double
+ MODULE PROCEDURE h5tbread_field_index_f_string
+END INTERFACE
-interface h5tbinsert_field_f
- module procedure h5tbinsert_field_f_int
- module procedure h5tbinsert_field_f_float
- module procedure h5tbinsert_field_f_double
- module procedure h5tbinsert_field_f_string
-end interface
+INTERFACE h5tbinsert_field_f
+ MODULE PROCEDURE h5tbinsert_field_f_int
+ MODULE PROCEDURE h5tbinsert_field_f_float
+ MODULE PROCEDURE h5tbinsert_field_f_double
+ MODULE PROCEDURE h5tbinsert_field_f_string
+END INTERFACE
-contains
+CONTAINS
!-------------------------------------------------------------------------
@@ -79,7 +79,7 @@ contains
!
!-------------------------------------------------------------------------
-subroutine h5tbmake_table_f(table_title,&
+SUBROUTINE h5tbmake_table_f(table_title,&
loc_id,&
dset_name,&
nfields,&
@@ -92,7 +92,7 @@ subroutine h5tbmake_table_f(table_title,&
compress,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -101,68 +101,75 @@ subroutine h5tbmake_table_f(table_title,&
!DEC$endif
!
- character(len=*), intent(in) :: table_title ! name of the dataset
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), intent(in) :: nfields ! fields
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), dimension(nfields), intent(in) :: field_names ! field names
- integer(size_t), dimension(nfields), intent(in) :: field_offset ! field offset
- integer(hid_t), dimension(nfields), intent(in) :: field_types ! field types
- integer(hsize_t), intent(in) :: chunk_size ! chunk size
- integer, intent(in) :: compress ! compress
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer :: errcode ! error code
- integer, dimension(nfields) :: namelen2 ! name lengths
- integer :: i ! general purpose integer
-
-
- interface
- integer function h5tbmake_table_c(namelen1,&
- table_title,&
- loc_id,&
- namelen,&
- dset_name,&
- nfields,&
- nrecords,&
- type_size,&
- field_offset,&
- field_types,&
- chunk_size,&
- compress,&
- namelen2,&
- field_names)
-
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBMAKE_TABLE_C'::h5tbmake_table_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- !DEC$ATTRIBUTES reference :: table_title
- character(len=*), intent(in) :: table_title ! name of the dataset
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), intent(in) :: nfields ! fields
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), dimension(nfields), intent(in) :: field_names ! field names
- integer(size_t), dimension(nfields), intent(in) :: field_offset ! field offset
- integer(hid_t), dimension(nfields), intent(in) :: field_types ! field types
- integer(hsize_t), intent(in) :: chunk_size ! chunk size
- integer, intent(in) :: compress ! compress
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer, dimension(nfields) :: namelen2 ! name lengths
- end function h5tbmake_table_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(table_title)
- do i = 1, nfields
- namelen2(i) = len(field_names(i));
- end do
+ CHARACTER(LEN=*), INTENT(in) :: table_title ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), INTENT(in) :: nfields ! fields
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), DIMENSION(1:nfields), INTENT(in) :: field_names ! field names
+ INTEGER(size_t), DIMENSION(1:nfields), INTENT(in) :: field_offset ! field offset
+ INTEGER(hid_t), DIMENSION(1:nfields), INTENT(in) :: field_types ! field types
+ INTEGER(hsize_t), INTENT(in) :: chunk_size ! chunk size
+ INTEGER, INTENT(in) :: compress ! compress
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER :: errcode ! error code
+ INTEGER, DIMENSION(1:nfields) :: char_len_field_names ! field name lengths
+ INTEGER :: max_char_size_field_names ! character len of field names
+ INTEGER :: i ! general purpose integer
+
+
+ INTERFACE
+ INTEGER FUNCTION h5tbmake_table_c(namelen1,&
+ table_title,&
+ loc_id,&
+ namelen,&
+ dset_name,&
+ nfields,&
+ nrecords,&
+ type_size,&
+ field_offset,&
+ field_types,&
+ chunk_size,&
+ compress,&
+ char_len_field_names,&
+ max_char_size_field_names,&
+ field_names)
+
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBMAKE_TABLE_C'::h5tbmake_table_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: table_title
+ CHARACTER(LEN=*), INTENT(in) :: table_title ! name of the dataset
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), INTENT(in) :: nfields ! fields
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), DIMENSION(nfields), INTENT(in) :: field_names ! field names
+ INTEGER(size_t), DIMENSION(nfields), INTENT(in) :: field_offset ! field offset
+ INTEGER(hid_t), DIMENSION(nfields), INTENT(in) :: field_types ! field types
+ INTEGER(hsize_t), INTENT(in) :: chunk_size ! chunk size
+ INTEGER, INTENT(in) :: compress ! compress
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER, DIMENSION(nfields) :: char_len_field_names ! field name's lengths
+ INTEGER :: max_char_size ! character len of field names
+ END FUNCTION h5tbmake_table_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(table_title)
+
+ ! Find the size of each character string in the array
+ DO i = 1, nfields
+ char_len_field_names(i) = LEN_TRIM(field_names(i))
+ END DO
+
+ max_char_size_field_names = LEN(field_names(1))
errcode = h5tbmake_table_c(namelen1,&
table_title,&
@@ -176,10 +183,11 @@ subroutine h5tbmake_table_f(table_title,&
field_types,&
chunk_size,&
compress,&
- namelen2,&
+ char_len_field_names, &
+ max_char_size_field_names, &
field_names)
-end subroutine h5tbmake_table_f
+END SUBROUTINE h5tbmake_table_f
!-------------------------------------------------------------------------
@@ -197,7 +205,7 @@ end subroutine h5tbmake_table_f
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_name_f_int(loc_id,&
+SUBROUTINE h5tbwrite_field_name_f_int(loc_id,&
dset_name,&
field_name,&
start,&
@@ -206,7 +214,7 @@ subroutine h5tbwrite_field_name_f_int(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -215,47 +223,47 @@ subroutine h5tbwrite_field_name_f_int(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_INT_C'::h5tbwrite_field_name_int_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbwrite_field_name_int_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbwrite_field_name_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_name_f_int
+END SUBROUTINE h5tbwrite_field_name_f_int
!-------------------------------------------------------------------------
! Function: h5tbwrite_field_name_f_float
@@ -272,7 +280,7 @@ end subroutine h5tbwrite_field_name_f_int
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_name_f_float(loc_id,&
+SUBROUTINE h5tbwrite_field_name_f_float(loc_id,&
dset_name,&
field_name,&
start,&
@@ -281,7 +289,7 @@ subroutine h5tbwrite_field_name_f_float(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -290,47 +298,47 @@ subroutine h5tbwrite_field_name_f_float(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_FL_C'::h5tbwrite_field_name_fl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbwrite_field_name_fl_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbwrite_field_name_fl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_name_f_float
+END SUBROUTINE h5tbwrite_field_name_f_float
@@ -349,7 +357,7 @@ end subroutine h5tbwrite_field_name_f_float
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_name_f_double(loc_id,&
+SUBROUTINE h5tbwrite_field_name_f_double(loc_id,&
dset_name,&
field_name,&
start,&
@@ -358,7 +366,7 @@ subroutine h5tbwrite_field_name_f_double(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -367,47 +375,47 @@ subroutine h5tbwrite_field_name_f_double(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_DL_C'::h5tbwrite_field_name_dl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbwrite_field_name_dl_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbwrite_field_name_dl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_name_f_double
+END SUBROUTINE h5tbwrite_field_name_f_double
!-------------------------------------------------------------------------
! Function: h5tbwrite_field_name_f_string
@@ -424,7 +432,7 @@ end subroutine h5tbwrite_field_name_f_double
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_name_f_string(loc_id,&
+SUBROUTINE h5tbwrite_field_name_f_string(loc_id,&
dset_name,&
field_name,&
start,&
@@ -433,7 +441,7 @@ subroutine h5tbwrite_field_name_f_string(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -442,47 +450,47 @@ subroutine h5tbwrite_field_name_f_string(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_ST_C'::h5tbwrite_field_name_st_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbwrite_field_name_st_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbwrite_field_name_st_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_name_f_string
+END SUBROUTINE h5tbwrite_field_name_f_string
!-------------------------------------------------------------------------
@@ -500,7 +508,7 @@ end subroutine h5tbwrite_field_name_f_string
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_name_f_int(loc_id,&
+SUBROUTINE h5tbread_field_name_f_int(loc_id,&
dset_name,&
field_name,&
start,&
@@ -509,7 +517,7 @@ subroutine h5tbread_field_name_f_int(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -518,47 +526,47 @@ subroutine h5tbread_field_name_f_int(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_INT_C'::h5tbread_field_name_int_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbread_field_name_int_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbread_field_name_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_name_f_int
+END SUBROUTINE h5tbread_field_name_f_int
!-------------------------------------------------------------------------
! Function: h5tbread_field_name_f_float
@@ -575,7 +583,7 @@ end subroutine h5tbread_field_name_f_int
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_name_f_float(loc_id,&
+SUBROUTINE h5tbread_field_name_f_float(loc_id,&
dset_name,&
field_name,&
start,&
@@ -584,7 +592,7 @@ subroutine h5tbread_field_name_f_float(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -593,47 +601,47 @@ subroutine h5tbread_field_name_f_float(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_FL_C'::h5tbread_field_name_fl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbread_field_name_fl_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbread_field_name_fl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_name_f_float
+END SUBROUTINE h5tbread_field_name_f_float
!-------------------------------------------------------------------------
! Function: h5tbread_field_name_f_double
@@ -650,7 +658,7 @@ end subroutine h5tbread_field_name_f_float
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_name_f_double(loc_id,&
+SUBROUTINE h5tbread_field_name_f_double(loc_id,&
dset_name,&
field_name,&
start,&
@@ -659,7 +667,7 @@ subroutine h5tbread_field_name_f_double(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -668,47 +676,47 @@ subroutine h5tbread_field_name_f_double(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_DL_C'::h5tbread_field_name_dl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbread_field_name_dl_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbread_field_name_dl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_name_f_double
+END SUBROUTINE h5tbread_field_name_f_double
!-------------------------------------------------------------------------
! Function: h5tbread_field_name_f_string
@@ -725,7 +733,7 @@ end subroutine h5tbread_field_name_f_double
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_name_f_string(loc_id,&
+SUBROUTINE h5tbread_field_name_f_string(loc_id,&
dset_name,&
field_name,&
start,&
@@ -734,7 +742,7 @@ subroutine h5tbread_field_name_f_string(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -743,47 +751,47 @@ subroutine h5tbread_field_name_f_string(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
- interface
- integer function h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_ST_C'::h5tbread_field_name_st_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- end function h5tbread_field_name_st_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ END FUNCTION h5tbread_field_name_st_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_name_f_string
+END SUBROUTINE h5tbread_field_name_f_string
!-------------------------------------------------------------------------
@@ -801,7 +809,7 @@ end subroutine h5tbread_field_name_f_string
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_index_f_int(loc_id,&
+SUBROUTINE h5tbwrite_field_index_f_int(loc_id,&
dset_name,&
field_index,&
start,&
@@ -810,7 +818,7 @@ subroutine h5tbwrite_field_index_f_int(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -819,43 +827,43 @@ subroutine h5tbwrite_field_index_f_int(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_INT_C'::h5tbwrite_field_index_int_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbwrite_field_index_int_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbwrite_field_index_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_index_f_int
+END SUBROUTINE h5tbwrite_field_index_f_int
!-------------------------------------------------------------------------
! Function: h5tbwrite_field_index_f_float
@@ -872,7 +880,7 @@ end subroutine h5tbwrite_field_index_f_int
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_index_f_float(loc_id,&
+SUBROUTINE h5tbwrite_field_index_f_float(loc_id,&
dset_name,&
field_index,&
start,&
@@ -881,7 +889,7 @@ subroutine h5tbwrite_field_index_f_float(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -890,43 +898,43 @@ subroutine h5tbwrite_field_index_f_float(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_FL_C'::h5tbwrite_field_index_fl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbwrite_field_index_fl_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbwrite_field_index_fl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_index_f_float
+END SUBROUTINE h5tbwrite_field_index_f_float
@@ -945,7 +953,7 @@ end subroutine h5tbwrite_field_index_f_float
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_index_f_double(loc_id,&
+SUBROUTINE h5tbwrite_field_index_f_double(loc_id,&
dset_name,&
field_index,&
start,&
@@ -954,7 +962,7 @@ subroutine h5tbwrite_field_index_f_double(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -963,43 +971,43 @@ subroutine h5tbwrite_field_index_f_double(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_DL_C'::h5tbwrite_field_index_dl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbwrite_field_index_dl_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbwrite_field_index_dl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_index_f_double
+END SUBROUTINE h5tbwrite_field_index_f_double
!-------------------------------------------------------------------------
! Function: h5tbwrite_field_index_f_string
@@ -1016,7 +1024,7 @@ end subroutine h5tbwrite_field_index_f_double
!
!-------------------------------------------------------------------------
-subroutine h5tbwrite_field_index_f_string(loc_id,&
+SUBROUTINE h5tbwrite_field_index_f_string(loc_id,&
dset_name,&
field_index,&
start,&
@@ -1025,7 +1033,7 @@ subroutine h5tbwrite_field_index_f_string(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1034,43 +1042,43 @@ subroutine h5tbwrite_field_index_f_string(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_ST_C'::h5tbwrite_field_index_st_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbwrite_field_index_st_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbwrite_field_index_st_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbwrite_field_index_f_string
+END SUBROUTINE h5tbwrite_field_index_f_string
!-------------------------------------------------------------------------
@@ -1088,7 +1096,7 @@ end subroutine h5tbwrite_field_index_f_string
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_index_f_int(loc_id,&
+SUBROUTINE h5tbread_field_index_f_int(loc_id,&
dset_name,&
field_index,&
start,&
@@ -1097,7 +1105,7 @@ subroutine h5tbread_field_index_f_int(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1106,43 +1114,43 @@ subroutine h5tbread_field_index_f_int(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_INT_C'::h5tbread_field_index_int_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbread_field_index_int_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbread_field_index_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_index_f_int
+END SUBROUTINE h5tbread_field_index_f_int
!-------------------------------------------------------------------------
! Function: h5tbread_field_index_f_float
@@ -1159,7 +1167,7 @@ end subroutine h5tbread_field_index_f_int
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_index_f_float(loc_id,&
+SUBROUTINE h5tbread_field_index_f_float(loc_id,&
dset_name,&
field_index,&
start,&
@@ -1168,7 +1176,7 @@ subroutine h5tbread_field_index_f_float(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1177,43 +1185,43 @@ subroutine h5tbread_field_index_f_float(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_FL_C'::h5tbread_field_index_fl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbread_field_index_fl_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbread_field_index_fl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_index_f_float
+END SUBROUTINE h5tbread_field_index_f_float
!-------------------------------------------------------------------------
! Function: h5tbread_field_index_f_double
@@ -1230,7 +1238,7 @@ end subroutine h5tbread_field_index_f_float
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_index_f_double(loc_id,&
+SUBROUTINE h5tbread_field_index_f_double(loc_id,&
dset_name,&
field_index,&
start,&
@@ -1239,7 +1247,7 @@ subroutine h5tbread_field_index_f_double(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1248,43 +1256,43 @@ subroutine h5tbread_field_index_f_double(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_DL_C'::h5tbread_field_index_dl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbread_field_index_dl_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbread_field_index_dl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_index_f_double
+END SUBROUTINE h5tbread_field_index_f_double
!-------------------------------------------------------------------------
! Function: h5tbread_field_index_f_string
@@ -1301,7 +1309,7 @@ end subroutine h5tbread_field_index_f_double
!
!-------------------------------------------------------------------------
-subroutine h5tbread_field_index_f_string(loc_id,&
+SUBROUTINE h5tbread_field_index_f_string(loc_id,&
dset_name,&
field_index,&
start,&
@@ -1310,7 +1318,7 @@ subroutine h5tbread_field_index_f_string(loc_id,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1319,43 +1327,43 @@ subroutine h5tbread_field_index_f_string(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,&
+ INTERFACE
+ INTEGER FUNCTION h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_ST_C'::h5tbread_field_index_st_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer, intent(in) :: field_index ! index
- integer(hsize_t), intent(in) :: start ! start record
- integer(hsize_t), intent(in) :: nrecords ! records
- integer(size_t), intent(in) :: type_size ! type size
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: errcode ! error code
- integer :: namelen ! name length
- end function h5tbread_field_index_st_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER, INTENT(in) :: field_index ! index
+ INTEGER(hsize_t), INTENT(in) :: start ! start record
+ INTEGER(hsize_t), INTENT(in) :: nrecords ! records
+ INTEGER(size_t), INTENT(in) :: type_size ! type size
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbread_field_index_st_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,&
start,nrecords,type_size,buf)
-end subroutine h5tbread_field_index_f_string
+END SUBROUTINE h5tbread_field_index_f_string
!-------------------------------------------------------------------------
@@ -1373,14 +1381,14 @@ end subroutine h5tbread_field_index_f_string
!
!-------------------------------------------------------------------------
-subroutine h5tbinsert_field_f_int(loc_id,&
+SUBROUTINE h5tbinsert_field_f_int(loc_id,&
dset_name,&
field_name,&
field_type,&
field_index,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1389,45 +1397,45 @@ subroutine h5tbinsert_field_f_int(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer :: errcode ! error code
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER :: errcode ! error code
- interface
- integer function h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_INT_C'::h5tbinsert_field_int_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- integer, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length length
- end function h5tbinsert_field_int_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length length
+ END FUNCTION h5tbinsert_field_int_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
-end subroutine h5tbinsert_field_f_int
+END SUBROUTINE h5tbinsert_field_f_int
@@ -1446,14 +1454,14 @@ end subroutine h5tbinsert_field_f_int
!
!-------------------------------------------------------------------------
-subroutine h5tbinsert_field_f_float(loc_id,&
+SUBROUTINE h5tbinsert_field_f_float(loc_id,&
dset_name,&
field_name,&
field_type,&
field_index,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1462,45 +1470,45 @@ subroutine h5tbinsert_field_f_float(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer :: errcode ! error code
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER :: errcode ! error code
- interface
- integer function h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_FL_C'::h5tbinsert_field_fl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- real, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length length
- end function h5tbinsert_field_fl_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length length
+ END FUNCTION h5tbinsert_field_fl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
-end subroutine h5tbinsert_field_f_float
+END SUBROUTINE h5tbinsert_field_f_float
@@ -1519,14 +1527,14 @@ end subroutine h5tbinsert_field_f_float
!
!-------------------------------------------------------------------------
-subroutine h5tbinsert_field_f_double(loc_id,&
+SUBROUTINE h5tbinsert_field_f_double(loc_id,&
dset_name,&
field_name,&
field_type,&
field_index,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1535,45 +1543,45 @@ subroutine h5tbinsert_field_f_double(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer :: errcode ! error code
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER :: errcode ! error code
- interface
- integer function h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_DL_C'::h5tbinsert_field_dl_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- double precision, intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length length
- end function h5tbinsert_field_dl_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length length
+ END FUNCTION h5tbinsert_field_dl_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
-end subroutine h5tbinsert_field_f_double
+END SUBROUTINE h5tbinsert_field_f_double
@@ -1593,14 +1601,14 @@ end subroutine h5tbinsert_field_f_double
!
!-------------------------------------------------------------------------
-subroutine h5tbinsert_field_f_string(loc_id,&
+SUBROUTINE h5tbinsert_field_f_string(loc_id,&
dset_name,&
field_name,&
field_type,&
field_index,&
buf,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1609,45 +1617,45 @@ subroutine h5tbinsert_field_f_string(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer :: errcode ! error code
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER :: errcode ! error code
- interface
- integer function h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ INTERFACE
+ INTEGER FUNCTION h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_ST_C'::h5tbinsert_field_st_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer(hid_t), intent(in) :: field_type ! field type
- integer, intent(in) :: field_index ! field_index
- character(len=*), intent(in), dimension(*) :: buf ! data buffer
- integer :: namelen ! name length
- integer :: namelen1 ! name length length
- end function h5tbinsert_field_st_c
- end interface
-
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER(hid_t), INTENT(in) :: field_type ! field type
+ INTEGER, INTENT(in) :: field_index ! field_index
+ CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length length
+ END FUNCTION h5tbinsert_field_st_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
field_type,field_index,buf)
-end subroutine h5tbinsert_field_f_string
+END SUBROUTINE h5tbinsert_field_f_string
@@ -1667,11 +1675,11 @@ end subroutine h5tbinsert_field_f_string
!
!-------------------------------------------------------------------------
-subroutine h5tbdelete_field_f(loc_id,&
+SUBROUTINE h5tbdelete_field_f(loc_id,&
dset_name,&
field_name,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1680,37 +1688,37 @@ subroutine h5tbdelete_field_f(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- character(len=*), intent(in) :: field_name ! name of the field
- integer :: namelen ! name length
- integer :: namelen1 ! name length
- integer :: errcode ! error code
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length
+ INTEGER :: errcode ! error code
- interface
- integer function h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name)
+ INTERFACE
+ INTEGER FUNCTION h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name)
- use h5global
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBDELETE_FIELD_C'::h5tbdelete_field_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
!DEC$ATTRIBUTES reference :: field_name
- integer(HID_T), intent(IN) :: loc_id ! file or group identifier
- character(LEN=*), intent(IN) :: dset_name ! name of the dataset
- character(LEN=*), intent(IN) :: field_name ! name of the field
- integer :: namelen ! name length
- integer :: namelen1 ! name length length
- end function h5tbdelete_field_c
- end interface
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: dset_name ! name of the dataset
+ CHARACTER(LEN=*), INTENT(IN) :: field_name ! name of the field
+ INTEGER :: namelen ! name length
+ INTEGER :: namelen1 ! name length length
+ END FUNCTION h5tbdelete_field_c
+ END INTERFACE
- namelen = len(dset_name)
- namelen1 = len(field_name)
+ namelen = LEN(dset_name)
+ namelen1 = LEN(field_name)
errcode = h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name)
-end subroutine h5tbdelete_field_f
+END SUBROUTINE h5tbdelete_field_f
@@ -1731,13 +1739,13 @@ end subroutine h5tbdelete_field_f
!
!-------------------------------------------------------------------------
-subroutine h5tbget_table_info_f(loc_id,&
+SUBROUTINE h5tbget_table_info_f(loc_id,&
dset_name,&
nfields,&
nrecords,&
errcode )
- implicit none
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
@@ -1746,32 +1754,32 @@ subroutine h5tbget_table_info_f(loc_id,&
!DEC$endif
!
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), intent(inout):: nfields ! nfields
- integer(hsize_t), intent(inout):: nrecords ! nrecords
- integer :: errcode ! error code
- integer :: namelen ! name length
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), INTENT(inout):: nfields ! nfields
+ INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords
+ INTEGER :: errcode ! error code
+ INTEGER :: namelen ! name length
- interface
- integer function h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords)
- use h5global
+ INTERFACE
+ INTEGER FUNCTION h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords)
+ USE h5global
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_TABLE_INFO_C'::h5tbget_table_info_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), intent(inout):: nfields ! nfields
- integer(hsize_t), intent(inout):: nrecords ! nrecords
- integer :: namelen ! name length
- end function h5tbget_table_info_c
- end interface
-
- namelen = len(dset_name)
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), INTENT(inout):: nfields ! nfields
+ INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords
+ INTEGER :: namelen ! name length
+ END FUNCTION h5tbget_table_info_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
errcode = h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords)
-end subroutine h5tbget_table_info_f
+END SUBROUTINE h5tbget_table_info_f
!-------------------------------------------------------------------------
@@ -1787,75 +1795,81 @@ end subroutine h5tbget_table_info_f
!
! Comments:
!
-! Modifications:
+! Modifications:
+! Added optional parameter for returning the maximum character lenght
+! in the field name array. March 3, 2011
!
!-------------------------------------------------------------------------
-subroutine h5tbget_field_info_f(loc_id,&
+SUBROUTINE h5tbget_field_info_f(loc_id,&
dset_name,&
nfields,&
field_names,&
- field_sizes,&
- field_offsets,&
- type_size,&
- errcode )
-
- implicit none
+ field_sizes,&
+ field_offsets,&
+ type_size,&
+ errcode, maxlen_out )
+ IMPLICIT NONE
!
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5tbget_field_info_f
!DEC$endif
!
-
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), intent(in):: nfields ! nfields
- character(len=*), dimension(nfields), intent(inout) :: field_names ! field names
- integer(size_t), dimension(nfields), intent(inout) :: field_sizes ! field sizes
- integer(size_t), dimension(nfields), intent(inout) :: field_offsets ! field offsets
- integer(size_t), intent(inout):: type_size ! type size
- integer :: errcode ! error code
- integer :: namelen ! name length
- integer, dimension(nfields) :: namelen2 ! name lengths
- integer :: i ! general purpose integer
-
- interface
- integer function h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,&
- field_sizes,field_offsets,type_size,namelen2,field_names)
-
- use h5global
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_FIELD_INFO_C'::h5tbget_field_info_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: dset_name
- integer(hid_t), intent(in) :: loc_id ! file or group identifier
- character(len=*), intent(in) :: dset_name ! name of the dataset
- integer(hsize_t), intent(in):: nfields ! nfields
- character(len=*), dimension(nfields), intent(inout) :: field_names ! field names
- integer(size_t), dimension(nfields), intent(inout) :: field_sizes ! field sizes
- integer(size_t), dimension(nfields), intent(inout) :: field_offsets ! field offsets
- integer(size_t), intent(inout):: type_size ! type size
- integer :: namelen ! name length
- integer, dimension(nfields) :: namelen2 ! name lengths
- end function h5tbget_field_info_c
- end interface
-
- namelen = len(dset_name)
- do i = 1, nfields
- namelen2(i) = len(field_names(i));
- end do
- errcode = h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,&
- field_sizes,field_offsets,type_size,namelen2,field_names)
-
-end subroutine h5tbget_field_info_f
-
-
-
-! end
-!
-end module H5TB
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), INTENT(in) :: nfields ! nfields
+ CHARACTER(LEN=*), DIMENSION(nfields), INTENT(inout) :: field_names ! field names
+ INTEGER(size_t), DIMENSION(nfields), INTENT(inout) :: field_sizes ! field sizes
+ INTEGER(size_t), DIMENSION(nfields), INTENT(inout) :: field_offsets ! field offsets
+ INTEGER(size_t), INTENT(inout):: type_size ! type size
+ INTEGER :: errcode ! error code
+ INTEGER, OPTIONAL :: maxlen_out ! maximum character len of the field names
+ INTEGER :: namelen ! name length
+ INTEGER, DIMENSION(nfields) :: namelen2 ! name lengths
+ INTEGER :: i ! general purpose integer
+ INTEGER :: maxlen
+ INTEGER :: c_maxlen_out
+
+ INTERFACE
+ INTEGER FUNCTION h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,&
+ field_sizes,field_offsets,type_size,namelen2, maxlen, field_names, c_maxlen_out)
+
+ USE h5global
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_FIELD_INFO_C'::h5tbget_field_info_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier
+ CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset
+ INTEGER(hsize_t), INTENT(in):: nfields ! nfields
+ CHARACTER(LEN=*), DIMENSION(1:nfields), INTENT(inout) :: field_names ! field names
+ INTEGER(size_t), DIMENSION(1:nfields), INTENT(inout) :: field_sizes ! field sizes
+ INTEGER(size_t), DIMENSION(1:nfields), INTENT(inout) :: field_offsets ! field offsets
+ INTEGER(size_t), INTENT(inout):: type_size ! type size
+ INTEGER :: namelen ! name length
+ INTEGER :: maxlen ! maxiumum length of input field names
+ INTEGER, DIMENSION(1:nfields) :: namelen2 ! name lengths
+ INTEGER :: c_maxlen_out ! maximum character length of a field array element
+ END FUNCTION h5tbget_field_info_c
+ END INTERFACE
+
+ namelen = LEN(dset_name)
+ DO i = 1, nfields
+ namelen2(i) = LEN_TRIM(field_names(i))
+ END DO
+ maxlen = LEN(field_names(1))
+ c_maxlen_out = 0
+
+ errcode = h5tbget_field_info_c(loc_id, namelen,dset_name, nfields, &
+ field_sizes, field_offsets, type_size, namelen2, maxlen, field_names, c_maxlen_out)
+
+ IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out
+
+END SUBROUTINE h5tbget_field_info_f
+
+END MODULE H5TB
diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt
index c9e236e..0a91b85 100644
--- a/hl/fortran/test/CMakeLists.txt
+++ b/hl/fortran/test/CMakeLists.txt
@@ -22,7 +22,7 @@ ADD_TEST (
#-- Adding test for hl_f90_tstlite
ADD_EXECUTABLE (hl_f90_tstlite tstlite.f90)
-H5_NAMING (hl_f90_tstlite ${LIB_TYPE})
+TARGET_NAMING (hl_f90_tstlite ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (hl_f90_tstlite "")
TARGET_LINK_LIBRARIES (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
SET_TARGET_PROPERTIES (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran)
@@ -31,7 +31,7 @@ ADD_TEST (NAME hl_f90_tstlite COMMAND $<TARGET_FILE:hl_f90_tstlite>)
#-- Adding test for hl_f90_tstimage
ADD_EXECUTABLE (hl_f90_tstimage tstimage.f90)
-H5_NAMING (hl_f90_tstimage ${LIB_TYPE})
+TARGET_NAMING (hl_f90_tstimage ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (hl_f90_tstimage "")
TARGET_LINK_LIBRARIES (hl_f90_tstimage ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
SET_TARGET_PROPERTIES (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran)
@@ -40,7 +40,7 @@ ADD_TEST (NAME hl_f90_tstimage COMMAND $<TARGET_FILE:hl_f90_tstimage>)
#-- Adding test for hl_f90_tsttable
ADD_EXECUTABLE (hl_f90_tsttable tsttable.f90)
-H5_NAMING (hl_f90_tsttable ${LIB_TYPE})
+TARGET_NAMING (hl_f90_tsttable ${LIB_TYPE})
TARGET_FORTRAN_WIN_PROPERTIES (hl_f90_tsttable "")
TARGET_LINK_LIBRARIES (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
SET_TARGET_PROPERTIES (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran)
diff --git a/hl/fortran/test/tstlite.f90 b/hl/fortran/test/tstlite.f90
index 504b8d7..b0e28f9 100644
--- a/hl/fortran/test/tstlite.f90
+++ b/hl/fortran/test/tstlite.f90
@@ -17,67 +17,71 @@
! This file contains the FORTRAN90 tests for H5LT
!
-program lite_test
+PROGRAM lite_test
-call test_dataset1D()
-call test_dataset2D()
-call test_dataset3D()
-call test_datasets()
-call test_attributes()
+ CALL test_dataset1D()
+ CALL test_dataset2D()
+ CALL test_dataset3D()
+ CALL test_datasetND(4)
+ CALL test_datasetND(5)
+ CALL test_datasetND(6)
+ CALL test_datasetND(7)
+ CALL test_datasets()
+ CALL test_attributes()
-end program lite_test
+END PROGRAM lite_test
!-------------------------------------------------------------------------
! test_dataset1D
!-------------------------------------------------------------------------
-subroutine test_dataset1D()
+SUBROUTINE test_dataset1D()
-use H5LT ! module of H5LT
-use HDF5 ! module of HDF5 library
+USE H5LT ! module of H5LT
+USE HDF5 ! module of HDF5 library
-implicit none
+IMPLICIT NONE
-integer, parameter :: DIM1 = 4; ! Dimension of array
-character(len=9), parameter :: filename = "dsetf1.h5"! File name
-character(LEN=5), parameter :: dsetname1 = "dset1" ! Dataset name
-character(LEN=5), parameter :: dsetname2 = "dset2" ! Dataset name
-character(LEN=5), parameter :: dsetname3 = "dset3" ! Dataset name
-integer(HID_T) :: file_id ! File identifier
-integer(HSIZE_T), dimension(1) :: dims = (/DIM1/) ! Dataset dimensions
-integer :: rank = 1 ! Dataset rank
-integer, dimension(DIM1) :: buf1 ! Data buffer
-integer, dimension(DIM1) :: bufr1 ! Data buffer
-real, dimension(DIM1) :: buf2 ! Data buffer
-real, dimension(DIM1) :: bufr2 ! Data buffer
-double precision, dimension(DIM1) :: buf3 ! Data buffer
-double precision, dimension(DIM1) :: bufr3 ! Data buffer
-integer :: errcode ! Error flag
-integer :: i ! general purpose integer
+INTEGER, PARAMETER :: DIM1 = 4; ! Dimension of array
+CHARACTER(len=9), PARAMETER :: filename = "dsetf1.h5"! File name
+CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname3 = "dset3" ! Dataset name
+INTEGER(HID_T) :: file_id ! File identifier
+INTEGER(HSIZE_T), DIMENSION(1) :: dims = (/DIM1/) ! Dataset dimensions
+INTEGER :: rank = 1 ! Dataset rank
+INTEGER, DIMENSION(DIM1) :: buf1 ! Data buffer
+INTEGER, DIMENSION(DIM1) :: bufr1 ! Data buffer
+REAL, DIMENSION(DIM1) :: buf2 ! Data buffer
+REAL, DIMENSION(DIM1) :: bufr2 ! Data buffer
+DOUBLE PRECISION, DIMENSION(DIM1) :: buf3 ! Data buffer
+DOUBLE PRECISION, DIMENSION(DIM1) :: bufr3 ! Data buffer
+INTEGER :: errcode ! Error flag
+INTEGER :: i ! general purpose integer
-call test_begin(' Make/Read datasets (1D) ')
+CALL test_begin(' Make/Read datasets (1D) ')
!
! Initialize the data array.
!
-do i = 1, DIM1
+DO i = 1, DIM1
buf1(i) = i;
buf2(i) = i;
buf3(i) = i;
-end do
+END DO
!
! Initialize FORTRAN predefined datatypes.
!
-call h5open_f(errcode)
+CALL h5open_f(errcode)
!
! Create a new file using default properties.
!
-call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
!-------------------------------------------------------------------------
! H5T_NATIVE_INTEGER
@@ -86,23 +90,23 @@ call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname1, rank, dims, H5T_NATIVE_INTEGER, buf1, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname1, rank, dims, H5T_NATIVE_INTEGER, buf1, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr1, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr1, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, DIM1
- if ( buf1(i) .ne. bufr1(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr1(i), ' and ', buf1(i)
- stop
- endif
-end do
+DO i = 1, DIM1
+ IF ( buf1(i) .NE. bufr1(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr1(i), ' and ', buf1(i)
+ STOP
+ ENDIF
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_REAL
@@ -111,23 +115,23 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname2, rank, dims, H5T_NATIVE_REAL, buf2, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims, H5T_NATIVE_REAL, buf2, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_REAL, bufr2, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_REAL, bufr2, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, DIM1
- if ( buf2(i) .ne. bufr2(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr2(i), ' and ', buf2(i)
- stop
- endif
-end do
+DO i = 1, DIM1
+ IF ( buf2(i) .NE. bufr2(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr2(i), ' and ', buf2(i)
+ STOP
+ ENDIF
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_DOUBLE
@@ -136,103 +140,103 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_DOUBLE, buf3, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_DOUBLE, buf3, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_DOUBLE, bufr3, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_DOUBLE, bufr3, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, DIM1
- if ( buf3(i) .ne. bufr3(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr3(i), ' and ', buf3(i)
- stop
- endif
-end do
+DO i = 1, DIM1
+ IF ( buf3(i) .NE. bufr3(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr3(i), ' and ', buf3(i)
+ STOP
+ ENDIF
+END DO
!
! Close the file.
!
-call h5fclose_f(file_id, errcode)
+CALL h5fclose_f(file_id, errcode)
!
! Close FORTRAN predefined datatypes.
!
-call h5close_f(errcode)
+CALL h5close_f(errcode)
-call passed()
+CALL passed()
!
! end function.
!
-end subroutine test_dataset1D
+END SUBROUTINE test_dataset1D
!-------------------------------------------------------------------------
! test_dataset2D
!-------------------------------------------------------------------------
-subroutine test_dataset2D()
+SUBROUTINE test_dataset2D()
-use H5LT ! module of H5LT
-use HDF5 ! module of HDF5 library
+USE H5LT ! module of H5LT
+USE HDF5 ! module of HDF5 library
-implicit none
+IMPLICIT NONE
-integer, parameter :: DIM1 = 4; ! columns
-integer, parameter :: DIM2 = 6; ! rows
-character(len=9), parameter :: filename = "dsetf2.h5"! File name
-character(LEN=5), parameter :: dsetname1 = "dset1" ! Dataset name
-character(LEN=5), parameter :: dsetname2 = "dset2" ! Dataset name
-character(LEN=5), parameter :: dsetname3 = "dset3" ! Dataset name
-character(LEN=5), parameter :: dsetname4 = "dset4" ! Dataset name
-integer(HID_T) :: file_id ! File identifier
-integer(HSIZE_T), dimension(2) :: dims = (/4,6/) ! Dataset dimensions
-integer :: rank = 2 ! Dataset rank
-integer, dimension(DIM1*DIM2) :: buf ! Data buffer
-integer, dimension(DIM1*DIM2) :: bufr ! Data buffer
-integer, dimension(DIM1,DIM2) :: buf2 ! Data buffer
-integer, dimension(DIM1,DIM2) :: buf2r ! Data buffer
-real, dimension(DIM1,DIM2) :: buf3 ! Data buffer
-real, dimension(DIM1,DIM2) :: buf3r ! Data buffer
-double precision, dimension(DIM1,DIM2) :: buf4 ! Data buffer
-double precision, dimension(DIM1,DIM2) :: buf4r ! Data buffer
-integer :: errcode ! Error flag
-integer :: i, j, n ! general purpose integers
+INTEGER, PARAMETER :: DIM1 = 4; ! columns
+INTEGER, PARAMETER :: DIM2 = 6; ! rows
+CHARACTER(len=9), PARAMETER :: filename = "dsetf2.h5"! File name
+CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname3 = "dset3" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
+INTEGER(HID_T) :: file_id ! File identifier
+INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/4,6/) ! Dataset dimensions
+INTEGER :: rank = 2 ! Dataset rank
+INTEGER, DIMENSION(DIM1*DIM2) :: buf ! Data buffer
+INTEGER, DIMENSION(DIM1*DIM2) :: bufr ! Data buffer
+INTEGER, DIMENSION(DIM1,DIM2) :: buf2 ! Data buffer
+INTEGER, DIMENSION(DIM1,DIM2) :: buf2r ! Data buffer
+REAL, DIMENSION(DIM1,DIM2) :: buf3 ! Data buffer
+REAL, DIMENSION(DIM1,DIM2) :: buf3r ! Data buffer
+DOUBLE PRECISION, DIMENSION(DIM1,DIM2) :: buf4 ! Data buffer
+DOUBLE PRECISION, DIMENSION(DIM1,DIM2) :: buf4r ! Data buffer
+INTEGER :: errcode ! Error flag
+INTEGER :: i, j, n ! general purpose integers
-call test_begin(' Make/Read datasets (2D) ')
+CALL test_begin(' Make/Read datasets (2D) ')
!
! Initialize the data arrays.
!
n=1
-do i = 1, DIM1*DIM2
+DO i = 1, DIM1*DIM2
buf(i) = n;
n = n + 1
-end do
+END DO
-do i = 1, dims(1)
- do j = 1, dims(2)
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
buf2(i,j) = (i-1)*dims(2) + j;
buf3(i,j) = (i-1)*dims(2) + j;
buf4(i,j) = (i-1)*dims(2) + j;
- end do
-end do
+ END DO
+END DO
!
! Initialize FORTRAN predefined datatypes.
!
-call h5open_f(errcode)
+CALL h5open_f(errcode)
!
! Create a new file using default properties.
!
-call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
!-------------------------------------------------------------------------
! H5T_NATIVE_INT 1D buffer
@@ -241,23 +245,23 @@ call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname1, rank, dims, H5T_NATIVE_INTEGER, buf, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname1, rank, dims, H5T_NATIVE_INTEGER, buf, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, DIM1*DIM2
- if ( buf(i) .ne. bufr(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr(i), ' and ', buf(i)
- stop
- endif
-end do
+DO i = 1, DIM1*DIM2
+ IF ( buf(i) .NE. bufr(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr(i), ' and ', buf(i)
+ STOP
+ ENDIF
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_INT 2D buffer
@@ -266,25 +270,25 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname2, rank, dims, H5T_NATIVE_INTEGER, buf2, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims, H5T_NATIVE_INTEGER, buf2, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, buf2r, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, buf2r, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, dims(1)
- do j = 1, dims(2)
- if ( buf2(i,j) .ne. buf2r(i,j) ) then
- print *, 'read buffer differs from write buffer'
- print *, buf2r(i,j), ' and ', buf2(i,j)
- stop
- endif
- end do
-end do
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ IF ( buf2(i,j) .NE. buf2r(i,j) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf2r(i,j), ' and ', buf2(i,j)
+ STOP
+ ENDIF
+ END DO
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_REAL
@@ -293,25 +297,25 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, dims(1)
- do j = 1, dims(2)
- if ( buf3(i,j) .ne. buf3r(i,j) ) then
- print *, 'read buffer differs from write buffer'
- print *, buf3r(i,j), ' and ', buf3(i,j)
- stop
- endif
- end do
-end do
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ IF ( buf3(i,j) .NE. buf3r(i,j) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf3r(i,j), ' and ', buf3(i,j)
+ STOP
+ ENDIF
+ END DO
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_DOUBLE
@@ -320,41 +324,41 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, dims(1)
- do j = 1, dims(2)
- if ( buf4(i,j) .ne. buf4r(i,j) ) then
- print *, 'read buffer differs from write buffer'
- print *, buf4r(i,j), ' and ', buf4(i,j)
- stop
- endif
- end do
-end do
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ IF ( buf4(i,j) .NE. buf4r(i,j) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf4r(i,j), ' and ', buf4(i,j)
+ STOP
+ ENDIF
+ END DO
+END DO
!
! Close the file.
!
-call h5fclose_f(file_id, errcode)
+CALL h5fclose_f(file_id, errcode)
!
! Close FORTRAN predefined datatypes.
!
-call h5close_f(errcode)
+CALL h5close_f(errcode)
-call passed()
+CALL passed()
!
! end function.
!
-end subroutine test_dataset2D
+END SUBROUTINE test_dataset2D
!-------------------------------------------------------------------------
@@ -362,71 +366,71 @@ end subroutine test_dataset2D
!-------------------------------------------------------------------------
-subroutine test_dataset3D()
+SUBROUTINE test_dataset3D()
-use H5LT ! module of H5LT
-use HDF5 ! module of HDF5 library
+USE H5LT ! module of H5LT
+USE HDF5 ! module of HDF5 library
-implicit none
+IMPLICIT NONE
-integer, parameter :: DIM1 = 6; ! columns
-integer, parameter :: DIM2 = 4; ! rows
-integer, parameter :: DIM3 = 2; ! layers
-character(len=9), parameter :: filename = "dsetf3.h5" ! File name
-character(LEN=5), parameter :: dsetname1 = "dset1" ! Dataset name
-character(LEN=5), parameter :: dsetname2 = "dset2" ! Dataset name
-character(LEN=5), parameter :: dsetname3 = "dset3" ! Dataset name
-character(LEN=5), parameter :: dsetname4 = "dset4" ! Dataset name
-integer(HID_T) :: file_id ! File identifier
-integer(HSIZE_T), dimension(3) :: dims = (/DIM1,DIM2,DIM3/) ! Dataset dimensions
-integer(HSIZE_T), dimension(3) :: dimsr ! Dataset dimensions
-integer, dimension(DIM1*DIM2*DIM3) :: buf ! Data buffer
-integer, dimension(DIM1*DIM2*DIM3) :: bufr ! Data buffer
-integer, dimension(DIM1,DIM2,DIM3) :: buf2 ! Data buffer
-integer, dimension(DIM1,DIM2,DIM3) :: buf2r ! Data buffer
-real, dimension(DIM1,DIM2,DIM3) :: buf3 ! Data buffer
-real, dimension(DIM1,DIM2,DIM3) :: buf3r ! Data buffer
-double precision, dimension(DIM1,DIM2,DIM3) :: buf4 ! Data buffer
-double precision, dimension(DIM1,DIM2,DIM3) :: buf4r ! Data buffer
-integer :: rank = 3 ! Dataset rank
-integer :: errcode ! Error flag
-integer :: i, j, k, n ! general purpose integers
-integer :: type_class
-integer(SIZE_T) :: type_size
+INTEGER, PARAMETER :: DIM1 = 6; ! columns
+INTEGER, PARAMETER :: DIM2 = 4; ! rows
+INTEGER, PARAMETER :: DIM3 = 2; ! layers
+CHARACTER(len=9), PARAMETER :: filename = "dsetf3.h5" ! File name
+CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname3 = "dset3" ! Dataset name
+CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
+INTEGER(HID_T) :: file_id ! File identifier
+INTEGER(HSIZE_T), DIMENSION(3) :: dims = (/DIM1,DIM2,DIM3/) ! Dataset dimensions
+INTEGER(HSIZE_T), DIMENSION(3) :: dimsr ! Dataset dimensions
+INTEGER, DIMENSION(DIM1*DIM2*DIM3) :: buf ! Data buffer
+INTEGER, DIMENSION(DIM1*DIM2*DIM3) :: bufr ! Data buffer
+INTEGER, DIMENSION(DIM1,DIM2,DIM3) :: buf2 ! Data buffer
+INTEGER, DIMENSION(DIM1,DIM2,DIM3) :: buf2r ! Data buffer
+REAL, DIMENSION(DIM1,DIM2,DIM3) :: buf3 ! Data buffer
+REAL, DIMENSION(DIM1,DIM2,DIM3) :: buf3r ! Data buffer
+DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3) :: buf4 ! Data buffer
+DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3) :: buf4r ! Data buffer
+INTEGER :: rank = 3 ! Dataset rank
+INTEGER :: errcode ! Error flag
+INTEGER :: i, j, k, n ! general purpose integers
+INTEGER :: type_class
+INTEGER(SIZE_T) :: type_size
-call test_begin(' Make/Read datasets (3D) ')
+CALL test_begin(' Make/Read datasets (3D) ')
!
! Initialize the data array.
!
n=1
-do i = 1, DIM1*DIM2*DIM3
+DO i = 1, DIM1*DIM2*DIM3
buf(i) = n;
n = n + 1
-end do
+END DO
n = 1
-do i = 1, dims(1)
- do j = 1, dims(2)
- do k = 1, dims(3)
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
buf2(i,j,k) = n;
buf3(i,j,k) = n;
buf4(i,j,k) = n;
n = n + 1
- end do
- end do
-end do
+ END DO
+ END DO
+END DO
!
! Initialize FORTRAN predefined datatypes.
!
-call h5open_f(errcode)
+CALL h5open_f(errcode)
!
! Create a new file using default properties.
!
-call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
!-------------------------------------------------------------------------
! H5T_NATIVE_INT 1D buffer
@@ -435,23 +439,23 @@ call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname1, rank, dims, H5T_NATIVE_INTEGER, buf, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname1, rank, dims, H5T_NATIVE_INTEGER, buf, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, DIM1*DIM2*DIM3
- if ( buf(i) .ne. bufr(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr(i), ' and ', buf(i)
- stop
- endif
-end do
+DO i = 1, DIM1*DIM2*DIM3
+ IF ( buf(i) .NE. bufr(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr(i), ' and ', buf(i)
+ STOP
+ ENDIF
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_INT 3D buffer
@@ -460,27 +464,27 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname2, rank, dims, H5T_NATIVE_INTEGER, buf2, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims, H5T_NATIVE_INTEGER, buf2, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, buf2r, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, buf2r, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, dims(1)
- do j = 1, dims(2)
- do k = 1, dims(3)
- if ( buf2(i,j,k) .ne. buf2r(i,j,k) ) then
- print *, 'read buffer differs from write buffer'
- print *, buf2r(i,j,k), ' and ', buf2(i,j,k)
- stop
- endif
- end do
- end do
-end do
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
+ IF ( buf2(i,j,k) .NE. buf2r(i,j,k) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf2r(i,j,k), ' and ', buf2(i,j,k)
+ STOP
+ ENDIF
+ END DO
+ END DO
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_REAL
@@ -489,27 +493,27 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, dims(1)
- do j = 1, dims(2)
- do k = 1, dims(3)
- if ( buf3(i,j,k) .ne. buf3r(i,j,k) ) then
- print *, 'read buffer differs from write buffer'
- print *, buf3r(i,j,k), ' and ', buf3(i,j,k)
- stop
- endif
- end do
- end do
-end do
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
+ IF ( buf3(i,j,k) .NE. buf3r(i,j,k) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf3r(i,j,k), ' and ', buf3(i,j,k)
+ STOP
+ ENDIF
+ END DO
+ END DO
+END DO
!-------------------------------------------------------------------------
! H5T_NATIVE_DOUBLE
@@ -518,299 +522,756 @@ end do
!
! write dataset.
!
-call h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
+CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
!
! read dataset.
!
-call h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
+CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
!
! compare read and write buffers.
!
-do i = 1, dims(1)
- do j = 1, dims(2)
- do k = 1, dims(3)
- if ( buf4(i,j,k) .ne. buf4r(i,j,k) ) then
- print *, 'read buffer differs from write buffer'
- print *, buf4r(i,j,k), ' and ', buf4(i,j,k)
- stop
- endif
- end do
- end do
-end do
+DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
+ IF ( buf4(i,j,k) .NE. buf4r(i,j,k) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf4r(i,j,k), ' and ', buf4(i,j,k)
+ STOP
+ ENDIF
+ END DO
+ END DO
+END DO
-call h5ltget_dataset_info_f(file_id,dsetname4,dimsr,type_class,type_size,errcode )
+CALL h5ltget_dataset_info_f(file_id,dsetname4,dimsr,type_class,type_size,errcode )
!
! compare dimensions
!
-do i = 1, rank
- if ( dimsr(i) .ne. dims(i) ) then
- print *, 'dimensions differ '
- stop
- endif
-end do
+DO i = 1, rank
+ IF ( dimsr(i) .NE. dims(i) ) THEN
+ PRINT *, 'dimensions differ '
+ STOP
+ ENDIF
+END DO
!
! Close the file.
!
-call h5fclose_f(file_id, errcode)
+CALL h5fclose_f(file_id, errcode)
!
! Close FORTRAN predefined datatypes.
!
-call h5close_f(errcode)
+CALL h5close_f(errcode)
-call passed()
+CALL passed()
!
! end function.
!
-end subroutine test_dataset3D
-
-
+END SUBROUTINE test_dataset3D
!-------------------------------------------------------------------------
-! test_datasets
+! test_datasetND
!-------------------------------------------------------------------------
-subroutine test_datasets()
-
-use H5LT ! module of H5LT
-use HDF5 ! module of HDF5 library
-
-implicit none
-
-character(len=9), parameter :: filename = "dsetf4.h5"! File name
-integer(HID_T) :: file_id ! File identifier
-integer :: errcode ! Error flag
-integer, parameter :: DIM1 = 10; ! Dimension of array
-character(LEN=5), parameter :: dsetname1 = "dset1" ! Dataset name
-character(LEN=5), parameter :: dsetname2 = "dset2" ! Dataset name
-character(LEN=5), parameter :: dsetname3 = "dset3" ! Dataset name
-character(LEN=5), parameter :: dsetname4 = "dset4" ! Dataset name
-character(LEN=5), parameter :: dsetname5 = "dset5" ! Dataset name
-integer(HSIZE_T), dimension(1) :: dims = (/DIM1/) ! Dataset dimensions
-integer(HSIZE_T), dimension(1) :: dimsr ! Dataset dimensions
-integer :: rank = 1 ! Dataset rank
-integer :: rankr ! Dataset rank
-character(LEN=8), parameter :: buf1 = "mystring" ! Data buffer
-character(LEN=8) :: buf1r ! Data buffer
-integer, dimension(DIM1) :: buf2 ! Data buffer
-integer, dimension(DIM1) :: bufr2 ! Data buffer
-real, dimension(DIM1) :: buf3 ! Data buffer
-real, dimension(DIM1) :: bufr3 ! Data buffer
-double precision, dimension(DIM1) :: buf4 ! Data buffer
-double precision, dimension(DIM1) :: bufr4 ! Data buffer
-integer :: i, n ! general purpose integer
-integer :: has ! general purpose integer
-integer :: type_class
-integer(SIZE_T) :: type_size
-
-!
-! Initialize FORTRAN predefined datatypes.
-!
-call h5open_f(errcode)
-
-!
-! Create a new file using default properties.
-!
-call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+SUBROUTINE test_datasetND(rank)
+
+ USE H5LT ! module of H5LT
+ USE HDF5 ! module of HDF5 library
+
+ IMPLICIT NONE
+
+ INTEGER :: rank ! Dataset rank
+
+ INTEGER, PARAMETER :: DIM1 = 2 ! columns
+ INTEGER, PARAMETER :: DIM2 = 4 ! rows
+ INTEGER, PARAMETER :: DIM3 = 2 ! layers
+ INTEGER, PARAMETER :: DIM4 = 5 ! columns
+ INTEGER, PARAMETER :: DIM5 = 4 ! rows
+ INTEGER, PARAMETER :: DIM6 = 3 ! layers
+ INTEGER, PARAMETER :: DIM7 = 2 ! layers
+ CHARACTER(len=9), PARAMETER :: filename = "dsetf3.h5" ! File name
+ CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname3 = "dset3" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
+ INTEGER(HID_T) :: file_id ! File identifier
+ INTEGER(HSIZE_T), DIMENSION(7) :: dims
+ INTEGER(HSIZE_T), DIMENSION(7) :: dimsr ! Dataset dimensions
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:) :: ibuf_4 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:) :: ibufr_4 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: ibuf_5 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: ibufr_5 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: ibuf_6 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: ibufr_6 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: ibuf_7 ! Data buffer
+ INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: ibufr_7 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: rbuf_4 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: rbufr_4 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: rbuf_5 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: rbufr_5 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: rbuf_6 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: rbufr_6 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: rbuf_7 ! Data buffer
+ REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: rbufr_7 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:) :: dbuf_4 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:) :: dbufr_4 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: dbuf_5 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: dbufr_5 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: dbuf_6 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: dbufr_6 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: dbuf_7 ! Data buffer
+ DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: dbufr_7 ! Data buffer
+ INTEGER :: errcode ! Error flag
+ INTEGER :: i, j, k, l, m, n, o, nn ! general purpose integers
+ INTEGER :: type_class
+ INTEGER(SIZE_T) :: type_size
+ CHARACTER(LEN=1) :: ichr1
+
+ WRITE(ichr1,'(I1.1)') rank
+ CALL test_begin(' Make/Read datasets ('//ichr1//'D) ')
!
! Initialize the data array.
!
-n = 1
-do i = 1, DIM1
- buf2(i) = n;
- buf3(i) = n;
- buf4(i) = n;
- n = n + 1;
-end do
-
-!-------------------------------------------------------------------------
-! int
-!-------------------------------------------------------------------------
+ IF(rank.EQ.4)THEN
+
+ ALLOCATE(ibuf_4 (1:DIM1,1:DIM2,1:DIM3,1:DIM4))
+ ALLOCATE(ibufr_4(1:DIM1,1:DIM2,1:DIM3,1:DIM4))
+ ALLOCATE(rbuf_4 (1:DIM1,1:DIM2,1:DIM3,1:DIM4))
+ ALLOCATE(rbufr_4(1:DIM1,1:DIM2,1:DIM3,1:DIM4))
+ ALLOCATE(dbuf_4 (1:DIM1,1:DIM2,1:DIM3,1:DIM4))
+ ALLOCATE(dbufr_4(1:DIM1,1:DIM2,1:DIM3,1:DIM4))
+
+ dims(1:7) = (/DIM1,DIM2,DIM3,DIM4,0,0,0/)
+
+ nn = 1
+ DO i = 1, DIM1
+ DO j = 1, DIM2
+ DO k = 1, DIM3
+ DO l = 1, DIM4
+ ibuf_4(i,j,k,l) = nn
+ rbuf_4(i,j,k,l) = nn
+ dbuf_4(i,j,k,l) = nn
+ nn = nn + 1
+ END DO
+ END DO
+ END DO
+ ENDDO
+
+ ELSE IF(rank.EQ.5)THEN
+
+ ALLOCATE(ibuf_5 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5))
+ ALLOCATE(ibufr_5(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5))
+ ALLOCATE(rbuf_5 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5))
+ ALLOCATE(rbufr_5(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5))
+ ALLOCATE(dbuf_5 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5))
+ ALLOCATE(dbufr_5(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5))
+
+ dims(1:7) = (/DIM1,DIM2,DIM3,DIM4,DIM5,0,0/)
+
+ nn = 1
+ DO i = 1, DIM1
+ DO j = 1, DIM2
+ DO k = 1, DIM3
+ DO l = 1, DIM4
+ DO m = 1, DIM5
+ ibuf_5(i,j,k,l,m) = nn
+ rbuf_5(i,j,k,l,m) = nn
+ dbuf_5(i,j,k,l,m) = nn
+ nn = nn + 1
+ END DO
+ END DO
+ END DO
+ ENDDO
+ ENDDO
+
+ ELSE IF(rank.EQ.6)THEN
+
+ ALLOCATE(ibuf_6 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6))
+ ALLOCATE(ibufr_6(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6))
+ ALLOCATE(rbuf_6 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6))
+ ALLOCATE(rbufr_6(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6))
+ ALLOCATE(dbuf_6 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6))
+ ALLOCATE(dbufr_6(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6))
+
+ dims(1:7) = (/DIM1,DIM2,DIM3,DIM4,DIM5,DIM6,0/)
+
+ nn = 1
+ DO i = 1, DIM1
+ DO j = 1, DIM2
+ DO k = 1, DIM3
+ DO l = 1, DIM4
+ DO m = 1, DIM5
+ DO n = 1, DIM6
+ ibuf_6(i,j,k,l,m,n) = nn
+ rbuf_6(i,j,k,l,m,n) = nn
+ dbuf_6(i,j,k,l,m,n) = nn
+ nn = nn + 1
+ END DO
+ END DO
+ END DO
+ ENDDO
+ ENDDO
+ ENDDO
+
+ ELSE IF(rank.EQ.7)THEN
+
+ ALLOCATE(ibuf_7 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6,1:DIM7))
+ ALLOCATE(ibufr_7(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6,1:DIM7))
+ ALLOCATE(rbuf_7 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6,1:DIM7))
+ ALLOCATE(rbufr_7(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6,1:DIM7))
+ ALLOCATE(dbuf_7 (1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6,1:DIM7))
+ ALLOCATE(dbufr_7(1:DIM1,1:DIM2,1:DIM3,1:DIM4,1:DIM5,1:DIM6,1:DIM7))
+
+ dims(1:7) = (/DIM1,DIM2,DIM3,DIM4,DIM5,DIM6,DIM7/)
+
+ nn = 1
+ DO i = 1, DIM1
+ DO j = 1, DIM2
+ DO k = 1, DIM3
+ DO l = 1, DIM4
+ DO m = 1, DIM5
+ DO n = 1, DIM6
+ DO o = 1, DIM7
+ ibuf_7(i,j,k,l,m,n,o) = nn
+ rbuf_7(i,j,k,l,m,n,o) = nn
+ dbuf_7(i,j,k,l,m,n,o) = nn
+ nn = nn + 1
+ END DO
+ END DO
+ END DO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+
+ ENDIF
+
+ !
+ ! Initialize FORTRAN predefined datatypes.
+ !
+ CALL h5open_f(errcode)
+
+ !
+ ! Create a new file using default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+
+ !-------------------------------------------------------------------------
+ ! H5T_NATIVE_INT ND buffer
+ !-------------------------------------------------------------------------
+
+ !
+ ! write dataset.
+ !
+ IF(rank.EQ.4)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_4, errcode)
+ ELSE IF(rank.EQ.5)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_5, errcode)
+ ELSE IF(rank.EQ.6)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_6, errcode)
+ ELSE IF(rank.EQ.7)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_7, errcode)
+ ENDIF
+
+
+ !
+ ! read dataset.
+ !
+ IF(rank.EQ.4)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_4, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.5)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_5, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.6)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_6, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.7)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_7, dims(1:rank), errcode)
+ ENDIF
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
+ DO l = 1, dims(4)
+ IF(rank.EQ.4)THEN
+ IF ( ibuf_4(i,j,k,l) .NE. ibufr_4(i,j,k,l) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, ibuf_4(i,j,k,l), ' and ', ibufr_4(i,j,k,l)
+ STOP
+ ENDIF
+ ENDIF
+ DO m = 1, dims(5)
+ IF(rank.EQ.5)THEN
+ IF ( ibuf_5(i,j,k,l,m) .NE. ibufr_5(i,j,k,l,m) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, ibuf_5(i,j,k,l,m), ' and ', ibufr_5(i,j,k,l,m)
+ STOP
+ ENDIF
+ ENDIF
+ DO n = 1, dims(6)
+ IF(rank.EQ.6)THEN
+ IF ( ibuf_6(i,j,k,l,m,n) .NE. ibufr_6(i,j,k,l,m,n) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, ibuf_6(i,j,k,l,m,n), ' and ', ibufr_6(i,j,k,l,m,n)
+ STOP
+ ENDIF
+ ENDIF
+ DO o = 1, dims(7)
+ IF(rank.EQ.7)THEN
+ IF ( ibuf_7(i,j,k,l,m,n,o) .NE. ibufr_7(i,j,k,l,m,n,o) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, ibuf_7(i,j,k,l,m,n,o), ' and ', ibufr_7(i,j,k,l,m,n,o)
+ STOP
+ ENDIF
+ ENDIF
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ !-------------------------------------------------------------------------
+ ! H5T_NATIVE_REAL
+ !-------------------------------------------------------------------------
+
+ !
+ ! write dataset.
+ !
+ IF(rank.EQ.4)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_4, errcode)
+ ELSE IF(rank.EQ.5)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_5, errcode)
+ ELSE IF(rank.EQ.6)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_6, errcode)
+ ELSE IF(rank.EQ.7)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_7, errcode)
+ ENDIF
+
+
+ !
+ ! read dataset.
+ !
+ IF(rank.EQ.4)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_4, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.5)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_5, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.6)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_6, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.7)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_7, dims(1:rank), errcode)
+ ENDIF
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
+ DO l = 1, dims(4)
+ IF(rank.EQ.4)THEN
+ IF ( rbuf_4(i,j,k,l) .NE. rbufr_4(i,j,k,l) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, rbuf_4(i,j,k,l), ' and ', rbufr_4(i,j,k,l)
+ STOP
+ ENDIF
+ ENDIF
+ DO m = 1, dims(5)
+ IF(rank.EQ.5)THEN
+ IF ( rbuf_5(i,j,k,l,m) .NE. rbufr_5(i,j,k,l,m) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, rbuf_5(i,j,k,l,m), ' and ', rbufr_5(i,j,k,l,m)
+ STOP
+ ENDIF
+ ENDIF
+ DO n = 1, dims(6)
+ IF(rank.EQ.6)THEN
+ IF ( rbuf_6(i,j,k,l,m,n) .NE. rbufr_6(i,j,k,l,m,n) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, rbuf_6(i,j,k,l,m,n), ' and ', rbufr_6(i,j,k,l,m,n)
+ STOP
+ ENDIF
+ ENDIF
+ DO o = 1, dims(7)
+ IF(rank.EQ.7)THEN
+ IF ( rbuf_7(i,j,k,l,m,n,o) .NE. rbufr_7(i,j,k,l,m,n,o) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, rbuf_7(i,j,k,l,m,n,o), ' and ', rbufr_7(i,j,k,l,m,n,o)
+ STOP
+ ENDIF
+ ENDIF
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+
+ !-------------------------------------------------------------------------
+ ! H5T_NATIVE_DOUBLE
+ !-------------------------------------------------------------------------
+
+ !
+ ! write dataset.
+ !
+ IF(rank.EQ.4)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_4, errcode)
+ ELSE IF(rank.EQ.5)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_5, errcode)
+ ELSE IF(rank.EQ.6)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_6, errcode)
+ ELSE IF(rank.EQ.7)THEN
+ CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_7, errcode)
+ ENDIF
+
+
+ !
+ ! read dataset.
+ !
+ IF(rank.EQ.4)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_4, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.5)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_5, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.6)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_6, dims(1:rank), errcode)
+ ELSE IF(rank.EQ.7)THEN
+ CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_7, dims(1:rank), errcode)
+ ENDIF
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ DO k = 1, dims(3)
+ DO l = 1, dims(4)
+ IF(rank.EQ.4)THEN
+ IF ( dbuf_4(i,j,k,l) .NE. dbufr_4(i,j,k,l) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, dbuf_4(i,j,k,l), ' and ', dbufr_4(i,j,k,l)
+ STOP
+ ENDIF
+ ENDIF
+ DO m = 1, dims(5)
+ IF(rank.EQ.5)THEN
+ IF ( dbuf_5(i,j,k,l,m) .NE. dbufr_5(i,j,k,l,m) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, dbuf_5(i,j,k,l,m), ' and ', dbufr_5(i,j,k,l,m)
+ STOP
+ ENDIF
+ ENDIF
+ DO n = 1, dims(6)
+ IF(rank.EQ.6)THEN
+ IF ( dbuf_6(i,j,k,l,m,n) .NE. dbufr_6(i,j,k,l,m,n) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, dbuf_6(i,j,k,l,m,n), ' and ', dbufr_6(i,j,k,l,m,n)
+ STOP
+ ENDIF
+ ENDIF
+ DO o = 1, dims(7)
+ IF(rank.EQ.7)THEN
+ IF ( dbuf_7(i,j,k,l,m,n,o) .NE. dbufr_7(i,j,k,l,m,n,o) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, dbuf_7(i,j,k,l,m,n,o), ' and ', dbufr_7(i,j,k,l,m,n,o)
+ STOP
+ ENDIF
+ ENDIF
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+ ENDDO
+
+ CALL h5ltget_dataset_info_f(file_id,dsetname4,dimsr,type_class,type_size,errcode )
+
+ !
+ ! compare dimensions
+ !
+ DO i = 1, rank
+ IF ( dimsr(i) .NE. dims(i) ) THEN
+ PRINT *, 'dimensions differ '
+ STOP
+ ENDIF
+ END DO
+
+ !
+ ! Close the file.
+ !
+ CALL h5fclose_f(file_id, errcode)
+
+ !
+ ! Close FORTRAN predefined datatypes.
+ !
+ CALL h5close_f(errcode)
+
+ ! DEALLOCATE RESOURCES
+
+ IF(rank.EQ.4)THEN
+ DEALLOCATE(ibuf_4, ibufr_4, rbuf_4, rbufr_4, dbuf_4, dbufr_4)
+ ELSE IF(rank.EQ.5)THEN
+ DEALLOCATE(ibuf_5, ibufr_5, rbuf_5, rbufr_5, dbuf_5, dbufr_5)
+ ELSE IF(rank.EQ.6)THEN
+ DEALLOCATE(ibuf_6, ibufr_6, rbuf_6, rbufr_6, dbuf_6, dbufr_6)
+ ELSE IF(rank.EQ.7)THEN
+ DEALLOCATE(ibuf_7, ibufr_7, rbuf_7, rbufr_7, dbuf_7, dbufr_7)
+ ENDIF
+
+ CALL passed()
+ !
+ ! end function.
+ !
+END SUBROUTINE test_datasetND
-call test_begin(' Make/Read datasets (integer) ')
-!
-! write dataset.
-!
-call h5ltmake_dataset_int_f(file_id, dsetname2, rank, dims, buf2, errcode)
-
-!
-! read dataset.
-!
-call h5ltread_dataset_int_f(file_id, dsetname2, bufr2, dims, errcode)
-
-!
-! compare read and write buffers.
-!
-do i = 1, DIM1
- if ( buf2(i) .ne. bufr2(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr2(i), ' and ', buf2(i)
- stop
- endif
-end do
-
-call passed()
!-------------------------------------------------------------------------
-! real
+! test_datasets
!-------------------------------------------------------------------------
-call test_begin(' Make/Read datasets (float) ')
+SUBROUTINE test_datasets()
+
+ USE H5LT ! module of H5LT
+ USE HDF5 ! module of HDF5 library
+
+ IMPLICIT NONE
+
+ CHARACTER(len=9), PARAMETER :: filename = "dsetf4.h5"! File name
+ INTEGER(HID_T) :: file_id ! File identifier
+ INTEGER :: errcode ! Error flag
+ INTEGER, PARAMETER :: DIM1 = 10; ! Dimension of array
+ CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname3 = "dset3" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname5 = "dset5" ! Dataset name
+ INTEGER(HSIZE_T), DIMENSION(1) :: dims = (/DIM1/) ! Dataset dimensions
+ INTEGER(HSIZE_T), DIMENSION(1) :: dimsr ! Dataset dimensions
+ INTEGER :: rank = 1 ! Dataset rank
+ INTEGER :: rankr ! Dataset rank
+ CHARACTER(LEN=8), PARAMETER :: buf1 = "mystring" ! Data buffer
+ CHARACTER(LEN=8) :: buf1r ! Data buffer
+ INTEGER, DIMENSION(DIM1) :: buf2 ! Data buffer
+ INTEGER, DIMENSION(DIM1) :: bufr2 ! Data buffer
+ REAL, DIMENSION(DIM1) :: buf3 ! Data buffer
+ REAL, DIMENSION(DIM1) :: bufr3 ! Data buffer
+ DOUBLE PRECISION, DIMENSION(DIM1) :: buf4 ! Data buffer
+ DOUBLE PRECISION, DIMENSION(DIM1) :: bufr4 ! Data buffer
+ INTEGER :: i, n ! general purpose integer
+ INTEGER :: has ! general purpose integer
+ INTEGER :: type_class
+ INTEGER(SIZE_T) :: type_size
+
+ !
+ ! Initialize FORTRAN predefined datatypes.
+ !
+ CALL h5open_f(errcode)
+
+ !
+ ! Create a new file using default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+
+ !
+ ! Initialize the data array.
+ !
+ n = 1
+ DO i = 1, DIM1
+ buf2(i) = n;
+ buf3(i) = n;
+ buf4(i) = n;
+ n = n + 1;
+ END DO
+
+ !-------------------------------------------------------------------------
+ ! int
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Make/Read datasets (integer) ')
+
+ !
+ ! write dataset.
+ !
+ CALL h5ltmake_dataset_int_f(file_id, dsetname2, rank, dims, buf2, errcode)
+
+ !
+ ! read dataset.
+ !
+ CALL h5ltread_dataset_int_f(file_id, dsetname2, bufr2, dims, errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, DIM1
+ IF ( buf2(i) .NE. bufr2(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr2(i), ' and ', buf2(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL passed()
+
+ !-------------------------------------------------------------------------
+ ! real
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Make/Read datasets (float) ')
+
+
+ !
+ ! write dataset.
+ !
+ CALL h5ltmake_dataset_float_f(file_id, dsetname3, rank, dims, buf3, errcode)
+
+ !
+ ! read dataset.
+ !
+ CALL h5ltread_dataset_float_f(file_id, dsetname3, bufr3, dims, errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, DIM1
+ IF ( buf3(i) .NE. bufr3(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr3(i), ' and ', buf3(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL passed()
+
+ !-------------------------------------------------------------------------
+ ! double
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Make/Read datasets (double) ')
+
+
+ !
+ ! write dataset.
+ !
+ CALL h5ltmake_dataset_double_f(file_id, dsetname4, rank, dims, buf4, errcode)
+
+ !
+ ! read dataset.
+ !
+ CALL h5ltread_dataset_double_f(file_id, dsetname4, bufr4, dims, errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, DIM1
+ IF ( buf4(i) .NE. bufr4(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr4(i), ' and ', buf4(i)
+ STOP
+ ENDIF
+ END DO
+ CALL passed()
-!
-! write dataset.
-!
-call h5ltmake_dataset_float_f(file_id, dsetname3, rank, dims, buf3, errcode)
-!
-! read dataset.
-!
-call h5ltread_dataset_float_f(file_id, dsetname3, bufr3, dims, errcode)
-
-!
-! compare read and write buffers.
-!
-do i = 1, DIM1
- if ( buf3(i) .ne. bufr3(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr3(i), ' and ', buf3(i)
- stop
- endif
-end do
+ !-------------------------------------------------------------------------
+ ! string
+ !-------------------------------------------------------------------------
-call passed()
+ CALL test_begin(' Make/Read datasets (string) ')
-!-------------------------------------------------------------------------
-! double
-!-------------------------------------------------------------------------
-
-call test_begin(' Make/Read datasets (double) ')
+ !
+ ! write dataset.
+ !
+ CALL h5ltmake_dataset_string_f(file_id, dsetname5, buf1, errcode)
-!
-! write dataset.
-!
-call h5ltmake_dataset_double_f(file_id, dsetname4, rank, dims, buf4, errcode)
+ !
+ ! read dataset.
+ !
+ CALL h5ltread_dataset_string_f(file_id, dsetname5, buf1r, errcode)
-!
-! read dataset.
-!
-call h5ltread_dataset_double_f(file_id, dsetname4, bufr4, dims, errcode)
+ !
+ ! compare read and write buffers.
+ !
+ IF ( buf1 .NE. buf1r ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf1, ' and ', buf1r
+ STOP
+ ENDIF
-!
-! compare read and write buffers.
-!
-do i = 1, DIM1
- if ( buf4(i) .ne. bufr4(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr4(i), ' and ', buf4(i)
- stop
- endif
-end do
+ CALL passed()
-call passed()
-!-------------------------------------------------------------------------
-! string
-!-------------------------------------------------------------------------
-call test_begin(' Make/Read datasets (string) ')
-!
-! write dataset.
-!
-call h5ltmake_dataset_string_f(file_id, dsetname5, buf1, errcode)
+ CALL test_begin(' Get dataset dimensions/info ')
-!
-! read dataset.
-!
-call h5ltread_dataset_string_f(file_id, dsetname5, buf1r, errcode)
+ !-------------------------------------------------------------------------
+ ! h5ltget_dataset_ndims_f
+ !-------------------------------------------------------------------------
-!
-! compare read and write buffers.
-!
-if ( buf1 .ne. buf1r ) then
- print *, 'read buffer differs from write buffer'
- print *, buf1, ' and ', buf1r
- stop
-endif
+ CALL h5ltget_dataset_ndims_f(file_id, dsetname4, rankr, errcode)
+ IF ( rankr .NE. rank ) THEN
+ PRINT *, 'h5ltget_dataset_ndims_f return error'
+ STOP
+ ENDIF
-call passed()
+ !-------------------------------------------------------------------------
+ ! test h5ltfind_dataset_f function
+ !-------------------------------------------------------------------------
+ has = h5ltfind_dataset_f(file_id,dsetname4)
+ IF ( has .NE. 1 ) THEN
+ PRINT *, 'h5ltfind_dataset_f return error'
+ STOP
+ ENDIF
+ !-------------------------------------------------------------------------
+ ! test h5ltget_dataset_info_f function
+ !-------------------------------------------------------------------------
-call test_begin(' Get dataset dimensions/info ')
+ CALL h5ltget_dataset_info_f(file_id,dsetname4,dimsr,type_class,type_size,errcode )
-!-------------------------------------------------------------------------
-! h5ltget_dataset_ndims_f
-!-------------------------------------------------------------------------
+ !
+ ! compare dimensions
+ !
+ DO i = 1, rank
+ IF ( dimsr(i) .NE. dims(i) ) THEN
+ PRINT *, 'dimensions differ '
+ STOP
+ ENDIF
+ END DO
-call h5ltget_dataset_ndims_f(file_id, dsetname4, rankr, errcode)
-if ( rankr .ne. rank ) then
- print *, 'h5ltget_dataset_ndims_f return error'
- stop
-endif
+ IF ( type_class .NE. 1 ) THEN ! H5T_FLOAT
+ PRINT *, 'wrong type class '
+ STOP
+ ENDIF
+ !
+ ! Close the file.
+ !
+ CALL h5fclose_f(file_id, errcode)
+ !
+ ! Close FORTRAN predefined datatypes.
+ !
+ CALL h5close_f(errcode)
-!-------------------------------------------------------------------------
-! test h5ltfind_dataset_f function
-!-------------------------------------------------------------------------
-
-
-has = h5ltfind_dataset_f(file_id,dsetname4)
-if ( has .ne. 1 ) then
- print *, 'h5ltfind_dataset_f return error'
- stop
-endif
-
-!-------------------------------------------------------------------------
-! test h5ltget_dataset_info_f function
-!-------------------------------------------------------------------------
-
-
-call h5ltget_dataset_info_f(file_id,dsetname4,dimsr,type_class,type_size,errcode )
-
-!
-! compare dimensions
-!
-do i = 1, rank
- if ( dimsr(i) .ne. dims(i) ) then
- print *, 'dimensions differ '
- stop
- endif
-end do
-
-if ( type_class .ne. 1 ) then ! H5T_FLOAT
- print *, 'wrong type class '
- stop
-endif
-
-!
-! Close the file.
-!
-call h5fclose_f(file_id, errcode)
-!
-! Close FORTRAN predefined datatypes.
-!
-call h5close_f(errcode)
-
-call passed()
-!
-! end function.
-!
-end subroutine test_datasets
+ CALL passed()
+ !
+ ! end function.
+ !
+END SUBROUTINE test_datasets
@@ -818,232 +1279,232 @@ end subroutine test_datasets
! test_attributes
!-------------------------------------------------------------------------
-subroutine test_attributes()
-
-use H5LT ! module of H5LT
-use HDF5 ! module of HDF5 library
-
-implicit none
-
-character(len=9), parameter :: filename = "dsetf5.h5"! File name
-integer(HID_T) :: file_id ! File identifier
-integer, parameter :: DIM1 = 10; ! Dimension of array
-character(LEN=5), parameter :: attrname1 = "attr1" ! Attribute name
-character(LEN=5), parameter :: attrname2 = "attr2" ! Attribute name
-character(LEN=5), parameter :: attrname3 = "attr3" ! Attribute name
-character(LEN=5), parameter :: attrname4 = "attr4" ! Attribute name
-character(LEN=5), parameter :: attrname5 = "attr5" ! Attribute name
-character(LEN=8), parameter :: buf1 = "mystring" ! Data buffer
-character(LEN=8) :: bufr1 ! Data buffer
-integer, dimension(DIM1) :: buf2 ! Data buffer
-integer, dimension(DIM1) :: bufr2 ! Data buffer
-real, dimension(DIM1) :: buf3 ! Data buffer
-real, dimension(DIM1) :: bufr3 ! Data buffer
-double precision, dimension(DIM1) :: buf4 ! Data buffer
-double precision, dimension(DIM1) :: bufr4 ! Data buffer
-integer :: errcode ! Error flag
-integer :: i, n ! general purpose integer
-integer(SIZE_T) size ! size of attribute array
-integer :: rankr ! rank
-integer(HSIZE_T), dimension(1) :: dimsr ! attribute dimensions
-integer :: type_class
-integer(SIZE_T) :: type_size
-integer(HSIZE_T), dimension(1) :: dims = (/DIM1/) ! Dataset dimensions
-integer :: rank = 1 ! Dataset rank
-character(LEN=5), parameter :: dsetname1 = "dset1" ! Dataset name
-integer, dimension(DIM1) :: buf ! Data buffer
+SUBROUTINE test_attributes()
+
+ USE H5LT ! module of H5LT
+ USE HDF5 ! module of HDF5 library
+
+ IMPLICIT NONE
+
+ CHARACTER(len=9), PARAMETER :: filename = "dsetf5.h5"! File name
+ INTEGER(HID_T) :: file_id ! File identifier
+ INTEGER, PARAMETER :: DIM1 = 10; ! Dimension of array
+ CHARACTER(LEN=5), PARAMETER :: attrname1 = "attr1" ! Attribute name
+ CHARACTER(LEN=5), PARAMETER :: attrname2 = "attr2" ! Attribute name
+ CHARACTER(LEN=5), PARAMETER :: attrname3 = "attr3" ! Attribute name
+ CHARACTER(LEN=5), PARAMETER :: attrname4 = "attr4" ! Attribute name
+ CHARACTER(LEN=5), PARAMETER :: attrname5 = "attr5" ! Attribute name
+ CHARACTER(LEN=8), PARAMETER :: buf1 = "mystring" ! Data buffer
+ CHARACTER(LEN=8) :: bufr1 ! Data buffer
+ INTEGER, DIMENSION(DIM1) :: buf2 ! Data buffer
+ INTEGER, DIMENSION(DIM1) :: bufr2 ! Data buffer
+ REAL, DIMENSION(DIM1) :: buf3 ! Data buffer
+ REAL, DIMENSION(DIM1) :: bufr3 ! Data buffer
+ DOUBLE PRECISION, DIMENSION(DIM1) :: buf4 ! Data buffer
+ DOUBLE PRECISION, DIMENSION(DIM1) :: bufr4 ! Data buffer
+ INTEGER :: errcode ! Error flag
+ INTEGER :: i, n ! general purpose integer
+ INTEGER(SIZE_T) size ! size of attribute array
+ INTEGER :: rankr ! rank
+ INTEGER(HSIZE_T), DIMENSION(1) :: dimsr ! attribute dimensions
+ INTEGER :: type_class
+ INTEGER(SIZE_T) :: type_size
+ INTEGER(HSIZE_T), DIMENSION(1) :: dims = (/DIM1/) ! Dataset dimensions
+ INTEGER :: rank = 1 ! Dataset rank
+ CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+ INTEGER, DIMENSION(DIM1) :: buf ! Data buffer
+
+ !
+ ! Initialize FORTRAN predefined datatypes.
+ !
+ CALL h5open_f(errcode)
+ !
+ ! Create a new file using default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+ !
+ ! make a dataset.
+ !
+ CALL h5ltmake_dataset_int_f(file_id, dsetname1, rank, dims, buf, errcode)
+
+ !
+ ! Initialize the data array.
+ !
+ size = DIM1
+ n = 1
+ DO i = 1, DIM1
+ buf2(i) = n;
+ buf3(i) = n;
+ buf4(i) = n;
+ n = n + 1;
+ END DO
+
+
+ !-------------------------------------------------------------------------
+ ! int
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Set/Get attributes int ')
+
+
+ !
+ ! write attribute.
+ !
+ CALL h5ltset_attribute_int_f(file_id,dsetname1,attrname2,buf2,size,errcode)
+
+ !
+ ! read attribute.
+ !
+ CALL h5ltget_attribute_int_f(file_id,dsetname1,attrname2,bufr2,errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, DIM1
+ IF ( buf2(i) .NE. bufr2(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr2(i), ' and ', buf2(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL passed()
+
+ !-------------------------------------------------------------------------
+ ! float
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Set/Get attributes float ')
+
+
+ !
+ ! write attribute.
+ !
+ CALL h5ltset_attribute_float_f(file_id,dsetname1,attrname3,buf3,size,errcode)
+
+ !
+ ! read attribute.
+ !
+ CALL h5ltget_attribute_float_f(file_id,dsetname1,attrname3,bufr3,errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, DIM1
+ IF ( buf3(i) .NE. bufr3(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr3(i), ' and ', buf3(i)
+ STOP
+ ENDIF
+ END DO
+
+
+ CALL passed()
+
+ !-------------------------------------------------------------------------
+ ! double
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Set/Get attributes double ')
+
-!
-! Initialize FORTRAN predefined datatypes.
-!
-call h5open_f(errcode)
-!
-! Create a new file using default properties.
-!
-call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
-!
-! make a dataset.
-!
-call h5ltmake_dataset_int_f(file_id, dsetname1, rank, dims, buf, errcode)
+ !
+ ! write attribute.
+ !
+ CALL h5ltset_attribute_double_f(file_id,dsetname1,attrname4,buf4,size,errcode)
-!
-! Initialize the data array.
-!
-size = DIM1
-n = 1
-do i = 1, DIM1
- buf2(i) = n;
- buf3(i) = n;
- buf4(i) = n;
- n = n + 1;
-end do
+ !
+ ! read attribute.
+ !
+ CALL h5ltget_attribute_double_f(file_id,dsetname1,attrname4,bufr4,errcode)
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, DIM1
+ IF ( buf4(i) .NE. bufr4(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufr4(i), ' and ', buf4(i)
+ STOP
+ ENDIF
+ END DO
-!-------------------------------------------------------------------------
-! int
-!-------------------------------------------------------------------------
+ CALL passed()
-call test_begin(' Set/Get attributes int ')
-!
-! write attribute.
-!
-call h5ltset_attribute_int_f(file_id,dsetname1,attrname2,buf2,size,errcode)
+ !-------------------------------------------------------------------------
+ ! string
+ !-------------------------------------------------------------------------
-!
-! read attribute.
-!
-call h5ltget_attribute_int_f(file_id,dsetname1,attrname2,bufr2,errcode)
+ CALL test_begin(' Set/Get attributes string ')
-!
-! compare read and write buffers.
-!
-do i = 1, DIM1
- if ( buf2(i) .ne. bufr2(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr2(i), ' and ', buf2(i)
- stop
- endif
-end do
-call passed()
+ !
+ ! write attribute.
+ !
+ CALL h5ltset_attribute_string_f(file_id,dsetname1,attrname5,buf1,errcode)
-!-------------------------------------------------------------------------
-! float
-!-------------------------------------------------------------------------
+ !
+ ! read attribute.
+ !
+ CALL h5ltget_attribute_string_f(file_id,dsetname1,attrname5,bufr1,errcode)
-call test_begin(' Set/Get attributes float ')
+ !
+ ! compare read and write buffers.
+ !
+ IF ( buf1 .NE. bufr1 ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, buf1, ' and ', bufr1
+ STOP
+ ENDIF
-!
-! write attribute.
-!
-call h5ltset_attribute_float_f(file_id,dsetname1,attrname3,buf3,size,errcode)
-!
-! read attribute.
-!
-call h5ltget_attribute_float_f(file_id,dsetname1,attrname3,bufr3,errcode)
+ CALL passed()
-!
-! compare read and write buffers.
-!
-do i = 1, DIM1
- if ( buf3(i) .ne. bufr3(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr3(i), ' and ', buf3(i)
- stop
- endif
-end do
+ !-------------------------------------------------------------------------
+ ! get attribute rank
+ !-------------------------------------------------------------------------
+ CALL test_begin(' Get attribute rank/info ')
-call passed()
-
-!-------------------------------------------------------------------------
-! double
-!-------------------------------------------------------------------------
-
-call test_begin(' Set/Get attributes double ')
+ CALL h5ltget_attribute_ndims_f(file_id,dsetname1,attrname2,rankr,errcode)
-!
-! write attribute.
-!
-call h5ltset_attribute_double_f(file_id,dsetname1,attrname4,buf4,size,errcode)
+ IF ( rankr .NE. 1 ) THEN
+ PRINT *, 'h5ltget_attribute_ndims_f return error'
+ STOP
+ ENDIF
-!
-! read attribute.
-!
-call h5ltget_attribute_double_f(file_id,dsetname1,attrname4,bufr4,errcode)
-!
-! compare read and write buffers.
-!
-do i = 1, DIM1
- if ( buf4(i) .ne. bufr4(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufr4(i), ' and ', buf4(i)
- stop
- endif
-end do
+ CALL h5ltget_attribute_info_f(file_id,dsetname1,attrname2,dimsr,type_class,type_size,errcode)
-call passed()
+ !
+ ! compare dimensions
+ !
+ DO i = 1, rank
+ IF ( dimsr(i) .NE. dims(i) ) THEN
+ PRINT *, 'dimensions differ '
+ STOP
+ ENDIF
+ END DO
+ !
+ ! Close the file.
+ !
+ CALL h5fclose_f(file_id, errcode)
+ !
+ ! Close FORTRAN predefined datatypes.
+ !
+ CALL h5close_f(errcode)
-!-------------------------------------------------------------------------
-! string
-!-------------------------------------------------------------------------
-
-call test_begin(' Set/Get attributes string ')
-
-
-!
-! write attribute.
-!
-call h5ltset_attribute_string_f(file_id,dsetname1,attrname5,buf1,errcode)
-
-!
-! read attribute.
-!
-call h5ltget_attribute_string_f(file_id,dsetname1,attrname5,bufr1,errcode)
-
-!
-! compare read and write buffers.
-!
-
-if ( buf1 .ne. bufr1 ) then
- print *, 'read buffer differs from write buffer'
- print *, buf1, ' and ', bufr1
- stop
- endif
-
-
-call passed()
-
-!-------------------------------------------------------------------------
-! get attribute rank
-!-------------------------------------------------------------------------
-
-call test_begin(' Get attribute rank/info ')
-
-
-call h5ltget_attribute_ndims_f(file_id,dsetname1,attrname2,rankr,errcode)
-
-if ( rankr .ne. 1 ) then
- print *, 'h5ltget_attribute_ndims_f return error'
- stop
-endif
-
-
-call h5ltget_attribute_info_f(file_id,dsetname1,attrname2,dimsr,type_class,type_size,errcode)
-
-!
-! compare dimensions
-!
-do i = 1, rank
- if ( dimsr(i) .ne. dims(i) ) then
- print *, 'dimensions differ '
- stop
- endif
-end do
-
-
-!
-! Close the file.
-!
-call h5fclose_f(file_id, errcode)
-!
-! Close FORTRAN predefined datatypes.
-!
-call h5close_f(errcode)
-
-call passed()
-!
-! end function.
-!
-end subroutine test_attributes
+ CALL passed()
+ !
+ ! end function.
+ !
+END SUBROUTINE test_attributes
@@ -1054,16 +1515,16 @@ end subroutine test_attributes
! test_begin
!-------------------------------------------------------------------------
-subroutine test_begin(string)
-character(LEN=*), intent(IN) :: string
-write(*, fmt = '(14a)', advance = 'no') string
-write(*, fmt = '(40x,a)', advance = 'no') ' '
-end subroutine test_begin
+SUBROUTINE test_begin(string)
+ CHARACTER(LEN=*), INTENT(IN) :: string
+ WRITE(*, fmt = '(14a)', advance = 'no') string
+ WRITE(*, fmt = '(40x,a)', advance = 'no') ' '
+END SUBROUTINE test_begin
!-------------------------------------------------------------------------
! passed
!-------------------------------------------------------------------------
-subroutine passed()
-write(*, fmt = '(6a)') 'PASSED'
-end subroutine passed
+SUBROUTINE passed()
+ WRITE(*, fmt = '(6a)') 'PASSED'
+END SUBROUTINE passed
diff --git a/hl/fortran/test/tsttable.f90 b/hl/fortran/test/tsttable.f90
index a6ce27f..66ec5c6 100755
--- a/hl/fortran/test/tsttable.f90
+++ b/hl/fortran/test/tsttable.f90
@@ -17,420 +17,435 @@
! This file contains the FORTRAN90 tests for H5LT
!
-program table_test
+PROGRAM table_test
-call test_table1()
+ CALL test_table1()
-end program table_test
+END PROGRAM table_test
!-------------------------------------------------------------------------
! test_table1
!-------------------------------------------------------------------------
-subroutine test_table1()
-
-use H5TB ! module of H5TB
-use HDF5 ! module of HDF5 library
-
-implicit none
-
-character(len=8), parameter :: filename = "f1tab.h5" ! File name
-character(LEN=5), parameter :: dsetname1 = "dset1" ! Dataset name
-integer(HID_T) :: file_id ! File identifier
-integer(HSIZE_T), parameter :: nfields = 4; ! nfields
-integer(HSIZE_T), parameter :: nrecords = 5; ! nrecords
-character(LEN=6), dimension(nfields) :: field_names ! field names
-integer(SIZE_T), dimension(nfields) :: field_offset ! field offset
-integer(HID_T), dimension(nfields) :: field_types ! field types
-integer(HSIZE_T), parameter :: chunk_size = 5 ! chunk size
-integer, parameter :: compress = 0 ! compress
-integer :: errcode ! Error flag
-integer :: i ! general purpose integer
-integer(SIZE_T) :: type_size ! Size of the datatype
-integer(SIZE_T) :: type_sizec ! Size of the character datatype
-integer(SIZE_T) :: type_sizei ! Size of the integer datatype
-integer(SIZE_T) :: type_sized ! Size of the double precision datatype
-integer(SIZE_T) :: type_sizer ! Size of the real datatype
-integer(HID_T) :: type_id_c ! Memory datatype identifier (for character field)
-integer(SIZE_T) :: offset ! Member's offset
-integer(HSIZE_T) :: start = 0 ! start record
-integer, dimension(nrecords) :: bufi ! Data buffer
-integer, dimension(nrecords) :: bufir ! Data buffer
-real, dimension(nrecords) :: bufr ! Data buffer
-real, dimension(nrecords) :: bufrr ! Data buffer
-double precision, dimension(nrecords) :: bufd ! Data buffer
-double precision, dimension(nrecords) :: bufdr ! Data buffer
-character(LEN=2), dimension(nrecords), parameter :: bufs = (/"AB","CD","EF","GH","IJ"/) ! Data buffer
-character(LEN=2), dimension(nrecords) :: bufsr ! Data buffer
-integer(HSIZE_T) :: nfieldsr ! nfields
-integer(HSIZE_T) :: nrecordsr ! nrecords
-character(LEN=6), dimension(nfields) :: field_namesr ! field names
-integer(SIZE_T), dimension(nfields) :: field_offsetr ! field offset
-integer(SIZE_T), dimension(nfields) :: field_sizesr ! field sizes
-integer(SIZE_T) :: type_sizeout ! size of the datatype
+SUBROUTINE test_table1()
+
+ USE H5TB ! module of H5TB
+ USE HDF5 ! module of HDF5 library
+
+ IMPLICIT NONE
+
+ CHARACTER(len=8), PARAMETER :: filename = "f1tab.h5" ! File name
+ CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+ INTEGER(HID_T) :: file_id ! File identifier
+ INTEGER(HSIZE_T), PARAMETER :: nfields = 4 ! nfields
+ INTEGER(HSIZE_T), PARAMETER :: nrecords = 5 ! nrecords
+ CHARACTER(LEN=10),DIMENSION(1:nfields) :: field_names ! field names
+ INTEGER(SIZE_T), DIMENSION(1:nfields) :: field_offset ! field offset
+ INTEGER(HID_T), DIMENSION(1:nfields) :: field_types ! field types
+ INTEGER(HSIZE_T), PARAMETER :: chunk_size = 5 ! chunk size
+ INTEGER, PARAMETER :: compress = 0 ! compress
+ INTEGER :: errcode = 0 ! Error flag
+ INTEGER :: i ! general purpose integer
+ INTEGER(SIZE_T) :: type_size ! Size of the datatype
+ INTEGER(SIZE_T) :: type_sizec ! Size of the character datatype
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sized ! Size of the double precision datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+ INTEGER(HID_T) :: type_id_c ! Memory datatype identifier (for character field)
+ INTEGER(SIZE_T) :: offset ! Member's offset
+ INTEGER(HSIZE_T) :: start = 0 ! start record
+ INTEGER, DIMENSION(nrecords) :: bufi ! Data buffer
+ INTEGER, DIMENSION(nrecords) :: bufir ! Data buffer
+ REAL, DIMENSION(nrecords) :: bufr ! Data buffer
+ REAL, DIMENSION(nrecords) :: bufrr ! Data buffer
+ DOUBLE PRECISION, DIMENSION(nrecords) :: bufd ! Data buffer
+ DOUBLE PRECISION, DIMENSION(nrecords) :: bufdr ! Data buffer
+ CHARACTER(LEN=2), DIMENSION(nrecords), PARAMETER :: bufs = (/"AB","CD","EF","GH","IJ"/) ! Data buffer
+ CHARACTER(LEN=2), DIMENSION(nrecords) :: bufsr ! Data buffer
+ INTEGER(HSIZE_T) :: nfieldsr ! nfields
+ INTEGER(HSIZE_T) :: nrecordsr ! nrecords
+ CHARACTER(LEN=9), DIMENSION(1:nfields) :: field_namesr ! field names
+ INTEGER(SIZE_T), DIMENSION(1:nfields) :: field_offsetr ! field offset
+ INTEGER(SIZE_T), DIMENSION(1:nfields) :: field_sizesr ! field sizes
+ INTEGER(SIZE_T) :: type_sizeout = 0 ! size of the datatype
+ INTEGER :: maxlen = 0 ! max chararter length of a field name
+
+
+ !
+ ! Initialize the data arrays.
+ !
+ DO i = 1, nrecords
+ bufi(i) = i
+ bufr(i) = i
+ bufd(i) = i
+ END DO
+
+ !
+ ! Initialize FORTRAN predefined datatypes.
+ !
+ CALL h5open_f(errcode)
+
+ !
+ ! Create a new file using default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
+
+
+ !-------------------------------------------------------------------------
+ ! make table
+ ! initialize the table parameters
+ !-------------------------------------------------------------------------
+
+ field_names(1) = "field1"
+ field_names(2) = "field2a"
+ field_names(3) = "field3ab"
+ field_names(4) = "field4abc"
+
+ !
+ ! calculate total size by calculating sizes of each member
+ !
+ CALL h5tcopy_f(H5T_NATIVE_CHARACTER, type_id_c, errcode)
+ type_size = 2
+ CALL h5tset_size_f(type_id_c, type_size, errcode)
+ CALL h5tget_size_f(type_id_c, type_sizec, errcode)
+ CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, errcode)
+ CALL h5tget_size_f(H5T_NATIVE_DOUBLE, type_sized, errcode)
+ CALL h5tget_size_f(H5T_NATIVE_REAL, type_sizer, errcode)
+ type_size = type_sizec + type_sizei + type_sized + type_sizer
+
+ !
+ ! type ID's
+ !
+ field_types(1) = type_id_c
+ field_types(2) = H5T_NATIVE_INTEGER
+ field_types(3) = H5T_NATIVE_DOUBLE
+ field_types(4) = H5T_NATIVE_REAL
+
+ !
+ ! offsets
+ !
+ offset = 0
+ field_offset(1) = offset
+ offset = offset + type_sizec ! Offset of the second memeber is 2
+ field_offset(2) = offset
+ offset = offset + type_sizei ! Offset of the second memeber is 6
+ field_offset(3) = offset
+ offset = offset + type_sized ! Offset of the second memeber is 14
+ field_offset(4) = offset
+
+ !-------------------------------------------------------------------------
+ ! make table
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Make table ')
+
+ CALL h5tbmake_table_f(dsetname1,&
+ file_id,&
+ dsetname1,&
+ nfields,&
+ nrecords,&
+ type_size,&
+ field_names,&
+ field_offset,&
+ field_types,&
+ chunk_size,&
+ compress,&
+ errcode )
+
+ CALL passed()
+
+
+ !-------------------------------------------------------------------------
+ ! write field
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Read/Write field by name ')
+
+ CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(1),start,nrecords,type_sizec,&
+ bufs,errcode)
+
+ CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(2),start,nrecords,type_sizei,&
+ bufi,errcode)
+
+ CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
+ bufd,errcode)
+
+ CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
+ bufr,errcode)
+
+
+ !-------------------------------------------------------------------------
+ ! read field
+ !-------------------------------------------------------------------------
+
+ CALL h5tbread_field_name_f(file_id,dsetname1,field_names(1),start,nrecords,type_sizec,&
+ bufsr,errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufsr(i) .NE. bufs(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufsr(i), ' and ', bufs(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL h5tbread_field_name_f(file_id,dsetname1,field_names(2),start,nrecords,type_sizei,&
+ bufir,errcode)
+
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufir(i) .NE. bufi(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufir(i), ' and ', bufi(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL h5tbread_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
+ bufdr,errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufdr(i) .NE. bufd(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufdr(i), ' and ', bufd(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL h5tbread_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
+ bufrr,errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufrr(i) .NE. bufr(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufrr(i), ' and ', bufr(i)
+ STOP
+ ENDIF
+ END DO
+
+
+ CALL passed()
+
+ !-------------------------------------------------------------------------
+ ! write field
+ !-------------------------------------------------------------------------
+
+ CALL test_begin(' Read/Write field by index ')
+
+ CALL h5tbwrite_field_index_f(file_id,dsetname1,1,start,nrecords,type_sizec,&
+ bufs,errcode)
+
+ CALL h5tbwrite_field_index_f(file_id,dsetname1,2,start,nrecords,type_sizei,&
+ bufi,errcode)
+
+ CALL h5tbwrite_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
+ bufd,errcode)
+
+ CALL h5tbwrite_field_index_f(file_id,dsetname1,4,start,nrecords,type_sizer,&
+ bufr,errcode)
+
+
+ !-------------------------------------------------------------------------
+ ! read field
+ !-------------------------------------------------------------------------
+
+ CALL h5tbread_field_index_f(file_id,dsetname1,1,start,nrecords,type_sizec,&
+ bufsr,errcode)
-!
-! Initialize the data arrays.
-!
-do i = 1, nrecords
- bufi(i) = i;
- bufr(i) = i;
- bufd(i) = i;
-end do
-
-!
-! Initialize FORTRAN predefined datatypes.
-!
-call h5open_f(errcode)
-
-!
-! Create a new file using default properties.
-!
-call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
-
-
-!-------------------------------------------------------------------------
-! make table
-! initialize the table parameters
-!-------------------------------------------------------------------------
-
-field_names(1) = "field1"
-field_names(2) = "field2"
-field_names(3) = "field3"
-field_names(4) = "field4"
-
-!
-! calculate total size by calculating sizes of each member
-!
-call h5tcopy_f(H5T_NATIVE_CHARACTER, type_id_c, errcode)
-type_size = 2
-call h5tset_size_f(type_id_c, type_size, errcode)
-call h5tget_size_f(type_id_c, type_sizec, errcode)
-call h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, errcode)
-call h5tget_size_f(H5T_NATIVE_DOUBLE, type_sized, errcode)
-call h5tget_size_f(H5T_NATIVE_REAL, type_sizer, errcode)
-type_size = type_sizec + type_sizei + type_sized + type_sizer
-
-!
-! type ID's
-!
-field_types(1) = type_id_c
-field_types(2) = H5T_NATIVE_INTEGER
-field_types(3) = H5T_NATIVE_DOUBLE
-field_types(4) = H5T_NATIVE_REAL
-
-!
-! offsets
-!
-offset = 0
-field_offset(1) = offset
-offset = offset + type_sizec ! Offset of the second memeber is 2
-field_offset(2) = offset
-offset = offset + type_sizei ! Offset of the second memeber is 6
-field_offset(3) = offset
-offset = offset + type_sized ! Offset of the second memeber is 14
-field_offset(4) = offset
-
-!-------------------------------------------------------------------------
-! make table
-!-------------------------------------------------------------------------
-
-call test_begin(' Make table ')
-
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufsr(i) .NE. bufs(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufsr(i), ' and ', bufs(i)
+ STOP
+ ENDIF
+ END DO
+
+ CALL h5tbread_field_index_f(file_id,dsetname1,2,start,nrecords,type_sizei,&
+ bufir,errcode)
+
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufir(i) .NE. bufi(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufir(i), ' and ', bufi(i)
+ STOP
+ ENDIF
+ END DO
-call h5tbmake_table_f(dsetname1,&
- file_id,&
- dsetname1,&
- nfields,&
- nrecords,&
- type_size,&
- field_names,&
- field_offset,&
- field_types,&
- chunk_size,&
- compress,&
- errcode )
+ CALL h5tbread_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
+ bufdr,errcode)
-call passed()
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufdr(i) .NE. bufd(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufdr(i), ' and ', bufd(i)
+ STOP
+ ENDIF
+ END DO
-!-------------------------------------------------------------------------
-! write field
-!-------------------------------------------------------------------------
+ CALL h5tbread_field_index_f(file_id,dsetname1,4,start,nrecords,type_sizer,&
+ bufrr,errcode)
-call test_begin(' Read/Write field by name ')
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufrr(i) .NE. bufr(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufrr(i), ' and ', bufr(i)
+ STOP
+ ENDIF
+ END DO
-call h5tbwrite_field_name_f(file_id,dsetname1,field_names(1),start,nrecords,type_sizec,&
- bufs,errcode)
-call h5tbwrite_field_name_f(file_id,dsetname1,field_names(2),start,nrecords,type_sizei,&
- bufi,errcode)
+ CALL passed()
-call h5tbwrite_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
- bufd,errcode)
-call h5tbwrite_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
- bufr,errcode)
+ !-------------------------------------------------------------------------
+ ! Insert field
+ ! we insert a field callsed "field5" with the same type and buffer as field 4 (Real)
+ !-------------------------------------------------------------------------
-!-------------------------------------------------------------------------
-! read field
-!-------------------------------------------------------------------------
+ CALL test_begin(' Insert field ')
-call h5tbread_field_name_f(file_id,dsetname1,field_names(1),start,nrecords,type_sizec,&
- bufsr,errcode)
+ CALL h5tbinsert_field_f(file_id,dsetname1,"field5",field_types(4),4,bufr,errcode)
+ CALL h5tbread_field_index_f(file_id,dsetname1,5,start,nrecords,type_sizer,&
+ bufrr,errcode)
+ !
+ ! compare read and write buffers.
+ !
+ DO i = 1, nrecords
+ IF ( bufrr(i) .NE. bufr(i) ) THEN
+ PRINT *, 'read buffer differs from write buffer'
+ PRINT *, bufrr(i), ' and ', bufr(i)
+ STOP
+ ENDIF
+ END DO
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufsr(i) .ne. bufs(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufsr(i), ' and ', bufs(i)
- stop
- endif
-end do
-call h5tbread_field_name_f(file_id,dsetname1,field_names(2),start,nrecords,type_sizei,&
- bufir,errcode)
+ CALL passed()
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufir(i) .ne. bufi(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufir(i), ' and ', bufi(i)
- stop
- endif
-end do
+ !-------------------------------------------------------------------------
+ ! Delete field
+ !-------------------------------------------------------------------------
-call h5tbread_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
- bufdr,errcode)
+ CALL test_begin(' Delete field ')
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufdr(i) .ne. bufd(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufdr(i), ' and ', bufd(i)
- stop
- endif
-end do
+ CALL h5tbdelete_field_f(file_id,dsetname1,"field4abc",errcode)
-call h5tbread_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
- bufrr,errcode)
+ CALL passed()
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufrr(i) .ne. bufr(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufrr(i), ' and ', bufr(i)
- stop
- endif
-end do
+ !-------------------------------------------------------------------------
+ ! Gets the number of records and fields
+ !-------------------------------------------------------------------------
-call passed()
+ CALL test_begin(' Get table info ')
+ CALL h5tbget_table_info_f(file_id,dsetname1,nfieldsr,nrecordsr,errcode )
-!-------------------------------------------------------------------------
-! write field
-!-------------------------------------------------------------------------
+ IF ( nfieldsr .NE. nfields .AND. nrecordsr .NE. nrecords ) THEN
+ PRINT *, 'h5tbget_table_info_f return error'
+ STOP
+ ENDIF
-call test_begin(' Read/Write field by index ')
+ CALL passed()
-call h5tbwrite_field_index_f(file_id,dsetname1,1,start,nrecords,type_sizec,&
- bufs,errcode)
+ !-------------------------------------------------------------------------
+ ! Get information about fields
+ !-------------------------------------------------------------------------
-call h5tbwrite_field_index_f(file_id,dsetname1,2,start,nrecords,type_sizei,&
- bufi,errcode)
+ CALL test_begin(' Get fields info ')
-call h5tbwrite_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
- bufd,errcode)
+ CALL h5tbget_field_info_f(file_id, dsetname1, nfields, field_namesr, field_sizesr,&
+ field_offsetr, type_sizeout, errcode, maxlen )
-call h5tbwrite_field_index_f(file_id,dsetname1,4,start,nrecords,type_sizer,&
- bufr,errcode)
+ IF ( errcode.NE.0 ) THEN
+ WRITE(*,'(/,5X,"H5TBGET_FIELD_INFO_F: RETURN ERROR")')
+ STOP
+ ENDIF
+ ! "field4abc" was deleted and "field5" was added.
+ field_names(4) = "field5"
+ IF ( maxlen .NE. 8 ) THEN
+ WRITE(*,'(/,5X,"H5TBGET_FIELD_INFO_F: INCORRECT MAXIMUM CHARACTER LENGTH OF THE FIELD NAMES")')
+ WRITE(*,'(5X,"RETURNED VALUE = ", I0, ", CORRECT VALUE = ", I0)') maxlen, 8
+ STOP
+ ENDIF
-!-------------------------------------------------------------------------
-! read field
-!-------------------------------------------------------------------------
-
-call h5tbread_field_index_f(file_id,dsetname1,1,start,nrecords,type_sizec,&
- bufsr,errcode)
-
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufsr(i) .ne. bufs(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufsr(i), ' and ', bufs(i)
- stop
- endif
-end do
-
-call h5tbread_field_index_f(file_id,dsetname1,2,start,nrecords,type_sizei,&
- bufir,errcode)
+ DO i = 1, nfields
+ IF ( field_namesr(i) .NE. field_names(i)) THEN
+ WRITE(*,'(/,5X,"H5TBGET_FIELD_INFO_F: READ/WRITE FIELD NAMES DIFFER")')
+ WRITE(*,'(27X,A," AND ",A)') TRIM(field_namesr(i)), TRIM(field_names(i))
+ STOP
+ ENDIF
+ END DO
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufir(i) .ne. bufi(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufir(i), ' and ', bufi(i)
- stop
- endif
-end do
-
-call h5tbread_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
- bufdr,errcode)
-
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufdr(i) .ne. bufd(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufdr(i), ' and ', bufd(i)
- stop
- endif
-end do
+ CALL passed()
-call h5tbread_field_index_f(file_id,dsetname1,4,start,nrecords,type_sizer,&
- bufrr,errcode)
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufrr(i) .ne. bufr(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufrr(i), ' and ', bufr(i)
- stop
- endif
-end do
-
-
-call passed()
-
-
-!-------------------------------------------------------------------------
-! Insert field
-! we insert a field callsed "field5" with the same type and buffer as field 4 (Real)
-!-------------------------------------------------------------------------
-
-call test_begin(' Insert field ')
-
-call h5tbinsert_field_f(file_id,dsetname1,"field5",field_types(4),4,bufr,errcode)
-
-call h5tbread_field_index_f(file_id,dsetname1,5,start,nrecords,type_sizer,&
- bufrr,errcode)
-
-!
-! compare read and write buffers.
-!
-do i = 1, nrecords
- if ( bufrr(i) .ne. bufr(i) ) then
- print *, 'read buffer differs from write buffer'
- print *, bufrr(i), ' and ', bufr(i)
- stop
- endif
-end do
-
-call passed()
-
-
-!-------------------------------------------------------------------------
-! Delete field
-!-------------------------------------------------------------------------
-
-call test_begin(' Delete field ')
-
-call h5tbdelete_field_f(file_id,dsetname1,"field4",errcode)
-
-call passed()
-
-
-!-------------------------------------------------------------------------
-! Gets the number of records and fields
-!-------------------------------------------------------------------------
-
-call test_begin(' Get table info ')
-
-call h5tbget_table_info_f(file_id,dsetname1,nfieldsr,nrecordsr,errcode )
-
-if ( nfieldsr .ne. nfields .and. nrecordsr .ne. nrecords ) then
- print *, 'h5tbget_table_info_f return error'
- stop
-endif
-
-call passed()
-
-
-!-------------------------------------------------------------------------
-! Get information about fields
-!-------------------------------------------------------------------------
-
-!call test_begin(' Get fields info ')
-
-!call h5tbget_field_info_f(file_id,dsetname1,nfields,field_namesr,field_sizesr,&
-! field_offsetr,type_sizeout,errcode )
-
-
-!call passed()
-
-
-
-!-------------------------------------------------------------------------
-! end
-!-------------------------------------------------------------------------
-
-!
-! Close the file.
-!
-call h5fclose_f(file_id, errcode)
-
-!
-! Close FORTRAN predefined datatypes.
-!
-call h5close_f(errcode)
-
-
-!
-! end function.
-!
-end subroutine test_table1
+ !-------------------------------------------------------------------------
+ ! end
+ !-------------------------------------------------------------------------
+ !
+ ! Close the file.
+ !
+ CALL h5fclose_f(file_id, errcode)
+ !
+ ! Close FORTRAN predefined datatypes.
+ !
+ CALL h5close_f(errcode)
+ !
+ ! end function.
+ !
+END SUBROUTINE test_table1
!-------------------------------------------------------------------------
! test_begin
!-------------------------------------------------------------------------
-subroutine test_begin(string)
-character(LEN=*), intent(IN) :: string
-write(*, fmt = '(14a)', advance = 'no') string
-write(*, fmt = '(40x,a)', advance = 'no') ' '
-end subroutine test_begin
+SUBROUTINE test_begin(string)
+ CHARACTER(LEN=*), INTENT(IN) :: string
+ WRITE(*, fmt = '(14a)', advance = 'no') string
+ WRITE(*, fmt = '(40x,a)', advance = 'no') ' '
+END SUBROUTINE test_begin
!-------------------------------------------------------------------------
! passed
!-------------------------------------------------------------------------
-subroutine passed()
-write(*, fmt = '(6a)') 'PASSED'
-end subroutine passed
+SUBROUTINE passed()
+ WRITE(*, fmt = '(6a)') 'PASSED'
+END SUBROUTINE passed
diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt
index 4c345dd..3104008 100644
--- a/hl/test/CMakeLists.txt
+++ b/hl/test/CMakeLists.txt
@@ -22,7 +22,7 @@ INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR})
# --------------------------------------------------------------------
MACRO (HL_ADD_TEST hl_name files)
ADD_EXECUTABLE (hl_${hl_name} ${hl_name}.c)
- H5_NAMING (hl_${hl_name} ${LIB_TYPE})
+ TARGET_NAMING (hl_${hl_name} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (hl_${hl_name}
${HDF5_HL_LIB_TARGET}
${HDF5_LIB_TARGET}
@@ -86,7 +86,7 @@ HL_ADD_TEST (test_table "test_table_be.hdf5;test_table_cray.hdf5;test_table_le.h
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (hl_gen_test_ds gen_test_ds.c)
- H5_NAMING (hl_gen_test_ds ${LIB_TYPE})
+ TARGET_NAMING (hl_gen_test_ds ${LIB_TYPE})
TARGET_LINK_LIBRARIES (hl_gen_test_ds
${HDF5_HL_LIB_TARGET}
${HDF5_LIB_TARGET}
diff --git a/hl/tools/CMakeLists.txt b/hl/tools/CMakeLists.txt
index df45631..e2b605d 100644
--- a/hl/tools/CMakeLists.txt
+++ b/hl/tools/CMakeLists.txt
@@ -18,7 +18,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
INCLUDE_DIRECTORIES (${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5)
ADD_EXECUTABLE (gif2h5 ${GIF2H5_SRCS})
-H5_NAMING (gif2h5 ${LIB_TYPE})
+TARGET_NAMING (gif2h5 ${LIB_TYPE})
TARGET_LINK_LIBRARIES (gif2h5 ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#-- Add h52gif program
@@ -26,9 +26,9 @@ SET (hdf2gif_SRCS
${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/hdf2gif.c
${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/hdfgifwr.c
)
-ADD_EXECUTABLE (hdf2gif ${hdf2gif_SRCS})
-H5_NAMING (hdf2gif ${LIB_TYPE})
-TARGET_LINK_LIBRARIES (hdf2gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
+ADD_EXECUTABLE (h52gif ${hdf2gif_SRCS})
+TARGET_NAMING (h52gif ${LIB_TYPE})
+TARGET_LINK_LIBRARIES (h52gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
# --------------------------------------------------------------------
# This executable can generate the actual test files - Currently not
@@ -37,7 +37,7 @@ TARGET_LINK_LIBRARIES (hdf2gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_T
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (hl_h52gifgentest ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/h52gifgentst.c)
- H5_NAMING (hl_h52gifgentest ${LIB_TYPE})
+ TARGET_NAMING (hl_h52gifgentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (hl_h52gifgentest ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
# ADD_TEST (NAME hl_h52gifgentest COMMAND $<TARGET_FILE:hl_h52gifgentest>)
@@ -49,7 +49,7 @@ ENDIF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
INSTALL (
TARGETS
gif2h5
- hdf2gif
+ h52gif
RUNTIME DESTINATION
${HDF5_INSTALL_BIN_DIR}/tools
COMPONENT
diff --git a/perform/CMakeLists.txt b/perform/CMakeLists.txt
index 578b5a6..15db402 100644
--- a/perform/CMakeLists.txt
+++ b/perform/CMakeLists.txt
@@ -7,25 +7,9 @@ PROJECT (HDF5_PERFORM )
INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR})
INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib )
-#-----------------------------------------------------------------------------
-# Add Tests
-#-----------------------------------------------------------------------------
-
-# Remove any output file left over from previous test run
-ADD_TEST (
- NAME h5perform-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- chunk.h5
- iopipe.h5
- iopipe.raw
- x-diag-rd.dat
- x-diag-wr.dat
- x-rowmaj-rd.dat
- x-rowmaj-wr.dat
- x-gnuplot
-)
-
+# --------------------------------------------------------------------
+# Add the executables
+# --------------------------------------------------------------------
#-- Adding test for h5perf_serial
SET (h5perf_serial_SRCS
${HDF5_PERFORM_SOURCE_DIR}/sio_timer.c
@@ -33,11 +17,9 @@ SET (h5perf_serial_SRCS
${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
)
ADD_EXECUTABLE (h5perf_serial ${h5perf_serial_SRCS})
-H5_NAMING (h5perf_serial ${LIB_TYPE})
+TARGET_NAMING (h5perf_serial ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5perf_serial ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
-ADD_TEST (NAME h5perf_serial COMMAND $<TARGET_FILE:h5perf_serial>)
-
IF (HDF5_BUILD_PERFORM_STANDALONE)
#-- Adding test for h5perf_serial_alone
SET (h5perf_serial_alone_SRCS
@@ -49,10 +31,8 @@ IF (HDF5_BUILD_PERFORM_STANDALONE)
SET_PROPERTY (TARGET h5perf_serial_alone
APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE
)
- H5_NAMING (h5perf_serial_alone ${LIB_TYPE})
+ TARGET_NAMING (h5perf_serial_alone ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5perf_serial_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
-
- ADD_TEST (NAME h5perf_serial_alone COMMAND $<TARGET_FILE:h5perf_serial_alone>)
ENDIF (HDF5_BUILD_PERFORM_STANDALONE)
#-- Adding test for chunk
@@ -60,51 +40,41 @@ SET (chunk_SRCS
${HDF5_PERFORM_SOURCE_DIR}/chunk.c
)
ADD_EXECUTABLE(chunk ${chunk_SRCS})
-H5_NAMING (chunk ${LIB_TYPE})
+TARGET_NAMING (chunk ${LIB_TYPE})
TARGET_LINK_LIBRARIES(chunk ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
-ADD_TEST (NAME chunk COMMAND $<TARGET_FILE:chunk>)
-
#-- Adding test for iopipe
SET (iopipe_SRCS
${HDF5_PERFORM_SOURCE_DIR}/iopipe.c
)
ADD_EXECUTABLE (iopipe ${iopipe_SRCS})
-H5_NAMING (iopipe ${LIB_TYPE})
+TARGET_NAMING (iopipe ${LIB_TYPE})
TARGET_LINK_LIBRARIES (iopipe ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
-ADD_TEST (NAME iopipe COMMAND $<TARGET_FILE:iopipe>)
-
#-- Adding test for overhead
SET (overhead_SRCS
${HDF5_PERFORM_SOURCE_DIR}/overhead.c
)
ADD_EXECUTABLE (overhead ${overhead_SRCS})
-H5_NAMING (overhead ${LIB_TYPE})
+TARGET_NAMING (overhead ${LIB_TYPE})
TARGET_LINK_LIBRARIES (overhead ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
-ADD_TEST (NAME overhead COMMAND $<TARGET_FILE:overhead>)
-
#-- Adding test for perf_meta
SET (perf_meta_SRCS
${HDF5_PERFORM_SOURCE_DIR}/perf_meta.c
)
ADD_EXECUTABLE (perf_meta ${perf_meta_SRCS})
-H5_NAMING (perf_meta ${LIB_TYPE})
+TARGET_NAMING (perf_meta ${LIB_TYPE})
TARGET_LINK_LIBRARIES (perf_meta ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
-ADD_TEST (NAME perf_meta COMMAND $<TARGET_FILE:perf_meta>)
-
#-- Adding test for zip_perf
SET (zip_perf_SRCS
${HDF5_PERFORM_SOURCE_DIR}/zip_perf.c
)
ADD_EXECUTABLE (zip_perf ${zip_perf_SRCS})
-H5_NAMING (zip_perf ${LIB_TYPE})
+TARGET_NAMING (zip_perf ${LIB_TYPE})
TARGET_LINK_LIBRARIES (zip_perf ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
-ADD_TEST (NAME zip_perf COMMAND $<TARGET_FILE:zip_perf> "-h")
-
IF (H5_HAVE_PARALLEL)
#-- Adding test for h5perf
SET (h5perf_SRCS
@@ -113,11 +83,9 @@ IF (H5_HAVE_PARALLEL)
${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
)
ADD_EXECUTABLE (h5perf ${h5perf_SRCS})
- H5_NAMING (h5perf ${LIB_TYPE})
+ TARGET_NAMING (h5perf ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
- ADD_TEST (NAME h5perf COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:h5perf>)
-
IF (HDF5_BUILD_PERFORM_STANDALONE)
#-- Adding test for h5perf
SET (h5perf_alone_SRCS
@@ -129,10 +97,8 @@ IF (H5_HAVE_PARALLEL)
SET_PROPERTY (TARGET h5perf_alone
APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE
)
- H5_NAMING (h5perf_alone ${LIB_TYPE})
+ TARGET_NAMING (h5perf_alone ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5perf_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
-
- ADD_TEST (NAME h5perf_alone COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:h5perf_alone>)
ENDIF (HDF5_BUILD_PERFORM_STANDALONE)
#-- Adding test for benchpar
@@ -140,18 +106,76 @@ IF (H5_HAVE_PARALLEL)
${HDF5_PERFORM_SOURCE_DIR}/benchpar.c
)
ADD_EXECUTABLE (benchpar ${benchpar_SRCS})
- H5_NAMING (benchpar ${LIB_TYPE})
+ TARGET_NAMING (benchpar ${LIB_TYPE})
TARGET_LINK_LIBRARIES (benchpar ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
- ADD_TEST (NAME benchpar COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:benchpar>)
-
#-- Adding test for mpi-perf
SET (mpi-perf_SRCS
${HDF5_PERFORM_SOURCE_DIR}/mpi-perf.c
)
ADD_EXECUTABLE (mpi-perf ${mpi-perf_SRCS})
- H5_NAMING (mpi-perf ${LIB_TYPE})
+ TARGET_NAMING (mpi-perf ${LIB_TYPE})
TARGET_LINK_LIBRARIES (mpi-perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
+ENDIF (H5_HAVE_PARALLEL)
+
+
+##############################################################################
+##############################################################################
+### T E S T I N G ###
+##############################################################################
+##############################################################################
+
+ADD_CUSTOM_COMMAND (
+ TARGET zip_perf
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/tfilters.h5 ${PROJECT_BINARY_DIR}/tfilters.h5
+)
+
+#-----------------------------------------------------------------------------
+# Add Tests
+#-----------------------------------------------------------------------------
+
+# Remove any output file left over from previous test run
+ADD_TEST (
+ NAME h5perform-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ chunk.h5
+ iopipe.h5
+ iopipe.raw
+ x-diag-rd.dat
+ x-diag-wr.dat
+ x-rowmaj-rd.dat
+ x-rowmaj-wr.dat
+ x-gnuplot
+)
+
+ADD_TEST (NAME h5perf_serial COMMAND $<TARGET_FILE:h5perf_serial>)
+
+IF (HDF5_BUILD_PERFORM_STANDALONE)
+ ADD_TEST (NAME h5perf_serial_alone COMMAND $<TARGET_FILE:h5perf_serial_alone>)
+ENDIF (HDF5_BUILD_PERFORM_STANDALONE)
+
+ADD_TEST (NAME chunk COMMAND $<TARGET_FILE:chunk>)
+
+ADD_TEST (NAME iopipe COMMAND $<TARGET_FILE:iopipe>)
+
+ADD_TEST (NAME overhead COMMAND $<TARGET_FILE:overhead>)
+
+ADD_TEST (NAME perf_meta COMMAND $<TARGET_FILE:perf_meta>)
+
+ADD_TEST (NAME zip_perf_help COMMAND $<TARGET_FILE:zip_perf> "-h")
+ADD_TEST (NAME zip_perf COMMAND $<TARGET_FILE:zip_perf> tfilters.h5)
+
+IF (H5_HAVE_PARALLEL)
+ ADD_TEST (NAME h5perf COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:h5perf>)
+
+ IF (HDF5_BUILD_PERFORM_STANDALONE)
+ ADD_TEST (NAME h5perf_alone COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:h5perf_alone>)
+ ENDIF (HDF5_BUILD_PERFORM_STANDALONE)
+
+ ADD_TEST (NAME benchpar COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:benchpar>)
ADD_TEST (NAME mpi-perf COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:mpi-perf>)
ENDIF (H5_HAVE_PARALLEL)
diff --git a/perform/zip_perf.c b/perform/zip_perf.c
index 08177d8..5729baf 100644
--- a/perform/zip_perf.c
+++ b/perform/zip_perf.c
@@ -21,20 +21,6 @@
* -1 to -9 : compression level
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <math.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef H5_HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
/* our header files */
#include "h5test.h"
#include "h5tools_utils.h"
@@ -43,14 +29,6 @@
#include <zlib.h>
-#if defined(MSDOS) || defined(OS2) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
-#else
-# define SET_BINARY_MODE(file) /* nothing */
-#endif /* MSDOS || OS2 || _WIN32 */
-
#ifdef VMS
# define unlink delete
# define GZ_SUFFIX "-gz"
@@ -430,7 +408,7 @@ static void
fill_with_random_data(Bytef *src, uLongf src_len)
{
register unsigned u;
- struct stat stat_buf;
+ h5_stat_t stat_buf;
if (stat("/dev/urandom", &stat_buf) == 0) {
uLongf len = src_len;
diff --git a/release_docs/CMake.txt b/release_docs/CMake.txt
index 0540fb6..e916df9 100755
--- a/release_docs/CMake.txt
+++ b/release_docs/CMake.txt
@@ -36,7 +36,7 @@ Notes: This short instruction is written for users who want to quickly build
========================================================================
1. We suggest you obtain the latest CMake for windows from the Kitware
- web site. The HDF5 1.8.x product requires CMake version 2.8.2.
+ web site. The HDF5 1.8.x product requires CMake version 2.8.4.
2. If you plan to use Zlib or Szip;
A. Download the packages and install them
diff --git a/release_docs/INSTALL_VMS.txt b/release_docs/INSTALL_VMS.txt
index 0245024..c2a1463 100644
--- a/release_docs/INSTALL_VMS.txt
+++ b/release_docs/INSTALL_VMS.txt
@@ -1,6 +1,6 @@
Building and installation instructions for Alpha Open VMS
- HDF5 1.8.0 release
- February 12, 2008
+ HDF5 1.8.6 release
+ 18 February 2011
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 5e5f49c..0d56d45 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -189,6 +189,14 @@ New Features
Tools:
------
+ - h5diff: Added new level for -v (verbose) option. The new levels are
+ 1 and 2. So -v1 and -v2 can be specified to view more
+ information about attributes differences.
+ Bug#2121 (JKM 2011/3/23)
+ - h5dump: Added new option --enable-error-stack. This option will display
+ error stack information in the output stream. This is useful
+ when the "h5dump: Unable to print data" message is output.
+ (ADB - 2011/02/24)
- h5diff: Add a new flag --exclude-path. Specified path to an object will
be excluded from comparing the two files or two groups. If group
is specified all the member objects will be excluded.
@@ -202,13 +210,15 @@ New Features
- h5diff: Add new flag --follow-symlinks. (refer to --help for details)
(JKM - 2010/01/25)
- h5diff: fix for displaying garbage value on LE machine for BE data.
- (JKM - 2009/11/20)
- - h5dump subsetting now allows default for count. Also trailing ; in short form
- can be omitted after last specified value. (ADB - 2009/09/04)
- - h5dump/h5ls now can display data in region references
- using new -R, --region flag. (ADB - 2009/09/04)
- - h5diff new flag, -c, --compare, list objects that are not comparable.
- (PVN - 2009/4/10 - 1368)
+ (JKM - 2009/11/20)
+ - h5dump: subsetting now allows default for count. Also trailing ; in short form
+ can be omitted after last specified value.
+ (ADB - 2009/09/04)
+ - h5dump/h5ls: now can display data in region references
+ using new -R, --region flag.
+ (ADB - 2009/09/04)
+ - h5diff: new flag, -c, --compare, list objects that are not comparable.
+ (PVN - 2009/4/10 - 1368)
- h5diff new flag, -N, --nan, avoids NaNs detection. (PVN - 2009/4/10)
- h5dump correctly specifies XML dtd / schema urls (ADB - 2009/4/3 - 1519)
- h5repack now handles group creation order. (PVN - 2009/4/2 - 1402)
@@ -500,6 +510,35 @@ Bug Fixes since HDF5-1.8.0 release
Tools
-----
+ - Updated to unify option name to '--enable-error-stack' for printing
+ HDF5 error stack messages for HDF5 tools. h5ls and h5dump for now.
+ For h5ls, this replaces "-e/--errors" option, which is deprecated.
+ Bug#2182 (JKM 2011/3/30)
+ - Fixed output for H5T_REFERENCE in h5dump. According to the BNF document
+ the output of a H5T_REFERENCE should be followed by the type;
+ <reference> ::= H5T_REFERENCE { <ref_type> }
+ <ref_type> ::= H5T_STD_REF_OBJECT | H5T_STD_REF_DSETREG
+ Previously this was only displayed if the -R option was used.
+ Bug#1725 (ADB 2011/3/28)
+ - Fix h5diff issues for #1: h5diff compared attributes correctly only
+ when two objects have the same number of attributes and attribute
+ names are identical, #2: didn't display useful information about
+ attribute difference. Bug#2121 (JKM 2011/3/17)
+ - Fixed memory leak for h5diff when accessing symbolic links with
+ --follow-symlink option. Bug#2214 (JKM 2011/3/18)
+ - Fixed memory leak for h5diff when access variable length string
+ data. Bug#2216 (JKM 2011/3/18)
+ - Fixed and improved help page for -a option of h5ls.
+ Bug#1904 (JKM 2011/3/11)
+ - Fixed h5dump not to include attribute values in the output file when
+ h5dump "-y -o output_file" options were used. The problem was introduced
+ in HDF5 1.8.6 by showing data pointed by region references. (XCAO 2011/3/9)
+ - Fixed h5copy to be able to copy any object into the same HDF5 file.
+ Previously h5copy displayed error message when target file is same
+ as source file. (XCAO 2011/3/8)
+ - Fixed h5dump for skipping some values for long array type dataset on
+ Windows. This issue only occurred on Windows due to the different
+ return behavior from _vsnprintf() funtion. Bug#2161 (JKM 2011/3/3)
- Fixed h5dump for skipping array indices every certain number
when the array type dataset is relatively big. The certain number
varies according to the size of array. Bug#2092 (JKM 2011/2/15).
@@ -788,6 +827,8 @@ SuSe Linux 2.6.5
Known Problems
==============
+* --with-mpe configure option does not work with Mpich2. AKC - 2011/03/10)
+
* examples/run-all-ex.sh does not work on Cygwin. (NAF - 2011/02/11)
* While working on the 1.8.6 release of HDF5, a bug was discovered that can
diff --git a/src/H5F.c b/src/H5F.c
index e69b0ed..13f469e 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -1006,7 +1006,7 @@ H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush)
* the caller requested a flush.
*/
if((f->shared->flags & H5F_ACC_RDWR) && flush)
- if(H5F_flush(f, dxpl_id) < 0)
+ if(H5F_flush(f, dxpl_id, TRUE) < 0)
HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache")
/* Release the external file cache */
@@ -1670,7 +1670,7 @@ H5Fflush(hid_t object_id, H5F_scope_t scope)
} /* end if */
else {
/* Call the flush routine, for this file */
- if(H5F_flush(f, H5AC_dxpl_id) < 0)
+ if(H5F_flush(f, H5AC_dxpl_id, FALSE) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush file's cached information")
} /* end else */
} /* end if */
@@ -1694,7 +1694,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5F_flush(H5F_t *f, hid_t dxpl_id)
+H5F_flush(H5F_t *f, hid_t dxpl_id, hbool_t closing)
{
herr_t ret_value = SUCCEED; /* Return value */
@@ -1729,7 +1729,7 @@ H5F_flush(H5F_t *f, hid_t dxpl_id)
HDONE_ERROR(H5E_IO, H5E_CANTFLUSH, FAIL, "unable to flush metadata accumulator")
/* Flush file buffers to disk. */
- if(H5FD_flush(f->shared->lf, dxpl_id, FALSE) < 0)
+ if(H5FD_flush(f->shared->lf, dxpl_id, closing) < 0)
/* Push error, but keep going*/
HDONE_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "low level flush failed")
@@ -2003,7 +2003,7 @@ H5Fclose(hid_t file_id)
if((nref = H5I_get_ref(file_id, FALSE)) < 0)
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't get ID ref count")
if(nref == 1)
- if(H5F_flush(f, H5AC_dxpl_id) < 0)
+ if(H5F_flush(f, H5AC_dxpl_id, FALSE) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache")
} /* end if */
diff --git a/src/H5Fmount.c b/src/H5Fmount.c
index 40be54c..d04e747 100644
--- a/src/H5Fmount.c
+++ b/src/H5Fmount.c
@@ -659,7 +659,7 @@ H5F_flush_mounts_recurse(H5F_t *f, hid_t dxpl_id)
nerrors++;
/* Call the "real" flush routine, for this file */
- if(H5F_flush(f, dxpl_id) < 0)
+ if(H5F_flush(f, dxpl_id, FALSE) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush file's cached information")
/* Check flush errors for children - errors are already on the stack */
diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h
index 74c9aa5..0768d08 100644
--- a/src/H5Fpkg.h
+++ b/src/H5Fpkg.h
@@ -297,7 +297,7 @@ H5_DLLVAR const H5AC_class_t H5AC_SUPERBLOCK[1];
/* General routines */
H5_DLL herr_t H5F_init(void);
H5_DLL haddr_t H5F_locate_signature(H5FD_t *file, hid_t dxpl_id);
-H5_DLL herr_t H5F_flush(H5F_t *f, hid_t dxpl_id);
+H5_DLL herr_t H5F_flush(H5F_t *f, hid_t dxpl_id, hbool_t closing);
/* File mount related routines */
H5_DLL herr_t H5F_close_mounts(H5F_t *f);
diff --git a/src/H5Gloc.c b/src/H5Gloc.c
index 82b7575..cfa4f44 100644
--- a/src/H5Gloc.c
+++ b/src/H5Gloc.c
@@ -947,7 +947,7 @@ done:
* Purpose: Retrieve the information for an object from a group location
* and path to that object
*
- * Return: Success: Number of bytes in the comment including the
+ * Return: Success: Number of bytes in the comment excluding the
* null terminator. Zero if the object has no
* comment.
*
diff --git a/src/H5O.c b/src/H5O.c
index 71f0132..22fb2df 100644
--- a/src/H5O.c
+++ b/src/H5O.c
@@ -823,7 +823,7 @@ done:
*
* Purpose: Retrieve comment for an object.
*
- * Return: Success: Number of bytes in the comment including the
+ * Return: Success: Number of bytes in the comment excluding the
* null terminator. Zero if the object has no
* comment.
*
@@ -861,7 +861,7 @@ done:
*
* Purpose: Retrieve comment for an object.
*
- * Return: Success: Number of bytes in the comment including the
+ * Return: Success: Number of bytes in the comment excluding the
* null terminator. Zero if the object has no
* comment.
*
diff --git a/src/H5public.h b/src/H5public.h
index 47fe27b..76ce8d5 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -83,6 +83,17 @@ extern "C" {
#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \
H5_VERS_RELEASE)
+/* macros for comparing the version */
+#define H5_VERSION_GE(Maj,Min,Rel) \
+ (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE>=Rel)) || \
+ ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR>Min)) || \
+ (H5_VERS_MAJOR>Maj))
+
+#define H5_VERSION_LE(Maj,Min,Rel) \
+ (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE<=Rel)) || \
+ ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR<Min)) || \
+ (H5_VERS_MAJOR<Maj))
+
/*
* Status return values. Failed integer functions in HDF5 result almost
* always in a negative value (unsigned failing functions sometimes return
diff --git a/src/H5system.c b/src/H5system.c
index 7776cbb..02ea625 100644
--- a/src/H5system.c
+++ b/src/H5system.c
@@ -584,7 +584,7 @@ HDremove_all(const char *fname)
#endif
/*-------------------------------------------------------------------------
- * Function: HDgettimeofday
+ * Function: Wgettimeofday
*
* Purpose: Wrapper function for gettimeofday on Windows systems
*
@@ -610,7 +610,7 @@ HDremove_all(const char *fname)
#define _W32_FT_OFFSET (116444736000000000ULL)
int
-HDgettimeofday(struct timeval *tv, void *tz)
+Wgettimeofday(struct timeval *tv, void *tz)
{
union {
unsigned long long ns100; /*time since 1 Jan 1601 in 100ns units */
diff --git a/src/H5win32defs.h b/src/H5win32defs.h
index fb37059..6ccc86a 100644
--- a/src/H5win32defs.h
+++ b/src/H5win32defs.h
@@ -48,11 +48,11 @@ typedef __int64 h5_stat_size_t;
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
- H5_DLL int HDgettimeofday(struct timeval *tv, void *tz);
+ H5_DLL int Wgettimeofday(struct timeval *tv, void *tz);
#ifdef __cplusplus
}
#endif /* __cplusplus */
- #define HDgettimeofday(V,Z) HDgettimeofday(V,Z)
+ #define HDgettimeofday(V,Z) Wgettimeofday(V,Z)
#endif /* H5_HAVE_GETTIMEOFDAY */
#define HDgetdrive() _getdrive()
#define HDlseek(F,O,W) _lseeki64(F,O,W)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 8fb93b5..ca975f9 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -146,7 +146,7 @@ SET (testhdf5_SRCS
#-- Adding test for testhdf5
ADD_EXECUTABLE (testhdf5 ${testhdf5_SRCS})
-H5_NAMING (testhdf5 ${LIB_TYPE})
+TARGET_NAMING (testhdf5 ${LIB_TYPE})
TARGET_LINK_LIBRARIES (testhdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_TEST (NAME testhdf5 COMMAND $<TARGET_FILE:testhdf5>)
@@ -159,7 +159,7 @@ ADD_TEST (NAME testhdf5 COMMAND $<TARGET_FILE:testhdf5>)
MACRO (ADD_H5_TEST file)
ADD_EXECUTABLE (${file} ${HDF5_TEST_SOURCE_DIR}/${file}.c)
- H5_NAMING (${file} ${LIB_TYPE})
+ TARGET_NAMING (${file} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_TEST (NAME ${file} COMMAND $<TARGET_FILE:${file}>)
@@ -311,7 +311,7 @@ SET_TESTS_PROPERTIES(flush2 PROPERTIES DEPENDS flush1)
#-- Adding test for cache
ADD_EXECUTABLE (cache ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
-H5_NAMING (cache ${LIB_TYPE})
+TARGET_NAMING (cache ${LIB_TYPE})
TARGET_LINK_LIBRARIES (cache ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME cache COMMAND $<TARGET_FILE:cache>)
@@ -319,14 +319,14 @@ SET_TESTS_PROPERTIES(cache PROPERTIES DEPENDS h5test-clear-objects)
#-- Adding test for cache_api
ADD_EXECUTABLE (cache_api ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
-H5_NAMING (cache_api ${LIB_TYPE})
+TARGET_NAMING (cache_api ${LIB_TYPE})
TARGET_LINK_LIBRARIES (cache_api ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME cache_api COMMAND $<TARGET_FILE:cache_api>)
#-- Adding test for cache_tagging
ADD_EXECUTABLE (cache_tagging ${HDF5_TEST_SOURCE_DIR}/cache_tagging.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
-H5_NAMING (cache_tagging ${LIB_TYPE})
+TARGET_NAMING (cache_tagging ${LIB_TYPE})
TARGET_LINK_LIBRARIES (cache_tagging ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME cache_tagging COMMAND $<TARGET_FILE:cache_tagging>)
@@ -338,7 +338,7 @@ ADD_EXECUTABLE (ttsafe
${HDF5_TEST_SOURCE_DIR}/ttsafe_cancel.c
${HDF5_TEST_SOURCE_DIR}/ttsafe_acreate.c
)
-H5_NAMING (ttsafe ${LIB_TYPE})
+TARGET_NAMING (ttsafe ${LIB_TYPE})
TARGET_LINK_LIBRARIES (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME ttsafe COMMAND $<TARGET_FILE:ttsafe>)
@@ -346,7 +346,7 @@ ADD_TEST (NAME ttsafe COMMAND $<TARGET_FILE:ttsafe>)
#-- Adding test for err_compat
IF (HDF5_ENABLE_DEPRECATED_SYMBOLS)
ADD_EXECUTABLE (err_compat ${HDF5_TEST_SOURCE_DIR}/err_compat.c)
- H5_NAMING (err_compat ${LIB_TYPE})
+ TARGET_NAMING (err_compat ${LIB_TYPE})
TARGET_LINK_LIBRARIES (err_compat ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME err_compat COMMAND "${CMAKE_COMMAND}"
@@ -363,7 +363,7 @@ ENDIF (HDF5_ENABLE_DEPRECATED_SYMBOLS)
#-- Adding test for error_test
ADD_EXECUTABLE (error_test ${HDF5_TEST_SOURCE_DIR}/error_test.c)
-H5_NAMING (error_test ${LIB_TYPE})
+TARGET_NAMING (error_test ${LIB_TYPE})
TARGET_LINK_LIBRARIES (error_test ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME error_test COMMAND "${CMAKE_COMMAND}"
@@ -379,7 +379,7 @@ ADD_TEST (NAME error_test COMMAND "${CMAKE_COMMAND}"
#-- Adding test for links_env
ADD_EXECUTABLE (links_env ${HDF5_TEST_SOURCE_DIR}/links_env.c)
-H5_NAMING (links_env ${LIB_TYPE})
+TARGET_NAMING (links_env ${LIB_TYPE})
TARGET_LINK_LIBRARIES (links_env ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME links_env COMMAND "${CMAKE_COMMAND}"
@@ -508,7 +508,7 @@ ENDIF (HDF5_TEST_VFD)
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
MACRO (ADD_H5_GENERATOR genfile)
ADD_EXECUTABLE (${genfile} ${HDF5_TEST_SOURCE_DIR}/${genfile}.c)
- H5_NAMING (${genfile} ${LIB_TYPE})
+ TARGET_NAMING (${genfile} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (${genfile} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
ENDMACRO (ADD_H5_GENERATOR genfile)
@@ -535,7 +535,7 @@ IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
FOREACH (gen ${H5_GENERATORS})
ADD_EXECUTABLE (${gen} ${HDF5_TEST_SOURCE_DIR}/${gen}.c)
- H5_NAMING (${gen} ${LIB_TYPE})
+ TARGET_NAMING (${gen} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (${gen} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
ENDFOREACH (gen ${H5_GENERATORS})
diff --git a/test/H5srcdir.h b/test/H5srcdir.h
index 55700cb..8bc8780 100644
--- a/test/H5srcdir.h
+++ b/test/H5srcdir.h
@@ -32,7 +32,11 @@ static char srcdir_path[1024] = "";
static char srcdir_testpath[1024] = "";
/* Append the test file name to the srcdir path and return the whole string */
+#ifdef H5_VMS
+static const char *H5_get_srcdir_filename(char *filename)
+#else
static const char *H5_get_srcdir_filename(const char *filename)
+#endif
{
const char *srcdir = HDgetenv("srcdir");
@@ -43,8 +47,17 @@ static const char *H5_get_srcdir_filename(const char *filename)
/* Build path to test file */
if((HDstrlen(srcdir) + HDstrlen(filename) + 2) < sizeof(srcdir_testpath)) {
HDstrcpy(srcdir_testpath, srcdir);
+#ifdef H5_VMS
+ if(filename[0] == '[') {
+ char *tmp = filename;
+ srcdir_testpath[strlen(srcdir)-1] = '\0';
+ strcat(srcdir_testpath, ++tmp);
+ } else
+ strcat(srcdir_testpath, filename);
+#else
HDstrcat(srcdir_testpath, "/");
HDstrcat(srcdir_testpath, filename);
+#endif
return(srcdir_testpath);
} /* end if */
else
diff --git a/test/fheap.c b/test/fheap.c
index 3d8e69d..afbe56c 100644
--- a/test/fheap.c
+++ b/test/fheap.c
@@ -16298,7 +16298,9 @@ curr_test = FHEAP_TEST_NORMAL;
nerrors += test_id_limits(fapl, &small_cparam);
nerrors += test_filtered_create(fapl, &small_cparam);
nerrors += test_size(fapl, &small_cparam);
+#ifndef H5_CANNOT_OPEN_TWICE
nerrors += test_reopen_hdr(fapl, &small_cparam);
+#endif /*H5_CANNOT_OPEN_TWICE*/
#else /* QAK */
HDfprintf(stderr, "Uncomment tests!\n");
#endif /* QAK */
diff --git a/test/getname.c b/test/getname.c
index bef4756..bbaaa04 100644
--- a/test/getname.c
+++ b/test/getname.c
@@ -2927,7 +2927,9 @@ main(void)
nerrors += test_main(file_id, fapl);
nerrors += test_obj_ref(fapl);
nerrors += test_reg_ref(fapl);
+#ifndef H5_CANNOT_OPEN_TWICE
nerrors += test_elinks(fapl);
+#endif /*H5_CANNOT_OPEN_TWICE*/
/* Close file */
H5Fclose(file_id);
diff --git a/test/h5test.c b/test/h5test.c
index 25b751f..8762f90 100644
--- a/test/h5test.c
+++ b/test/h5test.c
@@ -1115,10 +1115,22 @@ getenv_all(MPI_Comm comm, int root, const char* name)
hid_t
h5_make_local_copy(char *origfilename, char *local_copy_name)
{
- const char *filename = H5_get_srcdir_filename(origfilename); /* Corrected test file name */
int fd_old = (-1), fd_new = (-1); /* File descriptors for copying data */
ssize_t nread; /* Number of bytes read in */
char buf[READ_BUF_SIZE]; /* Buffer for copying data */
+ char filename[FILENAME_BUF_SIZE] = "";
+#ifdef H5_VMS
+ HDstrcat(filename, origfilename);
+#else
+ char * srcdir = HDgetenv("srcdir"); /* The source directory */
+
+ if(srcdir && ((HDstrlen(srcdir) +
+ HDstrlen(origfilename) + 6) < FILENAME_BUF_SIZE)) {
+ HDstrcpy(filename, srcdir);
+ HDstrcat(filename, "/");
+ }
+ HDstrcat(filename, origfilename);
+#endif
/* Copy old file into temporary file */
if((fd_old = HDopen(filename, O_RDONLY, 0666)) < 0) return -1;
@@ -1135,4 +1147,3 @@ h5_make_local_copy(char *origfilename, char *local_copy_name)
return 0;
}
-
diff --git a/test/h5test.h b/test/h5test.h
index 0467cd7..7994f72 100644
--- a/test/h5test.h
+++ b/test/h5test.h
@@ -25,11 +25,6 @@
#include "hdf5.h"
#include "H5private.h"
-#ifdef H5_STDC_HEADERS
-# include <signal.h>
-# include <stdarg.h>
-#endif
-
/*
* Predefined test verbosity levels.
*
diff --git a/test/lheap.c b/test/lheap.c
index 9f78a15..ab6ee9f 100644
--- a/test/lheap.c
+++ b/test/lheap.c
@@ -179,8 +179,11 @@ main(void)
{
const char *testfile = H5_get_srcdir_filename(TESTFILE); /* Corrected test file name */
hid_t dset = -1;
-
+#ifdef H5_VMS
+ file = H5Fopen(TESTFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+#else
file = H5Fopen(testfile, H5F_ACC_RDONLY, H5P_DEFAULT);
+#endif
if(file >= 0){
if((dset = H5Dopen2(file, "/Dataset1", H5P_DEFAULT)) < 0)
TEST_ERROR
diff --git a/test/stab.c b/test/stab.c
index e8ffec3..d897899 100644
--- a/test/stab.c
+++ b/test/stab.c
@@ -57,8 +57,10 @@ const char *FILENAME[] = {
/* The group_old.h5 is generated from gen_old_fill.c in HDF5 'test' directory
* for version 1.6. To get this data file, simply compile gen_old_group.c with
* the HDF5 library in that branch and run it. */
+/* I changed the name "group_old.h5.copy" to "group_old_copy.h5" because OpenVMS
+ * doesn't like any file name with more than one ".". SLU 2010/12/13 */
#define FILE_OLD_GROUPS "group_old.h5"
-#define FILE_OLD_GROUPS_COPY "group_old.h5.copy"
+#define FILE_OLD_GROUPS_COPY "group_old_copy.h5"
/* Definitions for 'no_compact' test */
#define NO_COMPACT_TOP_GROUP "top"
diff --git a/test/tfile.c b/test/tfile.c
index 041522f..6c3746c 100644
--- a/test/tfile.c
+++ b/test/tfile.c
@@ -109,6 +109,9 @@
#define FILE5 "tfile5.h5" /* Test file */
#define TEST_THRESHOLD10 10 /* Free space section threshold */
+/* Declaration for test_libver_macros2() */
+#define FILE6 "tfile6.h5" /* Test file */
+
const char *OLD_FILENAME[] = { /* Files created under 1.6 branch and 1.8 branch */
"filespace_1_6.h5", /* 1.6 HDF5 file */
"filespace_1_8.h5" /* 1.8 HDF5 file */
@@ -3114,6 +3117,117 @@ test_libver_bounds(void)
/****************************************************************
**
+** test_libver_macros():
+** Verify that H5_VERSION_GE and H5_VERSION_LE work correactly.
+**
+****************************************************************/
+static void
+test_libver_macros(void)
+{
+ unsigned major = H5_VERS_MAJOR;
+ unsigned minor = H5_VERS_MINOR;
+ unsigned release = H5_VERS_RELEASE;
+
+ /* Output message about test being performed */
+ MESSAGE(5, ("Testing macros for library version comparison\n"));
+
+ VERIFY(H5_VERSION_GE(major,minor,release), TRUE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major-1,minor,release), TRUE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major-1,minor+1,release), TRUE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major-1,minor,release+1), TRUE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major,minor-1,release), TRUE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major,minor-1,release+1), TRUE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major,minor,release-1), TRUE, "H5_VERSION_GE");
+
+ VERIFY(H5_VERSION_GE(major+1,minor,release), FALSE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major+1,minor-1,release), FALSE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major+1,minor-1,release-1), FALSE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major,minor+1,release), FALSE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major,minor+1,release-1), FALSE, "H5_VERSION_GE");
+ VERIFY(H5_VERSION_GE(major,minor,release+1), FALSE, "H5_VERSION_GE");
+
+ VERIFY(H5_VERSION_LE(major,minor,release), TRUE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major+1,minor,release), TRUE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major+1,minor-1,release), TRUE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major+1,minor-1,release-1), TRUE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major,minor+1,release), TRUE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major,minor+1,release-1), TRUE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major,minor,release+1), TRUE, "H5_VERSION_LE");
+
+ VERIFY(H5_VERSION_LE(major-1,minor,release), FALSE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major-1,minor+1,release), FALSE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major-1,minor+1,release+1), FALSE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major,minor-1,release), FALSE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major,minor-1,release+1), FALSE, "H5_VERSION_LE");
+ VERIFY(H5_VERSION_LE(major,minor,release-1), FALSE, "H5_VERSION_LE");
+} /* test_libver_macros() */
+
+/****************************************************************
+**
+** test_libver_macros2():
+** Verify that H5_VERSION_GE works correactly and show how
+** to use it.
+**
+****************************************************************/
+static void
+test_libver_macros2(void)
+{
+ hid_t file;
+ hid_t grp;
+ htri_t status;
+ herr_t ret; /* Return value */
+
+ /* Output message about test being performed */
+ MESSAGE(5, ("Testing macros for library version comparison with a file\n"));
+
+ /*
+ * Create a file.
+ */
+ file = H5Fcreate(FILE6, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ CHECK(file, FAIL, "H5Fcreate");
+
+ /*
+ * Create a group in the file.
+ */
+ grp = H5Gcreate2(file, "Group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ CHECK(file, FAIL, "H5Gcreate");
+
+ /*
+ * Close the group
+ */
+ ret = H5Gclose(grp);
+ CHECK(ret, FAIL, "H5Gclose");
+
+ /*
+ * Delete the group using different function based on the library version.
+ * And verify the action.
+ */
+#if H5_VERSION_GE(1,8,0)
+ ret = H5Ldelete(file, "Group", H5P_DEFAULT);
+ CHECK(ret, FAIL, "H5Lunlink");
+
+ status = H5Lexists(file, "Group", H5P_DEFAULT);
+ VERIFY(status, FALSE, "H5Lexists");
+#else
+ ret = H5Gunlink(file, "Group");
+ CHECK(ret, FAIL, "H5Gunlink");
+
+ H5E_BEGIN_TRY {
+ grp = H5Gopen(file, "Group");
+ } H5E_END_TRY;
+ VERIFY(grp, FAIL, "H5Gopen");
+#endif
+
+ /*
+ * Close the file.
+ */
+ ret = H5Fclose(file);
+ CHECK(ret, FAIL, "H5Fclose");
+
+} /* test_libver_macros2() */
+
+/****************************************************************
+**
** test_swmr_write(): low-level file test routine.
** This test checks that the H5F_ACC_SWMR_WRITE access flag is
** working properly.
@@ -3488,6 +3602,8 @@ test_file(void)
test_filespace_info(); /* Test file creation public routines:H5Pget/set_file_space */
test_filespace_compatible();/* Test compatibility for file space management */
test_libver_bounds(); /* Test compatibility for file space management */
+ test_libver_macros(); /* Test the macros for library version comparison */
+ test_libver_macros2(); /* Test the macros for library version comparison */
test_swmr_write(); /* Tests for SWMR write access flag */
test_swmr_read(); /* Tests for SWMR read access flag */
#ifndef H5_NO_DEPRECATED_SYMBOLS
diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt
index f6ad731..40db59f 100644
--- a/testpar/CMakeLists.txt
+++ b/testpar/CMakeLists.txt
@@ -21,14 +21,14 @@ SET (testphdf5_SRCS
#-- Adding test for testhdf5
ADD_EXECUTABLE (testphdf5 ${testphdf5_SRCS})
-H5_NAMING (testphdf5 ${LIB_TYPE})
+TARGET_NAMING (testphdf5 ${LIB_TYPE})
TARGET_LINK_LIBRARIES (testphdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_TEST (NAME testphdf5 COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:testphdf5>)
MACRO (ADD_H5P_TEST file)
ADD_EXECUTABLE (${file} ${HDF5_TEST_PAR_SOURCE_DIR}/${file}.c)
- H5_NAMING (${file} ${LIB_TYPE})
+ TARGET_NAMING (${file} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_TEST (NAME ${file} COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:${file}> -p)
@@ -68,19 +68,21 @@ IF (HDF5_TEST_VFD)
ENDIF (DIRECT_VFD)
MACRO (ADD_VFD_TEST vfdname resultcode)
- FOREACH (test ${H5P_VFD_TESTS})
- ADD_TEST (
- NAME VFD-${vfdname}-${test}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
- -D "TEST_ARGS:STRING="
- -D "TEST_VFD:STRING=${vfdname}"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_OUTPUT=${test}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake"
- )
- ENDFOREACH (test ${H5P_VFD_TESTS})
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ FOREACH (test ${H5P_VFD_TESTS})
+ ADD_TEST (
+ NAME VFD-${vfdname}-${test}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
+ -D "TEST_ARGS:STRING="
+ -D "TEST_VFD:STRING=${vfdname}"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_OUTPUT=${test}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake"
+ )
+ ENDFOREACH (test ${H5P_VFD_TESTS})
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_VFD_TEST)
# Run test with different Virtual File Driver
diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt
index 2f39282..8a6ca11 100644
--- a/tools/h5copy/CMakeLists.txt
+++ b/tools/h5copy/CMakeLists.txt
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# Add the h5copy and test executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c)
-H5_NAMING (h5copy ${LIB_TYPE})
+TARGET_NAMING (h5copy ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5copy ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES h5copy)
@@ -25,7 +25,7 @@ SET (H5_DEP_EXECUTABLES h5copy)
IF (BUILD_TESTING)
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5copygentest ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copygentest.c)
- H5_NAMING (h5copygentest ${LIB_TYPE})
+ TARGET_NAMING (h5copygentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5copygentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#ADD_TEST (NAME h5copygentest COMMAND $<TARGET_FILE:h5copygentest>)
@@ -76,67 +76,100 @@ IF (BUILD_TESTING)
##############################################################################
##############################################################################
- MACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname)
+ #
+ # Perform h5copy according to passing parmeters
+ #
+ MACRO (ADD_H5COPY_TEST testname resultcode infile outfile vparam srcname dstname)
IF (NOT "${ARGN}" STREQUAL "")
ADD_TEST (
NAME H5COPY-${testname}
- COMMAND $<TARGET_FILE:h5copy> -f ${ARGN} -i ./testfiles/${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname}
+ COMMAND $<TARGET_FILE:h5copy> -f ${ARGN} -i ./testfiles/${infile} -o ./testfiles/${outfile} -${vparam} -s ${srcname} -d ${dstname}
)
ELSE (NOT "${ARGN}" STREQUAL "")
ADD_TEST (
NAME H5COPY-${testname}
- COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname}
+ COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${outfile} -${vparam} -s ${srcname} -d ${dstname}
)
ENDIF (NOT "${ARGN}" STREQUAL "")
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5COPY-${testname}")
+ # resultcode=2 will cause the test to skip the diff test
IF (NOT ${resultcode} STREQUAL "2")
ADD_TEST (
NAME H5COPY-DIFF_${testname}
- COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${testfile}.h5 ./testfiles/${testfile}.out.h5 ${srcname} ${dstname}
+ COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${outfile} ${srcname} ${dstname}
)
SET_TESTS_PROPERTIES(H5COPY-DIFF_${testname} PROPERTIES DEPENDS H5COPY-${testname})
+ SET (last_test "H5COPY-DIFF_${testname}")
IF (${resultcode} STREQUAL "1")
SET_TESTS_PROPERTIES (H5COPY-DIFF_${testname} PROPERTIES WILL_FAIL "true")
ENDIF (${resultcode} STREQUAL "1")
ENDIF (NOT ${resultcode} STREQUAL "2")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-DIFF_${testname}")
+ ENDMACRO (ADD_H5COPY_TEST)
+
+ #
+ # call ADD_H5COPY_TEST macro with assumption that source and target file
+ # is different
+ #
+ MACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname)
+ ADD_H5COPY_TEST (${testname} ${resultcode} ${testfile}.h5 ${testfile}.out.h5 ${vparam} ${srcname} ${dstname} ${ARGN})
ENDMACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname)
+ #
+ # Test result with h5ls
+ #
MACRO (ADD_H5LS_TEST file filetest)
- ADD_TEST (
- NAME H5COPY-H5LS_${file}-${filetest}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
- -D "TEST_ARGS=-Svr;./testfiles/${file}.out.h5"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=./testfiles/${file}.out.out"
- -D "TEST_EXPECT=0"
- -D "TEST_REFERENCE=./testfiles/${file}.out.ls"
- -D "TEST_MASK=true"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5COPY-H5LS_${file}-${filetest} COMMAND $<TARGET_FILE:h5ls> -Svr ./testfiles/${file}.out.h5)
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5COPY-H5LS_${file}-${filetest}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS=-Svr;./testfiles/${file}.out.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=./testfiles/${file}.out.out"
+ -D "TEST_EXPECT=0"
+ -D "TEST_REFERENCE=./testfiles/${file}.out.ls"
+ -D "TEST_MASK=true"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5COPY-H5LS_${file}-${filetest} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "H5COPY-H5LS_${file}-${filetest}")
ENDMACRO (ADD_H5LS_TEST file filetest)
+ #
+ # Similiar to ADD_H5_TEST macro. Compare to outputs from source & target
+ # files instead of checking with h5ls.
+ #
MACRO (ADD_H5_CMP_TEST testname resultcode testfile vparam srcname dstname)
- ADD_TEST (
- NAME H5COPY-CMP-${testname}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
- -D "TEST_ARGS=-i;${testfile}.h5;-o;./testfiles/${testfile}.out.h5;-${vparam};-s;${srcname};-d;${dstname}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=./testfiles/${testname}.out.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=./testfiles/${testname}.out"
- -D "TEST_MASK=true"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5COPY-CMP-${testname} COMMAND $<TARGET_FILE:h5copy> -i ${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname})
+ IF (${resultcode} STREQUAL "1")
+ SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES WILL_FAIL "true")
+ ENDIF (${resultcode} STREQUAL "1")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5COPY-CMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
+ -D "TEST_ARGS=-i;${testfile}.h5;-o;./testfiles/${testfile}.out.h5;-${vparam};-s;${srcname};-d;${dstname}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=./testfiles/${testname}.out.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=./testfiles/${testname}.out"
+ -D "TEST_MASK=true"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -156,6 +189,7 @@ IF (BUILD_TESTING)
SET (HDF_FILE2 h5copy_ref)
SET (HDF_EXT_SRC_FILE h5copy_extlinks_src)
SET (HDF_EXT_TRG_FILE h5copy_extlinks_trg)
+ SET (HDF_FILE1_TMP h5copytst_tmp)
# Remove any output file left over from previous test run
ADD_TEST (
@@ -261,13 +295,13 @@ IF (BUILD_TESTING)
ADD_H5_TEST (ext_link_f 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_dset /copy2_dset ext)
# "Test copying dangling external link (no obj) directly without -f ext"
- ADD_H5_TEST (ext_dangle_noobj 0 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet1 /copy_dangle1_1)
+ ADD_H5_TEST (ext_dangle_noobj 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet1 /copy_dangle1_1)
# "Test copying dangling external link (no obj) directly with -f ext"
ADD_H5_TEST (ext_dangle_noobj_f 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet1 /copy_dangle1_2 ext)
# "Test copying dangling external link (no file) directly without -f ext"
- ADD_H5_TEST (ext_dangle_nofile 0 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet2 /copy_dangle2_1)
+ ADD_H5_TEST (ext_dangle_nofile 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet2 /copy_dangle2_1)
# "Test copying dangling external link (no file) directly with -f ext"
ADD_H5_TEST (ext_dangle_nofile_f 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet2 /copy_dangle2_2 ext)
@@ -295,18 +329,32 @@ IF (BUILD_TESTING)
NAME H5COPY-clear-misc
COMMAND ${CMAKE_COMMAND}
-E remove
- ./testfiles/${HDF_FILE1}.out.h5
- ./testfiles/${HDF_FILE1}.out.out
- ./testfiles/${HDF_FILE1}.out.out.err
+ ./testfiles/h5copy_misc1.out.out
+ ./testfiles/h5copy_misc1.out.out.err
+ ./testfiles/${HDF_FILE1_TMP}.h5
+ ./testfiles/h5copy_misc1.out.h5
)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5COPY-clear-misc PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "H5COPY-clear-misc")
+ #-----------------------------------------------------------------
# "Test copying object into group which doesn't exist, without -p"
+ #
ADD_H5_CMP_TEST (h5copy_misc1 1 ${HDF_FILE1} v /simple /g1/g2/simple)
+ #-------------------------------------------
+ # "Test copying objects to the same file "
+ #
+ # create temporary test file with some objects
+ ADD_H5COPY_TEST (samefile1_pre 0 ${HDF_FILE1}.h5 ${HDF_FILE1_TMP}.h5 v /simple /simple)
+ ADD_H5COPY_TEST (samefile2_pre 0 ${HDF_FILE1}.h5 ${HDF_FILE1_TMP}.h5 v /grp_dsets /grp_dsets)
+ # actual test cases
+ # - dataset
+ ADD_H5COPY_TEST (samefile1 0 ${HDF_FILE1_TMP}.h5 ${HDF_FILE1_TMP}.h5 v /simple /simple_cp)
+ # - group with some datasets
+ ADD_H5COPY_TEST (samefile2 0 ${HDF_FILE1_TMP}.h5 ${HDF_FILE1_TMP}.h5 v /grp_dsets /grp_dsets_cp)
ENDIF (BUILD_TESTING)
##############################################################################
diff --git a/tools/h5copy/h5copy.c b/tools/h5copy/h5copy.c
index 3760d6f..fb8bb81 100644
--- a/tools/h5copy/h5copy.c
+++ b/tools/h5copy/h5copy.c
@@ -319,6 +319,14 @@ main (int argc, const char *argv[])
leave(EXIT_FAILURE);
}
+ /*-------------------------------------------------------------------------
+ * open output file
+ *-------------------------------------------------------------------------*/
+
+ /* Attempt to open an existing HDF5 file first. Need to open the dst file
+ before the src file just in case that the dst and src are the same file
+ */
+ fid_dst = h5tools_fopen(fname_dst, H5F_ACC_RDWR, H5P_DEFAULT, NULL, NULL, 0);
/*-------------------------------------------------------------------------
* open input file
@@ -337,13 +345,11 @@ main (int argc, const char *argv[])
leave(EXIT_FAILURE);
}
+
/*-------------------------------------------------------------------------
- * open output file
+ * create an output file when failed to open it
*-------------------------------------------------------------------------*/
- /* Attempt to open an existing HDF5 file first */
- fid_dst = h5tools_fopen(fname_dst, H5F_ACC_RDWR, H5P_DEFAULT, NULL, NULL, 0);
-
/* If we couldn't open an existing file, try creating file */
/* (use "EXCL" instead of "TRUNC", so we don't blow away existing non-HDF5 file) */
if(fid_dst < 0)
diff --git a/tools/h5copy/h5copygentest.c b/tools/h5copy/h5copygentest.c
index 26a2588..f655c39 100644
--- a/tools/h5copy/h5copygentest.c
+++ b/tools/h5copy/h5copygentest.c
@@ -231,7 +231,7 @@ static void gent_compressed(hid_t loc_id)
/*-------------------------------------------------------------------------
* Function: gent_named_vl
*
- * Purpose: Generate a variable lenght named datatype for a dataset in
+ * Purpose: Generate a variable lenght named datatype for a dataset in
LOC_ID
*
*-------------------------------------------------------------------------
@@ -423,6 +423,7 @@ static herr_t gen_obj_ref(hid_t loc_id)
hsize_t dims2[1]={2};
int data[3] = {10,20,30};
int status;
+
/*---------------------
* create obj references to the previously created objects.
* Passing -1 as reference is an object.*/
@@ -645,7 +646,7 @@ out:
/*-------------------------------------------------------------------------
* Function: Test_Obj_Copy
*
- * Purpose: Testing with various objects
+ * Purpose: Testing with various objects
*
*------------------------------------------------------------------------*/
static void Test_Obj_Copy()
@@ -706,14 +707,14 @@ static void Test_Ref_Copy()
{
hid_t fid=0;
herr_t status;
-
+
fid = H5Fcreate (HDF_FILE2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
if (fid < 0)
{
fprintf(stderr, "Error: %s> H5Fcreate failed.\n", HDF_FILE2);
goto out;
}
-
+
/* add object reference */
status = gen_obj_ref(fid);
if (status < 0)
@@ -873,7 +874,7 @@ static void Test_Extlink_Copy()
hid_t fid1=0;
hid_t fid2=0;
herr_t status;
-
+
fid1 = H5Fcreate (HDF_EXT_SRC_FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
if (fid1 < 0)
{
@@ -887,7 +888,7 @@ static void Test_Extlink_Copy()
fprintf(stderr, "Error: %s> H5Fcreate failed.\n", HDF_EXT_TRG_FILE);
goto out;
}
-
+
/* add links to source external link file */
status = gen_extlink_src(fid1);
if (status < 0)
diff --git a/tools/h5copy/testh5copy.sh b/tools/h5copy/testh5copy.sh
index 1ce6a31..1c54c8b 100644
--- a/tools/h5copy/testh5copy.sh
+++ b/tools/h5copy/testh5copy.sh
@@ -401,13 +401,13 @@ COPY_EXT_LINKS()
TOOLTEST -f ext -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_dset -d /copy2_dset
echo "Test copying dangling external link (no obj) directly without -f ext"
- TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_1
+ TOOLTEST -v -i $TESTFILE -o $FILEOUT -s /group_ext/extlink_notyet1 -d /copy_dangle1_1
echo "Test copying dangling external link (no obj) directly with -f ext"
TOOLTEST -f ext -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_2
echo "Test copying dangling external link (no file) directly without -f ext"
- TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_1
+ TOOLTEST -v -i $TESTFILE -o $FILEOUT -s /group_ext/extlink_notyet2 -d /copy_dangle2_1
echo "Test copying dangling external link (no file) directly with -f ext"
TOOLTEST -f ext -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_2
@@ -443,6 +443,15 @@ TEST_MISC()
echo "Test copying object into group which doesn't exist, without -p"
TOOLTEST_FAIL h5copy_misc1.out -v -i $TESTFILE -o $FILEOUT -s /simple -d /g1/g2/simple
+ echo "Test copying objects to the same file "
+ rm -f $FILEOUT
+ # create temporary test file ($FILEOUT) with some objects
+ TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /simple -d /simple
+ TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /grp_dsets -d /grp_dsets
+ # actual test cases
+ TOOLTEST -i $FILEOUT -o $FILEOUT -v -s /simple -d /simple_cp
+ TOOLTEST -i $FILEOUT -o $FILEOUT -v -s /grp_dsets -d /grp_dsets_cp
+
# Remove output file created, if the "no cleanup" environment variable is
# not defined
if test -z "$HDF5_NOCLEANUP"; then
diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt
index 3041171..48ba8e6 100644
--- a/tools/h5diff/CMakeLists.txt
+++ b/tools/h5diff/CMakeLists.txt
@@ -14,7 +14,7 @@ ADD_EXECUTABLE (h5diff
${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_common.c
${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c
)
-H5_NAMING (h5diff ${LIB_TYPE})
+TARGET_NAMING (h5diff ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES h5diff)
@@ -31,7 +31,7 @@ IF (BUILD_TESTING)
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5diffgentest ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diffgentest.c)
- H5_NAMING (h5diffgentest ${LIB_TYPE})
+ TARGET_NAMING (h5diffgentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5diffgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#ADD_TEST (NAME h5diffgentest COMMAND $<TARGET_FILE:h5diffgentest>)
@@ -174,6 +174,17 @@ IF (BUILD_TESTING)
h5diff_628.txt
h5diff_629.txt
h5diff_70.txt
+ h5diff_700.txt
+ h5diff_701.txt
+ h5diff_702.txt
+ h5diff_703.txt
+ h5diff_704.txt
+ h5diff_705.txt
+ h5diff_706.txt
+ h5diff_707.txt
+ h5diff_708.txt
+ h5diff_709.txt
+ h5diff_710.txt
h5diff_80.txt
h5diff_90.txt
)
@@ -209,6 +220,8 @@ IF (BUILD_TESTING)
h5diff_exclude2-1.h5
h5diff_exclude2-2.h5
h5diff_comp_vl_strs.h5
+ h5diff_attr_v_level1.h5
+ h5diff_attr_v_level2.h5
)
FOREACH (txt_file ${HDF5_REFERENCE_FILES})
@@ -270,18 +283,26 @@ IF (BUILD_TESTING)
##############################################################################
MACRO (ADD_H5_TEST resultfile resultcode)
- ADD_TEST (
- NAME H5DIFF-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
- -D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}.txt"
- -D "TEST_APPEND=EXIT CODE:"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5DIFF-${resultfile} COMMAND $<TARGET_FILE:h5diff> ${ARGN})
+ IF (NOT ${resultcode} STREQUAL "0")
+ SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (NOT ${resultcode} STREQUAL "0")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DIFF-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.txt"
+ -D "TEST_APPEND=EXIT CODE:"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -332,6 +353,10 @@ IF (BUILD_TESTING)
SET (EXCLUDE_FILE2_2 h5diff_exclude2-2.h5)
# compound type with multiple vlen string types
SET (COMP_VL_STRS_FILE h5diff_comp_vl_strs.h5)
+ # attrs with verbose option level
+ SET (ATTR_VERBOSE_LEVEL_FILE1 h5diff_attr_v_level1.h5)
+ SET (ATTR_VERBOSE_LEVEL_FILE2 h5diff_attr_v_level2.h5)
+
# Remove any output file left over from previous test run
ADD_TEST (
@@ -604,6 +629,28 @@ IF (BUILD_TESTING)
h5diff_629.out.err
h5diff_70.out
h5diff_70.out.err
+ h5diff_700.out
+ h5diff_700.out.err
+ h5diff_701.out
+ h5diff_701.out.err
+ h5diff_702.out
+ h5diff_702.out.err
+ h5diff_703.out
+ h5diff_703.out.err
+ h5diff_704.out
+ h5diff_704.out.err
+ h5diff_705.out
+ h5diff_705.out.err
+ h5diff_706.out
+ h5diff_706.out.err
+ h5diff_707.out
+ h5diff_707.out.err
+ h5diff_708.out
+ h5diff_708.out.err
+ h5diff_709.out
+ h5diff_709.out.err
+ h5diff_710.out
+ h5diff_710.out.err
h5diff_80.out
h5diff_80.out.err
h5diff_90.out
@@ -614,12 +661,6 @@ IF (BUILD_TESTING)
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "H5DIFF-clearall-objects")
- # If using memchecker add tests without using scripts
- IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5DIFF-help COMMAND h5diff -h)
- ADD_TEST (NAME H5DIFF-normal-mode COMMAND h5diff ${FILE1} ${FILE2})
- ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
-
# ############################################################################
# # Common usage
# ############################################################################
@@ -842,6 +883,37 @@ ADD_H5_TEST (h5diff_628 1 -n 1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
# ##############################################################################
ADD_H5_TEST (h5diff_70 1 -v ${FILE5} ${FILE6})
+# ##################################################
+# attrs with verbose option level
+# ##################################################
+ADD_H5_TEST (h5diff_700 1 -v1 ${FILE5} ${FILE6})
+ADD_H5_TEST (h5diff_701 1 -v2 ${FILE5} ${FILE6})
+ADD_H5_TEST (h5diff_702 1 --verbose=1 ${FILE5} ${FILE6})
+ADD_H5_TEST (h5diff_703 1 --verbose=2 ${FILE5} ${FILE6})
+
+# same attr number , all same attr name
+ADD_H5_TEST (h5diff_704 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g)
+
+# same attr number , some same attr name
+ADD_H5_TEST (h5diff_705 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /dset)
+
+# same attr number , all different attr name
+ADD_H5_TEST (h5diff_706 0 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /ntype)
+
+# different attr number , same attr name (intersected)
+ADD_H5_TEST (h5diff_707 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g2)
+
+# different attr number , all different attr name
+ADD_H5_TEST (h5diff_708 0 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g3)
+
+# when no attributes exist in both objects
+ADD_H5_TEST (h5diff_709 0 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g4)
+
+# file vs file
+ADD_H5_TEST (h5diff_710 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2})
+
+
+
# ##############################################################################
# 8. all dataset datatypes
# ##############################################################################
diff --git a/tools/h5diff/h5diff_common.c b/tools/h5diff/h5diff_common.c
index 84eb49a..da420b0 100644
--- a/tools/h5diff/h5diff_common.c
+++ b/tools/h5diff/h5diff_common.c
@@ -27,12 +27,12 @@ static int check_d_input( const char* );
* Command-line options: The user can specify short or long-named
* parameters.
*/
-static const char *s_opts = "hVrvqn:d:p:Nc";
+static const char *s_opts = "hVrv:qn:d:p:Nc";
static struct long_options l_opts[] = {
{ "help", no_arg, 'h' },
{ "version", no_arg, 'V' },
{ "report", no_arg, 'r' },
- { "verbose", no_arg, 'v' },
+ { "verbose", optional_arg, 'v' },
{ "quiet", no_arg, 'q' },
{ "count", require_arg, 'n' },
{ "delta", require_arg, 'd' },
@@ -63,7 +63,7 @@ void parse_command_line(int argc,
const char** objname2,
diff_opt_t* options)
{
-
+ int i;
int opt;
struct exclude_path_list *exclude_head, *exclude_prev, *exclude_node;
@@ -95,6 +95,40 @@ void parse_command_line(int argc,
h5diff_exit(EXIT_SUCCESS);
case 'v':
options->m_verbose = 1;
+ /* This for loop is for handling style like
+ * -v, -v1, --verbose, --verbose=1.
+ */
+ for (i = 1; i < argc; i++)
+ {
+ /*
+ * short opt
+ */
+ if (!strcmp (argv[i], "-v")) /* no arg */
+ {
+ opt_ind--;
+ options->m_verbose_level = 0;
+ break;
+ }
+ else if (!strncmp (argv[i], "-v", 2))
+ {
+ options->m_verbose_level = atoi(&argv[i][2]);
+ break;
+ }
+
+ /*
+ * long opt
+ */
+ if (!strcmp (argv[i], "--verbose")) /* no arg */
+ {
+ options->m_verbose_level = 0;
+ break;
+ }
+ else if ( !strncmp (argv[i], "--verbose", 9) && argv[i][9]=='=')
+ {
+ options->m_verbose_level = atoi(&argv[i][10]);
+ break;
+ }
+ }
break;
case 'q':
/* use quiet mode; supress the message "0 differences found" */
@@ -104,7 +138,7 @@ void parse_command_line(int argc,
options->m_report = 1;
break;
case 'l':
- options->follow_links = 1;
+ options->follow_links = 1;
break;
case 'x':
options->no_dangle_links = 1;
@@ -399,7 +433,16 @@ void usage(void)
printf(" -h, --help Print a usage message and exit.\n");
printf(" -V, --version Print version number and exit.\n");
printf(" -r, --report Report mode. Print differences.\n");
- printf(" -v, --verbose Verbose mode. Print differences, list of objects.\n");
+ printf(" -v --verbose Verbose mode. Print differences information and list\n");
+ printf(" of objects.\n");
+ printf(" -vN --verbose=N Verbose mode with level. Print differences and list\n");
+ printf(" of objects.\n");
+ printf(" Level of detail depends on value of N:\n");
+ printf(" 0 : Identical to '-v' or '--verbose'.\n");
+ printf(" 1 : All level 0 information plus one-line attribute\n");
+ printf(" status summary.\n");
+ printf(" 2 : All level 1 information plus extended attribute\n");
+ printf(" status report.\n");
printf(" -q, --quiet Quiet mode. Do not produce output.\n");
printf(" --follow-symlinks Follow symbolic links (soft links and external links)\n");
printf(" and compare the links' target objects.\n");
diff --git a/tools/h5diff/h5diffgentest.c b/tools/h5diff/h5diffgentest.c
index 4b397a5..8b9c879 100644
--- a/tools/h5diff/h5diffgentest.c
+++ b/tools/h5diff/h5diffgentest.c
@@ -72,6 +72,9 @@
#define EXCLUDE_FILE2_2 "h5diff_exclude2-2.h5"
/* compound type with multiple vlen string types */
#define COMP_VL_STRS_FILE "h5diff_comp_vl_strs.h5"
+/* attribute compre with verbose level */
+#define ATTR_VERBOSE_LEVEL_FILE1 "h5diff_attr_v_level1.h5"
+#define ATTR_VERBOSE_LEVEL_FILE2 "h5diff_attr_v_level2.h5"
#define UIMAX 4294967295u /*Maximum value for a variable of type unsigned int */
#define STR_SIZE 3
@@ -117,10 +120,11 @@ static int test_external_links(const char *fname1, const char *fname2);
static int test_ext2soft_links(const char *fname1, const char *fname2);
static int test_dangle_links(const char *fname1, const char *fname2);
static int test_group_recurse(const char *fname1, const char *fname2);
-static int test_group_recurse2();
+static int test_group_recurse2(void);
static int test_exclude_obj1(const char *fname1, const char *fname2);
static int test_exclude_obj2(const char *fname1, const char *fname2);
static int test_comp_vlen_strings(const char *fname1);
+static int test_attributes_verbose_level(const char *fname1, const char *fname2);
/* called by test_attributes() and test_datasets() */
static void write_attr_in(hid_t loc_id,const char* dset_name,hid_t fid,int make_diffs);
@@ -151,6 +155,9 @@ int main(void)
test_attributes(FILE5,0);
test_attributes(FILE6,1);
+ /* test attributes with verbose level */
+ test_attributes_verbose_level(ATTR_VERBOSE_LEVEL_FILE1, ATTR_VERBOSE_LEVEL_FILE2);
+
/* generate 2 files, the second call creates a similar file with differences */
test_datasets(FILE7,0);
test_datasets(FILE8,1);
@@ -905,6 +912,293 @@ int test_attributes(const char *file,
/*-------------------------------------------------------------------------
+* Function: test_attributes_verbose_level
+*
+* Purpose: Cresting test files for testing attributes along with
+* levels of verbos option
+*
+*-------------------------------------------------------------------------
+*/
+static int test_attributes_verbose_level(const char *fname1, const char *fname2)
+{
+ int i;
+ herr_t status = SUCCEED;
+ hid_t fid1, fid2;
+ hid_t f1_gid, f2_gid;
+ hid_t f1_gid2, f2_gid2;
+ hid_t f1_gid3, f2_gid3;
+ hid_t f1_gid4, f2_gid4;
+ hid_t f1_did, f2_did;
+ hid_t f1_sid, f2_sid;
+ hid_t f1_tid, f2_tid;
+ /* dset */
+ hsize_t dset_dims[1]={3};
+ int dset_data[3] = {0,1,2};
+
+ /* common attrs dim */
+ hsize_t attr_dims[1]={2};
+
+ /* file1 attr */
+ int f1_attr_idata[2]= {1,2}; /* integer */
+ float f1_attr_fdata[2]= {1.1,2.2}; /* float */
+ /* file2 attr */
+ int f2_attr_idata[2]= {2,3}; /* integer */
+ float f2_attr_fdata[2]= {2.1,3.2}; /* float */
+
+
+ /*----------------------------------------------------------------------
+ * Create file1
+ *-----------------------------------------------------------------------*/
+ if((fid1 = H5Fcreate(fname1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * Groups
+ */
+ f1_gid = H5Gcreate2(fid1, "g", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f1_gid < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+
+ f1_gid2 = H5Gcreate2(fid1, "g2", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f1_gid2 < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+
+ f1_gid3 = H5Gcreate2(fid1, "g3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f1_gid3 < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+
+ f1_gid4 = H5Gcreate2(fid1, "g4", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f1_gid4 < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * Datasets
+ */
+ f1_sid = H5Screate_simple(1, dset_dims, NULL);
+ f1_did = H5Dcreate2(fid1, "dset", H5T_NATIVE_INT, f1_sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f1_did == FAIL)
+ {
+ fprintf(stderr, "Error: %s> write_dset failed\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+ status = H5Dwrite(f1_did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset_data);
+ if (status < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Dwrite failed.\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * Named Datatype
+ */
+ f1_tid = H5Tcopy(H5T_NATIVE_INT);
+ status = H5Tcommit2(fid1, "ntype", f1_tid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (status < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Tcommit2 failed.\n", fname1);
+ status = FAIL;
+ goto out;
+ }
+
+
+
+
+ /*----------------------------------------------------------------------
+ * Create file2
+ *-----------------------------------------------------------------------*/
+ if((fid2 = H5Fcreate(fname2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * Groups
+ */
+ f2_gid = H5Gcreate2(fid2, "g", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f2_gid < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ f2_gid2 = H5Gcreate2(fid2, "g2", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f2_gid2 < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ f2_gid3 = H5Gcreate2(fid2, "g3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f2_gid3 < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ f2_gid4 = H5Gcreate2(fid2, "g4", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f2_gid4 < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * Datasets
+ */
+ f2_sid = H5Screate_simple(1, dset_dims, NULL);
+ f2_did = H5Dcreate2(fid2, "dset", H5T_NATIVE_INT, f2_sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (f2_did == FAIL)
+ {
+ fprintf(stderr, "Error: %s> write_dset failed\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+ status = H5Dwrite(f2_did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset_data);
+ if (status < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Dwrite failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * Named Datatype
+ */
+ f2_tid = H5Tcopy(H5T_NATIVE_INT);
+ status = H5Tcommit2(fid2, "ntype", f2_tid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ if (status < 0)
+ {
+ fprintf(stderr, "Error: %s> H5Tcommit2 failed.\n", fname2);
+ status = FAIL;
+ goto out;
+ }
+
+ /*----------------------------------
+ * CASE1 - Same attr number, all Same attr name
+ * add attr to group
+ */
+ write_attr(f1_gid,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata);
+ write_attr(f1_gid,1,attr_dims,"float1",H5T_NATIVE_FLOAT,f1_attr_fdata);
+
+ write_attr(f2_gid,1,attr_dims,"integer1",H5T_NATIVE_INT,f2_attr_idata);
+ write_attr(f2_gid,1,attr_dims,"float1",H5T_NATIVE_FLOAT,f2_attr_fdata);
+
+ /*----------------------------------
+ * CASE2 - Same attr number, some Same attr name
+ * add attr to dset
+ */
+ write_attr(f1_did,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata);
+ write_attr(f1_did,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f1_attr_fdata);
+
+ write_attr(f2_did,1,attr_dims,"integer1",H5T_NATIVE_INT,f2_attr_idata);
+ write_attr(f2_did,1,attr_dims,"float3",H5T_NATIVE_FLOAT,f2_attr_fdata);
+
+ /*----------------------------------
+ * CASE3 - Same attr number, all different attr name
+ * add attr to ntype
+ */
+ write_attr(f1_tid,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata);
+ write_attr(f1_tid,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f1_attr_fdata);
+ write_attr(f1_tid,1,attr_dims,"float3",H5T_NATIVE_FLOAT,f1_attr_fdata);
+
+ write_attr(f2_tid,1,attr_dims,"integer4",H5T_NATIVE_INT,f2_attr_idata);
+ write_attr(f2_tid,1,attr_dims,"float5",H5T_NATIVE_FLOAT,f2_attr_fdata);
+ write_attr(f2_tid,1,attr_dims,"float6",H5T_NATIVE_FLOAT,f2_attr_fdata);
+
+ /*----------------------------------
+ * CASE4 - Different attr number, some same attr name (vs file2-g2)
+ * add attr to g2
+ */
+ write_attr(f1_gid2,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata);
+ write_attr(f1_gid2,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f1_attr_fdata);
+ write_attr(f1_gid2,1,attr_dims,"float3",H5T_NATIVE_FLOAT,f1_attr_fdata);
+
+ write_attr(f2_gid2,1,attr_dims,"integer1",H5T_NATIVE_INT,f2_attr_idata);
+ write_attr(f2_gid2,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f2_attr_fdata);
+
+
+ /*----------------------------------
+ * CASE5 - Different attr number, all different attr name
+ * add attr to g3
+ */
+ write_attr(f1_gid3,1,attr_dims,"integer10",H5T_NATIVE_INT,f1_attr_idata);
+ write_attr(f1_gid3,1,attr_dims,"float11",H5T_NATIVE_FLOAT,f1_attr_fdata);
+ write_attr(f1_gid3,1,attr_dims,"float12",H5T_NATIVE_FLOAT,f1_attr_fdata);
+
+ write_attr(f2_gid3,1,attr_dims,"integer3",H5T_NATIVE_INT,f2_attr_idata);
+ write_attr(f2_gid3,1,attr_dims,"float4",H5T_NATIVE_FLOAT,f2_attr_fdata);
+
+
+out:
+ /*-----------------------------------------------------------------------
+ * Close
+ *-----------------------------------------------------------------------*/
+ if(fid1)
+ H5Fclose(fid1);
+ if(fid2)
+ H5Fclose(fid2);
+ if(f1_gid > 0)
+ H5Gclose(f1_gid);
+ if(f2_gid > 0)
+ H5Gclose(f2_gid);
+ if(f1_gid2 > 0)
+ H5Gclose(f1_gid2);
+ if(f2_gid2 > 0)
+ H5Gclose(f2_gid2);
+ if(f1_gid3 > 0)
+ H5Gclose(f1_gid3);
+ if(f2_gid3 > 0)
+ H5Gclose(f2_gid3);
+ if(f1_gid4 > 0)
+ H5Gclose(f1_gid4);
+ if(f2_gid4 > 0)
+ H5Gclose(f2_gid4);
+ if(f1_did > 0)
+ H5Dclose(f1_did);
+ if(f2_did > 0)
+ H5Dclose(f2_did);
+ if(f1_sid >0)
+ H5Sclose(f1_sid);
+ if(f2_sid >0)
+ H5Sclose(f2_sid);
+ if(f1_tid >0)
+ H5Tclose(f1_tid);
+ if(f2_tid >0)
+ H5Tclose(f2_tid);
+
+ return status;
+}
+
+
+/*-------------------------------------------------------------------------
* Function: test_datasets
*
* Purpose: Check all HDF5 classes
@@ -964,7 +1258,7 @@ int test_datasets(const char *file,
/*-------------------------------------------------------------------------
*
-* Purpose: Create test files to compare links, one has longer name than
+* Purpose: Create test files to compare links, one has longer name than
* the other and short name is subset of long name.
*
* Programmer: Jonathan Kim (Feb 17, 2010)
@@ -2427,7 +2721,7 @@ out:
*-------------------------------------------------------------------------*/
#define GRP_R_DSETNAME1 "dset1"
#define GRP_R_DSETNAME2 "dset2"
-static int test_group_recurse2()
+static int test_group_recurse2(void)
{
hid_t fileid1;
hid_t grp1=0, grp2;
diff --git a/tools/h5diff/testfiles/h5diff_10.txt b/tools/h5diff/testfiles/h5diff_10.txt
index 4dae480..0b354df 100644
--- a/tools/h5diff/testfiles/h5diff_10.txt
+++ b/tools/h5diff/testfiles/h5diff_10.txt
@@ -8,7 +8,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_600.txt b/tools/h5diff/testfiles/h5diff_600.txt
index ea767fc..efc05a8 100644
--- a/tools/h5diff/testfiles/h5diff_600.txt
+++ b/tools/h5diff/testfiles/h5diff_600.txt
@@ -8,7 +8,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_603.txt b/tools/h5diff/testfiles/h5diff_603.txt
index 1c48c8b..c66c650 100644
--- a/tools/h5diff/testfiles/h5diff_603.txt
+++ b/tools/h5diff/testfiles/h5diff_603.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_606.txt b/tools/h5diff/testfiles/h5diff_606.txt
index 8f3bbd6..705ae3e 100644
--- a/tools/h5diff/testfiles/h5diff_606.txt
+++ b/tools/h5diff/testfiles/h5diff_606.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_612.txt b/tools/h5diff/testfiles/h5diff_612.txt
index e348caa..d38e9d4 100644
--- a/tools/h5diff/testfiles/h5diff_612.txt
+++ b/tools/h5diff/testfiles/h5diff_612.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_615.txt b/tools/h5diff/testfiles/h5diff_615.txt
index 1bb0eb5..4b95ea1 100644
--- a/tools/h5diff/testfiles/h5diff_615.txt
+++ b/tools/h5diff/testfiles/h5diff_615.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_621.txt b/tools/h5diff/testfiles/h5diff_621.txt
index 172cade..56ed724 100644
--- a/tools/h5diff/testfiles/h5diff_621.txt
+++ b/tools/h5diff/testfiles/h5diff_621.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_622.txt b/tools/h5diff/testfiles/h5diff_622.txt
index beb04c5..6e2db1b 100644
--- a/tools/h5diff/testfiles/h5diff_622.txt
+++ b/tools/h5diff/testfiles/h5diff_622.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_623.txt b/tools/h5diff/testfiles/h5diff_623.txt
index 56c0b4c..910f4f0 100644
--- a/tools/h5diff/testfiles/h5diff_623.txt
+++ b/tools/h5diff/testfiles/h5diff_623.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_624.txt b/tools/h5diff/testfiles/h5diff_624.txt
index c0a95ed..e301645 100644
--- a/tools/h5diff/testfiles/h5diff_624.txt
+++ b/tools/h5diff/testfiles/h5diff_624.txt
@@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
-h, --help Print a usage message and exit.
-V, --version Print version number and exit.
-r, --report Report mode. Print differences.
- -v, --verbose Verbose mode. Print differences, list of objects.
+ -v --verbose Verbose mode. Print differences information and list
+ of objects.
+ -vN --verbose=N Verbose mode with level. Print differences and list
+ of objects.
+ Level of detail depends on value of N:
+ 0 : Identical to '-v' or '--verbose'.
+ 1 : All level 0 information plus one-line attribute
+ status summary.
+ 2 : All level 1 information plus extended attribute
+ status report.
-q, --quiet Quiet mode. Do not produce output.
--follow-symlinks Follow symbolic links (soft links and external links)
and compare the links' target objects.
diff --git a/tools/h5diff/testfiles/h5diff_70.txt b/tools/h5diff/testfiles/h5diff_70.txt
index 7abcddd..c6aeb68 100644
--- a/tools/h5diff/testfiles/h5diff_70.txt
+++ b/tools/h5diff/testfiles/h5diff_70.txt
@@ -7,15 +7,6 @@ file1 file2
group : </> and </>
0 differences found
-attribute: <string of </>> and <string of </>>
-size: [2] [2]
-position string of </> string of </> difference
-------------------------------------------------------------
-[ 0 ] a z
-[ 0 ] b z
-[ 1 ] d z
-[ 1 ] e z
-4 differences found
attribute: <VLstring of </>> and <VLstring of </>>
size: [2] [2]
position VLstring of </> VLstring of </> difference
@@ -25,86 +16,6 @@ position VLstring of </> VLstring of </> difference
[ 1 ] d z
[ 1 ] e z
4 differences found
-attribute: <bitfield of </>> and <bitfield of </>>
-size: [2] [2]
-position bitfield of </> bitfield of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <opaque of </>> and <opaque of </>>
-size: [2] [2]
-position opaque of </> opaque of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <compound of </>> and <compound of </>>
-size: [2] [2]
-position compound of </> compound of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 0 ] 2 0 2
-[ 1 ] 3 0 3
-[ 1 ] 4 0 4
-4 differences found
-attribute: <enum of </>> and <enum of </>>
-size: [2] [2]
-position enum of </> enum of </> difference
-------------------------------------------------------------
-[ 0 ] RED GREEN
-[ 1 ] RED GREEN
-2 differences found
-attribute: <vlen of </>> and <vlen of </>>
-size: [2] [2]
-position vlen of </> vlen of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-[ 1 ] 3 0 3
-3 differences found
-attribute: <array of </>> and <array of </>>
-size: [2] [2]
-position array of </> array of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 0 ] 2 0 2
-[ 0 ] 3 0 3
-[ 1 ] 4 0 4
-[ 1 ] 5 0 5
-[ 1 ] 6 0 6
-6 differences found
-attribute: <integer of </>> and <integer of </>>
-size: [2] [2]
-position integer of </> integer of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <float of </>> and <float of </>>
-size: [2] [2]
-position float of </> float of </> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <string2D of </>> and <string2D of </>>
-size: [3x2] [3x2]
-position string2D of </> string2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] a z
-[ 0 0 ] b z
-[ 0 1 ] c z
-[ 0 1 ] d z
-[ 1 0 ] e z
-[ 1 0 ] f z
-[ 1 1 ] g z
-[ 1 1 ] h z
-[ 2 0 ] i z
-[ 2 0 ] j z
-[ 2 1 ] k z
-[ 2 1 ] l z
-12 differences found
attribute: <VLstring2D of </>> and <VLstring2D of </>>
size: [3x2] [3x2]
position VLstring2D of </> VLstring2D of </> difference
@@ -122,169 +33,6 @@ position VLstring2D of </> VLstring2D of </> difference
[ 2 1 ] k z
[ 2 1 ] l z
12 differences found
-attribute: <bitfield2D of </>> and <bitfield2D of </>>
-size: [3x2] [3x2]
-position bitfield2D of </> bitfield2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <opaque2D of </>> and <opaque2D of </>>
-size: [3x2] [3x2]
-position opaque2D of </> opaque2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <compound2D of </>> and <compound2D of </>>
-size: [3x2] [3x2]
-position compound2D of </> compound2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 0 ] 2 0 2
-[ 0 1 ] 3 0 3
-[ 0 1 ] 4 0 4
-[ 1 0 ] 5 0 5
-[ 1 0 ] 6 0 6
-[ 1 1 ] 7 0 7
-[ 1 1 ] 8 0 8
-[ 2 0 ] 9 0 9
-[ 2 0 ] 10 0 10
-[ 2 1 ] 11 0 11
-[ 2 1 ] 12 0 12
-12 differences found
-attribute: <enum2D of </>> and <enum2D of </>>
-size: [3x2] [3x2]
-position enum2D of </> enum2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] RED GREEN
-[ 0 1 ] RED GREEN
-[ 1 0 ] RED GREEN
-[ 1 1 ] RED GREEN
-[ 2 0 ] RED GREEN
-[ 2 1 ] RED GREEN
-6 differences found
-attribute: <vlen2D of </>> and <vlen2D of </>>
-size: [3x2] [3x2]
-position vlen2D of </> vlen2D of </> difference
-------------------------------------------------------------
-[ 0 1 ] 1 0 1
-[ 1 0 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 1 1 ] 5 0 5
-[ 2 0 ] 6 0 6
-[ 2 0 ] 7 0 7
-[ 2 0 ] 8 0 8
-[ 2 1 ] 9 0 9
-[ 2 1 ] 10 0 10
-[ 2 1 ] 11 0 11
-11 differences found
-attribute: <array2D of </>> and <array2D of </>>
-size: [3x2] [3x2]
-position array2D of </> array2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 0 ] 2 0 2
-[ 0 0 ] 3 0 3
-[ 0 1 ] 4 0 4
-[ 0 1 ] 5 0 5
-[ 0 1 ] 6 0 6
-[ 1 0 ] 7 0 7
-[ 1 0 ] 8 0 8
-[ 1 0 ] 9 0 9
-[ 1 1 ] 10 0 10
-[ 1 1 ] 11 0 11
-[ 1 1 ] 12 0 12
-[ 2 0 ] 13 0 13
-[ 2 0 ] 14 0 14
-[ 2 0 ] 15 0 15
-[ 2 1 ] 16 0 16
-[ 2 1 ] 17 0 17
-[ 2 1 ] 18 0 18
-18 differences found
-attribute: <integer2D of </>> and <integer2D of </>>
-size: [3x2] [3x2]
-position integer2D of </> integer2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <float2D of </>> and <float2D of </>>
-size: [3x2] [3x2]
-position float2D of </> float2D of </> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <string3D of </>> and <string3D of </>>
-size: [4x3x2] [4x3x2]
-position string3D of </> string3D of </> difference
-------------------------------------------------------------
-[ 0 0 0 ] a z
-[ 0 0 0 ] b z
-[ 0 0 1 ] c z
-[ 0 0 1 ] d z
-[ 0 1 0 ] e z
-[ 0 1 0 ] f z
-[ 0 1 1 ] g z
-[ 0 1 1 ] h z
-[ 0 2 0 ] i z
-[ 0 2 0 ] j z
-[ 0 2 1 ] k z
-[ 0 2 1 ] l z
-[ 1 0 0 ] m z
-[ 1 0 0 ] n z
-[ 1 0 1 ] p z
-[ 1 0 1 ] q z
-[ 1 1 0 ] r z
-[ 1 1 0 ] s z
-[ 1 1 1 ] t z
-[ 1 1 1 ] u z
-[ 1 2 0 ] v z
-[ 1 2 0 ] w z
-[ 1 2 1 ] x z
-[ 2 0 0 ] A z
-[ 2 0 0 ] B z
-[ 2 0 1 ] C z
-[ 2 0 1 ] D z
-[ 2 1 0 ] E z
-[ 2 1 0 ] F z
-[ 2 1 1 ] G z
-[ 2 1 1 ] H z
-[ 2 2 0 ] I z
-[ 2 2 0 ] J z
-[ 2 2 1 ] K z
-[ 2 2 1 ] L z
-[ 3 0 0 ] M z
-[ 3 0 0 ] N z
-[ 3 0 1 ] P z
-[ 3 0 1 ] Q z
-[ 3 1 0 ] R z
-[ 3 1 0 ] S z
-[ 3 1 1 ] T z
-[ 3 1 1 ] U z
-[ 3 2 0 ] V z
-[ 3 2 0 ] W z
-[ 3 2 1 ] X z
-[ 3 2 1 ] Z z
-47 differences found
attribute: <VLstring3D of </>> and <VLstring3D of </>>
size: [4x3x2] [4x3x2]
position VLstring3D of </> VLstring3D of </> difference
@@ -337,38 +85,138 @@ position VLstring3D of </> VLstring3D of </> difference
[ 3 2 1 ] X z
[ 3 2 1 ] Z z
47 differences found
-attribute: <bitfield3D of </>> and <bitfield3D of </>>
+attribute: <array of </>> and <array of </>>
+size: [2] [2]
+position array of </> array of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </>> and <array2D of </>>
+size: [3x2] [3x2]
+position array2D of </> array2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </>> and <array3D of </>>
size: [4x3x2] [4x3x2]
-position bitfield3D of </> bitfield3D of </> difference
+position array3D of </> array3D of </> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
-[ 0 0 1 ] 2 0 2
-[ 0 1 0 ] 3 0 3
-[ 0 1 1 ] 4 0 4
-[ 0 2 0 ] 5 0 5
-[ 0 2 1 ] 6 0 6
-[ 1 0 0 ] 7 0 7
-[ 1 0 1 ] 8 0 8
-[ 1 1 0 ] 9 0 9
-[ 1 1 1 ] 10 0 10
-[ 1 2 0 ] 11 0 11
-[ 1 2 1 ] 12 0 12
-[ 2 0 0 ] 13 0 13
-[ 2 0 1 ] 14 0 14
-[ 2 1 0 ] 15 0 15
-[ 2 1 1 ] 16 0 16
-[ 2 2 0 ] 17 0 17
-[ 2 2 1 ] 18 0 18
-[ 3 0 0 ] 19 0 19
-[ 3 0 1 ] 20 0 20
-[ 3 1 0 ] 21 0 21
-[ 3 1 1 ] 22 0 22
-[ 3 2 0 ] 23 0 23
-[ 3 2 1 ] 24 0 24
-24 differences found
-attribute: <opaque3D of </>> and <opaque3D of </>>
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </>> and <bitfield of </>>
+size: [2] [2]
+position bitfield of </> bitfield of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </>> and <bitfield2D of </>>
+size: [3x2] [3x2]
+position bitfield2D of </> bitfield2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </>> and <bitfield3D of </>>
size: [4x3x2] [4x3x2]
-position opaque3D of </> opaque3D of </> difference
+position bitfield3D of </> bitfield3D of </> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
[ 0 0 1 ] 2 0 2
@@ -395,6 +243,32 @@ position opaque3D of </> opaque3D of </> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
+attribute: <compound of </>> and <compound of </>>
+size: [2] [2]
+position compound of </> compound of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </>> and <compound2D of </>>
+size: [3x2] [3x2]
+position compound2D of </> compound2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
attribute: <compound3D of </>> and <compound3D of </>>
size: [4x3x2] [4x3x2]
position compound3D of </> compound3D of </> difference
@@ -448,6 +322,24 @@ position compound3D of </> compound3D of </> difference
[ 3 2 1 ] 47 0 47
[ 3 2 1 ] 48 0 48
48 differences found
+attribute: <enum of </>> and <enum of </>>
+size: [2] [2]
+position enum of </> enum of </> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </>> and <enum2D of </>>
+size: [3x2] [3x2]
+position enum2D of </> enum2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
attribute: <enum3D of </>> and <enum3D of </>>
size: [4x3x2] [4x3x2]
position enum3D of </> enum3D of </> difference
@@ -477,147 +369,71 @@ position enum3D of </> enum3D of </> difference
[ 3 2 0 ] GREEN RED
[ 3 2 1 ] GREEN RED
24 differences found
-attribute: <vlen3D of </>> and <vlen3D of </>>
+attribute: <float of </>> and <float of </>>
+size: [2] [2]
+position float of </> float of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </>> and <float2D of </>>
+size: [3x2] [3x2]
+position float2D of </> float2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </>> and <float3D of </>>
size: [4x3x2] [4x3x2]
-position vlen3D of </> vlen3D of </> difference
+position float3D of </> float3D of </> difference
------------------------------------------------------------
-[ 0 0 1 ] 1 0 1
-[ 0 1 0 ] 2 0 2
-[ 0 1 1 ] 3 0 3
-[ 0 2 0 ] 4 0 4
-[ 0 2 1 ] 5 0 5
-[ 1 0 0 ] 6 0 6
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
[ 1 0 0 ] 7 0 7
[ 1 0 1 ] 8 0 8
-[ 1 0 1 ] 9 0 9
-[ 1 1 0 ] 10 0 10
-[ 1 1 0 ] 11 0 11
-[ 1 1 1 ] 12 0 12
-[ 1 1 1 ] 13 0 13
-[ 1 2 0 ] 14 0 14
-[ 1 2 0 ] 15 0 15
-[ 1 2 1 ] 16 0 16
-[ 1 2 1 ] 17 0 17
-[ 2 0 0 ] 18 0 18
-[ 2 0 0 ] 19 0 19
-[ 2 0 0 ] 20 0 20
-[ 2 0 1 ] 21 0 21
-[ 2 0 1 ] 22 0 22
-[ 2 0 1 ] 23 0 23
-[ 2 1 0 ] 24 0 24
-[ 2 1 0 ] 25 0 25
-[ 2 1 0 ] 26 0 26
-[ 2 1 1 ] 27 0 27
-[ 2 1 1 ] 28 0 28
-[ 2 1 1 ] 29 0 29
-[ 2 2 0 ] 30 0 30
-[ 2 2 0 ] 31 0 31
-[ 2 2 0 ] 32 0 32
-[ 2 2 1 ] 33 0 33
-[ 2 2 1 ] 34 0 34
-[ 2 2 1 ] 35 0 35
-[ 3 0 0 ] 36 0 36
-[ 3 0 0 ] 37 0 37
-[ 3 0 0 ] 38 0 38
-[ 3 0 0 ] 39 0 39
-[ 3 0 1 ] 40 0 40
-[ 3 0 1 ] 41 0 41
-[ 3 0 1 ] 42 0 42
-[ 3 0 1 ] 43 0 43
-[ 3 1 0 ] 44 0 44
-[ 3 1 0 ] 45 0 45
-[ 3 1 0 ] 46 0 46
-[ 3 1 0 ] 47 0 47
-[ 3 1 1 ] 48 0 48
-[ 3 1 1 ] 49 0 49
-[ 3 1 1 ] 50 0 50
-[ 3 1 1 ] 51 0 51
-[ 3 2 0 ] 52 0 52
-[ 3 2 0 ] 53 0 53
-[ 3 2 0 ] 54 0 54
-[ 3 2 0 ] 55 0 55
-[ 3 2 1 ] 56 0 56
-[ 3 2 1 ] 57 0 57
-[ 3 2 1 ] 58 0 58
-[ 3 2 1 ] 59 0 59
-59 differences found
-attribute: <array3D of </>> and <array3D of </>>
-size: [4x3x2] [4x3x2]
-position array3D of </> array3D of </> difference
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </>> and <integer of </>>
+size: [2] [2]
+position integer of </> integer of </> difference
------------------------------------------------------------
-[ 0 0 0 ] 1 0 1
-[ 0 0 0 ] 2 0 2
-[ 0 0 0 ] 3 0 3
-[ 0 0 1 ] 4 0 4
-[ 0 0 1 ] 5 0 5
-[ 0 0 1 ] 6 0 6
-[ 0 1 0 ] 7 0 7
-[ 0 1 0 ] 8 0 8
-[ 0 1 0 ] 9 0 9
-[ 0 1 1 ] 10 0 10
-[ 0 1 1 ] 11 0 11
-[ 0 1 1 ] 12 0 12
-[ 0 2 0 ] 13 0 13
-[ 0 2 0 ] 14 0 14
-[ 0 2 0 ] 15 0 15
-[ 0 2 1 ] 16 0 16
-[ 0 2 1 ] 17 0 17
-[ 0 2 1 ] 18 0 18
-[ 1 0 0 ] 19 0 19
-[ 1 0 0 ] 20 0 20
-[ 1 0 0 ] 21 0 21
-[ 1 0 1 ] 22 0 22
-[ 1 0 1 ] 23 0 23
-[ 1 0 1 ] 24 0 24
-[ 1 1 0 ] 25 0 25
-[ 1 1 0 ] 26 0 26
-[ 1 1 0 ] 27 0 27
-[ 1 1 1 ] 28 0 28
-[ 1 1 1 ] 29 0 29
-[ 1 1 1 ] 30 0 30
-[ 1 2 0 ] 31 0 31
-[ 1 2 0 ] 32 0 32
-[ 1 2 0 ] 33 0 33
-[ 1 2 1 ] 34 0 34
-[ 1 2 1 ] 35 0 35
-[ 1 2 1 ] 36 0 36
-[ 2 0 0 ] 37 0 37
-[ 2 0 0 ] 38 0 38
-[ 2 0 0 ] 39 0 39
-[ 2 0 1 ] 40 0 40
-[ 2 0 1 ] 41 0 41
-[ 2 0 1 ] 42 0 42
-[ 2 1 0 ] 43 0 43
-[ 2 1 0 ] 44 0 44
-[ 2 1 0 ] 45 0 45
-[ 2 1 1 ] 46 0 46
-[ 2 1 1 ] 47 0 47
-[ 2 1 1 ] 48 0 48
-[ 2 2 0 ] 49 0 49
-[ 2 2 0 ] 50 0 50
-[ 2 2 0 ] 51 0 51
-[ 2 2 1 ] 52 0 52
-[ 2 2 1 ] 53 0 53
-[ 2 2 1 ] 54 0 54
-[ 3 0 0 ] 55 0 55
-[ 3 0 0 ] 56 0 56
-[ 3 0 0 ] 57 0 57
-[ 3 0 1 ] 58 0 58
-[ 3 0 1 ] 59 0 59
-[ 3 0 1 ] 60 0 60
-[ 3 1 0 ] 61 0 61
-[ 3 1 0 ] 62 0 62
-[ 3 1 0 ] 63 0 63
-[ 3 1 1 ] 64 0 64
-[ 3 1 1 ] 65 0 65
-[ 3 1 1 ] 66 0 66
-[ 3 2 0 ] 67 0 67
-[ 3 2 0 ] 68 0 68
-[ 3 2 0 ] 69 0 69
-[ 3 2 1 ] 70 0 70
-[ 3 2 1 ] 71 0 71
-[ 3 2 1 ] 72 0 72
-72 differences found
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </>> and <integer2D of </>>
+size: [3x2] [3x2]
+position integer2D of </> integer2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
attribute: <integer3D of </>> and <integer3D of </>>
size: [4x3x2] [4x3x2]
position integer3D of </> integer3D of </> difference
@@ -647,9 +463,27 @@ position integer3D of </> integer3D of </> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
-attribute: <float3D of </>> and <float3D of </>>
+attribute: <opaque of </>> and <opaque of </>>
+size: [2] [2]
+position opaque of </> opaque of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </>> and <opaque2D of </>>
+size: [3x2] [3x2]
+position opaque2D of </> opaque2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </>> and <opaque3D of </>>
size: [4x3x2] [4x3x2]
-position float3D of </> float3D of </> difference
+position opaque3D of </> opaque3D of </> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
[ 0 0 1 ] 2 0 2
@@ -676,111 +510,18 @@ position float3D of </> float3D of </> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
-dataset: </dset> and </dset>
-Not comparable: </dset> or </dset> is an empty dataset
-attribute: <string of </dset>> and <string of </dset>>
-size: [2] [2]
-position string of </dset> string of </dset> difference
-------------------------------------------------------------
-[ 0 ] a z
-[ 0 ] b z
-[ 1 ] d z
-[ 1 ] e z
-4 differences found
-attribute: <VLstring of </dset>> and <VLstring of </dset>>
+attribute: <string of </>> and <string of </>>
size: [2] [2]
-position VLstring of </dset> VLstring of </dset> difference
+position string of </> string of </> difference
------------------------------------------------------------
[ 0 ] a z
[ 0 ] b z
[ 1 ] d z
[ 1 ] e z
4 differences found
-attribute: <bitfield of </dset>> and <bitfield of </dset>>
-size: [2] [2]
-position bitfield of </dset> bitfield of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <opaque of </dset>> and <opaque of </dset>>
-size: [2] [2]
-position opaque of </dset> opaque of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <compound of </dset>> and <compound of </dset>>
-size: [2] [2]
-position compound of </dset> compound of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 0 ] 2 0 2
-[ 1 ] 3 0 3
-[ 1 ] 4 0 4
-4 differences found
-attribute: <reference of </dset>> and <reference of </dset>>
-0 differences found
-attribute: <enum of </dset>> and <enum of </dset>>
-size: [2] [2]
-position enum of </dset> enum of </dset> difference
-------------------------------------------------------------
-[ 0 ] RED GREEN
-[ 1 ] RED GREEN
-2 differences found
-attribute: <vlen of </dset>> and <vlen of </dset>>
-size: [2] [2]
-position vlen of </dset> vlen of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-[ 1 ] 3 0 3
-3 differences found
-attribute: <array of </dset>> and <array of </dset>>
-size: [2] [2]
-position array of </dset> array of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 0 ] 2 0 2
-[ 0 ] 3 0 3
-[ 1 ] 4 0 4
-[ 1 ] 5 0 5
-[ 1 ] 6 0 6
-6 differences found
-attribute: <integer of </dset>> and <integer of </dset>>
-size: [2] [2]
-position integer of </dset> integer of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <float of </dset>> and <float of </dset>>
-size: [2] [2]
-position float of </dset> float of </dset> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <string2D of </dset>> and <string2D of </dset>>
-size: [3x2] [3x2]
-position string2D of </dset> string2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] a z
-[ 0 0 ] b z
-[ 0 1 ] c z
-[ 0 1 ] d z
-[ 1 0 ] e z
-[ 1 0 ] f z
-[ 1 1 ] g z
-[ 1 1 ] h z
-[ 2 0 ] i z
-[ 2 0 ] j z
-[ 2 1 ] k z
-[ 2 1 ] l z
-12 differences found
-attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>>
+attribute: <string2D of </>> and <string2D of </>>
size: [3x2] [3x2]
-position VLstring2D of </dset> VLstring2D of </dset> difference
+position string2D of </> string2D of </> difference
------------------------------------------------------------
[ 0 0 ] a z
[ 0 0 ] b z
@@ -795,122 +536,9 @@ position VLstring2D of </dset> VLstring2D of </dset> difference
[ 2 1 ] k z
[ 2 1 ] l z
12 differences found
-attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>>
-size: [3x2] [3x2]
-position bitfield2D of </dset> bitfield2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <opaque2D of </dset>> and <opaque2D of </dset>>
-size: [3x2] [3x2]
-position opaque2D of </dset> opaque2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <compound2D of </dset>> and <compound2D of </dset>>
-size: [3x2] [3x2]
-position compound2D of </dset> compound2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 0 ] 2 0 2
-[ 0 1 ] 3 0 3
-[ 0 1 ] 4 0 4
-[ 1 0 ] 5 0 5
-[ 1 0 ] 6 0 6
-[ 1 1 ] 7 0 7
-[ 1 1 ] 8 0 8
-[ 2 0 ] 9 0 9
-[ 2 0 ] 10 0 10
-[ 2 1 ] 11 0 11
-[ 2 1 ] 12 0 12
-12 differences found
-attribute: <reference2D of </dset>> and <reference2D of </dset>>
-0 differences found
-attribute: <enum2D of </dset>> and <enum2D of </dset>>
-size: [3x2] [3x2]
-position enum2D of </dset> enum2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] RED GREEN
-[ 0 1 ] RED GREEN
-[ 1 0 ] RED GREEN
-[ 1 1 ] RED GREEN
-[ 2 0 ] RED GREEN
-[ 2 1 ] RED GREEN
-6 differences found
-attribute: <vlen2D of </dset>> and <vlen2D of </dset>>
-size: [3x2] [3x2]
-position vlen2D of </dset> vlen2D of </dset> difference
-------------------------------------------------------------
-[ 0 1 ] 1 0 1
-[ 1 0 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 1 1 ] 5 0 5
-[ 2 0 ] 6 0 6
-[ 2 0 ] 7 0 7
-[ 2 0 ] 8 0 8
-[ 2 1 ] 9 0 9
-[ 2 1 ] 10 0 10
-[ 2 1 ] 11 0 11
-11 differences found
-attribute: <array2D of </dset>> and <array2D of </dset>>
-size: [3x2] [3x2]
-position array2D of </dset> array2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 0 ] 2 0 2
-[ 0 0 ] 3 0 3
-[ 0 1 ] 4 0 4
-[ 0 1 ] 5 0 5
-[ 0 1 ] 6 0 6
-[ 1 0 ] 7 0 7
-[ 1 0 ] 8 0 8
-[ 1 0 ] 9 0 9
-[ 1 1 ] 10 0 10
-[ 1 1 ] 11 0 11
-[ 1 1 ] 12 0 12
-[ 2 0 ] 13 0 13
-[ 2 0 ] 14 0 14
-[ 2 0 ] 15 0 15
-[ 2 1 ] 16 0 16
-[ 2 1 ] 17 0 17
-[ 2 1 ] 18 0 18
-18 differences found
-attribute: <integer2D of </dset>> and <integer2D of </dset>>
-size: [3x2] [3x2]
-position integer2D of </dset> integer2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <float2D of </dset>> and <float2D of </dset>>
-size: [3x2] [3x2]
-position float2D of </dset> float2D of </dset> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <string3D of </dset>> and <string3D of </dset>>
+attribute: <string3D of </>> and <string3D of </>>
size: [4x3x2] [4x3x2]
-position string3D of </dset> string3D of </dset> difference
+position string3D of </> string3D of </> difference
------------------------------------------------------------
[ 0 0 0 ] a z
[ 0 0 0 ] b z
@@ -960,6 +588,122 @@ position string3D of </dset> string3D of </dset> difference
[ 3 2 1 ] X z
[ 3 2 1 ] Z z
47 differences found
+attribute: <vlen of </>> and <vlen of </>>
+size: [2] [2]
+position vlen of </> vlen of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </>> and <vlen2D of </>>
+size: [3x2] [3x2]
+position vlen2D of </> vlen2D of </> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </>> and <vlen3D of </>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </> vlen3D of </> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+dataset: </dset> and </dset>
+Not comparable: </dset> or </dset> is an empty dataset
+attribute: <VLstring of </dset>> and <VLstring of </dset>>
+size: [2] [2]
+position VLstring of </dset> VLstring of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>>
+size: [3x2] [3x2]
+position VLstring2D of </dset> VLstring2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>>
size: [4x3x2] [4x3x2]
position VLstring3D of </dset> VLstring3D of </dset> difference
@@ -1012,38 +756,138 @@ position VLstring3D of </dset> VLstring3D of </dset> difference
[ 3 2 1 ] X z
[ 3 2 1 ] Z z
47 differences found
-attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>>
+attribute: <array of </dset>> and <array of </dset>>
+size: [2] [2]
+position array of </dset> array of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </dset>> and <array2D of </dset>>
+size: [3x2] [3x2]
+position array2D of </dset> array2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </dset>> and <array3D of </dset>>
size: [4x3x2] [4x3x2]
-position bitfield3D of </dset> bitfield3D of </dset> difference
+position array3D of </dset> array3D of </dset> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
-[ 0 0 1 ] 2 0 2
-[ 0 1 0 ] 3 0 3
-[ 0 1 1 ] 4 0 4
-[ 0 2 0 ] 5 0 5
-[ 0 2 1 ] 6 0 6
-[ 1 0 0 ] 7 0 7
-[ 1 0 1 ] 8 0 8
-[ 1 1 0 ] 9 0 9
-[ 1 1 1 ] 10 0 10
-[ 1 2 0 ] 11 0 11
-[ 1 2 1 ] 12 0 12
-[ 2 0 0 ] 13 0 13
-[ 2 0 1 ] 14 0 14
-[ 2 1 0 ] 15 0 15
-[ 2 1 1 ] 16 0 16
-[ 2 2 0 ] 17 0 17
-[ 2 2 1 ] 18 0 18
-[ 3 0 0 ] 19 0 19
-[ 3 0 1 ] 20 0 20
-[ 3 1 0 ] 21 0 21
-[ 3 1 1 ] 22 0 22
-[ 3 2 0 ] 23 0 23
-[ 3 2 1 ] 24 0 24
-24 differences found
-attribute: <opaque3D of </dset>> and <opaque3D of </dset>>
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </dset>> and <bitfield of </dset>>
+size: [2] [2]
+position bitfield of </dset> bitfield of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>>
+size: [3x2] [3x2]
+position bitfield2D of </dset> bitfield2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>>
size: [4x3x2] [4x3x2]
-position opaque3D of </dset> opaque3D of </dset> difference
+position bitfield3D of </dset> bitfield3D of </dset> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
[ 0 0 1 ] 2 0 2
@@ -1070,6 +914,32 @@ position opaque3D of </dset> opaque3D of </dset> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
+attribute: <compound of </dset>> and <compound of </dset>>
+size: [2] [2]
+position compound of </dset> compound of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </dset>> and <compound2D of </dset>>
+size: [3x2] [3x2]
+position compound2D of </dset> compound2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
attribute: <compound3D of </dset>> and <compound3D of </dset>>
size: [4x3x2] [4x3x2]
position compound3D of </dset> compound3D of </dset> difference
@@ -1123,8 +993,24 @@ position compound3D of </dset> compound3D of </dset> difference
[ 3 2 1 ] 47 0 47
[ 3 2 1 ] 48 0 48
48 differences found
-attribute: <reference3D of </dset>> and <reference3D of </dset>>
-0 differences found
+attribute: <enum of </dset>> and <enum of </dset>>
+size: [2] [2]
+position enum of </dset> enum of </dset> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </dset>> and <enum2D of </dset>>
+size: [3x2] [3x2]
+position enum2D of </dset> enum2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
attribute: <enum3D of </dset>> and <enum3D of </dset>>
size: [4x3x2] [4x3x2]
position enum3D of </dset> enum3D of </dset> difference
@@ -1154,147 +1040,71 @@ position enum3D of </dset> enum3D of </dset> difference
[ 3 2 0 ] GREEN RED
[ 3 2 1 ] GREEN RED
24 differences found
-attribute: <vlen3D of </dset>> and <vlen3D of </dset>>
+attribute: <float of </dset>> and <float of </dset>>
+size: [2] [2]
+position float of </dset> float of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </dset>> and <float2D of </dset>>
+size: [3x2] [3x2]
+position float2D of </dset> float2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </dset>> and <float3D of </dset>>
size: [4x3x2] [4x3x2]
-position vlen3D of </dset> vlen3D of </dset> difference
+position float3D of </dset> float3D of </dset> difference
------------------------------------------------------------
-[ 0 0 1 ] 1 0 1
-[ 0 1 0 ] 2 0 2
-[ 0 1 1 ] 3 0 3
-[ 0 2 0 ] 4 0 4
-[ 0 2 1 ] 5 0 5
-[ 1 0 0 ] 6 0 6
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
[ 1 0 0 ] 7 0 7
[ 1 0 1 ] 8 0 8
-[ 1 0 1 ] 9 0 9
-[ 1 1 0 ] 10 0 10
-[ 1 1 0 ] 11 0 11
-[ 1 1 1 ] 12 0 12
-[ 1 1 1 ] 13 0 13
-[ 1 2 0 ] 14 0 14
-[ 1 2 0 ] 15 0 15
-[ 1 2 1 ] 16 0 16
-[ 1 2 1 ] 17 0 17
-[ 2 0 0 ] 18 0 18
-[ 2 0 0 ] 19 0 19
-[ 2 0 0 ] 20 0 20
-[ 2 0 1 ] 21 0 21
-[ 2 0 1 ] 22 0 22
-[ 2 0 1 ] 23 0 23
-[ 2 1 0 ] 24 0 24
-[ 2 1 0 ] 25 0 25
-[ 2 1 0 ] 26 0 26
-[ 2 1 1 ] 27 0 27
-[ 2 1 1 ] 28 0 28
-[ 2 1 1 ] 29 0 29
-[ 2 2 0 ] 30 0 30
-[ 2 2 0 ] 31 0 31
-[ 2 2 0 ] 32 0 32
-[ 2 2 1 ] 33 0 33
-[ 2 2 1 ] 34 0 34
-[ 2 2 1 ] 35 0 35
-[ 3 0 0 ] 36 0 36
-[ 3 0 0 ] 37 0 37
-[ 3 0 0 ] 38 0 38
-[ 3 0 0 ] 39 0 39
-[ 3 0 1 ] 40 0 40
-[ 3 0 1 ] 41 0 41
-[ 3 0 1 ] 42 0 42
-[ 3 0 1 ] 43 0 43
-[ 3 1 0 ] 44 0 44
-[ 3 1 0 ] 45 0 45
-[ 3 1 0 ] 46 0 46
-[ 3 1 0 ] 47 0 47
-[ 3 1 1 ] 48 0 48
-[ 3 1 1 ] 49 0 49
-[ 3 1 1 ] 50 0 50
-[ 3 1 1 ] 51 0 51
-[ 3 2 0 ] 52 0 52
-[ 3 2 0 ] 53 0 53
-[ 3 2 0 ] 54 0 54
-[ 3 2 0 ] 55 0 55
-[ 3 2 1 ] 56 0 56
-[ 3 2 1 ] 57 0 57
-[ 3 2 1 ] 58 0 58
-[ 3 2 1 ] 59 0 59
-59 differences found
-attribute: <array3D of </dset>> and <array3D of </dset>>
-size: [4x3x2] [4x3x2]
-position array3D of </dset> array3D of </dset> difference
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </dset>> and <integer of </dset>>
+size: [2] [2]
+position integer of </dset> integer of </dset> difference
------------------------------------------------------------
-[ 0 0 0 ] 1 0 1
-[ 0 0 0 ] 2 0 2
-[ 0 0 0 ] 3 0 3
-[ 0 0 1 ] 4 0 4
-[ 0 0 1 ] 5 0 5
-[ 0 0 1 ] 6 0 6
-[ 0 1 0 ] 7 0 7
-[ 0 1 0 ] 8 0 8
-[ 0 1 0 ] 9 0 9
-[ 0 1 1 ] 10 0 10
-[ 0 1 1 ] 11 0 11
-[ 0 1 1 ] 12 0 12
-[ 0 2 0 ] 13 0 13
-[ 0 2 0 ] 14 0 14
-[ 0 2 0 ] 15 0 15
-[ 0 2 1 ] 16 0 16
-[ 0 2 1 ] 17 0 17
-[ 0 2 1 ] 18 0 18
-[ 1 0 0 ] 19 0 19
-[ 1 0 0 ] 20 0 20
-[ 1 0 0 ] 21 0 21
-[ 1 0 1 ] 22 0 22
-[ 1 0 1 ] 23 0 23
-[ 1 0 1 ] 24 0 24
-[ 1 1 0 ] 25 0 25
-[ 1 1 0 ] 26 0 26
-[ 1 1 0 ] 27 0 27
-[ 1 1 1 ] 28 0 28
-[ 1 1 1 ] 29 0 29
-[ 1 1 1 ] 30 0 30
-[ 1 2 0 ] 31 0 31
-[ 1 2 0 ] 32 0 32
-[ 1 2 0 ] 33 0 33
-[ 1 2 1 ] 34 0 34
-[ 1 2 1 ] 35 0 35
-[ 1 2 1 ] 36 0 36
-[ 2 0 0 ] 37 0 37
-[ 2 0 0 ] 38 0 38
-[ 2 0 0 ] 39 0 39
-[ 2 0 1 ] 40 0 40
-[ 2 0 1 ] 41 0 41
-[ 2 0 1 ] 42 0 42
-[ 2 1 0 ] 43 0 43
-[ 2 1 0 ] 44 0 44
-[ 2 1 0 ] 45 0 45
-[ 2 1 1 ] 46 0 46
-[ 2 1 1 ] 47 0 47
-[ 2 1 1 ] 48 0 48
-[ 2 2 0 ] 49 0 49
-[ 2 2 0 ] 50 0 50
-[ 2 2 0 ] 51 0 51
-[ 2 2 1 ] 52 0 52
-[ 2 2 1 ] 53 0 53
-[ 2 2 1 ] 54 0 54
-[ 3 0 0 ] 55 0 55
-[ 3 0 0 ] 56 0 56
-[ 3 0 0 ] 57 0 57
-[ 3 0 1 ] 58 0 58
-[ 3 0 1 ] 59 0 59
-[ 3 0 1 ] 60 0 60
-[ 3 1 0 ] 61 0 61
-[ 3 1 0 ] 62 0 62
-[ 3 1 0 ] 63 0 63
-[ 3 1 1 ] 64 0 64
-[ 3 1 1 ] 65 0 65
-[ 3 1 1 ] 66 0 66
-[ 3 2 0 ] 67 0 67
-[ 3 2 0 ] 68 0 68
-[ 3 2 0 ] 69 0 69
-[ 3 2 1 ] 70 0 70
-[ 3 2 1 ] 71 0 71
-[ 3 2 1 ] 72 0 72
-72 differences found
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </dset>> and <integer2D of </dset>>
+size: [3x2] [3x2]
+position integer2D of </dset> integer2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
attribute: <integer3D of </dset>> and <integer3D of </dset>>
size: [4x3x2] [4x3x2]
position integer3D of </dset> integer3D of </dset> difference
@@ -1324,9 +1134,27 @@ position integer3D of </dset> integer3D of </dset> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
-attribute: <float3D of </dset>> and <float3D of </dset>>
+attribute: <opaque of </dset>> and <opaque of </dset>>
+size: [2] [2]
+position opaque of </dset> opaque of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </dset>> and <opaque2D of </dset>>
+size: [3x2] [3x2]
+position opaque2D of </dset> opaque2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </dset>> and <opaque3D of </dset>>
size: [4x3x2] [4x3x2]
-position float3D of </dset> float3D of </dset> difference
+position opaque3D of </dset> opaque3D of </dset> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
[ 0 0 1 ] 2 0 2
@@ -1353,110 +1181,24 @@ position float3D of </dset> float3D of </dset> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
-519 differences found
-group : </g1> and </g1>
+attribute: <reference of </dset>> and <reference of </dset>>
0 differences found
-attribute: <string of </g1>> and <string of </g1>>
-size: [2] [2]
-position string of </g1> string of </g1> difference
-------------------------------------------------------------
-[ 0 ] a z
-[ 0 ] b z
-[ 1 ] d z
-[ 1 ] e z
-4 differences found
-attribute: <VLstring of </g1>> and <VLstring of </g1>>
+attribute: <reference2D of </dset>> and <reference2D of </dset>>
+0 differences found
+attribute: <reference3D of </dset>> and <reference3D of </dset>>
+0 differences found
+attribute: <string of </dset>> and <string of </dset>>
size: [2] [2]
-position VLstring of </g1> VLstring of </g1> difference
+position string of </dset> string of </dset> difference
------------------------------------------------------------
[ 0 ] a z
[ 0 ] b z
[ 1 ] d z
[ 1 ] e z
4 differences found
-attribute: <bitfield of </g1>> and <bitfield of </g1>>
-size: [2] [2]
-position bitfield of </g1> bitfield of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <opaque of </g1>> and <opaque of </g1>>
-size: [2] [2]
-position opaque of </g1> opaque of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <compound of </g1>> and <compound of </g1>>
-size: [2] [2]
-position compound of </g1> compound of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 0 ] 2 0 2
-[ 1 ] 3 0 3
-[ 1 ] 4 0 4
-4 differences found
-attribute: <enum of </g1>> and <enum of </g1>>
-size: [2] [2]
-position enum of </g1> enum of </g1> difference
-------------------------------------------------------------
-[ 0 ] RED GREEN
-[ 1 ] RED GREEN
-2 differences found
-attribute: <vlen of </g1>> and <vlen of </g1>>
-size: [2] [2]
-position vlen of </g1> vlen of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-[ 1 ] 3 0 3
-3 differences found
-attribute: <array of </g1>> and <array of </g1>>
-size: [2] [2]
-position array of </g1> array of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 0 ] 2 0 2
-[ 0 ] 3 0 3
-[ 1 ] 4 0 4
-[ 1 ] 5 0 5
-[ 1 ] 6 0 6
-6 differences found
-attribute: <integer of </g1>> and <integer of </g1>>
-size: [2] [2]
-position integer of </g1> integer of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <float of </g1>> and <float of </g1>>
-size: [2] [2]
-position float of </g1> float of </g1> difference
-------------------------------------------------------------
-[ 0 ] 1 0 1
-[ 1 ] 2 0 2
-2 differences found
-attribute: <string2D of </g1>> and <string2D of </g1>>
-size: [3x2] [3x2]
-position string2D of </g1> string2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] a z
-[ 0 0 ] b z
-[ 0 1 ] c z
-[ 0 1 ] d z
-[ 1 0 ] e z
-[ 1 0 ] f z
-[ 1 1 ] g z
-[ 1 1 ] h z
-[ 2 0 ] i z
-[ 2 0 ] j z
-[ 2 1 ] k z
-[ 2 1 ] l z
-12 differences found
-attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>>
+attribute: <string2D of </dset>> and <string2D of </dset>>
size: [3x2] [3x2]
-position VLstring2D of </g1> VLstring2D of </g1> difference
+position string2D of </dset> string2D of </dset> difference
------------------------------------------------------------
[ 0 0 ] a z
[ 0 0 ] b z
@@ -1471,120 +1213,9 @@ position VLstring2D of </g1> VLstring2D of </g1> difference
[ 2 1 ] k z
[ 2 1 ] l z
12 differences found
-attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>>
-size: [3x2] [3x2]
-position bitfield2D of </g1> bitfield2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <opaque2D of </g1>> and <opaque2D of </g1>>
-size: [3x2] [3x2]
-position opaque2D of </g1> opaque2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <compound2D of </g1>> and <compound2D of </g1>>
-size: [3x2] [3x2]
-position compound2D of </g1> compound2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 0 ] 2 0 2
-[ 0 1 ] 3 0 3
-[ 0 1 ] 4 0 4
-[ 1 0 ] 5 0 5
-[ 1 0 ] 6 0 6
-[ 1 1 ] 7 0 7
-[ 1 1 ] 8 0 8
-[ 2 0 ] 9 0 9
-[ 2 0 ] 10 0 10
-[ 2 1 ] 11 0 11
-[ 2 1 ] 12 0 12
-12 differences found
-attribute: <enum2D of </g1>> and <enum2D of </g1>>
-size: [3x2] [3x2]
-position enum2D of </g1> enum2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] RED GREEN
-[ 0 1 ] RED GREEN
-[ 1 0 ] RED GREEN
-[ 1 1 ] RED GREEN
-[ 2 0 ] RED GREEN
-[ 2 1 ] RED GREEN
-6 differences found
-attribute: <vlen2D of </g1>> and <vlen2D of </g1>>
-size: [3x2] [3x2]
-position vlen2D of </g1> vlen2D of </g1> difference
-------------------------------------------------------------
-[ 0 1 ] 1 0 1
-[ 1 0 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 1 1 ] 5 0 5
-[ 2 0 ] 6 0 6
-[ 2 0 ] 7 0 7
-[ 2 0 ] 8 0 8
-[ 2 1 ] 9 0 9
-[ 2 1 ] 10 0 10
-[ 2 1 ] 11 0 11
-11 differences found
-attribute: <array2D of </g1>> and <array2D of </g1>>
-size: [3x2] [3x2]
-position array2D of </g1> array2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 0 ] 2 0 2
-[ 0 0 ] 3 0 3
-[ 0 1 ] 4 0 4
-[ 0 1 ] 5 0 5
-[ 0 1 ] 6 0 6
-[ 1 0 ] 7 0 7
-[ 1 0 ] 8 0 8
-[ 1 0 ] 9 0 9
-[ 1 1 ] 10 0 10
-[ 1 1 ] 11 0 11
-[ 1 1 ] 12 0 12
-[ 2 0 ] 13 0 13
-[ 2 0 ] 14 0 14
-[ 2 0 ] 15 0 15
-[ 2 1 ] 16 0 16
-[ 2 1 ] 17 0 17
-[ 2 1 ] 18 0 18
-18 differences found
-attribute: <integer2D of </g1>> and <integer2D of </g1>>
-size: [3x2] [3x2]
-position integer2D of </g1> integer2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <float2D of </g1>> and <float2D of </g1>>
-size: [3x2] [3x2]
-position float2D of </g1> float2D of </g1> difference
-------------------------------------------------------------
-[ 0 0 ] 1 0 1
-[ 0 1 ] 2 0 2
-[ 1 0 ] 3 0 3
-[ 1 1 ] 4 0 4
-[ 2 0 ] 5 0 5
-[ 2 1 ] 6 0 6
-6 differences found
-attribute: <string3D of </g1>> and <string3D of </g1>>
+attribute: <string3D of </dset>> and <string3D of </dset>>
size: [4x3x2] [4x3x2]
-position string3D of </g1> string3D of </g1> difference
+position string3D of </dset> string3D of </dset> difference
------------------------------------------------------------
[ 0 0 0 ] a z
[ 0 0 0 ] b z
@@ -1634,6 +1265,123 @@ position string3D of </g1> string3D of </g1> difference
[ 3 2 1 ] X z
[ 3 2 1 ] Z z
47 differences found
+attribute: <vlen of </dset>> and <vlen of </dset>>
+size: [2] [2]
+position vlen of </dset> vlen of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </dset>> and <vlen2D of </dset>>
+size: [3x2] [3x2]
+position vlen2D of </dset> vlen2D of </dset> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </dset>> and <vlen3D of </dset>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </dset> vlen3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+519 differences found
+group : </g1> and </g1>
+0 differences found
+attribute: <VLstring of </g1>> and <VLstring of </g1>>
+size: [2] [2]
+position VLstring of </g1> VLstring of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>>
+size: [3x2] [3x2]
+position VLstring2D of </g1> VLstring2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>>
size: [4x3x2] [4x3x2]
position VLstring3D of </g1> VLstring3D of </g1> difference
@@ -1686,38 +1434,138 @@ position VLstring3D of </g1> VLstring3D of </g1> difference
[ 3 2 1 ] X z
[ 3 2 1 ] Z z
47 differences found
-attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>>
+attribute: <array of </g1>> and <array of </g1>>
+size: [2] [2]
+position array of </g1> array of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </g1>> and <array2D of </g1>>
+size: [3x2] [3x2]
+position array2D of </g1> array2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </g1>> and <array3D of </g1>>
size: [4x3x2] [4x3x2]
-position bitfield3D of </g1> bitfield3D of </g1> difference
+position array3D of </g1> array3D of </g1> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
-[ 0 0 1 ] 2 0 2
-[ 0 1 0 ] 3 0 3
-[ 0 1 1 ] 4 0 4
-[ 0 2 0 ] 5 0 5
-[ 0 2 1 ] 6 0 6
-[ 1 0 0 ] 7 0 7
-[ 1 0 1 ] 8 0 8
-[ 1 1 0 ] 9 0 9
-[ 1 1 1 ] 10 0 10
-[ 1 2 0 ] 11 0 11
-[ 1 2 1 ] 12 0 12
-[ 2 0 0 ] 13 0 13
-[ 2 0 1 ] 14 0 14
-[ 2 1 0 ] 15 0 15
-[ 2 1 1 ] 16 0 16
-[ 2 2 0 ] 17 0 17
-[ 2 2 1 ] 18 0 18
-[ 3 0 0 ] 19 0 19
-[ 3 0 1 ] 20 0 20
-[ 3 1 0 ] 21 0 21
-[ 3 1 1 ] 22 0 22
-[ 3 2 0 ] 23 0 23
-[ 3 2 1 ] 24 0 24
-24 differences found
-attribute: <opaque3D of </g1>> and <opaque3D of </g1>>
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </g1>> and <bitfield of </g1>>
+size: [2] [2]
+position bitfield of </g1> bitfield of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>>
+size: [3x2] [3x2]
+position bitfield2D of </g1> bitfield2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>>
size: [4x3x2] [4x3x2]
-position opaque3D of </g1> opaque3D of </g1> difference
+position bitfield3D of </g1> bitfield3D of </g1> difference
------------------------------------------------------------
[ 0 0 0 ] 1 0 1
[ 0 0 1 ] 2 0 2
@@ -1744,6 +1592,32 @@ position opaque3D of </g1> opaque3D of </g1> difference
[ 3 2 0 ] 23 0 23
[ 3 2 1 ] 24 0 24
24 differences found
+attribute: <compound of </g1>> and <compound of </g1>>
+size: [2] [2]
+position compound of </g1> compound of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </g1>> and <compound2D of </g1>>
+size: [3x2] [3x2]
+position compound2D of </g1> compound2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
attribute: <compound3D of </g1>> and <compound3D of </g1>>
size: [4x3x2] [4x3x2]
position compound3D of </g1> compound3D of </g1> difference
@@ -1797,6 +1671,24 @@ position compound3D of </g1> compound3D of </g1> difference
[ 3 2 1 ] 47 0 47
[ 3 2 1 ] 48 0 48
48 differences found
+attribute: <enum of </g1>> and <enum of </g1>>
+size: [2] [2]
+position enum of </g1> enum of </g1> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </g1>> and <enum2D of </g1>>
+size: [3x2] [3x2]
+position enum2D of </g1> enum2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
attribute: <enum3D of </g1>> and <enum3D of </g1>>
size: [4x3x2] [4x3x2]
position enum3D of </g1> enum3D of </g1> difference
@@ -1826,6 +1718,249 @@ position enum3D of </g1> enum3D of </g1> difference
[ 3 2 0 ] GREEN RED
[ 3 2 1 ] GREEN RED
24 differences found
+attribute: <float of </g1>> and <float of </g1>>
+size: [2] [2]
+position float of </g1> float of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </g1>> and <float2D of </g1>>
+size: [3x2] [3x2]
+position float2D of </g1> float2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </g1>> and <float3D of </g1>>
+size: [4x3x2] [4x3x2]
+position float3D of </g1> float3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </g1>> and <integer of </g1>>
+size: [2] [2]
+position integer of </g1> integer of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </g1>> and <integer2D of </g1>>
+size: [3x2] [3x2]
+position integer2D of </g1> integer2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </g1>> and <integer3D of </g1>>
+size: [4x3x2] [4x3x2]
+position integer3D of </g1> integer3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </g1>> and <opaque of </g1>>
+size: [2] [2]
+position opaque of </g1> opaque of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </g1>> and <opaque2D of </g1>>
+size: [3x2] [3x2]
+position opaque2D of </g1> opaque2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </g1>> and <opaque3D of </g1>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </g1> opaque3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </g1>> and <string of </g1>>
+size: [2] [2]
+position string of </g1> string of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </g1>> and <string2D of </g1>>
+size: [3x2] [3x2]
+position string2D of </g1> string2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </g1>> and <string3D of </g1>>
+size: [4x3x2] [4x3x2]
+position string3D of </g1> string3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </g1>> and <vlen of </g1>>
+size: [2] [2]
+position vlen of </g1> vlen of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </g1>> and <vlen2D of </g1>>
+size: [3x2] [3x2]
+position vlen2D of </g1> vlen2D of </g1> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
attribute: <vlen3D of </g1>> and <vlen3D of </g1>>
size: [4x3x2] [4x3x2]
position vlen3D of </g1> vlen3D of </g1> difference
@@ -1890,141 +2025,6 @@ position vlen3D of </g1> vlen3D of </g1> difference
[ 3 2 1 ] 58 0 58
[ 3 2 1 ] 59 0 59
59 differences found
-attribute: <array3D of </g1>> and <array3D of </g1>>
-size: [4x3x2] [4x3x2]
-position array3D of </g1> array3D of </g1> difference
-------------------------------------------------------------
-[ 0 0 0 ] 1 0 1
-[ 0 0 0 ] 2 0 2
-[ 0 0 0 ] 3 0 3
-[ 0 0 1 ] 4 0 4
-[ 0 0 1 ] 5 0 5
-[ 0 0 1 ] 6 0 6
-[ 0 1 0 ] 7 0 7
-[ 0 1 0 ] 8 0 8
-[ 0 1 0 ] 9 0 9
-[ 0 1 1 ] 10 0 10
-[ 0 1 1 ] 11 0 11
-[ 0 1 1 ] 12 0 12
-[ 0 2 0 ] 13 0 13
-[ 0 2 0 ] 14 0 14
-[ 0 2 0 ] 15 0 15
-[ 0 2 1 ] 16 0 16
-[ 0 2 1 ] 17 0 17
-[ 0 2 1 ] 18 0 18
-[ 1 0 0 ] 19 0 19
-[ 1 0 0 ] 20 0 20
-[ 1 0 0 ] 21 0 21
-[ 1 0 1 ] 22 0 22
-[ 1 0 1 ] 23 0 23
-[ 1 0 1 ] 24 0 24
-[ 1 1 0 ] 25 0 25
-[ 1 1 0 ] 26 0 26
-[ 1 1 0 ] 27 0 27
-[ 1 1 1 ] 28 0 28
-[ 1 1 1 ] 29 0 29
-[ 1 1 1 ] 30 0 30
-[ 1 2 0 ] 31 0 31
-[ 1 2 0 ] 32 0 32
-[ 1 2 0 ] 33 0 33
-[ 1 2 1 ] 34 0 34
-[ 1 2 1 ] 35 0 35
-[ 1 2 1 ] 36 0 36
-[ 2 0 0 ] 37 0 37
-[ 2 0 0 ] 38 0 38
-[ 2 0 0 ] 39 0 39
-[ 2 0 1 ] 40 0 40
-[ 2 0 1 ] 41 0 41
-[ 2 0 1 ] 42 0 42
-[ 2 1 0 ] 43 0 43
-[ 2 1 0 ] 44 0 44
-[ 2 1 0 ] 45 0 45
-[ 2 1 1 ] 46 0 46
-[ 2 1 1 ] 47 0 47
-[ 2 1 1 ] 48 0 48
-[ 2 2 0 ] 49 0 49
-[ 2 2 0 ] 50 0 50
-[ 2 2 0 ] 51 0 51
-[ 2 2 1 ] 52 0 52
-[ 2 2 1 ] 53 0 53
-[ 2 2 1 ] 54 0 54
-[ 3 0 0 ] 55 0 55
-[ 3 0 0 ] 56 0 56
-[ 3 0 0 ] 57 0 57
-[ 3 0 1 ] 58 0 58
-[ 3 0 1 ] 59 0 59
-[ 3 0 1 ] 60 0 60
-[ 3 1 0 ] 61 0 61
-[ 3 1 0 ] 62 0 62
-[ 3 1 0 ] 63 0 63
-[ 3 1 1 ] 64 0 64
-[ 3 1 1 ] 65 0 65
-[ 3 1 1 ] 66 0 66
-[ 3 2 0 ] 67 0 67
-[ 3 2 0 ] 68 0 68
-[ 3 2 0 ] 69 0 69
-[ 3 2 1 ] 70 0 70
-[ 3 2 1 ] 71 0 71
-[ 3 2 1 ] 72 0 72
-72 differences found
-attribute: <integer3D of </g1>> and <integer3D of </g1>>
-size: [4x3x2] [4x3x2]
-position integer3D of </g1> integer3D of </g1> difference
-------------------------------------------------------------
-[ 0 0 0 ] 1 0 1
-[ 0 0 1 ] 2 0 2
-[ 0 1 0 ] 3 0 3
-[ 0 1 1 ] 4 0 4
-[ 0 2 0 ] 5 0 5
-[ 0 2 1 ] 6 0 6
-[ 1 0 0 ] 7 0 7
-[ 1 0 1 ] 8 0 8
-[ 1 1 0 ] 9 0 9
-[ 1 1 1 ] 10 0 10
-[ 1 2 0 ] 11 0 11
-[ 1 2 1 ] 12 0 12
-[ 2 0 0 ] 13 0 13
-[ 2 0 1 ] 14 0 14
-[ 2 1 0 ] 15 0 15
-[ 2 1 1 ] 16 0 16
-[ 2 2 0 ] 17 0 17
-[ 2 2 1 ] 18 0 18
-[ 3 0 0 ] 19 0 19
-[ 3 0 1 ] 20 0 20
-[ 3 1 0 ] 21 0 21
-[ 3 1 1 ] 22 0 22
-[ 3 2 0 ] 23 0 23
-[ 3 2 1 ] 24 0 24
-24 differences found
-attribute: <float3D of </g1>> and <float3D of </g1>>
-size: [4x3x2] [4x3x2]
-position float3D of </g1> float3D of </g1> difference
-------------------------------------------------------------
-[ 0 0 0 ] 1 0 1
-[ 0 0 1 ] 2 0 2
-[ 0 1 0 ] 3 0 3
-[ 0 1 1 ] 4 0 4
-[ 0 2 0 ] 5 0 5
-[ 0 2 1 ] 6 0 6
-[ 1 0 0 ] 7 0 7
-[ 1 0 1 ] 8 0 8
-[ 1 1 0 ] 9 0 9
-[ 1 1 1 ] 10 0 10
-[ 1 2 0 ] 11 0 11
-[ 1 2 1 ] 12 0 12
-[ 2 0 0 ] 13 0 13
-[ 2 0 1 ] 14 0 14
-[ 2 1 0 ] 15 0 15
-[ 2 1 1 ] 16 0 16
-[ 2 2 0 ] 17 0 17
-[ 2 2 1 ] 18 0 18
-[ 3 0 0 ] 19 0 19
-[ 3 0 1 ] 20 0 20
-[ 3 1 0 ] 21 0 21
-[ 3 1 1 ] 22 0 22
-[ 3 2 0 ] 23 0 23
-[ 3 2 1 ] 24 0 24
-24 differences found
--------------------------------
Some objects are not comparable
--------------------------------
diff --git a/tools/h5diff/testfiles/h5diff_700.txt b/tools/h5diff/testfiles/h5diff_700.txt
new file mode 100644
index 0000000..99398a9
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_700.txt
@@ -0,0 +1,2038 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x x /dset
+ x x /g1
+
+
+group : </> and </>
+0 differences found
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </>> and <VLstring of </>>
+size: [2] [2]
+position VLstring of </> VLstring of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </>> and <VLstring2D of </>>
+size: [3x2] [3x2]
+position VLstring2D of </> VLstring2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </>> and <VLstring3D of </>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </> VLstring3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </>> and <array of </>>
+size: [2] [2]
+position array of </> array of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </>> and <array2D of </>>
+size: [3x2] [3x2]
+position array2D of </> array2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </>> and <array3D of </>>
+size: [4x3x2] [4x3x2]
+position array3D of </> array3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </>> and <bitfield of </>>
+size: [2] [2]
+position bitfield of </> bitfield of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </>> and <bitfield2D of </>>
+size: [3x2] [3x2]
+position bitfield2D of </> bitfield2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </>> and <bitfield3D of </>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </> bitfield3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </>> and <compound of </>>
+size: [2] [2]
+position compound of </> compound of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </>> and <compound2D of </>>
+size: [3x2] [3x2]
+position compound2D of </> compound2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </>> and <compound3D of </>>
+size: [4x3x2] [4x3x2]
+position compound3D of </> compound3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </>> and <enum of </>>
+size: [2] [2]
+position enum of </> enum of </> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </>> and <enum2D of </>>
+size: [3x2] [3x2]
+position enum2D of </> enum2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </>> and <enum3D of </>>
+size: [4x3x2] [4x3x2]
+position enum3D of </> enum3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </>> and <float of </>>
+size: [2] [2]
+position float of </> float of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </>> and <float2D of </>>
+size: [3x2] [3x2]
+position float2D of </> float2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </>> and <float3D of </>>
+size: [4x3x2] [4x3x2]
+position float3D of </> float3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </>> and <integer of </>>
+size: [2] [2]
+position integer of </> integer of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </>> and <integer2D of </>>
+size: [3x2] [3x2]
+position integer2D of </> integer2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </>> and <integer3D of </>>
+size: [4x3x2] [4x3x2]
+position integer3D of </> integer3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </>> and <opaque of </>>
+size: [2] [2]
+position opaque of </> opaque of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </>> and <opaque2D of </>>
+size: [3x2] [3x2]
+position opaque2D of </> opaque2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </>> and <opaque3D of </>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </> opaque3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </>> and <string of </>>
+size: [2] [2]
+position string of </> string of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </>> and <string2D of </>>
+size: [3x2] [3x2]
+position string2D of </> string2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </>> and <string3D of </>>
+size: [4x3x2] [4x3x2]
+position string3D of </> string3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </>> and <vlen of </>>
+size: [2] [2]
+position vlen of </> vlen of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </>> and <vlen2D of </>>
+size: [3x2] [3x2]
+position vlen2D of </> vlen2D of </> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </>> and <vlen3D of </>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </> vlen3D of </> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+
+dataset: </dset> and </dset>
+Not comparable: </dset> or </dset> is an empty dataset
+Attributes status: 33 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </dset>> and <VLstring of </dset>>
+size: [2] [2]
+position VLstring of </dset> VLstring of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>>
+size: [3x2] [3x2]
+position VLstring2D of </dset> VLstring2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </dset> VLstring3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </dset>> and <array of </dset>>
+size: [2] [2]
+position array of </dset> array of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </dset>> and <array2D of </dset>>
+size: [3x2] [3x2]
+position array2D of </dset> array2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </dset>> and <array3D of </dset>>
+size: [4x3x2] [4x3x2]
+position array3D of </dset> array3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </dset>> and <bitfield of </dset>>
+size: [2] [2]
+position bitfield of </dset> bitfield of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>>
+size: [3x2] [3x2]
+position bitfield2D of </dset> bitfield2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </dset> bitfield3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </dset>> and <compound of </dset>>
+size: [2] [2]
+position compound of </dset> compound of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </dset>> and <compound2D of </dset>>
+size: [3x2] [3x2]
+position compound2D of </dset> compound2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </dset>> and <compound3D of </dset>>
+size: [4x3x2] [4x3x2]
+position compound3D of </dset> compound3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </dset>> and <enum of </dset>>
+size: [2] [2]
+position enum of </dset> enum of </dset> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </dset>> and <enum2D of </dset>>
+size: [3x2] [3x2]
+position enum2D of </dset> enum2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </dset>> and <enum3D of </dset>>
+size: [4x3x2] [4x3x2]
+position enum3D of </dset> enum3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </dset>> and <float of </dset>>
+size: [2] [2]
+position float of </dset> float of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </dset>> and <float2D of </dset>>
+size: [3x2] [3x2]
+position float2D of </dset> float2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </dset>> and <float3D of </dset>>
+size: [4x3x2] [4x3x2]
+position float3D of </dset> float3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </dset>> and <integer of </dset>>
+size: [2] [2]
+position integer of </dset> integer of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </dset>> and <integer2D of </dset>>
+size: [3x2] [3x2]
+position integer2D of </dset> integer2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </dset>> and <integer3D of </dset>>
+size: [4x3x2] [4x3x2]
+position integer3D of </dset> integer3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </dset>> and <opaque of </dset>>
+size: [2] [2]
+position opaque of </dset> opaque of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </dset>> and <opaque2D of </dset>>
+size: [3x2] [3x2]
+position opaque2D of </dset> opaque2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </dset>> and <opaque3D of </dset>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </dset> opaque3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <reference of </dset>> and <reference of </dset>>
+0 differences found
+attribute: <reference2D of </dset>> and <reference2D of </dset>>
+0 differences found
+attribute: <reference3D of </dset>> and <reference3D of </dset>>
+0 differences found
+attribute: <string of </dset>> and <string of </dset>>
+size: [2] [2]
+position string of </dset> string of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </dset>> and <string2D of </dset>>
+size: [3x2] [3x2]
+position string2D of </dset> string2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </dset>> and <string3D of </dset>>
+size: [4x3x2] [4x3x2]
+position string3D of </dset> string3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </dset>> and <vlen of </dset>>
+size: [2] [2]
+position vlen of </dset> vlen of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </dset>> and <vlen2D of </dset>>
+size: [3x2] [3x2]
+position vlen2D of </dset> vlen2D of </dset> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </dset>> and <vlen3D of </dset>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </dset> vlen3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+519 differences found
+
+group : </g1> and </g1>
+0 differences found
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </g1>> and <VLstring of </g1>>
+size: [2] [2]
+position VLstring of </g1> VLstring of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>>
+size: [3x2] [3x2]
+position VLstring2D of </g1> VLstring2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </g1> VLstring3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </g1>> and <array of </g1>>
+size: [2] [2]
+position array of </g1> array of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </g1>> and <array2D of </g1>>
+size: [3x2] [3x2]
+position array2D of </g1> array2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </g1>> and <array3D of </g1>>
+size: [4x3x2] [4x3x2]
+position array3D of </g1> array3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </g1>> and <bitfield of </g1>>
+size: [2] [2]
+position bitfield of </g1> bitfield of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>>
+size: [3x2] [3x2]
+position bitfield2D of </g1> bitfield2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </g1> bitfield3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </g1>> and <compound of </g1>>
+size: [2] [2]
+position compound of </g1> compound of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </g1>> and <compound2D of </g1>>
+size: [3x2] [3x2]
+position compound2D of </g1> compound2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </g1>> and <compound3D of </g1>>
+size: [4x3x2] [4x3x2]
+position compound3D of </g1> compound3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </g1>> and <enum of </g1>>
+size: [2] [2]
+position enum of </g1> enum of </g1> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </g1>> and <enum2D of </g1>>
+size: [3x2] [3x2]
+position enum2D of </g1> enum2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </g1>> and <enum3D of </g1>>
+size: [4x3x2] [4x3x2]
+position enum3D of </g1> enum3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </g1>> and <float of </g1>>
+size: [2] [2]
+position float of </g1> float of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </g1>> and <float2D of </g1>>
+size: [3x2] [3x2]
+position float2D of </g1> float2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </g1>> and <float3D of </g1>>
+size: [4x3x2] [4x3x2]
+position float3D of </g1> float3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </g1>> and <integer of </g1>>
+size: [2] [2]
+position integer of </g1> integer of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </g1>> and <integer2D of </g1>>
+size: [3x2] [3x2]
+position integer2D of </g1> integer2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </g1>> and <integer3D of </g1>>
+size: [4x3x2] [4x3x2]
+position integer3D of </g1> integer3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </g1>> and <opaque of </g1>>
+size: [2] [2]
+position opaque of </g1> opaque of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </g1>> and <opaque2D of </g1>>
+size: [3x2] [3x2]
+position opaque2D of </g1> opaque2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </g1>> and <opaque3D of </g1>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </g1> opaque3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </g1>> and <string of </g1>>
+size: [2] [2]
+position string of </g1> string of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </g1>> and <string2D of </g1>>
+size: [3x2] [3x2]
+position string2D of </g1> string2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </g1>> and <string3D of </g1>>
+size: [4x3x2] [4x3x2]
+position string3D of </g1> string3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </g1>> and <vlen of </g1>>
+size: [2] [2]
+position vlen of </g1> vlen of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </g1>> and <vlen2D of </g1>>
+size: [3x2] [3x2]
+position vlen2D of </g1> vlen2D of </g1> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </g1>> and <vlen3D of </g1>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </g1> vlen3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+--------------------------------
+Some objects are not comparable
+--------------------------------
+Use -c for a list of objects.
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_701.txt b/tools/h5diff/testfiles/h5diff_701.txt
new file mode 100644
index 0000000..3b3e5b6
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_701.txt
@@ -0,0 +1,2137 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x x /dset
+ x x /g1
+
+
+group : </> and </>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x VLstring
+ x x VLstring2D
+ x x VLstring3D
+ x x array
+ x x array2D
+ x x array3D
+ x x bitfield
+ x x bitfield2D
+ x x bitfield3D
+ x x compound
+ x x compound2D
+ x x compound3D
+ x x enum
+ x x enum2D
+ x x enum3D
+ x x float
+ x x float2D
+ x x float3D
+ x x integer
+ x x integer2D
+ x x integer3D
+ x x opaque
+ x x opaque2D
+ x x opaque3D
+ x x string
+ x x string2D
+ x x string3D
+ x x vlen
+ x x vlen2D
+ x x vlen3D
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </>> and <VLstring of </>>
+size: [2] [2]
+position VLstring of </> VLstring of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </>> and <VLstring2D of </>>
+size: [3x2] [3x2]
+position VLstring2D of </> VLstring2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </>> and <VLstring3D of </>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </> VLstring3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </>> and <array of </>>
+size: [2] [2]
+position array of </> array of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </>> and <array2D of </>>
+size: [3x2] [3x2]
+position array2D of </> array2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </>> and <array3D of </>>
+size: [4x3x2] [4x3x2]
+position array3D of </> array3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </>> and <bitfield of </>>
+size: [2] [2]
+position bitfield of </> bitfield of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </>> and <bitfield2D of </>>
+size: [3x2] [3x2]
+position bitfield2D of </> bitfield2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </>> and <bitfield3D of </>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </> bitfield3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </>> and <compound of </>>
+size: [2] [2]
+position compound of </> compound of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </>> and <compound2D of </>>
+size: [3x2] [3x2]
+position compound2D of </> compound2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </>> and <compound3D of </>>
+size: [4x3x2] [4x3x2]
+position compound3D of </> compound3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </>> and <enum of </>>
+size: [2] [2]
+position enum of </> enum of </> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </>> and <enum2D of </>>
+size: [3x2] [3x2]
+position enum2D of </> enum2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </>> and <enum3D of </>>
+size: [4x3x2] [4x3x2]
+position enum3D of </> enum3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </>> and <float of </>>
+size: [2] [2]
+position float of </> float of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </>> and <float2D of </>>
+size: [3x2] [3x2]
+position float2D of </> float2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </>> and <float3D of </>>
+size: [4x3x2] [4x3x2]
+position float3D of </> float3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </>> and <integer of </>>
+size: [2] [2]
+position integer of </> integer of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </>> and <integer2D of </>>
+size: [3x2] [3x2]
+position integer2D of </> integer2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </>> and <integer3D of </>>
+size: [4x3x2] [4x3x2]
+position integer3D of </> integer3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </>> and <opaque of </>>
+size: [2] [2]
+position opaque of </> opaque of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </>> and <opaque2D of </>>
+size: [3x2] [3x2]
+position opaque2D of </> opaque2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </>> and <opaque3D of </>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </> opaque3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </>> and <string of </>>
+size: [2] [2]
+position string of </> string of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </>> and <string2D of </>>
+size: [3x2] [3x2]
+position string2D of </> string2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </>> and <string3D of </>>
+size: [4x3x2] [4x3x2]
+position string3D of </> string3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </>> and <vlen of </>>
+size: [2] [2]
+position vlen of </> vlen of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </>> and <vlen2D of </>>
+size: [3x2] [3x2]
+position vlen2D of </> vlen2D of </> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </>> and <vlen3D of </>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </> vlen3D of </> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+
+dataset: </dset> and </dset>
+Not comparable: </dset> or </dset> is an empty dataset
+ obj1 obj2
+ --------------------------------------
+ x x VLstring
+ x x VLstring2D
+ x x VLstring3D
+ x x array
+ x x array2D
+ x x array3D
+ x x bitfield
+ x x bitfield2D
+ x x bitfield3D
+ x x compound
+ x x compound2D
+ x x compound3D
+ x x enum
+ x x enum2D
+ x x enum3D
+ x x float
+ x x float2D
+ x x float3D
+ x x integer
+ x x integer2D
+ x x integer3D
+ x x opaque
+ x x opaque2D
+ x x opaque3D
+ x x reference
+ x x reference2D
+ x x reference3D
+ x x string
+ x x string2D
+ x x string3D
+ x x vlen
+ x x vlen2D
+ x x vlen3D
+Attributes status: 33 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </dset>> and <VLstring of </dset>>
+size: [2] [2]
+position VLstring of </dset> VLstring of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>>
+size: [3x2] [3x2]
+position VLstring2D of </dset> VLstring2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </dset> VLstring3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </dset>> and <array of </dset>>
+size: [2] [2]
+position array of </dset> array of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </dset>> and <array2D of </dset>>
+size: [3x2] [3x2]
+position array2D of </dset> array2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </dset>> and <array3D of </dset>>
+size: [4x3x2] [4x3x2]
+position array3D of </dset> array3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </dset>> and <bitfield of </dset>>
+size: [2] [2]
+position bitfield of </dset> bitfield of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>>
+size: [3x2] [3x2]
+position bitfield2D of </dset> bitfield2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </dset> bitfield3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </dset>> and <compound of </dset>>
+size: [2] [2]
+position compound of </dset> compound of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </dset>> and <compound2D of </dset>>
+size: [3x2] [3x2]
+position compound2D of </dset> compound2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </dset>> and <compound3D of </dset>>
+size: [4x3x2] [4x3x2]
+position compound3D of </dset> compound3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </dset>> and <enum of </dset>>
+size: [2] [2]
+position enum of </dset> enum of </dset> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </dset>> and <enum2D of </dset>>
+size: [3x2] [3x2]
+position enum2D of </dset> enum2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </dset>> and <enum3D of </dset>>
+size: [4x3x2] [4x3x2]
+position enum3D of </dset> enum3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </dset>> and <float of </dset>>
+size: [2] [2]
+position float of </dset> float of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </dset>> and <float2D of </dset>>
+size: [3x2] [3x2]
+position float2D of </dset> float2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </dset>> and <float3D of </dset>>
+size: [4x3x2] [4x3x2]
+position float3D of </dset> float3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </dset>> and <integer of </dset>>
+size: [2] [2]
+position integer of </dset> integer of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </dset>> and <integer2D of </dset>>
+size: [3x2] [3x2]
+position integer2D of </dset> integer2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </dset>> and <integer3D of </dset>>
+size: [4x3x2] [4x3x2]
+position integer3D of </dset> integer3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </dset>> and <opaque of </dset>>
+size: [2] [2]
+position opaque of </dset> opaque of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </dset>> and <opaque2D of </dset>>
+size: [3x2] [3x2]
+position opaque2D of </dset> opaque2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </dset>> and <opaque3D of </dset>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </dset> opaque3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <reference of </dset>> and <reference of </dset>>
+0 differences found
+attribute: <reference2D of </dset>> and <reference2D of </dset>>
+0 differences found
+attribute: <reference3D of </dset>> and <reference3D of </dset>>
+0 differences found
+attribute: <string of </dset>> and <string of </dset>>
+size: [2] [2]
+position string of </dset> string of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </dset>> and <string2D of </dset>>
+size: [3x2] [3x2]
+position string2D of </dset> string2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </dset>> and <string3D of </dset>>
+size: [4x3x2] [4x3x2]
+position string3D of </dset> string3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </dset>> and <vlen of </dset>>
+size: [2] [2]
+position vlen of </dset> vlen of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </dset>> and <vlen2D of </dset>>
+size: [3x2] [3x2]
+position vlen2D of </dset> vlen2D of </dset> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </dset>> and <vlen3D of </dset>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </dset> vlen3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+519 differences found
+
+group : </g1> and </g1>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x VLstring
+ x x VLstring2D
+ x x VLstring3D
+ x x array
+ x x array2D
+ x x array3D
+ x x bitfield
+ x x bitfield2D
+ x x bitfield3D
+ x x compound
+ x x compound2D
+ x x compound3D
+ x x enum
+ x x enum2D
+ x x enum3D
+ x x float
+ x x float2D
+ x x float3D
+ x x integer
+ x x integer2D
+ x x integer3D
+ x x opaque
+ x x opaque2D
+ x x opaque3D
+ x x string
+ x x string2D
+ x x string3D
+ x x vlen
+ x x vlen2D
+ x x vlen3D
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </g1>> and <VLstring of </g1>>
+size: [2] [2]
+position VLstring of </g1> VLstring of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>>
+size: [3x2] [3x2]
+position VLstring2D of </g1> VLstring2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </g1> VLstring3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </g1>> and <array of </g1>>
+size: [2] [2]
+position array of </g1> array of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </g1>> and <array2D of </g1>>
+size: [3x2] [3x2]
+position array2D of </g1> array2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </g1>> and <array3D of </g1>>
+size: [4x3x2] [4x3x2]
+position array3D of </g1> array3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </g1>> and <bitfield of </g1>>
+size: [2] [2]
+position bitfield of </g1> bitfield of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>>
+size: [3x2] [3x2]
+position bitfield2D of </g1> bitfield2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </g1> bitfield3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </g1>> and <compound of </g1>>
+size: [2] [2]
+position compound of </g1> compound of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </g1>> and <compound2D of </g1>>
+size: [3x2] [3x2]
+position compound2D of </g1> compound2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </g1>> and <compound3D of </g1>>
+size: [4x3x2] [4x3x2]
+position compound3D of </g1> compound3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </g1>> and <enum of </g1>>
+size: [2] [2]
+position enum of </g1> enum of </g1> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </g1>> and <enum2D of </g1>>
+size: [3x2] [3x2]
+position enum2D of </g1> enum2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </g1>> and <enum3D of </g1>>
+size: [4x3x2] [4x3x2]
+position enum3D of </g1> enum3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </g1>> and <float of </g1>>
+size: [2] [2]
+position float of </g1> float of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </g1>> and <float2D of </g1>>
+size: [3x2] [3x2]
+position float2D of </g1> float2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </g1>> and <float3D of </g1>>
+size: [4x3x2] [4x3x2]
+position float3D of </g1> float3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </g1>> and <integer of </g1>>
+size: [2] [2]
+position integer of </g1> integer of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </g1>> and <integer2D of </g1>>
+size: [3x2] [3x2]
+position integer2D of </g1> integer2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </g1>> and <integer3D of </g1>>
+size: [4x3x2] [4x3x2]
+position integer3D of </g1> integer3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </g1>> and <opaque of </g1>>
+size: [2] [2]
+position opaque of </g1> opaque of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </g1>> and <opaque2D of </g1>>
+size: [3x2] [3x2]
+position opaque2D of </g1> opaque2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </g1>> and <opaque3D of </g1>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </g1> opaque3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </g1>> and <string of </g1>>
+size: [2] [2]
+position string of </g1> string of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </g1>> and <string2D of </g1>>
+size: [3x2] [3x2]
+position string2D of </g1> string2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </g1>> and <string3D of </g1>>
+size: [4x3x2] [4x3x2]
+position string3D of </g1> string3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </g1>> and <vlen of </g1>>
+size: [2] [2]
+position vlen of </g1> vlen of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </g1>> and <vlen2D of </g1>>
+size: [3x2] [3x2]
+position vlen2D of </g1> vlen2D of </g1> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </g1>> and <vlen3D of </g1>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </g1> vlen3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+--------------------------------
+Some objects are not comparable
+--------------------------------
+Use -c for a list of objects.
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_702.txt b/tools/h5diff/testfiles/h5diff_702.txt
new file mode 100644
index 0000000..99398a9
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_702.txt
@@ -0,0 +1,2038 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x x /dset
+ x x /g1
+
+
+group : </> and </>
+0 differences found
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </>> and <VLstring of </>>
+size: [2] [2]
+position VLstring of </> VLstring of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </>> and <VLstring2D of </>>
+size: [3x2] [3x2]
+position VLstring2D of </> VLstring2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </>> and <VLstring3D of </>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </> VLstring3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </>> and <array of </>>
+size: [2] [2]
+position array of </> array of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </>> and <array2D of </>>
+size: [3x2] [3x2]
+position array2D of </> array2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </>> and <array3D of </>>
+size: [4x3x2] [4x3x2]
+position array3D of </> array3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </>> and <bitfield of </>>
+size: [2] [2]
+position bitfield of </> bitfield of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </>> and <bitfield2D of </>>
+size: [3x2] [3x2]
+position bitfield2D of </> bitfield2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </>> and <bitfield3D of </>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </> bitfield3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </>> and <compound of </>>
+size: [2] [2]
+position compound of </> compound of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </>> and <compound2D of </>>
+size: [3x2] [3x2]
+position compound2D of </> compound2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </>> and <compound3D of </>>
+size: [4x3x2] [4x3x2]
+position compound3D of </> compound3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </>> and <enum of </>>
+size: [2] [2]
+position enum of </> enum of </> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </>> and <enum2D of </>>
+size: [3x2] [3x2]
+position enum2D of </> enum2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </>> and <enum3D of </>>
+size: [4x3x2] [4x3x2]
+position enum3D of </> enum3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </>> and <float of </>>
+size: [2] [2]
+position float of </> float of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </>> and <float2D of </>>
+size: [3x2] [3x2]
+position float2D of </> float2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </>> and <float3D of </>>
+size: [4x3x2] [4x3x2]
+position float3D of </> float3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </>> and <integer of </>>
+size: [2] [2]
+position integer of </> integer of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </>> and <integer2D of </>>
+size: [3x2] [3x2]
+position integer2D of </> integer2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </>> and <integer3D of </>>
+size: [4x3x2] [4x3x2]
+position integer3D of </> integer3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </>> and <opaque of </>>
+size: [2] [2]
+position opaque of </> opaque of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </>> and <opaque2D of </>>
+size: [3x2] [3x2]
+position opaque2D of </> opaque2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </>> and <opaque3D of </>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </> opaque3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </>> and <string of </>>
+size: [2] [2]
+position string of </> string of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </>> and <string2D of </>>
+size: [3x2] [3x2]
+position string2D of </> string2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </>> and <string3D of </>>
+size: [4x3x2] [4x3x2]
+position string3D of </> string3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </>> and <vlen of </>>
+size: [2] [2]
+position vlen of </> vlen of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </>> and <vlen2D of </>>
+size: [3x2] [3x2]
+position vlen2D of </> vlen2D of </> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </>> and <vlen3D of </>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </> vlen3D of </> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+
+dataset: </dset> and </dset>
+Not comparable: </dset> or </dset> is an empty dataset
+Attributes status: 33 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </dset>> and <VLstring of </dset>>
+size: [2] [2]
+position VLstring of </dset> VLstring of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>>
+size: [3x2] [3x2]
+position VLstring2D of </dset> VLstring2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </dset> VLstring3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </dset>> and <array of </dset>>
+size: [2] [2]
+position array of </dset> array of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </dset>> and <array2D of </dset>>
+size: [3x2] [3x2]
+position array2D of </dset> array2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </dset>> and <array3D of </dset>>
+size: [4x3x2] [4x3x2]
+position array3D of </dset> array3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </dset>> and <bitfield of </dset>>
+size: [2] [2]
+position bitfield of </dset> bitfield of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>>
+size: [3x2] [3x2]
+position bitfield2D of </dset> bitfield2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </dset> bitfield3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </dset>> and <compound of </dset>>
+size: [2] [2]
+position compound of </dset> compound of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </dset>> and <compound2D of </dset>>
+size: [3x2] [3x2]
+position compound2D of </dset> compound2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </dset>> and <compound3D of </dset>>
+size: [4x3x2] [4x3x2]
+position compound3D of </dset> compound3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </dset>> and <enum of </dset>>
+size: [2] [2]
+position enum of </dset> enum of </dset> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </dset>> and <enum2D of </dset>>
+size: [3x2] [3x2]
+position enum2D of </dset> enum2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </dset>> and <enum3D of </dset>>
+size: [4x3x2] [4x3x2]
+position enum3D of </dset> enum3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </dset>> and <float of </dset>>
+size: [2] [2]
+position float of </dset> float of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </dset>> and <float2D of </dset>>
+size: [3x2] [3x2]
+position float2D of </dset> float2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </dset>> and <float3D of </dset>>
+size: [4x3x2] [4x3x2]
+position float3D of </dset> float3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </dset>> and <integer of </dset>>
+size: [2] [2]
+position integer of </dset> integer of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </dset>> and <integer2D of </dset>>
+size: [3x2] [3x2]
+position integer2D of </dset> integer2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </dset>> and <integer3D of </dset>>
+size: [4x3x2] [4x3x2]
+position integer3D of </dset> integer3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </dset>> and <opaque of </dset>>
+size: [2] [2]
+position opaque of </dset> opaque of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </dset>> and <opaque2D of </dset>>
+size: [3x2] [3x2]
+position opaque2D of </dset> opaque2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </dset>> and <opaque3D of </dset>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </dset> opaque3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <reference of </dset>> and <reference of </dset>>
+0 differences found
+attribute: <reference2D of </dset>> and <reference2D of </dset>>
+0 differences found
+attribute: <reference3D of </dset>> and <reference3D of </dset>>
+0 differences found
+attribute: <string of </dset>> and <string of </dset>>
+size: [2] [2]
+position string of </dset> string of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </dset>> and <string2D of </dset>>
+size: [3x2] [3x2]
+position string2D of </dset> string2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </dset>> and <string3D of </dset>>
+size: [4x3x2] [4x3x2]
+position string3D of </dset> string3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </dset>> and <vlen of </dset>>
+size: [2] [2]
+position vlen of </dset> vlen of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </dset>> and <vlen2D of </dset>>
+size: [3x2] [3x2]
+position vlen2D of </dset> vlen2D of </dset> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </dset>> and <vlen3D of </dset>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </dset> vlen3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+519 differences found
+
+group : </g1> and </g1>
+0 differences found
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </g1>> and <VLstring of </g1>>
+size: [2] [2]
+position VLstring of </g1> VLstring of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>>
+size: [3x2] [3x2]
+position VLstring2D of </g1> VLstring2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </g1> VLstring3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </g1>> and <array of </g1>>
+size: [2] [2]
+position array of </g1> array of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </g1>> and <array2D of </g1>>
+size: [3x2] [3x2]
+position array2D of </g1> array2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </g1>> and <array3D of </g1>>
+size: [4x3x2] [4x3x2]
+position array3D of </g1> array3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </g1>> and <bitfield of </g1>>
+size: [2] [2]
+position bitfield of </g1> bitfield of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>>
+size: [3x2] [3x2]
+position bitfield2D of </g1> bitfield2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </g1> bitfield3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </g1>> and <compound of </g1>>
+size: [2] [2]
+position compound of </g1> compound of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </g1>> and <compound2D of </g1>>
+size: [3x2] [3x2]
+position compound2D of </g1> compound2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </g1>> and <compound3D of </g1>>
+size: [4x3x2] [4x3x2]
+position compound3D of </g1> compound3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </g1>> and <enum of </g1>>
+size: [2] [2]
+position enum of </g1> enum of </g1> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </g1>> and <enum2D of </g1>>
+size: [3x2] [3x2]
+position enum2D of </g1> enum2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </g1>> and <enum3D of </g1>>
+size: [4x3x2] [4x3x2]
+position enum3D of </g1> enum3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </g1>> and <float of </g1>>
+size: [2] [2]
+position float of </g1> float of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </g1>> and <float2D of </g1>>
+size: [3x2] [3x2]
+position float2D of </g1> float2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </g1>> and <float3D of </g1>>
+size: [4x3x2] [4x3x2]
+position float3D of </g1> float3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </g1>> and <integer of </g1>>
+size: [2] [2]
+position integer of </g1> integer of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </g1>> and <integer2D of </g1>>
+size: [3x2] [3x2]
+position integer2D of </g1> integer2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </g1>> and <integer3D of </g1>>
+size: [4x3x2] [4x3x2]
+position integer3D of </g1> integer3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </g1>> and <opaque of </g1>>
+size: [2] [2]
+position opaque of </g1> opaque of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </g1>> and <opaque2D of </g1>>
+size: [3x2] [3x2]
+position opaque2D of </g1> opaque2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </g1>> and <opaque3D of </g1>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </g1> opaque3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </g1>> and <string of </g1>>
+size: [2] [2]
+position string of </g1> string of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </g1>> and <string2D of </g1>>
+size: [3x2] [3x2]
+position string2D of </g1> string2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </g1>> and <string3D of </g1>>
+size: [4x3x2] [4x3x2]
+position string3D of </g1> string3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </g1>> and <vlen of </g1>>
+size: [2] [2]
+position vlen of </g1> vlen of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </g1>> and <vlen2D of </g1>>
+size: [3x2] [3x2]
+position vlen2D of </g1> vlen2D of </g1> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </g1>> and <vlen3D of </g1>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </g1> vlen3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+--------------------------------
+Some objects are not comparable
+--------------------------------
+Use -c for a list of objects.
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_703.txt b/tools/h5diff/testfiles/h5diff_703.txt
new file mode 100644
index 0000000..3b3e5b6
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_703.txt
@@ -0,0 +1,2137 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x x /dset
+ x x /g1
+
+
+group : </> and </>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x VLstring
+ x x VLstring2D
+ x x VLstring3D
+ x x array
+ x x array2D
+ x x array3D
+ x x bitfield
+ x x bitfield2D
+ x x bitfield3D
+ x x compound
+ x x compound2D
+ x x compound3D
+ x x enum
+ x x enum2D
+ x x enum3D
+ x x float
+ x x float2D
+ x x float3D
+ x x integer
+ x x integer2D
+ x x integer3D
+ x x opaque
+ x x opaque2D
+ x x opaque3D
+ x x string
+ x x string2D
+ x x string3D
+ x x vlen
+ x x vlen2D
+ x x vlen3D
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </>> and <VLstring of </>>
+size: [2] [2]
+position VLstring of </> VLstring of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </>> and <VLstring2D of </>>
+size: [3x2] [3x2]
+position VLstring2D of </> VLstring2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </>> and <VLstring3D of </>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </> VLstring3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </>> and <array of </>>
+size: [2] [2]
+position array of </> array of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </>> and <array2D of </>>
+size: [3x2] [3x2]
+position array2D of </> array2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </>> and <array3D of </>>
+size: [4x3x2] [4x3x2]
+position array3D of </> array3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </>> and <bitfield of </>>
+size: [2] [2]
+position bitfield of </> bitfield of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </>> and <bitfield2D of </>>
+size: [3x2] [3x2]
+position bitfield2D of </> bitfield2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </>> and <bitfield3D of </>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </> bitfield3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </>> and <compound of </>>
+size: [2] [2]
+position compound of </> compound of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </>> and <compound2D of </>>
+size: [3x2] [3x2]
+position compound2D of </> compound2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </>> and <compound3D of </>>
+size: [4x3x2] [4x3x2]
+position compound3D of </> compound3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </>> and <enum of </>>
+size: [2] [2]
+position enum of </> enum of </> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </>> and <enum2D of </>>
+size: [3x2] [3x2]
+position enum2D of </> enum2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </>> and <enum3D of </>>
+size: [4x3x2] [4x3x2]
+position enum3D of </> enum3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </>> and <float of </>>
+size: [2] [2]
+position float of </> float of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </>> and <float2D of </>>
+size: [3x2] [3x2]
+position float2D of </> float2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </>> and <float3D of </>>
+size: [4x3x2] [4x3x2]
+position float3D of </> float3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </>> and <integer of </>>
+size: [2] [2]
+position integer of </> integer of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </>> and <integer2D of </>>
+size: [3x2] [3x2]
+position integer2D of </> integer2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </>> and <integer3D of </>>
+size: [4x3x2] [4x3x2]
+position integer3D of </> integer3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </>> and <opaque of </>>
+size: [2] [2]
+position opaque of </> opaque of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </>> and <opaque2D of </>>
+size: [3x2] [3x2]
+position opaque2D of </> opaque2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </>> and <opaque3D of </>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </> opaque3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </>> and <string of </>>
+size: [2] [2]
+position string of </> string of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </>> and <string2D of </>>
+size: [3x2] [3x2]
+position string2D of </> string2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </>> and <string3D of </>>
+size: [4x3x2] [4x3x2]
+position string3D of </> string3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </>> and <vlen of </>>
+size: [2] [2]
+position vlen of </> vlen of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </>> and <vlen2D of </>>
+size: [3x2] [3x2]
+position vlen2D of </> vlen2D of </> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </>> and <vlen3D of </>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </> vlen3D of </> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+
+dataset: </dset> and </dset>
+Not comparable: </dset> or </dset> is an empty dataset
+ obj1 obj2
+ --------------------------------------
+ x x VLstring
+ x x VLstring2D
+ x x VLstring3D
+ x x array
+ x x array2D
+ x x array3D
+ x x bitfield
+ x x bitfield2D
+ x x bitfield3D
+ x x compound
+ x x compound2D
+ x x compound3D
+ x x enum
+ x x enum2D
+ x x enum3D
+ x x float
+ x x float2D
+ x x float3D
+ x x integer
+ x x integer2D
+ x x integer3D
+ x x opaque
+ x x opaque2D
+ x x opaque3D
+ x x reference
+ x x reference2D
+ x x reference3D
+ x x string
+ x x string2D
+ x x string3D
+ x x vlen
+ x x vlen2D
+ x x vlen3D
+Attributes status: 33 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </dset>> and <VLstring of </dset>>
+size: [2] [2]
+position VLstring of </dset> VLstring of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>>
+size: [3x2] [3x2]
+position VLstring2D of </dset> VLstring2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </dset> VLstring3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </dset>> and <array of </dset>>
+size: [2] [2]
+position array of </dset> array of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </dset>> and <array2D of </dset>>
+size: [3x2] [3x2]
+position array2D of </dset> array2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </dset>> and <array3D of </dset>>
+size: [4x3x2] [4x3x2]
+position array3D of </dset> array3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </dset>> and <bitfield of </dset>>
+size: [2] [2]
+position bitfield of </dset> bitfield of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>>
+size: [3x2] [3x2]
+position bitfield2D of </dset> bitfield2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </dset> bitfield3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </dset>> and <compound of </dset>>
+size: [2] [2]
+position compound of </dset> compound of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </dset>> and <compound2D of </dset>>
+size: [3x2] [3x2]
+position compound2D of </dset> compound2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </dset>> and <compound3D of </dset>>
+size: [4x3x2] [4x3x2]
+position compound3D of </dset> compound3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </dset>> and <enum of </dset>>
+size: [2] [2]
+position enum of </dset> enum of </dset> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </dset>> and <enum2D of </dset>>
+size: [3x2] [3x2]
+position enum2D of </dset> enum2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </dset>> and <enum3D of </dset>>
+size: [4x3x2] [4x3x2]
+position enum3D of </dset> enum3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </dset>> and <float of </dset>>
+size: [2] [2]
+position float of </dset> float of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </dset>> and <float2D of </dset>>
+size: [3x2] [3x2]
+position float2D of </dset> float2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </dset>> and <float3D of </dset>>
+size: [4x3x2] [4x3x2]
+position float3D of </dset> float3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </dset>> and <integer of </dset>>
+size: [2] [2]
+position integer of </dset> integer of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </dset>> and <integer2D of </dset>>
+size: [3x2] [3x2]
+position integer2D of </dset> integer2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </dset>> and <integer3D of </dset>>
+size: [4x3x2] [4x3x2]
+position integer3D of </dset> integer3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </dset>> and <opaque of </dset>>
+size: [2] [2]
+position opaque of </dset> opaque of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </dset>> and <opaque2D of </dset>>
+size: [3x2] [3x2]
+position opaque2D of </dset> opaque2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </dset>> and <opaque3D of </dset>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </dset> opaque3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <reference of </dset>> and <reference of </dset>>
+0 differences found
+attribute: <reference2D of </dset>> and <reference2D of </dset>>
+0 differences found
+attribute: <reference3D of </dset>> and <reference3D of </dset>>
+0 differences found
+attribute: <string of </dset>> and <string of </dset>>
+size: [2] [2]
+position string of </dset> string of </dset> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </dset>> and <string2D of </dset>>
+size: [3x2] [3x2]
+position string2D of </dset> string2D of </dset> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </dset>> and <string3D of </dset>>
+size: [4x3x2] [4x3x2]
+position string3D of </dset> string3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </dset>> and <vlen of </dset>>
+size: [2] [2]
+position vlen of </dset> vlen of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </dset>> and <vlen2D of </dset>>
+size: [3x2] [3x2]
+position vlen2D of </dset> vlen2D of </dset> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </dset>> and <vlen3D of </dset>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </dset> vlen3D of </dset> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+519 differences found
+
+group : </g1> and </g1>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x VLstring
+ x x VLstring2D
+ x x VLstring3D
+ x x array
+ x x array2D
+ x x array3D
+ x x bitfield
+ x x bitfield2D
+ x x bitfield3D
+ x x compound
+ x x compound2D
+ x x compound3D
+ x x enum
+ x x enum2D
+ x x enum3D
+ x x float
+ x x float2D
+ x x float3D
+ x x integer
+ x x integer2D
+ x x integer3D
+ x x opaque
+ x x opaque2D
+ x x opaque3D
+ x x string
+ x x string2D
+ x x string3D
+ x x vlen
+ x x vlen2D
+ x x vlen3D
+Attributes status: 30 common, 0 only in obj1, 0 only in obj2
+attribute: <VLstring of </g1>> and <VLstring of </g1>>
+size: [2] [2]
+position VLstring of </g1> VLstring of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>>
+size: [3x2] [3x2]
+position VLstring2D of </g1> VLstring2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>>
+size: [4x3x2] [4x3x2]
+position VLstring3D of </g1> VLstring3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <array of </g1>> and <array of </g1>>
+size: [2] [2]
+position array of </g1> array of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+6 differences found
+attribute: <array2D of </g1>> and <array2D of </g1>>
+size: [3x2] [3x2]
+position array2D of </g1> array2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+18 differences found
+attribute: <array3D of </g1>> and <array3D of </g1>>
+size: [4x3x2] [4x3x2]
+position array3D of </g1> array3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+72 differences found
+attribute: <bitfield of </g1>> and <bitfield of </g1>>
+size: [2] [2]
+position bitfield of </g1> bitfield of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>>
+size: [3x2] [3x2]
+position bitfield2D of </g1> bitfield2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>>
+size: [4x3x2] [4x3x2]
+position bitfield3D of </g1> bitfield3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <compound of </g1>> and <compound of </g1>>
+size: [2] [2]
+position compound of </g1> compound of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 1 ] 3 0 3
+[ 1 ] 4 0 4
+4 differences found
+attribute: <compound2D of </g1>> and <compound2D of </g1>>
+size: [3x2] [3x2]
+position compound2D of </g1> compound2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6 0 6
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8 0 8
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10 0 10
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12 0 12
+12 differences found
+attribute: <compound3D of </g1>> and <compound3D of </g1>>
+size: [4x3x2] [4x3x2]
+position compound3D of </g1> compound3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6 0 6
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8 0 8
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10 0 10
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12 0 12
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14 0 14
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16 0 16
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18 0 18
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20 0 20
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22 0 22
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24 0 24
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26 0 26
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28 0 28
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30 0 30
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32 0 32
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42 0 42
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44 0 44
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46 0 46
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48 0 48
+48 differences found
+attribute: <enum of </g1>> and <enum of </g1>>
+size: [2] [2]
+position enum of </g1> enum of </g1> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+2 differences found
+attribute: <enum2D of </g1>> and <enum2D of </g1>>
+size: [3x2] [3x2]
+position enum2D of </g1> enum2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+6 differences found
+attribute: <enum3D of </g1>> and <enum3D of </g1>>
+size: [4x3x2] [4x3x2]
+position enum3D of </g1> enum3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+24 differences found
+attribute: <float of </g1>> and <float of </g1>>
+size: [2] [2]
+position float of </g1> float of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <float2D of </g1>> and <float2D of </g1>>
+size: [3x2] [3x2]
+position float2D of </g1> float2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <float3D of </g1>> and <float3D of </g1>>
+size: [4x3x2] [4x3x2]
+position float3D of </g1> float3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <integer of </g1>> and <integer of </g1>>
+size: [2] [2]
+position integer of </g1> integer of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <integer2D of </g1>> and <integer2D of </g1>>
+size: [3x2] [3x2]
+position integer2D of </g1> integer2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <integer3D of </g1>> and <integer3D of </g1>>
+size: [4x3x2] [4x3x2]
+position integer3D of </g1> integer3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <opaque of </g1>> and <opaque of </g1>>
+size: [2] [2]
+position opaque of </g1> opaque of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+2 differences found
+attribute: <opaque2D of </g1>> and <opaque2D of </g1>>
+size: [3x2] [3x2]
+position opaque2D of </g1> opaque2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+6 differences found
+attribute: <opaque3D of </g1>> and <opaque3D of </g1>>
+size: [4x3x2] [4x3x2]
+position opaque3D of </g1> opaque3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+24 differences found
+attribute: <string of </g1>> and <string of </g1>>
+size: [2] [2]
+position string of </g1> string of </g1> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+4 differences found
+attribute: <string2D of </g1>> and <string2D of </g1>>
+size: [3x2] [3x2]
+position string2D of </g1> string2D of </g1> difference
+------------------------------------------------------------
+[ 0 0 ] a z
+[ 0 0 ] b z
+[ 0 1 ] c z
+[ 0 1 ] d z
+[ 1 0 ] e z
+[ 1 0 ] f z
+[ 1 1 ] g z
+[ 1 1 ] h z
+[ 2 0 ] i z
+[ 2 0 ] j z
+[ 2 1 ] k z
+[ 2 1 ] l z
+12 differences found
+attribute: <string3D of </g1>> and <string3D of </g1>>
+size: [4x3x2] [4x3x2]
+position string3D of </g1> string3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 0 ] a z
+[ 0 0 0 ] b z
+[ 0 0 1 ] c z
+[ 0 0 1 ] d z
+[ 0 1 0 ] e z
+[ 0 1 0 ] f z
+[ 0 1 1 ] g z
+[ 0 1 1 ] h z
+[ 0 2 0 ] i z
+[ 0 2 0 ] j z
+[ 0 2 1 ] k z
+[ 0 2 1 ] l z
+[ 1 0 0 ] m z
+[ 1 0 0 ] n z
+[ 1 0 1 ] p z
+[ 1 0 1 ] q z
+[ 1 1 0 ] r z
+[ 1 1 0 ] s z
+[ 1 1 1 ] t z
+[ 1 1 1 ] u z
+[ 1 2 0 ] v z
+[ 1 2 0 ] w z
+[ 1 2 1 ] x z
+[ 2 0 0 ] A z
+[ 2 0 0 ] B z
+[ 2 0 1 ] C z
+[ 2 0 1 ] D z
+[ 2 1 0 ] E z
+[ 2 1 0 ] F z
+[ 2 1 1 ] G z
+[ 2 1 1 ] H z
+[ 2 2 0 ] I z
+[ 2 2 0 ] J z
+[ 2 2 1 ] K z
+[ 2 2 1 ] L z
+[ 3 0 0 ] M z
+[ 3 0 0 ] N z
+[ 3 0 1 ] P z
+[ 3 0 1 ] Q z
+[ 3 1 0 ] R z
+[ 3 1 0 ] S z
+[ 3 1 1 ] T z
+[ 3 1 1 ] U z
+[ 3 2 0 ] V z
+[ 3 2 0 ] W z
+[ 3 2 1 ] X z
+[ 3 2 1 ] Z z
+47 differences found
+attribute: <vlen of </g1>> and <vlen of </g1>>
+size: [2] [2]
+position vlen of </g1> vlen of </g1> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+3 differences found
+attribute: <vlen2D of </g1>> and <vlen2D of </g1>>
+size: [3x2] [3x2]
+position vlen2D of </g1> vlen2D of </g1> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+11 differences found
+attribute: <vlen3D of </g1>> and <vlen3D of </g1>>
+size: [4x3x2] [4x3x2]
+position vlen3D of </g1> vlen3D of </g1> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+59 differences found
+--------------------------------
+Some objects are not comparable
+--------------------------------
+Use -c for a list of objects.
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_704.txt b/tools/h5diff/testfiles/h5diff_704.txt
new file mode 100644
index 0000000..e752a01
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_704.txt
@@ -0,0 +1,28 @@
+
+group1 group2
+---------------------------------------
+ x x
+
+
+group : </g> and </g>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x float1
+ x x integer1
+Attributes status: 2 common, 0 only in obj1, 0 only in obj2
+attribute: <float1 of </g>> and <float1 of </g>>
+size: [2] [2]
+position float1 of </g> float1 of </g> difference
+------------------------------------------------------------
+[ 0 ] 1.1 2.1 1
+[ 1 ] 2.2 3.2 1
+2 differences found
+attribute: <integer1 of </g>> and <integer1 of </g>>
+size: [2] [2]
+position integer1 of </g> integer1 of </g> difference
+------------------------------------------------------------
+[ 0 ] 1 2 1
+[ 1 ] 2 3 1
+2 differences found
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_705.txt b/tools/h5diff/testfiles/h5diff_705.txt
new file mode 100644
index 0000000..1609189
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_705.txt
@@ -0,0 +1,17 @@
+
+dataset: </dset> and </dset>
+ obj1 obj2
+ --------------------------------------
+ x float2
+ x float3
+ x x integer1
+Attributes status: 1 common, 1 only in obj1, 1 only in obj2
+attribute: <integer1 of </dset>> and <integer1 of </dset>>
+size: [2] [2]
+position integer1 of </dset> integer1 of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 2 1
+[ 1 ] 2 3 1
+2 differences found
+2 differences found
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_706.txt b/tools/h5diff/testfiles/h5diff_706.txt
new file mode 100644
index 0000000..38eeac5
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_706.txt
@@ -0,0 +1,13 @@
+
+datatype: </ntype> and </ntype>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x float2
+ x float3
+ x float5
+ x float6
+ x integer1
+ x integer4
+Attributes status: 0 common, 3 only in obj1, 3 only in obj2
+EXIT CODE: 0
diff --git a/tools/h5diff/testfiles/h5diff_707.txt b/tools/h5diff/testfiles/h5diff_707.txt
new file mode 100644
index 0000000..4d6378b
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_707.txt
@@ -0,0 +1,29 @@
+
+group1 group2
+---------------------------------------
+ x x
+
+
+group : </g2> and </g2>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x float2
+ x float3
+ x x integer1
+Attributes status: 2 common, 1 only in obj1, 0 only in obj2
+attribute: <float2 of </g2>> and <float2 of </g2>>
+size: [2] [2]
+position float2 of </g2> float2 of </g2> difference
+------------------------------------------------------------
+[ 0 ] 1.1 2.1 1
+[ 1 ] 2.2 3.2 1
+2 differences found
+attribute: <integer1 of </g2>> and <integer1 of </g2>>
+size: [2] [2]
+position integer1 of </g2> integer1 of </g2> difference
+------------------------------------------------------------
+[ 0 ] 1 2 1
+[ 1 ] 2 3 1
+2 differences found
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_708.txt b/tools/h5diff/testfiles/h5diff_708.txt
new file mode 100644
index 0000000..add386b
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_708.txt
@@ -0,0 +1,17 @@
+
+group1 group2
+---------------------------------------
+ x x
+
+
+group : </g3> and </g3>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x float11
+ x float12
+ x float4
+ x integer10
+ x integer3
+Attributes status: 0 common, 3 only in obj1, 2 only in obj2
+EXIT CODE: 0
diff --git a/tools/h5diff/testfiles/h5diff_709.txt b/tools/h5diff/testfiles/h5diff_709.txt
new file mode 100644
index 0000000..d0e68bf
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_709.txt
@@ -0,0 +1,12 @@
+
+group1 group2
+---------------------------------------
+ x x
+
+
+group : </g4> and </g4>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+Attributes status: 0 common, 0 only in obj1, 0 only in obj2
+EXIT CODE: 0
diff --git a/tools/h5diff/testfiles/h5diff_710.txt b/tools/h5diff/testfiles/h5diff_710.txt
new file mode 100644
index 0000000..862c062
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_710.txt
@@ -0,0 +1,108 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x x /dset
+ x x /g
+ x x /g2
+ x x /g3
+ x x /g4
+ x x /ntype
+
+
+group : </> and </>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+Attributes status: 0 common, 0 only in obj1, 0 only in obj2
+
+dataset: </dset> and </dset>
+ obj1 obj2
+ --------------------------------------
+ x float2
+ x float3
+ x x integer1
+Attributes status: 1 common, 1 only in obj1, 1 only in obj2
+attribute: <integer1 of </dset>> and <integer1 of </dset>>
+size: [2] [2]
+position integer1 of </dset> integer1 of </dset> difference
+------------------------------------------------------------
+[ 0 ] 1 2 1
+[ 1 ] 2 3 1
+2 differences found
+2 differences found
+
+group : </g> and </g>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x float1
+ x x integer1
+Attributes status: 2 common, 0 only in obj1, 0 only in obj2
+attribute: <float1 of </g>> and <float1 of </g>>
+size: [2] [2]
+position float1 of </g> float1 of </g> difference
+------------------------------------------------------------
+[ 0 ] 1.1 2.1 1
+[ 1 ] 2.2 3.2 1
+2 differences found
+attribute: <integer1 of </g>> and <integer1 of </g>>
+size: [2] [2]
+position integer1 of </g> integer1 of </g> difference
+------------------------------------------------------------
+[ 0 ] 1 2 1
+[ 1 ] 2 3 1
+2 differences found
+
+group : </g2> and </g2>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x x float2
+ x float3
+ x x integer1
+Attributes status: 2 common, 1 only in obj1, 0 only in obj2
+attribute: <float2 of </g2>> and <float2 of </g2>>
+size: [2] [2]
+position float2 of </g2> float2 of </g2> difference
+------------------------------------------------------------
+[ 0 ] 1.1 2.1 1
+[ 1 ] 2.2 3.2 1
+2 differences found
+attribute: <integer1 of </g2>> and <integer1 of </g2>>
+size: [2] [2]
+position integer1 of </g2> integer1 of </g2> difference
+------------------------------------------------------------
+[ 0 ] 1 2 1
+[ 1 ] 2 3 1
+2 differences found
+
+group : </g3> and </g3>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x float11
+ x float12
+ x float4
+ x integer10
+ x integer3
+Attributes status: 0 common, 3 only in obj1, 2 only in obj2
+
+group : </g4> and </g4>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+Attributes status: 0 common, 0 only in obj1, 0 only in obj2
+
+datatype: </ntype> and </ntype>
+0 differences found
+ obj1 obj2
+ --------------------------------------
+ x float2
+ x float3
+ x float5
+ x float6
+ x integer1
+ x integer4
+Attributes status: 0 common, 3 only in obj1, 3 only in obj2
+EXIT CODE: 1
diff --git a/tools/h5diff/testfiles/h5diff_attr_v_level1.h5 b/tools/h5diff/testfiles/h5diff_attr_v_level1.h5
new file mode 100644
index 0000000..2b1d8a1
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_attr_v_level1.h5
Binary files differ
diff --git a/tools/h5diff/testfiles/h5diff_attr_v_level2.h5 b/tools/h5diff/testfiles/h5diff_attr_v_level2.h5
new file mode 100644
index 0000000..4588fca
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_attr_v_level2.h5
Binary files differ
diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh
index 98b600a..2b193a1 100755
--- a/tools/h5diff/testh5diff.sh
+++ b/tools/h5diff/testh5diff.sh
@@ -73,6 +73,9 @@ EXCLUDE_FILE2_2=h5diff_exclude2-2.h5
# compound type with multiple vlen string types
COMP_VL_STRS_FILE=h5diff_comp_vl_strs.h5
+ATTR_VERBOSE_LEVEL_FILE1=h5diff_attr_v_level1.h5
+ATTR_VERBOSE_LEVEL_FILE2=h5diff_attr_v_level2.h5
+
TESTNAME=h5diff
EXIT_SUCCESS=0
EXIT_FAILURE=1
@@ -547,11 +550,42 @@ TOOLTEST h5diff_628.txt -n 1 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.29 non valid files
#TOOLTEST h5diff_629.txt file1.h6 file2.h6
+
# ##############################################################################
# 7. attributes
# ##############################################################################
TOOLTEST h5diff_70.txt -v $FILE5 $FILE6
+# ##################################################
+# attrs with verbose option level
+# ##################################################
+
+TOOLTEST h5diff_700.txt -v1 $FILE5 $FILE6
+TOOLTEST h5diff_701.txt -v2 $FILE5 $FILE6
+TOOLTEST h5diff_702.txt --verbose=1 $FILE5 $FILE6
+TOOLTEST h5diff_703.txt --verbose=2 $FILE5 $FILE6
+
+# same attr number , all same attr name
+TOOLTEST h5diff_704.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g
+
+# same attr number , some same attr name
+TOOLTEST h5diff_705.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /dset
+
+# same attr number , all different attr name
+TOOLTEST h5diff_706.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /ntype
+
+# different attr number , same attr name (intersected)
+TOOLTEST h5diff_707.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g2
+
+# different attr number , all different attr name
+TOOLTEST h5diff_708.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g3
+
+# when no attributes exist in both objects
+TOOLTEST h5diff_709.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g4
+
+# file vs file
+TOOLTEST h5diff_710.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2
+
# ##############################################################################
# 8. all dataset datatypes
# ##############################################################################
diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt
index 77f3763..92c7149 100644
--- a/tools/h5dump/CMakeLists.txt
+++ b/tools/h5dump/CMakeLists.txt
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# Add the h5dump executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (h5dump ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump.c)
-H5_NAMING (h5dump ${LIB_TYPE})
+TARGET_NAMING (h5dump ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES h5dump)
@@ -28,7 +28,7 @@ IF (BUILD_TESTING)
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c)
- H5_NAMING (h5dumpgentest ${LIB_TYPE})
+ TARGET_NAMING (h5dumpgentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5dumpgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#ADD_TEST (NAME h5dumpgentest COMMAND $<TARGET_FILE:h5dumpgentest>)
@@ -38,6 +38,7 @@ IF (BUILD_TESTING)
# Copy all the HDF5 files from the test directory into the source directory
# --------------------------------------------------------------------
SET (HDF5_REFERENCE_FILES
+ filter_fail.ddl
packedbits.ddl
tall-1.ddl
tall-2.ddl
@@ -46,6 +47,7 @@ IF (BUILD_TESTING)
tall-3.ddl
tall-4s.ddl
tall-5s.ddl
+ tall-6.ddl
tallfilters.ddl
tarray1.ddl
tarray1_big.ddl
@@ -220,6 +222,7 @@ IF (BUILD_TESTING)
tbin3.ddl
tbin4.ddl
out3.h5import
+ filter_fail.h5
packedbits.h5
taindices.h5
tall.h5
@@ -396,27 +399,37 @@ IF (BUILD_TESTING)
MACRO (ADD_SKIP_H5_TEST skipresultfile skipresultcode testtype)
IF (${testtype} STREQUAL "SKIP")
- ADD_TEST (
- NAME H5DUMP-${skipresultfile}
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile} ${ARGN}"
- )
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-${skipresultfile}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile} ${ARGN}"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
ADD_H5_TEST (${skipresultfile} ${skipresultcode} ${ARGN})
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_SKIP_H5_TEST)
MACRO (ADD_H5_TEST resultfile resultcode)
- ADD_TEST (
- NAME H5DUMP-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
- -D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}.ddl"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5DUMP-${resultfile} COMMAND $<TARGET_FILE:h5dump> ${ARGN})
+ IF (NOT ${resultcode} STREQUAL "0")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (NOT ${resultcode} STREQUAL "0")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -431,38 +444,73 @@ IF (BUILD_TESTING)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- ADD_TEST (
- NAME H5DUMP-output-cmp-${resultfile}
- COMMAND ${CMAKE_COMMAND}
- -E compare_files ${PROJECT_BINARY_DIR}/${resultfile}.txt ${PROJECT_BINARY_DIR}/${resultfile}.exp
- )
- SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS H5DUMP-output-${resultfile})
- SET (last_test "H5DUMP-output-cmp-${resultfile}")
+ SET (last_test "H5DUMP-output-${resultfile}")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-output-cmp-${resultfile}
+ COMMAND ${CMAKE_COMMAND}
+ -E compare_files ${PROJECT_BINARY_DIR}/${resultfile}.txt ${PROJECT_BINARY_DIR}/${resultfile}.exp
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5DUMP-output-cmp-${resultfile}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_EXPORT_TEST file)
- MACRO (ADD_XML_SKIP_H5_TEST skipresultfile skipresultcode testtype)
- IF (${testtype} STREQUAL "SKIP")
+ MACRO (ADD_H5_MASK_TEST resultfile resultcode)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DUMP-XML-${skipresultfile}
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile}.xml --xml ${ARGN}"
+ NAME H5DUMP-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ddl"
+ -D "TEST_MASK_ERROR=true"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5DUMP-${resultfile}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO (ADD_H5_MASK_TEST file)
+
+ MACRO (ADD_XML_SKIP_H5_TEST skipresultfile skipresultcode testtype)
+ IF (${testtype} STREQUAL "SKIP")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-XML-${skipresultfile}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile}.xml --xml ${ARGN}"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
ADD_XML_H5_TEST (${skipresultfile} ${skipresultcode} ${ARGN})
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_XML_SKIP_H5_TEST)
MACRO (ADD_XML_H5_TEST resultfile resultcode)
- ADD_TEST (
- NAME H5DUMP-XML-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
- -D "TEST_ARGS:STRING=--xml;${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}.xml"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5DUMP-XML-${resultfile} COMMAND $<TARGET_FILE:h5dump> --xml ${ARGN})
+ IF (NOT ${resultcode} STREQUAL "0")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (NOT ${resultcode} STREQUAL "0")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-XML-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=--xml;${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.xml"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -495,6 +543,8 @@ IF (BUILD_TESTING)
NAME H5DUMP-clearall-objects
COMMAND ${CMAKE_COMMAND}
-E remove
+ filter_fail.out
+ filter_fail.out.err
packedbits.out
packedbits.out.err
tall-1.out
@@ -511,6 +561,8 @@ IF (BUILD_TESTING)
tall-4s.out.err
tall-5s.out
tall-5s.out.err
+ tall-6.out
+ tall-6.out.err
tallfilters.out
tallfilters.out.err
tarray1.out
@@ -719,15 +771,6 @@ IF (BUILD_TESTING)
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "H5DUMP-clearall-objects")
- # If using memchecker add tests without using scripts
- IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5DUMP-tgroup COMMAND h5dump tgroup.h5)
- ADD_TEST (NAME H5DUMP-tdset COMMAND h5dump tdset.h5)
- ADD_TEST (NAME H5DUMP-tattr COMMAND h5dump tattr.h5)
- ADD_TEST (NAME H5DUMP-tslink COMMAND h5dump tslink.h5)
- ADD_TEST (NAME H5DUMP-thlink COMMAND h5dump thlink.h5)
- ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
-
# test for signed/unsigned datasets
ADD_H5_TEST (packedbits 0 packedbits.h5)
# test for displaying groups
@@ -972,16 +1015,28 @@ IF (BUILD_TESTING)
# NATIVE default. the NATIVE test can be validated with h5import/h5diff
ADD_H5_TEST (tbin1 0 -d integer -o out1.bin -b tbinary.h5)
ADD_TEST (NAME H5DUMP-clear-out1 COMMAND ${CMAKE_COMMAND} -E remove out1.h5)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-clear-out1 PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
ADD_TEST (NAME H5DUMP-h5import-out1 COMMAND h5import out1.bin -c out3.h5import -o out1.h5)
+ SET_TESTS_PROPERTIES (H5DUMP-h5import-out1 PROPERTIES DEPENDS H5DUMP-clear-out1)
ADD_TEST (NAME H5DUMP-h5diff-out1 COMMAND h5diff tbinary.h5 out1.h5 /integer /integer)
+ SET_TESTS_PROPERTIES (H5DUMP-h5diff-out1 PROPERTIES DEPENDS H5DUMP-h5import-out1)
+ SET (last_test "H5DUMP-h5diff-out1")
ADD_H5_TEST (tbin2 0 -b BE -d float -o out2.bin tbinary.h5)
# the NATIVE test can be validated with h5import/h5diff
ADD_H5_TEST (tbin3 0 -d integer -o out3.bin -b NATIVE tbinary.h5)
ADD_TEST (NAME H5DUMP-clear-out3 COMMAND ${CMAKE_COMMAND} -E remove out3.h5)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-clear-out3 PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
ADD_TEST (NAME H5DUMP-h5import-out3 COMMAND h5import out3.bin -c out3.h5import -o out3.h5)
+ SET_TESTS_PROPERTIES (H5DUMP-h5import-out3 PROPERTIES DEPENDS H5DUMP-clear-out3)
ADD_TEST (NAME H5DUMP-h5diff-out3 COMMAND h5diff tbinary.h5 out3.h5 /integer /integer -q)
+ SET_TESTS_PROPERTIES (H5DUMP-h5diff-out3 PROPERTIES DEPENDS H5DUMP-h5import-out3)
+ SET (last_test "H5DUMP-h5diff-out3")
ADD_H5_TEST (tbin4 0 -d double -b FILE -o out4.bin tbinary.h5)
@@ -1036,6 +1091,12 @@ IF (BUILD_TESTING)
# test for dangling external links
ADD_H5_TEST (textlink 0 textlink.h5)
+ # test for error stack display (BZ2048)
+ ADD_H5_MASK_TEST (filter_fail 1 -E filter_fail.h5)
+
+ # test for -o -y for dataset with attributes
+ ADD_H5_TEST (tall-6 0 -y -o data -d /g1/g1.1/dset1.1.1 tall.h5)
+
####### test for dataset packed bits ######
IF (HDF5_USE_H5DUMP_PACKED_BITS)
# Remove any output file left over from previous test run
@@ -1196,16 +1257,6 @@ IF (BUILD_TESTING)
SET (last_test "H5DUMP-XML-clearall-objects")
########## test XML
-
- # If using memchecker add tests without using scripts
- IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5DUMP-XML-tgroup COMMAND h5dump --xml tgroup.h5)
- ADD_TEST (NAME H5DUMP-XML-tdset COMMAND h5dump --xml tdset.h5)
- ADD_TEST (NAME H5DUMP-XML-tattr COMMAND h5dump --xml tattr.h5)
- ADD_TEST (NAME H5DUMP-XML-tslink COMMAND h5dump --xml tslink.h5)
- ADD_TEST (NAME H5DUMP-XML-thlink COMMAND h5dump --xml thlink.h5)
- ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
-
ADD_XML_H5_TEST (tall.h5 0 tall.h5)
ADD_XML_H5_TEST (tattr.h5 0 tattr.h5)
ADD_XML_H5_TEST (tbitfields.h5 0 tbitfields.h5)
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c
index e89af7e..68cbac0 100644
--- a/tools/h5dump/h5dump.c
+++ b/tools/h5dump/h5dump.c
@@ -92,6 +92,7 @@ static int display_fi = FALSE; /*file index */
static int display_ai = TRUE; /*array index */
static int display_escape = FALSE; /*escape non printable characters */
static int display_region = FALSE; /*print region reference data */
+static int enable_error_stack= FALSE; /* re-enable error stack */
/* sort parameters */
static H5_index_t sort_by = H5_INDEX_NAME; /*sort_by [creation_order | name] */
@@ -387,7 +388,7 @@ struct handler_t {
* parameters. The long-named ones can be partially spelled. When
* adding more, make sure that they don't clash with each other.
*/
-static const char *s_opts = "hnpeyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:b*F:s:S:Aq:z:m:R";
+static const char *s_opts = "hnpeyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:b*F:s:S:Aq:z:m:RE";
static struct long_options l_opts[] = {
{ "help", no_arg, 'h' },
{ "hel", no_arg, 'h' },
@@ -500,6 +501,7 @@ static struct long_options l_opts[] = {
{ "sort_order", require_arg, 'z' },
{ "format", require_arg, 'm' },
{ "region", no_arg, 'R' },
+ { "enable-error-stack", no_arg, 'E' },
{ NULL, 0, '\0' }
};
@@ -662,6 +664,8 @@ usage(const char *prog)
fprintf(stdout, " -X S, --xml-ns=S (XML Schema) Use qualified names n the XML\n");
fprintf(stdout, " \":\": no namespace, default: \"hdf5:\"\n");
fprintf(stdout, " E.g., to dump a file called `-f', use h5dump -- -f\n");
+ fprintf(stdout, " --enable-error-stack Prints messages from the HDF5 error stack as they\n");
+ fprintf(stdout, " occur.\n");
fprintf(stdout, "\n");
fprintf(stdout, " Subsetting is available by using the following options with a dataset\n");
fprintf(stdout, " attribute. Subsetting is done by selecting a hyperslab from the data.\n");
@@ -822,8 +826,11 @@ table_list_free(void)
/* Free each table */
free_table(table_list.tables[u].group_table);
+ HDfree(table_list.tables[u].group_table);
free_table(table_list.tables[u].dset_table);
+ HDfree(table_list.tables[u].dset_table);
free_table(table_list.tables[u].type_table);
+ HDfree(table_list.tables[u].type_table);
}
/* Free the table list */
@@ -1159,7 +1166,9 @@ print_datatype(hid_t type,unsigned in_group)
indentation(indent + COL);
printf("H5T_OPAQUE;\n");
indentation(indent + COL);
- printf("OPAQUE_TAG \"%s\";\n", H5Tget_tag(type));
+ mname = H5Tget_tag(type);
+ printf("OPAQUE_TAG \"%s\";\n", mname);
+ free(mname);
indentation(indent);
break;
@@ -1191,16 +1200,12 @@ print_datatype(hid_t type,unsigned in_group)
case H5T_REFERENCE:
printf("H5T_REFERENCE");
/* The BNF document states that the type of reference should be
- * displayed after "H5T_REFERENCE". Therefore add the missing
- * reference type if the region command line option is used. This
- * reference type will not be displayed if the region option is not used. */
- if(display_region) {
- if (H5Tequal(type, H5T_STD_REF_DSETREG)==TRUE) {
- printf(" { H5T_STD_REF_DSETREG }");
- }
- else {
- printf(" { H5T_STD_REF_OBJECT }");
- }
+ * displayed after "H5T_REFERENCE". */
+ if (H5Tequal(type, H5T_STD_REF_DSETREG)==TRUE) {
+ printf(" { H5T_STD_REF_DSETREG }");
+ }
+ else {
+ printf(" { H5T_STD_REF_OBJECT }");
}
break;
@@ -1458,8 +1463,11 @@ dump_selected_attr(hid_t loc_id, const char *name)
obj_name = (char *)HDmalloc((size_t)j + 2);
/* find the last / */
- while(name[j] != '/' && j >= 0)
+ while(j >= 0) {
+ if (name[j] == '/')
+ break;
j--;
+ }
/* object name */
if(j == -1)
@@ -2540,11 +2548,18 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int display_index)
char string_prefix[64];
h5tool_format_t string_dataformat;
+ /* VL data special information */
+ unsigned int vl_data = 0; /* contains VL datatypes */
+
type = H5Aget_type(obj_id);
p_type = h5tools_get_native_type(type);
ndims = H5Sget_simple_extent_dims(space, size, NULL);
+ /* Check if we have VL data in the dataset's datatype */
+ if (h5tools_detect_vlen(p_type) == TRUE)
+ vl_data = TRUE;
+
for (i = 0; i < ndims; i++)
nelmts *= size[i];
@@ -2585,6 +2600,10 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int display_index)
status = h5tools_dump_mem(stdout, outputformat, obj_id, p_type,
space, buf, depth);
+ /* Reclaim any VL memory, if necessary */
+ if (vl_data)
+ H5Dvlen_reclaim(p_type, space, H5P_DEFAULT, buf);
+
free(buf);
H5Tclose(p_type);
H5Tclose(type);
@@ -2655,7 +2674,7 @@ dump_comment(hid_t obj_id)
/* call H5Oget_comment again with the correct value.
* If the call to H5Oget_comment returned an error, skip this block */
if (cmt_bufsize > 0) {
- comment = (char *)HDmalloc((size_t)cmt_bufsize); /* new_size including null terminator */
+ comment = (char *)HDmalloc((size_t)(cmt_bufsize+1)); /* new_size including null terminator */
if(comment) {
cmt_bufsize = H5Oget_comment(obj_id, comment, cmt_bufsize);
if(cmt_bufsize > 0) {
@@ -4222,6 +4241,9 @@ end_collect:
}
/** end subsetting parameters **/
+ case 'E':
+ enable_error_stack = TRUE;
+ break;
case 'h':
usage(h5tools_getprogname());
leave(EXIT_SUCCESS);
@@ -4343,12 +4365,14 @@ main(int argc, const char *argv[])
h5tools_init();
hand = parse_command_line(argc, argv);
- if ( bin_output && outfname == NULL )
- {
+ if (bin_output && outfname == NULL) {
error_msg("binary output requires a file name, use -o <filename>\n");
leave(EXIT_FAILURE);
}
+ if (enable_error_stack)
+ H5Eset_auto2(H5E_DEFAULT, func, edata);
+
/* Check for conflicting options */
if (doxml) {
if (!display_all) {
@@ -4471,6 +4495,7 @@ main(int argc, const char *argv[])
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
"xsi:schemaLocation=\"http://hdfgroup.org/DTDs/HDF5-File "
"http://www.hdfgroup.org/DTDs/HDF5-File.xsd\">\n",xmlnsprefix,ns);
+ HDfree(ns);
}
} else {
printf("<!DOCTYPE HDF5-File PUBLIC \"HDF5-File.dtd\" \"%s\">\n",
@@ -5491,10 +5516,16 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU
H5Tclose(type);
} else if (H5Tget_class(type) == H5T_STRING) {
status = xml_print_strs(obj_id, ATTRIBUTE_DATA);
- } else {
- /* all other data */
+ } else { /* all other data */
+ /* VL data special information */
+ unsigned int vl_data = 0; /* contains VL datatypes */
+
p_type = h5tools_get_native_type(type);
+ /* Check if we have VL data in the dataset's datatype */
+ if (h5tools_detect_vlen(p_type) == TRUE)
+ vl_data = TRUE;
+
H5Tclose(type);
space = H5Aget_space(obj_id);
@@ -5511,6 +5542,10 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU
status = h5tools_dump_mem(stdout, outputformat, obj_id,
p_type, space, buf, depth);
+ /* Reclaim any VL memory, if necessary */
+ if (vl_data)
+ H5Dvlen_reclaim(p_type, space, H5P_DEFAULT, buf);
+
free(buf);
H5Tclose(p_type);
H5Sclose(space);
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c
index cb30d09..8771cc6 100644
--- a/tools/h5dump/h5dumpgentest.c
+++ b/tools/h5dump/h5dumpgentest.c
@@ -2855,11 +2855,11 @@ static void gent_array1_big(void)
hsize_t stride[SPACE1_RANK]; /* Stride of hyperslab */
hsize_t count[SPACE1_RANK]; /* Element count of hyperslab */
hsize_t block[SPACE1_RANK]; /* Block size of hyperslab */
- start[0]=0;
- stride[0]=1;
- count[0]=999;
- block[0]=1;
- hdset_reg_ref_t *wbuf; /* buffer to write to disk */
+ hdset_reg_ref_t *wbuf; /* buffer to write to disk */
+ start[0] = 0;
+ stride[0] = 1;
+ count[0] = 999;
+ block[0] = 1;
/* Allocate write & read buffers */
wbuf = (hdset_reg_ref_t*) calloc(sizeof(hdset_reg_ref_t), SPACE1_DIM1);
diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in
index e289391..70cce41 100644
--- a/tools/h5dump/testh5dump.sh.in
+++ b/tools/h5dump/testh5dump.sh.in
@@ -196,6 +196,55 @@ TOOLTEST2() {
}
+# same as TOOLTEST but filters error stack outp
+# Extract file name, line number, version and thread IDs because they may be different
+TOOLTEST3() {
+
+ expect="$srcdir/../testfiles/$1"
+ actual="../testfiles/`basename $1 .ddl`.out"
+ actual_err="../testfiles/`basename $1 .ddl`.err"
+ actual_ext="../testfiles/`basename $1 .ddl`.ext"
+ shift
+
+ # Run test.
+ TESTING $DUMPER $@
+ (
+ echo "#############################"
+ echo "Expected output for '$DUMPER $@'"
+ echo "#############################"
+ cd $srcdir/../testfiles
+ $RUNSERIAL $DUMPER_BIN $@
+ ) >$actual 2>$actual_err
+
+ # Extract file name, line number, version and thread IDs because they may be different
+ sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \
+ -e 's/line [0-9]*/line (number)/' \
+ -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \
+ -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \
+ -e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \
+ -e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \
+ $actual_err > $actual_ext
+ cat $actual_ext >> $actual
+
+ if [ ! -f $expect ]; then
+ # Create the expect file if it doesn't yet exist.
+ echo " CREATED"
+ cp $actual $expect
+ elif $CMP $expect $actual; then
+ echo " PASSED"
+ else
+ echo "*FAILED*"
+ echo " Expected result (*.ddl) differs from actual result (*.out)"
+ nerrors="`expr $nerrors + 1`"
+ test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /'
+ fi
+
+ # Clean up output file
+ if test -z "$HDF5_NOCLEANUP"; then
+ rm -f $actual $actual_err
+ fi
+
+}
# Print a "SKIP" message
SKIP() {
@@ -581,10 +630,15 @@ TOOLTEST textlinkfar.ddl textlinkfar.h5
# test for dangling external links
TOOLTEST textlink.ddl textlink.h5
+# test for error stack display (BZ2048)
+TOOLTEST3 filter_fail.ddl --enable-error-stack filter_fail.h5
+
+# test for -o -y for dataset with attributes
+TOOLTEST tall-6.ddl -y -o data -d /g1/g1.1/dset1.1.1 tall.h5
+
# tests for Fixed Array chunk indices
TOOLTEST tdset_idx.ddl -p -H tdset_idx.h5
-
# Report test results and exit
if test $nerrors -eq 0 ; then
echo "All $TESTNAME tests passed."
diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt
index 8eea367..9d4ec1b 100644
--- a/tools/h5import/CMakeLists.txt
+++ b/tools/h5import/CMakeLists.txt
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# Add the h5import executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c)
-H5_NAMING (h5import ${LIB_TYPE})
+TARGET_NAMING (h5import ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES h5import)
@@ -27,14 +27,152 @@ IF (BUILD_TESTING)
# Add the h5import executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (h5importtest ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5importtest.c)
- H5_NAMING (h5importtest ${LIB_TYPE})
+ TARGET_NAMING (h5importtest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5importtest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
+
+ SET (HDF5_REFERENCE_CONF_FILES
+ binfp64.conf
+ binin8.conf
+ binin8w.conf
+ binin16.conf
+ binin32.conf
+ binuin16.conf
+ binuin32.conf
+ txtfp32.conf
+ txtfp64.conf
+ txtin8.conf
+ txtin16.conf
+ txtin32.conf
+ txtuin16.conf
+ txtuin32.conf
+ textpfe.conf
+ txtstr.conf
+ )
+ SET (HDF5_REFERENCE_TXT_FILES
+ txtfp32.txt
+ txtfp64.txt
+ txtuin32.txt
+ txtin16.txt
+ txtin32.txt
+ in64.txt
+ txtstr.txt
+ )
+ SET (HDF5_REFERENCE_TEST_FILES
+ binfp64.h5
+ binin8.h5
+ binin8w.h5
+ binin16.h5
+ binin32.h5
+ binuin16.h5
+ binuin32.h5
+ txtfp32.h5
+ txtfp64.h5
+ txtin8.h5
+ txtin16.h5
+ txtin32.h5
+ txtuin16.h5
+ txtuin32.h5
+ txtstr.h5
+ test15.h5
+ )
+
+ FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ FOREACH (conf_file ${HDF5_REFERENCE_CONF_FILES})
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/${conf_file}")
+ #MESSAGE (STATUS " Copying ${conf_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5import
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${conf_file} ${dest}
+ )
+ ENDFOREACH (conf_file ${HDF5_REFERENCE_CONF_FILES})
+
+ FOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES})
+ SET (dest "${PROJECT_BINARY_DIR}/${txt_file}")
+ #MESSAGE (STATUS " Copying ${txt_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5import
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${txt_file} ${dest}
+ )
+ ENDFOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES})
+
+ FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/tmp_testfiles")
+ FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
+ SET (tmpdest "${PROJECT_BINARY_DIR}/tmp_testfiles/${h5_file}")
+ #MESSAGE (STATUS " Copying ${h5_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5import
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${h5_file} ${tmpdest}
+ )
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/${h5_file}")
+ #MESSAGE (STATUS " Copying ${h5_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5import
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${h5_file} ${dest}
+ )
+ ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
##############################################################################
##############################################################################
### T H E T E S T S M A C R O S ###
##############################################################################
##############################################################################
+ MACRO (ADD_H5_TEST testname importfile conffile testfile)
+ ADD_TEST (
+ NAME H5IMPORT-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${testfile}
+ ${testfile}.new
+ ${testfile}.new.err
+ ${testfile}.out
+ ${testfile}.out.err
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5IMPORT-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ADD_TEST (NAME H5IMPORT-${testname} COMMAND $<TARGET_FILE:h5import> ${importfile} -c testfiles/${conffile} -o ${testfile})
+ SET_TESTS_PROPERTIES (H5IMPORT-${testname} PROPERTIES DEPENDS H5IMPORT-${testname}-clear-objects)
+ SET (last_test "H5IMPORT-${testname}")
+
+ # If using memchecker add tests without using scripts
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5IMPORT-H5DUMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=testfiles/${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testfile}.new"
+ -D "TEST_EXPECT=0"
+ -D "TEST_FILTER=(^(HDF5)[^\n]*)"
+ -D "TEST_SKIP_COMPARE=TRUE"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5IMPORT-H5DUMP-${testname} PROPERTIES DEPENDS H5IMPORT-${testname})
+ ADD_TEST (
+ NAME H5IMPORT-H5DUMP_CMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=tmp_testfiles/${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testfile}.out"
+ -D "TEST_EXPECT=0"
+ -D "TEST_FILTER=(^(HDF5)[^\n]*)"
+ -D "TEST_REFERENCE=${testfile}.new"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5IMPORT-H5DUMP_CMP-${testname} PROPERTIES DEPENDS H5IMPORT-H5DUMP-${testname})
+ SET (last_test "H5IMPORT-H5DUMP_CMP-${testname}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname)
##############################################################################
##############################################################################
@@ -58,8 +196,58 @@ IF (BUILD_TESTING)
txtin32.txt
)
- ADD_TEST (NAME h5importtest COMMAND $<TARGET_FILE:h5importtest>)
- SET_TESTS_PROPERTIES (h5importtest PROPERTIES DEPENDS H5IMPORT-clear-objects)
+ ADD_TEST (NAME H5IMPORT-h5importtest COMMAND $<TARGET_FILE:h5importtest>)
+ SET_TESTS_PROPERTIES (H5IMPORT-h5importtest PROPERTIES DEPENDS H5IMPORT-clear-objects)
+ SET (last_test "H5IMPORT-h5importtest")
+
+ # ----- TESTING "ASCII I32 rank 3 - Output BE " ;
+ ADD_H5_TEST (ASCII_I32 txtin16.txt txtin32.conf txtin32.h5)
+
+ # ----- TESTING "ASCII I16 rank 3 - Output LE - CHUNKED - extended"
+ ADD_H5_TEST (ASCII_I16 txtin16.txt txtin16.conf txtin16.h5)
+
+ # ----- TESTING "ASCII I8 - rank 3 - Output I8 LE-Chunked+Extended+Compressed "
+ ADD_H5_TEST (ASCII_I8 txtin16.txt txtin8.conf txtin8.h5)
+
+ # ----- TESTING "ASCII UI32 - rank 3 - Output BE"
+ ADD_H5_TEST (ASCII_UI32 txtuin32.txt txtuin32.conf txtuin32.h5)
+
+ # ----- TESTING "ASCII UI16 - rank 2 - Output LE+Chunked+Compressed "
+ ADD_H5_TEST (ASCII_UI16 txtuin32.txt txtuin16.conf txtuin16.h5)
+
+ # ----- TESTING "ASCII F32 - rank 3 - Output LE "
+ ADD_H5_TEST (ASCII_F32 txtfp32.txt txtfp32.conf txtfp32.h5)
+
+ # ----- TESTING "ASCII F64 - rank 3 - Output BE + CHUNKED+Extended+Compressed "
+ ADD_H5_TEST (ASCII_F64 txtfp64.txt txtfp64.conf txtfp64.h5)
+
+ # ----- TESTING "BINARY F64 - rank 3 - Output LE+CHUNKED+Extended+Compressed "
+ ADD_H5_TEST (BINARY_F64 binfp64.bin binfp64.conf binfp64.h5)
+
+ # ----- TESTING "BINARY I16 - rank 3 - Output order LE + CHUNKED + extended "
+ ADD_H5_TEST (BINARY_I16 binin16.bin binin16.conf binin16.h5)
+
+ # ----- TESTING "BINARY I8 - rank 3 - Output I16LE + Chunked+Extended+Compressed "
+ ADD_H5_TEST (BINARY_I8 binin8.bin binin8.conf binin8.h5)
+
+ # ----- TESTING "BINARY I32 - rank 3 - Output BE + CHUNKED "
+ ADD_H5_TEST (BINARY_I32 binin32.bin binin32.conf binin32.h5)
+
+ # ----- TESTING "BINARY UI16 - rank 3 - Output byte BE + CHUNKED "
+ ADD_H5_TEST (BINARY_UI16 binuin16.bin binuin16.conf binuin16.h5)
+
+ # ----- TESTING "BINARY UI32 - rank 3 - Output LE + CHUNKED "
+ ADD_H5_TEST (BINARY_UI32 binuin32.bin binuin32.conf binuin32.h5)
+
+ # ----- TESTING "STR"
+ ADD_H5_TEST (STR txtstr.txt txtstr.conf txtstr.h5)
+
+ # ----- TESTING "BINARY I8 CR LF EOF"
+ ADD_H5_TEST (BINARY_I8_EOF binin8w.bin binin8w.conf binin8w.h5)
+
+ # ----- TESTING "ASCII F64 - rank 1 - INPUT-CLASS TEXTFPE "
+ ADD_H5_TEST (ASCII_F64_R1 in64.txt textpfe.conf test15.h5)
+
ENDIF (BUILD_TESTING)
##############################################################################
diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt
index 215dbc8..0bdb558 100644
--- a/tools/h5jam/CMakeLists.txt
+++ b/tools/h5jam/CMakeLists.txt
@@ -11,19 +11,19 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# Add the h5jam executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c)
-H5_NAMING (h5jam ${LIB_TYPE})
+TARGET_NAMING (h5jam ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5jam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_EXECUTABLE (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c)
-H5_NAMING (getub ${LIB_TYPE})
+TARGET_NAMING (getub ${LIB_TYPE})
TARGET_LINK_LIBRARIES (getub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_EXECUTABLE (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c)
-H5_NAMING (tellub ${LIB_TYPE})
+TARGET_NAMING (tellub ${LIB_TYPE})
TARGET_LINK_LIBRARIES (tellub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
ADD_EXECUTABLE (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c)
-H5_NAMING (h5unjam ${LIB_TYPE})
+TARGET_NAMING (h5unjam ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5unjam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES
@@ -45,24 +45,375 @@ IF (BUILD_TESTING)
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5jamgentest ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jamgentest.c)
- H5_NAMING (h5jamgentest ${LIB_TYPE})
+ TARGET_NAMING (h5jamgentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5jamgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#ADD_TEST (NAME h5jamgentest COMMAND $<TARGET_FILE:h5jamgentest>)
ENDIF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
-
+
+ SET (HDF5_REFERENCE_TXT_FILES
+ u10.txt
+ u511.txt
+ u512.txt
+ u513.txt
+ )
+ SET (HDF5_REFERENCE_TEST_FILES
+ tall.h5
+ twithub.h5
+ twithub513.h5
+ )
+
+ FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/${h5_file}")
+ #MESSAGE (STATUS " Copying ${h5_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5jam
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/testfiles/${h5_file} ${dest}
+ )
+ ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
+
+ FOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES})
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/${txt_file}")
+ #MESSAGE (STATUS " Copying ${txt_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5jam
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/testfiles/${txt_file} ${dest}
+ )
+ ENDFOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES})
+
##############################################################################
##############################################################################
### T H E T E S T S M A C R O S ###
##############################################################################
##############################################################################
+ MACRO (CLEANUP testname)
+ ADD_TEST (
+ NAME H5JAM-CLEANUP-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND} -E remove ${ARGN}
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-CLEANUP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5JAM-CLEANUP-${testname}-clear-objects")
+ ENDMACRO(CLEANUP testname testfile)
+
+ MACRO (CHECKFILE testname expected actual)
+ # If using memchecker add tests without using scripts
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5JAM-CHECKFILE-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${expected}.new
+ ${expected}.new.err
+ ${actual}.out
+ ${actual}.out.err
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-CHECKFILE-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ADD_TEST (
+ NAME H5JAM-CHECKFILE-H5DUMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=testfiles/${expected}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${expected}.new"
+ -D "TEST_EXPECT=0"
+ -D "TEST_FILTER=(^(HDF5)[^\n]*)"
+ -D "TEST_SKIP_COMPARE=TRUE"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5JAM-CHECKFILE-H5DUMP-${testname} PROPERTIES DEPENDS H5JAM-CHECKFILE-${testname}-clear-objects)
+ ADD_TEST (
+ NAME H5JAM-CHECKFILE-H5DUMP_CMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=${actual}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${actual}.out"
+ -D "TEST_EXPECT=0"
+ -D "TEST_FILTER=(^(HDF5)[^\n]*)"
+ -D "TEST_REFERENCE=${expected}.new"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5JAM-CHECKFILE-H5DUMP_CMP-${testname} PROPERTIES DEPENDS H5JAM-CHECKFILE-H5DUMP-${testname})
+ SET (last_test "H5JAM-CHECKFILE-H5DUMP_CMP-${testname}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO(CHECKFILE testname expected actual)
+
+ MACRO (SETUP testname infile outfile)
+ ADD_TEST (
+ NAME H5JAM-SETUP-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND} -E remove ${outfile}
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-SETUP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ADD_TEST (
+ NAME H5JAM-SETUP-${testname}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/testfiles/${infile} ${PROJECT_BINARY_DIR}/${outfile}
+ )
+ SET_TESTS_PROPERTIES (H5JAM-SETUP-${testname} PROPERTIES DEPENDS H5JAM-SETUP-${testname}-clear-objects)
+ SET (last_test "H5JAM-SETUP-${testname}")
+ ENDMACRO(SETUP testname infile outfile)
+
+ MACRO (CHECK_UB_1 testname testfile ufile)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary
+ ADD_TEST (
+ NAME H5JAM-CHECK_UB_1-${testname}
+ COMMAND ${CMAKE_COMMAND} -E echo "CHECK_UB_1 ${testname} ${testfile} ${ufile} ${ARGN}"
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-CHECK_UB_1-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5JAM-CHECK_UB_1-${testname}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary
+ ENDMACRO(CHECK_UB_1 testname testfile ufile)
+
+ MACRO (CHECK_NOUB testname testfile)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary
+ ADD_TEST (
+ NAME H5JAM-CHECK_NOUB-${testname}
+ COMMAND ${CMAKE_COMMAND} -E echo "CHECK_NOUB ${testname} ${testfile} ${ARGN}"
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-CHECK_NOUB-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5JAM-CHECK_NOUB-${testname}")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary
+ ENDMACRO(CHECK_NOUB testname testfile)
+
+ MACRO (UNJAMTEST testname infile ufile outfile)
+ ADD_TEST (
+ NAME H5JAM-UNJAM-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND} -E remove ${outfile}
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ IF (NOT "${ufile}" STREQUAL "NONE")
+ ADD_TEST (
+ NAME H5JAM-UNJAM_D-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND} -E remove ${ufile}
+ )
+ SET_TESTS_PROPERTIES (H5JAM-UNJAM_D-${testname}-clear-objects PROPERTIES DEPENDS H5JAM-UNJAM-${testname}-clear-objects)
+ ADD_TEST (NAME H5JAM-UNJAM-${testname} COMMAND $<TARGET_FILE:h5unjam> -i ${infile} -u ${ufile} -o ${outfile} ${ARGN})
+ SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname} PROPERTIES DEPENDS H5JAM-UNJAM_D-${testname}-clear-objects)
+ SET (compare_test ${ufile})
+ ELSE (NOT "${ufile}" STREQUAL "NONE")
+ IF (NOT "${ARGN}" STREQUAL "--delete")
+ ADD_TEST (
+ NAME H5JAM-UNJAM_D-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND} -E remove ${outfile}.ufile.txt ${outfile}.ufile.txt.err
+ )
+ SET_TESTS_PROPERTIES (H5JAM-UNJAM_D-${testname}-clear-objects PROPERTIES DEPENDS H5JAM-UNJAM-${testname}-clear-objects)
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5JAM-UNJAM-${testname} COMMAND $<TARGET_FILE:h5unjam> -i ${infile} -o ${outfile})
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5JAM-UNJAM-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5unjam>"
+ -D "TEST_ARGS:STRING=-i;${infile};-o;${outfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${outfile}.ufile.txt"
+ -D "TEST_EXPECT=0"
+ -D "TEST_SKIP_COMPARE=TRUE"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname} PROPERTIES DEPENDS H5JAM-UNJAM_D-${testname}-clear-objects)
+ SET (compare_test "${outfile}.ufile.txt")
+ ELSE (NOT "${ARGN}" STREQUAL "--delete")
+ ADD_TEST (NAME H5JAM-UNJAM-${testname} COMMAND $<TARGET_FILE:h5unjam> -i ${infile} -o ${outfile} ${ARGN})
+ SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname} PROPERTIES DEPENDS H5JAM-UNJAM-${testname}-clear-objects)
+ ENDIF (NOT "${ARGN}" STREQUAL "--delete")
+ ENDIF (NOT "${ufile}" STREQUAL "NONE")
+ SET (last_test "H5JAM-UNJAM-${testname}")
+ IF (NOT "${compare_test}" STREQUAL "")
+ CHECK_UB_1 (${testname} ${infile} ${compare_test})
+ ENDIF (NOT "${compare_test}" STREQUAL "")
+ CHECK_NOUB (${testname} ${compare_test})
+ ENDMACRO(UNJAMTEST testname infile ufile outfile)
+
+ MACRO (JAMTEST testname jamfile infile outfile)
+ ADD_TEST (
+ NAME H5JAM-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND} -E remove ${outfile}
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5JAM-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ IF ("${outfile}" STREQUAL "NONE")
+ ADD_TEST (NAME H5JAM-${testname} COMMAND $<TARGET_FILE:h5jam> -u testfiles/${jamfile} -i ${infile} ${ARGN})
+ SET (compare_test testfiles/${infile})
+ ELSE ("${outfile}" STREQUAL "NONE")
+ ADD_TEST (NAME H5JAM-${testname} COMMAND $<TARGET_FILE:h5jam> -u testfiles/${jamfile} -i testfiles/${infile} -o ${outfile} ${ARGN})
+ SET (compare_test testfiles/${outfile})
+ ENDIF ("${outfile}" STREQUAL "NONE")
+ SET_TESTS_PROPERTIES (H5JAM-${testname} PROPERTIES DEPENDS H5JAM-${testname}-clear-objects)
+ SET (last_test "H5JAM-${testname}")
+ IF ("${ARGN}" STREQUAL "--clobber")
+ SET (compare_orig "NONE")
+ ELSE ("${ARGN}" STREQUAL "--clobber")
+ SET (compare_orig testfiles/${infile})
+ ENDIF ("${ARGN}" STREQUAL "--clobber")
+ CHECK_UB_1 (${testname} ${compare_test} testfiles/${jamfile} ${compare_orig})
+ ENDMACRO (JAMTEST testname jamfile infile outfile)
+
##############################################################################
##############################################################################
### T H E T E S T S ###
##############################################################################
##############################################################################
+ JAMTEST (tall_u10 u10.txt tall.h5 ta2.h5)
+ CHECKFILE (tall_u10 tall.h5 ta2.h5)
+# CLEANUP (tall_u10 ta2.h5)
+ JAMTEST (tall_u511 u511.txt tall.h5 ta3.h5)
+ CHECKFILE (tall_u511 tall.h5 ta3.h5)
+# CLEANUP (tall_u511 ta3.h5)
+ JAMTEST (tall_u512 u512.txt tall.h5 ta4.h5)
+ CHECKFILE (tall_u512 tall.h5 ta4.h5)
+# CLEANUP (tall_u512 ta4.h5)
+ JAMTEST (tall_u513 u513.txt tall.h5 ta5.h5)
+ CHECKFILE (tall_u513 tall.h5 ta5.h5)
+# CLEANUP (tall_u513 ta5.h5)
+
+ SETUP (ta_u10 tall.h5 ta.h5)
+ JAMTEST (ta_u10 u10.txt ta.h5 NONE)
+ CHECKFILE (ta_u10 tall.h5 ta.h5)
+ SETUP (ta_u511 tall.h5 ta.h5 NOCLEAN)
+ JAMTEST (ta_u511 u511.txt ta.h5 NONE)
+ CHECKFILE (ta_u511 tall.h5 ta.h5)
+ SETUP (ta_u512 tall.h5 ta.h5 NOCLEAN)
+ JAMTEST (ta_u512 u512.txt ta.h5 NONE)
+ CHECKFILE (ta_u512 tall.h5 ta.h5)
+ SETUP (ta_u513 tall.h5 ta.h5 NOCLEAN)
+ JAMTEST (ta_u513 u513.txt ta.h5 NONE)
+ CHECKFILE (ta_u513 tall.h5 ta.h5)
+# CLEANUP (ta ta.h5)
+
+ JAMTEST (twithub_u10 u10.txt twithub.h5 tax2.h5)
+ CHECKFILE (twithub_u10 tall.h5 tax2.h5)
+# CLEANUP (twithub_u10 tax2.h5)
+ JAMTEST (twithub_u511 u511.txt twithub.h5 tax3.h5)
+ CHECKFILE (twithub_u511 tall.h5 tax3.h5)
+# CLEANUP (twithub_u511 tax3.h5)
+ JAMTEST (twithub_u512 u512.txt twithub.h5 tax4.h5)
+ CHECKFILE (twithub_u512 tall.h5 tax4.h5)
+# CLEANUP (twithub_u512 tax4.h5)
+ JAMTEST (twithub_u513 u513.txt twithub.h5 tax5.h5)
+ CHECKFILE (twithub_u513 tall.h5 tax5.h5)
+# CLEANUP (twithub_u513 tax5.h5)
+
+ JAMTEST (twithub513_u10 u10.txt twithub513.h5 tax6.h5)
+ CHECKFILE (twithub513_u10 tall.h5 tax6.h5)
+# CLEANUP (twithub513_u10 tax6.h5)
+ JAMTEST (twithub513_u511 u511.txt twithub513.h5 tax7.h5)
+ CHECKFILE (twithub513_u511 tall.h5 tax7.h5)
+# CLEANUP (twithub513_u511 tax7.h5)
+ JAMTEST (twithub513_u512 u512.txt twithub513.h5 tax8.h5)
+ CHECKFILE (twithub513_u512 tall.h5 tax8.h5)
+# CLEANUP (twithub513_u512 tax8.h5)
+ JAMTEST (twithub513_u513 u513.txt twithub513.h5 tax9.h5)
+ CHECKFILE (twithub513_u513 tall.h5 tax9.h5)
+# CLEANUP (twithub513_u513 tax9.h5)
+
+ JAMTEST (twithub_u10_c u10.txt twithub.h5 taz2.h5 --clobber)
+ CHECKFILE (twithub_u10_c tall.h5 taz2.h5)
+# CLEANUP (twithub_u10_c taz2.h5)
+ JAMTEST (twithub_u511_c u511.txt twithub.h5 taz3.h5 --clobber)
+ CHECKFILE (twithub_u511_c tall.h5 taz3.h5)
+# CLEANUP (twithub_u511_c taz3.h5)
+ JAMTEST (twithub_u512_c u512.txt twithub.h5 taz4.h5 --clobber)
+ CHECKFILE (twithub_u512_c tall.h5 taz4.h5)
+# CLEANUP (twithub_u512_c taz4.h5)
+ JAMTEST (twithub_u513_c u513.txt twithub.h5 taz5.h5 --clobber)
+ CHECKFILE (twithub_u513_c tall.h5 taz5.h5)
+# CLEANUP (twithub_u513_c taz5.h5)
+
+ JAMTEST (twithub513_u10_c u10.txt twithub513.h5 taz6.h5 --clobber)
+ CHECKFILE (twithub513_u10_c tall.h5 taz6.h5)
+# CLEANUP (twithub513_u10_c taz6.h5)
+ JAMTEST (twithub513_u511_c u511.txt twithub513.h5 taz7.h5 --clobber)
+ CHECKFILE (twithub513_u511_c tall.h5 taz7.h5)
+# CLEANUP (twithub513_u511_c taz7.h5)
+ JAMTEST (twithub513_u512_c u512.txt twithub513.h5 taz8.h5 --clobber)
+ CHECKFILE (twithub513_u512_c tall.h5 taz8.h5)
+# CLEANUP (twithub513_u512_c taz8.h5)
+ JAMTEST (twithub513_u513_c u513.txt twithub513.h5 taz9.h5 --clobber)
+ CHECKFILE (twithub513_u513_c tall.h5 taz9.h5)
+# CLEANUP (twithub513_u513_c taz9.h5)
+
+ SETUP (N_twithub_u10_c twithub.h5 tay2.h5)
+ JAMTEST (N_twithub_u10_c u10.txt tay2.h5 NONE --clobber)
+ CHECKFILE (N_twithub_u10_c tall.h5 tay2.h5)
+# CLEANUP (N_twithub_u10_c tay2.h5)
+ SETUP (N_twithub_u511_c twithub.h5 tay3.h5)
+ JAMTEST (N_twithub_u511_c u511.txt tay3.h5 NONE --clobber)
+ CHECKFILE (N_twithub_u511_c tall.h5 tay3.h5)
+# CLEANUP (N_twithub_u511_c tay3.h5)
+ SETUP (N_twithub_u512_c twithub.h5 tay4.h5)
+ JAMTEST (N_twithub_u512_c u512.txt tay4.h5 NONE --clobber)
+ CHECKFILE (N_twithub_u512_c tall.h5 tay4.h5)
+# CLEANUP (N_twithub_u512_c tay4.h5)
+ SETUP (N_twithub_u513_c twithub.h5 tay5.h5)
+ JAMTEST (N_twithub_u513_c u513.txt tay5.h5 NONE --clobber)
+ CHECKFILE (N_twithub_u513_c tall.h5 tay5.h5)
+# CLEANUP (N_twithub_u513_c tay5.h5)
+
+ SETUP (N_twithub513_u10_c twithub513.h5 tay6.h5)
+ JAMTEST (N_twithub513_u10_c u10.txt tay6.h5 NONE --clobber)
+ CHECKFILE (N_twithub513_u10_c tall.h5 tay6.h5)
+# CLEANUP (N_twithub513_u10_c tay6.h5)
+ SETUP (N_twithub513_u511_c twithub513.h5 tay7.h5)
+ JAMTEST (N_twithub513_u511_c u511.txt tay7.h5 NONE --clobber)
+ CHECKFILE (N_twithub513_u511_c tall.h5 tay7.h5)
+# CLEANUP (N_twithub513_u511_c tay7.h5)
+ SETUP (N_twithub513_u512_c twithub513.h5 tay8.h5)
+ JAMTEST (N_twithub513_u512_c u512.txt tay8.h5 NONE --clobber)
+ CHECKFILE (N_twithub513_u512_c tall.h5 tay8.h5)
+# CLEANUP (N_twithub513_u512_c tay8.h5)
+ SETUP (N_twithub513_u513_c twithub513.h5 tay9.h5)
+ JAMTEST (N_twithub513_u513_c u513.txt tay9.h5 NONE --clobber)
+ CHECKFILE (N_twithub513_u513_c tall.h5 tay9.h5)
+# CLEANUP (N_twithub513_u513_c tay9.h5)
+
+ SETUP (twithub_tall twithub.h5 tai1.h5)
+ UNJAMTEST (twithub_tall tai1.h5 o10.txt taa1.h5)
+ CHECKFILE (twithub_tall tall.h5 taa1.h5)
+# CLEANUP (twithub_tall taa1.h5 tai1.h5 o10.txt)
+ SETUP (twithub513_tall twithub513.h5 tai2.h5)
+ UNJAMTEST (twithub513_tall tai2.h5 o512.txt taa2.h5)
+ CHECKFILE (twithub513_tall tall.h5 taa2.h5)
+# CLEANUP (twithub513_tall taa2.h5 tai2.h5 o512.txt)
+
+ SETUP (N_twithub_tall twithub.h5 tai3.h5)
+ UNJAMTEST (N_twithub_tall tai3.h5 NONE taa3.h5)
+ CHECKFILE (N_twithub_tall tall.h5 taa3.h5)
+# CLEANUP (N_twithub_tall taa3.h5 tai3.h5)
+ SETUP (N_twithub513_tall twithub513.h5 tai4.h5)
+ UNJAMTEST (N_twithub513_tall tai4.h5 NONE taa4.h5)
+ CHECKFILE (N_twithub513_tall tall.h5 taa4.h5)
+# CLEANUP (N_twithub513_tall taa4.h5 tai4.h5)
+
+ SETUP (D_twithub_tall twithub.h5 taj2.h5)
+ UNJAMTEST (D_twithub_tall taj2.h5 NONE tac2.h5 --delete)
+ CHECKFILE (D_twithub_tall tall.h5 tac2.h5)
+# CLEANUP (D_twithub_tall tac2.h5 taj2.h5)
+ SETUP (D_twithub513_tall twithub513.h5 taj3.h5)
+ UNJAMTEST (D_twithub513_tall taj3.h5 NONE tac3.h5 --delete)
+ CHECKFILE (D_twithub513_tall tall.h5 tac3.h5)
+# CLEANUP (D_twithub513_tall tac3.h5 taj3.h5)
+
ENDIF (BUILD_TESTING)
##############################################################################
diff --git a/tools/h5jam/h5jam.c b/tools/h5jam/h5jam.c
index d6d3d8f..5eaa26a 100644
--- a/tools/h5jam/h5jam.c
+++ b/tools/h5jam/h5jam.c
@@ -13,13 +13,6 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#ifdef H5_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
#include "hdf5.h"
#include "H5private.h"
#include "h5tools_utils.h"
@@ -177,8 +170,8 @@ main (int argc, const char *argv[])
hsize_t where;
hsize_t newubsize;
off_t fsize;
- struct stat sbuf;
- struct stat sbuf2;
+ h5_stat_t sbuf;
+ h5_stat_t sbuf2;
int res;
h5tools_setprogname(PROGRAMNAME);
@@ -375,7 +368,7 @@ copy_some_to_file (int infid, int outfid, hsize_t startin, hsize_t startout,
ssize_t limit)
{
char buf[1024];
- struct stat sbuf;
+ h5_stat_t sbuf;
int res;
ssize_t tot = 0;
ssize_t howmuch = 0;
diff --git a/tools/h5jam/h5unjam.c b/tools/h5jam/h5unjam.c
index fd79e1a..bfebc6c 100644
--- a/tools/h5jam/h5unjam.c
+++ b/tools/h5jam/h5unjam.c
@@ -13,15 +13,6 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-#include <stdio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#ifdef H5_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
#include "hdf5.h"
#include "H5private.h"
#include "h5tools_utils.h"
@@ -177,7 +168,7 @@ main(int argc, const char *argv[])
herr_t status;
hid_t plist;
int res;
- struct stat sbuf;
+ h5_stat_t sbuf;
h5tools_setprogname(PROGRAMNAME);
h5tools_setstatus(EXIT_SUCCESS);
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt
index 431a693..6956c4e 100644
--- a/tools/h5ls/CMakeLists.txt
+++ b/tools/h5ls/CMakeLists.txt
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# Add the h5ls executable
#-----------------------------------------------------------------------------
ADD_EXECUTABLE (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c)
-H5_NAMING (h5ls ${LIB_TYPE})
+TARGET_NAMING (h5ls ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES
@@ -136,17 +136,25 @@ IF (BUILD_TESTING)
##############################################################################
MACRO (ADD_H5_TEST resultfile resultcode)
- ADD_TEST (
- NAME H5LS-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
- -D "TEST_ARGS=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}.ls"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5LS-${resultfile} COMMAND $<TARGET_FILE:h5ls> ${ARGN})
+ IF (${resultcode} STREQUAL "1")
+ SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (${resultcode} STREQUAL "1")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5LS-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ls"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -276,13 +284,6 @@ IF (BUILD_TESTING)
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "H5LS-clearall-objects")
- # If using memchecker add tests without using scripts
- IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5LS-help COMMAND h5ls -w80 -h)
- ADD_TEST (NAME H5LS-tall COMMAND h5ls -w80 tall.h5)
- ADD_TEST (NAME H5LS-tsoftlinks COMMAND h5ls --follow-symlinks tsoftlinks.h5)
- ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
-
# test the help syntax
ADD_H5_TEST (help-1 0 -w80 -h)
ADD_H5_TEST (help-2 0 -w80 --help)
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c
index 420ff3f..722f45c 100644
--- a/tools/h5ls/h5ls.c
+++ b/tools/h5ls/h5ls.c
@@ -105,9 +105,14 @@ usage (void)
usage: %s [OPTIONS] [OBJECTS...]\n\
OPTIONS\n\
-h, -?, --help Print a usage message and exit\n\
- -a, --address Print addresses for raw data\n\
+ -a, --address Print raw data address. If dataset is contiguous, address\n\
+ is offset in file of beginning of raw data. If chunked,\n\
+ returned list of addresses indicates offset of each chunk.\n\
+ Must be used with -v, --verbose option.\n\
+ Provides no information for non-dataset objects.\n\
-d, --data Print the values of datasets\n\
- -e, --errors Show all HDF5 error reporting\n\
+ --enable-error-stack\n\
+ Prints messages from the HDF5 error stack as they occur.\n\
--follow-symlinks\n\
Follow symbolic links (soft links and external links)\n\
to display target object information.\n\
@@ -152,7 +157,9 @@ usage: %s [OPTIONS] [OBJECTS...]\n\
updated to use the replacement option.\n\
\n\
-E or --external Follow external links.\n\
- Replaced by --follow-symlinks.\n",
+ Replaced by --follow-symlinks.\n\
+ -e, --errors Show all HDF5 error reporting\n\
+ Replaced by --enable-error-stack.\n",
h5tools_getprogname());
}
@@ -1449,6 +1456,13 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
p_type = h5tools_get_native_type(type);
if(p_type >= 0) {
+ /* VL data special information */
+ unsigned int vl_data = 0; /* contains VL datatypes */
+
+ /* Check if we have VL data in the dataset's datatype */
+ if (h5tools_detect_vlen(p_type) == TRUE)
+ vl_data = TRUE;
+
temp_need= nelmts * MAX(H5Tget_size(type), H5Tget_size(p_type));
assert(temp_need == (hsize_t)((size_t)temp_need));
need = (size_t)temp_need;
@@ -1456,6 +1470,11 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
assert(buf);
if(H5Aread(attr, p_type, buf) >= 0)
h5tools_dump_mem(stdout, &info, attr, p_type, space, buf, -1);
+
+ /* Reclaim any VL memory, if necessary */
+ if (vl_data)
+ H5Dvlen_reclaim(p_type, space, H5P_DEFAULT, buf);
+
free(buf);
H5Tclose(p_type);
} /* end if */
@@ -2279,6 +2298,9 @@ main(int argc, const char *argv[])
address_g = TRUE;
} else if(!HDstrcmp(argv[argno], "--data")) {
data_g = TRUE;
+ } else if(!HDstrcmp(argv[argno], "--enable-error-stack")) {
+ show_errors_g = TRUE;
+ /* deprecated --errors */
} else if(!HDstrcmp(argv[argno], "--errors")) {
show_errors_g = TRUE;
} else if(!HDstrcmp(argv[argno], "--follow-symlinks")) {
@@ -2364,6 +2386,7 @@ main(int argc, const char *argv[])
data_g = TRUE;
break;
+ /* deprecated -e */
case 'e': /* --errors */
show_errors_g = TRUE;
break;
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index 92933d4..1593d35 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -21,7 +21,7 @@ SET (REPACK_COMMON_SRCS
)
ADD_EXECUTABLE (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c)
-H5_NAMING (h5repack ${LIB_TYPE})
+TARGET_NAMING (h5repack ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5repack ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES h5repack)
@@ -37,7 +37,7 @@ IF (BUILD_TESTING)
# Add h5Repack test executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (testh5repack_detect_szip ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c)
- H5_NAMING (testh5repack_detect_szip ${LIB_TYPE})
+ TARGET_NAMING (testh5repack_detect_szip ${LIB_TYPE})
TARGET_LINK_LIBRARIES (testh5repack_detect_szip ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME testh5repack_detect_szip COMMAND $<TARGET_FILE:testh5repack_detect_szip>)
@@ -55,7 +55,7 @@ IF (BUILD_TESTING)
ENDIF (HDF5_ENABLE_SZIP_SUPPORT)
ADD_EXECUTABLE (h5repacktest ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repacktst.c)
- H5_NAMING (h5repacktest ${LIB_TYPE})
+ TARGET_NAMING (h5repacktest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5repacktest ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
ADD_TEST (NAME h5repacktest COMMAND $<TARGET_FILE:h5repacktest>)
@@ -169,10 +169,12 @@ IF (BUILD_TESTING)
MACRO (ADD_H5_TEST testname testtype testfile)
IF (${testtype} STREQUAL "SKIP")
- ADD_TEST (
- NAME H5REPACK-${testname}
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}"
- )
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5REPACK-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
ADD_TEST (
NAME H5REPACK-${testname}
@@ -192,23 +194,30 @@ IF (BUILD_TESTING)
MACRO (ADD_H5_CMP_TEST testname testfilter testtype resultcode resultfile)
IF (${testtype} STREQUAL "SKIP")
- ADD_TEST (
- NAME H5REPACK-${testname}
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
- )
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5REPACK-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
- ADD_TEST (
- NAME H5REPACK-${testname}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
- -D "TEST_ARGS:STRING=${ARGN};testfiles/${resultfile};testfiles/out.${resultfile}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_FILTER:STRING=${testfilter}"
- -D "TEST_REFERENCE=testfiles/${resultfile}.ddl"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5REPACK-${testname} COMMAND $<TARGET_FILE:h5repack> ${ARGN} testfiles/${resultfile} testfiles/out.${resultfile})
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5REPACK-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
+ -D "TEST_ARGS:STRING=${ARGN};testfiles/${resultfile};testfiles/out.${resultfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_FILTER:STRING=${testfilter}"
+ -D "TEST_REFERENCE=testfiles/${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -218,51 +227,59 @@ IF (BUILD_TESTING)
MACRO (ADD_H5_VERIFY_TEST testname testtype resultcode testfile testdset testfilter)
IF (${testtype} STREQUAL "SKIP")
- ADD_TEST (
- NAME H5REPACK_VERIFY_LAYOUT-${testname}
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP -d ${testdset} -pH ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
- )
- ELSE (${testtype} STREQUAL "SKIP")
- IF (${resultcode} STREQUAL "0")
- ADD_TEST (
- NAME H5REPACK_VERIFY_LAYOUT-${testname}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
- -D "TEST_ARGS:STRING=-d;${testdset};-pH;testfiles/out.${testfile}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${testfile}-v.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_FILTER:STRING=${testfilter}"
- -D "TEST_REFERENCE=${testfilter}"
- -P "${HDF5_RESOURCES_DIR}/grepTest.cmake"
- )
- SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES DEPENDS H5REPACK-${testname})
- SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}")
- ELSE (${resultcode} STREQUAL "0")
- IF (${testfilter} STREQUAL "CHUNKED")
- SET (nottestfilter "(CONTIGUOUS|COMPACT)")
- ENDIF (${testfilter} STREQUAL "CHUNKED")
- IF (${testfilter} STREQUAL "CONTIGUOUS")
- SET (nottestfilter "(CHUNK|COMPACT)")
- ENDIF (${testfilter} STREQUAL "CONTIGUOUS")
- IF (${testfilter} STREQUAL "COMPACT")
- SET (nottestfilter "(CONTIGUOUS|CHUNK)")
- ENDIF (${testfilter} STREQUAL "COMPACT")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5REPACK_VERIFY_LAYOUT_ALL-${testname}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
- -D "TEST_ARGS:STRING=-pH;testfiles/out.${testfile}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${testfile}-v.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_FILTER:STRING=${nottestfilter}"
- -D "TEST_REFERENCE=${testfilter}"
- -P "${HDF5_RESOURCES_DIR}/grepTest.cmake"
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP -d ${testdset} -pH ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
)
- SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT_ALL-${testname} PROPERTIES DEPENDS H5REPACK-${testname})
- SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}")
- ENDIF (${resultcode} STREQUAL "0")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ELSE (${testtype} STREQUAL "SKIP")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ IF (${resultcode} STREQUAL "0")
+ ADD_TEST (
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=-d;${testdset};-pH;testfiles/out.${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testfile}-v.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_FILTER:STRING=${testfilter}"
+ -D "TEST_REFERENCE=${testfilter}"
+ -P "${HDF5_RESOURCES_DIR}/grepTest.cmake"
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}")
+ ELSE (${resultcode} STREQUAL "0")
+ IF (${testfilter} STREQUAL "CHUNKED")
+ SET (nottestfilter "(CONTIGUOUS|COMPACT)")
+ ENDIF (${testfilter} STREQUAL "CHUNKED")
+ IF (${testfilter} STREQUAL "CONTIGUOUS")
+ SET (nottestfilter "(CHUNK|COMPACT)")
+ ENDIF (${testfilter} STREQUAL "CONTIGUOUS")
+ IF (${testfilter} STREQUAL "COMPACT")
+ SET (nottestfilter "(CONTIGUOUS|CHUNK)")
+ ENDIF (${testfilter} STREQUAL "COMPACT")
+ ADD_TEST (
+ NAME H5REPACK_VERIFY_LAYOUT_ALL-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=-pH;testfiles/out.${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testfile}-v.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_FILTER:STRING=${nottestfilter}"
+ -D "TEST_REFERENCE=${testfilter}"
+ -P "${HDF5_RESOURCES_DIR}/grepTest.cmake"
+ )
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT_ALL-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5REPACK_VERIFY_LAYOUT_ALL-${testname}")
+ ENDIF (${resultcode} STREQUAL "0")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_H5_VERIFY_TEST)
diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt
index 8dceae8..86ad3ad 100644
--- a/tools/h5stat/CMakeLists.txt
+++ b/tools/h5stat/CMakeLists.txt
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# Add the h5stat executables
# --------------------------------------------------------------------
ADD_EXECUTABLE (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c)
-H5_NAMING (h5stat ${LIB_TYPE})
+TARGET_NAMING (h5stat ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5stat ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES h5stat)
@@ -28,7 +28,7 @@ IF (BUILD_TESTING)
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5stat_gentest ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat_gentest.c)
- H5_NAMING (h5stat_gentest ${LIB_TYPE})
+ TARGET_NAMING (h5stat_gentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5stat_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#ADD_TEST (NAME h5stat_gentest COMMAND $<TARGET_FILE:h5stat_gentest>)
@@ -88,17 +88,22 @@ IF (BUILD_TESTING)
##############################################################################
MACRO (ADD_H5_TEST resultfile resultcode)
- ADD_TEST (
- NAME H5STAT-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
- -D "TEST_ARGS=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}.ddl"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5STAT-${resultfile} COMMAND $<TARGET_FILE:h5stat> ${ARGN})
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5STAT-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
+ -D "TEST_ARGS=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5STAT-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c
index 5f406cf..a4d8469 100644
--- a/tools/lib/h5diff.c
+++ b/tools/lib/h5diff.c
@@ -47,8 +47,7 @@
* 2) when diff was found (normal mode)
*-------------------------------------------------------------------------
*/
-int
-print_objname (diff_opt_t * options, hsize_t nfound)
+int print_objname (diff_opt_t * options, hsize_t nfound)
{
return ((options->m_verbose || nfound) && !options->m_quiet) ? 1 : 0;
}
@@ -60,13 +59,31 @@ print_objname (diff_opt_t * options, hsize_t nfound)
*
*-------------------------------------------------------------------------
*/
-void
-do_print_objname (const char *OBJ, const char *path1, const char *path2)
+void do_print_objname (const char *OBJ, const char *path1, const char *path2, diff_opt_t * opts)
{
+ /* if verbose level is higher than 0, put space line before
+ * displaying any object or symbolic links. This improves
+ * readability of the output.
+ */
+ if (opts->m_verbose_level >= 1)
+ parallel_print("\n");
parallel_print("%-7s: <%s> and <%s>\n", OBJ, path1, path2);
}
/*-------------------------------------------------------------------------
+ * Function: do_print_attrname
+ *
+ * Purpose: print attribute name
+ *
+ *-------------------------------------------------------------------------
+ */
+void
+do_print_attrname (const char *attr, const char *path1, const char *path2)
+{
+ parallel_print("%-7s: <%s> and <%s>\n", attr, path1, path2);
+}
+
+/*-------------------------------------------------------------------------
* Function: print_warn
*
* Purpose: check print warning condition.
@@ -1689,7 +1706,7 @@ out:
{
if(print_objname(options, nfound))
{
- do_print_objname("dangling link", obj1name, obj2name);
+ do_print_objname("dangling link", obj1name, obj2name, options);
print_found(nfound);
}
}
@@ -1828,7 +1845,7 @@ hsize_t diff(hid_t file1_id,
/* verbose (-v) and report (-r) mode */
if(options->m_verbose || options->m_report)
{
- do_print_objname("dataset", path1, path2);
+ do_print_objname("dataset", path1, path2, options);
nfound = diff_dataset(file1_id, file2_id, path1, path2, options);
print_found(nfound);
}
@@ -1844,7 +1861,7 @@ hsize_t diff(hid_t file1_id,
/* print info if compatible and difference found */
if (!options->not_cmp && nfound)
{
- do_print_objname("dataset", path1, path2);
+ do_print_objname("dataset", path1, path2, options);
print_found(nfound);
}
}
@@ -1867,7 +1884,7 @@ hsize_t diff(hid_t file1_id,
nfound = (ret > 0) ? 0 : 1;
if(print_objname(options,nfound))
- do_print_objname("datatype", path1, path2);
+ do_print_objname("datatype", path1, path2, options);
/* always print the number of differences found in verbose mode */
if(options->m_verbose)
@@ -1894,7 +1911,7 @@ hsize_t diff(hid_t file1_id,
*/
case H5TRAV_TYPE_GROUP:
if(print_objname(options, nfound))
- do_print_objname("group", path1, path2);
+ do_print_objname("group", path1, path2, options);
/* always print the number of differences found in verbose mode */
if(options->m_verbose)
@@ -1933,7 +1950,7 @@ hsize_t diff(hid_t file1_id,
nfound = (ret != 0) ? 1 : 0;
if(print_objname(options, nfound))
- do_print_objname("link", path1, path2);
+ do_print_objname("link", path1, path2, options);
if (options->follow_links)
{
@@ -1958,9 +1975,6 @@ hsize_t diff(hid_t file1_id,
if(options->m_verbose)
print_found(nfound);
- /* free link info buffer */
- HDfree(linkinfo1.trg_path);
- HDfree(linkinfo2.trg_path);
}
break;
@@ -1988,7 +2002,7 @@ hsize_t diff(hid_t file1_id,
nfound = (ret != 0) ? 1 : 0;
if(print_objname(options, nfound))
- do_print_objname("external link", path1, path2);
+ do_print_objname("external link", path1, path2, options);
if (options->follow_links)
{
@@ -2007,10 +2021,6 @@ hsize_t diff(hid_t file1_id,
file2_id, path2,
options, linkinfo1.trg_type);
}
-
- /* free link info buffer */
- HDfree(linkinfo1.trg_path);
- HDfree(linkinfo2.trg_path);
} /* end if */
else
{
@@ -2028,7 +2038,7 @@ hsize_t diff(hid_t file1_id,
nfound = 0;
if (print_objname (options, nfound))
- do_print_objname ("user defined link", path1, path2);
+ do_print_objname ("user defined link", path1, path2, options);
} /* end else */
/* always print the number of differences found in verbose mode */
@@ -2045,6 +2055,12 @@ hsize_t diff(hid_t file1_id,
break;
}
+ /* free link info buffer */
+ if (linkinfo1.trg_path)
+ HDfree(linkinfo1.trg_path);
+ if (linkinfo2.trg_path)
+ HDfree(linkinfo2.trg_path);
+
return nfound;
out:
@@ -2059,7 +2075,7 @@ out2:
{
if(print_objname(options, nfound))
{
- do_print_objname("dangling link", path1, path2);
+ do_print_objname("dangling link", path1, path2, options);
print_found(nfound);
}
}
diff --git a/tools/lib/h5diff.h b/tools/lib/h5diff.h
index 7e4e016..19d5ed5 100644
--- a/tools/lib/h5diff.h
+++ b/tools/lib/h5diff.h
@@ -36,6 +36,7 @@ typedef struct {
int m_quiet; /* quiet mide: no output at all */
int m_report; /* report mode: print the data */
int m_verbose; /* verbose mode: print the data, list of objcets, warnings */
+ int m_verbose_level; /* control verbose details */
int d; /* delta, absolute value to compare */
double delta; /* delta value */
int p; /* relative error to compare*/
@@ -169,7 +170,8 @@ const char* get_class(H5T_class_t tclass);
const char* get_sign(H5T_sign_t sign);
void print_dimensions (int rank, hsize_t *dims);
int print_objname(diff_opt_t *options, hsize_t nfound);
-void do_print_objname (const char *OBJ, const char *path1, const char *path2);
+void do_print_objname (const char *OBJ, const char *path1, const char *path2, diff_opt_t * opts);
+void do_print_attrname (const char *attr, const char *path1, const char *path2);
/*-------------------------------------------------------------------------
diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c
index 7e5fb04..e5c5965 100644
--- a/tools/lib/h5diff_attr.c
+++ b/tools/lib/h5diff_attr.c
@@ -18,6 +18,262 @@
#include "h5tools_utils.h"
#include "h5diff.h"
+#define ATTR_NAME_MAX 255
+
+typedef struct table_attr_t {
+ char *name;
+ unsigned exist[2];
+} match_attr_t;
+
+typedef struct table_attrs_t {
+ size_t size;
+ size_t nattrs;
+ size_t nattrs_only1;
+ size_t nattrs_only2;
+ match_attr_t *attrs;
+} table_attrs_t;
+
+
+/*-------------------------------------------------------------------------
+ * Function: table_attrs_init
+ *
+ * Purpose: Initialize the table
+ *
+ * Parameter:
+ * - tbl [OUT]
+ *
+ * Programmer: Jonathan Kim
+ *
+ * Date: March 15, 2011
+ *------------------------------------------------------------------------*/
+static void table_attrs_init(table_attrs_t **tbl)
+{
+ table_attrs_t* table_attrs = (table_attrs_t*) HDmalloc(sizeof(table_attrs_t));
+
+ table_attrs->size = 0;
+ table_attrs->nattrs = 0;
+ table_attrs->nattrs_only1 = 0;
+ table_attrs->nattrs_only2 = 0;
+ table_attrs->attrs = NULL;
+
+ *tbl = table_attrs;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: table_attrs_free
+ *
+ * Purpose: free given table
+ *
+ * Parameter:
+ * - table [IN]
+ *
+ * Programmer: Jonathan Kim
+ *
+ * Date: March 15, 2011
+ *------------------------------------------------------------------------*/
+static void table_attrs_free( table_attrs_t *table )
+{
+ unsigned int i;
+
+ if (table)
+ {
+ if(table->attrs)
+ {
+ for(i = 0; i < table->nattrs; i++)
+ {
+ if(table->attrs[i].name)
+ HDfree(table->attrs[i].name );
+ } /* end for */
+ HDfree(table->attrs);
+ table->attrs = NULL;
+ } /* end if */
+ HDfree(table);
+ table = NULL;
+ }
+}
+
+/*-------------------------------------------------------------------------
+ * Function: table_attr_mark_exist
+ *
+ * Purpose: mark given attribute name to table as sign of exsit
+ *
+ * Parameter:
+ * - exist [IN]
+ * - name [IN] : attribute name
+ * - table [OUT]
+ *
+ * Programmer: Jonathan Kim
+ *
+ * Date: March 15, 2011
+ *------------------------------------------------------------------------*/
+static void table_attr_mark_exist(unsigned *exist, char *name, table_attrs_t *table)
+{
+ unsigned int new;
+
+ if(table->nattrs == table->size) {
+ table->size = MAX(1, table->size * 2);
+ table->attrs = (match_attr_t *)HDrealloc(table->attrs, table->size * sizeof(match_attr_t));
+ } /* end if */
+
+ new = table->nattrs++;
+ table->attrs[new].exist[0] = exist[0];
+ table->attrs[new].exist[1] = exist[1];
+ table->attrs[new].name = (char *)HDstrdup(name);
+}
+
+/*-------------------------------------------------------------------------
+ * Function: build_match_list_attrs
+ *
+ * Purpose: get list of matching attribute name from obj1 and obj2
+ *
+ * Note:
+ * Find common attribute; the algorithm for search is referred from
+ * build_match_list() in h5diff.c .
+ *
+ * Parameter:
+ * table_out [OUT] : return the list
+ *
+ * Programmer: Jonathan Kim
+ *
+ * Date: March 15, 2011
+ *------------------------------------------------------------------------*/
+static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t ** table_out, diff_opt_t *options)
+{
+ H5O_info_t oinfo1, oinfo2; /* Object info */
+ hid_t attr1_id=-1; /* attr ID */
+ hid_t attr2_id=-1; /* attr ID */
+ size_t curr1 = 0;
+ size_t curr2 = 0;
+ unsigned infile[2];
+ char name1[ATTR_NAME_MAX];
+ char name2[ATTR_NAME_MAX];
+ int cmp;
+ unsigned i;
+ table_attrs_t *table_lp = NULL;
+
+ if(H5Oget_info(loc1_id, &oinfo1) < 0)
+ goto error;
+ if(H5Oget_info(loc2_id, &oinfo2) < 0)
+ goto error;
+
+ table_attrs_init( &table_lp );
+
+
+ /*--------------------------------------------------
+ * build the list
+ */
+ while(curr1 < oinfo1.num_attrs && curr2 < oinfo2.num_attrs)
+ {
+ /*------------------
+ * open attribute1 */
+ if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr1, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+ goto error;
+ /* get name */
+ if(H5Aget_name(attr1_id, ATTR_NAME_MAX, name1) < 0)
+ goto error;
+
+ /*------------------
+ * open attribute2 */
+ if((attr2_id = H5Aopen_by_idx(loc2_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr2, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+ goto error;
+ /* get name */
+ if(H5Aget_name(attr2_id, ATTR_NAME_MAX, name2) < 0)
+ goto error;
+
+ /* criteria is string compare */
+ cmp = HDstrcmp(name1, name2);
+
+ if(cmp == 0)
+ {
+ infile[0] = 1;
+ infile[1] = 1;
+ table_attr_mark_exist(infile, name1, table_lp);
+ curr1++;
+ curr2++;
+ }
+ else if(cmp < 0)
+ {
+ infile[0] = 1;
+ infile[1] = 0;
+ table_attr_mark_exist(infile, name1, table_lp);
+ table_lp->nattrs_only1++;
+ curr1++;
+ }
+ else
+ {
+ infile[0] = 0;
+ infile[1] = 1;
+ table_attr_mark_exist(infile, name2, table_lp);
+ table_lp->nattrs_only2++;
+ curr2++;
+ }
+ } /* end while */
+
+ /* list1 did not end */
+ infile[0] = 1;
+ infile[1] = 0;
+ while(curr1 < oinfo1.num_attrs)
+ {
+ /*------------------
+ * open attribute1 */
+ if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr1, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+ goto error;
+ /* get name */
+ if(H5Aget_name(attr1_id, ATTR_NAME_MAX, name1) < 0)
+ goto error;
+
+ table_attr_mark_exist(infile, name1, table_lp);
+ table_lp->nattrs_only1++;
+ curr1++;
+ }
+
+ /* list2 did not end */
+ infile[0] = 0;
+ infile[1] = 1;
+ while(curr2 < oinfo2.num_attrs)
+ {
+ /*------------------
+ * open attribute2 */
+ if((attr2_id = H5Aopen_by_idx(loc2_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr2, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+ goto error;
+ /* get name */
+ if(H5Aget_name(attr2_id, ATTR_NAME_MAX, name2) < 0)
+ goto error;
+
+ table_attr_mark_exist(infile, name2, table_lp);
+ table_lp->nattrs_only2++;
+ curr2++;
+ }
+
+ /*------------------------------------------------------
+ * print the list
+ */
+ if(options->m_verbose_level == 2)
+ {
+ /* if '-v2' is detected */
+ parallel_print(" obj1 obj2\n");
+ parallel_print(" --------------------------------------\n");
+ for(i = 0; i < (unsigned int) table_lp->nattrs; i++)
+ {
+ char c1, c2;
+ c1 = (table_lp->attrs[i].exist[0]) ? 'x' : ' ';
+ c2 = (table_lp->attrs[i].exist[1]) ? 'x' : ' ';
+ parallel_print("%5c %6c %-15s\n", c1, c2, table_lp->attrs[i].name);
+ } /* end for */
+ }
+
+ if(options->m_verbose_level >= 1)
+ {
+ parallel_print("Attributes status: %d common, %d only in obj1, %d only in obj2\n", table_lp->nattrs - table_lp->nattrs_only1 - table_lp->nattrs_only2, table_lp->nattrs_only1, table_lp->nattrs_only2 );
+ }
+
+ *table_out = table_lp;
+
+ return 0;
+
+error:
+ return -1;
+}
/*-------------------------------------------------------------------------
* Function: diff_attr
@@ -63,45 +319,33 @@ hsize_t diff_attr(hid_t loc1_id,
int rank2; /* rank of dataset */
hsize_t dims1[H5S_MAX_RANK];/* dimensions of dataset */
hsize_t dims2[H5S_MAX_RANK];/* dimensions of dataset */
- char name1[512];
- char name2[512];
+ char *name1;
+ char *name2;
char np1[512];
char np2[512];
- H5O_info_t oinfo1, oinfo2; /* Object info */
unsigned u; /* Local index variable */
hsize_t nfound = 0;
hsize_t nfound_total = 0;
int j;
- if(H5Oget_info(loc1_id, &oinfo1) < 0)
- goto error;
- if(H5Oget_info(loc2_id, &oinfo2) < 0)
+ table_attrs_t * match_list_attrs = NULL;
+ if( build_match_list_attrs(loc1_id, loc2_id, &match_list_attrs, options) < 0)
goto error;
- if(oinfo1.num_attrs != oinfo2.num_attrs)
- return 1;
-
- for(u = 0; u < (unsigned)oinfo1.num_attrs; u++) {
- /* reset buffers for every attribute, we might goto out and call free */
- buf1 = NULL;
- buf2 = NULL;
+ for(u = 0; u < (unsigned)match_list_attrs->nattrs; u++)
+ {
+ if( (match_list_attrs->attrs[u].exist[0]) && (match_list_attrs->attrs[u].exist[1]) )
+ {
+ name1 = name2 = match_list_attrs->attrs[u].name;
- /* open attribute */
- if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, H5P_DEFAULT, H5P_DEFAULT)) < 0)
- goto error;
- /* get name */
- if(H5Aget_name(attr1_id, 255, name1) < 0)
+ /*--------------
+ * attribute 1 */
+ if((attr1_id = H5Aopen(loc1_id, name1, H5P_DEFAULT)) < 0)
goto error;
- /* use the name on the first file to open the second file */
- H5E_BEGIN_TRY
- {
- if((attr2_id = H5Aopen(loc2_id, name1, H5P_DEFAULT)) < 0)
- goto error;
- } H5E_END_TRY;
-
- /* get name */
- if(H5Aget_name(attr2_id, 255, name2) < 0)
+ /*--------------
+ * attribute 2 */
+ if((attr2_id = H5Aopen(loc2_id, name2, H5P_DEFAULT)) < 0)
goto error;
/* get the datatypes */
@@ -192,7 +436,7 @@ hsize_t diff_attr(hid_t loc1_id,
/* always print name */
/* verbose (-v) and report (-r) mode */
if(options->m_verbose || options->m_report) {
- do_print_objname("attribute", np1, np2);
+ do_print_attrname("attribute", np1, np2);
nfound = diff_array(buf1, buf2, nelmts1, (hsize_t)0, rank1, dims1,
options, np1, np2, mtype1_id, attr1_id, attr2_id);
@@ -210,7 +454,7 @@ hsize_t diff_attr(hid_t loc1_id,
/* not comparable, no display the different number */
if(!options->not_cmp && nfound) {
- do_print_objname("attribute", np1, np2);
+ do_print_attrname("attribute", np1, np2);
print_found(nfound);
} /* end if */
} /* end else */
@@ -221,12 +465,14 @@ hsize_t diff_attr(hid_t loc1_id,
*----------------------------------------------------------------------
*/
- /* Free buf1 and buf2, being careful to reclaim any VL data first */
- if(TRUE == H5Tdetect_class(mtype1_id, H5T_VLEN))
+ /* Free buf1 and buf2, check both VLEN-data VLEN-string to reclaim any
+ * VLEN memory first */
+ if(TRUE == h5tools_detect_vlen(mtype1_id))
H5Dvlen_reclaim(mtype1_id, space1_id, H5P_DEFAULT, buf1);
HDfree(buf1);
+
buf1 = NULL;
- if(TRUE == H5Tdetect_class(mtype2_id, H5T_VLEN))
+ if(TRUE == h5tools_detect_vlen(mtype2_id))
H5Dvlen_reclaim(mtype2_id, space2_id, H5P_DEFAULT, buf2);
HDfree(buf2);
buf2 = NULL;
@@ -249,22 +495,28 @@ hsize_t diff_attr(hid_t loc1_id,
goto error;
nfound_total += nfound;
+ }
} /* u */
+ table_attrs_free(match_list_attrs);
+
return nfound_total;
error:
H5E_BEGIN_TRY {
if(buf1) {
- if(TRUE == H5Tdetect_class(mtype1_id, H5T_VLEN))
+ if(TRUE == h5tools_detect_vlen(mtype1_id))
H5Dvlen_reclaim(mtype1_id, space1_id, H5P_DEFAULT, buf1);
HDfree(buf1);
} /* end if */
if(buf2) {
- if(TRUE == H5Tdetect_class(mtype2_id, H5T_VLEN))
+ if(TRUE == h5tools_detect_vlen(mtype2_id))
H5Dvlen_reclaim(mtype2_id, space2_id, H5P_DEFAULT, buf2);
HDfree(buf2);
} /* end if */
+
+ table_attrs_free(match_list_attrs);
+
H5Tclose(ftype1_id);
H5Tclose(ftype2_id);
H5Tclose(mtype1_id);
diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c
index f8fc493..230e7bb 100644
--- a/tools/lib/h5diff_dset.c
+++ b/tools/lib/h5diff_dset.c
@@ -213,8 +213,10 @@ hsize_t diff_datasetid( hid_t did1,
void *buf2=NULL;
void *sm_buf1=NULL;
void *sm_buf2=NULL;
+ hid_t sm_space; /*stripmine data space */
size_t need; /* bytes needed for malloc */
int i;
+ unsigned int vl_data = 0; /*contains VL datatypes */
/* Get the dataspace handle */
if ( (sid1 = H5Dget_space(did1)) < 0 )
@@ -325,6 +327,11 @@ hsize_t diff_datasetid( hid_t did1,
can_compare=0;
options->not_cmp=1;
}
+
+ /* Check if type is either VLEN-data or VLEN-string to reclaim any
+ * VLEN memory buffer later */
+ if( TRUE == h5tools_detect_vlen(m_tid1) )
+ vl_data = TRUE;
/*-------------------------------------------------------------------------
* only attempt to compare if possible
@@ -332,7 +339,6 @@ hsize_t diff_datasetid( hid_t did1,
*/
if(can_compare) /* it is possible to compare */
{
- unsigned int vl_data = 0; /*contains VL datatypes */
/*-------------------------------------------------------------------------
* get number of elements
@@ -380,10 +386,6 @@ hsize_t diff_datasetid( hid_t did1,
name2 = diff_basename(obj2_name);
- /* check if we have VL data in the dataset's datatype */
- if(TRUE == H5Tdetect_class(m_tid1, H5T_VLEN))
- vl_data = TRUE;
-
/*-------------------------------------------------------------------------
* read/compare
*-------------------------------------------------------------------------
@@ -417,13 +419,11 @@ hsize_t diff_datasetid( hid_t did1,
hsize_t p_nelmts = nelmts1; /*total selected elmts */
hsize_t elmtno; /*counter */
int carry; /*counter carry value */
- unsigned int vl_data = 0; /*contains VL datatypes */
/* stripmine info */
hsize_t sm_size[H5S_MAX_RANK]; /*stripmine size */
hsize_t sm_nbytes; /*bytes per stripmine */
hsize_t sm_nelmts; /*elements per stripmine*/
- hid_t sm_space; /*stripmine data space */
/* hyperslab info */
hsize_t hs_offset[H5S_MAX_RANK]; /*starting offset */
@@ -558,40 +558,52 @@ hsize_t diff_datasetid( hid_t did1,
error:
options->err_stat=1;
- /* free */
- if (buf1!=NULL)
- {
- free(buf1);
- buf1=NULL;
- }
- if (buf2!=NULL)
- {
- free(buf2);
- buf2=NULL;
- }
- if (sm_buf1!=NULL)
- {
- free(sm_buf1);
- sm_buf1=NULL;
- }
- if (sm_buf2!=NULL)
- {
- free(sm_buf2);
- sm_buf2=NULL;
- }
-
- /* disable error reporting */
- H5E_BEGIN_TRY {
- H5Sclose(sid1);
- H5Sclose(sid2);
- H5Tclose(f_tid1);
- H5Tclose(f_tid2);
- H5Tclose(m_tid1);
- H5Tclose(m_tid2);
- /* enable error reporting */
- } H5E_END_TRY;
-
- return nfound;
+ /* free */
+ if (buf1!=NULL)
+ {
+ /* reclaim any VL memory, if necessary */
+ if(vl_data)
+ H5Dvlen_reclaim(m_tid1, sid1, H5P_DEFAULT, buf1);
+ free(buf1);
+ buf1=NULL;
+ }
+ if (buf2!=NULL)
+ {
+ /* reclaim any VL memory, if necessary */
+ if(vl_data)
+ H5Dvlen_reclaim(m_tid2, sid2, H5P_DEFAULT, buf2);
+ free(buf2);
+ buf2=NULL;
+ }
+ if (sm_buf1!=NULL)
+ {
+ /* reclaim any VL memory, if necessary */
+ if(vl_data)
+ H5Dvlen_reclaim(m_tid1, sm_space, H5P_DEFAULT, sm_buf1);
+ free(sm_buf1);
+ sm_buf1=NULL;
+ }
+ if (sm_buf2!=NULL)
+ {
+ /* reclaim any VL memory, if necessary */
+ if(vl_data)
+ H5Dvlen_reclaim(m_tid1, sm_space, H5P_DEFAULT, sm_buf2);
+ free(sm_buf2);
+ sm_buf2=NULL;
+ }
+
+ /* disable error reporting */
+ H5E_BEGIN_TRY {
+ H5Sclose(sid1);
+ H5Sclose(sid2);
+ H5Tclose(f_tid1);
+ H5Tclose(f_tid2);
+ H5Tclose(m_tid1);
+ H5Tclose(m_tid2);
+ /* enable error reporting */
+ } H5E_END_TRY;
+
+ return nfound;
}
/*-------------------------------------------------------------------------
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index dbb20a0..14f4ad5 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -623,6 +623,114 @@ h5tools_ncols(const char *s)
}
/*-------------------------------------------------------------------------
+ * Function: h5tools_detect_vlen
+ *
+ * Purpose: Recursive check for any variable length data in given type.
+ *
+ * Return:
+ * TRUE : type conatains any variable length data
+ * FALSE : type doesn't contain any variable length data
+ * Negative value: error occur
+ *
+ * Programmer: Jonathan Kim March 18, 2011
+ *-------------------------------------------------------------------------
+ */
+htri_t
+h5tools_detect_vlen(hid_t tid)
+{
+ htri_t status;
+ htri_t ret = FALSE;
+ /* recursive detect any vlen data values in type (compound, array ...) */
+ status = H5Tdetect_class(tid, H5T_VLEN);
+ if ( (status == TRUE) || (status < 0) )
+ {
+ ret = status;
+ goto done;
+ }
+
+ /* recursive detect any vlen string in type (compound, array ...) */
+ status = h5tools_detect_vlen_str(tid);
+ if ( (status == TRUE) || (status < 0) )
+
+ {
+ ret = status;
+ goto done;
+ }
+
+done:
+ return ret;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tools_detect_vlen_str
+ *
+ * Purpose: Recursive check for variable length string of a datatype.
+ *
+ * Return:
+ * TRUE : type conatains any variable length string
+ * FALSE : type doesn't contain any variable length string
+ * Negative value: error occur
+ *
+ *-------------------------------------------------------------------------
+ */
+htri_t
+h5tools_detect_vlen_str(hid_t tid)
+{
+ int i = 0;
+ int n = 0;
+ htri_t ret = FALSE;
+ H5T_class_t tclass = -1;
+ hid_t btid;
+ hid_t mtid;
+
+ ret = H5Tis_variable_str(tid);
+ if ( (ret == TRUE) || (ret < 0) )
+ goto done;
+
+ tclass = H5Tget_class(tid);
+ if (tclass == H5T_ARRAY)
+ {
+ btid = H5Tget_super(tid);
+ if (btid < 0)
+ {
+ ret = (htri_t) btid;
+ goto done;
+ }
+ ret = h5tools_detect_vlen_str(btid);
+ if ( (ret == TRUE) || (ret < 0) )
+ {
+ H5Tclose(btid);
+ goto done;
+ }
+ }
+ else if (tclass == H5T_COMPOUND)
+ {
+ n = H5Tget_nmembers(tid);
+ if (n < 0)
+ {
+ n = ret;
+ goto done;
+ }
+
+ for (i = 0; i < n; i++)
+ {
+ mtid = H5Tget_member_type(tid, i);
+ ret = h5tools_detect_vlen_str(mtid);
+ if ( (ret == TRUE) || (ret < 0) )
+ {
+ H5Tclose(mtid);
+ goto done;
+ }
+ H5Tclose(mtid);
+ }
+ }
+
+done:
+ return ret;
+}
+
+/*-------------------------------------------------------------------------
* Audience: Public
* Chapter: H5Tools Library
* Purpose: Emit a simple prefix to STREAM.
@@ -910,19 +1018,19 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai
h5tools_str_append(&buffer, info->dset_format, ref_name);
- dimension_break = h5tools_render_element(stream, info,
+ dimension_break = h5tools_render_element(stdout, info,
ctx, &buffer, &curr_pos, ncols, i, elmt_counter);
region_type = H5Sget_select_type(region_space);
if(region_type==H5S_SEL_POINTS)
/* Print point information */
dimension_break = h5tools_dump_region_data_points(
- region_space, region_id, stream, info, ctx,
+ region_space, region_id, stdout, info, ctx,
&buffer, &curr_pos, ncols, i, elmt_counter);
else if(region_type==H5S_SEL_HYPERSLABS)
/* Print block information */
dimension_break = h5tools_dump_region_data_blocks(
- region_space, region_id, stream, info, ctx,
+ region_space, region_id, stdout, info, ctx,
&buffer, &curr_pos, ncols, i, elmt_counter);
else
HERROR(H5E_tools_g, H5E_tools_min_id_g, "invalid region type");
@@ -951,7 +1059,7 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai
if (i + 1 < nelmts || (flags & END_OF_DATA) == 0)
h5tools_str_append(&buffer, "%s", OPT(info->elmt_suf1, ","));
- dimension_break = h5tools_render_element(rawdatastream, info, ctx, &buffer,
+ dimension_break = h5tools_render_element(stream, info, ctx, &buffer,
&curr_pos, ncols, i, elmt_counter);
/* Render the data element end*/
@@ -1977,6 +2085,9 @@ h5tools_print_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools_c
hsize_t size_row_block; /* size for blocks along rows */
hsize_t row_counter = 0;
+ /* VL data special information */
+ unsigned int vl_data = 0; /* contains VL datatypes */
+
if ((size_t) ctx->ndims > NELMTS(sm_size))
H5E_THROW(FAIL, H5E_tools_min_id_g, "ndims and sm_size comparision failed");
@@ -1985,6 +2096,12 @@ h5tools_print_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools_c
size_row_block = sset->block.data[row_dim];
+ /* Check if we have VL data in the dataset's datatype */
+ if (h5tools_detect_vlen_str(p_type) == TRUE)
+ vl_data = TRUE;
+ if (H5Tdetect_class(p_type, H5T_VLEN) == TRUE)
+ vl_data = TRUE;
+
/* display loop */
for (; hyperslab_count > 0; temp_start[row_dim] += temp_stride[row_dim], hyperslab_count--) {
/* jump rows if size of block exceeded
@@ -2068,6 +2185,10 @@ h5tools_print_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools_c
h5tools_dump_simple_data(stream, info, dset, ctx, flags, sm_nelmts, p_type, sm_buf);
+ /* Reclaim any VL memory, if necessary */
+ if (vl_data)
+ H5Dvlen_reclaim(p_type, sm_space, H5P_DEFAULT, sm_buf);
+
if(H5Sclose(sm_space) < 0)
H5E_THROW(H5E_tools_g, H5E_tools_min_id_g, "H5Sclose failed");
if(sm_buf)
@@ -2319,9 +2440,9 @@ h5tools_dump_simple_subset(FILE *stream, const h5tool_format_t *info, hid_t dset
/* Terminate the output */
if (ctx.cur_column) {
- fputs(OPT(info->line_suf, ""), stream);
- putc('\n', stream);
- fputs(OPT(info->line_sep, ""), stream);
+ fputs(OPT(info->line_suf, ""), stdout);
+ putc('\n', stdout);
+ fputs(OPT(info->line_sep, ""), stdout);
}
CATCH
@@ -2425,9 +2546,11 @@ h5tools_dump_simple_dset(FILE *stream, const h5tool_format_t *info,
}
/* Check if we have VL data in the dataset's datatype */
+ if (h5tools_detect_vlen_str(p_type) == TRUE)
+ vl_data = TRUE;
if (H5Tdetect_class(p_type, H5T_VLEN) == TRUE)
vl_data = TRUE;
-
+
/*
* Determine the strip mine size and allocate a buffer. The strip mine is
* a hyperslab whose size is manageable.
@@ -2667,9 +2790,9 @@ h5tools_dump_dset(FILE *stream, const h5tool_format_t *info, hid_t dset,
/* Print the data */
if (space_type == H5S_SIMPLE || space_type == H5S_SCALAR) {
if(!sset)
- status = h5tools_dump_simple_dset(stream, info, dset, p_type, indentlevel);
+ status = h5tools_dump_simple_dset(rawdatastream, info, dset, p_type, indentlevel);
else
- status = h5tools_dump_simple_subset(stream, info, dset, p_type, sset, indentlevel);
+ status = h5tools_dump_simple_subset(rawdatastream, info, dset, p_type, sset, indentlevel);
}
else
/* space is H5S_NULL */
diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h
index 17abbd5..baec893 100644
--- a/tools/lib/h5tools.h
+++ b/tools/lib/h5tools.h
@@ -561,6 +561,8 @@ H5TOOLS_DLL hid_t h5tools_get_native_type(hid_t type);
H5TOOLS_DLL hid_t h5tools_get_little_endian_type(hid_t type);
H5TOOLS_DLL hid_t h5tools_get_big_endian_type(hid_t type);
+H5TOOLS_DLL htri_t h5tools_detect_vlen(hid_t tid);
+H5TOOLS_DLL htri_t h5tools_detect_vlen_str(hid_t tid);
H5TOOLS_DLL void h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t container,
h5tools_context_t *ctx/*in,out*/, unsigned flags,
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index ae0646a..5166a80 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -132,6 +132,7 @@ char *
h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...)
{
va_list ap;
+ hbool_t isReallocated = FALSE;
/* Make sure we have some memory into which to print */
if (!str->s || str->nalloc <= 0) {
@@ -157,12 +158,23 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...)
nchars = HDvsnprintf(str->s + str->len, avail, fmt, ap);
va_end(ap);
- if (nchars < 0) {
+ /* Note: HDvsnprintf() behaves differently on Windows as Unix, when
+ * buffer is smaller than source string. On Unix, this function
+ * returns length of the source string and copy string upto the
+ * buffer size with NULL at the end of the buffer. However on
+ * Windows with the same condition, this function returns -1 and
+ * doesn't add NULL at the end of the buffer.
+ * Because of this different return results, isReallocated variable
+ * is used to handle when HDvsnprintf() returns -1 on Windows due
+ * to lack of buffer size, so try one more time after realloc more
+ * buffer size before return NULL.
+ */
+ if (nchars < 0 && isReallocated == TRUE) {
/* failure, such as bad format */
return NULL;
}
- if ((size_t) nchars >= avail || (0 == nchars && (strcmp(fmt, "%s")))) {
+ if (nchars < 0 || (size_t) nchars >= avail || (0 == nchars && (strcmp(fmt, "%s")))) {
/* Truncation return value as documented by C99, or zero return value with either of the
* following conditions, each of which indicates that the proper C99 return value probably
* should have been positive when the format string is
@@ -174,6 +186,7 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...)
str->s = realloc(str->s, newsize);
assert(str->s);
str->nalloc = newsize;
+ isReallocated = TRUE;
}
else {
/* Success */
diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c
index 7586fd0..5048b87 100644
--- a/tools/lib/h5tools_utils.c
+++ b/tools/lib/h5tools_utils.c
@@ -231,8 +231,11 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
if (l_opts[i].has_arg != no_arg) {
if (arg[len] == '=') {
opt_arg = &arg[len + 1];
- } else if (opt_ind < (argc - 1) && argv[opt_ind + 1][0] != '-') {
- opt_arg = argv[++opt_ind];
+ }
+ else if (l_opts[i].has_arg != optional_arg) {
+ if (opt_ind < (argc - 1))
+ if (argv[opt_ind + 1][0] != '-')
+ opt_arg = argv[++opt_ind];
} else if (l_opts[i].has_arg == require_arg) {
if (opt_err)
HDfprintf(stderr,
diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt
index 6694458..b4e7078 100644
--- a/tools/misc/CMakeLists.txt
+++ b/tools/misc/CMakeLists.txt
@@ -12,15 +12,15 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
# --------------------------------------------------------------------
#-- Misc Executables
ADD_EXECUTABLE (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c)
-H5_NAMING (h5debug ${LIB_TYPE})
+TARGET_NAMING (h5debug ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
ADD_EXECUTABLE (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c)
-H5_NAMING (h5repart ${LIB_TYPE})
+TARGET_NAMING (h5repart ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
ADD_EXECUTABLE (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c)
-H5_NAMING (h5mkgrp ${LIB_TYPE})
+TARGET_NAMING (h5mkgrp ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5mkgrp ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
SET (H5_DEP_EXECUTABLES
@@ -41,13 +41,13 @@ IF (BUILD_TESTING)
# --------------------------------------------------------------------
IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5repart_gentest ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart_gentest.c)
- H5_NAMING (h5repart_gentest ${LIB_TYPE})
+ TARGET_NAMING (h5repart_gentest ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5repart_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
#ADD_TEST (NAME h5repart_gentest COMMAND $<TARGET_FILE:h5repart_gentest>)
ENDIF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
ADD_EXECUTABLE (h5repart_test ${HDF5_TOOLS_MISC_SOURCE_DIR}/repart_test.c)
- H5_NAMING (h5repart_test ${LIB_TYPE})
+ TARGET_NAMING (h5repart_test ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5repart_test ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
# --------------------------------------------------------------------
@@ -125,53 +125,92 @@ IF (BUILD_TESTING)
##############################################################################
MACRO (ADD_H5_TEST resultfile resultcode resultoption)
- ADD_TEST (
- NAME H5MKGRP-clear-${resultfile}${resultoption}
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
- ${PROJECT_BINARY_DIR}/${resultfile}.out
- ${PROJECT_BINARY_DIR}/${resultfile}.out.err
- )
IF (NOT ${resultoption} STREQUAL " ")
ADD_TEST (
+ NAME H5MKGRP-clear-${resultfile}${resultoption}
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
+ ${PROJECT_BINARY_DIR}/${resultfile}.out
+ ${PROJECT_BINARY_DIR}/${resultfile}.out.err
+ )
+ ADD_TEST (
NAME H5MKGRP-${resultfile}${resultoption}
COMMAND $<TARGET_FILE:h5mkgrp> ${resultoption} ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 ${ARGN}
)
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile}${resultoption})
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5MKGRP-H5LS-${resultfile}${resultoption}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_MASK_MOD=true"
+ -D "TEST_REFERENCE=${resultfile}.ls"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5MKGRP-H5LS-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-${resultfile}${resultoption})
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (NOT ${resultoption} STREQUAL " ")
ADD_TEST (
- NAME H5MKGRP-${resultfile}${resultoption}
+ NAME H5MKGRP-clear-${resultfile}
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
+ ${PROJECT_BINARY_DIR}/${resultfile}.out
+ ${PROJECT_BINARY_DIR}/${resultfile}.out.err
+ )
+ ADD_TEST (
+ NAME H5MKGRP-${resultfile}
COMMAND $<TARGET_FILE:h5mkgrp> ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 ${ARGN}
)
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile})
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5MKGRP-H5LS-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_MASK_MOD=true"
+ -D "TEST_REFERENCE=${resultfile}.ls"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5MKGRP-H5LS-${resultfile} PROPERTIES DEPENDS H5MKGRP-${resultfile})
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDIF (NOT ${resultoption} STREQUAL " ")
- SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile}${resultoption})
- ADD_TEST (
- NAME H5MKGRP-H5LS-${resultfile}${resultoption}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
- -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_MASK_MOD=true"
- -D "TEST_REFERENCE=${resultfile}.ls"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
- SET_TESTS_PROPERTIES (H5MKGRP-H5LS-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-${resultfile}${resultoption})
ENDMACRO (ADD_H5_TEST resultfile resultcode resultoption)
MACRO (ADD_H5_CMP resultfile resultcode)
ADD_TEST (
- NAME H5MKGRP-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp>"
- -D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_REFERENCE=${resultfile}.txt"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ NAME H5MKGRP_CMP-clear-${resultfile}
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
+ ${PROJECT_BINARY_DIR}/${resultfile}.out
+ ${PROJECT_BINARY_DIR}/${resultfile}.out.err
)
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5MKGRP_CMP-${resultfile} COMMAND $<TARGET_FILE:h5mkgrp> ${ARGN})
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5MKGRP_CMP-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.txt"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5MKGRP_CMP-${resultfile} PROPERTIES DEPENDS H5MKGRP_CMP-clear-${resultfile})
ENDMACRO (ADD_H5_CMP resultfile resultcode)
##############################################################################
@@ -201,6 +240,7 @@ IF (BUILD_TESTING)
scd_family00002.h5
scd_family00003.h5
)
+ SET_TESTS_PROPERTIES (h5repart_5K-clear-objects PROPERTIES DEPENDS h5repart_20K)
# repartition family member size to 5 KB.
ADD_TEST (NAME h5repart_5K COMMAND $<TARGET_FILE:h5repart> -m 5k family_file%05d.h5 scd_family%05d.h5)
SET_TESTS_PROPERTIES (h5repart_5K PROPERTIES DEPENDS h5repart_5K-clear-objects)
@@ -212,24 +252,19 @@ IF (BUILD_TESTING)
-E remove
family_to_sec2.h5
)
+ SET_TESTS_PROPERTIES (h5repart_sec2-clear-objects PROPERTIES DEPENDS h5repart_5K)
# convert family file to sec2 file of 20,000 bytes
ADD_TEST (NAME h5repart_sec2 COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5)
SET_TESTS_PROPERTIES (h5repart_sec2 PROPERTIES DEPENDS h5repart_sec2-clear-objects)
# test the output files repartitioned above.
ADD_TEST (NAME h5repart_test COMMAND $<TARGET_FILE:h5repart_test>)
- SET_TESTS_PROPERTIES (h5repart_test PROPERTIES DEPENDS h5repart_sec2 h5repart_5K h5repart_20K)
+ SET_TESTS_PROPERTIES (h5repart_test PROPERTIES DEPENDS h5repart_sec2)
SET (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
h5repart_test
)
- # If using memchecker add tests without using scripts
- IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5MKGRP-help COMMAND h5mkgrp -h)
- ADD_TEST (NAME H5MKGRP-version COMMAND h5mkgrp -V)
- ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
-
# Check that help & version is displayed properly
ADD_H5_CMP (h5mkgrp_help 0 "-h")
ADD_H5_CMP (h5mkgrp_version 0 "-V")
@@ -264,7 +299,7 @@ ENDIF (BUILD_TESTING)
#-----------------------------------------------------------------------------
INSTALL (
TARGETS
- h5debug h5repart
+ h5debug h5repart h5mkgrp
RUNTIME DESTINATION
${HDF5_INSTALL_BIN_DIR}/tools
COMPONENT
diff --git a/tools/testfiles/filter_fail.ddl b/tools/testfiles/filter_fail.ddl
new file mode 100644
index 0000000..354ac0f
--- /dev/null
+++ b/tools/testfiles/filter_fail.ddl
@@ -0,0 +1,30 @@
+#############################
+Expected output for 'h5dump --enable-error-stack filter_fail.h5'
+#############################
+HDF5 "filter_fail.h5" {
+GROUP "/" {
+ DATASET "dset_fail" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 10 ) / ( 10 ) }
+ DATA {
+ }
+ }
+}
+}
+HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
+ #000: (file name) line (number) in H5Dread(): can't read data
+ major: Dataset
+ minor: Read failed
+ #001: (file name) line (number) in H5D_read(): can't read data
+ major: Dataset
+ minor: Read failed
+ #002: (file name) line (number) in H5D_chunk_read(): unable to read raw data chunk
+ major: Low-level I/O
+ minor: Read failed
+ #003: (file name) line (number) in H5D_chunk_lock(): data pipeline read failed
+ major: Data filters
+ minor: Filter operation failed
+ #004: (file name) line (number) in H5Z_pipeline(): required filter is not registered
+ major: Data filters
+ minor: Read failed
+h5dump error: unable to print data
diff --git a/tools/testfiles/filter_fail.h5 b/tools/testfiles/filter_fail.h5
new file mode 100644
index 0000000..c140a69
--- /dev/null
+++ b/tools/testfiles/filter_fail.h5
Binary files differ
diff --git a/tools/testfiles/help-1.ls b/tools/testfiles/help-1.ls
index 6a2904e..e15a88b 100644
--- a/tools/testfiles/help-1.ls
+++ b/tools/testfiles/help-1.ls
@@ -4,9 +4,14 @@
usage: h5ls [OPTIONS] [OBJECTS...]
OPTIONS
-h, -?, --help Print a usage message and exit
- -a, --address Print addresses for raw data
+ -a, --address Print raw data address. If dataset is contiguous, address
+ is offset in file of beginning of raw data. If chunked,
+ returned list of addresses indicates offset of each chunk.
+ Must be used with -v, --verbose option.
+ Provides no information for non-dataset objects.
-d, --data Print the values of datasets
- -e, --errors Show all HDF5 error reporting
+ --enable-error-stack
+ Prints messages from the HDF5 error stack as they occur.
--follow-symlinks
Follow symbolic links (soft links and external links)
to display target object information.
@@ -52,3 +57,5 @@ usage: h5ls [OPTIONS] [OBJECTS...]
-E or --external Follow external links.
Replaced by --follow-symlinks.
+ -e, --errors Show all HDF5 error reporting
+ Replaced by --enable-error-stack.
diff --git a/tools/testfiles/help-2.ls b/tools/testfiles/help-2.ls
index 92163d1..7d035c0 100644
--- a/tools/testfiles/help-2.ls
+++ b/tools/testfiles/help-2.ls
@@ -4,9 +4,14 @@
usage: h5ls [OPTIONS] [OBJECTS...]
OPTIONS
-h, -?, --help Print a usage message and exit
- -a, --address Print addresses for raw data
+ -a, --address Print raw data address. If dataset is contiguous, address
+ is offset in file of beginning of raw data. If chunked,
+ returned list of addresses indicates offset of each chunk.
+ Must be used with -v, --verbose option.
+ Provides no information for non-dataset objects.
-d, --data Print the values of datasets
- -e, --errors Show all HDF5 error reporting
+ --enable-error-stack
+ Prints messages from the HDF5 error stack as they occur.
--follow-symlinks
Follow symbolic links (soft links and external links)
to display target object information.
@@ -52,3 +57,5 @@ usage: h5ls [OPTIONS] [OBJECTS...]
-E or --external Follow external links.
Replaced by --follow-symlinks.
+ -e, --errors Show all HDF5 error reporting
+ Replaced by --enable-error-stack.
diff --git a/tools/testfiles/help-3.ls b/tools/testfiles/help-3.ls
index 7199815..8de1003 100644
--- a/tools/testfiles/help-3.ls
+++ b/tools/testfiles/help-3.ls
@@ -4,9 +4,14 @@
usage: h5ls [OPTIONS] [OBJECTS...]
OPTIONS
-h, -?, --help Print a usage message and exit
- -a, --address Print addresses for raw data
+ -a, --address Print raw data address. If dataset is contiguous, address
+ is offset in file of beginning of raw data. If chunked,
+ returned list of addresses indicates offset of each chunk.
+ Must be used with -v, --verbose option.
+ Provides no information for non-dataset objects.
-d, --data Print the values of datasets
- -e, --errors Show all HDF5 error reporting
+ --enable-error-stack
+ Prints messages from the HDF5 error stack as they occur.
--follow-symlinks
Follow symbolic links (soft links and external links)
to display target object information.
@@ -52,3 +57,5 @@ usage: h5ls [OPTIONS] [OBJECTS...]
-E or --external Follow external links.
Replaced by --follow-symlinks.
+ -e, --errors Show all HDF5 error reporting
+ Replaced by --enable-error-stack.
diff --git a/tools/testfiles/tall-6.ddl b/tools/testfiles/tall-6.ddl
new file mode 100644
index 0000000..199c7f3
--- /dev/null
+++ b/tools/testfiles/tall-6.ddl
@@ -0,0 +1,27 @@
+#############################
+Expected output for 'h5dump -y -o data -d /g1/g1.1/dset1.1.1 tall.h5'
+#############################
+HDF5 "tall.h5" {
+DATASET "/g1/g1.1/dset1.1.1" {
+ DATATYPE H5T_STD_I32BE
+ DATASPACE SIMPLE { ( 10, 10 ) / ( 10, 10 ) }
+ DATA {
+ }
+ ATTRIBUTE "attr1" {
+ DATATYPE H5T_STD_I8BE
+ DATASPACE SIMPLE { ( 27 ) / ( 27 ) }
+ DATA {
+ 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111,
+ 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0
+ }
+ }
+ ATTRIBUTE "attr2" {
+ DATATYPE H5T_STD_I8BE
+ DATASPACE SIMPLE { ( 27 ) / ( 27 ) }
+ DATA {
+ 50, 110, 100, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111,
+ 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tattrreg.ddl b/tools/testfiles/tattrreg.ddl
index 5b64b18..989daf7 100644
--- a/tools/testfiles/tattrreg.ddl
+++ b/tools/testfiles/tattrreg.ddl
@@ -9,7 +9,7 @@ GROUP "/" {
DATA {
}
ATTRIBUTE "Attribute1" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_DSETREG }
DATASPACE SIMPLE { ( 4 ) / ( 4 ) }
DATA {
(0): DATASET /Dataset2 {(2,2)-(7,7)}, DATASET /Dataset2 {(6,9),
diff --git a/tools/testfiles/tdatareg.ddl b/tools/testfiles/tdatareg.ddl
index ea85fb9..d68401f 100644
--- a/tools/testfiles/tdatareg.ddl
+++ b/tools/testfiles/tdatareg.ddl
@@ -4,7 +4,7 @@ Expected output for 'h5dump tdatareg.h5'
HDF5 "tdatareg.h5" {
GROUP "/" {
DATASET "Dataset1" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_DSETREG }
DATASPACE SIMPLE { ( 4 ) / ( 4 ) }
DATA {
DATASET /Dataset2 {(2,2)-(7,7)}, DATASET /Dataset2 {(6,9), (2,2),
diff --git a/tools/testfiles/textlinksrc-nodangle-1.ls b/tools/testfiles/textlinksrc-nodangle-1.ls
index 8a6144b..9240761 100644
--- a/tools/testfiles/textlinksrc-nodangle-1.ls
+++ b/tools/testfiles/textlinksrc-nodangle-1.ls
@@ -6,9 +6,14 @@ Error: --no-dangling-links must be used along with --follow-symlinks option!
usage: h5ls [OPTIONS] [OBJECTS...]
OPTIONS
-h, -?, --help Print a usage message and exit
- -a, --address Print addresses for raw data
+ -a, --address Print raw data address. If dataset is contiguous, address
+ is offset in file of beginning of raw data. If chunked,
+ returned list of addresses indicates offset of each chunk.
+ Must be used with -v, --verbose option.
+ Provides no information for non-dataset objects.
-d, --data Print the values of datasets
- -e, --errors Show all HDF5 error reporting
+ --enable-error-stack
+ Prints messages from the HDF5 error stack as they occur.
--follow-symlinks
Follow symbolic links (soft links and external links)
to display target object information.
@@ -54,3 +59,5 @@ usage: h5ls [OPTIONS] [OBJECTS...]
-E or --external Follow external links.
Replaced by --follow-symlinks.
+ -e, --errors Show all HDF5 error reporting
+ Replaced by --enable-error-stack.
diff --git a/tools/testfiles/tgroup-1.ls b/tools/testfiles/tgroup-1.ls
index 03a70fd..04066ca 100644
--- a/tools/testfiles/tgroup-1.ls
+++ b/tools/testfiles/tgroup-1.ls
@@ -6,9 +6,14 @@ Error: 'recursive' option not compatible with 'group info' option!
usage: h5ls [OPTIONS] [OBJECTS...]
OPTIONS
-h, -?, --help Print a usage message and exit
- -a, --address Print addresses for raw data
+ -a, --address Print raw data address. If dataset is contiguous, address
+ is offset in file of beginning of raw data. If chunked,
+ returned list of addresses indicates offset of each chunk.
+ Must be used with -v, --verbose option.
+ Provides no information for non-dataset objects.
-d, --data Print the values of datasets
- -e, --errors Show all HDF5 error reporting
+ --enable-error-stack
+ Prints messages from the HDF5 error stack as they occur.
--follow-symlinks
Follow symbolic links (soft links and external links)
to display target object information.
@@ -54,3 +59,5 @@ usage: h5ls [OPTIONS] [OBJECTS...]
-E or --external Follow external links.
Replaced by --follow-symlinks.
+ -e, --errors Show all HDF5 error reporting
+ Replaced by --enable-error-stack.
diff --git a/tools/testfiles/tnofilename.ddl b/tools/testfiles/tnofilename.ddl
index 5b9299b..0e78217 100644
--- a/tools/testfiles/tnofilename.ddl
+++ b/tools/testfiles/tnofilename.ddl
@@ -35,6 +35,8 @@ usage: h5dump [OPTIONS] file
-X S, --xml-ns=S (XML Schema) Use qualified names n the XML
":": no namespace, default: "hdf5:"
E.g., to dump a file called `-f', use h5dump -- -f
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/treference.ddl b/tools/testfiles/treference.ddl
index b34fa8d..b94802f 100644
--- a/tools/testfiles/treference.ddl
+++ b/tools/testfiles/treference.ddl
@@ -853,14 +853,14 @@ GROUP "/" {
}
}
ATTRIBUTE "reference" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT }
DATASPACE SIMPLE { ( 2 ) / ( 2 ) }
DATA {
(0): DATASET 976 /dset , DATASET 976 /dset
}
}
ATTRIBUTE "reference2D" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT }
DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) }
DATA {
(0,0): DATASET 976 /dset , DATASET 976 /dset ,
@@ -869,7 +869,7 @@ GROUP "/" {
}
}
ATTRIBUTE "reference3D" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT }
DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) }
DATA {
(0,0,0): DATASET 976 /dset , DATASET 976 /dset ,
@@ -1817,14 +1817,14 @@ GROUP "/" {
}
}
DATASET "reference" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT }
DATASPACE SIMPLE { ( 2 ) / ( 2 ) }
DATA {
(0): DATASET 976 /dset , DATASET 976 /dset
}
}
DATASET "reference2D" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT }
DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) }
DATA {
(0,0): DATASET 976 /dset , DATASET 976 /dset ,
@@ -1833,7 +1833,7 @@ GROUP "/" {
}
}
DATASET "reference3D" {
- DATATYPE H5T_REFERENCE
+ DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT }
DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) }
DATA {
(0,0,0): DATASET 976 /dset , DATASET 976 /dset ,
diff --git a/vms/build.com b/vms/build.com
index 3949da5..c6b972a 100644
--- a/vms/build.com
+++ b/vms/build.com
@@ -17,7 +17,7 @@ $!
$! This file builds C, Fortran, C++ HDF5 libraries and runs the tests
$! Specify location of the top HDF5 source directory
$
-$ hdf5top == "sys$sysusers:[pourmal.hdf5]"
+$ hdf5top == "disk$user:[hdfgroup.hdf5]"
$ len = F$LENGTH(hdf5top)
$ tmp = F$EXTRACT(0, len-1, hdf5top)
$ hdf5vms = tmp + ".VMS]"
diff --git a/vms/c++/examples/make.com b/vms/c++/examples/make.com
index cde20e2..45d74ce 100644
--- a/vms/c++/examples/make.com
+++ b/vms/c++/examples/make.com
@@ -15,7 +15,7 @@ $!#
$!
$! Make HDF5 C++ examples
$!
-$ define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
+$ define zlib_dir disk$user:[hdfgroup.zlib-1_2_5_ieee]
$ cxxopt = "/float=ieee_float/standard=strict_ansi/define=H5_VMS/include=zlib_dir"
$ ccc := cxx 'cxxopt /include=([-.-.include])
$!
diff --git a/vms/examples/make.com b/vms/examples/make.com
index 0df772a..2de398e 100644
--- a/vms/examples/make.com
+++ b/vms/examples/make.com
@@ -16,9 +16,8 @@ $! Makefile for VMS systems.
$!
$! Make HDF5 C examples
$!
-$! ccopt = "/float=ieee_float/nowarnings/define=H5_VMS"
-$
-$ define zlib_dir sys$sysusers:[pourmale.zlib-1_2_3]
+$ define zlib_dir disk$user:[hdfgroup.zlib-1_2_5_ieee]
+$ ccopt = "/float=ieee_float/nowarnings/define=H5_VMS/include=zlib_dir"
$ ccc := cc 'ccopt /include=([-.-.include])
$ type sys$input
Compiling C examples
diff --git a/vms/fortran/examples/make.com b/vms/fortran/examples/make.com
index 591ba63..6c5bfe7 100644
--- a/vms/fortran/examples/make.com
+++ b/vms/fortran/examples/make.com
@@ -17,7 +17,7 @@ $!
$! Make HDF5 Fortran examples
$!
$ fcopt = "/float=ieee_float/define=H5_VMS"
-$ define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
+$ define zlib_dir disk$user:[hdfgroup.zlib-1_2_5_ieee]
$ fff := fortran 'fcopt /module=[-.-.include]
$
$ type sys$input
diff --git a/vms/make.com b/vms/make.com
index 5af9469..4be8784 100644
--- a/vms/make.com
+++ b/vms/make.com
@@ -38,7 +38,7 @@ $ copy [.tools.misc]make.com [-.tools.misc]
$!
$! Define location of ZLIB library. If you do not have it on your system, download
$! source code from http://www.zlib.net/, build and install on your system
-$ define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
+$ define zlib_dir disk$user:[hdfgroup.zlib-1_2_5_ieee]
$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3-ieee]
$!
$! Set up compilation flags here
diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h
index 1a08bda..51897c8 100644
--- a/vms/src/h5pubconf.h
+++ b/vms/src/h5pubconf.h
@@ -65,7 +65,7 @@
#define H5_FP_TO_ULLONG_RIGHT_MAXIMUM 1
/* Define if gettimeofday() populates the tz pointer passed in */
-#define H5_GETTIMEOFDAY_GIVES_TZ 1
+/* #define H5_GETTIMEOFDAY_GIVES_TZ 1 */
/* Define to 1 if you have the `alarm' function. */
#define H5_HAVE_ALARM 1
@@ -314,7 +314,7 @@
/* #undef H5_HAVE_STRUCT_TEXT_INFO */
/* Define if `struct timezone' is defined */
-#define H5_HAVE_STRUCT_TIMEZONE 1
+/* #define H5_HAVE_STRUCT_TIMEZONE 1 */
/* Define to 1 if `tm_zone' is member of `struct tm'. */
#define H5_HAVE_STRUCT_TM_TM_ZONE 1
@@ -377,7 +377,7 @@
#define H5_HAVE_TMPFILE 1
/* Define if `tm_gmtoff' is a member of `struct tm' */
-#define H5_HAVE_TM_GMTOFF 1
+/* #define H5_HAVE_TM_GMTOFF 1 */
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
`HAVE_STRUCT_TM_TM_ZONE' instead. */
diff --git a/vms/test/H5srcdir_str.h b/vms/test/H5srcdir_str.h
new file mode 100644
index 0000000..faf1b03
--- /dev/null
+++ b/vms/test/H5srcdir_str.h
@@ -0,0 +1,22 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* If you are reading this file and it has a '.h' suffix, it was automatically
+ * generated from the '.in' version. Make changes there. But for OpenVMS, this
+ * file is created by hand.
+ */
+
+/* Set the 'srcdir' path from configure time */
+static const char *config_srcdir = "[.]";
diff --git a/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj b/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj
index 561f878..2938143 100644
--- a/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj
+++ b/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj
@@ -321,18 +321,8 @@
<References>
</References>
<Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;f90;for;f;fpp"
- >
- <File
- RelativePath="..\..\..\hl\c++\src\H5PacketTable.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;fi;fd"
+ <File
+ RelativePath="..\..\..\hl\c++\src\H5PacketTable.cpp"
>
</Filter>
</Files>
diff --git a/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj b/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj
index 251c4fa..cc485aa 100644
--- a/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj
+++ b/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj
@@ -400,25 +400,10 @@
<References>
</References>
<Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;f90;for;f;fpp"
+ <File
+ RelativePath="..\..\..\hl\c++\src\H5PacketTable.cpp"
>
- <File
- RelativePath="..\..\..\hl\c++\src\H5PacketTable.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;fi;fd"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- >
- </Filter>
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj b/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj
index e524321..9ae1c76 100644
--- a/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj
+++ b/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj
@@ -419,16 +419,6 @@
>
</File>
</Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;fi;fd"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- >
- </Filter>
</Files>
<Globals>
</Globals>
diff --git a/windows/proj/hdf5_hldll/hdf5_hldll.vcproj b/windows/proj/hdf5_hldll/hdf5_hldll.vcproj
index 91554f2..c42533f 100644
--- a/windows/proj/hdf5_hldll/hdf5_hldll.vcproj
+++ b/windows/proj/hdf5_hldll/hdf5_hldll.vcproj
@@ -435,16 +435,6 @@
>
</File>
</Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;fi;fd"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- >
- </Filter>
</Files>
<Globals>
</Globals>
diff --git a/windows/src/H5pubconf.h b/windows/src/H5pubconf.h
index 2ab3efb..d86e76f 100755
--- a/windows/src/H5pubconf.h
+++ b/windows/src/H5pubconf.h
@@ -54,6 +54,10 @@
/* As FC_FUNC, but for C identifiers containing underscores. */
#define H5_FC_FUNC_(name,NAME) NAME
+/* LAHEY compiler for C identifiers containing underscores. */
+/* #define H5_FC_FUNC(name,NAME) name ## _ */
+/* #define H5_FC_FUNC_(name,NAME) name ## _ */
+
/* Define if your system can handle overflow converting floating-point to
integer values. */
#define H5_FP_TO_INTEGER_OVERFLOW_WORKS 1
@@ -108,6 +112,7 @@
/* #undef H5_HAVE_FEATURES_H */
/* Define if support for deflate (zlib) filter is enabled */
+#define H5_HAVE_FILTER_DEFLATE 1
/* Define if support for Fletcher32 checksum is enabled */
#define H5_HAVE_FILTER_FLETCHER32 1
diff --git a/windows/tools/h5copy/testh5copy.bat b/windows/tools/h5copy/testh5copy.bat
index 495081c..c14b505 100644
--- a/windows/tools/h5copy/testh5copy.bat
+++ b/windows/tools/h5copy/testh5copy.bat
@@ -402,13 +402,13 @@ rem <none>
call :tooltest -f ext -i %testfile% -o %fileout% -v -s /group_ext/extlink_dset -d /copy2_dset
echo.Test copying dangling external link (no obj) directly without -f ext
- call :tooltest -i %testfile% -o %fileout% -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_1
+ call :tooltest -v -i %testfile% -o %fileout% -s /group_ext/extlink_notyet1 -d /copy_dangle1_1
echo.Test copying dangling external link (no obj) directly with -f ext
call :tooltest -f ext -i %testfile% -o %fileout% -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_2
echo.Test copying dangling external link (no file) directly without -f ext
- call :tooltest -i %testfile% -o %fileout% -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_1
+ call :tooltest -v -i %testfile% -o %fileout% -s /group_ext/extlink_notyet2 -d /copy_dangle2_1
echo.Test copying dangling external link (no file) directly with -f ext
call :tooltest -f ext -i %testfile% -o %fileout% -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_2
diff --git a/windows/tools/h5diff/testh5diff.bat b/windows/tools/h5diff/testh5diff.bat
index f745c42..e960dd7 100644
--- a/windows/tools/h5diff/testh5diff.bat
+++ b/windows/tools/h5diff/testh5diff.bat
@@ -59,6 +59,8 @@ set srcexclude1_2=h5diff_exclude1-2.h5
set srcexclude2_1=h5diff_exclude2-1.h5
set srcexclude2_2=h5diff_exclude2-2.h5
set src_comp_vl_strs=h5diff_comp_vl_strs.h5
+set src_ATTR_VERBOSE_LEVEL_FILE1=h5diff_attr_v_level1.h5
+set src_ATTR_VERBOSE_LEVEL_FILE2=h5diff_attr_v_level2.h5
set file1=%indir%\h5diff_basic1.h5
set file2=%indir%\h5diff_basic2.h5
@@ -91,6 +93,8 @@ set exclude1_2=%indir%\h5diff_exclude1-2.h5
set exclude2_1=%indir%\h5diff_exclude2-1.h5
set exclude2_2=%indir%\h5diff_exclude2-2.h5
set comp_vl_strs=%indir%\h5diff_comp_vl_strs.h5
+set ATTR_VERBOSE_LEVEL_FILE1=%indir%\h5diff_attr_v_level1.h5
+set ATTR_VERBOSE_LEVEL_FILE2=%indir%\h5diff_attr_v_level2.h5
rem The tool name
@@ -530,6 +534,50 @@ rem ############################################################################
call :testing %h5diff% -v %srcfile5% %srcfile6%
call :tooltest h5diff_70.txt -v %file5% %file6%
+ rem ##################################################
+ rem attrs with verbose option level
+ rem ##################################################
+ call :testing %h5diff% -v1 %srcfile5% %srcfile6%
+ call :tooltest h5diff_700.txt -v1 %file5% %file6%
+
+ call :testing %h5diff% -v2 %srcfile5% %srcfile6%
+ call :tooltest h5diff_701.txt -v2 %file5% %file6%
+
+ call :testing %h5diff% --verbose=1 %srcfile5% %srcfile6%
+ call :tooltest h5diff_702.txt --verbose=1 %file5% %file6%
+
+ call :testing %h5diff% --verbose=2 %srcfile5% %srcfile6%
+ call :tooltest h5diff_703.txt --verbose=2 %file5% %file6%
+
+ rem same attr number , all same attr name
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g
+ call :tooltest h5diff_704.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g
+
+ rem same attr number , some same attr name
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /dset
+ call :tooltest h5diff_705.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /dset
+
+ rem same attr number , all different attr name
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /ntype
+ call :tooltest h5diff_706.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /ntype
+
+ rem different attr number , same attr name (intersected)
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g2
+ call :tooltest h5diff_707.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g2
+
+ rem different attr number , all different attr name
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g3
+ call :tooltest h5diff_708.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g3
+
+ rem when no attributes exist in both objects
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g4
+ call :tooltest h5diff_709.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g4
+
+ rem file vs file
+ call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2%
+ call :tooltest h5diff_710.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2%
+
+
rem #######################################################################
rem 8. all dataset datatypes
rem #######################################################################