From f4e7559bd2d8bbd59535cbcafab78e162a6bffb6 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 31 Mar 2011 15:39:18 -0500 Subject: [svn-r20383] Description: Bring r19714:20382 from trunk to revise_chunks branch Tested: Linux 2.6/64 (chicago) --- CMakeLists.txt | 172 +- MANIFEST | 18 + c++/examples/CMakeLists.txt | 31 +- c++/test/CMakeLists.txt | 26 +- config/cmake/CTestCustom.cmake | 550 +- config/cmake/HDF5Macros.cmake | 117 +- config/cmake/HDFMacros.cmake | 357 + config/cmake/hdf5-config.cmake.install.in | 1 + config/cmake/runTest.cmake | 48 +- examples/CMakeLists.txt | 70 +- fortran/examples/CMakeLists.txt | 4 +- fortran/test/CMakeLists.txt | 9 +- fortran/test/fortranlib_test.f90 | 6 + fortran/testpar/CMakeLists.txt | 2 +- hl/c++/examples/CMakeLists.txt | 4 +- hl/c++/test/CMakeLists.txt | 4 +- hl/examples/CMakeLists.txt | 2 +- hl/fortran/examples/CMakeLists.txt | 2 +- hl/fortran/src/H5LTf90proto.h | 548 +- hl/fortran/src/H5LTfc.c | 504 + hl/fortran/src/H5LTff.f90 | 9658 +++++++++++++------- hl/fortran/src/H5TBfc.c | 61 +- hl/fortran/src/H5TBff.f90 | 1578 ++-- hl/fortran/test/CMakeLists.txt | 6 +- hl/fortran/test/tstlite.f90 | 1761 ++-- hl/fortran/test/tsttable.f90 | 727 +- hl/test/CMakeLists.txt | 4 +- hl/tools/CMakeLists.txt | 12 +- perform/CMakeLists.txt | 124 +- perform/zip_perf.c | 24 +- release_docs/CMake.txt | 2 +- release_docs/INSTALL_VMS.txt | 4 +- release_docs/RELEASE.txt | 55 +- src/H5F.c | 10 +- src/H5Fmount.c | 2 +- src/H5Fpkg.h | 2 +- src/H5Gloc.c | 2 +- src/H5O.c | 4 +- src/H5public.h | 11 + src/H5system.c | 4 +- src/H5win32defs.h | 4 +- test/CMakeLists.txt | 22 +- test/H5srcdir.h | 13 + test/fheap.c | 2 + test/getname.c | 2 + test/h5test.c | 15 +- test/h5test.h | 5 - test/lheap.c | 5 +- test/stab.c | 4 +- test/tfile.c | 116 + testpar/CMakeLists.txt | 32 +- tools/h5copy/CMakeLists.txt | 126 +- tools/h5copy/h5copy.c | 14 +- tools/h5copy/h5copygentest.c | 13 +- tools/h5copy/testh5copy.sh | 13 +- tools/h5diff/CMakeLists.txt | 112 +- tools/h5diff/h5diff_common.c | 53 +- tools/h5diff/h5diffgentest.c | 300 +- tools/h5diff/testfiles/h5diff_10.txt | 11 +- tools/h5diff/testfiles/h5diff_600.txt | 11 +- tools/h5diff/testfiles/h5diff_603.txt | 11 +- tools/h5diff/testfiles/h5diff_606.txt | 11 +- tools/h5diff/testfiles/h5diff_612.txt | 11 +- tools/h5diff/testfiles/h5diff_615.txt | 11 +- tools/h5diff/testfiles/h5diff_621.txt | 11 +- tools/h5diff/testfiles/h5diff_622.txt | 11 +- tools/h5diff/testfiles/h5diff_623.txt | 11 +- tools/h5diff/testfiles/h5diff_624.txt | 11 +- tools/h5diff/testfiles/h5diff_70.txt | 2360 ++--- tools/h5diff/testfiles/h5diff_700.txt | 2038 +++++ tools/h5diff/testfiles/h5diff_701.txt | 2137 +++++ tools/h5diff/testfiles/h5diff_702.txt | 2038 +++++ tools/h5diff/testfiles/h5diff_703.txt | 2137 +++++ tools/h5diff/testfiles/h5diff_704.txt | 28 + tools/h5diff/testfiles/h5diff_705.txt | 17 + tools/h5diff/testfiles/h5diff_706.txt | 13 + tools/h5diff/testfiles/h5diff_707.txt | 29 + tools/h5diff/testfiles/h5diff_708.txt | 17 + tools/h5diff/testfiles/h5diff_709.txt | 12 + tools/h5diff/testfiles/h5diff_710.txt | 108 + tools/h5diff/testfiles/h5diff_attr_v_level1.h5 | Bin 0 -> 7192 bytes tools/h5diff/testfiles/h5diff_attr_v_level2.h5 | Bin 0 -> 7048 bytes tools/h5diff/testh5diff.sh | 34 + tools/h5dump/CMakeLists.txt | 167 +- tools/h5dump/h5dump.c | 71 +- tools/h5dump/h5dumpgentest.c | 10 +- tools/h5dump/testh5dump.sh.in | 56 +- tools/h5import/CMakeLists.txt | 196 +- tools/h5jam/CMakeLists.txt | 363 +- tools/h5jam/h5jam.c | 13 +- tools/h5jam/h5unjam.c | 11 +- tools/h5ls/CMakeLists.txt | 39 +- tools/h5ls/h5ls.c | 29 +- tools/h5repack/CMakeLists.txt | 149 +- tools/h5stat/CMakeLists.txt | 31 +- tools/lib/h5diff.c | 56 +- tools/lib/h5diff.h | 4 +- tools/lib/h5diff_attr.c | 320 +- tools/lib/h5diff_dset.c | 94 +- tools/lib/h5tools.c | 143 +- tools/lib/h5tools.h | 2 + tools/lib/h5tools_str.c | 17 +- tools/lib/h5tools_utils.c | 7 +- tools/misc/CMakeLists.txt | 125 +- tools/testfiles/filter_fail.ddl | 30 + tools/testfiles/filter_fail.h5 | Bin 0 -> 3528 bytes tools/testfiles/help-1.ls | 11 +- tools/testfiles/help-2.ls | 11 +- tools/testfiles/help-3.ls | 11 +- tools/testfiles/tall-6.ddl | 27 + tools/testfiles/tattrreg.ddl | 2 +- tools/testfiles/tdatareg.ddl | 2 +- tools/testfiles/textlinksrc-nodangle-1.ls | 11 +- tools/testfiles/tgroup-1.ls | 11 +- tools/testfiles/tnofilename.ddl | 2 + tools/testfiles/treference.ddl | 12 +- vms/build.com | 2 +- vms/c++/examples/make.com | 2 +- vms/examples/make.com | 5 +- vms/fortran/examples/make.com | 2 +- vms/make.com | 2 +- vms/src/h5pubconf.h | 6 +- vms/test/H5srcdir_str.h | 22 + windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj | 14 +- windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj | 21 +- .../hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj | 10 - windows/proj/hdf5_hldll/hdf5_hldll.vcproj | 10 - windows/src/H5pubconf.h | 5 + windows/tools/h5copy/testh5copy.bat | 4 +- windows/tools/h5diff/testh5diff.bat | 48 + 130 files changed, 22844 insertions(+), 7797 deletions(-) create mode 100644 config/cmake/HDFMacros.cmake create mode 100644 tools/h5diff/testfiles/h5diff_700.txt create mode 100644 tools/h5diff/testfiles/h5diff_701.txt create mode 100644 tools/h5diff/testfiles/h5diff_702.txt create mode 100644 tools/h5diff/testfiles/h5diff_703.txt create mode 100644 tools/h5diff/testfiles/h5diff_704.txt create mode 100644 tools/h5diff/testfiles/h5diff_705.txt create mode 100644 tools/h5diff/testfiles/h5diff_706.txt create mode 100644 tools/h5diff/testfiles/h5diff_707.txt create mode 100644 tools/h5diff/testfiles/h5diff_708.txt create mode 100644 tools/h5diff/testfiles/h5diff_709.txt create mode 100644 tools/h5diff/testfiles/h5diff_710.txt create mode 100644 tools/h5diff/testfiles/h5diff_attr_v_level1.h5 create mode 100644 tools/h5diff/testfiles/h5diff_attr_v_level2.h5 create mode 100644 tools/testfiles/filter_fail.ddl create mode 100644 tools/testfiles/filter_fail.h5 create mode 100644 tools/testfiles/tall-6.ddl create mode 100644 vms/test/H5srcdir_str.h 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 $) - 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 $) + 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=$" - -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=$" + -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 $) - 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 $) - 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 $) + 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 $) + 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 $) #-- 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 $) #-- 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 $) +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 $) 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 + /* 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 $) #-- 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 $) #-- 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 $) @@ -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 $) - 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 $) 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 $) - #-- 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 $) - #-- 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 $) - #-- 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 $) - #-- 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 $ "-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} $) - 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} $) 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} $) - #-- 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 $) + +IF (HDF5_BUILD_PERFORM_STANDALONE) + ADD_TEST (NAME h5perf_serial_alone COMMAND $) +ENDIF (HDF5_BUILD_PERFORM_STANDALONE) + +ADD_TEST (NAME chunk COMMAND $) + +ADD_TEST (NAME iopipe COMMAND $) + +ADD_TEST (NAME overhead COMMAND $) + +ADD_TEST (NAME perf_meta COMMAND $) + +ADD_TEST (NAME zip_perf_help COMMAND $ "-h") +ADD_TEST (NAME zip_perf COMMAND $ tfilters.h5) + +IF (H5_HAVE_PARALLEL) + ADD_TEST (NAME h5perf COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $) + + IF (HDF5_BUILD_PERFORM_STANDALONE) + ADD_TEST (NAME h5perf_alone COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $) + ENDIF (HDF5_BUILD_PERFORM_STANDALONE) + + ADD_TEST (NAME benchpar COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $) ADD_TEST (NAME mpi-perf COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $) 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 -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef H5_HAVE_UNISTD_H -# include -#endif - /* our header files */ #include "h5test.h" #include "h5tools_utils.h" @@ -43,14 +29,6 @@ #include -#if defined(MSDOS) || defined(OS2) || defined(_WIN32) -# include -# include -# 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; + ::= H5T_REFERENCE { } + ::= 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) @@ -159,7 +159,7 @@ ADD_TEST (NAME testhdf5 COMMAND $) 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 $) @@ -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 $) @@ -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 $) #-- 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 $) @@ -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 $) @@ -346,7 +346,7 @@ ADD_TEST (NAME ttsafe COMMAND $) #-- 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 -# include -#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} $) 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} $ -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=$" - -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=$" + -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 $) @@ -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 $ -f ${ARGN} -i ./testfiles/${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname} + COMMAND $ -f ${ARGN} -i ./testfiles/${infile} -o ./testfiles/${outfile} -${vparam} -s ${srcname} -d ${dstname} ) ELSE (NOT "${ARGN}" STREQUAL "") ADD_TEST ( NAME H5COPY-${testname} - COMMAND $ -i ./testfiles/${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname} + COMMAND $ -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 $ -q ./testfiles/${testfile}.h5 ./testfiles/${testfile}.out.h5 ${srcname} ${dstname} + COMMAND $ -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=$" - -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 $ -Svr ./testfiles/${file}.out.h5) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5COPY-H5LS_${file}-${filetest} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -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=$" - -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 $ -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=$" + -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 $) @@ -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=$" - -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 $ ${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=$" + -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: > and > -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: > and > 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: > and > -size: [2] [2] -position bitfield of bitfield of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -size: [2] [2] -position opaque of opaque of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -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: > and > -size: [2] [2] -position enum of enum of difference ------------------------------------------------------------- -[ 0 ] RED GREEN -[ 1 ] RED GREEN -2 differences found -attribute: > and > -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: > and > -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: > and > -size: [2] [2] -position integer of integer of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -size: [2] [2] -position float of float of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -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: > and > 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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > 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: > and > -size: [4x3x2] [4x3x2] -position bitfield3D of bitfield3D of difference ------------------------------------------------------------- +attribute: > and > +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: > and > +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: > and > +size: [4x3x2] [4x3x2] +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: > and > +[ 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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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: > and > +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: > and > +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: > and > 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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > 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: > and > +attribute: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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: > and > -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: > and > +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: > and > +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: > and > 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: > and > +attribute: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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,94 +510,18 @@ position float3D of float3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -dataset: and -Not comparable: or is an empty dataset -attribute: > and > -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: > and > +attribute: > and > size: [2] [2] -position VLstring of VLstring of difference +position string of string of difference ------------------------------------------------------------ [ 0 ] a z [ 0 ] b z [ 1 ] d z [ 1 ] e z 4 differences found -attribute: > and > -size: [2] [2] -position bitfield of bitfield of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -size: [2] [2] -position opaque of opaque of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -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: > and > -0 differences found -attribute: > and > -size: [2] [2] -position enum of enum of difference ------------------------------------------------------------- -[ 0 ] RED GREEN -[ 1 ] RED GREEN -2 differences found -attribute: > and > -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: > and > -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: > and > -size: [2] [2] -position integer of integer of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -size: [2] [2] -position float of float of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > +attribute: > and > size: [3x2] [3x2] -position string2D of string2D of difference +position string2D of string2D of difference ------------------------------------------------------------ [ 0 0 ] a z [ 0 0 ] b z @@ -778,139 +536,9 @@ position string2D of string2D of difference [ 2 1 ] k z [ 2 1 ] l z 12 differences found -attribute: > and > -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: > and > -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: > and > -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: > and > -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: > and > -0 differences found -attribute: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -size: [4x3x2] [4x3x2] -position string3D of string3D of difference +attribute: > and > +size: [4x3x2] [4x3x2] +position string3D of string3D of difference ------------------------------------------------------------ [ 0 0 0 ] a z [ 0 0 0 ] b z @@ -960,6 +588,122 @@ position string3D of string3D of difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found +attribute: > and > +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: > and > +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: > and > +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: and +Not comparable: or is an empty dataset +attribute: > and > +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: > and > +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: > and > size: [4x3x2] [4x3x2] position VLstring3D of VLstring3D of difference @@ -1012,38 +756,138 @@ position VLstring3D of VLstring3D of difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found -attribute: > and > -size: [4x3x2] [4x3x2] -position bitfield3D of bitfield3D of difference +attribute: > and > +size: [2] [2] +position array of array 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: > and > +[ 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: > and > +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: > and > size: [4x3x2] [4x3x2] -position opaque3D of opaque3D of difference +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +size: [4x3x2] [4x3x2] +position bitfield3D of bitfield3D of difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -1070,6 +914,32 @@ position opaque3D of opaque3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found +attribute: > and > +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: > and > +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: > and > size: [4x3x2] [4x3x2] position compound3D of compound3D of difference @@ -1123,8 +993,24 @@ position compound3D of compound3D of difference [ 3 2 1 ] 47 0 47 [ 3 2 1 ] 48 0 48 48 differences found -attribute: > and > -0 differences found +attribute: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > size: [4x3x2] [4x3x2] position enum3D of enum3D of difference @@ -1154,147 +1040,71 @@ position enum3D of enum3D of difference [ 3 2 0 ] GREEN RED [ 3 2 1 ] GREEN RED 24 differences found -attribute: > and > +attribute: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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: > and > -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: > and > +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: > and > +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: > and > size: [4x3x2] [4x3x2] position integer3D of integer3D of difference @@ -1324,9 +1134,27 @@ position integer3D of integer3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -attribute: > and > +attribute: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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 @@ -1353,93 +1181,24 @@ position float3D of float3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -519 differences found -group : and +attribute: > and > 0 differences found -attribute: > and > -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: > and > +attribute: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > size: [2] [2] -position VLstring of VLstring of difference +position string of string of difference ------------------------------------------------------------ [ 0 ] a z [ 0 ] b z [ 1 ] d z [ 1 ] e z 4 differences found -attribute: > and > -size: [2] [2] -position bitfield of bitfield of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -size: [2] [2] -position opaque of opaque of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -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: > and > -size: [2] [2] -position enum of enum of difference ------------------------------------------------------------- -[ 0 ] RED GREEN -[ 1 ] RED GREEN -2 differences found -attribute: > and > -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: > and > -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: > and > -size: [2] [2] -position integer of integer of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > -size: [2] [2] -position float of float of difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: > and > +attribute: > and > size: [3x2] [3x2] -position string2D of string2D of difference +position string2D of string2D of difference ------------------------------------------------------------ [ 0 0 ] a z [ 0 0 ] b z @@ -1454,137 +1213,9 @@ position string2D of string2D of difference [ 2 1 ] k z [ 2 1 ] l z 12 differences found -attribute: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -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: > and > -size: [4x3x2] [4x3x2] -position string3D of string3D of difference +attribute: > and > +size: [4x3x2] [4x3x2] +position string3D of string3D of difference ------------------------------------------------------------ [ 0 0 0 ] a z [ 0 0 0 ] b z @@ -1634,6 +1265,123 @@ position string3D of string3D of difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found +attribute: > and > +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: > and > +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: > and > +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 +519 differences found +group : and +0 differences found +attribute: > and > +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: > and > +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: > and > size: [4x3x2] [4x3x2] position VLstring3D of VLstring3D of difference @@ -1686,38 +1434,138 @@ position VLstring3D of VLstring3D of difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found -attribute: > and > -size: [4x3x2] [4x3x2] -position bitfield3D of bitfield3D of difference +attribute: > and > +size: [2] [2] +position array of array 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: > and > +[ 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: > and > +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: > and > size: [4x3x2] [4x3x2] -position opaque3D of opaque3D of difference +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +size: [4x3x2] [4x3x2] +position bitfield3D of bitfield3D of difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -1744,6 +1592,32 @@ position opaque3D of opaque3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found +attribute: > and > +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: > and > +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: > and > size: [4x3x2] [4x3x2] position compound3D of compound3D of difference @@ -1797,6 +1671,24 @@ position compound3D of compound3D of difference [ 3 2 1 ] 47 0 47 [ 3 2 1 ] 48 0 48 48 differences found +attribute: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > size: [4x3x2] [4x3x2] position enum3D of enum3D of difference @@ -1826,147 +1718,71 @@ position enum3D of enum3D of difference [ 3 2 0 ] GREEN RED [ 3 2 1 ] GREEN RED 24 differences found -attribute: > and > +attribute: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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: > and > -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: > and > +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: > and > +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: > and > size: [4x3x2] [4x3x2] position integer3D of integer3D of difference @@ -1996,9 +1812,27 @@ position integer3D of integer3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -attribute: > and > +attribute: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > 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 @@ -2025,6 +1859,172 @@ position float3D of float3D of difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 -------------------------------- 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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: and +Not comparable: or is an empty dataset +Attributes status: 33 common, 0 only in obj1, 0 only in obj2 +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +519 differences found + +group : and +0 differences found +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +-------------------------------- +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: and +Not comparable: or 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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +519 differences found + +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +-------------------------------- +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: and +Not comparable: or is an empty dataset +Attributes status: 33 common, 0 only in obj1, 0 only in obj2 +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +519 differences found + +group : and +0 differences found +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +-------------------------------- +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: and +Not comparable: or 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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +0 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +519 differences found + +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position bitfield of bitfield of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +size: [2] [2] +position enum of enum of difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position float of float of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position integer of integer of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +size: [2] [2] +position opaque of opaque of difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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: > and > +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 +-------------------------------- +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 : and +0 differences found + obj1 obj2 + -------------------------------------- + x x float1 + x x integer1 +Attributes status: 2 common, 0 only in obj1, 0 only in obj2 +attribute: > and > +size: [2] [2] +position float1 of float1 of difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: > and > +size: [2] [2] +position integer1 of integer1 of 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: and + obj1 obj2 + -------------------------------------- + x float2 + x float3 + x x integer1 +Attributes status: 1 common, 1 only in obj1, 1 only in obj2 +attribute: > and > +size: [2] [2] +position integer1 of integer1 of 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: and +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 : and +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: > and > +size: [2] [2] +position float2 of float2 of difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: > and > +size: [2] [2] +position integer1 of integer1 of 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 : and +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 : and +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: and + obj1 obj2 + -------------------------------------- + x float2 + x float3 + x x integer1 +Attributes status: 1 common, 1 only in obj1, 1 only in obj2 +attribute: > and > +size: [2] [2] +position integer1 of integer1 of difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found +2 differences found + +group : and +0 differences found + obj1 obj2 + -------------------------------------- + x x float1 + x x integer1 +Attributes status: 2 common, 0 only in obj1, 0 only in obj2 +attribute: > and > +size: [2] [2] +position float1 of float1 of difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: > and > +size: [2] [2] +position integer1 of integer1 of difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found + +group : and +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: > and > +size: [2] [2] +position float2 of float2 of difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: > and > +size: [2] [2] +position integer1 of integer1 of difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found + +group : and +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 : and +0 differences found + obj1 obj2 + -------------------------------------- +Attributes status: 0 common, 0 only in obj1, 0 only in obj2 + +datatype: and +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 Binary files /dev/null and b/tools/h5diff/testfiles/h5diff_attr_v_level1.h5 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 Binary files /dev/null and b/tools/h5diff/testfiles/h5diff_attr_v_level2.h5 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 $) @@ -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=$" - -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 $ ${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=$" + -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=$" + -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=$" - -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 $ --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=$" + -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 \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("\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 $ ${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=$" + -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=$" + -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 $) - SET_TESTS_PROPERTIES (h5importtest PROPERTIES DEPENDS H5IMPORT-clear-objects) + ADD_TEST (NAME H5IMPORT-h5importtest COMMAND $) + 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 $) 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=$" + -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=$" + -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 $ -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 $ -i ${infile} -o ${outfile}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5JAM-UNJAM-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -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 $ -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 $ -u testfiles/${jamfile} -i ${infile} ${ARGN}) + SET (compare_test testfiles/${infile}) + ELSE ("${outfile}" STREQUAL "NONE") + ADD_TEST (NAME H5JAM-${testname} COMMAND $ -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 -#include -#include -#ifdef H5_HAVE_UNISTD_H -#include -#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 -#include -#include -#include - -#ifdef H5_HAVE_UNISTD_H -#include -#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=$" - -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 $ ${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=$" + -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 $) @@ -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 $) @@ -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=$" - -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 $ ${ARGN} testfiles/${resultfile} testfiles/out.${resultfile}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5REPACK-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -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=$" - -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=$" - -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=$" + -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=$" + -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 $) @@ -88,17 +88,22 @@ IF (BUILD_TESTING) ############################################################################## MACRO (ADD_H5_TEST resultfile resultcode) - ADD_TEST ( - NAME H5STAT-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$" - -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 $ ${ARGN}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5STAT-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -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 $) 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 $ ${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=$" + -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 $ ${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=$" + -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=$" - -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=$" - -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 $ ${ARGN}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5MKGRP_CMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -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 $ -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 $ -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 $) - 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 Binary files /dev/null and b/tools/testfiles/filter_fail.h5 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 @@ - - - - - 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 @@ - - - - - - - - + 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 @@ > - - - - 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 @@ > - - - - 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 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 ####################################################################### -- cgit v0.12