diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2015-04-03 21:41:28 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2015-04-03 21:41:28 (GMT) |
commit | 5630846ea34f29b45aecdb431f846327c4fde9e1 (patch) | |
tree | 83e65a0feb757f39472e70d2168048d091cfed50 | |
parent | 820b4dc39136072bccad1455fc0232ec9e710d58 (diff) | |
parent | b9e5e2af4e31b0a60c2d2f6421fb1b3cb9aa0564 (diff) | |
download | hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.zip hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.tar.gz hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.tar.bz2 |
[svn-r26724] - merge from trunk & fix conflicts.
- fix bug in opending an already open named datatype.
- fix dynamically loaded VOL plugin support with new changes coming in.
481 files changed, 35533 insertions, 19963 deletions
diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index 3b9b4f7..7050f87 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -1,21 +1,4 @@ -#----------------------------------------------------------------------------- -# Options for HDF5 Filters -#----------------------------------------------------------------------------- -MACRO (HDF5_SETUP_FILTERS FILTER) - option (HDF5_USE_FILTER_${FILTER} "Use the ${FILTER} Filter" ON) - if (HDF5_USE_FILTER_${FILTER}) - set (H5_HAVE_FILTER_${FILTER} 1) - set (FILTERS "${FILTERS} ${FILTER}") - endif (HDF5_USE_FILTER_${FILTER}) - # message (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}") -ENDMACRO (HDF5_SETUP_FILTERS) - -HDF5_SETUP_FILTERS (SHUFFLE) -HDF5_SETUP_FILTERS (FLETCHER32) -HDF5_SETUP_FILTERS (NBIT) -HDF5_SETUP_FILTERS (SCALEOFFSET) - include (ExternalProject) #option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO SVN TGZ)" "NO") set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)") @@ -24,8 +7,8 @@ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MAT option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 1) option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 1) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN") - set (ZLIB_URL ${ZLIB_SVN_URL}) - set (SZIP_URL ${SZIP_SVN_URL}) + set (ZLIB_URL ${ZLIB_SVN_URL} CACHE STRING "Path to zlib Subversion repository") + set (SZIP_URL ${SZIP_SVN_URL} CACHE STRING "Path to szip Subversion repository") elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") if (NOT TGZPATH) set (TGZPATH ${HDF5_SOURCE_DIR}) @@ -48,6 +31,9 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT) find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT}) if (NOT ZLIB_FOUND) find_package (ZLIB) # Legacy find + if (ZLIB_FOUND) + set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES}) + endif (ZLIB_FOUND) endif (NOT ZLIB_FOUND) endif (NOT ZLIB_USE_EXTERNAL) if (ZLIB_FOUND) @@ -56,7 +42,7 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT) set (H5_HAVE_LIBZ 1) set (H5_ZLIB_HEADER "zlib.h") set (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR}) - set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR}) + set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) else (ZLIB_FOUND) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) @@ -92,6 +78,9 @@ if (HDF5_ENABLE_SZIP_SUPPORT) find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT}) if (NOT SZIP_FOUND) find_package (SZIP) # Legacy find + if (SZIP_FOUND) + set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES}) + endif (SZIP_FOUND) endif (NOT SZIP_FOUND) endif (NOT SZIP_USE_EXTERNAL) if (SZIP_FOUND) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 04baa2e..0380adc 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -1,4 +1,4 @@ -include (${HDF_RESOURCES_DIR}/CMakePackageConfigHelpers.cmake) +include (CMakePackageConfigHelpers) #----------------------------------------------------------------------------- # Check for Installation Utilities @@ -80,10 +80,10 @@ configure_package_config_file ( if (NOT HDF5_EXTERNALLY_CONFIGURED) configure_file ( ${HDF_RESOURCES_DIR}/FindHDF5.cmake.in - ${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY + ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY ) install ( - FILES ${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake + FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindHDF5${HDF_PACKAGE_EXT}.cmake DESTINATION ${HDF5_INSTALL_CMAKE_DIR} COMPONENT configinstall ) @@ -97,14 +97,14 @@ set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${HDF5_INSTALL_CMAKE_DIR}" ) set (CURRENT_BUILD_DIR "${CMAKE_INSTALL_PREFIX}" ) configure_package_config_file ( ${HDF_RESOURCES_DIR}/hdf5-config.cmake.in - "${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake" + "${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake" INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}" PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR ) if (NOT HDF5_EXTERNALLY_CONFIGURED) install ( - FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake + FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake DESTINATION ${HDF5_INSTALL_CMAKE_DIR} COMPONENT configinstall ) @@ -116,10 +116,10 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED) if (NOT HDF5_EXTERNALLY_CONFIGURED) configure_file ( ${HDF_RESOURCES_DIR}/hdf5-config-version.cmake.in - ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY + ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY ) install ( - FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake + FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake DESTINATION ${HDF5_INSTALL_CMAKE_DIR} COMPONENT configinstall ) @@ -176,9 +176,17 @@ if (HDF5_PACK_EXAMPLES) COMPONENT hdfdocuments ) if (EXISTS "${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}") + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xzf ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED} + ) + install ( + DIRECTORY ${HDF5_BINARY_DIR}/HDF5Examples-0.1.1-Source + DESTINATION ${HDF5_INSTALL_DATA_DIR} + USE_SOURCE_PERMISSIONS + COMPONENT hdfdocuments + ) install ( FILES - ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED} ${HDF5_SOURCE_DIR}/release_docs/USING_CMake_Examples.txt DESTINATION ${HDF5_INSTALL_DATA_DIR} COMPONENT hdfdocuments @@ -317,7 +325,6 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.bmp") set (CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_PACKAGE_NAME}") set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAME}\\\\${CPACK_PACKAGE_VERSION}") - set (CPACK_MONOLITHIC_INSTALL ON) set (CPACK_NSIS_CONTACT "${HDF5_PACKAGE_BUGREPORT}") set (CPACK_NSIS_MODIFY_PATH ON) @@ -361,12 +368,19 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) # # This image must be 493 by 312 pixels. # + set(CPACK_WIX_PROPERTY_ARPCOMMENTS "HDF5 (Hierarchical Data Format 5) Software Library and Utilities") + set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "${HDF5_PACKAGE_URL}") + set(CPACK_WIX_PROPERTY_ARPHELPLINK "${HDF5_PACKAGE_BUGREPORT}") + if (BUILD_SHARED_LIBS) + set(CPACK_WIX_PATCH_FILE "${HDF_RESOURCES_DIR}/patch.xml") + endif (BUILD_SHARED_LIBS) elseif (APPLE) list (APPEND CPACK_GENERATOR "DragNDrop") set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON) set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}") set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns") + option (HDF5_PACK_MACOSX_BUNDLE "Package the HDF5 Library in a Bundle" OFF) if (HDF5_PACK_MACOSX_BUNDLE) list (APPEND CPACK_GENERATOR "Bundle") set (CPACK_BUNDLE_NAME "${HDF5_PACKAGE_STRING}") @@ -375,7 +389,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) set (CPACK_BUNDLE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns") set (CPACK_BUNDLE_PLIST "${HDF5_BINARY_DIR}/CMakeFiles/Info.plist") set (CPACK_APPLE_GUI_INFO_STRING "HDF5 (Hierarchical Data Format 5) Software Library and Utilities") - set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2014 by The HDF Group. All rights reserved.") + set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2015 by The HDF Group. All rights reserved.") set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}") set (CPACK_APPLE_GUI_BUNDLE_NAME "${HDF5_PACKAGE_STRING}") set (CPACK_APPLE_GUI_VERSION_STRING "${CPACK_PACKAGE_VERSION_STRING}") @@ -452,45 +466,60 @@ The HDF5 data model, file format, API, library, and tools are open and distribut if (HDF5_PACKAGE_EXTLIBS) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;ALL;/") endif (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) if (SZIP_FOUND AND SZIP_USE_EXTERNAL) - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;ALL;/") endif (SZIP_FOUND AND SZIP_USE_EXTERNAL) endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") endif (HDF5_PACKAGE_EXTLIBS) include (CPack) + cpack_add_install_type(Full DISPLAY_NAME "Everything") + cpack_add_install_type(Developer) + + cpack_add_component_group(Runtime) + + cpack_add_component_group(Documents + EXPANDED + DESCRIPTION "Release notes for developing HDF5 applications" + ) + + cpack_add_component_group(Development + EXPANDED + DESCRIPTION "All of the tools you'll need to develop HDF5 applications" + ) + + cpack_add_component_group(Applications + EXPANDED + DESCRIPTION "Tools for HDF5 files" + ) + #--------------------------------------------------------------------------- # Now list the cpack commands #--------------------------------------------------------------------------- - CPACK_ADD_COMPONENT (hdfapplications - DISPLAY_NAME "HDF5 Applications" - DEPENDS libraries - GROUP Applications - ) CPACK_ADD_COMPONENT (libraries DISPLAY_NAME "HDF5 Libraries" GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (headers DISPLAY_NAME "HDF5 Headers" DEPENDS libraries GROUP Development + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (hdfdocuments DISPLAY_NAME "HDF5 Documents" GROUP Documents + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (configinstall DISPLAY_NAME "HDF5 CMake files" DEPENDS libraries GROUP Development + INSTALL_TYPES Full Developer User ) if (HDF5_BUILD_FORTRAN) @@ -498,11 +527,13 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 Fortran Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (fortheaders DISPLAY_NAME "HDF5 Fortran Headers" DEPENDS fortlibraries GROUP Development + INSTALL_TYPES Full Developer ) endif (HDF5_BUILD_FORTRAN) @@ -511,11 +542,13 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 C++ Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (cppheaders DISPLAY_NAME "HDF5 C++ Headers" DEPENDS cpplibraries GROUP Development + INSTALL_TYPES Full Developer ) endif (HDF5_BUILD_CPP_LIB) @@ -524,16 +557,19 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 Tools Applications" DEPENDS toolslibraries GROUP Applications + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (toolslibraries DISPLAY_NAME "HDF5 Tools Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (toolsheaders DISPLAY_NAME "HDF5 Tools Headers" DEPENDS toolslibraries GROUP Development + INSTALL_TYPES Full Developer ) endif (HDF5_BUILD_TOOLS) @@ -542,31 +578,37 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 HL Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (hlheaders DISPLAY_NAME "HDF5 HL Headers" DEPENDS hllibraries GROUP Development + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (hltoolsapplications DISPLAY_NAME "HDF5 HL Tools Applications" DEPENDS hllibraries GROUP Applications + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (hlcpplibraries DISPLAY_NAME "HDF5 HL C++ Libraries" DEPENDS hllibraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (hlcppheaders DISPLAY_NAME "HDF5 HL C++ Headers" DEPENDS hlcpplibraries GROUP Development + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (hlfortlibraries DISPLAY_NAME "HDF5 HL Fortran Libraries" DEPENDS fortlibraries GROUP Runtime + INSTALL_TYPES Full Developer User ) endif (HDF5_BUILD_HL_LIB) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c16d56..a6994ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5 C CXX) #----------------------------------------------------------------------------- @@ -283,8 +283,8 @@ if (BUILD_SHARED_LIBS) else (BUILD_SHARED_LIBS) set (H5_BUILT_AS_STATIC_LIB 1) set (H5_ENABLE_STATIC_LIB YES) - set (CMAKE_POSITION_INDEPENDENT_CODE ON) endif (BUILD_SHARED_LIBS) +set (CMAKE_POSITION_INDEPENDENT_CODE ON) #----------------------------------------------------------------------------- # Option to Build Static executables @@ -369,10 +369,11 @@ endif (MAKE_SYSTEM) #----------------------------------------------------------------------------- # Add some definitions for Debug Builds #----------------------------------------------------------------------------- +option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF) +mark_as_advanced (HDF5_ENABLE_TRACE) if (CMAKE_BUILD_TYPE MATCHES Debug) add_definitions (-DDEBUG) # Enable tracing of the API - option (HDF5_ENABLE_TRACE "Enable API tracing capability" ON) if (HDF5_ENABLE_TRACE) add_definitions (-DH5_DEBUG_API ) endif (HDF5_ENABLE_TRACE) @@ -381,14 +382,13 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) if (HDF5_ENABLE_INSTRUMENT) set (H5_HAVE_INSTRUMENTED_LIBRARY 1) endif (HDF5_ENABLE_INSTRUMENT) - mark_as_advanced (HDF5_Enable_Instrument) + mark_as_advanced (HDF5_ENABLE_INSTRUMENT) #-- NMake Makefiles will overwhelm the console with warnings if -Wall is used. if (NOT WIN32) add_definitions (-Wall) endif (NOT WIN32) else (CMAKE_BUILD_TYPE MATCHES Debug) add_definitions (-DNDEBUG) - option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF) if (HDF5_ENABLE_TRACE) add_definitions (-DH5_DEBUG_API ) endif (HDF5_ENABLE_TRACE) @@ -685,6 +685,9 @@ endif (HDF5_USE_18_API_DEFAULT) #----------------------------------------------------------------------------- include (UserMacros.cmake) +#----------------------------------------------------------------------------- +# Include filter (zlib, szip, etc.) macros +#----------------------------------------------------------------------------- include (CMakeFilters.cmake) #----------------------------------------------------------------------------- @@ -792,6 +795,27 @@ if (BUILD_TESTING) endif (BUILD_TESTING) #----------------------------------------------------------------------------- +# Option to build examples +#----------------------------------------------------------------------------- +if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") + option (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON) + if (HDF5_BUILD_EXAMPLES) + add_subdirectory (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples) + endif (HDF5_BUILD_EXAMPLES) +endif (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") + +#----------------------------------------------------------------------------- +# Option to build High Level API's +#----------------------------------------------------------------------------- +if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") + option (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON) + if (HDF5_BUILD_HL_LIB) + set (H5_INCLUDE_HL 1) + add_subdirectory (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl) + endif (HDF5_BUILD_HL_LIB) +endif (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") + +#----------------------------------------------------------------------------- # Option to build Fortran bindings/tests/examples # Make sure this appears before the CONFIGURE_FILE step # so that fortran name mangling is detected before writing H5pubconf.h @@ -829,20 +853,10 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for endif (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran") #----------------------------------------------------------------------------- -# Option to build examples -#----------------------------------------------------------------------------- -if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") - option (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" OFF) - if (HDF5_BUILD_EXAMPLES) - add_subdirectory (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples) - endif (HDF5_BUILD_EXAMPLES) -endif (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") - -#----------------------------------------------------------------------------- # Option to build HDF5 C++ Library #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") - option (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF) + option (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" ON) if (HDF5_BUILD_CPP_LIB) # check for unsupported options if (HDF5_ENABLE_PARALLEL) @@ -852,6 +866,12 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") set (H5_NO_STD 1) endif (CMAKE_NO_STD_NAMESPACE) add_subdirectory (${HDF5_SOURCE_DIR}/c++ ${PROJECT_BINARY_DIR}/c++) + if (HDF5_BUILD_HL_LIB) + if (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++") + #-- Build the High Level Fortran source codes + add_subdirectory (${HDF5_SOURCE_DIR}/hl/c++ ${PROJECT_BINARY_DIR}/hl/c++) + endif (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++") + endif (HDF5_BUILD_HL_LIB) endif (HDF5_BUILD_CPP_LIB) endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") @@ -859,24 +879,13 @@ endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++" # Option to build HDF5 Tools #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") - option (HDF5_BUILD_TOOLS "Build HDF5 Tools" OFF) + option (HDF5_BUILD_TOOLS "Build HDF5 Tools" ON) if (HDF5_BUILD_TOOLS) add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools) endif (HDF5_BUILD_TOOLS) endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") #----------------------------------------------------------------------------- -# Option to build High Level API's -#----------------------------------------------------------------------------- -if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") - option (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" OFF) - if (HDF5_BUILD_HL_LIB) - set (H5_INCLUDE_HL 1) - add_subdirectory (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl) - endif (HDF5_BUILD_HL_LIB) -endif (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") - -#----------------------------------------------------------------------------- # Check if Fortran's default real is double precision. If it is and HL is # being built then configure should fail due to bug HDFFV-889. #----------------------------------------------------------------------------- @@ -4,7 +4,7 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities ----------------------------------------------------------------------------- HDF5 (Hierarchical Data Format 5) Software Library and Utilities -Copyright 2006-2014 by The HDF Group. +Copyright 2006-2015 by The HDF Group. NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities Copyright 1998-2006 by the Board of Trustees of the University of Illinois. @@ -33,6 +33,8 @@ ./m4/ltversion.m4 _DO_NOT_DISTRIBUTE_ ./m4/lt~obsolete.m4 _DO_NOT_DISTRIBUTE_ ./m4/ltoptions.m4 _DO_NOT_DISTRIBUTE_ +./m4/aclocal_cxx.m4 +./m4/aclocal_fc.m4 ./README.txt ./aclocal.m4 ./acsite.m4 @@ -86,37 +88,31 @@ ./config/COPYING ./config/BlankForm ./config/apple +./config/cce-fflags +./config/cce-flags ./config/commence.am ./config/conclude.am -./config/craynv -./config/dec-flags ./config/examples.am ./config/freebsd ./config/gnu-fflags ./config/gnu-flags -./config/hpux11.23 ./config/i386-pc-cygwin32 ./config/i686-pc-cygwin -./config/ia64-linux-gnu ./config/ibm-aix ./config/ibm-flags ./config/intel-fflags ./config/intel-flags -./config/irix6.x ./config/linux-gnu ./config/linux-gnuaout ./config/linux-gnulibc1 ./config/linux-gnulibc2 ./config/lt_vers.am -./config/nec-superux14.1 ./config/Makefile.am.blank ./config/pgi-fflags ./config/pgi-flags ./config/powerpc-ibm-aix5.x ./config/solaris2.x -./config/sv1-cray ./config/x86_64-pc-cygwin -./config/x86_64-redstorm-linux-gnu ./config/site-specific/BlankForm @@ -847,6 +843,7 @@ ./src/H5Ptest.c ./src/H5PL.c ./src/H5PLprivate.h +./src/H5PLpublic.h ./src/H5PLextern.h ./src/H5R.c ./src/H5Rdeprec.c @@ -1157,6 +1154,8 @@ ./testpar/t_pflush2.c ./testpar/t_prop.c ./testpar/t_shapesame.c +./testpar/t_pshutdown.c +./testpar/t_prestart.c ./testpar/t_span_tree.c ./testpar/testpar.h ./testpar/testphdf5.c @@ -1372,6 +1371,7 @@ ./tools/h5stat/testfiles/h5stat_tsohm.h5 # h5dump test files +./tools/testfiles/README ./tools/testfiles/charsets.h5 ./tools/testfiles/charsets.ddl ./tools/testfiles/family_file00000.h5 @@ -1482,6 +1482,8 @@ ./tools/testfiles/tcompound.h5 ./tools/testfiles/tcompound2.h5 ./tools/testfiles/tcompound_complex.h5 +./tools/testfiles/tcompound_enum.ddl +./tools/testfiles/tcompound_enum.h5 ./tools/testfiles/tdatareg.h5 ./tools/testfiles/tdatareg.ddl ./tools/testfiles/tdataregR.ddl @@ -2347,6 +2349,8 @@ ./hl/tools/gif2h5/writehdf.c ./hl/tools/gif2h5/h52gifgentst.c ./hl/tools/gif2h5/h52giftest.sh.in +./hl/tools/gif2h5/testfiles/REAMDE +./hl/tools/gif2h5/testfiles/ex_image2.h5 ./hl/tools/gif2h5/testfiles/image1.gif ./hl/tools/gif2h5/testfiles/h52giftst.h5 @@ -2396,58 +2400,8 @@ ./hl/c++/test/Makefile.am ./hl/c++/test/Makefile.in -#vms files -./vms/COPYING - -./vms/c++/examples/check.com -./vms/c++/examples/make.com -./vms/c++/src/make.com -./vms/c++/test/check.com -./vms/c++/test/make.com - -./vms/fortran/examples/check.com -./vms/fortran/examples/make.com -./vms/fortran/src/make.com -./vms/fortran/test/check.com -./vms/fortran/test/make.com - -./vms/examples/check.com -./vms/examples/make.com -./vms/src/make.com -./vms/src/h5pubconf.h -./vms/test/check.com -./vms/test/make.com -./vms/test/H5srcdir_str.h - -./vms/build.com -./vms/install.com -./vms/make.com -./vms/tools/h5copy/make.com -./vms/tools/h5copy/check_h5copy.com -./vms/tools/h5dump/make.com -./vms/tools/h5dump/check_h5dump.com -./vms/tools/h5ls/check.com -./vms/tools/h5ls/check_h5ls.com -./vms/tools/h5ls/make.com -./vms/tools/h5diff/check_h5diff.com -./vms/tools/h5diff/make.com -./vms/tools/h5import/check_h5import.com -./vms/tools/h5import/make.com -./vms/tools/h5jam/check_h5jam.com -./vms/tools/h5jam/make.com -./vms/tools/h5repack/check_h5repack.com -./vms/tools/h5repack/make.com -./vms/tools/h5stat/make.com -./vms/tools/lib/make.com -./vms/tools/misc/make.com -./vms/tools/testfiles/tattr-3.ddl -./vms/tools/testfiles/tdset-2.ddl -./vms/tools/testfiles/tgroup-2.ddl -./vms/tools/testfiles/tperror.ddl - # CMake-specific Files ./config/cmake/cacheinit.cmake -./config/cmake/CMakePackageConfigHelpers.cmake ./config/cmake/ConversionTests.c ./config/cmake/ConfigureChecks.cmake ./config/cmake/CTestCustom.cmake @@ -2459,6 +2413,7 @@ ./config/cmake/HDF5Macros.cmake ./config/cmake/libhdf5.settings.cmake.in ./config/cmake/mccacheinit.cmake +./config/cmake/patch.xml ./config/cmake/PkgInfo.in ./config/cmake/README.txt.cmake.in ./config/cmake/userblockTest.cmake diff --git a/Makefile.am b/Makefile.am index 0bef022..c34f2cd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -87,7 +87,7 @@ CHECK_CLEANFILES+=*-tmp test _test: check lib progs check-p check-s: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -95,7 +95,7 @@ lib progs check-p check-s: # Make all, tests, and (un)install tests: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -103,7 +103,7 @@ tests: # Check-clean also recurses into examples directory check-clean: - @@SETX@; for d in $(SUBDIRS) examples; do \ + for d in $(SUBDIRS) examples; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -130,7 +130,7 @@ uninstall-all: # Install examples in this directory and recursively install-examples uninstall-examples: - @@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do \ + for d in examples $(HDF5_INTERFACES) $(HL); do \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ done @@ -177,7 +177,7 @@ trace: # Run tests with different Virtual File Drivers. # Currently, only invoke check-vfd in the test directory. check-vfd: - @@SETX@; for d in src test; do \ + for d in src test; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ diff --git a/Makefile.in b/Makefile.in index 37091cd..edee230 100644 --- a/Makefile.in +++ b/Makefile.in @@ -121,7 +121,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am $(srcdir)/Makefile.in \ $(top_srcdir)/bin/missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -244,7 +245,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -276,7 +276,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -295,17 +294,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -368,7 +364,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -383,10 +378,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -500,10 +491,10 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Some files/directories generated during check that should be cleaned -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *-tmp +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *-tmp @BUILD_PARALLEL_CONDITIONAL_FALSE@TESTPARALLEL_DIR = # Define subdirectories to build. @@ -1010,7 +1001,7 @@ help: test _test: check lib progs check-p check-s: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1018,7 +1009,7 @@ lib progs check-p check-s: # Make all, tests, and (un)install tests: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1026,7 +1017,7 @@ tests: # Check-clean also recurses into examples directory check-clean: - @@SETX@; for d in $(SUBDIRS) examples; do \ + for d in $(SUBDIRS) examples; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1053,7 +1044,7 @@ uninstall-all: # Install examples in this directory and recursively install-examples uninstall-examples: - @@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do \ + for d in examples $(HDF5_INTERFACES) $(HL); do \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ done @@ -1100,7 +1091,7 @@ trace: # Run tests with different Virtual File Drivers. # Currently, only invoke check-vfd in the test directory. check-vfd: - @@SETX@; for d in src test; do \ + for d in src test; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1,4 +1,4 @@ -HDF5 version 1.9.215 currently under development +HDF5 version 1.9.216 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ @@ -1183,6 +1183,8 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([m4/aclocal_cxx.m4]) +m4_include([m4/aclocal_fc.m4]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, diff --git a/bin/buildhdf5 b/bin/buildhdf5 index 8ed4696..3a4b0d3 100755 --- a/bin/buildhdf5 +++ b/bin/buildhdf5 @@ -159,19 +159,6 @@ LOCATE_SZLIB() HP-UX) szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/HPUX-11.00" ;; - IRIX) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit" - ;; - IRIX64) - case "$CC" in - *-n32) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit" - ;; - *) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5" - ;; - esac - ;; Linux) case `uname -m` in i686) diff --git a/bin/chkmanifest b/bin/chkmanifest index 70c38a9..646f815 100755 --- a/bin/chkmanifest +++ b/bin/chkmanifest @@ -20,75 +20,17 @@ verbose=yes MANIFEST=/tmp/HD_MANIFEST.$$ -SVNENTRY=/tmp/HD_SVNENTRY.$$ - -# function definitions - -GETSVNENTRIES_13 () -# Purpose: Extract filenames from the svn v1.3.* entries file -# $1: directory name in which the svn entries is. -# steps: -# 1. remove all single line entries so that step 2 does not fail on them. -# 2. merge all multiple lines entries into single lines. -# 3. remove all non file entries. -# 4. insert a blank line because some entries files has no kind="file" -# entry and ed does not like to do g on an empty file. -# 5. remove everything except the file name. -# 6. remove all blank lines, including the inserted one. -{ -cp $1/entries $SVNENTRY -chmod u+w $SVNENTRY # entries file is not writable. -ed - $SVNENTRY <<EOF -g/^<.*>$/d -g/^</.,/>$/j -v/kind="file"/d -a - -. -g/.*name="/s/// -g/".*/s/// -g/^$/d -w -q -EOF -cat $SVNENTRY -rm $SVNENTRY -} - -GETSVNENTRIES_14 () -# Purpose: Extract filenames from the svn v1.4.* entries file -# $1: directory name in which the svn entries is. -# steps: -# 1. all valid files are followed by a line containing "file" only. -# 2. find them by looking for "file" first, then mark its preceding line as -# wanted. -# 3. remove all non-marked line. -# 4. insert a blank line because some entries files has no kind="file" -# entry and ed does not like to do g on an empty file. -# 5. remove the marks. -{ -cp $1/entries $SVNENTRY -chmod u+w $SVNENTRY # entries file is not writable. -ed - $SVNENTRY <<EOF -g/^file$/-s/^/%WANTED%/ -v/%WANTED%/d -a - -. -g/^%WANTED%/s/// -w -q -EOF -cat $SVNENTRY -rm $SVNENTRY -} - # Main test "$verbose" && echo " Checking MANIFEST..." 1>&2 # clean up $MANIFEST file when exits trap "rm -f $MANIFEST" 0 +# Only split lines on newline, not whitespace +set -f +IFS=' +' + # First make sure i am in the directory in which there is an MANIFEST file # and then do the checking from there. Will try the following, # current directory, parent directory, the directory this command resides. @@ -132,36 +74,55 @@ for file in `cat $MANIFEST`; do fi done +# Get the list of files under version control and check that they are +# present. +# +# First get a list of all the pending files with svn stat and +# check those. +svn_stat=`svn stat -q` +for file in $svn_stat; do + + # Newly added files are not listed by svn ls, which + # we check later. + + # The line listing new files starts with 'A'. + letter=`echo $file | head -c 1` + if [ "$letter" = "A" ]; then + # Convert the seven Subversion status columns to './' so it matches + # the manifest file name. + # + # There is a space between the status columns and file name, hence + # the '8' instead of '7'. + path=`echo $file | sed 's/^.\{8\}/\.\//g'` + # Ignore directories + if [ ! -d $path ]; then + if (grep ^$path$ $MANIFEST >/dev/null); then + : + else + echo "- $path" + fail=yes + fi + fi + fi +done -# Inspect the .svn/entries to figure out what version of svn file entry is -# used. -# The following algorithm is formed via reverse engineering. -# I don't know what the official svn format is if such a specification exists. -# Algorithm: -# If the first line of the file has 'xml version="1.0"' in it, it is created -# by svn 1.3 or older; else if it has '^file$' in it, it is created by svn 1.4. -svn_entry_file=.svn/entries -if head -1 $svn_entry_file | grep 'xml version="1.0"' > /dev/null 2>&1;then - getsvnentries=GETSVNENTRIES_13 -elif grep '^file$' $svn_entry_file > /dev/null 2>&1; then - getsvnentries=GETSVNENTRIES_14 -else - echo "Unknown svn entries format. Aborted" - exit 1 -fi - -for svn in `find . -type d -name .svn -print`; do - path=`echo $svn |sed 's/\/.svn//'` - for file in `$getsvnentries $svn`; do - if (grep ^$path/$file$ $MANIFEST >/dev/null); then - : - else - echo "+ $path/$file" - fail=yes - fi - done +# Next check svn ls, which gets a list of all files that are +# checked in. +svn_ls=`svn ls -R` +for file in $svn_ls; do + path="./${file}" + # Ignore directories + if [ ! -d $path ]; then + if (grep ^$path$ $MANIFEST >/dev/null); then + : + else + echo "+ $path" + fail=yes + fi + fi done +# Finish up if [ "X$fail" = "Xyes" ]; then cat 1>&2 <<EOF The MANIFEST is out of date. Files marked with a minus sign (-) no diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index ec6357f..1f0fb7c 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -45,9 +45,12 @@ fi cacheinit=$srcdir/config/cmake/cacheinit.cmake build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF # C++ interface default off build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF # Fortran interface default off +enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF # Fortran2003 interface default off build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON # High Level interface default on build_testing=-DBUILD_TESTING:BOOL=ON # Build tests default on build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON # Build tools default on +with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT=ON # enable zlib filter default on +with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF # enables zlib filter default off #============= @@ -71,6 +74,8 @@ Usage: $progname [<options>] where options are: --enable-fortran | --disable-fortran: enable or disable fortran API. Default is off. + --enable-fortran2003 | --disable-fortran2003: + enable or disable fortran2003 API. Default is off. --enable-cxx | --disable-cxx: enable or disable c++ API. Default is off. --enable-hl | --disable-hl: @@ -79,6 +84,12 @@ Usage: $progname [<options>] enable or disable building tools. Default is on. --enable-testing | --disable-testing: enable or disable building tests. Default is on. + --with-zlib=INC,LIB | --without-zlib: + Use zlib library for external deflate I/O filter. Default is on. + INC and LIB are the include and lib directories. + --with-szlib=INC,LIB| --without-szlib: + Use szip library for external szip library I/O filter. Default is off. + INC and LIB are the include and lib directories. --help: shows details help page EOF } @@ -106,7 +117,7 @@ STEP() (TIMESTAMP; nerror=0 ; echo "eval $command" eval $command || nerror=1 ; - TIMESTAMP; exit $nerror) < /dev/null >> "$logfile" 2>&1 + TIMESTAMP; exit $nerror) < /dev/null > "$logfile" 2>&1 if [ $? -ne 0 ]; then echo "error in '$banner'. $progname aborted." exit 1 @@ -137,6 +148,12 @@ while [ $# -gt 0 ]; do --disable-fortran) build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF ;; + --enable-fortran2003) + enable_f2003=-DHDF5_ENABLE_F2003:BOOL=ON + ;; + --disable-fortran2003) + enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF + ;; --enable-cxx) build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON ;; @@ -167,8 +184,9 @@ while [ $# -gt 0 ]; do exit 0 ;; *) - echo "Unknown options" + echo "Unknown options: $1" HELP + exit 1 ;; esac shift @@ -198,11 +216,15 @@ echo Running Cmake for HDF5-${version} ... # 4. Configure the C library, tools and tests with this command: STEP "Configure..." "cmake \ + -C $cacheinit \ $build_cpp_lib \ $build_fortran \ + $enable_f2003 \ $build_hl_lib \ $build_testing \ $build_tools \ + $with_zlib \ + $with_szlib \ $srcdir" $configlog # 5. Build the C library, tools and tests with this command: @@ -279,7 +301,7 @@ EOF #========== #========== cat > $cfgfile <<'EOF' -cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR) +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) ######################################################## # This dashboard is maintained by The HDF Group # For any comments please contact cdashhelp@hdfgroup.org diff --git a/bin/genltanalyze b/bin/genltanalyze index 0b1b1e5..1f56cc1 100755 --- a/bin/genltanalyze +++ b/bin/genltanalyze @@ -60,6 +60,37 @@ flex --nounistd -PH5LTyy -oH5LTanalyze.c H5LTanalyze.l # H5LTparse.c. perl -0777 -pi -e 's/int\nyyparse/hid_t\nyyparse/igs' H5LTparse.c perl -0777 -pi -e 's/int H5LTyyparse/hid_t H5LTyyparse/igs' H5LTparse.c + +# Add code that disables warnings in the flex/bison-generated code. +# +# Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions +# will simply ignore them, but we want to avoid those warnings. +for f in H5LTparse.c H5LTanalyze.c +do + echo '#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2 ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wconversion" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wimplicit-function-declaration" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wlarger-than=" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wmissing-prototypes" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wnested-externs" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wold-style-definition" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wsign-compare" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wsign-conversion" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wstrict-prototypes" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wswitch-default" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wunused-function" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wunused-macros" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wunused-parameter" ' >> tmp.out + echo '#elif defined __SUNPRO_CC ' >> tmp.out + echo '#pragma disable_warn ' >> tmp.out + echo '#elif defined _MSC_VER ' >> tmp.out + echo '#pragma warning(push, 1) ' >> tmp.out + echo '#endif ' >> tmp.out + + cat $f >> tmp.out + mv tmp.out $f +done + cd ../.. exit 0 @@ -159,10 +159,10 @@ while ($_ = shift) { die "mutually exclusive options given\n" if $set && $inc; # Determine file to use as H5public.h, README.txt, -# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h, -# vms/src/h5pubconf.h and config/lt_vers.am. +# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h +# and config/lt_vers.am. # The README.txt, release_docs/RELEASE.txt, configure.ac, -# vms/src/h5pubconf.h, windows/src/H5pubconf.h, and config/lt_vers.am +# windows/src/H5pubconf.h, and config/lt_vers.am # files are always in the directory above H5public.h unless ($file) { for (@files) { @@ -187,10 +187,6 @@ die "unable to read file: $RELEASE\n" unless -r $file; my $CONFIGURE = $file; $CONFIGURE =~ s/[^\/]*$/..\/configure.ac/; die "unable to read file: $CONFIGURE\n" unless -r $file; -# vms/src/h5pubconf.h -my $H5VMSPUBCONF = $file; -$H5VMSPUBCONF =~ s/[^\/]*$/..\/vms\/src\/h5pubconf.h/; -die "unable to read file: $H5VMSPUBCONF\n" unless -r $file; # Get the current version number. open FILE, $file or die "unable to open $file: $!\n"; @@ -238,7 +234,6 @@ if ($set) { $README = ""; $RELEASE = ""; $CONFIGURE = ""; - $H5VMSPUBCONF = ""; $LT_VERS = ""; @newver = @curver; } @@ -387,9 +382,6 @@ sub gen_h5pubconf { close FILE; } -# Update the VMS-maintained h5pubconf.h file -gen_h5pubconf("HDF5", $H5VMSPUBCONF, @newver) if $H5VMSPUBCONF; - # Print the new version number if ($verbose) { printf("version %d.%d release %d%s\n", @newver[0,1,2], diff --git a/bin/locate_sw b/bin/locate_sw index 2f2b544..c9a7924 100755 --- a/bin/locate_sw +++ b/bin/locate_sw @@ -67,33 +67,6 @@ case "$OSname" in ;; esac ;; - IRIX) - swpaths="/afs/ncsa/packages/hdf/IRIX_6.5" - ;; - IRIX64) - case "$CC" in - cc|"") #default cc - abi=`cc -show_defaults 2>&1 | grep 'default abi'` - case $abi in - *-n32) - swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" - ;; - *-64) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - *) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - esac # $abi - ;; - *-n32) - swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" - ;; - *) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - esac - ;; Linux) swpaths="/afs/ncsa/packages/hdf/Linux" ;; @@ -150,36 +123,6 @@ case "$OSname" in ;; esac ;; - IRIX) - swpaths="/afs/ncsa/packages/hdf5/IRIX_6.5" - ;; - IRIX64) - case "$CC" in - cc|"") #default cc - abi=`cc -show_defaults 2>&1 | grep 'default abi'` - case $abi in - *-n32) - swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5" - ;; - *-64) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - *) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - esac # $abi - ;; - *-n32) - swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5" - ;; - *) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - esac - ;; Linux) swpaths="/afs/ncsa/packages/hdf5/Linux" ;; diff --git a/bin/release b/bin/release index d771db6..703916b 100755 --- a/bin/release +++ b/bin/release @@ -50,31 +50,33 @@ Usage: $0 -d <dir> [-h] [--nocheck] [--private] <methods> ... This must be run at the top level of the source directory. The other command-line options are the names of the programs to use for compressing the resulting tar archive (if none are given then -"tar md5" is assumed): +"tar" is assumed): tar -- use tar and don't do any compressing. gzip -- use gzip with "-9" and append ".gz" to the output name. bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name. zip -- convert all text files to DOS style and form a zip file for Windows use. - md5 -- produce a md5 checksum in addition to the archive. doc -- produce the latest doc tree in addition to the archive. +An md5 checksum is produced for each archive created and stored in the md5 file. + Examples: $ bin/release -d /tmp /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar - /tmp/hdf5-1.8.13.tar.md5 $ bin/release -d /tmp gzip /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar.gz - $ bin/release -d /tmp tar gzip zip md5 + $ bin/release -d /tmp tar gzip zip /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar /tmp/hdf5-1.8.13.tar.gz - /tmp/hdf5-1.8.13.tar.md5 /tmp/hdf5-1.8.13.tar.zip EOF @@ -212,9 +214,9 @@ while [ -n "$1" ]; do esac done -# Default methods are tar and md5 +# Default method is tar if [ "X$methods" = "X" ]; then - methods="tar md5" + methods="tar" fi # Create the temporay work directory. @@ -289,26 +291,28 @@ test "$verbose" && echo " Running tar..." 1>&2 ) # Compress +MD5file=$HDF5_VERS.md5 +cp /dev/null $DEST/$MD5file for comp in $methods; do case $comp in tar) cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar + (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) ;; gzip) test "$verbose" && echo " Running gzip..." 1>&2 gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz + (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) ;; bzip2) test "$verbose" && echo " Running bzip2..." 1>&2 bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 + (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) ;; zip) test "$verbose" && echo " Creating zip ball..." 1>&2 tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 - ;; - md5) - test "$verbose" && echo " Creating checksum..." 1>&2 - (cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5 + (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) ;; doc) test "$verbose" && echo " Creating docs..." 1>&2 @@ -135,6 +135,7 @@ $Source = ""; "H5I_free_t" => "x", "H5I_iterate_func_t" => "x", "H5L_class_t" => "x", + "H5I_search_func_t" => "x", "H5L_elink_traverse_t" => "x", "H5L_iterate_t" => "x", "H5MM_allocate_t" => "x", @@ -300,14 +301,10 @@ sub rewrite_func ($$$$$) { # The H5TRACE() statement if ($body =~ /\/\*[ \t]*NO[ \t]*TRACE[ \t]*\*\//) { - if ($body =~ /\s*H5TRACE\d+\s*\(/) { - errmesg $file, $name, "warning: trace info was not updated because of NO TRACE comment"; - } else { - errmesg $file, $name, "warning: trace info was not inserted because of NO TRACE comment"; - } + # Ignored due to NO TRACE comment. } elsif ($body =~ s/((\n[ \t]*)H5TRACE\d+\s*\(.*?\);)\n/"$2$trace"/es) { - # Replaced an H5TRACE macro - } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\w*\s*\(.*?\);??)\n/"$1$2$trace"/es) { + # Replaced an H5TRACE macro. + } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\w*\s*(\(.*?\))?;??)\n/"$1$2$trace"/es) { # Added an H5TRACE macro after a FUNC_ENTER macro. } else { errmesg $file, $name, "unable to insert tracing information"; @@ -336,14 +333,14 @@ for $file (@ARGV) { # Make modifications my $original = $Source; - my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[a-z]\w*)*)\s*\n #type + my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[A-Za-z]\w*)*\s*\**)\n #type (H5[A-Z]{0,2}[^_A-Z0-9]\w*) #name \s*\((.*?)\)\s* #args (\{.*?\n\}[^\n]*) #body /rewrite_func($file,$1,$3,$4,$5)/segx; $total_api += $napi; - # If the source changed then print out the new version +# If the source changed then print out the new version if ($original ne $Source) { printf "%s: instrumented %d API function%s\n", $file, $napi, 1==$napi?"":"s"; @@ -354,3 +351,6 @@ for $file (@ARGV) { } } } + +printf "Finished processing HDF5 API calls\n" + diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt index 63fc083..39280e8 100644 --- a/c++/CMakeLists.txt +++ b/c++/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_CPP) #----------------------------------------------------------------------------- diff --git a/c++/Makefile.in b/c++/Makefile.in index e5aa783..c964e95 100644 --- a/c++/Makefile.in +++ b/c++/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = c++ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -404,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -436,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -455,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -528,7 +524,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -543,10 +538,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -660,8 +651,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 @BUILD_CXX_CONDITIONAL_TRUE@SUBDIRS = src test DIST_SUBDIRS = src test examples diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt index e3e1077..ff375f3 100644 --- a/c++/examples/CMakeLists.txt +++ b/c++/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) # -------------------------------------------------------------------- # Notes: When creating examples they should be prefixed # with "cpp_ex_". This allows for easier filtering of the examples. @@ -35,7 +35,7 @@ set (tutr_examples foreach (example ${examples}) add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp) TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (cpp_ex_${example} " " " ") + TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp) endforeach (example ${examples}) @@ -43,7 +43,7 @@ endforeach (example ${examples}) foreach (example ${tutr_examples}) add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp) TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (cpp_ex_${example} " " " ") + TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp) endforeach (example ${tutr_examples}) diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index 4841f59..c8d6b18 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -107,7 +107,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = $(TEST_SCRIPT) subdir = c++/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -352,7 +353,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -384,7 +384,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -403,17 +402,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -476,7 +472,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -491,10 +486,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -608,8 +599,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 INSTALL_SCRIPT_FILES = run-c++-ex.sh # These are the programs that 'make all' or 'make prog' will build and diff --git a/c++/examples/run-c++-ex.sh.in b/c++/examples/run-c++-ex.sh.in index 77ac36a..eae2782 100644 --- a/c++/examples/run-c++-ex.sh.in +++ b/c++/examples/run-c++-ex.sh.in @@ -34,7 +34,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../}" +prefix="${prefix:-@prefix@}" AR="@AR@" RANLIB="@RANLIB@" H5TOOL="h5c++" # The tool name diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index c0e2f11..2f3a0c4 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_CPP_SRC) #----------------------------------------------------------------------------- @@ -84,7 +84,7 @@ set (CPP_HDRS ) add_library (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS}) -TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} ${LIB_TYPE}) diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp index e6cacf9..d59c1eb 100644 --- a/c++/src/H5AbstractDs.cpp +++ b/c++/src/H5AbstractDs.cpp @@ -21,6 +21,7 @@ #include "H5PropList.h" #include "H5Object.h" #include "H5AbstractDs.h" +#include "H5DataSpace.h" #include "H5DcreatProp.h" #include "H5CommonFG.h" #include "H5Alltypes.h" @@ -40,6 +41,12 @@ AbstractDs::AbstractDs(){} // Function: AbstractDs default constructor ///\brief Creates an AbstractDs instance using an existing id. // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- AbstractDs::AbstractDs(const hid_t ds_id){} @@ -47,8 +54,13 @@ AbstractDs::AbstractDs(const hid_t ds_id){} // Function: AbstractDs copy constructor ///\brief Copy constructor: makes a copy of the original AbstractDs object. // Programmer Binh-Minh Ribler - 2000 +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. //-------------------------------------------------------------------------- -AbstractDs::AbstractDs(const AbstractDs& original){} +//-------------------------------------------------------------------------- +// AbstractDs::AbstractDs(const AbstractDs& original){} //-------------------------------------------------------------------------- // Function: AbstractDs::getTypeClass @@ -113,8 +125,9 @@ DataType AbstractDs::getDataType() const // depending on which object invokes getDataType. Then, create and // return the DataType object try { - DataType datatype(p_get_type()); - return(datatype); + DataType datatype; + f_DataType_setId(&datatype, p_get_type()); + return(datatype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getDataType", E.getDetailMsg()); @@ -139,8 +152,9 @@ ArrayType AbstractDs::getArrayType() const // depending on which object invokes getArrayType. Then, create and // return the ArrayType object try { - ArrayType arraytype(p_get_type()); - return(arraytype); + ArrayType arraytype; + f_DataType_setId(&arraytype, p_get_type()); + return(arraytype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getArrayType", E.getDetailMsg()); @@ -165,8 +179,9 @@ CompType AbstractDs::getCompType() const // depending on which object invokes getCompType. Then, create and // return the CompType object try { - CompType comptype(p_get_type()); - return(comptype); + CompType comptype; + f_DataType_setId(&comptype, p_get_type()); + return(comptype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getCompType", E.getDetailMsg()); @@ -191,8 +206,9 @@ EnumType AbstractDs::getEnumType() const // depending on which object invokes getEnumType. Then, create and // return the EnumType object try { - EnumType enumtype(p_get_type()); - return(enumtype); + EnumType enumtype; + f_DataType_setId(&enumtype, p_get_type()); + return(enumtype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getEnumType", E.getDetailMsg()); @@ -217,8 +233,9 @@ IntType AbstractDs::getIntType() const // depending on which object invokes getIntType. Then, create and // return the IntType object try { - IntType inttype(p_get_type()); - return(inttype); + IntType inttype; + f_DataType_setId(&inttype, p_get_type()); + return(inttype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getIntType", E.getDetailMsg()); @@ -243,8 +260,9 @@ FloatType AbstractDs::getFloatType() const // depending on which object invokes getFloatType. Then, create and // return the FloatType object try { - FloatType floatype(p_get_type()); - return(floatype); + FloatType floatype; + f_DataType_setId(&floatype, p_get_type()); + return(floatype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getFloatType", E.getDetailMsg()); @@ -269,8 +287,9 @@ StrType AbstractDs::getStrType() const // depending on which object invokes getStrType. Then, create and // return the StrType object try { - StrType strtype(p_get_type()); - return(strtype); + StrType strtype; + f_DataType_setId(&strtype, p_get_type()); + return(strtype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getStrType", E.getDetailMsg()); @@ -295,8 +314,9 @@ VarLenType AbstractDs::getVarLenType() const // depending on which object invokes getVarLenType. Then, create and // return the VarLenType object try { - VarLenType varlentype(p_get_type()); - return(varlentype); + VarLenType varlentype; + f_DataType_setId(&varlentype, p_get_type()); + return(varlentype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getVarLenType", E.getDetailMsg()); diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h index 01d05b8..810dc8b 100644 --- a/c++/src/H5AbstractDs.h +++ b/c++/src/H5AbstractDs.h @@ -28,6 +28,7 @@ class FloatType; class IntType; class StrType; class VarLenType; +class DataSpace; /*! \class AbstractDs \brief AbstractDs is an abstract base class, inherited by Attribute @@ -70,9 +71,6 @@ class H5_DLLCPP AbstractDs { ///\brief Returns this class name. virtual H5std_string fromClass() const = 0; - // Copy constructor - AbstractDs( const AbstractDs& original ); - // Destructor virtual ~AbstractDs(); @@ -80,8 +78,17 @@ class H5_DLLCPP AbstractDs { // Default constructor AbstractDs(); - // Constructor that takes an attribute id or a dataset id. - AbstractDs( const hid_t ds_id ); + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + + AbstractDs(const hid_t h5_id); + + // Copy constructor + // AbstractDs( const AbstractDs& original ); private: // This member function is implemented by DataSet and Attribute. diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h index 511126e..6577a6e 100644 --- a/c++/src/H5ArrayType.h +++ b/c++/src/H5ArrayType.h @@ -49,7 +49,6 @@ class H5_DLLCPP ArrayType : public DataType { // Noop destructor virtual ~ArrayType(); - protected: // Default constructor ArrayType(); diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp index a9e928d..0bfdff8 100644 --- a/c++/src/H5Attribute.cpp +++ b/c++/src/H5Attribute.cpp @@ -74,7 +74,8 @@ Attribute::Attribute(const Attribute& original) : AbstractDs(), IdComponent() //-------------------------------------------------------------------------- Attribute::Attribute(const hid_t existing_id) : AbstractDs(), IdComponent() { - id = existing_id; + id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -270,8 +271,9 @@ DataSpace Attribute::getSpace() const // If the dataspace id is valid, create and return the DataSpace object if( dataspace_id > 0 ) { - DataSpace dataspace( dataspace_id ); - return( dataspace ); + DataSpace dataspace; + f_DataSpace_setId(&dataspace, dataspace_id); + return(dataspace); } else { @@ -392,10 +394,12 @@ H5std_string Attribute::getName() const //-------------------------------------------------------------------------- H5std_string Attribute::getName(size_t len) const { - H5std_string attr_name; - ssize_t name_size = getName(attr_name, len); - return(attr_name); - // let caller catch exception if any + H5std_string attr_name; + ssize_t name_size = getName(attr_name, len); + if (name_size < 0) + return(""); + else + return(attr_name); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h index f57b922..eced64e 100644 --- a/c++/src/H5Attribute.h +++ b/c++/src/H5Attribute.h @@ -31,6 +31,16 @@ namespace H5 { */ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { public: + + // Copy constructor: makes a copy of an existing Attribute object. + Attribute( const Attribute& original ); + + // Default constructor + Attribute(); + + // Creates a copy of an existing attribute using the attribute id + Attribute( const hid_t attr_id ); + // Closes this attribute. virtual void close(); @@ -70,15 +80,6 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { ///\brief Returns this class name. virtual H5std_string fromClass () const { return("Attribute"); } - // Creates a copy of an existing attribute using the attribute id - Attribute( const hid_t attr_id ); - - // Copy constructor: makes a copy of an existing Attribute object. - Attribute( const Attribute& original ); - - // Default constructor - Attribute(); - // Gets the attribute id. virtual hid_t getId() const; @@ -109,6 +110,10 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { // do not inherit H5Object::renameAttr void renameAttr() {} + + // Friend function to set Attribute id. For library use only. + friend void f_Attribute_setId(Attribute* attr, hid_t new_id); + }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp index 3aa0386..1547a5b 100644 --- a/c++/src/H5CommonFG.cpp +++ b/c++/src/H5CommonFG.cpp @@ -14,6 +14,7 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <string> +#include <iostream> #include "H5Include.h" #include "H5Exception.h" @@ -33,9 +34,6 @@ #include "H5Alltypes.h" #include "H5private.h" // for HDstrcpy -#include <iostream> -using namespace std; - // There are a few comments that are common to most of the functions // defined in this file so they are listed here. // - getLocId is called by all functions, that call a C API, to get @@ -51,6 +49,7 @@ using namespace std; #ifndef H5_NO_NAMESPACE namespace H5 { +using namespace std; #endif //-------------------------------------------------------------------------- @@ -100,7 +99,9 @@ Group CommonFG::createGroup( const char* name, size_t size_hint ) const throwException("createGroup", "H5Gcreate2 failed"); // No failure, create and return the Group object - Group group( group_id ); + Group group; + CommonFG *ptr = &group; + ptr->p_setId(group_id); return( group ); } @@ -136,7 +137,9 @@ Group CommonFG::openGroup( const char* name ) const throwException("openGroup", "H5Gopen2 failed"); // No failure, create and return the Group object - Group group( group_id ); + Group group; + CommonFG *ptr = &group; + ptr->p_setId(group_id); return( group ); } @@ -178,7 +181,8 @@ DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, co throwException("createDataSet", "H5Dcreate2 failed"); // No failure, create and return the DataSet object - DataSet dataset( dataset_id ); + DataSet dataset; + f_DataSet_setId(&dataset, dataset_id); return( dataset ); } @@ -213,7 +217,8 @@ DataSet CommonFG::openDataSet( const char* name ) const throwException("openDataSet", "H5Dopen2 failed"); // No failure, create and return the DataSet object - DataSet dataset( dataset_id ); + DataSet dataset; + f_DataSet_setId(&dataset, dataset_id); return( dataset ); } @@ -576,7 +581,8 @@ DataType CommonFG::openDataType( const char* name ) const throwException("openDataType", "H5Topen2 failed"); // No failure, create and return the DataType object - DataType data_type(type_id); + DataType data_type; + f_DataType_setId(&data_type, type_id); return(data_type); } @@ -611,7 +617,8 @@ ArrayType CommonFG::openArrayType( const char* name ) const throwException("openArrayType", "H5Topen2 failed"); // No failure, create and return the ArrayType object - ArrayType array_type (type_id); + ArrayType array_type; + f_DataType_setId(&array_type, type_id); return(array_type); } @@ -646,7 +653,8 @@ CompType CommonFG::openCompType( const char* name ) const throwException("openCompType", "H5Topen2 failed"); // No failure, create and return the CompType object - CompType comp_type(type_id); + CompType comp_type; + f_DataType_setId(&comp_type, type_id); return(comp_type); } @@ -681,7 +689,8 @@ EnumType CommonFG::openEnumType( const char* name ) const throwException("openEnumType", "H5Topen2 failed"); // No failure, create and return the EnumType object - EnumType enum_type(type_id); + EnumType enum_type; + f_DataType_setId(&enum_type, type_id); return(enum_type); } @@ -716,7 +725,8 @@ IntType CommonFG::openIntType( const char* name ) const throwException("openIntType", "H5Topen2 failed"); // No failure, create and return the IntType object - IntType int_type(type_id); + IntType int_type; + f_DataType_setId(&int_type, type_id); return(int_type); } @@ -751,7 +761,8 @@ FloatType CommonFG::openFloatType( const char* name ) const throwException("openFloatType", "H5Topen2 failed"); // No failure, create and return the FloatType object - FloatType float_type(type_id); + FloatType float_type; + f_DataType_setId(&float_type, type_id); return(float_type); } @@ -786,7 +797,8 @@ StrType CommonFG::openStrType( const char* name ) const throwException("openStrType", "H5Topen2 failed"); // No failure, create and return the StrType object - StrType str_type(type_id); + StrType str_type; + f_DataType_setId(&str_type, type_id); return(str_type); } @@ -821,7 +833,8 @@ VarLenType CommonFG::openVarLenType( const char* name ) const throwException("openVarLenType", "H5Topen2 failed"); // No failure, create and return the VarLenType object - VarLenType varlen_type(type_id); + VarLenType varlen_type; + f_DataType_setId(&varlen_type, type_id); return(varlen_type); } @@ -1100,6 +1113,58 @@ H5O_type_t CommonFG::childObjType(hsize_t index, H5_index_t index_type, H5_iter_ return(objtype); } +//-------------------------------------------------------------------------- +// Function: CommonFG::childObjVersion +///\brief Returns the object header version of an object in this file/group, +/// given the object's name. +///\param objname - IN: Name of the object +///\return Object version, which can have the following values: +/// \li \c H5O_VERSION_1 +/// \li \c H5O_VERSION_2 +///\exception H5::FileIException or H5::GroupIException +/// Exception will be thrown when: +/// - an error returned by the C API +/// - version number is not one of the valid values above +// Programmer Binh-Minh Ribler - April, 2014 +//-------------------------------------------------------------------------- +unsigned CommonFG::childObjVersion(const char* objname) const +{ + H5O_info_t objinfo; + + // Use C API to get information of the object + herr_t ret_value = H5Oget_info_by_name(getLocId(), objname, &objinfo, H5P_DEFAULT); + + // Throw exception if C API returns failure + if (ret_value < 0) + throwException("childObjVersion", "H5Oget_info_by_name failed"); + // Return a valid version or throw an exception for invalid value + else + { + unsigned version = objinfo.hdr.version; + if (version != H5O_VERSION_1 && version != H5O_VERSION_2) + throwException("childObjVersion", "Invalid version for object"); + else + return(version); + } +} + +//-------------------------------------------------------------------------- +// Function: CommonFG::childObjVersion +///\brief This is an overloaded member function, provided for convenience. +/// It takes an \a H5std_string for the object's name. +///\brief Returns the type of an object in this group, given the +/// object's name. +///\param objname - IN: Name of the object (H5std_string&) +///\exception H5::FileIException or H5::GroupIException +// Programmer Binh-Minh Ribler - April, 2014 +//-------------------------------------------------------------------------- +unsigned CommonFG::childObjVersion(const H5std_string& objname) const +{ + // Use overloaded function + unsigned version = childObjVersion(objname.c_str()); + return(version); +} + #ifndef H5_NO_DEPRECATED_SYMBOLS #ifndef DOXYGEN_SHOULD_SKIP_THIS //-------------------------------------------------------------------------- @@ -1172,6 +1237,7 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const } return (obj_type); } + #endif // DOXYGEN_SHOULD_SKIP_THIS #endif /* H5_NO_DEPRECATED_SYMBOLS */ @@ -1189,6 +1255,37 @@ CommonFG::CommonFG() {} // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- CommonFG::~CommonFG() {} + +//-------------------------------------------------------------------------- +// Function: f_DataType_setId - friend +// Purpose: This function is friend to class H5::DataType so that it +// can set DataType::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param dtype - IN/OUT: DataType object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_DataType_setId(DataType* dtype, hid_t new_id) +{ + dtype->id = new_id; +} + +//-------------------------------------------------------------------------- +// Function: f_DataSet_setId - friend +// Purpose: This function is friend to class H5::DataSet so that it +// can set DataSet::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param dset - IN/OUT: DataSet object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_DataSet_setId(DataSet* dset, hid_t new_id) +{ + dset->id = new_id; +} + #endif // DOXYGEN_SHOULD_SKIP_THIS #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h index 5c8a142..b726e52 100644 --- a/c++/src/H5CommonFG.h +++ b/c++/src/H5CommonFG.h @@ -70,6 +70,11 @@ class H5_DLLCPP CommonFG { H5O_type_t childObjType(const char* objname) const; H5O_type_t childObjType(hsize_t index, H5_index_t index_type=H5_INDEX_NAME, H5_iter_order_t order=H5_ITER_INC, const char* objname=".") const; + // Returns the object header version of an object in this file or group, + // given the object's name. + unsigned childObjVersion(const char* objname) const; + unsigned childObjVersion(const H5std_string& objname) const; + #ifndef H5_NO_DEPRECATED_SYMBOLS // Returns the type of an object in this group, given the // object's index. @@ -159,6 +164,10 @@ class H5_DLLCPP CommonFG { // Noop destructor. virtual ~CommonFG(); + + protected: + virtual void p_setId(const hid_t new_id) = 0; + #endif // DOXYGEN_SHOULD_SKIP_THIS }; // end of CommonFG declaration diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp index 191f004..393aafc 100644 --- a/c++/src/H5CompType.cpp +++ b/c++/src/H5CompType.cpp @@ -227,7 +227,8 @@ hid_t CompType::p_get_member_type(unsigned member_num) const DataType CompType::getMemberDataType( unsigned member_num ) const { try { - DataType datatype(p_get_member_type(member_num)); + DataType datatype; + f_DataType_setId(&datatype, p_get_member_type(member_num)); return(datatype); } catch (DataTypeIException E) { @@ -248,6 +249,7 @@ ArrayType CompType::getMemberArrayType( unsigned member_num ) const { try { ArrayType arraytype(p_get_member_type(member_num)); + f_DataType_setId(&arraytype, p_get_member_type(member_num)); return(arraytype); } catch (DataTypeIException E) { @@ -268,6 +270,7 @@ CompType CompType::getMemberCompType( unsigned member_num ) const { try { CompType comptype(p_get_member_type(member_num)); + f_DataType_setId(&comptype, p_get_member_type(member_num)); return(comptype); } catch (DataTypeIException E) { @@ -288,6 +291,7 @@ EnumType CompType::getMemberEnumType( unsigned member_num ) const { try { EnumType enumtype(p_get_member_type(member_num)); + f_DataType_setId(&enumtype, p_get_member_type(member_num)); return(enumtype); } catch (DataTypeIException E) { @@ -308,6 +312,7 @@ IntType CompType::getMemberIntType( unsigned member_num ) const { try { IntType inttype(p_get_member_type(member_num)); + f_DataType_setId(&inttype, p_get_member_type(member_num)); return(inttype); } catch (DataTypeIException E) { @@ -328,6 +333,7 @@ FloatType CompType::getMemberFloatType( unsigned member_num ) const { try { FloatType floatype(p_get_member_type(member_num)); + f_DataType_setId(&floatype, p_get_member_type(member_num)); return(floatype); } catch (DataTypeIException E) { @@ -348,6 +354,7 @@ StrType CompType::getMemberStrType( unsigned member_num ) const { try { StrType strtype(p_get_member_type(member_num)); + f_DataType_setId(&strtype, p_get_member_type(member_num)); return(strtype); } catch (DataTypeIException E) { @@ -368,6 +375,7 @@ VarLenType CompType::getMemberVarLenType( unsigned member_num ) const { try { VarLenType varlentype(p_get_member_type(member_num)); + f_DataType_setId(&varlentype, p_get_member_type(member_num)); return(varlentype); } catch (DataTypeIException E) { diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp index 6728264..717ef88 100644 --- a/c++/src/H5DataSet.cpp +++ b/c++/src/H5DataSet.cpp @@ -52,7 +52,7 @@ namespace H5 { ///\brief Default constructor: creates a stub DataSet. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {} +DataSet::DataSet() : H5Object(), AbstractDs(), id(H5I_INVALID_HID) {} //-------------------------------------------------------------------------- // Function: DataSet overloaded constructor @@ -60,9 +60,10 @@ DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {} ///\param existing_id - IN: Id of an existing dataset // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object() +DataSet::DataSet(const hid_t existing_id) : H5Object(), AbstractDs() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -71,7 +72,7 @@ DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object() ///\param original - IN: DataSet instance to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(original) +DataSet::DataSet(const DataSet& original) : H5Object(), AbstractDs() { id = original.getId(); incRefCount(); // increment number of references to this id @@ -95,7 +96,7 @@ DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(origi // Jul, 2008 // Added for application convenience. //-------------------------------------------------------------------------- -DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : AbstractDs(), H5Object(), id(H5I_INVALID_HID) +DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), AbstractDs(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereferenced"); } @@ -114,7 +115,7 @@ DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, co // Jul, 2008 // Added for application convenience. //-------------------------------------------------------------------------- -DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : AbstractDs(), H5Object(), id(H5I_INVALID_HID) +DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), AbstractDs(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference"); } @@ -137,7 +138,8 @@ DataSpace DataSet::getSpace() const throw DataSetIException("DataSet::getSpace", "H5Dget_space failed"); } //create dataspace object using the existing id then return the object - DataSpace data_space( dataspace_id ); + DataSpace data_space; + f_DataSpace_setId(&data_space, dataspace_id); return( data_space ); } @@ -170,8 +172,8 @@ DSetCreatPropList DataSet::getCreatePlist() const throw DataSetIException("DataSet::getCreatePlist", "H5Dget_create_plist failed"); } // create and return the DSetCreatPropList object - DSetCreatPropList create_plist( create_plist_id ); - return( create_plist ); + DSetCreatPropList create_plist(create_plist_id); // ok to use existing id const + return(create_plist); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5DataSet.h b/c++/src/H5DataSet.h index 529466a..b2544a2 100644 --- a/c++/src/H5DataSet.h +++ b/c++/src/H5DataSet.h @@ -30,6 +30,7 @@ namespace H5 { */ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { public: + // Close this dataset. virtual void close(); @@ -125,6 +126,10 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { // Reads variable or fixed len strings from this dataset. void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const; void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const; + + // Friend function to set DataSet id. For library use only. + friend void f_DataSet_setId(DataSet* dset, hid_t new_id); + }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp index 20b4e5e..d9c262d 100644 --- a/c++/src/H5DataSpace.cpp +++ b/c++/src/H5DataSpace.cpp @@ -85,6 +85,7 @@ DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) : DataSpace::DataSpace(const hid_t existing_id) : IdComponent() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -93,7 +94,7 @@ DataSpace::DataSpace(const hid_t existing_id) : IdComponent() ///\param original - IN: DataSpace object to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSpace::DataSpace(const DataSpace& original) : IdComponent(original) +DataSpace::DataSpace(const DataSpace& original) : IdComponent() { id = original.getId(); incRefCount(); // increment number of references to this id diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h index b007fd0..a43cecd 100644 --- a/c++/src/H5DataSpace.h +++ b/c++/src/H5DataSpace.h @@ -129,6 +129,9 @@ class H5_DLLCPP DataSpace : public IdComponent { private: hid_t id; // HDF5 dataspace id + + // Friend function to set DataSpace id. For library use only. + friend void f_DataSpace_setId(DataSpace *dspace, hid_t new_id); }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp index a435b4e..a227843 100644 --- a/c++/src/H5DataType.cpp +++ b/c++/src/H5DataType.cpp @@ -71,6 +71,7 @@ DataType::DataType() : H5Object(), id(H5I_INVALID_HID) {} DataType::DataType(const hid_t existing_id) : H5Object() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -134,13 +135,29 @@ DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type, ///\brief Copy constructor: makes a copy of the original DataType object. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataType::DataType(const DataType& original) : H5Object(original) +DataType::DataType(const DataType& original) : H5Object() { id = original.getId(); incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- +// Function: DataType overloaded constructor +///\brief Creates a integer type using a predefined type +///\param pred_type - IN: Predefined datatype +///\exception H5::DataTypeIException +// Programmer Binh-Minh Ribler - 2000 +// Description +// This is so that when a predefined type is passed in, a +// copy of it is made, not just a duplicate of the HDF5 id. +//-------------------------------------------------------------------------- +DataType::DataType(const PredType& pred_type) : H5Object() +{ + // use DataType::copy to make a copy of this predefined type + copy(pred_type); +} + +//-------------------------------------------------------------------------- // Function: DataType::copy ///\brief Copies an existing datatype to this datatype object ///\param like_type - IN: Datatype to be copied @@ -203,11 +220,22 @@ void DataType::copy(const DataSet& dset) // Makes a copy of the type on the right hand side and stores // the new id in the left hand side object. // Programmer Binh-Minh Ribler - 2000 +// Modification +// Changed operator= to simply copy the id of rhs instead of +// calling H5Tcopy because, when the operator= is invoked, a +// different datatype id is created and it won't have the same +// characteristics as the original one, specifically, if the +// rhs represents a named datatype, "this" would still be a +// transient datatype. +// BMR - Mar, 2015 //-------------------------------------------------------------------------- DataType& DataType::operator=( const DataType& rhs ) { if (this != &rhs) - copy(rhs); + { + id = rhs.id; + incRefCount(); // increment number of references to this id + } return(*this); } @@ -463,8 +491,9 @@ DataType DataType::getSuper() const // the base type, otherwise, raise exception if( base_type_id > 0 ) { - DataType base_type( base_type_id ); - return( base_type ); + DataType base_type; + base_type.p_setId(base_type_id); + return(base_type); } else { diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h index 064bfe1..6c8a312 100644 --- a/c++/src/H5DataType.h +++ b/c++/src/H5DataType.h @@ -36,6 +36,9 @@ class H5_DLLCPP DataType : public H5Object { // Copy constructor: makes a copy of the original object DataType( const DataType& original ); + // Creates a copy of a predefined type + DataType(const PredType& pred_type); + // Creates a datatype by way of dereference. DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT); DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT); @@ -133,6 +136,9 @@ class H5_DLLCPP DataType : public H5Object { #endif // DOXYGEN_SHOULD_SKIP_THIS private: + // Friend function to set DataType id. For library use only. + friend void f_DataType_setId(DataType* dtype, hid_t new_id); + void p_commit(hid_t loc_id, const char* name); }; #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5Exception.cpp b/c++/src/H5Exception.cpp index f153c92..fb1e42e 100644 --- a/c++/src/H5Exception.cpp +++ b/c++/src/H5Exception.cpp @@ -35,11 +35,11 @@ Exception::Exception() : detail_message(""), func_name("") {} // Function: Exception overloaded constructor ///\brief Creates an exception with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Exception::Exception(const H5std_string& func_name, const H5std_string& message) : detail_message(message), func_name(func_name) {} +Exception::Exception(const H5std_string& func, const H5std_string& message) : detail_message(message), func_name(func) {} //-------------------------------------------------------------------------- // Function: Exception copy constructor @@ -350,10 +350,10 @@ FileIException::FileIException():Exception(){} // Function: FileIException overloaded constructor ///\brief Creates a FileIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -FileIException::FileIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +FileIException::FileIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: FileIException destructor ///\brief Noop destructor. @@ -373,10 +373,10 @@ GroupIException::GroupIException():Exception(){} // Function: GroupIException overloaded constructor ///\brief Creates a GroupIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -GroupIException::GroupIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +GroupIException::GroupIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: GroupIException destructor ///\brief Noop destructor. @@ -396,10 +396,10 @@ DataSpaceIException::DataSpaceIException():Exception(){} // Function: DataSpaceIException overloaded constructor ///\brief Creates a DataSpaceIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -DataSpaceIException::DataSpaceIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +DataSpaceIException::DataSpaceIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: DataSpaceIException destructor ///\brief Noop destructor. @@ -419,10 +419,10 @@ DataTypeIException::DataTypeIException():Exception(){} // Function: DataTypeIException overloaded constructor ///\brief Creates a DataTypeIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -DataTypeIException::DataTypeIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +DataTypeIException::DataTypeIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: DataTypeIException destructor ///\brief Noop destructor. @@ -442,10 +442,10 @@ PropListIException::PropListIException():Exception(){} // Function: PropListIException overloaded constructor ///\brief Creates a PropListIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -PropListIException::PropListIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +PropListIException::PropListIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: PropListIException destructor ///\brief Noop destructor. @@ -465,10 +465,10 @@ DataSetIException::DataSetIException():Exception(){} // Function: DataSetIException overloaded constructor ///\brief Creates a DataSetIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -DataSetIException::DataSetIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +DataSetIException::DataSetIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: DataSetIException destructor ///\brief Noop destructor. @@ -488,10 +488,10 @@ AttributeIException::AttributeIException():Exception(){} // Function: AttributeIException overloaded constructor ///\brief Creates an AttributeIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -AttributeIException::AttributeIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +AttributeIException::AttributeIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: AttributeIException destructor ///\brief Noop destructor. @@ -511,10 +511,10 @@ ReferenceException::ReferenceException():Exception(){} // Function: ReferenceException overloaded constructor ///\brief Creates a ReferenceException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -ReferenceException::ReferenceException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +ReferenceException::ReferenceException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: ReferenceException destructor ///\brief Noop destructor. @@ -534,10 +534,10 @@ LibraryIException::LibraryIException():Exception(){} // Function: LibraryIException overloaded constructor ///\brief Creates a LibraryIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -LibraryIException::LibraryIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +LibraryIException::LibraryIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: LibraryIException destructor ///\brief Noop destructor. @@ -557,10 +557,10 @@ LocationException::LocationException():Exception(){} // Function: LocationException overloaded constructor ///\brief Creates a LocationException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -LocationException::LocationException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +LocationException::LocationException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: LocationException destructor ///\brief Noop destructor. @@ -580,10 +580,10 @@ IdComponentException::IdComponentException(): Exception() {} // Function: IdComponentException overloaded constructor ///\brief Creates a IdComponentException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -IdComponentException::IdComponentException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +IdComponentException::IdComponentException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: IdComponentException destructor ///\brief Noop destructor. diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp index 5696742..5ce9d8e 100644 --- a/c++/src/H5FaccProp.cpp +++ b/c++/src/H5FaccProp.cpp @@ -40,10 +40,10 @@ FileAccPropList::FileAccPropList() : PropList( H5P_FILE_ACCESS ) {} //-------------------------------------------------------------------------- // Function: FileAccPropList copy constructor ///\brief Copy Constructor: makes a copy of the original -/// FileAccPropList object. +///\param original - IN: FileAccPropList instance to copy // Programmer: Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -FileAccPropList::FileAccPropList(const FileAccPropList& orig) : PropList(orig) {} +FileAccPropList::FileAccPropList(const FileAccPropList& original) : PropList(original) {} //-------------------------------------------------------------------------- // Function: FileAccPropList overloaded constructor @@ -664,6 +664,67 @@ unsigned FileAccPropList::getGcReferences() const } //-------------------------------------------------------------------------- +// Function: FileAccPropList::setLibverBounds +///\brief Sets bounds on versions of library format to be used when creating +/// or writing objects. +///\param libver_low - IN: Earliest version of the library that will be +/// used for creating or writing objects +///\param libver_high - IN: Latest version of the library that will be +///\exception H5::PropListIException +///\par Description +/// Valid values of \a libver_low are as follows: +/// \li \c H5F_LIBVER_EARLIEST (Default) +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST +/// +/// Valid values of \a libver_high are as follows: +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST (Default) +/// +/// For more details, please refer to +/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLibverBounds +// Programmer: Binh-Minh Ribler - March, 2015 +//-------------------------------------------------------------------------- +void FileAccPropList::setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const +{ + herr_t ret_value = H5Pset_libver_bounds(id, libver_low, libver_high); + if (ret_value < 0) + { + throw PropListIException("FileAccPropList::setLibverBounds", "H5Pset_libver_bounds failed"); + } +} + +//-------------------------------------------------------------------------- +// Function: FileAccPropList::getLibverBounds +///\brief Gets the current settings for the library version format bounds +/// from a file access property list. +///\param libver_low - OUT: Earliest version of the library that will be +/// used for creating or writing objects +///\param libver_high - OUT: Latest version of the library that will be +/// used for creating or writing objects +///\exception H5::PropListIException +///\par Description +/// On success, the argument \a libver_low can have the following +/// values: +/// \li \c H5F_LIBVER_EARLIEST +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST +/// +/// and \a libver_high: +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST +// Programmer: Binh-Minh Ribler - March, 2015 +//-------------------------------------------------------------------------- +void FileAccPropList::getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const +{ + herr_t ret_value = H5Pget_libver_bounds(id, &libver_low, &libver_high); + if( ret_value < 0 ) + { + throw PropListIException("FileAccPropList::getLibverBounds", "H5Pget_libver_bounds failed"); + } +} + +//-------------------------------------------------------------------------- // Function: FileAccPropList destructor ///\brief Noop destructor // Programmer Binh-Minh Ribler - 2000 diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h index 861ac4c..fddc446 100644 --- a/c++/src/H5FaccProp.h +++ b/c++/src/H5FaccProp.h @@ -126,6 +126,13 @@ class H5_DLLCPP FileAccPropList : public PropList { // Returns garbage collecting references setting. unsigned getGcReferences() const; + // Sets bounds on versions of library format to be used when creating + // or writing objects. + void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const; + + // Gets the current settings for the library version format bounds. + void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const; + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("FileAccPropList"); } diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index feeb9e8..2e70e30 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -50,7 +50,7 @@ namespace H5 { ///\brief Default constructor: creates a stub H5File object. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {} +H5File::H5File() : H5Location(), CommonFG(), id(H5I_INVALID_HID) {} //-------------------------------------------------------------------------- // Function: H5File overloaded constructor @@ -86,7 +86,7 @@ H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {} // to catch then re-throw it. -BMR 2013/03/21 // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID) +H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), CommonFG(), id(H5I_INVALID_HID) { try { p_get_file(name, flags, create_plist, access_plist); @@ -111,7 +111,7 @@ H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& c // to catch then re-throw it. -BMR 2013/03/21 // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID) +H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), CommonFG(), id(H5I_INVALID_HID) { try { p_get_file(name.c_str(), flags, create_plist, access_plist); @@ -158,13 +158,32 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro #endif // DOXYGEN_SHOULD_SKIP_THIS //-------------------------------------------------------------------------- +// Function: H5File overloaded constructor +///\brief Creates an H5File object using an existing file id. +///\param existing_id - IN: Id of an existing file +// Programmer Binh-Minh Ribler - 2015 +// Description +// Mar 29, 2015 +// Added in responding to a request from user Jason Newton. +// However, it is not recommended to use the private member "id" +// in applications. Unlike other situations, where similar +// constructor is needed by the library in order to return +// an object, H5File doesn't need it. -BMR (HDFFV-8766 partially) +//-------------------------------------------------------------------------- +H5File::H5File(hid_t existing_id) : H5Location(), CommonFG() +{ + id = existing_id; + incRefCount(); // increment number of references to this id +} + +//-------------------------------------------------------------------------- // Function: H5File copy constructor ///\brief Copy constructor: makes a copy of the original /// H5File object. ///\param original - IN: H5File instance to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File(const H5File& original) : H5Location(original) +H5File::H5File(const H5File& original) : H5Location(), CommonFG() { id = original.getId(); incRefCount(); // increment number of references to this id @@ -230,6 +249,13 @@ bool H5File::isAccessible(const H5std_string& name, const FileAccPropList& acces //-------------------------------------------------------------------------- void H5File::openFile(const char* name, unsigned int flags, const FileAccPropList& access_plist) { + try { + close(); + } + catch (Exception close_error) { + throw FileIException("H5File::openFile", close_error.getDetailMsg()); + } + hid_t access_plist_id = access_plist.getId(); id = H5Fopen (name, flags, access_plist_id); if (id < 0) // throw an exception when open fails @@ -384,25 +410,6 @@ ssize_t H5File::getObjCount(unsigned types) const } //-------------------------------------------------------------------------- -// Function: H5File::getObjCount -///\brief This is an overloaded member function, provided for convenience. -/// It takes no parameter and returns the object count of all -/// object types. -///\return Number of opened object IDs -///\exception H5::FileIException -// Programmer Binh-Minh Ribler - May 2004 -//-------------------------------------------------------------------------- -ssize_t H5File::getObjCount() const -{ - ssize_t num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL); - if( num_objs < 0 ) - { - throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed"); - } - return (num_objs); -} - -//-------------------------------------------------------------------------- // Function: H5File::getObjIDs ///\brief Retrieves a list of opened object IDs (files, datasets, /// groups and datatypes) in the same file. diff --git a/c++/src/H5File.h b/c++/src/H5File.h index c49fe51..fd4349c 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -59,8 +59,7 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG { // Returns the number of opened object IDs (files, datasets, groups // and datatypes) in the same file. - ssize_t getObjCount(unsigned types) const; - ssize_t getObjCount() const; + ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const; // Retrieves a list of opened object IDs (files, datasets, groups // and datatypes) in the same file. @@ -86,6 +85,10 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG { // Gets the file id virtual hid_t getLocId() const; + // Creates an H5File using an existing file id. Not recommended + // in applications. + H5File(hid_t existing_id); + #endif // DOXYGEN_SHOULD_SKIP_THIS ///\brief Returns this class name. diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp index cad5e29..4d1d61c 100644 --- a/c++/src/H5Group.cpp +++ b/c++/src/H5Group.cpp @@ -51,7 +51,7 @@ namespace H5 { ///\brief Default constructor: creates a stub Group. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Group::Group() : H5Object(), id(H5I_INVALID_HID) {} +Group::Group() : H5Object(), CommonFG(), id(H5I_INVALID_HID) {} //-------------------------------------------------------------------------- // Function: Group copy constructor @@ -59,7 +59,7 @@ Group::Group() : H5Object(), id(H5I_INVALID_HID) {} ///\param original - IN: Original group to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Group::Group(const Group& original) : H5Object(original) +Group::Group(const Group& original) : H5Object(), CommonFG() { id = original.getId(); incRefCount(); // increment number of references to this id @@ -82,9 +82,10 @@ hid_t Group::getLocId() const ///\param existing_id - IN: Id of an existing group // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Group::Group(const hid_t existing_id) : H5Object() +Group::Group(const hid_t existing_id) : H5Object(), CommonFG() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -100,7 +101,7 @@ Group::Group(const hid_t existing_id) : H5Object() /// is a datatype that has been named by DataType::commit. // Programmer Binh-Minh Ribler - Oct, 2006 //-------------------------------------------------------------------------- -Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID) +Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), CommonFG(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference"); } @@ -115,7 +116,7 @@ Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const ///\exception H5::ReferenceException // Programmer Binh-Minh Ribler - Oct, 2006 //-------------------------------------------------------------------------- -Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID) +Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), CommonFG(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference"); } diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp index 4a9dcac..c01d41e 100644 --- a/c++/src/H5IdComponent.cpp +++ b/c++/src/H5IdComponent.cpp @@ -37,16 +37,33 @@ namespace H5 { ///\param h5_id - IN: Id of an existing object ///\exception H5::DataTypeIException // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- IdComponent::IdComponent(const hid_t h5_id) {} +//void IdComponent::p_setId(const hid_t new_id) +//{ + //p_setId(new_id); +//} + //-------------------------------------------------------------------------- // Function: IdComponent copy constructor -///\brief Copy constructor: makes a copy of the original IdComponent object. -///\param original - IN: IdComponent instance to copy +// Purpose: This noop copy constructor is removed as a result of the data +// member "id" being moved down to sub-classes. (Mar 2015) +// Parameters: original - IN: IdComponent instance to copy // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. //-------------------------------------------------------------------------- -IdComponent::IdComponent( const IdComponent& original ) {} +// IdComponent::IdComponent(const IdComponent& original) {} //-------------------------------------------------------------------------- // Function: IdComponent::incRefCount @@ -82,12 +99,14 @@ void IdComponent::decRefCount(const hid_t obj_id) const { if (p_valid_id(obj_id)) if (H5Idec_ref(obj_id) < 0) + { if (H5Iget_ref(obj_id) <= 0) throw IdComponentException(inMemFunc("decRefCount"), "object ref count is 0 or negative"); else throw IdComponentException(inMemFunc("decRefCount"), "decrementing object ref count failed"); + } } //-------------------------------------------------------------------------- diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h index 3208a39..068fb74 100644 --- a/c++/src/H5IdComponent.h +++ b/c++/src/H5IdComponent.h @@ -60,11 +60,18 @@ class H5_DLLCPP IdComponent { // Sets the identifier of this object to a new value. void setId(const hid_t new_id); + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + // Creates an object to hold an HDF5 identifier. IdComponent( const hid_t h5_id ); // Copy constructor: makes copy of the original IdComponent object. - IdComponent( const IdComponent& original ); + // IdComponent( const IdComponent& original ); #ifndef DOXYGEN_SHOULD_SKIP_THIS // Pure virtual function for there are various H5*close for the @@ -97,6 +104,7 @@ class H5_DLLCPP IdComponent { // Sets the identifier of this object to a new value. - this one // doesn't increment reference count virtual void p_setId(const hid_t new_id) = 0; + //virtual void p_setId(const hid_t new_id); #endif // DOXYGEN_SHOULD_SKIP_THIS diff --git a/c++/src/H5Include.h b/c++/src/H5Include.h index 87cb182..1e0e952 100644 --- a/c++/src/H5Include.h +++ b/c++/src/H5Include.h @@ -28,3 +28,15 @@ typedef int bool; const bool false = 0; const bool true = 1; #endif + +// These are defined in H5Opkg.h, which should not be included in the C++ API, +// so re-define them here for now. + +/* Initial version of the object header format */ +#define H5O_VERSION_1 1 + +/* Revised version - leaves out reserved bytes and alignment padding, and adds + * magic number as prefix and checksum as suffix for all chunks. + */ +#define H5O_VERSION_2 2 + diff --git a/c++/src/H5IntType.h b/c++/src/H5IntType.h index 95fa642..e28f5c2 100644 --- a/c++/src/H5IntType.h +++ b/c++/src/H5IntType.h @@ -24,7 +24,7 @@ namespace H5 { //! Class IntType operates on HDF5 integer datatype. class H5_DLLCPP IntType : public AtomType { public: - // Creates a integer type using a predefined type + // Creates an integer type using a predefined type IntType(const PredType& pred_type); // Gets the integer datatype of the specified dataset diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp index cd733c4..5100e12 100644 --- a/c++/src/H5Location.cpp +++ b/c++/src/H5Location.cpp @@ -70,17 +70,28 @@ H5Location::H5Location() : IdComponent() {} // object. // Parameters object_id - IN: Id of an existing HDF5 object // Programmer Binh-Minh Ribler - 2000 + +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- -H5Location::H5Location(const hid_t object_id) : IdComponent(object_id) {} +H5Location::H5Location(const hid_t object_id) : IdComponent() {} //-------------------------------------------------------------------------- // Function: H5Location copy constructor -///\brief Copy constructor: makes a copy of the original H5Location -/// instance. +// Purpose: This noop copy constructor is removed as a result of the data +// member "id" being moved down to sub-classes. (Mar 2015) ///\param original - IN: H5Location instance to copy // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. //-------------------------------------------------------------------------- -H5Location::H5Location( const H5Location& original ) : IdComponent( original ) {} +// H5Location::H5Location(const H5Location& original) : IdComponent() {} #endif // DOXYGEN_SHOULD_SKIP_THIS @@ -115,8 +126,9 @@ Attribute H5Location::createAttribute( const char* name, const DataType& data_ty // If the attribute id is valid, create and return the Attribute object if( attr_id > 0 ) { - Attribute attr( attr_id ); - return( attr ); + Attribute attr; + f_Attribute_setId(&attr, attr_id); + return( attr ); } else throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed"); @@ -147,8 +159,9 @@ Attribute H5Location::openAttribute( const char* name ) const hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT); if( attr_id > 0 ) { - Attribute attr( attr_id ); - return( attr ); + Attribute attr; + f_Attribute_setId(&attr, attr_id); + return( attr ); } else { @@ -182,12 +195,13 @@ Attribute H5Location::openAttribute( const unsigned int idx ) const H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT); if( attr_id > 0 ) { - Attribute attr( attr_id ); - return( attr ); + Attribute attr; + f_Attribute_setId(&attr, attr_id); + return(attr); } else { - throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); + throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); } } @@ -893,6 +907,12 @@ H5O_type_t H5Location::p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const ///\return DataSpace object ///\exception H5::ReferenceException // Programmer Binh-Minh Ribler - May, 2004 +// Modification +// Mar 29, 2015 +// Used friend function to set id for DataSpace instead of the +// existing id constructor or the setId method to avoid incrementing +// ref count, as a work-around for a problem described in the JIRA +// issue HDFFV-7947. -BMR //-------------------------------------------------------------------------- DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const { @@ -902,8 +922,9 @@ DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const throw ReferenceException(inMemFunc("getRegion"), "H5Rget_region failed"); } try { - DataSpace dataspace(space_id); - return(dataspace); + DataSpace dataspace; + f_DataSpace_setId(&dataspace, space_id); + return(dataspace); } catch (DataSpaceIException E) { throw ReferenceException(inMemFunc("getRegion"), E.getDetailMsg()); @@ -918,6 +939,36 @@ DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const //-------------------------------------------------------------------------- H5Location::~H5Location() {} +//-------------------------------------------------------------------------- +// Function: f_Attribute_setId - friend +// Purpose: This function is friend to class H5::Attribute so that it +// can set Attribute::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param attr - IN/OUT: Attribute object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_Attribute_setId(Attribute* attr, hid_t new_id) +{ + attr->id = new_id; +} + +//-------------------------------------------------------------------------- +// Function: f_DataSpace_setId - friend +// Purpose: This function is friend to class H5::DataSpace so that it can +// can set DataSpace::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param dspace - IN/OUT: DataSpace object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_DataSpace_setId(DataSpace* dspace, hid_t new_id) +{ + dspace->id = new_id; +} + #endif // DOXYGEN_SHOULD_SKIP_THIS #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h index e015825..79a8d5c 100644 --- a/c++/src/H5Location.h +++ b/c++/src/H5Location.h @@ -138,13 +138,21 @@ class H5_DLLCPP H5Location : public IdComponent { // Default constructor H5Location(); +#ifndef DOXYGEN_SHOULD_SKIP_THIS + + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + // Creates a copy of an existing object giving the location id. H5Location(const hid_t loc_id); // Copy constructor. - H5Location(const H5Location& original); + // H5Location(const H5Location& original); -#ifndef DOXYGEN_SHOULD_SKIP_THIS // Creates a reference to an HDF5 object or a dataset region. void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; @@ -159,6 +167,10 @@ class H5_DLLCPP H5Location : public IdComponent { // Retrieves the type of object that an object reference points to. H5O_type_t p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const; + // Sets the identifier of this object to a new value. - this one + // doesn't increment reference count + virtual void p_setId(const hid_t new_id) = 0; + #endif // DOXYGEN_SHOULD_SKIP_THIS // Noop destructor. diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp index 94b03ab..df3f565 100644 --- a/c++/src/H5Object.cpp +++ b/c++/src/H5Object.cpp @@ -50,8 +50,26 @@ H5Object::H5Object() : H5Location() {} // object. // Parameters object_id - IN: Id of an existing HDF5 object // Programmer Binh-Minh Ribler - 2000 +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- -H5Object::H5Object( const hid_t object_id ) : H5Location( object_id ) {} +H5Object::H5Object(const hid_t object_id) : H5Location() {} + +//-------------------------------------------------------------------------- +// Function: H5Object copy constructor +///\brief Copy constructor: makes a copy of the original H5Object +/// instance. +///\param original - IN: H5Object instance to copy +// Programmer Binh-Minh Ribler - 2000 +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. +//-------------------------------------------------------------------------- +// H5Object::H5Object(const H5Object& original) : H5Location() {} //-------------------------------------------------------------------------- // Function: getObjName @@ -165,15 +183,6 @@ ssize_t H5Object::getObjName(H5std_string& obj_name, size_t len) const } //-------------------------------------------------------------------------- -// Function: H5Object copy constructor -///\brief Copy constructor: makes a copy of the original H5Object -/// instance. -///\param original - IN: H5Object instance to copy -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -H5Object::H5Object( const H5Object& original ) : H5Location( original ) {} - -//-------------------------------------------------------------------------- // Function: H5Object destructor ///\brief Noop destructor. // Programmer Binh-Minh Ribler - 2000 diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index 5576d13..f8ac792 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -47,9 +47,6 @@ namespace H5 { class H5_DLLCPP H5Object : public H5Location { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS - // Copy constructor: makes copy of an H5Object object. - H5Object(const H5Object& original); - // Gets the name of this HDF5 object, i.e., Group, DataSet, or // DataType. ssize_t getObjName(char *obj_name, size_t buf_size = 0) const; @@ -63,9 +60,19 @@ class H5_DLLCPP H5Object : public H5Location { // Default constructor H5Object(); + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + // Creates a copy of an existing object giving the object id H5Object( const hid_t object_id ); + // Copy constructor: makes copy of an H5Object object. + // H5Object(const H5Object& original); + #endif // DOXYGEN_SHOULD_SKIP_THIS }; /* end class H5Object */ diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp index 5afe80f..70ec629 100644 --- a/c++/src/H5PropList.cpp +++ b/c++/src/H5PropList.cpp @@ -54,7 +54,7 @@ PropList::PropList() : IdComponent(), id(H5P_DEFAULT) {} ///\param original - IN: The original property list to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -PropList::PropList(const PropList& original) : IdComponent(original) +PropList::PropList(const PropList& original) : IdComponent() { id = original.getId(); incRefCount(); // increment number of references to this id @@ -258,6 +258,7 @@ void PropList::p_setId(const hid_t new_id) // reset object's id to the given id id = new_id; } + #endif // DOXYGEN_SHOULD_SKIP_THIS //-------------------------------------------------------------------------- diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h index 40c597f..672b3db 100644 --- a/c++/src/H5VarLenType.h +++ b/c++/src/H5VarLenType.h @@ -40,7 +40,6 @@ class H5_DLLCPP VarLenType : public DataType { // Noop destructor virtual ~VarLenType(); - protected: // Default constructor VarLenType(); }; diff --git a/c++/src/Makefile.am b/c++/src/Makefile.am index 7c1f497..cdef7bf 100644 --- a/c++/src/Makefile.am +++ b/c++/src/Makefile.am @@ -30,12 +30,6 @@ lib_LTLIBRARIES=libhdf5_cpp.la # Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am) libhdf5_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS) -# Shared C++ libraries aren't universally supported. -if CXX_SHARED_CONDITIONAL -else - AM_LDFLAGS+=-static -endif - bin_SCRIPTS=h5c++ # Source files for the library diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 282d740..55c3577 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -103,13 +103,11 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(srcdir)/h5c++.in $(top_srcdir)/bin/depcomp \ $(include_HEADERS) $(top_srcdir)/bin/test-driver - -# Shared C++ libraries aren't universally supported. -@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static TESTS = subdir = c++/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -415,10 +413,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) +AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -450,7 +447,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -469,17 +465,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -542,7 +535,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -557,10 +549,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -674,15 +662,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 # This is our main target diff --git a/c++/src/h5c++.in b/c++/src/h5c++.in index a4aaf52..069842a 100644 --- a/c++/src/h5c++.in +++ b/c++/src/h5c++.in @@ -333,7 +333,7 @@ if test "x$do_link" = "xyes"; then hpux*) flag="-Wl,+b -Wl," ;; freebsd*|solaris*) flag="-R" ;; rs6000*|aix*) flag="-L" ;; - irix*|sgi) flag="-rpath " ;; + sgi) flag="-rpath " ;; *) flag="" ;; esac diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt index acb2b7f..dcdf3a3 100644 --- a/c++/test/CMakeLists.txt +++ b/c++/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_CPP_TEST) # -------------------------------------------------------------------- # Notes: When creating unit test executables they should be prefixed @@ -36,7 +36,7 @@ configure_file (${HDF5_CPP_TEST_SOURCE_DIR}/H5srcdir_str.h.in H5srcdir_str.h @O add_executable (cpp_testhdf5 ${CPP_TEST_SRCS} ) TARGET_NAMING (cpp_testhdf5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (cpp_testhdf5 " " " ") +TARGET_C_PROPERTIES (cpp_testhdf5 ${LIB_TYPE} " " " ") target_link_libraries (cpp_testhdf5 ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET} diff --git a/c++/test/Makefile.am b/c++/test/Makefile.am index 2717e9c..705ec72 100644 --- a/c++/test/Makefile.am +++ b/c++/test/Makefile.am @@ -23,12 +23,6 @@ include $(top_srcdir)/config/commence.am # Include src, test, and c++/src directories AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src -# Shared C++ libraries aren't universally supported. -if CXX_SHARED_CONDITIONAL -else - AM_LDFLAGS+=-static -endif - # These are our main targets. They should be listed in the order to be # executed, generally most specific tests to least specific tests. TEST_PROG=testhdf5 diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in index c8edd4d..8711eef 100644 --- a/c++/test/Makefile.in +++ b/c++/test/Makefile.in @@ -99,14 +99,12 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(srcdir)/H5srcdir_str.h.in $(top_srcdir)/bin/depcomp \ $(top_srcdir)/bin/test-driver - -# Shared C++ libraries aren't universally supported. -@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = c++/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -406,10 +404,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \ AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) +AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -441,7 +438,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -460,17 +456,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -533,7 +526,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -548,10 +540,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -665,10 +653,10 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files -CHECK_CLEANFILES = *.chkexe *.chklog *.clog tattr_multi.h5 tfattrs.h5 \ - tattr_scalar.h5 tattr_compound.h5 tattr_dtype.h5 \ +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 tattr_multi.h5 \ + tfattrs.h5 tattr_scalar.h5 tattr_compound.h5 tattr_dtype.h5 \ tattr_basic.h5 # These are our main targets. They should be listed in the order to be diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp index fc0ea3a..9f1916d 100644 --- a/c++/test/dsets.cpp +++ b/c++/test/dsets.cpp @@ -56,11 +56,12 @@ const H5std_string DSET_TCONV_NAME ("tconv"); const H5std_string DSET_COMPRESS_NAME("compressed"); const H5std_string DSET_BOGUS_NAME ("bogus"); +/* Temporary filter IDs used for testing */ const int H5Z_FILTER_BOGUS = 305; -// Local prototypes static size_t filter_bogus(unsigned int flags, size_t cd_nelmts, const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf); +// UNUSED variables caused warning, but taking them out caused failure. /*------------------------------------------------------------------------- * Function: test_create @@ -458,13 +459,10 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{ *------------------------------------------------------------------------- */ static size_t -/*bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts, - const unsigned int UNUSED cd_values[], size_t nbytes, - size_t UNUSED *buf_size, void UNUSED **buf) -BMR: removed UNUSED for now until asking Q. or R. to pass compilation*/ filter_bogus(unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[], size_t nbytes, size_t *buf_size, void **buf) +// UNUSED variables caused warning, but taking them out caused failure. { return nbytes; } diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp index 29f50f8..c9422ce 100644 --- a/c++/test/tattr.cpp +++ b/c++/test/tattr.cpp @@ -53,9 +53,9 @@ const size_t ATTR_MAX_DIMS = 7; /* 3-D dataset with fixed dimensions */ const int SPACE1_RANK = 3; -const int SPACE1_DIM1 = 3; -const int SPACE1_DIM2 = 15; -const int SPACE1_DIM3 = 13; +const hsize_t SPACE1_DIM1 = 3; +const hsize_t SPACE1_DIM2 = 15; +const hsize_t SPACE1_DIM3 = 13; /* Object names */ const H5std_string DSET1_NAME("Dataset1"); @@ -65,7 +65,7 @@ const H5std_string TYPE1_NAME("/Type"); /* Attribute Rank & Dimensions */ const H5std_string ATTR1_NAME("Attr1"); const int ATTR1_RANK = 1; -const int ATTR1_DIM1 = 3; +const hsize_t ATTR1_DIM1 = 3; int attr_data1[ATTR1_DIM1]={512,-234,98123}; /* Test data for 1st attribute */ // File attribute, using the same rank and dimensions as ATTR1_NAME's @@ -74,8 +74,8 @@ const H5std_string FATTR2_NAME("File Attr2"); const H5std_string ATTR2_NAME("Attr2"); const int ATTR2_RANK = 2; -const int ATTR2_DIM1 = 2; -const int ATTR2_DIM2 = 2; +const hsize_t ATTR2_DIM1 = 2; +const hsize_t ATTR2_DIM2 = 2; int attr_data2[ATTR2_DIM1][ATTR2_DIM2]={{7614,-416},{197814,-3}}; /* Test data for 2nd attribute */ const H5std_string ATTR3_NAME("Attr3"); @@ -123,7 +123,7 @@ static void test_attr_basic_write() hsize_t dims2[] = {ATTR1_DIM1}; hsize_t dims3[] = {ATTR2_DIM1,ATTR2_DIM2}; int read_data1[ATTR1_DIM1]={0}; // Buffer for reading 1st attribute - int i; + hsize_t i; // Output message about test being performed SUBTEST("Basic Attribute Writing Functions"); @@ -384,7 +384,7 @@ static void test_attr_getname() static void test_attr_rename() { int read_data1[ATTR1_DIM1]={0}; // Buffer for reading the attribute - int i; + hsize_t i; // Output message about test being performed SUBTEST("Checking for Existence and Renaming Attribute"); @@ -493,7 +493,7 @@ static void test_attr_rename() ********************************************************************/ static void test_attr_basic_read() { - int i, j; + hsize_t i, j; // Output message about test being performed SUBTEST("Basic Attribute Reading Functions"); @@ -624,7 +624,6 @@ static void test_attr_compound_read() size_t size; // Attribute datatype size as stored in file size_t offset; // Attribute datatype field offset struct attr4_struct read_data4[ATTR4_DIM1][ATTR4_DIM2]; // Buffer for reading 4th attribute - hsize_t i,j; // Output message about test being performed SUBTEST("Basic Attribute Functions"); @@ -654,7 +653,7 @@ static void test_attr_compound_read() // Get the dims of the dataspace and verify them int ndims = space.getSimpleExtentDims(dims); - if(dims[0]!=ATTR4_DIM1) + verify_val(ndims, ATTR4_RANK, "DataSpace::getSimpleExtentDims", __LINE__, __FILE__); verify_val((long)dims[0], (long)ATTR4_DIM1, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__); verify_val((long)dims[1], (long)ATTR4_DIM2, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__); @@ -673,13 +672,14 @@ static void test_attr_compound_read() // Verify that the fields have the same names as when the type // was created - for(i=0; i<fields; i++) + int j; + for(j=0; j<fields; j++) { - H5std_string fieldname = datatype.getMemberName(i); + H5std_string fieldname = datatype.getMemberName(j); if(!((fieldname == ATTR4_FIELDNAME1) || (fieldname == ATTR4_FIELDNAME2) || (fieldname == ATTR4_FIELDNAME3))) - TestErrPrintf("%d:invalid field name for field #%d: %s\n",__LINE__,i,fieldname.c_str()); + TestErrPrintf("%d:invalid field name for field #%d: %s\n",__LINE__,j,fieldname.c_str()); } /* end for */ offset = datatype.getMemberOffset(0); @@ -729,23 +729,38 @@ static void test_attr_compound_read() attr.read(datatype, read_data4); // Verify values read in - for(i=0; i<ATTR4_DIM1; i++) - for(j=0; j<ATTR4_DIM2; j++) - if(HDmemcmp(&attr_data4[i][j],&read_data4[i][j],sizeof(struct attr4_struct))) { - TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].i=%d, read_data4[%d][%d].i=%d\n",__LINE__,i,j,attr_data4[i][j].i,i,j,read_data4[i][j].i); - TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].d=%f, read_data4[%d][%d].d=%f\n",__LINE__,i,j,attr_data4[i][j].d,i,j,read_data4[i][j].d); - TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].c=%c, read_data4[%d][%d].c=%c\n",__LINE__,i,j,attr_data4[i][j].c,i,j,read_data4[i][j].c); + hsize_t ii, jj; + for(ii=0; ii<ATTR4_DIM1; ii++) + for(jj=0; jj<ATTR4_DIM2; jj++) + if(HDmemcmp(&attr_data4[ii][jj],&read_data4[ii][jj],sizeof(struct attr4_struct))) { + TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].i=%d, read_data4[%d][%d].i=%d\n",__LINE__,ii,jj,attr_data4[ii][jj].i,ii,jj,read_data4[ii][jj].i); + TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].d=%f, read_data4[%d][%d].d=%f\n",__LINE__,ii,jj,attr_data4[ii][jj].d,ii,jj,read_data4[ii][jj].d); + TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].c=%c, read_data4[%d][%d].c=%c\n",__LINE__,ii,jj,attr_data4[ii][jj].c,ii,jj,read_data4[ii][jj].c); } /* end if */ // Verify name H5std_string attr_name = attr.getName(); verify_val(attr_name, ATTR4_NAME, "Attribute::getName", __LINE__, __FILE__); - PASSED(); } // end try block catch (Exception E) { issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, E.getCDetailMsg()); } + + try + { + // Now, try truncating the file to make sure reference counting is good. + // If any references to ids in the previous block are left unterminated, + // the truncating will fail, because the file will not be closed in + // the file.close() above. + H5File file1(FILE_COMPOUND, H5F_ACC_TRUNC); + + PASSED(); + } // end try block + + catch (FileIException E) { + issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, "Unable to truncate file, possibly because some objects are left opened"); + } } // test_attr_compound_read() /**************************************************************** @@ -928,7 +943,7 @@ static void test_attr_mult_read() int read_data1[ATTR1_DIM1]={0}; // Buffer for reading 1st attribute int read_data2[ATTR2_DIM1][ATTR2_DIM2]={{0}}; // Buffer for reading 2nd attribute double read_data3[ATTR3_DIM1][ATTR3_DIM2][ATTR3_DIM3]={{{0}}}; // Buffer for reading 3rd attribute - int i,j,k; + hsize_t i,j,k; // Output message about test being performed SUBTEST("Multiple Attribute Reading Functions"); @@ -959,7 +974,7 @@ static void test_attr_mult_read() // Get the dims of the dataspace and verify them hsize_t dims[ATTR_MAX_DIMS]; // Attribute dimensions int ndims = space.getSimpleExtentDims(dims); - if(dims[0]!=ATTR1_DIM1) + if ((long)dims[0] != (long)ATTR1_DIM1) TestErrPrintf("%d:attribute dimensions different: dims[0]=%d, should be %d\n",__LINE__,(int)dims[0],ATTR1_DIM1); /* Verify Datatype */ @@ -1010,10 +1025,9 @@ static void test_attr_mult_read() // Get the dims of the dataspace and verify them ndims = space.getSimpleExtentDims(dims); - if(dims[0]!=ATTR2_DIM1) - TestErrPrintf("%d:attribute dimensions different: dims[0]=%d, should be %d\n",__LINE__,(int)dims[0],ATTR2_DIM1); - if(dims[1]!=ATTR2_DIM2) - TestErrPrintf("%d:attribute dimensions different: dims[1]=%d, should be %d\n",__LINE__,(int)dims[1],ATTR2_DIM2); + + verify_val((long)dims[0], (long)ATTR2_DIM1, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__); + verify_val((long)dims[1], (long)ATTR2_DIM2, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__); /* Verify Datatype */ diff --git a/c++/test/tcompound.cpp b/c++/test/tcompound.cpp index 156f438..dbf2f0c 100644 --- a/c++/test/tcompound.cpp +++ b/c++/test/tcompound.cpp @@ -780,7 +780,7 @@ static void test_compound_set_size() CompType dtype_tmp = file.openCompType("dtype"); // Make a copy of the data type - dtype = dtype_tmp; + dtype.copy(dtype_tmp); // Verify that the compound is not packed // packed = dtype_tmp.packed(); // not until C library provides API diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp index ad5e6fc..f3bbb16 100644 --- a/c++/test/tfile.cpp +++ b/c++/test/tfile.cpp @@ -330,6 +330,32 @@ static void test_file_open() verify_val(iparm1, F2_SYM_INTERN_K, "FileCreatPropList::getSymk", __LINE__, __FILE__); verify_val(iparm2, F2_SYM_LEAF_K, "FileCreatPropList::getSymk", __LINE__, __FILE__); + // Test H5File constructor with existing file id + H5File file2(file1.getId()); + file1.close(); + + // Try truncating the file, and it should fail because the file is + // still opened with file2. + try { + H5File file3 (FILE2, H5F_ACC_TRUNC); // should throw E + + // Should FAIL but didn't, so throw an invalid action exception + throw InvalidActionException("H5File constructor", "Attempt truncating an opened file."); + } + catch( FileIException E ) // catching H5F_ACC_TRUNC on opened file + {} // do nothing, FAIL expected + + // Now, really close the file. + file2.close(); + + // Truncating should succeed now. + H5File file3(FILE2, H5F_ACC_TRUNC); + + // Opening another file to file3 object, FILE2 should be closed, so + // the next attempt to truncate FILE2 should succeed. + file3.openFile(FILE1, H5F_ACC_RDONLY); + H5File file4(FILE2, H5F_ACC_TRUNC); + PASSED(); } // end of try block @@ -501,6 +527,7 @@ const H5std_string FATTR1_NAME ("file attribute 1"); const H5std_string FATTR2_NAME ("file attribute 2"); int fattr_data[ATTR1_DIM1]={512,-234,98123}; /* Test data for file attribute */ int dattr_data[ATTR1_DIM1]={256,-123,1000}; /* Test data for dataset attribute */ + static void test_file_attribute() { int rdata[ATTR1_DIM1]; @@ -602,6 +629,119 @@ static void test_file_attribute() } } // test_file_attribute() +const H5std_string FILE6("tfile5.h5"); +const H5std_string ROOTGROUP("/"); +const H5std_string GROUP1("/G1"); +const H5std_string SUBGROUP3("/G1/G3"); + +/*------------------------------------------------------------------------- + * Function: test_libver_bounds_real + * + * Purpose: Verify that a file created and modified with the + * specified libver bounds has the specified object header + * versions for the right objects. + * + * Return: None + * + * Programmer: Binh-Minh Ribler (use C version) + * March, 2015 + * + *------------------------------------------------------------------------- + */ +static void test_libver_bounds_real( + H5F_libver_t libver_create, unsigned oh_vers_create, + H5F_libver_t libver_mod, unsigned oh_vers_mod) +{ + try { + + /* + * Create a new file using the default creation property and access property + * with latest library version. + */ + FileAccPropList fapl; + fapl.setLibverBounds(libver_create, H5F_LIBVER_LATEST); + H5File file(FILE6, H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, fapl); + + /* + * Make sure the root group has the correct object header version + */ + unsigned obj_version = file.childObjVersion(ROOTGROUP); + verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__); + + /* + * Reopen the file and make sure the root group still has the correct version + */ + file.close(); + + fapl.setLibverBounds(libver_mod, H5F_LIBVER_LATEST); + + file.openFile(FILE6, H5F_ACC_RDWR, fapl); + + obj_version = file.childObjVersion(ROOTGROUP); + verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__); + + /* + * Create a group named "/G1" in the file, and make sure it has the correct + * object header version + */ + Group group = file.createGroup(GROUP1); + + obj_version = file.childObjVersion(GROUP1); + verify_val(obj_version, oh_vers_mod, "H5File::childObjVersion", __LINE__, __FILE__); + + group.close(); // close "/G1" + + /* + * Create a group named "/G1/G3" in the file, and make sure it has the + * correct object header version + */ + group = file.createGroup(SUBGROUP3); + + obj_version = group.childObjVersion(SUBGROUP3); + verify_val(obj_version, oh_vers_mod, "H5File::childObjVersion", __LINE__, __FILE__); + + group.close(); // close "/G1/G3" + + /* + * Make sure the root group still has the correct object header version + */ + obj_version = file.childObjVersion(ROOTGROUP); + verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__); + + // Everything should be closed as they go out of scope + } // end of try block + + catch (Exception E) { + issue_fail_msg("test_libver_bounds_real()", __LINE__, __FILE__, E.getCDetailMsg()); + } + +} /* end test_libver_bounds_real() */ + +/*------------------------------------------------------------------------- + * + * Function: test_libver_bounds + * + * Purpose: Verify that a file created and modified with various + * libver bounds is handled correctly. + * + * Return: None + * + * Programmer: Binh-Minh Ribler (use C version) + * March 2015 + * + *------------------------------------------------------------------------- + */ +static void test_libver_bounds() +{ + // Output message about test being performed + SUBTEST("Setting library version bounds"); + + /* Run the tests */ + test_libver_bounds_real(H5F_LIBVER_EARLIEST, H5O_VERSION_1, H5F_LIBVER_LATEST, H5O_VERSION_2); + test_libver_bounds_real(H5F_LIBVER_LATEST, H5O_VERSION_2, H5F_LIBVER_EARLIEST, H5O_VERSION_1); + PASSED(); +} /* end test_libver_bounds() */ + /*------------------------------------------------------------------------- * Function: test_file * @@ -629,6 +769,7 @@ void test_file() test_file_size(); // Test file size test_file_name(); // Test getting file's name test_file_attribute(); // Test file attribute feature + test_libver_bounds(); // Test format version } // test_file() @@ -655,4 +796,5 @@ void cleanup_file() HDremove(FILE3.c_str()); HDremove(FILE4.c_str()); HDremove(FILE5.c_str()); + HDremove(FILE6.c_str()); } // cleanup_file diff --git a/c++/test/tfilter.cpp b/c++/test/tfilter.cpp index 854c7bb..3edb83a 100644 --- a/c++/test/tfilter.cpp +++ b/c++/test/tfilter.cpp @@ -57,9 +57,13 @@ static herr_t test_filter_internal(hid_t fid, const char *name, hid_t dcpl, #endif /* Temporary filter IDs used for testing */ -#define H5Z_FILTER_BOGUS 305 +const int H5Z_FILTER_BOGUS = 305; + +#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead static size_t filter_bogus(unsigned int flags, size_t cd_nelmts, const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf); +#endif +static size_t filter_bogus(size_t nbytes); /* This message derives from H5Z */ const H5Z_class2_t H5Z_BOGUS[1] = {{ H5Z_CLASS_T_VERS, /* H5Z_class_t version */ @@ -88,9 +92,12 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{ *------------------------------------------------------------------------- */ static size_t +#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead filter_bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts, const unsigned int UNUSED *cd_values, size_t nbytes, size_t UNUSED *buf_size, void UNUSED **buf) +#endif +filter_bogus(size_t nbytes) { return nbytes; } @@ -239,7 +246,8 @@ static void test_szip_filter(H5File& file1) #else /* H5_HAVE_FILTER_SZIP */ SUBTEST("szip filter"); SKIPPED(); - puts(" Szip filter not enabled"); + H5std_string fname = file1.getFileName(); + cerr << " Szip filter not enabled for file '" << fname << "'" << endl; #endif /* H5_HAVE_FILTER_SZIP */ } // test_szip_filter diff --git a/c++/test/tobject.cpp b/c++/test/tobject.cpp index b86d7cb..2381ec2 100644 --- a/c++/test/tobject.cpp +++ b/c++/test/tobject.cpp @@ -181,19 +181,39 @@ static void test_get_objname_ontypes() Group grp = file.createGroup ("typetests"); // Create a datatype and save it + IntType inttype(PredType::STD_B8LE); + inttype.commit(file, "INT type of STD_B8LE"); + + // Close the type then open it again to test getting its name + inttype.close(); + inttype = file.openIntType("INT type of STD_B8LE"); + + // Get and verify its name + H5std_string inttype_name = inttype.getObjName(); + verify_val(inttype_name, "/INT type of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__); + + // Make copy of a predefined type and save it DataType dtype(PredType::STD_B8LE); dtype.commit(file, "STD_B8LE"); + // Close the data type and file + dtype.close(); + file.close(); + + // Re-open the file and the data type to test getting its name + file.openFile(FILE_OBJECTS, H5F_ACC_RDWR); + dtype = file.openDataType("STD_B8LE"); + // Get and verify its name H5std_string type_name = dtype.getObjName(); - verify_val(type_name, "/STD_B8LE", "DataSet::getObjName", __LINE__, __FILE__); + verify_val(type_name, "/STD_B8LE", "DataType::getObjName", __LINE__, __FILE__); // Test getting type's name from copied type DataType copied_type; copied_type.copy(dtype); copied_type.commit(file, "copy of STD_B8LE"); type_name = copied_type.getObjName(); - verify_val(type_name, "/copy of STD_B8LE", "DataSet::getObjName", __LINE__, __FILE__); + verify_val(type_name, "/copy of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__); // Test copying an integer predefined type IntType new_int_type(PredType::NATIVE_INT); @@ -201,14 +221,14 @@ static void test_get_objname_ontypes() // Name this datatype new_int_type.commit(grp, "IntType NATIVE_INT"); ssize_t name_len = new_int_type.getObjName(type_name); // default len - verify_val(type_name, "/typetests/IntType NATIVE_INT", "DataSet::getObjName", __LINE__, __FILE__); + verify_val(name_len, (ssize_t)HDstrlen("/typetests/IntType NATIVE_INT"), "DataType::getObjName", __LINE__, __FILE__); + verify_val(type_name, "/typetests/IntType NATIVE_INT", "DataType::getObjName", __LINE__, __FILE__); // Close everything or they can be closed when objects go out of scope dtype.close(); copied_type.close(); new_int_type.close(); grp.close(); - file.close(); PASSED(); } // end top try block diff --git a/c++/test/trefer.cpp b/c++/test/trefer.cpp index dcfb644..9d072be 100644 --- a/c++/test/trefer.cpp +++ b/c++/test/trefer.cpp @@ -462,11 +462,11 @@ test_reference_group(void) // Check number of objects in the group dereferenced by constructor hsize_t nobjs = refgroup.getNumObjs(); - verify_val(nobjs, 3, "H5Group::getNumObjs",__LINE__,__FILE__); + verify_val(nobjs, (hsize_t)3, "H5Group::getNumObjs",__LINE__,__FILE__); // Check number of objects in the group dereferenced by ::reference nobjs = group.getNumObjs(); - verify_val(nobjs, 3, "H5Group::getNumObjs",__LINE__,__FILE__); + verify_val(nobjs, (hsize_t)3, "H5Group::getNumObjs",__LINE__,__FILE__); // Check getting file name given the group dereferenced via constructor H5std_string fname = refgroup.getFileName(); @@ -479,7 +479,7 @@ test_reference_group(void) // Unlink one of the objects in the dereferenced group, and re-check refgroup.unlink(GROUPNAME2); nobjs = refgroup.getNumObjs(); - verify_val(nobjs, 2, "H5Group::getNumObjs",__LINE__,__FILE__); + verify_val(nobjs, (hsize_t)2, "H5Group::getNumObjs",__LINE__,__FILE__); // Close resources group.close(); @@ -686,43 +686,43 @@ test_reference_region_1D(void) reg_sp.getSelectHyperBlocklist((hsize_t)0, (hsize_t)nelms, coords); // Verify values in the list - verify_val(coords[0], 2, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[1], 3, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[2], 7, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[3], 8, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[4], 12, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[5], 13, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[6], 17, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[7], 18, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[8], 22, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[9], 23, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[10], 27, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[11], 28, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[12], 32, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[13], 33, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[14], 37, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[15], 38, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[16], 42, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[17], 43, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[18], 47, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[19], 48, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[20], 52, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[21], 53, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[22], 57, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[23], 58, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[24], 62, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[25], 63, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[26], 67, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[27], 68, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[28], 72, "Hyperslab Coordinates",__LINE__,__FILE__); - verify_val(coords[29], 73, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[0], (hsize_t)2, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[1], (hsize_t)3, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[2], (hsize_t)7, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[3], (hsize_t)8, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[4],(hsize_t)12, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[5],(hsize_t)13, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[6],(hsize_t)17, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[7],(hsize_t)18, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[8],(hsize_t)22, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[9],(hsize_t)23, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[10],(hsize_t)27, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[11],(hsize_t)28, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[12],(hsize_t)32, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[13],(hsize_t)33, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[14],(hsize_t)37, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[15],(hsize_t)38, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[16],(hsize_t)42, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[17],(hsize_t)43, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[18],(hsize_t)47, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[19],(hsize_t)48, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[20],(hsize_t)52, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[21],(hsize_t)53, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[22],(hsize_t)57, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[23],(hsize_t)58, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[24],(hsize_t)62, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[25],(hsize_t)63, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[26],(hsize_t)67, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[27],(hsize_t)68, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[28],(hsize_t)72, "Hyperslab Coordinates",__LINE__,__FILE__); + verify_val(coords[29],(hsize_t)73, "Hyperslab Coordinates",__LINE__,__FILE__); HDfree(coords); // Check boundaries reg_sp.getSelectBounds(low, high); - verify_val(low[0], 2, "DataSpace::getSelectBounds",__LINE__,__FILE__); - verify_val(high[0], 73, "DataSpace::getSelectBounds",__LINE__,__FILE__); + verify_val(low[0],(hsize_t)2, "DataSpace::getSelectBounds",__LINE__,__FILE__); + verify_val(high[0],(hsize_t)73, "DataSpace::getSelectBounds",__LINE__,__FILE__); /* Close region space */ reg_sp.close(); @@ -760,8 +760,8 @@ test_reference_region_1D(void) // Check boundaries elm_sp.getSelectBounds(low, high); - verify_val(low[0], 3, "DataSpace::getSelectBounds",__LINE__,__FILE__); - verify_val(high[0], 97, "DataSpace::getSelectBounds",__LINE__,__FILE__); + verify_val(low[0],(hsize_t)3, "DataSpace::getSelectBounds",__LINE__,__FILE__); + verify_val(high[0],(hsize_t)97, "DataSpace::getSelectBounds",__LINE__,__FILE__); // Close element space elm_sp.close(); diff --git a/c++/test/ttypes.cpp b/c++/test/ttypes.cpp index e9e1427..2e64051 100644 --- a/c++/test/ttypes.cpp +++ b/c++/test/ttypes.cpp @@ -109,7 +109,7 @@ static void test_classes() { SUBTEST("PredType::getClass()"); try { - int curr_nerrors = GetTestNumErrs(); + // maybe later, int curr_nerrors = GetTestNumErrs(); // PredType::NATIVE_INT should be in H5T_INTEGER class H5T_class_t tcls = PredType::NATIVE_INT.getClass(); @@ -283,10 +283,16 @@ static void test_query() tid2.close(); file.close(); + // Try truncating the file to make sure reference counting is good. + // If any references to ids of tid1 and tid2 are left unterminated, + // the truncating will fail, because the file will not be closed in + // the file.close() above. + H5File file1(FILENAME[2], H5F_ACC_TRUNC); + PASSED(); } // end of try block catch (Exception E) { - issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg()); + issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg()); } } // test_query @@ -467,27 +473,20 @@ static void test_named () trans_type.setPrecision(256); trans_type.close(); - /* - * Close the committed type and reopen it. It should return a named type. -* This had something to do with the way IntType was returned and assigned -and caused itype.committed not working correctly. So, use another_type for -now. + // Close the committed type and reopen it. It should be a named type. itype.close(); itype = file.openIntType("native-int"); iscommitted = itype.committed(); -*/ - IntType another_type = file.openIntType("native-int"); - iscommitted = another_type.committed(); if (!iscommitted) throw InvalidActionException("IntType::committed()", "Opened named types should be named types!"); // Create a dataset that uses the named type, then get the dataset's // datatype and make sure it's a named type. - DataSet dset = file.createDataSet("dset1", another_type, space); + DataSet dset = file.createDataSet("dset1", itype, space); ds_type = new DataType(dset.getDataType()); iscommitted = ds_type->committed(); if (!iscommitted) - throw InvalidActionException("IntType::committed()", "1 Dataset type should be named type!"); + throw InvalidActionException("IntType::committed()", "Dataset type should be named type!"); dset.close(); ds_type->close(); delete ds_type; diff --git a/c++/test/tvlstr.cpp b/c++/test/tvlstr.cpp index a2669db..7c81a8e 100644 --- a/c++/test/tvlstr.cpp +++ b/c++/test/tvlstr.cpp @@ -60,6 +60,7 @@ const hsize_t SPACE1_DIM1 = 4; ** Note: exact copy from the C version. ** (Not used now) ****************************************************************/ +#if 0 // not used now static void *test_vlstr_alloc_custom(size_t size, void *info) { void *ret_value=NULL; // Pointer to return @@ -81,6 +82,7 @@ static void *test_vlstr_alloc_custom(size_t size, void *info) return(ret_value); } +#endif /**************************************************************** ** @@ -92,6 +94,7 @@ static void *test_vlstr_alloc_custom(size_t size, void *info) ** Note: exact copy from the C version. ** (Not used now) ****************************************************************/ +#if 0 // not used now static void test_vlstr_free_custom(void *_mem, void *info) { unsigned char *mem; @@ -111,6 +114,7 @@ static void test_vlstr_free_custom(void *_mem, void *info) HDfree(mem); } // end if } +#endif /*------------------------------------------------------------------------- * Function: test_vlstring_dataset @@ -256,7 +260,7 @@ static void test_vlstring_array_dataset() char *string_ds_check[SPACE1_DIM1]; dataset.read(string_ds_check, vlst); - int ii; + hsize_t ii; for (ii = 0; ii < SPACE1_DIM1; ii++) { if(HDstrcmp(string_ds_check[ii], string_ds_array[ii])!=0) @@ -351,25 +355,25 @@ static void test_vlstrings_special() dataset.read(rdata, vlst); // Check data read in. - hsize_t i; // counting variable - for (i=0; i<SPACE1_DIM1; i++) - if(rdata[i]!=NULL) - TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]); + hsize_t ii; // counting variable + for (ii=0; ii<SPACE1_DIM1; ii++) + if(rdata[ii]!=NULL) + TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)ii,rdata[ii]); // Write dataset to disk, then read it back. dataset.write(wdata, vlst); dataset.read(rdata, vlst); // Compare data read in. - for (i = 0; i < SPACE1_DIM1; i++) { - size_t wlen = HDstrlen(wdata[i]); - size_t rlen = HDstrlen(rdata[i]); + for (ii = 0; ii < SPACE1_DIM1; ii++) { + size_t wlen = HDstrlen(wdata[ii]); + size_t rlen = HDstrlen(rdata[ii]); if(wlen != rlen) { - TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%u, strlen(rdata[%d])=%u\n", (int)i, (unsigned)wlen, (int)i, (unsigned)rlen); + TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%u, strlen(rdata[%d])=%u\n", (int)ii, (unsigned)wlen, (int)ii, (unsigned)rlen); continue; } // end if - if(HDstrcmp(wdata[i],rdata[i]) != 0) { - TestErrPrintf("VL data values don't match!, wdata[%d]=%s, rdata[%d]=%s\n", (int)i, wdata[i], (int)i, rdata[i]); + if(HDstrcmp(wdata[ii],rdata[ii]) != 0) { + TestErrPrintf("VL data values don't match!, wdata[%d]=%s, rdata[%d]=%s\n", (int)ii, wdata[ii], (int)ii, rdata[ii]); continue; } // end if } // end for @@ -398,9 +402,9 @@ static void test_vlstrings_special() dataset.read(rdata, vlst); // Check data read in. - for (i=0; i<SPACE1_DIM1; i++) - if(rdata[i]!=NULL) - TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]); + for (ii=0; ii<SPACE1_DIM1; ii++) + if(rdata[ii]!=NULL) + TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)ii,rdata[ii]); // Try to write nil strings to disk. dataset.write(wdata2, vlst); @@ -409,9 +413,9 @@ static void test_vlstrings_special() dataset.read(rdata, vlst); // Check data read in. - for (i=0; i<SPACE1_DIM1; i++) - if(rdata[i]!=NULL) - TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]); + for (ii=0; ii<SPACE1_DIM1; ii++) + if(rdata[ii]!=NULL) + TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)ii,rdata[ii]); // Close objects and file. dataset.close(); @@ -793,7 +797,7 @@ static void test_vlstring_array_attribute() char *string_att_check[SPACE1_DIM1]; gr_attr.read(vlst, &string_att_check); - int ii; + hsize_t ii; for (ii = 0; ii < SPACE1_DIM1; ii++) { if(HDstrcmp(string_att_check[ii], string_att_array[ii])!=0) diff --git a/config/cce-fflags b/config/cce-fflags new file mode 100644 index 0000000..896e711 --- /dev/null +++ b/config/cce-fflags @@ -0,0 +1,73 @@ +# -*- shell-script -*- +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the 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. + + +# This file should be sourced into configure if the compiler is the +# Cray Compiling Environment (CCE) compiler or a derivative. It is careful not to do anything +# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes' +# + +# Get the compiler version in a way that works for cce +# unless a compiler version is already known +# +# cc_vendor: The compiler name: Cray +# cc_version: Version number: 8.3.0 +# +if test X = "X$f9x_flags_set"; then + f9x_version="`$FC $FCFLAGS $H5_FCFLAGS -V 2>&1 |grep 'Cray'`" + if test X != "X$f9x_version"; then + f9x_vendor=cce + f9x_version=`echo $f9x_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'` + echo "compiler '$FC' is Cray $f9x_vendor-$f9x_version" + fc_version_info=$f9x_version + fi +fi + +# Common Cray flags for various situations +if test "X-cce" = "X-$f9x_vendor"; then + # Insert section about version specific problems from compiler flags here, + # if necessary. + + arch= + # Architecture-specific flags + # Nothing currently. (Uncomment code below and modify to add any) + #case "$host_os-$host_cpu" in + # *-i686) + # arch="-march=i686" + # ;; + #esac + + # General + H5_FCFLAGS="${H5_FCFLAGS} -hnocaf" + + # Production + # -Wl,-s to remove all symbols for smaller file + PROD_FCFLAGS="-O3 -Wl,-s" + + # Debug + DEBUG_FCFLAGS="-g -O0" + + # Profile + # Use this for profiling with gprof + PROFILE_FCFLAGS="-g -p" + + # Flags are set + f9x_flags_set=yes +fi + +# Clear f9x info if no flags set +if test "X-$f9x_flags_set" = "X-"; then + f9x_vendor= + f9x_version= +fi diff --git a/config/cce-flags b/config/cce-flags new file mode 100644 index 0000000..a34fcbe --- /dev/null +++ b/config/cce-flags @@ -0,0 +1,79 @@ +# -*- shell-script -*- +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the 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. + + +# This file should be sourced into configure if the compiler is the +# Cray Compiling Environment (CCE) compiler or a derivative. It is careful not to do anything +# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes' +# + +# Get the compiler version in a way that works for cce +# unless a compiler version is already known +# +# cc_vendor: The compiler name: Cray +# cc_version: Version number: 8.3.0 +# +if test X = "X$cc_flags_set"; then + cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |grep 'Cray'`" + if test X != "X$cc_version"; then + cc_vendor=cce + cc_version=`echo $cc_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'` + echo "compiler '$CC' is Cray $cc_vendor-$cc_version" + cc_version_info=$cc_version + cxx_version_info=$cc_version + fi +fi + +# Common Cray flags for various situations +if test "X-cce" = "X-$cc_vendor"; then + # Insert section about version specific problems from compiler flags here, + # if necessary. + + arch= + # Architecture-specific flags + # Nothing currently. (Uncomment code below and modify to add any) + #case "$host_os-$host_cpu" in + # *-i686) + # arch="-march=i686" + # ;; + #esac + + # General + # Default to C99 standard. + H5_CFLAGS="${H5_CFLAGS:--hc99 $arch}" + + # Production + # -Wl,-s to remove all symbols for smaller file + PROD_CFLAGS="-O3 -Wl,-s" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -O0" + DEBUG_CPPFLAGS= + + # Profile + # Use this for profiling with gprof + PROFILE_CFLAGS="-g -p" + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + +fi + +# Clear cc info if no flags set +if test "X-$cc_flags_set" = "X-"; then + cc_vendor= + cc_version= +fi diff --git a/config/cmake/CMakePackageConfigHelpers.cmake b/config/cmake/CMakePackageConfigHelpers.cmake deleted file mode 100644 index c6dc141..0000000 --- a/config/cmake/CMakePackageConfigHelpers.cmake +++ /dev/null @@ -1,321 +0,0 @@ -#.rst: -# CMakePackageConfigHelpers -# ------------------------- -# -# Helpers functions for creating config files that can be included by other -# projects to find and use a package. -# -# Adds the :command:`configure_package_config_file()` and -# :command:`write_basic_package_version_file()` commands. -# -# Generating a Package Configuration File -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# -# .. command:: configure_package_config_file -# -# Create a config file for a project:: -# -# configure_package_config_file(<input> <output> INSTALL_DESTINATION <path> -# [PATH_VARS <var1> <var2> ... <varN>] -# [NO_SET_AND_CHECK_MACRO] -# [NO_CHECK_REQUIRED_COMPONENTS_MACRO] -# [INSTALL_PREFIX <path>]) -# -# -# ``configure_package_config_file()`` should be used instead of the plain -# :command:`configure_file()` command when creating the ``<Name>Config.cmake`` -# or ``<Name>-config.cmake`` file for installing a project or library. It helps -# making the resulting package relocatable by avoiding hardcoded paths in the -# installed ``Config.cmake`` file. -# -# In a ``FooConfig.cmake`` file there may be code like this to make the install -# destinations know to the using project: -# -# .. code-block:: cmake -# -# set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" ) -# set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" ) -# set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" ) -# ...logic to determine installedPrefix from the own location... -# set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" ) -# -# All 4 options shown above are not sufficient, since the first 3 hardcode the -# absolute directory locations, and the 4th case works only if the logic to -# determine the ``installedPrefix`` is correct, and if ``CONFIG_INSTALL_DIR`` -# contains a relative path, which in general cannot be guaranteed. This has the -# effect that the resulting ``FooConfig.cmake`` file would work poorly under -# Windows and OSX, where users are used to choose the install location of a -# binary package at install time, independent from how -# :variable:`CMAKE_INSTALL_PREFIX` was set at build/cmake time. -# -# Using ``configure_package_config_file`` helps. If used correctly, it makes -# the resulting ``FooConfig.cmake`` file relocatable. Usage: -# -# 1. write a ``FooConfig.cmake.in`` file as you are used to -# 2. insert a line containing only the string ``@PACKAGE_INIT@`` -# 3. instead of ``set(FOO_DIR "@SOME_INSTALL_DIR@")``, use -# ``set(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")`` (this must be after the -# ``@PACKAGE_INIT@`` line) -# 4. instead of using the normal :command:`configure_file()`, use -# ``configure_package_config_file()`` -# -# -# -# The ``<input>`` and ``<output>`` arguments are the input and output file, the -# same way as in :command:`configure_file()`. -# -# The ``<path>`` given to ``INSTALL_DESTINATION`` must be the destination where -# the ``FooConfig.cmake`` file will be installed to. This path can either be -# absolute, or relative to the ``INSTALL_PREFIX`` path. -# -# The variables ``<var1>`` to ``<varN>`` given as ``PATH_VARS`` are the -# variables which contain install destinations. For each of them the macro will -# create a helper variable ``PACKAGE_<var...>``. These helper variables must be -# used in the ``FooConfig.cmake.in`` file for setting the installed location. -# They are calculated by ``configure_package_config_file`` so that they are -# always relative to the installed location of the package. This works both for -# relative and also for absolute locations. For absolute locations it works -# only if the absolute location is a subdirectory of ``INSTALL_PREFIX``. -# -# If the ``INSTALL_PREFIX`` argument is passed, this is used as base path to -# calculate all the relative paths. The ``<path>`` argument must be an absolute -# path. If this argument is not passed, the :variable:`CMAKE_INSTALL_PREFIX` -# variable will be used instead. The default value is good when generating a -# FooConfig.cmake file to use your package from the install tree. When -# generating a FooConfig.cmake file to use your package from the build tree this -# option should be used. -# -# By default ``configure_package_config_file`` also generates two helper macros, -# ``set_and_check()`` and ``check_required_components()`` into the -# ``FooConfig.cmake`` file. -# -# ``set_and_check()`` should be used instead of the normal ``set()`` command for -# setting directories and file locations. Additionally to setting the variable -# it also checks that the referenced file or directory actually exists and fails -# with a ``FATAL_ERROR`` otherwise. This makes sure that the created -# ``FooConfig.cmake`` file does not contain wrong references. -# When using the ``NO_SET_AND_CHECK_MACRO``, this macro is not generated -# into the ``FooConfig.cmake`` file. -# -# ``check_required_components(<package_name>)`` should be called at the end of -# the ``FooConfig.cmake`` file if the package supports components. This macro -# checks whether all requested, non-optional components have been found, and if -# this is not the case, sets the ``Foo_FOUND`` variable to ``FALSE``, so that -# the package is considered to be not found. It does that by testing the -# ``Foo_<Component>_FOUND`` variables for all requested required components. -# When using the ``NO_CHECK_REQUIRED_COMPONENTS_MACRO`` option, this macro is -# not generated into the ``FooConfig.cmake`` file. -# -# For an example see below the documentation for -# :command:`write_basic_package_version_file()`. -# -# Generating a Package Version File -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# -# .. command:: write_basic_package_version_file -# -# Create a version file for a project:: -# -# write_basic_package_version_file(<filename> -# [VERSION <major.minor.patch>] -# COMPATIBILITY <AnyNewerVersion|SameMajorVersion|ExactVersion> ) -# -# -# Writes a file for use as ``<package>ConfigVersion.cmake`` file to -# ``<filename>``. See the documentation of :command:`find_package()` for -# details on this. -# -# ``<filename>`` is the output filename, it should be in the build tree. -# ``<major.minor.patch>`` is the version number of the project to be installed. -# -# If no ``VERSION`` is given, the :variable:`PROJECT_VERSION` variable is used. -# If this hasn't been set, it errors out. -# -# The ``COMPATIBILITY`` mode ``AnyNewerVersion`` means that the installed -# package version will be considered compatible if it is newer or exactly the -# same as the requested version. This mode should be used for packages which -# are fully backward compatible, also across major versions. -# If ``SameMajorVersion`` is used instead, then the behaviour differs from -# ``AnyNewerVersion`` in that the major version number must be the same as -# requested, e.g. version 2.0 will not be considered compatible if 1.0 is -# requested. This mode should be used for packages which guarantee backward -# compatibility within the same major version. -# If ``ExactVersion`` is used, then the package is only considered compatible if -# the requested version matches exactly its own version number (not considering -# the tweak version). For example, version 1.2.3 of a package is only -# considered compatible to requested version 1.2.3. This mode is for packages -# without compatibility guarantees. -# If your project has more elaborated version matching rules, you will need to -# write your own custom ``ConfigVersion.cmake`` file instead of using this -# macro. -# -# Internally, this macro executes :command:`configure_file()` to create the -# resulting version file. Depending on the ``COMPATIBLITY``, either the file -# ``BasicConfigVersion-SameMajorVersion.cmake.in`` or -# ``BasicConfigVersion-AnyNewerVersion.cmake.in`` is used. Please note that -# these two files are internal to CMake and you should not call -# :command:`configure_file()` on them yourself, but they can be used as starting -# point to create more sophisticted custom ``ConfigVersion.cmake`` files. -# -# Example Generating Package Files -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# -# Example using both :command:`configure_package_config_file` and -# ``write_basic_package_version_file()``: -# -# ``CMakeLists.txt``: -# -# .. code-block:: cmake -# -# set(INCLUDE_INSTALL_DIR include/ ... CACHE ) -# set(LIB_INSTALL_DIR lib/ ... CACHE ) -# set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE ) -# ... -# include(CMakePackageConfigHelpers) -# configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake -# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake -# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR) -# write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake -# VERSION 1.2.3 -# COMPATIBILITY SameMajorVersion ) -# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake -# DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake ) -# -# ``FooConfig.cmake.in``: -# -# .. code-block:: cmake -# -# set(FOO_VERSION x.y.z) -# ... -# @PACKAGE_INIT@ -# ... -# set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") -# set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@") -# -# check_required_components(Foo) - - -#============================================================================= -# Copyright 2012 Alexander Neundorf <neundorf@kde.org> -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - -include(CMakeParseArguments) - -include(WriteBasicConfigVersionFile) - -macro(WRITE_BASIC_PACKAGE_VERSION_FILE) - write_basic_config_version_file(${ARGN}) -endmacro() - -function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile) - set(options NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) - set(oneValueArgs INSTALL_DESTINATION INSTALL_PREFIX) - set(multiValueArgs PATH_VARS ) - - cmake_parse_arguments(CCF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(CCF_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unknown keywords given to CONFIGURE_PACKAGE_CONFIG_FILE(): \"${CCF_UNPARSED_ARGUMENTS}\"") - endif() - - if(NOT CCF_INSTALL_DESTINATION) - message(FATAL_ERROR "No INSTALL_DESTINATION given to CONFIGURE_PACKAGE_CONFIG_FILE()") - endif() - - if(DEFINED CCF_INSTALL_PREFIX) - if(IS_ABSOLUTE "${CCF_INSTALL_PREFIX}") - set(installPrefix "${CCF_INSTALL_PREFIX}") - else() - message(FATAL_ERROR "INSTALL_PREFIX must be an absolute path") - endif() - else() - set(installPrefix "${CMAKE_INSTALL_PREFIX}") - endif() - - if(IS_ABSOLUTE "${CCF_INSTALL_DESTINATION}") - set(absInstallDir "${CCF_INSTALL_DESTINATION}") - else() - set(absInstallDir "${installPrefix}/${CCF_INSTALL_DESTINATION}") - endif() - - file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${absInstallDir}" "${installPrefix}" ) - - foreach(var ${CCF_PATH_VARS}) - if(NOT DEFINED ${var}) - message(FATAL_ERROR "Variable ${var} does not exist") - else() - if(IS_ABSOLUTE "${${var}}") - string(REPLACE "${installPrefix}" "\${PACKAGE_PREFIX_DIR}" - PACKAGE_${var} "${${var}}") - else() - set(PACKAGE_${var} "\${PACKAGE_PREFIX_DIR}/${${var}}") - endif() - endif() - endforeach() - - get_filename_component(inputFileName "${_inputFile}" NAME) - - set(PACKAGE_INIT " -####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### -####### Any changes to this file will be overwritten by the next CMake run #### -####### The input file was ${inputFileName} ######## - -get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/${PACKAGE_RELATIVE_PATH}\" ABSOLUTE) -") - - if("${absInstallDir}" MATCHES "^(/usr)?/lib(64)?/.+") - # Handle "/usr move" symlinks created by some Linux distros. - set(PACKAGE_INIT "${PACKAGE_INIT} -# Use original install prefix when loaded through a \"/usr move\" -# cross-prefix symbolic link such as /lib -> /usr/lib. -get_filename_component(_realCurr \"\${CMAKE_CURRENT_LIST_DIR}\" REALPATH) -get_filename_component(_realOrig \"${absInstallDir}\" REALPATH) -if(_realCurr STREQUAL _realOrig) - set(PACKAGE_PREFIX_DIR \"${installPrefix}\") -endif() -unset(_realOrig) -unset(_realCurr) -") - endif() - - if(NOT CCF_NO_SET_AND_CHECK_MACRO) - set(PACKAGE_INIT "${PACKAGE_INIT} -macro(set_and_check _var _file) - set(\${_var} \"\${_file}\") - if(NOT EXISTS \"\${_file}\") - message(FATAL_ERROR \"File or directory \${_file} referenced by variable \${_var} does not exist !\") - endif() -endmacro() -") - endif() - - - if(NOT CCF_NO_CHECK_REQUIRED_COMPONENTS_MACRO) - set(PACKAGE_INIT "${PACKAGE_INIT} -macro(check_required_components _NAME) - foreach(comp \${\${_NAME}_FIND_COMPONENTS}) - if(NOT \${_NAME}_\${comp}_FOUND) - if(\${_NAME}_FIND_REQUIRED_\${comp}) - set(\${_NAME}_FOUND FALSE) - endif() - endif() - endforeach() -endmacro() -") - endif() - - set(PACKAGE_INIT "${PACKAGE_INIT} -####################################################################################") - - configure_file("${_inputFile}" "${_outputFile}" @ONLY) - -endfunction() diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index ee03f94..2a4e363 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -33,18 +33,6 @@ endif (HDF5_METADATA_TRACE_FILE) MARK_AS_ADVANCED (HDF5_METADATA_TRACE_FILE) # ---------------------------------------------------------------------- -# Decide whether the data accuracy has higher priority during data -# conversions. If not, some hard conversions will still be prefered even -# though the data may be wrong (for example, some compilers don't -# support denormalized floating values) to maximize speed. -# -option (HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON) -if (HDF5_WANT_DATA_ACCURACY) - set (H5_WANT_DATA_ACCURACY 1) -endif (HDF5_WANT_DATA_ACCURACY) -MARK_AS_ADVANCED (HDF5_WANT_DATA_ACCURACY) - -# ---------------------------------------------------------------------- # Decide whether the presence of user's exception handling functions is # checked and data conversion exceptions are returned. This is mainly # for the speed optimization of hard conversions. Soft conversions can @@ -73,13 +61,6 @@ if (HDF5_ENABLE_HSIZET) set (${HDF_PREFIX}_HAVE_LARGE_HSIZET 1) endif (HDF5_ENABLE_HSIZET) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can handle converting -# floating-point to long long values. -# (This flag should be _unset_ for all machines) -# -# set (H5_HW_FP_TO_LLONG_NOT_WORKS 0) - # so far we have no check for this set (H5_HAVE_TMPFILE 1) @@ -259,109 +240,6 @@ ENDMACRO (H5MiscConversionTest) # Check various conversion capabilities #----------------------------------------------------------------------------- -# ----------------------------------------------------------------------- -# Set flag to indicate that the machine can handle conversion from -# long double to integers accurately. This flag should be set "yes" for -# all machines except all SGIs. For SGIs, some conversions are -# incorrect and its cache value is set "no" in its config/irix6.x and -# irix5.x. -# -H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "checking IF converting from long double to integers is accurate") -# ----------------------------------------------------------------------- -# Set flag to indicate that the machine can do conversion from -# long double to integers regardless of accuracy. This flag should be -# set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -# compiler has 'floating exception' when converting 'long double' to all -# integers except 'unsigned long long'. Other HP-UX systems are unknown -# yet. (1/8/05 - SLU) -# -H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works") -# ----------------------------------------------------------------------- -# Set flag to indicate that the machine can handle conversion from -# integers to long double. (This flag should be set "yes" for all -# machines except all SGIs, where some conversions are -# incorrect and its cache value is set "no" in its config/irix6.x and -# irix5.x) -# -H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_INTEGER_TO_LDOUBLE_ACCURATE "checking IF accurately converting from integers to long double") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'unsigned long' to 'float' values. -# (This flag should be set for all machines, except for Pathscale compiler -# on Sandia's Linux machine where the compiler interprets 'unsigned long' -# values as negative when the first bit of 'unsigned long' is on during -# the conversion to float.) -# -H5ConversionTests (H5_ULONG_TO_FLOAT_ACCURATE "Checking IF accurately converting unsigned long to float values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'unsigned (long) long' values to 'float' and 'double' values. -# (This flag should be set for all machines, except for the SGIs, where -# the cache value is set in the config/irix6.x config file) and Solaris -# 64-bit machines, where the short program below tests if round-up is -# correctly handled. -# -if (CMAKE_SYSTEM MATCHES "solaris2.*") - H5ConversionTests (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE "Checking IF accurately converting unsigned long long to floating-point values") -else (CMAKE_SYSTEM MATCHES "solaris2.*") - set (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1) -endif (CMAKE_SYSTEM MATCHES "solaris2.*") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'float' or 'double' to 'unsigned long long' values. -# (This flag should be set for all machines, except for PGI compiler -# where round-up happens when the fraction of float-point value is greater -# than 0.5. -# -H5ConversionTests (H5_FP_TO_ULLONG_ACCURATE "Checking IF accurately roundup converting floating-point to unsigned long long values" ) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'float', 'double' or 'long double' to 'unsigned long long' values. -# (This flag should be set for all machines, except for HP-UX machines -# where the maximal number for unsigned long long is 0x7fffffffffffffff -# during conversion. -# -H5ConversionTests (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "Checking IF right maximum converting floating-point to unsigned long long values" ) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'long double' to 'unsigned int' values. (This flag should be set for -# all machines, except for some Intel compilers on some Linux.) -# -H5ConversionTests (H5_LDOUBLE_TO_UINT_ACCURATE "Checking IF correctly converting long double to unsigned int values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can _compile_ -# 'unsigned long long' to 'float' and 'double' typecasts. -# (This flag should be set for all machines.) -# -if (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$) - set (H5_ULLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling unsigned long long to floating-point typecasts work") - message (STATUS "Checking IF compiling unsigned long long to floating-point typecasts work... yes") -endif (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can _compile_ -# 'long long' to 'float' and 'double' typecasts. -# (This flag should be set for all machines.) -# -if (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$) - set (H5_LLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling long long to floating-point typecasts work") - message (STATUS "Checking IF compiling long long to floating-point typecasts work... yes") -endif (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can convert from -# 'unsigned long long' to 'long double' without precision loss. -# (This flag should be set for all machines, except for FreeBSD(sleipnir) -# where the last 2 bytes of mantissa are lost when compiler tries to do -# the conversion, and Cygwin where compiler doesn't do rounding correctly.) -# -H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can handle overflow converting -# all floating-point to all integer types. -# (This flag should be set for all machines, except for Cray X1 where -# floating exception is generated when the floating-point value is greater -# than the maximal integer value). -# -H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS "Checking IF overflows normally converting floating-point to integer values") # ---------------------------------------------------------------------- # Set the flag to indicate that the machine is using a special algorithm to convert # 'long double' to '(unsigned) long' values. (This flag should only be set for @@ -371,10 +249,7 @@ H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS "Checking IF overflows norma # The machine's conversion gets the correct value. We define the macro and disable # this kind of test until we figure out what algorithm they use. # -if (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$) - set (H5_LDOUBLE_TO_LONG_SPECIAL 0 CACHE INTERNAL "Define if your system converts long double to (unsigned) long values with special algorithm") - message (STATUS "Checking IF your system converts long double to (unsigned) long values with special algorithm... no") -endif (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$) +H5ConversionTests (H5_LDOUBLE_TO_LONG_SPECIAL "Checking IF your system converts long double to (unsigned) long values with special algorithm") # ---------------------------------------------------------------------- # Set the flag to indicate that the machine is using a special algorithm # to convert some values of '(unsigned) long' to 'long double' values. @@ -383,49 +258,12 @@ endif (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$) # ..., 7fffff..., the compiler uses a unknown algorithm. We define a # macro and skip the test for now until we know about the algorithm. # -if (H5_LONG_TO_LDOUBLE_SPECIAL MATCHES ^H5_LONG_TO_LDOUBLE_SPECIAL$) - set (H5_LONG_TO_LDOUBLE_SPECIAL 0 CACHE INTERNAL "Define if your system can convert (unsigned) long to long double values with special algorithm") - message (STATUS "Checking IF your system can convert (unsigned) long to long double values with special algorithm... no") -endif (H5_LONG_TO_LDOUBLE_SPECIAL MATCHES ^H5_LONG_TO_LDOUBLE_SPECIAL$) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'long double' to '(unsigned) long long' values. (This flag should be set for -# all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -# of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -# start to go wrong on these two machines. Adjusting it higher to -# 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -# values wildly wrong. This test detects this wrong behavior and disable the test. -# -H5ConversionTests (H5_LDOUBLE_TO_LLONG_ACCURATE "Checking IF correctly converting long double to (unsigned) long long values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# '(unsigned) long long' to 'long double' values. (This flag should be set for -# all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -# 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -# as big as they should be. -# -H5ConversionTests (H5_LLONG_TO_LDOUBLE_CORRECT "Checking IF correctly converting (unsigned) long long to long double values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine generates bad code -# for the H5VM_log2_gen() routine in src/H5VMprivate.h -# (This flag should be set to no for all machines, except for SGI IRIX64, -# where the cache value is set to yes in it's config file) -# -if (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$) - set (H5_BAD_LOG2_CODE_GENERATED 0 CACHE INTERNAL "Define if your system generates wrong code for log2 routine") - message (STATUS "Checking IF your system generates wrong code for log2 routine... no") -endif (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$) +H5ConversionTests (H5_LONG_TO_LDOUBLE_SPECIAL "Checking IF your system can convert (unsigned) long to long double values with special algorithm") # ---------------------------------------------------------------------- # Check if pointer alignments are enforced # H5ConversionTests (H5_NO_ALIGNMENT_RESTRICTIONS "Checking IF alignment restrictions are strictly enforced") -# Define a macro for Cygwin (on XP only) where the compiler has rounding -# problem converting from unsigned long long to long double */ -if (CYGWIN) - set (H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM 1) -endif (CYGWIN) - # ----------------------------------------------------------------------- # wrapper script variables # diff --git a/config/cmake/ConversionTests.c b/config/cmake/ConversionTests.c index 1ee9842..cd2e8bb 100644 --- a/config/cmake/ConversionTests.c +++ b/config/cmake/ConversionTests.c @@ -1,191 +1,119 @@ -#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS_TEST +#ifdef H5_LDOUBLE_TO_LONG_SPECIAL_TEST int main(void) { - float f = 2147483648.0f; - int i; - - i = (int)f; - -done: - exit(0); -} - -#endif - -#ifdef H5_FP_TO_ULLONG_ACCURATE_TEST - -int main(void) -{ - float f = 111.60f; - double d = 222.55L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d; - int ret = 0; - - if(l1 == 112) - ret = 1; - if(l2 == 223) - ret = 1; - -done: - exit(ret); -} - -#endif - -#ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM_TEST -int main(void) -{ - float f = 9701917572145405952.00f; - double d1 = 9701917572145405952.00L; - long double d2 = 9701917572145405952.00L; - double d3 = 2e40L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3 = (unsigned long long)d2; - unsigned long long l4; - unsigned long long l5 = 0x7fffffffffffffffULL; - int ret = 0; - - if(l1 <= l5 || l2 <= l5 || l3 <= l5) - ret = 1; - - l4 = (unsigned long long)d3; - if(l4 <= l5) - ret = 1; - -done: - exit(ret); -} - -#endif - -#ifdef H5_LDOUBLE_TO_INTEGER_WORKS_TEST - -#include <stdlib.h> -#include <string.h> - -int main(void) -{ - void *align; - long double ld= 9701917572145405952.00L; - unsigned char v1; - short v2; - unsigned int v3; - int ret = 0; - - align = (void*)malloc(sizeof(long double)); - memcpy(align, &ld, sizeof(long double)); - - /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting - *from 'long double' to integers*/ - v1=(unsigned char)(*((long double*)align)); - v2=(short)(*((long double*)align)); - v3=(unsigned int)(*((long double*)align)); - -done: - exit(ret); -} - -#endif - -#ifdef H5_LDOUBLE_TO_LLONG_ACCURATE_TEST -int main(void) -{ long double ld = 20041683600089727.779961L; - long long ll; - unsigned long long ull; + long ll; + unsigned long ull; unsigned char s[16]; - int ret = 0; - - if(sizeof(long double) == 16) { - /*make sure the long double type is the same as the failing type - *which has 16 bytes in size and 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /*slightly adjust the bit sequence (s[8]=0xdf). The converted - *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - ll = (long long)ld; - ull = (unsigned long long)ld; - - if(ll != 20041683600089728 || ull != 20041683600089728) - ret = 1; - } + unsigned char s2[8]; + int ret = 1; + + if(sizeof(long double) == 16 && sizeof(long) == 8) { + /*make sure the long double type has 16 bytes in size and + * 11 bits of exponent. If it is, + *the bit sequence should be like below. It's not + *a decent way to check but this info isn't available. */ + memcpy(s, &ld, 16); + if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && + s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && + s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { + + /* Assign the hexadecimal value of long double type. */ + s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; + s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; + s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; + s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; + + memcpy(&ld, s, 16); + + ll = (long)ld; + memcpy(s2, &ll, 8); + + /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 + * and gets wrong value 20041683600089730 on the IBM Power6 Linux. + * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f + * and gets the correct value 20041683600089727. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + + ull = (unsigned long)ld; + memcpy(s2, &ull, 8); + + /* The unsigned long is the same as signed long. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + } } -done: - exit(ret); -} -#endif - -#ifdef H5_LDOUBLE_TO_UINT_ACCURATE_TEST -int main(void) -{ - long double ld = 2733248032.9183987530L; - unsigned int i; - int ret = 0; - - i = (unsigned int)ld; - if(i!=2733248032 && i!=2733248031 && i!=2733248033) - ret = 1; done: exit(ret); } + #endif -#ifdef H5_LLONG_TO_LDOUBLE_CORRECT_TEST +#ifdef H5_LONG_TO_LDOUBLE_SPECIAL_TEST + int main(void) { long double ld; - long long ll; - unsigned long long ull; + long ll; + unsigned long ull; unsigned char s[16]; - int flag=0, ret=0; + int flag=0, ret=1; /*Determine if long double has 16 byte in size, 11 bit exponent, and *the bias is 0x3ff */ if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; + ld = 1.0L; + memcpy(s, &ld, 16); + if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) + flag = 1; } - if(flag==1 && sizeof(long long)==8) { - ll = 0x01ffffffffffffffLL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /*Check if the bit sequence is as supposed to be*/ - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; + if(flag==1 && sizeof(long)==8) { + ll = 0x003fffffffffffffL; + ld = (long double)ll; + memcpy(s, &ld, 16); + /* The library converts the value to 0x434fffffffffffff8000000000000000. + * In decimal it is 18014398509481982.000000, one value short of the original. + * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; } - if(flag==1 && sizeof(unsigned long long)==8) { - ull = 0x01ffffffffffffffULL; - ld = (long double)ull; - memcpy(s, &ld, 16); - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; + if(flag==1 && sizeof(unsigned long)==8) { + ull = 0xffffffffffffffffUL; + ld = (long double)ull; + memcpy(s, &ld, 16); + /* Use a different value from signed long to test. The problem is the same + * for both long and unsigned long. The value is 18446744073709551615. + * The library converts the value to 0x43effffffffffffffe000000000000000. + * In decimal it's 18446744073709548544.000000, very different from the original. + * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; } done: exit(ret); } + #endif #ifdef H5_NO_ALIGNMENT_RESTRICTIONS_TEST @@ -241,180 +169,3 @@ main () #endif -#ifdef H5_ULLONG_TO_LDOUBLE_PRECISION_TEST - -#include <stddef.h> -#include <stdlib.h> -#include <string.h> - -int main(void) -{ - /* General variables */ - int endian; - int tst_value = 1; - int ret = 0; - - /* For FreeBSD */ - unsigned long long l = 0xa601e80bda85fcefULL; - long double ld; - unsigned char *c1, *c2; - size_t size; - - /* For Cygwin */ - unsigned long long l_cyg = 0xfffffffffffffff0ULL; - long double ld_cyg; - unsigned char *c2_cyg; - size_t size_cyg; - - - /* Determine this system's endianess */ - c1 = (unsigned char*)calloc(1, sizeof(int)); - memcpy((void*)c1, &tst_value, sizeof(int)); - if(c1[0]==1) - endian = 0; /* little endian */ - else - endian = 1; /* big endian */ - - /* For FreeBSD */ - size = sizeof(long double); - memset(&ld, 0, size); - ld = (long double)l; - - c2 = (unsigned char*)calloc(1, size); - memcpy((void*)c2, &ld, size); - - /* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel - * architecture(sleipnir) where it happens. */ - /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/ - if(endian==0 && c2[0]==0) { /*little endian*/ - ret = 1; - goto done; - } - - /* For Cygwin */ - size_cyg = sizeof(long double); - memset(&ld_cyg, 0, size); - ld_cyg = (long double)l_cyg; - - c2_cyg = (unsigned char*)calloc(1, size_cyg); - memcpy((void*)c2_cyg, &ld_cyg, size_cyg); - - /* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin - * where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ..., - * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000 - * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ..., - * 0x0000403efffffffffffff000 ... - */ - if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0) - ret = 1; - -done: - if(c1) - free(c1); - if(c2) - free(c2); - if(c2_cyg) - free(c2_cyg); - exit(ret); -} - -#endif - - -#ifdef H5_ULONG_TO_FLOAT_ACCURATE_TEST - -int main(void) -{ - int ret = 0; - unsigned long l1; - unsigned long l2; - unsigned long l3; - float f1; - float f2; - float f3; - - - if(sizeof(unsigned long)==8) { - l1 = 0xffffffffffffffffUL; - l2 = 0xffffffffffff0000UL; - l3 = 0xf000000000000000UL; - - f1 = (float)l1; - f2 = (float)l2; - f3 = (float)l3; - - if((f1 < 0) || (f2 < 0) || (f3 < 0)) - ret = 1; - } - -done: - exit(ret); -} - -#endif - -#ifdef H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE_TEST - -#include <string.h> - - -int main(void) -{ - unsigned long l1; - unsigned long l2; - unsigned long l3; - unsigned long l4; - unsigned long long ld1; - unsigned long long ld2; - unsigned long long ld3; - unsigned long long ld4; - double d1, d2, d3, d4; - unsigned char s[8]; - int ret = 0; - - if(sizeof(unsigned long)==8) { - l1 = 0xf000000000000b00UL; /*Round-down case*/ - l2 = 0xf000000000000401UL; /*Round-up case*/ - l3 = 0xf000000000000400UL; /*Round-down case*/ - l4 = 0xf000000000000c00UL; /*Round-up case*/ - - d1 = (double)l1; - d2 = (double)l2; - d3 = (double)l3; - d4 = (double)l4; - } else if(sizeof(unsigned long long)==8) { - ld1 = 0xf000000000000b00ULL; /*Round-down case*/ - ld2 = 0xf000000000000401ULL; /*Round-up case*/ - ld3 = 0xf000000000000400ULL; /*Round-down case*/ - ld4 = 0xf000000000000c00ULL; /*Round-up case*/ - - d1 = (double)ld1; - d2 = (double)ld2; - d3 = (double)ld3; - d4 = (double)ld4; - } else { - ret = 1; - goto done; - } - - memcpy(s, &d1, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d2, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d3, 8); - if(s[7]!=0) - ret = 1; - - memcpy(s, &d4, 8); - if(s[7]!=2) - ret = 1; - -done: - exit(ret); -} -} -#endif diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index ec4c47f..da6c82d 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -36,30 +36,16 @@ /* Define if building universal (internal helper macro) */ #cmakedefine H5_AC_APPLE_UNIVERSAL_BUILD @H5_AC_APPLE_UNIVERSAL_BUILD@ -/* Define if your system generates wrong code for log2 routine. */ -#cmakedefine H5_BAD_LOG2_CODE_GENERATED @H5_BAD_LOG2_CODE_GENERATED@ - /* Define if the memory buffers being written to disk should be cleared before writing. */ #cmakedefine H5_CLEAR_MEMORY @H5_CLEAR_MEMORY@ -/* Define if your system can handle converting denormalized floating-point - values. */ -#cmakedefine H5_CONVERT_DENORMAL_FLOAT @H5_CONVERT_DENORMAL_FLOAT@ - /* Define if C++ compiler recognizes offsetof */ #cmakedefine H5_CXX_HAVE_OFFSETOF @H5_CXX_HAVE_OFFSETOF@ -/* Define a macro for Cygwin (on XP only) where the compiler has rounding - problem converting from unsigned long long to long double */ -#cmakedefine H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM @H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM@ - /* Define the default plugins path to compile */ #cmakedefine H5_DEFAULT_PLUGINDIR "@H5_DEFAULT_PLUGINDIR@" -/* Define the default virtual file driver to compile */ -#cmakedefine H5_DEFAULT_VFD @H5_DEFAULT_VFD@ - /* Define the default vol plugin to compile */ #cmakedefine H5_DEFAULT_VOL @H5_DEFAULT_VOL@ @@ -80,21 +66,6 @@ /* As FC_FUNC, but for C identifiers containing underscores. */ #define @H5_FC_FUNC_@ -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#cmakedefine H5_FP_TO_INTEGER_OVERFLOW_WORKS @H5_FP_TO_INTEGER_OVERFLOW_WORKS@ - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#cmakedefine H5_FP_TO_ULLONG_ACCURATE @H5_FP_TO_ULLONG_ACCURATE@ - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -#cmakedefine H5_FP_TO_ULLONG_RIGHT_MAXIMUM @H5_FP_TO_ULLONG_RIGHT_MAXIMUM@ - -/* Define if gettimeofday() populates the tz pointer passed in */ -#cmakedefine H5_GETTIMEOFDAY_GIVES_TZ @H5_GETTIMEOFDAY_GIVES_TZ@ - /* Define to 1 if you have the `alarm' function. */ #cmakedefine H5_HAVE_ALARM @H5_HAVE_ALARM@ @@ -104,9 +75,6 @@ /* Define if the __attribute__(()) extension is present */ #cmakedefine H5_HAVE_ATTRIBUTE @H5_HAVE_ATTRIBUTE@ -/* Define to 1 if you have the `BSDgettimeofday' function. */ -#cmakedefine H5_HAVE_BSDGETTIMEOFDAY @H5_HAVE_BSDGETTIMEOFDAY@ - /* Define if the compiler understands C99 designated initialization of structs and unions */ #cmakedefine H5_HAVE_C99_DESIGNATED_INITIALIZER @H5_HAVE_C99_DESIGNATED_INITIALIZER@ @@ -151,18 +119,6 @@ /* Define if support for deflate (zlib) filter is enabled */ #cmakedefine H5_HAVE_FILTER_DEFLATE @H5_HAVE_FILTER_DEFLATE@ -/* Define if support for Fletcher32 checksum is enabled */ -#cmakedefine H5_HAVE_FILTER_FLETCHER32 @H5_HAVE_FILTER_FLETCHER32@ - -/* Define if support for nbit filter is enabled */ -#cmakedefine H5_HAVE_FILTER_NBIT @H5_HAVE_FILTER_NBIT@ - -/* Define if support for scaleoffset filter is enabled */ -#cmakedefine H5_HAVE_FILTER_SCALEOFFSET @H5_HAVE_FILTER_SCALEOFFSET@ - -/* Define if support for shuffle filter is enabled */ -#cmakedefine H5_HAVE_FILTER_SHUFFLE @H5_HAVE_FILTER_SHUFFLE@ - /* Define if support for szip filter is enabled */ #cmakedefine H5_HAVE_FILTER_SZIP @H5_HAVE_FILTER_SZIP@ @@ -242,9 +198,6 @@ /* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ #cmakedefine H5_HAVE_LIBDMALLOC @H5_HAVE_LIBDMALLOC@ -/* Define to 1 if you have the `lmpe' library (-llmpe). */ -#cmakedefine H5_HAVE_LIBLMPE @H5_HAVE_LIBLMPE@ - /* Define to 1 if you have the `m' library (-lm). */ #cmakedefine H5_HAVE_LIBM @H5_HAVE_LIBM@ @@ -380,12 +333,6 @@ /* Define if `struct text_info' is defined */ #cmakedefine H5_HAVE_STRUCT_TEXT_INFO @H5_HAVE_STRUCT_TEXT_INFO@ -/* Define if `struct timezone' is defined */ -#cmakedefine H5_HAVE_STRUCT_TIMEZONE @H5_HAVE_STRUCT_TIMEZONE@ - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -#cmakedefine H5_HAVE_STRUCT_TM_TM_ZONE @H5_HAVE_STRUCT_TM_TM_ZONE@ - /* Define if `struct videoconfig' is defined */ #cmakedefine H5_HAVE_STRUCT_VIDEOCONFIG @H5_HAVE_STRUCT_VIDEOCONFIG@ @@ -449,14 +396,6 @@ /* Define if `tm_gmtoff' is a member of `struct tm' */ #cmakedefine H5_HAVE_TM_GMTOFF @H5_HAVE_TM_GMTOFF@ -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#cmakedefine H5_HAVE_TM_ZONE @H5_HAVE_TM_ZONE@ - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#cmakedefine H5_HAVE_TZNAME @H5_HAVE_TZNAME@ - /* Define to 1 if you have the <unistd.h> header file. */ #cmakedefine H5_HAVE_UNISTD_H @H5_HAVE_UNISTD_H@ @@ -487,45 +426,13 @@ /* Define to 1 if you have the `_scrsize' function. */ #cmakedefine H5_HAVE__SCRSIZE @H5_HAVE__SCRSIZE@ -/* Define if `__tm_gmtoff' is a member of `struct tm' */ -#cmakedefine H5_HAVE___TM_GMTOFF @H5_HAVE___TM_GMTOFF@ - -/* Define if your system can't handle converting floating-point values to long - long. */ -#cmakedefine H5_HW_FP_TO_LLONG_NOT_WORKS @H5_HW_FP_TO_LLONG_NOT_WORKS@ - /* Define if HDF5's high-level library headers should be included in hdf5.h */ #cmakedefine H5_INCLUDE_HL @H5_INCLUDE_HL@ -/* Define if your system can accurately convert from integers to long double - values. */ -#cmakedefine H5_INTEGER_TO_LDOUBLE_ACCURATE @H5_INTEGER_TO_LDOUBLE_ACCURATE@ - -/* Define if your system can convert long double to integers accurately. */ -#cmakedefine H5_LDOUBLE_TO_INTEGER_ACCURATE @H5_LDOUBLE_TO_INTEGER_ACCURATE@ - -/* Define if your system can convert from long double to integer values. */ -#cmakedefine H5_LDOUBLE_TO_INTEGER_WORKS @H5_LDOUBLE_TO_INTEGER_WORKS@ - -/* Define if your system can convert long double to (unsigned) long long - values correctly. */ -#cmakedefine H5_LDOUBLE_TO_LLONG_ACCURATE @H5_LDOUBLE_TO_LLONG_ACCURATE@ - /* Define if your system converts long double to (unsigned) long values with special algorithm. */ #cmakedefine H5_LDOUBLE_TO_LONG_SPECIAL @H5_LDOUBLE_TO_LONG_SPECIAL@ -/* Define if your system can convert long double to unsigned int values - correctly. */ -#cmakedefine H5_LDOUBLE_TO_UINT_ACCURATE @H5_LDOUBLE_TO_UINT_ACCURATE@ - -/* Define if your system can compile long long to floating-point casts. */ -#cmakedefine H5_LLONG_TO_FP_CAST_WORKS @H5_LLONG_TO_FP_CAST_WORKS@ - -/* Define if your system can convert (unsigned) long long to long double - values correctly. */ -#cmakedefine H5_LLONG_TO_LDOUBLE_CORRECT @H5_LLONG_TO_LDOUBLE_CORRECT@ - /* Define if your system can convert (unsigned) long to long double values with special algorithm. */ #cmakedefine H5_LONG_TO_LDOUBLE_SPECIAL @H5_LONG_TO_LDOUBLE_SPECIAL@ @@ -543,9 +450,6 @@ /* Define if deprecated public API symbols are disabled */ #cmakedefine H5_NO_DEPRECATED_SYMBOLS @H5_NO_DEPRECATED_SYMBOLS@ -/* Define if shared writing must be disabled (CodeWarrior only) */ -#cmakedefine H5_NO_SHARED_WRITING @H5_NO_SHARED_WRITING@ - /* Name of package */ #define H5_PACKAGE "@HDF5_PACKAGE@" @@ -722,22 +626,6 @@ /* Define to 1 if your <sys/time.h> declares `struct tm'. */ #cmakedefine H5_TM_IN_SYS_TIME @H5_TM_IN_SYS_TIME@ -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#cmakedefine H5_ULLONG_TO_FP_CAST_WORKS @H5_ULLONG_TO_FP_CAST_WORKS@ - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -#cmakedefine H5_ULLONG_TO_LDOUBLE_PRECISION @H5_ULLONG_TO_LDOUBLE_PRECISION@ - -/* Define if your system accurately converting unsigned long to float values. - */ -#cmakedefine H5_ULONG_TO_FLOAT_ACCURATE @H5_ULONG_TO_FLOAT_ACCURATE@ - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -#cmakedefine H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE @H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE@ - /* Define using v1.6 public API symbols by default */ #cmakedefine H5_USE_16_API_DEFAULT @H5_USE_16_API_DEFAULT@ @@ -752,13 +640,6 @@ /* Version number of package */ #define H5_VERSION "@HDF5_PACKAGE_VERSION_STRING@" -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -#cmakedefine H5_VSNPRINTF_WORKS @H5_VSNPRINTF_WORKS@ - -/* Data accuracy is prefered to speed during data conversions */ -#cmakedefine H5_WANT_DATA_ACCURACY @H5_WANT_DATA_ACCURACY@ - /* Check exception handling functions during data conversions */ #cmakedefine H5_WANT_DCONV_EXCEPTION @H5_WANT_DCONV_EXCEPTION@ diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index 1575393..27dc7bf 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR) +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) ############################################################################################################### # This script will build and run the examples from a compressed file # Execute from a command line: @@ -13,8 +13,8 @@ set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) set(CTEST_BUILD_CONFIGURATION "Release") #set(NO_MAC_FORTRAN "true") #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON") -#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) -set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") +set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) +#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") ############################################################################################################### # Adjust the following SET Commands as needed @@ -71,8 +71,8 @@ if(CTEST_USE_TAR_SOURCE) message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]") execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv) else(WIN32) - message(STATUS "extracting... [${CTEST_CMAKE_COMMAND} -E tar -xvf ${CTEST_SOURCE_NAME}.tar.gz]") - execute_process(COMMAND tar -xvf ${CTEST_SOURCE_NAME}.tar.gz RESULT_VARIABLE rv) + message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]") + execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv) endif(WIN32) if(NOT rv EQUAL 0) @@ -110,16 +110,17 @@ set (CTEST_CONFIGURE_COMMAND set($ENV{LC_MESSAGES} "en_EN") #----------------------------------------------------------------------------- - ## NORMAL process - ## -------------------------- - CTEST_START (Experimental) - CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}") - CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}") - CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) - CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res) - if(res GREATER 0) - message (FATAL_ERROR "tests FAILED") - endif(res GREATER 0) +configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake) +ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}") +## NORMAL process +## -------------------------- +ctest_start (Experimental) +ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}") +ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) +ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res) +if(res GREATER 0) + message (FATAL_ERROR "tests FAILED") +endif(res GREATER 0) #----------------------------------------------------------------------------- ############################################################################################################## message(STATUS "DONE")
\ No newline at end of file diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in index 4044ce5..cc8baeb 100644 --- a/config/cmake/README.txt.cmake.in +++ b/config/cmake/README.txt.cmake.in @@ -24,15 +24,15 @@ Installation After Installation =========================================================================== -The compressed examples file HDF5Examples-0.1.1-Source.@BINARY_EXAMPLE_ENDING@, located in the +The examples folder, HDF5Examples, located in the HDF5 install folder, can be built and tested with CMake and the supplied HDF518_Examples.cmake file. The HDF518_Examples.cmake expects HDF5 to have -been installed in the default location with above compilers. Also, CMake and 7Zip -utilities should be installed. +been installed in the default location with above compilers. Also, the CMake +utility should be installed. To test the installation with the examples; Create a directory to run the examples. - Copy HDF5Examples-0.1.1-Source.@BINARY_EXAMPLE_ENDING@ to this directory, do NOT unzip. + Copy HDF5Examples folder to this directory. Copy HDF518_Examples.cmake to this directory. Edit HDF518_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed. (The default should be correct unless you installed into a different folder.) diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake index e68afe6..87d4fcc 100644 --- a/config/cmake/cacheinit.cmake +++ b/config/cmake/cacheinit.cmake @@ -10,18 +10,10 @@ set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE) set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE) -set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE) - -set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE) - set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE) set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE) -set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE) - -set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE) - set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE) set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE) diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in index 8287c7b..da5304d 100644 --- a/config/cmake/hdf5-config.cmake.in +++ b/config/cmake/hdf5-config.cmake.in @@ -3,63 +3,76 @@ #----------------------------------------------------------------------------- @PACKAGE_INIT@ +string(TOUPPER @HDF5_PACKAGE@ HDF5_PACKAGE_NAME) + +set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS + C + CXX + Fortran + HL + CXX_HL + Fortran_HL + Tools +) + #----------------------------------------------------------------------------- # User Options #----------------------------------------------------------------------------- -set (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@) -set (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@) -set (HDF5_ENABLE_F2003 @HDF5_ENABLE_F2003@) -set (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@) -set (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@) -set (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@) -set (HDF5_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@) -set (HDF5_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@) -set (HDF5_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@) -set (HDF5_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) -set (HDF5_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@) +set (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@) +set (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@) +set (${HDF5_PACKAGE_NAME}_ENABLE_F2003 @HDF5_ENABLE_F2003@) +set (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@) +set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS @HDF5_BUILD_TOOLS@) +set (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@) +set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@) +set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@) +set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@) +set (${HDF5_PACKAGE_NAME}_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) +set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@) +set (${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES @HDF5_LIBRARIES_TO_EXPORT@) #----------------------------------------------------------------------------- # Dependencies #----------------------------------------------------------------------------- -IF(HDF5_ENABLE_PARALLEL) - SET(HDF5_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@") - SET(HDF5_MPI_C_LIBRARIES "@MPI_C_LIBRARIES@") -ENDIF(HDF5_ENABLE_PARALLEL) +if (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL) + set (${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@") + set (${HDF5_PACKAGE_NAME}_MPI_C_LIBRARIES "@MPI_C_LIBRARIES@") +endif () #----------------------------------------------------------------------------- # Directories #----------------------------------------------------------------------------- -set (HDF5_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${HDF5_MPI_C_INCLUDE_PATH}" ) +set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH}") -set (HDF5_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@") -set_and_check (HDF5_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@") +set (${HDF5_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@") +set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@") -if (HDF5_BUILD_FORTRAN) - set (HDF5_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_FORTRAN) +if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_CPP_LIB) - set (HDF5_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_CPP_LIB) +if (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_HL_LIB) - set (HDF5_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_HL_LIB) +if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB) - set (HDF5_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB) +if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB AND ${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_TOOLS) - set (HDF5_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@" ) - set_and_check (HDF5_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin" ) -endif (HDF5_BUILD_TOOLS) +if (${HDF5_PACKAGE_NAME}_BUILD_TOOLS) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@") + set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin") +endif () if (HDF5_BUILD_SHARED_LIBS) - set (H5_BUILT_AS_DYNAMIC_LIB 1 ) -else (HDF5_BUILD_SHARED_LIBS) - set (H5_BUILT_AS_STATIC_LIB 1 ) -endif (HDF5_BUILD_SHARED_LIBS) + set (H5_BUILT_AS_DYNAMIC_LIB 1) +else () + set (H5_BUILT_AS_STATIC_LIB 1) +endif () #----------------------------------------------------------------------------- # Version Strings @@ -73,14 +86,64 @@ set (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@) # project which has already built hdf5 as a subproject #----------------------------------------------------------------------------- if (NOT TARGET "@HDF5_PACKAGE@") - if (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib") - include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) - endif (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib") - if (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip") - include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) - endif (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip") + if (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND NOT TARGET "zlib") + include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) + endif () + if (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND NOT TARGET "szip") + include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) + endif () include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake) - set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@") -endif (NOT TARGET "@HDF5_PACKAGE@") +endif () + +# Handle default component : +if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL) + set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_C true) +endif () + +# Handle requested components: +list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + set (hdf5_comp2) + if (${comp} MATCHES "C") + set (hdf5_comp "hdf5") + elseif (${comp} MATCHES "CXX") + set (hdf5_comp "hdf5_cpp") + elseif (${comp} MATCHES "HL") + set (hdf5_comp "hdf5_hl") + elseif (${comp} MATCHES "CXX_HL") + set (hdf5_comp "hdf5_hl_cpp") + elseif (${comp} MATCHES "Tools") + set (hdf5_comp "hdf5_tools") + elseif (${comp} MATCHES "Fortran") + set (hdf5_comp2 "hdf5_f90cstub") + set (hdf5_comp "hdf5_fortran") + elseif (${comp} MATCHES "Fortran_HL") + set (hdf5_comp2 "hdf5_hl_f90cstub") + set (hdf5_comp "hdf5_hl_fortran") + endif () + list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP) + if (${HAVE_COMP} LESS 0) + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0) + else () + if (hdf5_comp2) + list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}" HAVE_COMP2) + if (${HAVE_COMP2} LESS 0) + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0) + else () + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) + string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) + set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp2} ${hdf5_comp}) + endif () + else () + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) + string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) + set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp}) + endif () + endif () + endforeach () + + check_required_components(${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) -check_required_components(hdf5) +set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${COMP_LIBRARY}}) +
\ No newline at end of file diff --git a/config/cmake/patch.xml b/config/cmake/patch.xml new file mode 100644 index 0000000..70571c5 --- /dev/null +++ b/config/cmake/patch.xml @@ -0,0 +1,11 @@ +<CPackWiXPatch> + <CPackWiXFragment Id="CM_CP_libraries.bin.hdf5.dll"> + <Environment Id="PATH" + Name="PATH" + Value="[CM_DP_libraries.bin]" + Permanent="no" + Part="last" + Action="set" + System="yes"/> + </CPackWiXFragment> +</CPackWiXPatch> diff --git a/config/commence.am b/config/commence.am index 4bc005e..554c9fb 100644 --- a/config/commence.am +++ b/config/commence.am @@ -89,8 +89,8 @@ F9XMODFLAG=@F9XMODFLAG@ # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES=*.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES=*.chkexe *.chklog *.clog *.clog2 # List all build rules defined by HDF5 Makefiles as "PHONY" targets here. # This tells the Makefiles that these targets are not files to be built but diff --git a/config/craynv b/config/craynv deleted file mode 100644 index 479d5c8..0000000 --- a/config/craynv +++ /dev/null @@ -1,198 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. - -# Disabling Dependency Tracking -# --------------------- -# -# The Cray X1 machines that The HDF Group tests on seem to have trouble doing -# dependency tracking (probably because they use Cray's C++ compiler, -# which autoconf may not recognize). Until this is fixed by autoconf -# or a user complains, disable dependency tracking on Crays. -enable_dependency_tracking="no" - -# Choosing a C Compiler -# --------------------- -# -# The user should be able to specify the compiler by setting the CC -# environment variable to the name of the compiler and any switches it -# requires for proper operation. If CC is unset then this script may -# set it. If CC is unset by time this script completes then configure -# will try `gcc' and `cc' in that order (perhaps some others too). -# -# Note: Code later in this file may depend on the value of $CC_BASENAME -# in order to distinguish between different compilers when -# deciding which compiler command-line switches to use. This -# variable is set based on the incoming value of $CC and is only -# used within this file. - -if test "X-" = "X-$CC"; then - CC=cc - CC_BASENAME=cc -fi -# no need to use RANLIB -RANLIB=: - -# C Compiler and Preprocessor Flags -# --------------------------------- -# -# Flags that end with `_CFLAGS' are always passed to the compiler. -# Flags that end with `_CPPFLAGS' are passed to the compiler when -# compiling but not when linking. -# -# DEBUG_CFLAGS Flags to pass to the compiler to create a -# DEBUG_CPPFLAGS library suitable for use with debugging -# tools. Usually this list will exclude -# optimization switches (like `-O') and include -# switches that turn on symbolic debugging -# support (like `-g'). -# -# PROD_CFLAGS Flags to pass to the compiler to create a -# PROFILE_CPPFLAGS library suitable for performance testing (like -# `-pg'). This may or may not include debugging -# or production flags. -# -# H5_CFLAGS Flags can be added to this variable which -# might already be partially initialized. These -# flags will always be passed to the compiler -# and should include switches to turn on full -# warnings. HDF5 attempts to be ANSI and Posix -# compliant and employ good programming -# practices resulting in few if any -# warnings. -# -# Warning flags do not have to be added to H5_CFLAGS -# variable if the compiler is the GNU gcc -# compiler or a descendent of gcc such as EGCS or PGCC. -# -# AM_CFLAGS Flags added directly into this variable will -# be propogated to the compiler wrapper scripts (h5cc, -# h5c++, et cetera) in addition to being used to compile -# the library. -# -# These flags should be set according to the compiler being used. -# There are two ways to check the compiler. You can try using `-v' or -# `--version' to see if the compiler will print a version string. You -# can use the value of $CC_BASENAME which is the base name of the -# first word in $CC (note that the value of CC may have changed -# above). - -case $CC_BASENAME in - gcc) - H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - cc) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="" - PROD_CPPFLAGS= - PROFILE_CFLAGS= - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -ansi" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - - - -# Overriding Configure Tests -# -------------------------- -# -# Values for overriding configuration tests when cross compiling. -# This includes compiling on some machines where the serial front end -# compiles for a parallel back end. - -# Set this to `yes' or `no' depending on whether the target is big -# endian or little endian. -#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} - -# Set this to the width required by printf() to print type `long -# long'. For instance, if the format would be `%lld' then set it to -# `ll' or if the format would be `%qd' set it to `q'. -#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} - -# Hard set the flag to indicate that converting denormalized floating-point -# values doesn't work. -hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'} - -# The default Fortran 90 compiler - -if test "X-" = "X-$F9X"; then - F9X=ftn -fi - -if test "X-" = "X-$f9x_flags_set"; then - # -Wl passes flags to the linker and -M# will ignore warnings with - # number#. Warning 405 and 412 were stopping the executable from - # being built. - # The -em flag enables .mod files, which is what HDF5 builds. - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -em" - DEBUG_FCFLAGS="-g" - PROD_FCFLAGS="" - PROFILE_FCFLAGS="" - f9x_flags_set=yes -fi - -# The default C++ compiler - -if test -z "$CXX"; then - CXX="CC" - CXX_BASENAME=CC -fi - -case $CXX_BASENAME in - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS= - PROFILE_CPPFLAGS= - ;; -esac - diff --git a/config/dec-flags b/config/dec-flags deleted file mode 100644 index 8f3fa1a..0000000 --- a/config/dec-flags +++ /dev/null @@ -1,150 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file should be sourced into configure if the compiler is a DEC -# compiler. It is careful not to do anything if the compiler is not -# DEC; otherwise `cc_flags_set' is set to `yes' -# - -# Get the compiler version unless it's already known. -# -# cc_vendor: The compiler vendor: DEC -# cc_version: Version number, like: V5.2-038 -# -if test X = "X$cc_flags_set"; then - cc_vendor=DEC - cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |head -1`" - case "$cc_version" in - DEC*) - cc_version="`echo $cc_version |\ - sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`" - ;; - Compaq*) - cc_version="`echo $cc_version |\ - sed 's/.*Compaq C \(V[0-9][-\.0-9]*\).*/\1/'`" - ;; - esac - - if test X != "$gcc_version"; then - echo "compiler '$CC' is $cc_vendor-$cc_version" - else - cc_vendor= - fi -fi - -# Warn about old compilers that don't work right. -case "$cc_vendor-$cc_version" in - DEC-V5.2-038) - cat <<EOF - ** - ** This compiler may generate incorrect code when optimizations are - ** enabled. Please upgrade to a newer version (we're not sure which - ** version actually works) before reporting bugs to the HDF5 team. - ** -EOF - sleep 5 - ;; -esac - -# Compiler flags -case "$cc_vendor-$cc_version" in - DEC-V5.*) - # Production - PROD_CFLAGS="-std -verbose -warnprotos -ieee -misalign -O4 -ansi_args -fp_reorder -readonly_strings -inline speed" - PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS" - - # Debug - DEBUG_CFLAGS="-g -std -verbose -warnprotos -ieee -misalign" - DEBUG_CPPFLAGS= - - # Profile - PROFILE_CFLAGS="-pg -std -verbose -warnprotos -ieee -misalign" - PROFILE_CPPFLAGS= - - # Flags are set - cc_flags_set=yes - ;; - - DEC-V6.*) - # Production - PROD_CFLAGS="-c99 -verbose -warnprotos -ieee -misalign -O4 -fp_reorder -readonly_strings -inline speed" - PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS" - - # Debug - DEBUG_CFLAGS="-g -c99 -verbose -warnprotos -ieee -misalign" - DEBUG_CPPFLAGS= - - # Profile - PROFILE_CFLAGS="-pg -c99 -verbose -warnprotos -ieee -misalign" - PROFILE_CPPFLAGS= - - # Flags are set - cc_flags_set=yes - ;; -esac - -# If no flags were set then clear the compiler vendor and version info. -if test X = "X$cc_flags_set"; then - cc_vendor= - cc_version= -fi - -# The default Fortran 90 compiler - -if test "X-" = "X-$FC"; then - FC=f90 -fi - -if test "X-" = "X-$f9x_flags_set"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -Olimit 2048 -std1" - DEBUG_FCFLAGS="-Olimit 2048 -std1" - PROD_FCFLAGS="-Olimit 2048 -std1" - PROFILE_FCFLAGS="-Olimit 2048 -std1" - f9x_flags_set=yes -fi - -# The default C++ compiler - -if test -z "$CXX"; then - CXX=cxx - CXX_BASENAME=cxx -fi - - -case $CXX_BASENAME in - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS -tlocal -D__USE_STD_IOSTREAM" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - diff --git a/config/hpux11.23 b/config/hpux11.23 deleted file mode 100644 index 339cc84..0000000 --- a/config/hpux11.23 +++ /dev/null @@ -1,96 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# -# See BlankForm in this directory for details. - -# Default compiler is `cc' -if test "X-" = "X-$CC"; then - CC=cc - CC_BASENAME=cc -fi - -# Flags -case "X-$CC" in - X-gcc) - H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O3" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -Ae -Wp,-H65536" #increase the size of macro definition table. For test/dtypes.c - DEBUG_CFLAGS=-g - DEBUG_CPPFLAGS="-Ae" - PROD_CFLAGS=-O - PROD_CPPFLAGS="-Ae" - PROFILE_CFLAGS= - PROFILE_CPPFLAGS="-Ae" - ;; -esac - -# The default Fortran 90 compiler - -if test "X$FC" = "X"; then - FC=f90 -fi - -if test "X$f9x_flags_set" = "X"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -O" - DEBUG_FCFLAGS="-O" - PROD_FCFLAGS="-O" - PROFILE_FCFLAGS="-O" - f9x_flags_set=yes -fi - -# The default C++ compiler - -if test -z "$CXX"; then - CXX=aCC - CXX_BASENAME=aCC -fi - -case "X-$CXX" in - X-aCC) - # +Z for PIC - H5_CXXFLAGS="$H5_CXXFLAGS +Z -D_INCLUDE_LONGLONG" - H5_CFLAGS="$H5_CFLAGS -g +O2" - DEBUG_CXXFLAGS=-g - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O -s" - PROD_CPPFLAGS= - PROFILE_CPPFLAGS= - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS -D_INCLUDE_LONGLONG" - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CXXFLAGS= - DEBUG_CPPFLAGS= - PROD_CXXFLAGS= - PROD_CPPFLAGS= - PROFILE_CPPFLAGS= - ;; -esac diff --git a/config/ia64-linux-gnu b/config/ia64-linux-gnu deleted file mode 100644 index 9f1b262..0000000 --- a/config/ia64-linux-gnu +++ /dev/null @@ -1,144 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. - -# Use Intel C compiler by default (if it's available). -# Use mpicc for parallel by default. -if test "X$CC" = "X"; then - if test "X-$enable_parallel" = "X-yes"; then - CC=mpicc - CC_BASENAME=mpicc - elif which icc > /dev/null; then - CC=icc - CC_BASENAME=icc - fi -fi - -# Define RUNPARALLEL if parallel mode is enabled or a parallel compiler used. -if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpicc; then - RUNPARALLEL=${RUNPARALLEL="mpirun -np \$\${NPROCS:=6}"} -fi - -#---------------------------------------------------------------------------- -# Compiler flags. The CPPFLAGS values should not include package debug -# flags like `-DH5G_DEBUG' since these are added with the -# `--enable-debug' switch of configure. - -case $CC_BASENAME in - ecc|icc) - . $srcdir/config/intel-flags - ;; - - gcc) - . $srcdir/config/gnu-flags - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -ansi" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - -# The default Fortran 90 compiler - -# Use Intel Fortran compiler by default. -if test X-$enable_fortran = X-yes -a "X-$FC" = "X-"; then - if test "X-$enable_parallel" = "X-yes"; then - FC=mpif90 - else - FC="ifort" - fi -fi - -case $FC in - *efc|*ifort) - # this is for efc v7. Older efc do not work with these. - # -Vaxlib is for non-standard fortran calls like exit(). - MORE_FCFLAGS='-fpp -DDEC$=DEC_ -DMS$=MS_ -Vaxlib' - H5_FCFLAGS="$H5_FCFLAGS $MORE_FCFLAGS" - f9x_flags_set=yes - ;; - - *) - f9x_flags_set=yes - ;; -esac - -# The following is not right and need work. -if test "X$f9x_flags_set" = "X"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS" - DEBUG_FCFLAGS="" - PROD_FCFLAGS="" - PROFILE_FCFLAGS="" - f9x_flags_set=yes -fi - -# The Default settings for C++ -# Intel changed C++ compiler's name from "icc" to "icpc" in version 8.1 -if test -z "$CXX"; then - CXX=icpc - CXX_BASENAME=icpc -fi - -# A patch to make g++ getting the default settings. -# CXX_BASENAME should have been set in configure. -if test "X$CXX" = "Xg++"; then - CXX_BASENAME=g++ -fi - - -case $CXX_BASENAME in - ecc|icc) # Intel compilers - # Default to C99 standard. - H5_CXXFLAGS="${H5_CXXFLAGS:--std=c99}" - DEBUG_CXXFLAGS="-g -w2 -Wall" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="" #Default optimization O2 is used - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - # Default to C99 standard. - H5_CXXFLAGS="${H5_CXXFLAGS:--std=c99}" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac diff --git a/config/irix6.x b/config/irix6.x deleted file mode 100644 index 8907a66..0000000 --- a/config/irix6.x +++ /dev/null @@ -1,178 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# -# See BlankForm in this directory for details. - -# Disable dependency tracking on IRIX unless the user specifically asks for -# it. -# IRIX's pmake confuses automake (as of version 1.9) if dependency tracking -# is enabled and it is not an in-place build. Simply disabling dependency -# tracking on IRIX is simpler to implement than detecting pmake, detecting -# when a build is not in-place, and then disabling dependency tracking. -if test -z "${enable_dependency_tracking}"; then - enable_dependency_tracking="no" -fi - -# Use SGI supplied C compiler by default. There is no ranlib -if test "X-" = "X-$CC"; then - CC='cc' - CC_BASENAME=cc - # use c99 compiler if available. - if `c99 -version >/dev/null 2>&1` ; then - CC='c99' - fi -fi -RANLIB=: - -# Compiler flags -case "X-$CC_BASENAME" in - X-gcc) - . $srcdir/config/gnu-flags - ;; - - *) - if [ "$CC_BASENAME" = "cc" ] || ($CC -version 2>&1 | grep -s "MIPSpro Compilers") 2>&1 > /dev/null; then - # use these flags if this is the SGI cc compiler or some compiler - # command that eventually uses the SGI cc compiler. - - # Check for old versions of the compiler that don't work right. - case "`$CC -version 2>&1 |head -1`" in - "Mongoose Compilers: Version 7.00") - echo " +---------------------------------------------------+" - echo " | You have an old version of cc (Mongoose Compilers |" - echo " | version 7.00). Please upgrade to MIPSpro version |" - echo " | 7.2.1.2m (patches are available from the SGI web |" - echo " | site). The 7.00 version may generate incorrect |" - echo " | code, especially when optimizations are enabled. |" - echo " +---------------------------------------------------+" - sleep 5 - ;; - esac - - # Always turn off these compiler warnings for the -64 compiler: - # 1174: function declared but not used - # 1196: __vfork() (this is an SGI config problem) - # 1209: constant expressions - # 1429: the `long long' type is not standard - # 1685: turn off warnings about turning off invalid warnings - # 3201: remark - parameter not referenced - #H5_CFLAGS="$H5_CFLAGS -woff 1174,1429,1209,1196,1685,3201" - H5_CFLAGS="$H5_CFLAGS -woff 1209,3201" - - # Always turn off these compiler warnings for the old compiler: - # 799: the `long long' type is not standard - # 803: turn off warnings about turning off invalid warnings - # 835: __vfork() (this is an SGI config problem) - #H5_CFLAGS="$H5_CFLAGS -woff 799,803,835" - - # Always turn off these loader warnings: - # (notice the peculiar syntax) - # 47: branch instructions that degrade performance on R4000 - # 84: a library is not used - # 85: duplicate definition preemption (from -lnsl) - # 134: duplicate weak definition preemption (from -lnsl) - H5_CFLAGS="$H5_CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134" - fi - - # Extra debugging flags - DEBUG_CFLAGS="-g -fullwarn" - DEBUG_CPPFLAGS= - - # Extra production flags - PROD_CFLAGS="-O -OPT:Olimit=0 -s" - PROD_CPPFLAGS= - - # Extra profiling flags - PROFILE_CFLAGS= - PROFILE_CPPFLAGS= - ;; -esac - -# The default Fortran 90 compiler - -if test "X-" = "X-$FC"; then - FC="f90" -fi - -if test "X-" = "X-$f9x_flags_set"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -mips4 -O -s" - DEBUG_FCFLAGS="-mips4 -O -s" - PROD_FCFLAGS="-mips4 -O -s" - PROFILE_FCFLAGS="-mips4 -O -s" - f9x_flags_set=yes -fi - -# The default C++ compiler - -# The default compiler is `MIPSpro CC' -if test -z "$CXX"; then - CXX=CC - CXX_BASENAME=CC -fi - -# Try native compiler flags -if test -z "$cxx_flags_set"; then - # -LANG:std required for std use; -ptused causes templates used to be - # instantiated - AM_CPPFLAGS="$AM_CPPFLAGS -LANG:std" - H5_CPPFLAGS="$H5_CPPFLAGS -ptused" - - # libCio is a default library, since libtool before 1.5 doesn't fully - # support C++ yet, default libraries must be explicitly specified. - # A new macro is used for this temporary and specific task so it - # won't polute the existing configuration - DEFAULT_LIBS="-lCio" - - DEBUG_CXXFLAGS=-g - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O -s" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS=-xpg - PROFILE_CPPFLAGS= - cxx_flags_set=yes -fi - -# Hard set flag to indicate that the 'unsigned long long' to floating-point -# value conversion are broken by the compilers (as of 4/27/04 - QAK) -hdf5_cv_ulong_to_fp_bottom_bit_accurate=${hdf5_cv_ulong_to_fp_bottom_bit_accurate='no'} - -# Set flags to avoid conversion between 'long double' and integers because of -# SGI's compiler problems. For both IRIX64 6.5 and IRIX 6.5, the compilers -# have the following problems, -# long double -> signed char : incorrect rounding -# long double -> unsigned char : incorrect rounding -# long double -> short : incorrect rounding -# long double -> unsigned short : incorrect rounding -# long double -> long or long long: incorrect value -# long double -> unsigned long or long long : incorrect value -# -# long or long long -> long double : correct value but incorrect bit pattern -# unsigned long or long long -> long double : correct value but incorrect bit pattern -# (1/5/05 - SLU) -hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate='no'} -hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate='no'} - -# Set flag to generate alternate code for H5VM_log2_gen, to avoid -# problems with the MIPSpro compiler 7.30 and IRIX64 6.5 (ie. other -# combinations might work, but haven't been tested) -# (9/15/06 - QAK) -hdf5_cv_bad_log2_code_generated=${hdf5_cv_bad_log2_code_generated='yes'} diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1 index c18c02d..465bfed 100644 --- a/config/linux-gnulibc1 +++ b/config/linux-gnulibc1 @@ -38,6 +38,9 @@ fi # Figure out PGI C compiler flags . $srcdir/config/pgi-flags +# Figure out CCE C compiler flags +. $srcdir/config/cce-flags + # Figure out Intel C compiler flags . $srcdir/config/intel-flags @@ -89,10 +92,13 @@ else esac fi -# Figure out PGI F90 compiler flags +# Figure out PGI FC compiler flags . $srcdir/config/pgi-fflags -# Figure out Intel F90 compiler flags +# Figure out CCE FC compiler flags +. $srcdir/config/cce-fflags + +# Figure out Intel FC compiler flags . $srcdir/config/intel-fflags case $FC_BASENAME in @@ -125,6 +131,10 @@ if test -z "$CXX"; then fi # compiler version strings + +# check if the compiler_version_info is already set +if test -z "$cc_version_info"; then + case $CC in # whatever matches *pgcc* will also match *gcc*, so this one must come first *pgcc*) @@ -153,7 +163,11 @@ case $CC in ;; esac +fi + # get fortran version info +# check if the compiler_version_info is already set +if test -z "$fc_version_info"; then case $FC in *gfortran*) fc_version_info=`$FC $FCFLAGS $H5_FCFLAGS --version 2>&1 |\ @@ -199,9 +213,11 @@ case $FC in echo "No match to get fc_version_info for $FC" ;; esac - +fi # get c++ version info +# check if the compiler_version_info is already set +if test -z "$cxx_version_info"; then case $CXX in *g++*) cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS --version 2>&1 |\ @@ -226,4 +242,4 @@ case $CXX in echo "No match to get cxx_version_info for $CXX" ;; esac - +fi diff --git a/config/lt_vers.am b/config/lt_vers.am index d442ca9..41d7e81 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -19,7 +19,7 @@ # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/config/nec-superux14.1 b/config/nec-superux14.1 deleted file mode 100644 index dc1a15d..0000000 --- a/config/nec-superux14.1 +++ /dev/null @@ -1,179 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# [ak] created for a nec sx6 running superux with native compilers -# [ak] -xint is neccessary because of src/H5FDmulti.c[H5Pset_fapl_multi] -# [ak] integer division of unsigned longs for _memb_addr - -#---------------------------------------------------------------------------- -# Compiler flags. The CPPFLAGS values should not include package debug -# flags like `-DH5G_DEBUG' since these are added with the -# `--enable-debug' switch of configure. -#---------------------------------------------------------------------------- - - -# Choosing a C Compiler -# --------------------- -# -# The user should be able to specify the compiler by setting the CC -# environment variable to the name of the compiler and any switches it -# requires for proper operation. If CC is unset then this script may -# set it. If CC is unset by time this script completes then configure -# will try `gcc' and `cc' in that order (perhaps some others too). -# -# Note: Code later in this file may depend on the value of $CC_BASENAME -# in order to distinguish between different compilers when -# deciding which compiler command-line switches to use. This -# variable is set based on the incoming value of $CC and is only -# used within this file. - -if test "X-" = "X-$CC"; then - CC="sxc++ -Xa -size_t64 -xint -K c99" - CC_BASENAME=sxc++ -fi -# The default archiver is `sxar' -AR=${AR:-sxar} -RANLIB=${RANLIB:=":"} - -if test "X-" = "X-$CXX"; then - CXX="sxc++ -size_t64 -xint -Kexceptions" - CXX_BASENAME=sxc++ -fi - -if test "X-" = "X-$F9X"; then - FC="sxf90 -size_t64 -ew " - FC_BASENAME=sxf90 -fi - -# C Compiler and Preprocessor Flags -# --------------------------------- -# -# Flags that end with `_CFLAGS' are always passed to the compiler. -# Flags that end with `_CPPFLAGS' are passed to the compiler when -# compiling but not when linking. -# -# DEBUG_CFLAGS Flags to pass to the compiler to create a -# DEBUG_CPPFLAGS library suitable for use with debugging -# tools. Usually this list will exclude -# optimization switches (like `-O') and include -# switches that turn on symbolic debugging -# support (like `-g'). -# -# PROD_CFLAGS Flags to pass to the compiler to create a -# PROD_CPPFLAGS production version of the library. These -# usualy exclude symbolic debugging switches -# (like `-g') and include optimization switches -# (like `-O'). -# -# PROFILE_CFLAGS Flags to pass to the compiler to create a -# PROFILE_CPPFLAGS library suitable for performance testing (like -# `-pg'). This may or may not include debugging -# or production flags. -# -# H5_CFLAGS Flags can be added to this variable which -# might already be partially initialized. These -# flags will always be passed to the compiler -# and should include switches to turn on full -# warnings. HDF5 attempts to be ANSI and Posix -# compliant and employ good programming -# practices resulting in few if any -# warnings. -# -# Warning flags do not have to be added to H5_CFLAGS -# variable if the compiler is the GNU gcc -# compiler or a descendent of gcc such as EGCS or PGCC. -# -# AM_CFLAGS Flags added directly into this variable will -# be propogated to the compiler wrapper scripts (h5cc, -# h5c++, et cetera) in addition to being used to compile -# the library. -# -# These flags should be set according to the compiler being used. -# There are two ways to check the compiler. You can try using `-v' or -# `--version' to see if the compiler will print a version string. You -# can use the value of $CC_BASENAME which is the base name of the -# first word in $CC (note that the value of CC may have changed -# above). - -case $CC_BASENAME in - cc) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-Cdebug -g -wall" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-Cnoopt" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-p" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-p" - PROFILE_CPPFLAGS= - ;; -esac - -case $CXX_BASENAME in - c++) - H5_CXXFLAGS="$H5_CXXFLAGS -Tlocal" - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS" - ;; -esac - -case $FC_BASENAME in - f90) - H5_FCFLAGS="$F9XFLAGS" - ;; - - *) - H5_FCFLAGS="$F9XFLAGS" - ;; -esac - -# Overriding Configure Tests -# -------------------------- -# -ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=0} -hdf5_cv_gettimeofday_tz=no -# I have to add the follwoing two lines when -K c99 was used -ac_cv_func_getrusage=no -ac_cv_func_gethostname=no -hdf5_cv_vsnprintf_works=no -hdf5_cv_printf_ll=l -hdf5_cv_system_scope_threads=no -hdf5_cv_sw_ldouble_to_integer_works=no -hdf5_cv_fp_to_ullong_right_maximum=no -hdf5_cv_fp_to_ullong_bottom_bit_works=yes -hdf5_cv_fp_to_ullong_right_maximum=no -hdf5_cv_ldouble_to_uint_work=no -hdf5_cv_ullong_to_fp_cast_works=yes -hdf5_cv_ullong_to_ldouble_precision_works=no -hdf5_cv_fp_to_integer_overflow_works=yes -hdf5_cv_fp_to_ullong_accurate=no -hdf5_cv_fp_to_ullong_right_maximum=no -CONFIGURE_LIBS=/usr/lib/libi90sxe.a - - diff --git a/config/sv1-cray b/config/sv1-cray deleted file mode 100644 index 1bae48d..0000000 --- a/config/sv1-cray +++ /dev/null @@ -1,199 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. - - -#---------------------------------------------------------------------------- -# Compiler flags. The CPPFLAGS values should not include package debug -# flags like `-DH5G_DEBUG' since these are added with the -# `--enable-debug' switch of configure. -#---------------------------------------------------------------------------- - - -# Choosing a C Compiler -# --------------------- -# -# The user should be able to specify the compiler by setting the CC -# environment variable to the name of the compiler and any switches it -# requires for proper operation. If CC is unset then this script may -# set it. If CC is unset by time this script completes then configure -# will try `gcc' and `cc' in that order (perhaps some others too). -# -# Note: Code later in this file may depend on the value of $CC_BASENAME -# in order to distinguish between different compilers when -# deciding which compiler command-line switches to use. This -# variable is set based on the incoming value of $CC and is only -# used within this file. - -if test "X-" = "X-$CC"; then - CC=cc - CC_BASENAME=cc -fi -# no need to use RANLIB -RANLIB=: - - -# C Compiler and Preprocessor Flags -# --------------------------------- -# -# Flags that end with `_CFLAGS' are always passed to the compiler. -# Flags that end with `_CPPFLAGS' are passed to the compiler when -# compiling but not when linking. -# -# DEBUG_CFLAGS Flags to pass to the compiler to create a -# DEBUG_CPPFLAGS library suitable for use with debugging -# tools. Usually this list will exclude -# optimization switches (like `-O') and include -# switches that turn on symbolic debugging -# support (like `-g'). -# -# PROD_CFLAGS Flags to pass to the compiler to create a -# PROD_CPPFLAGS production version of the library. These -# usualy exclude symbolic debugging switches -# (like `-g') and include optimization switches -# (like `-O'). -# -# PROFILE_CFLAGS Flags to pass to the compiler to create a -# PROFILE_CPPFLAGS library suitable for performance testing (like -# `-pg'). This may or may not include debugging -# or production flags. -# -# H5_CFLAGS Flags can be added to this variable which -# might already be partially initialized. These -# flags will always be passed to the compiler -# and should include switches to turn on full -# warnings. HDF5 attempts to be ANSI and Posix -# compliant and employ good programming -# practices resulting in few if any -# warnings. -# -# Warning flags do not have to be added to H5_CFLAGS -# variable if the compiler is the GNU gcc -# compiler or a descendent of gcc such as EGCS or PGCC. -# -# AM_CFLAGS Flags added directly into this variable will -# be propogated to the compiler wrapper scripts (h5cc, -# h5c++, et cetera) in addition to being used to compile -# the library. -# -# These flags should be set according to the compiler being used. -# There are two ways to check the compiler. You can try using `-v' or -# `--version' to see if the compiler will print a version string. You -# can use the value of $CC_BASENAME which is the base name of the -# first word in $CC (note that the value of CC may have changed -# above). - -case $CC_BASENAME in - gcc) - H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - cc) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-g -h zero" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O2 -h scalar0 -h vector0 -h task1" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -ansi" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - - -# Overriding Configure Tests -# -------------------------- -# -# Values for overriding configuration tests when cross compiling. -# This includes compiling on some machines where the serial front end -# compiles for a parallel back end. - -# Set this to `yes' or `no' depending on whether the target is big -# endian or little endian. -#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} - -# Set this to the width required by printf() to print type `long -# long'. For instance, if the format would be `%lld' then set it to -# `ll' or if the format would be `%qd' set it to `q'. -#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} - -# Hard set the flag to indicate that converting denormalized floating-point -# values doesn't work. -hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'} - -# The default Fortran 90 compiler - -if test "X-" = "X-$FC"; then - FC=f90 -fi - -if test "X-" = "X-$f9x_flags_set"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -dp" - DEBUG_FCFLAGS="-dp" - PROD_FCFLAGS="-dp" - PROFILE_FCFLAGS="-dp" - f9x_flags_set=yes -fi - -# The default C++ compiler - -if test -z "$CXX"; then - CXX="CC" - CXX_BASENAME=CC -fi - - -case $CXX_BASENAME in - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS -h instantiate=used" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac diff --git a/config/x86_64-redstorm-linux-gnu b/config/x86_64-redstorm-linux-gnu deleted file mode 100644 index 76f9711..0000000 --- a/config/x86_64-redstorm-linux-gnu +++ /dev/null @@ -1,164 +0,0 @@ -# -*- shell-script -*- -# -# 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. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# -# See BlankForm in this directory for details. - -# This is for the ASCI RED STORM machine - -# Define RUNPARALLEL and RUNSERIAL if parallel mode is enabled or a parallel -# compiler is used. -if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpicc; then - RUNSERIAL=${RUNSERIAL:-"yod -sz 1"} - RUNPARALLEL=${RUNPARALLEL:-"yod -sz 3"} - # Disable stream-vfd option. It does not work in parallel mode. - enable_stream_vfd="${enable_stream_vfd:-no}" - # Turn off shared lib option. It does not work in parallel mode. - enable_shared="${enable_shared:-no}" -fi - -H5_CFLAGS="$H5_CFLAGS -DRED_STORM" - -# What compiler flags should be used for code development? -DEBUG_CFLAGS=-g -DEBUG_CPPFLAGS= - -# What compiler flags should be used for building a production -# library? -PROD_CFLAGS=-O -PROD_CPPFLAGS= - -# What compiler flags enable code profiling? -PROFILE_CFLAGS=-pg -PROFILE_CPPFLAGS= - -# Set this to the width required by printf() to print type `long -# long'. For instance, if the format would be `%lld' then set it to -# `ll' or if the format would be `%qd' set it to `q'. -hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_char=${ac_cv_type_char=yes} -ac_cv_sizeof_char=${ac_cv_sizeof_char='1'} -ac_cv_type_short=${ac_cv_type_short=yes} -ac_cv_sizeof_short=${ac_cv_sizeof_short='2'} -ac_cv_type_int=${ac_cv_type_int=yes} -ac_cv_sizeof_int=${ac_cv_sizeof_int='4'} -ac_cv_type_long=${ac_cv_type_long=yes} -ac_cv_sizeof_long=${ac_cv_sizeof_long='8'} -ac_cv_type_float=${ac_cv_type_float=yes} -ac_cv_sizeof_float=${ac_cv_sizeof_float='4'} -ac_cv_type_double=${ac_cv_type_double=yes} -ac_cv_sizeof_double=${ac_cv_sizeof_double='8'} -ac_cv_type_long_double=${ac_cv_type_long_double=yes} -# no cache for long double which varies in size in different compilers. -# gcc defines it as 12 bytes but pgcc defines it as 8 bytes. -#ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double='8'} -ac_cv_type_long_long=${ac_cv_type_long_long=yes} -ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long='8'} -ac_cv_type_size_t=${ac_cv_type_size_t=yes} -ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t='8'} -ac_cv_type_ssize_t=${ac_cv_type_ssize_t=yes} -ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t='8'} -ac_cv_type_off_t=${ac_cv_type_off_t=yes} -ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t='8'} - -# Hard set sizeof of the following types to 0 because they are not supported. -#ac_cv_type___int64=${ac_cv_type___int64=no} -#ac_cv_sizeof___int64=${ac_cv_sizeof___int64='0'} - -# Hard set malloc of zero bytes to no because it does not work. -hdf5_cv_malloc_works=${hdf5_cv_malloc_works='no'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_int8_t=${ac_cv_type_int8_t=yes} -ac_cv_type_int16_t=${ac_cv_type_int16_t=yes} -ac_cv_type_int32_t=${ac_cv_type_int32_t=yes} -ac_cv_type_int64_t=${ac_cv_type_int64_t=yes} -ac_cv_type_uint8_t=${ac_cv_type_uint8_t=yes} -ac_cv_type_uint16_t=${ac_cv_type_uint16_t=yes} -ac_cv_type_uint32_t=${ac_cv_type_uint32_t=yes} -ac_cv_type_uint64_t=${ac_cv_type_uint64_t=yes} -ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='1'} -ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t='2'} -ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t='4'} -ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t='8'} -ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='1'} -ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t='2'} -ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t='4'} -ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t='8'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_int_least8_t=${ac_cv_type_int_least8_t=yes} -ac_cv_type_int_least16_t=${ac_cv_type_int_least16_t=yes} -ac_cv_type_int_least32_t=${ac_cv_type_int_least32_t=yes} -ac_cv_type_int_least64_t=${ac_cv_type_int_least64_t=yes} -ac_cv_type_uint_least8_t=${ac_cv_type_uint_least8_t=yes} -ac_cv_type_uint_least16_t=${ac_cv_type_uint_least16_t=yes} -ac_cv_type_uint_least32_t=${ac_cv_type_uint_least32_t=yes} -ac_cv_type_uint_least64_t=${ac_cv_type_uint_least64_t=yes} -ac_cv_sizeof_int_least8_t=${ac_cv_sizeof_int_least8_t='1'} -ac_cv_sizeof_int_least16_t=${ac_cv_sizeof_int_least16_t='2'} -ac_cv_sizeof_int_least32_t=${ac_cv_sizeof_int_least32_t='4'} -ac_cv_sizeof_int_least64_t=${ac_cv_sizeof_int_least64_t='8'} -ac_cv_sizeof_uint_least8_t=${ac_cv_sizeof_uint_least8_t='1'} -ac_cv_sizeof_uint_least16_t=${ac_cv_sizeof_uint_least16_t='2'} -ac_cv_sizeof_uint_least32_t=${ac_cv_sizeof_uint_least32_t='4'} -ac_cv_sizeof_uint_least64_t=${ac_cv_sizeof_uint_least64_t='8'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_int_fast8_t=${ac_cv_type_int_fast8_t=yes} -ac_cv_type_int_fast16_t=${ac_cv_type_int_fast16_t=yes} -ac_cv_type_int_fast32_t=${ac_cv_type_int_fast32_t=yes} -ac_cv_type_int_fast64_t=${ac_cv_type_int_fast64_t=yes} -ac_cv_type_uint_fast8_t=${ac_cv_type_uint_fast8_t=yes} -ac_cv_type_uint_fast16_t=${ac_cv_type_uint_fast16_t=yes} -ac_cv_type_uint_fast32_t=${ac_cv_type_uint_fast32_t=yes} -ac_cv_type_uint_fast64_t=${ac_cv_type_uint_fast64_t=yes} -ac_cv_sizeof_int_fast8_t=${ac_cv_sizeof_int_fast8_t='1'} -ac_cv_sizeof_int_fast16_t=${ac_cv_sizeof_int_fast16_t='8'} -ac_cv_sizeof_int_fast32_t=${ac_cv_sizeof_int_fast32_t='8'} -ac_cv_sizeof_int_fast64_t=${ac_cv_sizeof_int_fast64_t='8'} -ac_cv_sizeof_uint_fast8_t=${ac_cv_sizeof_uint_fast8_t='1'} -ac_cv_sizeof_uint_fast16_t=${ac_cv_sizeof_uint_fast16_t='8'} -ac_cv_sizeof_uint_fast32_t=${ac_cv_sizeof_uint_fast32_t='8'} -ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t='8'} - -hdf5_cv_system_scope_threads=${hdf5_cv_system_scope_threads="no"} - -# Hard set MPI_File_set_size() working for files over 2GB to yes -hdf5_cv_mpi_file_set_size_big=${hdf5_cv_mpi_file_set_size_big='yes'} - -# Hard set variables for v1.7 and higher. -# Set gettimeofday_tz to yes. -hdf5_cv_gettimeofday_tz=${hdf5_cv_gettimeofday_tz='yes'} -hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'} -hdf5_cv_fp_to_ullong_bottom_bit_works=${hdf5_cv_fp_to_ullong_bottom_bit_works='no'} -hdf5_cv_fp_to_ullong_right_maximum=${hdf5_cv_fp_to_ullong_right_maximum='yes'} -hdf5_cv_ldouble_to_uint_works=${hdf5_cv_ldouble_to_uint_works='yes'} -hdf5_cv_sw_ldouble_to_integer_works=${hdf5_cv_sw_ldouble_to_integer_works='yes'} -hdf5_cv_sw_ulong_to_fp_bottom_bit_works=${hdf5_cv_sw_ulong_to_fp_bottom_bit_works='no'} -hdf5_cv_ullong_to_fp_cast_works=${hdf5_cv_ullong_to_fp_cast_works='yes'} -hdf5_cv_ullong_to_ldouble_precision_works=${hdf5_cv_ullong_to_ldouble_precision_works='yes'} -hdf5_cv_vsnprintf_works=${hdf5_cv_vsnprintf_works='yes'} -hdf5_cv_fp_to_integer_overflow_works=${hdf5_cv_fp_to_integer_overflow_works='yes'} @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.215. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.216. # # Report bugs to <help@hdfgroup.org>. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.215' -PACKAGE_STRING='HDF5 1.9.215' +PACKAGE_VERSION='1.9.216' +PACKAGE_STRING='HDF5 1.9.216' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -640,7 +640,6 @@ LTLIBOBJS LIBOBJS HAVE_SHARED_CONDITIONAL_FALSE HAVE_SHARED_CONDITIONAL_TRUE -SETX SEARCH BUILD_HDF5_HL_CONDITIONAL_FALSE BUILD_HDF5_HL_CONDITIONAL_TRUE @@ -655,9 +654,6 @@ DEFAULT_API_VERSION DEPRECATED_SYMBOLS BUILD_ALL_CONDITIONAL_FALSE BUILD_ALL_CONDITIONAL_TRUE -HL_FOR -HL -DYNAMIC_DIRS ROOT CXX_VERSION FC_VERSION @@ -670,18 +666,12 @@ CONFIG_DATE H5_VERSION DIRECT_VFD_CONDITIONAL_FALSE DIRECT_VFD_CONDITIONAL_TRUE -USE_FILTER_SCALEOFFSET -USE_FILTER_NBIT -USE_FILTER_FLETCHER32 -USE_FILTER_SHUFFLE -FILTERS ADD_PARALLEL_FILES USINGMEMCHECKER CLEARFILEBUF INSTRUMENT_LIBRARY TRACE_API DEBUG_PKG -H5_LONE_COLON HAVE_PTHREAD BUILD_SHARED_SZIP_CONDITIONAL_FALSE BUILD_SHARED_SZIP_CONDITIONAL_TRUE @@ -701,6 +691,8 @@ DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR +DLLTOOL +OBJDUMP LN_S NM ac_ct_DUMPBIN @@ -711,12 +703,6 @@ EGREP GREP SED LIBTOOL -OBJDUMP -DLLTOOL -AS -CXX_SHARED_CONDITIONAL_FALSE -CXX_SHARED_CONDITIONAL_TRUE -H5_CXX_SHARED FORTRAN_SHARED_CONDITIONAL_FALSE FORTRAN_SHARED_CONDITIONAL_TRUE H5_FORTRAN_SHARED @@ -728,6 +714,8 @@ TIME TR AR PERL +HL_FOR +HL CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE @@ -894,6 +882,7 @@ enable_unsupported enable_fortran enable_fortran2003 enable_cxx +enable_hl enable_shared enable_static with_pic @@ -919,13 +908,9 @@ enable_clear_file_buffers enable_using_memchecker enable_parallel with_mpe -enable_filters -with_default_vfd enable_direct_vfd with_default_plugindir enable_dconv_exception -enable_dconv_accuracy -enable_hl enable_build_all enable_deprecated_symbols with_default_api_version @@ -1487,7 +1472,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.215 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.216 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1557,7 +1542,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.215:";; + short | recursive ) echo "Configuration of HDF5 1.9.216:";; esac cat <<\_ACEOF @@ -1575,10 +1560,11 @@ Optional Features: --disable-dependency-tracking speeds up one-time build --enable-unsupported Allow unsupported combinations of configure options - --enable-fortran Compile the Fortran 77/90/95 interface [default=no] + --enable-fortran Compile the Fortran 90/95 interface [default=no] --enable-fortran2003 Compile the Fortran 2003 interface, must also specify --enable-fortran [default=no] --enable-cxx Compile the C++ interface [default=no] + --enable-hl Enable the high level library [default=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] @@ -1589,7 +1575,10 @@ Optional Features: --disable-sharedlib-rpath Disable use of the '=Wl,-rpath' linker option --enable-production Determines how to run the compiler. - --enable-threadsafe Enable thread-safe capability + --enable-threadsafe Enable thread-safe capability. This will disable the + high-level library. You can override this behavior + by specifying --enable-hl and --enable-unsupported. + [default=no] --enable-debug=all Turn on debugging in all packages. One may also specify a comma-separated list of package names without the leading H5 or the word no. The default @@ -1613,17 +1602,12 @@ Optional Features: picky about it's memory operations and also disables the library's free space manager code. Default=no. --enable-parallel Search for MPI-IO and MPI support files - --enable-filters=all Turn on all internal I/O filters. One may also - specify a comma-separated list of filters or the - word no. The default is all internal I/O filters. - --enable-direct-vfd Build the Direct I/O Virtual File Driver - [default=yes] + --enable-direct-vfd Build the direct I/O virtual file driver (VFD). This + is based on the POSIX (sec2) VFD and requires the + open() call to take the O_DIRECT flag. [default=no] --enable-dconv-exception if exception handling functions is checked during data conversions [default=yes] - --enable-dconv-accuracy if data accuracy is guaranteed during data - conversions [default=yes] - --enable-hl Enable the high level library [default=yes] --enable-build-all Build helper programs that only developers should need [default=no] --enable-deprecated-symbols @@ -1657,10 +1641,8 @@ Optional Packages: --with-szlib=DIR Use szlib library for external szlib I/O filter [default=no] --with-pthread=DIR Specify alternative path to Pthreads library when - thread-safe capability is built + thread-safe capability is built. --with-mpe=DIR Use MPE instrumentation [default=no] - --with-default-vfd=driver - Specify default file driver [default=sec2] --with-default-plugindir=location Specify default location for plugins [default="/usr/local/hdf5/lib/plugin"] @@ -1749,7 +1731,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.215 +HDF5 configure 1.9.216 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1885,13 +1867,13 @@ fi } # ac_fn_c_try_link -# ac_fn_fc_try_run LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_fc_try_run () +# ac_fn_fc_try_link LINENO +# ------------------------ +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_fc_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -1899,33 +1881,37 @@ case "(($ac_try" in esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 + (eval "$ac_link") 2>conftest.err ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : + test $ac_status = 0; } && { + test -z "$ac_fc_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : ac_retval=0 else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=$ac_status + ac_retval=1 fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_fc_try_run +} # ac_fn_fc_try_link # ac_fn_cxx_try_compile LINENO # ---------------------------- @@ -2002,13 +1988,13 @@ fi } # ac_fn_cxx_try_cpp -# ac_fn_cxx_try_run LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_cxx_try_run () +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -2016,33 +2002,37 @@ case "(($ac_try" in esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 + (eval "$ac_link") 2>conftest.err ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : ac_retval=0 else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=$ac_status + ac_retval=1 fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_cxx_try_run +} # ac_fn_cxx_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- @@ -2229,98 +2219,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_func -# ac_fn_cxx_try_link LINENO -# ------------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_link - -# ac_fn_fc_try_link LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_fc_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_fc_try_link - # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using @@ -2766,84 +2664,11 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl - -# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES -# ---------------------------------------------------- -# Tries to find if the field MEMBER exists in type AGGR, after including -# INCLUDES, setting cache variable VAR accordingly. -ac_fn_c_check_member () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_member cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.215, which was +It was created by HDF5 $as_me 1.9.216, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3714,7 +3539,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.215' + VERSION='1.9.216' cat >>confdefs.h <<_ACEOF @@ -3995,7 +3820,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -## Make sure flags are set to something (otherwise macros may set them later). +## Make sure flags are initialized. AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -4016,12 +3841,6 @@ saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" -## Different compilers may need default libraries. They are specified in -## the config/* files, so we put this statement here so that it'll be -## set by the code which follows... -## -DEFAULT_LIBS="" - ## Support F9X variable to define Fortran compiler if FC variable is ## not used. This should be deprecated in the future. if test "x" = "x$FC"; then @@ -4080,15 +3899,9 @@ $as_echo "done" >&6; } ## ---------------------------------------------------------------------- ## Some platforms have broken basename, and/or xargs programs. Check ## that it actually does what it's supposed to do. Catch this early -## since configure relies upon them heavily and there's no use continuing -## if it's broken. +## since configure and scripts relies upon them heavily and there's +## no use continuing if it's broken. ## - -## Avoid depending upon Character Ranges. -## These are defined by autoconf. -## as_cr_letters='abcdefghijklmnopqrstuvwxyz' -## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename works" >&5 $as_echo_n "checking if basename works... " >&6; } BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`" @@ -4099,6 +3912,7 @@ else $as_echo "yes" >&6; } fi +## xargs basename used in configure to get the CC_BASENAME value { $as_echo "$as_me:${as_lineno-$LINENO}: checking if xargs works" >&5 $as_echo_n "checking if xargs works... " >&6; } XARGS_TEST="`echo /foo/bar/baz/qux/xargs_works | xargs basename`" @@ -4154,12 +3968,6 @@ case $host_os in freebsd*) host_os_novers=freebsd ;; - irix5.*) - host_os_novers=irix5.x - ;; - irix6.*) - host_os_novers=irix6.x - ;; osf4.*) host_os_novers=osf4.x ;; @@ -5348,14 +5156,13 @@ if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then echo "no" as_fn_error $? "--enable-fortran must be used with --enable-fortran2003" "$LINENO" 5 else - echo "yes" + if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xyes"; then + echo "yes" + else + echo "no" + fi fi -HAVE_SIZEOF="no" -HAVE_C_SIZEOF="no" -HAVE_STORAGE_SIZE="no" -FORTRAN_DEFAULT_REALisDBLE="no" - if test "X$HDF_FORTRAN" = "Xyes"; then HDF_FORTRAN=yes @@ -5364,12 +5171,6 @@ if test "X$HDF_FORTRAN" = "Xyes"; then HDF5_INTERFACES="$HDF5_INTERFACES fortran" ## -------------------------------------------------------------------- - ## Default for FORTRAN 2003 compliant compilers - ## - HAVE_FORTRAN_2003="no" - HAVE_F2003_REQUIREMENTS="no" - - ## -------------------------------------------------------------------- ## HDF5 integer variables for the H5fortran_types.f90 file. ## @@ -5655,14 +5456,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ## -------------------------------------------------------------------- - ## Check for a Fortran 9X compiler and how to include modules. + ## Check for a Fortran compiler and how to include modules. ## ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then - for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn + for ac_prog in gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -5706,7 +5507,7 @@ fi fi if test -z "$FC"; then ac_ct_FC=$FC - for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn + for ac_prog in gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -5960,11 +5761,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - ## It seems that libtool (as of Libtool 1.5.14) is trying to - ## configure itself for Fortran 77. - ## Tell it that our F77 compiler is $FC (actually a F9X compiler) - F77=$FC - ## Change to the Fortran 90 language ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -6658,21 +6454,11 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ## -------------------------------------------------------------------- - ## See if the compiler will support the "-I." option - ## - - - ## -------------------------------------------------------------------- ## See if the fortran compiler supports the intrinsic function "SIZEOF" + HAVE_SIZEOF_FORTRAN="no" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic SIZEOF" >&5 $as_echo_n "checking if Fortran compiler supports intrinsic SIZEOF... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat > conftest.$ac_ext <<_ACEOF PROGRAM main @@ -6680,29 +6466,23 @@ else END PROGRAM _ACEOF -if ac_fn_fc_try_run "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - HAVE_SIZEOF="yes" + HAVE_SIZEOF_FORTRAN="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext ## See if the fortran compiler supports the intrinsic function "C_SIZEOF" + HAVE_C_SIZEOF_FORTRAN="no" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic C_SIZEOF" >&5 $as_echo_n "checking if Fortran compiler supports intrinsic C_SIZEOF... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat > conftest.$ac_ext <<_ACEOF PROGRAM main @@ -6713,29 +6493,23 @@ else END PROGRAM _ACEOF -if ac_fn_fc_try_run "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - HAVE_C_SIZEOF="yes" + HAVE_C_SIZEOF_FORTRAN="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" + HAVE_STORAGE_SIZE_FORTRAN="no" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic STORAGE_SIZE" >&5 $as_echo_n "checking if Fortran compiler supports intrinsic STORAGE_SIZE... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat > conftest.$ac_ext <<_ACEOF PROGRAM main @@ -6745,31 +6519,26 @@ else END PROGRAM _ACEOF -if ac_fn_fc_try_run "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - HAVE_STORAGE_SIZE="yes" + HAVE_STORAGE_SIZE_FORTRAN="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ## Check to see if -r8 was specified to determine if we need to ## compile the DOUBLE PRECISION interfaces. + FORTRAN_DEFAULT_REALisDBLE="no" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran default REAL is DOUBLE PRECISION" >&5 $as_echo_n "checking if Fortran default REAL is DOUBLE PRECISION... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat > conftest.$ac_ext <<_ACEOF MODULE type_mod @@ -6794,17 +6563,15 @@ else END PROGRAM main _ACEOF -if ac_fn_fc_try_run "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - FORTRAN_DEFAULT_REALisDBLE="yes" -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + FORTRAN_DEFAULT_REALisDBLE="yes" fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "X$HDF_FORTRAN2003" = "Xyes"; then @@ -6812,26 +6579,26 @@ fi ## Checking if the compiler supports the required Fortran 2003 features and ## disable Fortran 2003 if it does not. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5 $as_echo_n "checking if Fortran compiler version compatible with Fortran 2003 HDF... " >&6; } HAVE_FORTRAN_2003="no" - + HAVE_F2003_REQUIREMENTS="no" cat > conftest.$ac_ext <<_ACEOF program main - USE iso_c_binding - IMPLICIT NONE - TYPE(C_PTR) :: ptr - TYPE(C_FUNPTR) :: funptr - CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr + USE iso_c_binding + IMPLICIT NONE + TYPE(C_PTR) :: ptr + TYPE(C_FUNPTR) :: funptr + CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr - ptr = C_LOC(ichr(1:1)) + ptr = C_LOC(ichr(1:1)) end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } HAVE_F2003_REQUIREMENTS=yes @@ -6839,12 +6606,13 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - ## echo $HAVE_FORTRAN_2003 as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5 else - ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" fi fi @@ -6860,7 +6628,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu - if test "X$HAVE_SIZEOF" = "Xyes"; then + if test "X$HAVE_SIZEOF_FORTRAN" = "Xyes"; then FORTRAN_HAVE_SIZEOF_TRUE= FORTRAN_HAVE_SIZEOF_FALSE='#' else @@ -6868,7 +6636,7 @@ else FORTRAN_HAVE_SIZEOF_FALSE= fi - if test "X$HAVE_C_SIZEOF" = "Xyes"; then + if test "X$HAVE_C_SIZEOF_FORTRAN" = "Xyes"; then FORTRAN_HAVE_C_SIZEOF_TRUE= FORTRAN_HAVE_C_SIZEOF_FALSE='#' else @@ -6876,7 +6644,7 @@ else FORTRAN_HAVE_C_SIZEOF_FALSE= fi - if test "X$HAVE_STORAGE_SIZE" = "Xyes"; then + if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"; then FORTRAN_HAVE_STORAGE_SIZE_TRUE= FORTRAN_HAVE_STORAGE_SIZE_FALSE='#' else @@ -6901,8 +6669,6 @@ else fi - - ## ---------------------------------------------------------------------- ## Check if they would like the C++ interface compiled ## @@ -7481,15 +7247,11 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + # Checking if C++ needs old style header files in includes + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX needs old style header files in includes" >&5 $as_echo_n "checking if $CXX needs old style header files in includes... " >&6; } - -if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7498,30 +7260,23 @@ else int main(void) { return 0; } _ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - - echo no - +if ac_fn_cxx_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } else - - echo yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME" AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + # Checking if C++ can handle namespaces { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX can handle namespaces" >&5 $as_echo_n "checking if $CXX can handle namespaces... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7536,91 +7291,20 @@ int main(void) { } _ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - - echo yes - +if ac_fn_cxx_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - - echo no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE" AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX supports std" >&5 -$as_echo_n "checking if $CXX supports std... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <string> - -using namespace std; - -int main(void) { - string myString("testing namespace std"); - return 0; -} - -_ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - - echo yes - -else - - echo no - CXXFLAGS="${CXXFLAGS} -DH5_NO_STD" - AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX supports bool types" >&5 -$as_echo_n "checking if $CXX supports bool types... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main(void) { - bool flag; - return 0; -} - -_ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - - echo yes - -else - - echo no - CXXFLAGS="${CXXFLAGS} -DBOOL_NOTDEFINED" - AM_CXXFLAGS="${AM_CXXFLAGS} -DBOOL_NOTDEFINED" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - + # Checking if C++ has offsetof extension { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX has offsetof extension" >&5 $as_echo_n "checking if $CXX has offsetof extension... " >&6; } @@ -7657,26 +7341,24 @@ main () return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define CXX_HAVE_OFFSETOF 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + + # if C++ can handle static cast { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX can handle static cast" >&5 $as_echo_n "checking if $CXX can handle static cast... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7689,23 +7371,22 @@ int main(void) { } _ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - - echo yes - +if ac_fn_cxx_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - - echo no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST" AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else - echo "no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } CXX="no" fi @@ -7717,6 +7398,41 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu + +## ---------------------------------------------------------------------- +## Check if they would like the High Level library compiled +## + + HL="" +## name of fortran folder inside "hl", if FORTRAN compile is requested + HL_FOR="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if high level library is enabled" >&5 +$as_echo_n "checking if high level library is enabled... " >&6; } +# Check whether --enable-hl was given. +if test "${enable_hl+set}" = set; then : + enableval=$enable_hl; HDF5_HL=$enableval +else + HDF5_HL=yes +fi + + +if test "X$HDF5_HL" = "Xyes"; then + echo "yes" + HL="hl" + +$as_echo "#define INCLUDE_HL 1" >>confdefs.h + + + ## If Fortran's default real is double precision and HL is being built then configure + ## should fail due to bug HDFFV-889. + if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then + as_fn_error $? "Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use configure option --disable-hl." "$LINENO" 5 + fi +else + echo "no" +fi + + ## ---------------------------------------------------------------------- ## Check if they have Perl installed on their system. We only need Perl ## if they're using a GNU compiler. @@ -7767,7 +7483,6 @@ done fi - ## ---------------------------------------------------------------------- ## Check which archiving tool to use. This needs to be done before ## the AM_PROG_LIBTOOL macro. @@ -7860,6 +7575,7 @@ fi ## ---------------------------------------------------------------------- ## Set up ${TR} which is used to process DEBUG_PKG. + # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -7906,6 +7622,11 @@ fi ## Check that time can be used with srcdir. This is okay on most systems, ## but seems to cause problems on Cygwin. ## The solution on Cygwin is not to record execution time for tests. +## +## Note: This is still true as of Cygwin 1.7.32 (Aug 2014) on both 32- +## and 64-bit platforms. Given how long this has been true, it seems +## unlikely to change, but we should probably re-test this periodically. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if srcdir= and time commands work together" >&5 $as_echo_n "checking if srcdir= and time commands work together... " >&6; } @@ -8018,395 +7739,13 @@ fi ## ---------------------------------------------------------------------- -## Disable C++ shared libraries if +DD64 flag is detected. -## - -H5_CXX_SHARED="no" -if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if shared C++ libraries are supported" >&5 -$as_echo_n "checking if shared C++ libraries are supported... " >&6; } - H5_CXX_SHARED="yes" - - ## Disable C++ shared libraries if DD64 flag is being used. - - if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then - H5_CXX_SHARED="no" - CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." - fi - - ## Report results of check(s) - - if test "X${H5_CXX_SHARED}" = "Xno"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CHECK_WARN" >&5 -$as_echo "$as_me: WARNING: $CHECK_WARN" >&2;} - if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling shared C++ libraries." >&5 -$as_echo "$as_me: WARNING: Disabling shared C++ libraries." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To override this behavior, please use --enable-unsupported configure option." >&5 -$as_echo "$as_me: WARNING: To override this behavior, please use --enable-unsupported configure option." >&2;} - if test "X${enable_static}" = "Xno"; then - as_fn_error $? "both static and shared C++ libraries are disabled" "$LINENO" 5 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Allowing unsupported C++ shared librares due to use of --enable-unsupported flag" >&5 -$as_echo "$as_me: WARNING: Allowing unsupported C++ shared librares due to use of --enable-unsupported flag" >&2;} - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi -fi - - if test "X$H5_CXX_SHARED" = "Xyes"; then - CXX_SHARED_CONDITIONAL_TRUE= - CXX_SHARED_CONDITIONAL_FALSE='#' -else - CXX_SHARED_CONDITIONAL_TRUE='#' - CXX_SHARED_CONDITIONAL_FALSE= -fi - - -## ---------------------------------------------------------------------- -## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect -## these versions and add option "-Mx,28,0x8" to the compiler to avoid -## the problem if optimization is enabled. -## - -if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then - echo 'adding compiler flag to avoid optimization problem in pgcc' - CC="${CC-cc} -Mx,28,0x8" -fi - -## ---------------------------------------------------------------------- -## Shared libraries are not currently supported under Cygwin, so configure -## disables them unless --enable-unsupported has been supplied by the user. - -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - case "`uname`" in - CYGWIN*) - if test "X${enable_shared}" = "Xyes"; then - echo ' warning: shared libraries are not supported on Cygwin!' - echo ' disabling shared libraries' - echo ' use --enable-unsupported to override this warning and keep shared libraries enabled' - fi - enable_shared="no" - ;; - esac -fi - -## ---------------------------------------------------------------------- -## Windows won't create DLLs without the following macro. -## -enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - -## ---------------------------------------------------------------------- ## Create libtool. If shared/static libraries are going to be enabled ## or disabled, it should happen before these macros. + +## ---------------------------------------------------------------------- +## dlopen - This will use an improved version of libtool +## win32-dll - This will build clean dlls on win32 platforms. case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 @@ -9538,6 +8877,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : @@ -9882,6 +9224,9 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : @@ -11955,6 +11300,8 @@ enable_dlopen=yes + enable_win32_dll=no + # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : @@ -22167,84 +21514,6 @@ $as_echo "error" >&6; } esac ## ---------------------------------------------------------------------- -## Sometimes makes think the `.PATH:' appearing before the first rule -## with an action should override the `all' default target. So we have -## to decide what the proper syntax is. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how make searches directories" >&5 -$as_echo_n "checking how make searches directories... " >&6; } -while true; do #for break - ## The most common method is `VPATH=DIR1 DIR2 ...' - cat >maketest <<EOF -VPATH=$srcdir/config $srcdir/src $srcdir/bin -.c.o: - cp $< H5.o - -foo: H5.o - rm -f H5.o - @echo works -EOF - - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=' ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: VPATH=DIR1 DIR2 ..." >&5 -$as_echo "VPATH=DIR1 DIR2 ..." >&6; } - break - fi - - ## The second most common method is like above except with the - ## directories separated by colons. - cat >maketest <<EOF -VPATH=$srcdir/config:$srcdir/src:$srcdir/bin -.c.o: - cp $< H5.o - -foo: H5.o - rm -f H5.o - @echo works -EOF - - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=':' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: VPATH=DIR1:DIR2:..." >&5 -$as_echo "VPATH=DIR1:DIR2:..." >&6; } - break - fi - - ## pmake uses the construct `.PATH: DIR1 DIR2 - cat >maketest <<EOF -.PATH: $srcdir/config $srcdir/src $srcdir/bin -.c.o: - cp $< H5.o - -foo: H5.o - rm -f H5.o - @echo works -EOF - - if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='.PATH: ' - SEARCH_SEP=' ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: .PATH: DIR1 DIR2 ..." >&5 -$as_echo ".PATH: DIR1 DIR2 ..." >&6; } - break - fi - - ## No way for make to search directories - SEARCH_RULE='## SEARCH DISABLED: ' - SEARCH_SEP=' ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: it doesn't" >&5 -$as_echo "it doesn't" >&6; } - if test ! -f configure; then - as_fn_error $? "${MAKE-make} requires the build and source directories to be the same" "$LINENO" 5 - fi - break -done -rm maketest - -## ---------------------------------------------------------------------- ## pmake will throw an error if variables are undefined in a Makefile. ## These errors can be changed to warnings using the -V flag. ## @@ -22544,7 +21813,6 @@ fi fi - ## ---------------------------------------------------------------------- ## Check for system header files. ## @@ -22712,113 +21980,6 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi -## ---------------------------------------------------------------------- -## Check for these two functions before the time headers are checked -## for, otherwise they are not detected correctly on Solaris (the -## configure test will fail due to multiply-defined symbols). -## -for ac_func in difftime -do : - ac_fn_c_check_func "$LINENO" "difftime" "ac_cv_func_difftime" -if test "x$ac_cv_func_difftime" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DIFFTIME 1 -_ACEOF - -fi -done - -for ac_func in gettimeofday -do : - ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" -if test "x$ac_cv_func_gettimeofday" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETTIMEOFDAY 1 -_ACEOF - have_gettime="yes" -else - have_gettime="no" -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 -$as_echo_n "checking for library containing clock_gettime... " >&6; } -if ${ac_cv_search_clock_gettime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_gettime (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return clock_gettime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' rt posix4; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_clock_gettime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_clock_gettime+:} false; then : - break -fi -done -if ${ac_cv_search_clock_gettime+:} false; then : - -else - ac_cv_search_clock_gettime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 -$as_echo "$ac_cv_search_clock_gettime" >&6; } -ac_res=$ac_cv_search_clock_gettime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -for ac_func in clock_gettime -do : - ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" -if test "x$ac_cv_func_clock_gettime" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME 1 -_ACEOF - have_clock_gettime="yes" -else - have_clock_gettime="no" -fi -done - - ## Unix for ac_header in sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h do : @@ -23023,7 +22184,7 @@ fi done ;; - mips*-sgi*-irix*) + mips*-sgi*) ## The <sys/fpu.h> is needed on the SGI machines to turn off ## denormalized floating-point values going to zero. We do *not* ## attempt to locate these files on other systems because there @@ -23274,19 +22435,28 @@ case "$host_cpu-$host_vendor-$host_os" in ## Add POSIX support on Linux systems, so <features.h> defines ## __USE_POSIX, which is required to get the prototype for fdopen ## defined correctly in <stdio.h>. + ## ## This flag was removed from h5cc as of 2009-10-17 when it was found ## that the flag broke compiling netCDF-4 code with h5cc, but kept in ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen ## is used only by H5_debug_mask which is used only when debugging in ## H5_init_library (all in H5.c). When the flag was removed this was ## the only compile failure noted. + ## ## This was originally defined as _POSIX_SOURCE which was updated to ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX ## functionality so clock_gettime and CLOCK_MONOTONIC are defined - ## correctly. + ## correctly. This was later updated to 200112L so that + ## posix_memalign() is visible for the direct VFD code on Linux + ## systems. + ## ## POSIX feature information can be found in the gcc manual at: ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html - H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" + H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS" + + ## Need to add this so that O_DIRECT is visible for the direct + ## VFD on Linux systems. + H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS" ## Also add BSD support on Linux systems, so <features.h> defines ## __USE_BSD, which is required to get the prototype for strdup @@ -23296,7 +22466,12 @@ case "$host_cpu-$host_vendor-$host_os" in ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html ## however, we do not do this since it breaks the big test on some ## older platforms. - AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS" + + ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE. + ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE, + ## which should work for all versions of glibc. + H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS" ;; esac @@ -25364,15 +24539,6 @@ $as_echo "suppressed" >&6; } ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$dmalloc_inc" = "X/usr/include"; then - dmalloc_inc="" - fi - if test "X$dmalloc_lib" = "X/usr/lib"; then - dmalloc_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -25571,8 +24737,8 @@ fi ;; no) HAVE_ZLIB="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU zlib" >&5 -$as_echo_n "checking for GNU zlib... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib" >&5 +$as_echo_n "checking for zlib... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 $as_echo "suppressed" >&6; } ;; @@ -25591,15 +24757,6 @@ $as_echo "suppressed" >&6; } ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$zlib_inc" = "X/usr/include"; then - zlib_inc="" - fi - if test "X$zlib_lib" = "X/usr/lib"; then - zlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -25832,15 +24989,6 @@ $as_echo "suppressed" >&6; } ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$szlib_inc" = "X/usr/include"; then - szlib_inc="" - fi - if test "X$szlib_lib" = "X/usr/lib"; then - szlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -25963,16 +25111,29 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include <szlib.h> + #include "szlib.h" + +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ - int main(void) - { /* SZ_encoder_enabled returns 1 if encoder is present */ - if(SZ_encoder_enabled() == 1) - exit(0); - else - exit(1); - } + if(SZ_encoder_enabled() == 1) + exit(0); + else + exit(1); + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -25984,6 +25145,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi @@ -26124,6 +25286,10 @@ if test "${enable_threadsafe+set}" = set; then : fi +## NOTE: The high-level, C++, and Fortran interfaces are not compatible +## with the thread-safety option because the lock is not hoisted +## into the higher-level API calls. + ## The --enable-threadsafe flag is not compatible with --enable-cxx. ## If the user tried to specify both flags, throw an error, unless ## they also provided the --enable-unsupported flag. @@ -26133,7 +25299,7 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then fi fi -## --enable-threadsafe is also incompatible with --enable-fortran, unless +## --enable-threadsafe is also incompatible with --enable-fortran unless ## --enable-unsupported has been specified on the configure line. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${HDF_FORTRAN}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then @@ -26141,6 +25307,7 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then fi fi + case "X-$THREADSAFE" in X-|X-no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26164,14 +25331,14 @@ $as_echo "#define HAVE_THREADSAFE 1" >>confdefs.h ## ---------------------------------------------------------------------- - ## Is the pthreads library present? It has a header file `pthread.h' and + ## Is the Pthreads library present? It has a header file `pthread.h' and ## a library `-lpthread' and their locations might be specified with the ## `--with-pthread' command-line switch. The value is an include path ## and/or a library path. If the library path is specified then it must ## be preceded by a comma. ## ## Thread-safety in HDF5 only uses Pthreads via configure, so the - ## default is "yes", though this only has an effect when + ## default is "check", though this only has an effect when ## --enable-threadsafe is specified. HAVE_PTHREAD=yes @@ -26179,12 +25346,12 @@ $as_echo "#define HAVE_THREADSAFE 1" >>confdefs.h if test "${with_pthread+set}" = set; then : withval=$with_pthread; else - withval=yes + withval=check fi case "$withval" in - yes) + check | yes) for ac_header in pthread.h do : ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" @@ -26258,11 +25425,7 @@ fi fi ;; no) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread" >&5 -$as_echo_n "checking for pthread... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 -$as_echo "suppressed" >&6; } - unset HAVE_PTHREAD + as_fn_error $? "Must use Pthreads with thread safety" "$LINENO" 5 ;; *) case "$withval" in @@ -26278,15 +25441,6 @@ $as_echo "suppressed" >&6; } ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$pthread_inc" = "X/usr/include"; then - pthread_inc="" - fi - if test "X$pthread_lib" = "X/usr/lib"; then - pthread_lib="" - fi - if test -n "$pthread_inc"; then saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" @@ -26444,6 +25598,82 @@ fi fi ;; esac + + ## ---------------------------------------------------------------------- + ## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) + ## is supported on this system + ## + ## Unfortunately, this probably needs to be an AC_RUN_IFELSE since + ## it's impossible to determine if PTHREAD_SCOPE_SYSTEM is + ## supported a priori. POSIX.1-2001 requires that a conformant + ## system need only support one of SYSTEM or PROCESS scopes. + ## + ## For cross-compiling, we've added a pessimistic 'no'. You can + ## hand-hack the config file if you know otherwise. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Pthreads supports system scope" >&5 +$as_echo_n "checking Pthreads supports system scope... " >&6; } + if ${hdf5_cv_system_scope_threads+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + hdf5_cv_system_scope_threads=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if STDC_HEADERS + #include <stdlib.h> + #include <pthread.h> + #endif + +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + + pthread_attr_t attribute; + int ret; + + pthread_attr_init(&attribute); + ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); + exit(ret==0 ? 0 : 1); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + hdf5_cv_system_scope_threads=yes +else + hdf5_cv_system_scope_threads=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + + + if test ${hdf5_cv_system_scope_threads} = "yes"; then + +$as_echo "#define SYSTEM_SCOPE_THREADS 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM)." >&5 +$as_echo "$as_me: Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM)." >&6;} + fi fi ## ---------------------------------------------------------------------- @@ -26500,42 +25730,6 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -## check if `struct tm' has a `__tm_gmtoff' member. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __tm_gmtoff in struct tm" >&5 -$as_echo_n "checking for __tm_gmtoff in struct tm... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <sys/time.h> - #include <time.h> -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct tm tm; tm.__tm_gmtoff=0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE___TM_GMTOFF 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ## Check whether the global variable `timezone' is defined. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for global timezone variable" >&5 $as_echo_n "checking for global timezone variable... " >&6; } @@ -26582,217 +25776,6 @@ rm -f core conftest.err conftest.$ac_objext \ ;; esac -## Check whether `struct timezone' is defined. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <time.h> - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h -else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> -#include <$ac_cv_struct_tm> - -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 -_ACEOF - - -fi - -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then - -$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h - -else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <time.h> -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return tzname[0][0]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes -else - ac_cv_var_tzname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then - -$as_echo "#define HAVE_TZNAME 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timezone" >&5 -$as_echo_n "checking for struct timezone... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <sys/types.h> - #include <sys/time.h> - #include <time.h> -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct timezone tz; tz.tz_minuteswest=0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h - - have_struct_tz="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -## If gettimeofday() is going to be used, make sure it uses the timezone struct - -if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday() gives timezone" >&5 -$as_echo_n "checking whether gettimeofday() gives timezone... " >&6; } - if ${hdf5_cv_gettimeofday_tz+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <time.h> - #include <sys/time.h> - int main(void) - { - struct timeval tv; - struct timezone tz; - tz.tz_minuteswest = 7777; /* Initialize to an unreasonable number */ - tz.tz_dsttime = 7; - gettimeofday(&tv, &tz); - /* Check whether the function returned any value at all */ - if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7) - exit(1); - else exit (0); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_gettimeofday_tz=yes -else - hdf5_cv_gettimeofday_tz=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - - if test ${hdf5_cv_gettimeofday_tz} = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define GETTIMEOFDAY_GIVES_TZ 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -fi ## ---------------------------------------------------------------------- ## Does the struct stat have the st_blocks field? This field is not Posix. @@ -27012,7 +25995,73 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ## ---------------------------------------------------------------------- ## Check for functions. ## -for ac_func in alarm BSDgettimeofday fork frexpf frexpl +## NOTE: clock_gettime may require linking to the rt or posix4 library +## so we'll search for it before calling AC_CHECK_FUNCS. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } +if ${ac_cv_search_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt posix4; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_clock_gettime+:} false; then : + break +fi +done +if ${ac_cv_search_clock_gettime+:} false; then : + +else + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +for ac_func in alarm clock_gettime difftime fork frexpf frexpl do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -27024,7 +26073,7 @@ _ACEOF fi done -for ac_func in gethostname getpwuid getrusage lstat +for ac_func in gethostname getpwuid getrusage gettimeofday do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -27036,7 +26085,7 @@ _ACEOF fi done -for ac_func in rand_r random setsysinfo +for ac_func in lstat rand_r random setsysinfo do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -27072,7 +26121,7 @@ _ACEOF fi done -for ac_func in tmpfile asprintf vasprintf waitpid +for ac_func in tmpfile asprintf vasprintf vsnprintf waitpid do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -27085,124 +26134,6 @@ fi done -## Check for vsnprintf() separately, so we can detect situations where it -## doesn't return the correct size for formatted strings that are too large -## for the buffer provided -for ac_func in vsnprintf -do : - ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" -if test "x$ac_cv_func_vsnprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VSNPRINTF 1 -_ACEOF - ## Check if vsnprintf() returns correct size for strings that don't fit - ## into the size allowed. If vsnprintf() works correctly on this platform, - ## it should return a value of 42 for the test below - ## - ## Note that vsnprintf fails in two different ways: - ## - In IRIX64, calls to vnsprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return the size of the buffer minus one. - ## - In HP/UX, calls to vsnprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return (-1) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5 -$as_echo_n "checking if vsnprintf returns correct value... " >&6; } - - if ${hdf5_cv_vsnprintf_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> - -int test_vsnprintf(const char *fmt,...) -{ - va_list ap; - char *s = malloc(16); - int ret; - - va_start(ap, fmt); - ret=vsnprintf(s,16,"%s",ap); - va_end(ap); - - return(ret!=42 ? 1 : 0); -} - -int main(void) -{ - exit(test_vsnprintf("%s","A string that is longer than 16 characters")); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_vsnprintf_works=yes -else - hdf5_cv_vsnprintf_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - - if test ${hdf5_cv_vsnprintf_works} = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define VSNPRINTF_WORKS 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - -fi -done - - -## ---------------------------------------------------------------------- -## Check that a lone colon can be used as an argument -## This is not true on Cray X1, which interprets a lone colon as a -## system command. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if lone colon can be used as an argument" >&5 -$as_echo_n "checking if lone colon can be used as an argument... " >&6; } -if ${hdf5_cv_lone_colon+:} false; then : - $as_echo_n "(cached) " >&6 -else - - echo "int main(int argc, char * argv) {return 0;}" > conftest.c - $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null - echo "./a.out :" > conftest.sh - chmod 700 conftest.sh - - ./conftest.sh 2> conftest.out - rm -f a.out - TEST_OUTPUT=`cat conftest.out` - - if test "X$TEST_OUTPUT" = "X"; then - hdf5_cv_lone_colon=yes - else - hdf5_cv_lone_colon=no - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hdf5_cv_lone_colon" >&5 -$as_echo "$hdf5_cv_lone_colon" >&6; } - - H5_LONE_COLON="$hdf5_cv_lone_colon" - ## ---------------------------------------------------------------------- ## Check compiler characteristics ## @@ -27495,17 +26426,30 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + + char *s = malloc(128); + long long x = (long long)1048576 * (long long)1048576; + sprintf(s,"%${hdf5_cv_printf_ll}d",x); + exit(strcmp(s,"1099511627776")); - int main(void) - { - char *s = malloc(128); - long long x = (long long)1048576 * (long long)1048576; - sprintf(s,"%${hdf5_cv_printf_ll}d",x); - exit(strcmp(s,"1099511627776")); - } + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -27527,62 +26471,6 @@ cat >>confdefs.h <<_ACEOF _ACEOF -## ---------------------------------------------------------------------- -## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) -## is supported on this system -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Threads support system scope" >&5 -$as_echo_n "checking Threads support system scope... " >&6; } -if ${hdf5_cv_system_scope_threads+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #if STDC_HEADERS - #include <stdlib.h> - #include <pthread.h> - #endif - - int main(void) - { - pthread_attr_t attribute; - int ret; - - pthread_attr_init(&attribute); - ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); - exit(ret==0 ? 0 : 1); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_system_scope_threads=yes -else - hdf5_cv_system_scope_threads=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test ${hdf5_cv_system_scope_threads} = "yes"; then - -$as_echo "#define SYSTEM_SCOPE_THREADS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi ## ---------------------------------------------------------------------- ## Turn on debugging by setting compiler flags @@ -27992,23 +26880,24 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "X$HDF_FORTRAN" = "Xyes"; then - ## Change to the Fortran 90 language + + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - ## Try link a simple MPI program. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO Fortran program can be linked" >&5 $as_echo_n "checking whether a simple MPI-IO Fortran program can be linked... " >&6; } cat > conftest.$ac_ext <<_ACEOF - program main - include 'mpif.h' - integer:: ierr - call mpi_file_open( ierr ) - end + PROGRAM main + INCLUDE 'mpif.h' + INTEGER :: comm, amode, info, fh, ierror + CHARACTER(LEN=1) :: filename + CALL MPI_File_open( comm, filename, amode, info, fh, ierror) + END _ACEOF if ac_fn_fc_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -28021,13 +26910,13 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - ## Change to the C language ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + fi ## Set RUNPARALLEL to mpiexec if not set yet. @@ -28266,15 +27155,6 @@ fi ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$mpe_inc" = "X/usr/include"; then - mpe_inc="" - fi - if test "X$mpe_lib" = "X/usr/lib"; then - mpe_lib="" - fi - if test -n "$mpe_inc"; then saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" @@ -28439,219 +27319,68 @@ $as_echo "#define HAVE_MPE 1" >>confdefs.h fi ## ---------------------------------------------------------------------- -## Turn on internal I/O filters by setting macros in header files -## Internal I/O filters are contained entirely within the library and do -## not depend on external headers or libraries. The shuffle filter is -## an example of an internal filter, while the gzip filter is an example of -## an external filter. Each external filter is controlled with an -## "--with-foo=" configure flag. +## Check if Direct I/O driver is enabled by --enable-direct-vfd ## - USE_FILTER_SHUFFLE="no" - USE_FILTER_FLETCHER32="no" - USE_FILTER_NBIT="no" - USE_FILTER_SCALEOFFSET="no" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for I/O filters" >&5 -$as_echo_n "checking for I/O filters... " >&6; } -# Check whether --enable-filters was given. -if test "${enable_filters+set}" = set; then : - enableval=$enable_filters; FILTERS=$enableval -fi - - -## Eventually: all_filters="shuffle,foo,bar,baz" -all_filters="shuffle,fletcher32,nbit,scaleoffset" -case "X-$FILTERS" in - X-|X-all) - FILTERS=$all_filters - { $as_echo "$as_me:${as_lineno-$LINENO}: result: all ($FILTERS)" >&5 -$as_echo "all ($FILTERS)" >&6; } - ;; - X-no|X-none) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } - FILTERS="none" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILTERS" >&5 -$as_echo "$FILTERS" >&6; } - ;; -esac - -if test -n "$FILTERS"; then - for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do - ## ------------------------------------------------------------------ - ## Have to use separate 'if' construct for each filter, so that - ## autoheader can detect the AC_DEFINE for each one... - ## - if test $filter = "SHUFFLE"; then - -$as_echo "#define HAVE_FILTER_SHUFFLE 1" >>confdefs.h +## Check these regardless. If the checks are moved inside the main +## direct VFD block, the output is nested. - USE_FILTER_SHUFFLE="yes" - fi - if test $filter = "FLETCHER32"; then - -$as_echo "#define HAVE_FILTER_FLETCHER32 1" >>confdefs.h - - USE_FILTER_FLETCHER32="yes" - fi - if test $filter = "NBIT"; then - -$as_echo "#define HAVE_FILTER_NBIT 1" >>confdefs.h - - USE_FILTER_NBIT="yes" - fi - if test $filter = "SCALEOFFSET"; then - -$as_echo "#define HAVE_FILTER_SCALEOFFSET 1" >>confdefs.h - - USE_FILTER_SCALEOFFSET="yes" - fi - done +if ${hdf5_cv_direct_io+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_fn_c_check_decl "$LINENO" "O_DIRECT" "ac_cv_have_decl_O_DIRECT" "#include <fcntl.h> +" +if test "x$ac_cv_have_decl_O_DIRECT" = xyes; then : + hdf5_cv_direct_io=yes +else + hdf5_cv_direct_io=no fi -## ---------------------------------------------------------------------- -## This is defined only when we're using CodeWarrior, since it has a -## broken "open()" call. -# -if test 1 = 2; then - -$as_echo "#define NO_SHARED_WRITING 1" >>confdefs.h - fi -## -------------------------------------------------------------------------- -## Should the Default Virtual File Driver be compiled? -## - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Default Virtual File Driver definition" >&5 -$as_echo_n "checking for Default Virtual File Driver definition... " >&6; } - -# Check whether --with-default-vfd was given. -if test "${with_default_vfd+set}" = set; then : - withval=$with_default_vfd; +if ${hdf5_cv_posix_memalign+:} false; then : + $as_echo_n "(cached) " >&6 else - withval=sec2 -fi - - -if test "X$withval" = "Xsec2"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - default_vfd=yes - vfd_define=H5FD_SEC2 -elif test "X$withval" = "Xstdio"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - default_vfd=yes - vfd_define=H5FD_STDIO + ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign" +if test "x$ac_cv_func_posix_memalign" = xyes; then : + hdf5_cv_posix_memalign=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - default_vfd=no + hdf5_cv_posix_memalign=no fi -if test "X$default_vfd" = "Xyes"; then - -cat >>confdefs.h <<_ACEOF -#define DEFAULT_VFD $vfd_define -_ACEOF - fi -## ---------------------------------------------------------------------- -## Check if Direct I/O driver is enabled by --enable-direct-vfd -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Direct Virtual File Driver support" >&5 -$as_echo_n "checking for Direct Virtual File Driver support... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the direct I/O virtual file driver (VFD) is enabled" >&5 +$as_echo_n "checking if the direct I/O virtual file driver (VFD) is enabled... " >&6; } # Check whether --enable-direct-vfd was given. if test "${enable_direct_vfd+set}" = set; then : enableval=$enable_direct_vfd; DIRECT_VFD=$enableval else - DIRECT_VFD=yes -fi - - -if test "$DIRECT_VFD" = "yes"; then - if ${hdf5_cv_direct_io+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <sys/types.h> - #include <sys/stat.h> - #include <fcntl.h> - int main(void) - { - int fid; - if((fid=open("tst_file", O_CREAT | O_TRUNC | O_DIRECT, 0755))<0) - exit(1); - close(fid); - remove("tst_file"); - exit (0); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -posix_memalign() - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - hdf5_cv_direct_io=yes -else - hdf5_cv_direct_io=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -else - hdf5_cv_direct_io=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - + DIRECT_VFD=no fi - if test ${hdf5_cv_direct_io} = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +if test "X$DIRECT_VFD" = "Xyes"; then + if test ${hdf5_cv_direct_io} = "yes" && test ${hdf5_cv_posix_memalign} = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_DIRECT 1" >>confdefs.h - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - DIRECT_VFD=no - fi + DIRECT_VFD=no + as_fn_error $? "The direct VFD was requested but cannot be built. This is either + due to O_DIRECT not being found in fcntl.h or a lack of + posix_memalign() on your system. Please re-configure without + specifying --enable-direct-vfd." "$LINENO" 5 + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 -$as_echo "suppressed" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "X$DIRECT_VFD" = "Xyes"; then @@ -28721,85 +27450,6 @@ $as_echo "no" >&6; } fi ## ---------------------------------------------------------------------- -## Decide whether the data accuracy has higher priority during data -## conversions. If not, some hard conversions will still be prefered even -## though the data may be wrong (for example, some compilers don't -## support denormalized floating values) to maximize speed. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether data accuracy is guaranteed during data conversions" >&5 -$as_echo_n "checking whether data accuracy is guaranteed during data conversions... " >&6; } -# Check whether --enable-dconv-accuracy was given. -if test "${enable_dconv_accuracy+set}" = set; then : - enableval=$enable_dconv_accuracy; DATA_ACCURACY=$enableval -else - DATA_ACCURACY=yes -fi - - -if test "$DATA_ACCURACY" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define WANT_DATA_ACCURACY 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## denormalized floating-point values. -## (This flag should be set for all machines, except for the Crays, where -## the cache value is set in it's config file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting denormalized floating-point values is possible" >&5 -$as_echo_n "checking if converting denormalized floating-point values is possible... " >&6; } -if ${hdf5_cv_convert_denormal_float+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_convert_denormal_float=yes -fi - - -if test ${hdf5_cv_convert_denormal_float} = "yes"; then - -$as_echo "#define CONVERT_DENORMAL_FLOAT 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## floating-point to long long values. -## (This flag should be _unset_ for all machines, except for Windows, where -## it's set in the custom Windows H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting floating-point values to long long is not working" >&5 -$as_echo_n "checking if converting floating-point values to long long is not working... " >&6; } -if ${hdf5_cv_convert_float_llong_not_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_convert_float_llong_not_works=no -fi - - -if test ${hdf5_cv_convert_float_llong_not_works} = "yes"; then - -$as_echo "#define HW_FP_TO_LLONG_NOT_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: true" >&5 -$as_echo "true" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: false" >&5 -$as_echo "false" >&6; } -fi - -## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine has window style pathname, ## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). ## (This flag should be _unset_ for all machines, except for Windows, where @@ -28822,764 +27472,6 @@ $as_echo "no" >&6; } ;; esac -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## long double to integers accurately. This flag should be set "yes" for -## all machines except all SGIs. For SGIs, some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers is accurate" >&5 -$as_echo_n "checking if converting from long double to integers is accurate... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - if ${hdf5_cv_ldouble_to_integer_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_ldouble_to_integer_accurate=yes -fi - -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - -$as_echo "#define LDOUBLE_TO_INTEGER_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can do conversion from -## long double to integers regardless of accuracy. This flag should be -## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -## compiler has 'floating exception' when converting 'long double' to all -## integers except 'unsigned long long'. Other HP-UX systems are unknown -## yet. (1/8/05 - SLU) - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers works" >&5 -$as_echo_n "checking if converting from long double to integers works... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_works=${hdf5_cv_ldouble_to_integer_works=no} -else - if ${hdf5_cv_ldouble_to_integer_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - void *align; - long double ld= 9701917572145405952.00L; - unsigned char v1; - short v2; - unsigned int v3; - int ret = 0; - - align = (void*)malloc(sizeof(long double)); - memcpy(align, &ld, sizeof(long double)); - - /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting - *from 'long double' to integers*/ - v1=(unsigned char)(*((long double*)align)); - v2=(short)(*((long double*)align)); - v3=(unsigned int)(*((long double*)align)); - - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ldouble_to_integer_works=yes -else - hdf5_cv_ldouble_to_integer_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_ldouble_to_integer_works} = "yes"; then - -$as_echo "#define LDOUBLE_TO_INTEGER_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## integers to long double. (This flag should be set "yes" for all -## machines except all SGIs, where some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting from integers to long double" >&5 -$as_echo_n "checking if accurately converting from integers to long double... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate=no} -else - if ${hdf5_cv_integer_to_ldouble_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_integer_to_ldouble_accurate=yes -fi - -fi - -if test ${hdf5_cv_integer_to_ldouble_accurate} = "yes"; then - -$as_echo "#define INTEGER_TO_LDOUBLE_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned long' to 'float' values. -## (This flag should be set for all machines, except for Pathscale compiler -## on Sandia's Linux machine where the compiler interprets 'unsigned long' -## values as negative when the first bit of 'unsigned long' is on during -## the conversion to float.) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long to float values" >&5 -$as_echo_n "checking if accurately converting unsigned long to float values... " >&6; } - -if ${hdf5_cv_ulong_to_float_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - int ret = 0; - unsigned long l1; - unsigned long l2; - unsigned long l3; - float f1; - float f2; - float f3; - - - if(sizeof(unsigned long)==8) { - l1 = 0xffffffffffffffffUL; - l2 = 0xffffffffffff0000UL; - l3 = 0xf000000000000000UL; - - f1 = (float)l1; - f2 = (float)l2; - f3 = (float)l3; - - if((f1 < 0) || (f2 < 0) || (f3 < 0)) - ret = 1; - } - -done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ulong_to_float_accurate=yes -else - hdf5_cv_ulong_to_float_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test ${hdf5_cv_ulong_to_float_accurate} = "yes"; then - -$as_echo "#define ULONG_TO_FLOAT_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned (long) long' values to 'float' and 'double' values. -## (This flag should be set for all machines, except for the SGIs, where -## the cache value is set in the config/irix6.x config file) and Solaris -## 64-bit machines, where the short program below tests if round-up is -## correctly handled. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long long to floating-point values" >&5 -$as_echo_n "checking if accurately converting unsigned long long to floating-point values... " >&6; } - -if test ${host_os_novers} = "solaris2.x"; then - if ${hdf5_cv_ulong_to_fp_bottom_bit_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - unsigned long l1; - unsigned long l2; - unsigned long l3; - unsigned long l4; - unsigned long long ld1; - unsigned long long ld2; - unsigned long long ld3; - unsigned long long ld4; - double d1, d2, d3, d4; - unsigned char s[8]; - int ret = 0; - - if(sizeof(unsigned long)==8) { - l1 = 0xf000000000000b00UL; /*Round-down case*/ - l2 = 0xf000000000000401UL; /*Round-up case*/ - l3 = 0xf000000000000400UL; /*Round-down case*/ - l4 = 0xf000000000000c00UL; /*Round-up case*/ - - d1 = (double)l1; - d2 = (double)l2; - d3 = (double)l3; - d4 = (double)l4; - } else if(sizeof(unsigned long long)==8) { - ld1 = 0xf000000000000b00ULL; /*Round-down case*/ - ld2 = 0xf000000000000401ULL; /*Round-up case*/ - ld3 = 0xf000000000000400ULL; /*Round-down case*/ - ld4 = 0xf000000000000c00ULL; /*Round-up case*/ - - d1 = (double)ld1; - d2 = (double)ld2; - d3 = (double)ld3; - d4 = (double)ld4; - } else { - ret = 1; - goto done; - } - - memcpy(s, &d1, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d2, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d3, 8); - if(s[7]!=0) - ret = 1; - - memcpy(s, &d4, 8); - if(s[7]!=2) - ret = 1; - -done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes -else - hdf5_cv_ulong_to_fp_bottom_bit_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -else - if ${hdf5_cv_ulong_to_fp_bottom_bit_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes -fi - -fi - -if test ${hdf5_cv_ulong_to_fp_bottom_bit_accurate} = "yes"; then - -$as_echo "#define ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float' or 'double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for PGI compiler -## where round-up happens when the fraction of float-point value is greater -## than 0.5. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately roundup converting floating-point to unsigned long long values" >&5 -$as_echo_n "checking if accurately roundup converting floating-point to unsigned long long values... " >&6; } - -if ${hdf5_cv_fp_to_ullong_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - float f = 111.60f; - double d = 222.55L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d; - int ret = 0; - - if(l1 == 112) - ret = 1; - if(l2 == 223) - ret = 1; - -done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_fp_to_ullong_accurate=yes -else - hdf5_cv_fp_to_ullong_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test ${hdf5_cv_fp_to_ullong_accurate} = "yes"; then - -$as_echo "#define FP_TO_ULLONG_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float', 'double' or 'long double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for HP-UX machines -## where the maximal number for unsigned long long is 0x7fffffffffffffff -## during conversion. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if right maximum converting floating-point to unsigned long long values" >&5 -$as_echo_n "checking if right maximum converting floating-point to unsigned long long values... " >&6; } - -if ${hdf5_cv_fp_to_ullong_right_maximum+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - float f = 9701917572145405952.00f; - double d1 = 9701917572145405952.00L; - long double d2 = 9701917572145405952.00L; - double d3 = 2e40L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3 = (unsigned long long)d2; - unsigned long long l4; - unsigned long long l5 = 0x7fffffffffffffffULL; - int ret = 0; - - if(l1 <= l5 || l2 <= l5 || l3 <= l5) - ret = 1; - - l4 = (unsigned long long)d3; - if(l4 <= l5) - ret = 1; - -done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_fp_to_ullong_right_maximum=yes -else - hdf5_cv_fp_to_ullong_right_maximum=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test ${hdf5_cv_fp_to_ullong_right_maximum} = "yes"; then - -$as_echo "#define FP_TO_ULLONG_RIGHT_MAXIMUM 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to 'unsigned int' values. (This flag should be set for -## all machines, except for some Intel compilers on some Linux.) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to unsigned int values" >&5 -$as_echo_n "checking if correctly converting long double to unsigned int values... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_uint_accurate=${hdf5_cv_ldouble_to_uint_accurate=no} -else - if ${hdf5_cv_ldouble_to_uint_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - long double ld = 2733248032.9183987530L; - unsigned int i; - int ret = 0; - - i = (unsigned int)ld; - if(i!=2733248032 && i!=2733248031 && i!=2733248033) - ret = 1; - - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ldouble_to_uint_accurate=yes -else - hdf5_cv_ldouble_to_uint_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_ldouble_to_uint_accurate} = "yes"; then - -$as_echo "#define LDOUBLE_TO_UINT_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'unsigned long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling unsigned long long to floating-point typecasts work" >&5 -$as_echo_n "checking if compiling unsigned long long to floating-point typecasts work... " >&6; } -if ${hdf5_cv_ullong_to_fp_cast_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_ullong_to_fp_cast_works=yes -fi - - -if test ${hdf5_cv_ullong_to_fp_cast_works} = "yes"; then - -$as_echo "#define ULLONG_TO_FP_CAST_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling long long to floating-point typecasts work" >&5 -$as_echo_n "checking if compiling long long to floating-point typecasts work... " >&6; } -if ${hdf5_cv_llong_to_fp_cast_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_llong_to_fp_cast_works=yes -fi - - -if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then - -$as_echo "#define LLONG_TO_FP_CAST_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can convert from -## 'unsigned long long' to 'long double' without precision loss. -## (This flag should be set for all machines, except for FreeBSD(sleipnir) -## where the last 2 bytes of mantissa are lost when compiler tries to do -## the conversion, and Cygwin where compiler doesn't do rounding correctly.) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting unsigned long long to long double with precision" >&5 -$as_echo_n "checking if converting unsigned long long to long double with precision... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ullong_to_ldouble_precision=${hdf5_cv_ullong_to_ldouble_precision=no} -else - if ${hdf5_cv_ullong_to_ldouble_precision+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include <stdlib.h> - #include <string.h> - - int main(void) - { - /* General variables */ - int endian; - int tst_value = 1; - int ret = 0; - - /* For FreeBSD */ - unsigned long long l = 0xa601e80bda85fcefULL; - long double ld; - unsigned char *c1, *c2; - size_t size; - - /* For Cygwin */ - unsigned long long l_cyg = 0xfffffffffffffff0ULL; - long double ld_cyg; - unsigned char *c2_cyg; - size_t size_cyg; - - - /* Determine this system's endianess */ - c1 = (unsigned char*)calloc(1, sizeof(int)); - memcpy((void*)c1, &tst_value, sizeof(int)); - if(c1[0]==1) - endian = 0; /* little endian */ - else - endian = 1; /* big endian */ - - /* For FreeBSD */ - size = sizeof(long double); - memset(&ld, 0, size); - ld = (long double)l; - - c2 = (unsigned char*)calloc(1, size); - memcpy((void*)c2, &ld, size); - - /* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel - * architecture(sleipnir) where it happens. */ - /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/ - if(endian==0 && c2[0]==0) { /*little endian*/ - ret = 1; - goto done; - } - - /* For Cygwin */ - size_cyg = sizeof(long double); - memset(&ld_cyg, 0, size); - ld_cyg = (long double)l_cyg; - - c2_cyg = (unsigned char*)calloc(1, size_cyg); - memcpy((void*)c2_cyg, &ld_cyg, size_cyg); - - /* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin - * where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ..., - * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000 - * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ..., - * 0x0000403efffffffffffff000 ... - */ - if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0) - ret = 1; - - done: - if(c1) - free(c1); - if(c2) - free(c2); - if(c2_cyg) - free(c2_cyg); - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ullong_to_ldouble_precision=yes -else - hdf5_cv_ullong_to_ldouble_precision=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_ullong_to_ldouble_precision} = "yes"; then - -$as_echo "#define ULLONG_TO_LDOUBLE_PRECISION 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle overflow converting -## all floating-point to all integer types. -## (This flag should be set for all machines, except for Cray X1 where -## floating exception is generated when the floating-point value is greater -## than the maximal integer value). -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if overflows normally converting floating-point to integer values" >&5 -$as_echo_n "checking if overflows normally converting floating-point to integer values... " >&6; } - -if ${hdf5_cv_fp_to_integer_overflow_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - float f = 2147483648.0f; - int i; - - i = (int)f; - -done: - exit(0); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_fp_to_integer_overflow_works=yes -else - hdf5_cv_fp_to_integer_overflow_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test ${hdf5_cv_fp_to_integer_overflow_works} = "yes"; then - -$as_echo "#define FP_TO_INTEGER_OVERFLOW_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - ## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine is using a special algorithm to convert ## 'long double' to '(unsigned) long' values. (This flag should only be set for @@ -29607,59 +27499,72 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - long double ld = 20041683600089727.779961L; - long ll; - unsigned long ull; - unsigned char s[16]; - unsigned char s2[8]; - int ret = 1; - - if(sizeof(long double) == 16 && sizeof(long) == 8) { - /*make sure the long double type has 16 bytes in size and - * 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /* Assign the hexadecimal value of long double type. */ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - - ll = (long)ld; - memcpy(s2, &ll, 8); - - /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 - * and gets wrong value 20041683600089730 on the IBM Power6 Linux. - * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f - * and gets the correct value 20041683600089727. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; + #include <string.h> - ull = (unsigned long)ld; - memcpy(s2, &ull, 8); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ - /* The unsigned long is the same as signed long. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; + long double ld = 20041683600089727.779961L; + long ll; + unsigned long ull; + unsigned char s[16]; + unsigned char s2[8]; + int ret = 1; + + if(sizeof(long double) == 16 && sizeof(long) == 8) { + /*make sure the long double type has 16 bytes in size and + * 11 bits of exponent. If it is, + *the bit sequence should be like below. It's not + *a decent way to check but this info isn't available. */ + memcpy(s, &ld, 16); + if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && + s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && + s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { + + /* Assign the hexadecimal value of long double type. */ + s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; + s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; + s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; + s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; + + memcpy(&ld, s, 16); + + ll = (long)ld; + memcpy(s2, &ll, 8); + + /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 + * and gets wrong value 20041683600089730 on the IBM Power6 Linux. + * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f + * and gets the correct value 20041683600089727. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + + ull = (unsigned long)ld; + memcpy(s2, &ull, 8); + + /* The unsigned long is the same as signed long. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + } } - } + exit(ret); - done: - exit(ret); - } + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -29712,248 +27617,81 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - long double ld; - long ll; - unsigned long ull; - unsigned char s[16]; - int flag=0, ret=1; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long)==8) { - ll = 0x003fffffffffffffL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /* The library converts the value to 0x434fffffffffffff8000000000000000. - * In decimal it is 18014398509481982.000000, one value short of the original. - * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - if(flag==1 && sizeof(unsigned long)==8) { - ull = 0xffffffffffffffffUL; - ld = (long double)ull; - memcpy(s, &ld, 16); - /* Use a different value from signed long to test. The problem is the same - * for both long and unsigned long. The value is 18446744073709551615. - * The library converts the value to 0x43effffffffffffffe000000000000000. - * In decimal it's 18446744073709548544.000000, very different from the original. - * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_long_to_ldouble_special=yes -else - hdf5_cv_long_to_ldouble_special=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then + #include <string.h> -$as_echo "#define LONG_TO_LDOUBLE_SPECIAL 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to '(unsigned) long long' values. (This flag should be set for -## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -## start to go wrong on these two machines. Adjusting it higher to -## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -## values wildly wrong. This test detects this wrong behavior and disable the test. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to (unsigned) long long values" >&5 -$as_echo_n "checking if correctly converting long double to (unsigned) long long values... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_llong_accurate=${hdf5_cv_ldouble_to_llong_accurate=no} -else - if ${hdf5_cv_ldouble_to_llong_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ - int main(void) - { - long double ld = 20041683600089727.779961L; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int ret = 0; - - if(sizeof(long double) == 16) { - /*make sure the long double type is the same as the failing type - *which has 16 bytes in size and 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /*slightly adjust the bit sequence (s[8]=0xdf). The converted - *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - ll = (long long)ld; - ull = (unsigned long long)ld; - - if(ll != 20041683600089728 || ull != 20041683600089728) - ret = 1; + long double ld; + long ll; + unsigned long ull; + unsigned char s[16]; + int flag=0, ret=1; + + /*Determine if long double has 16 byte in size, 11 bit exponent, and + *the bias is 0x3ff */ + if(sizeof(long double) == 16) { + ld = 1.0L; + memcpy(s, &ld, 16); + if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) + flag = 1; } - } - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ldouble_to_llong_accurate=yes -else - hdf5_cv_ldouble_to_llong_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_ldouble_to_llong_accurate} = "yes"; then - -$as_echo "#define LDOUBLE_TO_LLONG_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## '(unsigned) long long' to 'long double' values. (This flag should be set for -## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -## as big as they should be. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting (unsigned) long long to long double values" >&5 -$as_echo_n "checking if correctly converting (unsigned) long long to long double values... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_llong_to_ldouble_correct=${hdf5_cv_llong_to_ldouble_correct=no} -else - if ${hdf5_cv_llong_to_ldouble_correct+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if(flag==1 && sizeof(long)==8) { + ll = 0x003fffffffffffffL; + ld = (long double)ll; + memcpy(s, &ld, 16); + /* The library converts the value to 0x434fffffffffffff8000000000000000. + * In decimal it is 18014398509481982.000000, one value short of the original. + * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + if(flag==1 && sizeof(unsigned long)==8) { + ull = 0xffffffffffffffffUL; + ld = (long double)ull; + memcpy(s, &ld, 16); + /* Use a different value from signed long to test. The problem is the same + * for both long and unsigned long. The value is 18446744073709551615. + * The library converts the value to 0x43effffffffffffffe000000000000000. + * In decimal it's 18446744073709548544.000000, very different from the original. + * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + exit(ret); - int main(void) - { - long double ld; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int flag=0, ret=0; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long long)==8) { - ll = 0x01ffffffffffffffLL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /*Check if the bit sequence is as supposed to be*/ - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - if(flag==1 && sizeof(unsigned long long)==8) { - ull = 0x01ffffffffffffffULL; - ld = (long double)ull; - memcpy(s, &ld, 16); - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - done: - exit(ret); - } + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_llong_to_ldouble_correct=yes + hdf5_cv_long_to_ldouble_special=yes else - hdf5_cv_llong_to_ldouble_correct=no + hdf5_cv_long_to_ldouble_special=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -29963,35 +27701,9 @@ fi fi -if test ${hdf5_cv_llong_to_ldouble_correct} = "yes"; then - -$as_echo "#define LLONG_TO_LDOUBLE_CORRECT 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine generates bad code -## for the H5VM_log2_gen() routine in src/H5VMprivate.h -## (This flag should be set to no for all machines, except for SGI IRIX64, -## where the cache value is set to yes in it's config file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if bad code for log2 routine is generated" >&5 -$as_echo_n "checking if bad code for log2 routine is generated... " >&6; } -if ${hdf5_cv_bad_log2_code_generated+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_bad_log2_code_generated=no -fi - - -if test ${hdf5_cv_bad_log2_code_generated} = "yes"; then +if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then -$as_echo "#define BAD_LOG2_CODE_GENERATED 1" >>confdefs.h +$as_echo "#define LONG_TO_LDOUBLE_SPECIAL 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -30002,7 +27714,7 @@ fi ## ---------------------------------------------------------------------- ## Set some variables for general configuration information to be saved -## and installed with the libraries. +## and installed with the libraries (used to generate libhdf5.settings). ## ## HDF5 version from the first line of the README.txt file. @@ -30113,86 +27825,6 @@ fi ROOT="`$pwd`" ## ---------------------------------------------------------------------- -## Move any compiler-specific libraries into the main LIBS varaible. -## -LIBS="$DEFAULT_LIBS $LIBS" - -## ---------------------------------------------------------------------- -## Determine the runtime libraries we may need to include in the -## libtools command so that executables will find the correct dynamic -## libraries. -## - DYNAMIC_DIRS="" - -if test -n "$AM_LDFLAGS $LDFLAGS"; then - for d in $AM_LDFLAGS $LDFLAGS ; do - case "$d" in - -L*) - d="`echo $d | sed -e 's/-L//g'`" - case "$d" in - .*) - ## If the path isn't absolute, make it so by - ## prepending the ROOT directory to it. - d=${ROOT}/$d - ;; - esac - DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" - ;; - esac - done -fi - -if test -n "$AM_CPPFLAGS"; then - TEMP_CPPFLAGS="" - for d in $AM_CPPFLAGS ; do - case "$d" in - -I.*) - ## If the path isn't absolute, make it so by prepending - ## the ROOT directory to it. - d="`echo $d | sed -e 's/-I//g'`" - d="-I${ROOT}/${d}" - ;; - esac - TEMP_CPPFLAGS="$d $TEMP_CPPFLAGS" - done - AM_CPPFLAGS=$TEMP_CPPFLAGS -fi - -## ---------------------------------------------------------------------- -## Check if they would like the High Level library compiled -## - - HL="" -## name of fortran folder inside "hl", if FORTRAN compile is requested - HL_FOR="" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if high level library is enabled" >&5 -$as_echo_n "checking if high level library is enabled... " >&6; } -# Check whether --enable-hl was given. -if test "${enable_hl+set}" = set; then : - enableval=$enable_hl; HDF5_HL=$enableval -else - HDF5_HL=yes -fi - - -if test "X$HDF5_HL" = "Xyes"; then - echo "yes" - HL="hl" - -$as_echo "#define INCLUDE_HL 1" >>confdefs.h - - -## Check if Fortran's default real is double precision. If it is and HL is being built then configure -## should fail due to bug HDFFV-889. - if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then - as_fn_error $? "Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use configure option --disable-hl." "$LINENO" 5 - fi -else - echo "no" -fi - - -## ---------------------------------------------------------------------- ## Some programs shouldn't be built by default (e.g., programs to generate ## data files used by tests, some optional tests). ## Check if they want such programs built anyway. @@ -30496,18 +28128,8 @@ fi ## The directory search list SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' -cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' -SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH -## We don't need to say when we're entering directories if we're using -## GNU make because make does it for us. -if test "X$GMAKE" = "Xyes"; then - SETX=":" -else - SETX="set -x" -fi - ## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod @@ -30940,7 +28562,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -HDF5 config.lt 1.9.215 +HDF5 config.lt 1.9.216 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -30983,9 +28605,6 @@ cat >>"$CONFIG_LT" <<_LTEOF sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' @@ -31019,10 +28638,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' @@ -31230,10 +28851,7 @@ _LTECHO_EOF' } # Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ +for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ @@ -31246,10 +28864,12 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ +DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ @@ -31496,15 +29116,6 @@ available_tags="CXX FC " # ### BEGIN LIBTOOL CONFIG -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision @@ -31585,6 +29196,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -31597,6 +29211,9 @@ file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd @@ -32419,23 +30036,6 @@ touch ./config/stamp2 ## Finally the makefiles test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 -## Post processing to patch up some deficiencies in libtool -case $host_os in - linux* | freebsd* ) - ## If gcc is not used, need to set $wl to use "-Wl," - if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then - : using gcc - else - echo 'fixing $wl in' $ofile -ed - $ofile <<EOF 2> /dev/null -g/^wl=""/s//wl="-Wl,"/ -w -q -EOF - fi - ;; -esac - ## Are we compiling static libraries, shared libraries, or both? This ## is only used for the libhdf5.settings file. We can't just look at ## $enable_static and $enable_shared because if they're yes the ltconfig @@ -32644,10 +30244,6 @@ if test -z "${FORTRAN_SHARED_CONDITIONAL_TRUE}" && test -z "${FORTRAN_SHARED_CON as_fn_error $? "conditional \"FORTRAN_SHARED_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${CXX_SHARED_CONDITIONAL_TRUE}" && test -z "${CXX_SHARED_CONDITIONAL_FALSE}"; then - as_fn_error $? "conditional \"CXX_SHARED_CONDITIONAL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_PLUGINS_CONDITIONAL_TRUE}" && test -z "${USE_PLUGINS_CONDITIONAL_FALSE}"; then as_fn_error $? "conditional \"USE_PLUGINS_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -33082,7 +30678,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.215, which was +This file was extended by HDF5 $as_me 1.9.216, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -33148,7 +30744,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.215 +HDF5 config.status 1.9.216 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -33277,9 +30873,6 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' @@ -33313,10 +30906,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' @@ -33524,10 +31119,7 @@ _LTECHO_EOF' } # Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ +for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ @@ -33540,10 +31132,12 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ +DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ @@ -34581,15 +32175,6 @@ available_tags="CXX FC " # ### BEGIN LIBTOOL CONFIG -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision @@ -34670,6 +32255,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -34682,6 +32270,9 @@ file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd diff --git a/configure.ac b/configure.ac index cc1cd4e..41951a8 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.215], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.216], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) @@ -110,7 +110,7 @@ AC_SUBST([AM_CXXFLAGS]) AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_LDFLAGS]) -## Make sure flags are set to something (otherwise macros may set them later). +## Make sure flags are initialized. AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -131,12 +131,6 @@ saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" -## Different compilers may need default libraries. They are specified in -## the config/* files, so we put this statement here so that it'll be -## set by the code which follows... -## -DEFAULT_LIBS="" - ## Support F9X variable to define Fortran compiler if FC variable is ## not used. This should be deprecated in the future. if test "x" = "x$FC"; then @@ -193,15 +187,9 @@ AC_SUBST([UNAME_INFO]) UNAME_INFO=`uname -a` ## ---------------------------------------------------------------------- ## Some platforms have broken basename, and/or xargs programs. Check ## that it actually does what it's supposed to do. Catch this early -## since configure relies upon them heavily and there's no use continuing -## if it's broken. +## since configure and scripts relies upon them heavily and there's +## no use continuing if it's broken. ## - -## Avoid depending upon Character Ranges. -## These are defined by autoconf. -## as_cr_letters='abcdefghijklmnopqrstuvwxyz' -## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' - AC_MSG_CHECKING([if basename works]) BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`" if test $BASENAME_TEST != "basename_works"; then @@ -210,6 +198,7 @@ else AC_MSG_RESULT([yes]) fi +## xargs basename used in configure to get the CC_BASENAME value AC_MSG_CHECKING([if xargs works]) XARGS_TEST="`echo /foo/bar/baz/qux/xargs_works | xargs basename`" if test $XARGS_TEST != "xargs_works"; then @@ -255,12 +244,6 @@ case $host_os in freebsd*) host_os_novers=freebsd ;; - irix5.*) - host_os_novers=irix5.x - ;; - irix6.*) - host_os_novers=irix6.x - ;; osf4.*) host_os_novers=osf4.x ;; @@ -370,7 +353,7 @@ AC_SUBST([HDF5_INTERFACES]) HDF5_INTERFACES="" AC_MSG_CHECKING([if Fortran interface enabled]) AC_ARG_ENABLE([fortran], [AS_HELP_STRING([--enable-fortran], - [Compile the Fortran 77/90/95 interface [default=no]])], + [Compile the Fortran 90/95 interface [default=no]])], [HDF_FORTRAN=$enableval]) if test "X$HDF_FORTRAN" = "Xyes"; then @@ -397,14 +380,13 @@ if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then echo "no" AC_MSG_ERROR([--enable-fortran must be used with --enable-fortran2003]) else - echo "yes" + if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xyes"; then + echo "yes" + else + echo "no" + fi fi -HAVE_SIZEOF="no" -HAVE_C_SIZEOF="no" -HAVE_STORAGE_SIZE="no" -FORTRAN_DEFAULT_REALisDBLE="no" - if test "X$HDF_FORTRAN" = "Xyes"; then AC_SUBST([FC]) HDF_FORTRAN=yes @@ -413,12 +395,6 @@ if test "X$HDF_FORTRAN" = "Xyes"; then HDF5_INTERFACES="$HDF5_INTERFACES fortran" ## -------------------------------------------------------------------- - ## Default for FORTRAN 2003 compliant compilers - ## - HAVE_FORTRAN_2003="no" - HAVE_F2003_REQUIREMENTS="no" - - ## -------------------------------------------------------------------- ## HDF5 integer variables for the H5fortran_types.f90 file. ## AC_SUBST([R_LARGE]) @@ -439,16 +415,11 @@ if test "X$HDF_FORTRAN" = "Xyes"; then AC_SUBST([FSEARCH_DIRS]) ## -------------------------------------------------------------------- - ## Check for a Fortran 9X compiler and how to include modules. + ## Check for a Fortran compiler and how to include modules. ## - AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],) + AC_PROG_FC([PAC_FC_SEARCH_LIST],) AC_F9X_MODS - ## It seems that libtool (as of Libtool 1.5.14) is trying to - ## configure itself for Fortran 77. - ## Tell it that our F77 compiler is $FC (actually a F9X compiler) - F77=$FC - ## Change to the Fortran 90 language AC_LANG_PUSH(Fortran) @@ -458,116 +429,28 @@ if test "X$HDF_FORTRAN" = "Xyes"; then AC_FC_WRAPPERS ## -------------------------------------------------------------------- - ## See if the compiler will support the "-I." option - ## - dnl AM_FCFLAGS_saved=$AM_FCFLAGS - dnl AM_FCFLAGS="${AM_FCFLAGS} -I." - - dnl AC_MSG_CHECKING(if compiler supports -I. option) - dnl AC_TRY_FCOMPILE([ - dnl program conftest - dnl end - dnl ], AC_MSG_RESULT(yes), - dnl AC_MSG_RESULT(no) - dnl AM_FCFLAGS="$AM_FCFLAGS_saved") - - ## -------------------------------------------------------------------- ## See if the fortran compiler supports the intrinsic function "SIZEOF" - - AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF]) - AC_TRY_RUN([ - PROGRAM main - i = sizeof(x) - END PROGRAM - ], [AC_MSG_RESULT([yes]) - HAVE_SIZEOF="yes"], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_SIZEOF ## See if the fortran compiler supports the intrinsic function "C_SIZEOF" - - AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF]) - AC_TRY_RUN([ - PROGRAM main - USE ISO_C_BINDING - INTEGER(C_INT) :: a - INTEGER(C_SIZE_T) :: result - result = C_SIZEOF(a) - END PROGRAM - ], [AC_MSG_RESULT([yes]) - HAVE_C_SIZEOF="yes"], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_C_SIZEOF ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" - - AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE]) - AC_TRY_RUN([ - PROGRAM main - INTEGER :: a - INTEGER :: result - result = STORAGE_SIZE(a) - END PROGRAM - ], [AC_MSG_RESULT([yes]) - HAVE_STORAGE_SIZE="yes"], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_STORAGE_SIZE ## Check to see if -r8 was specified to determine if we need to ## compile the DOUBLE PRECISION interfaces. - - AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION]) - - AC_TRY_RUN([ - MODULE type_mod - INTERFACE h5t - MODULE PROCEDURE h5t_real - MODULE PROCEDURE h5t_dble - END INTERFACE - CONTAINS - SUBROUTINE h5t_real(r) - REAL :: r - END SUBROUTINE h5t_real - SUBROUTINE h5t_dble(d) - DOUBLE PRECISION :: d - END SUBROUTINE h5t_dble - END MODULE type_mod - PROGRAM main - USE type_mod - REAL :: r - DOUBLE PRECISION :: d - CALL h5t(r) - CALL h5t(d) - END PROGRAM main - ], - [AC_MSG_RESULT([no])], - [AC_MSG_RESULT([yes]) - FORTRAN_DEFAULT_REALisDBLE="yes"]) + PAC_PROG_FC_DEFAULT_REALisDBLE if test "X$HDF_FORTRAN2003" = "Xyes"; then ## Checking if the compiler supports the required Fortran 2003 features and ## disable Fortran 2003 if it does not. - - AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF]) - HAVE_FORTRAN_2003="no" - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ - - USE iso_c_binding - IMPLICIT NONE - TYPE(C_PTR) :: ptr - TYPE(C_FUNPTR) :: funptr - CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr - - ptr = C_LOC(ichr(1:1)) - - ])], - [AC_MSG_RESULT([yes]) - HAVE_F2003_REQUIREMENTS=[yes]], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_HAVE_F2003_REQUIREMENTS + if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - ## echo $HAVE_FORTRAN_2003 AC_MSG_ERROR([Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003]) else - ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" fi fi @@ -578,14 +461,12 @@ fi ## Change back to the C language AC_LANG_POP(Fortran) -AM_CONDITIONAL([FORTRAN_HAVE_SIZEOF], [test "X$HAVE_SIZEOF" = "Xyes"]) -AM_CONDITIONAL([FORTRAN_HAVE_C_SIZEOF], [test "X$HAVE_C_SIZEOF" = "Xyes"]) -AM_CONDITIONAL([FORTRAN_HAVE_STORAGE_SIZE], [test "X$HAVE_STORAGE_SIZE" = "Xyes"]) +AM_CONDITIONAL([FORTRAN_HAVE_SIZEOF], [test "X$HAVE_SIZEOF_FORTRAN" = "Xyes"]) +AM_CONDITIONAL([FORTRAN_HAVE_C_SIZEOF], [test "X$HAVE_C_SIZEOF_FORTRAN" = "Xyes"]) +AM_CONDITIONAL([FORTRAN_HAVE_STORAGE_SIZE], [test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"]) AM_CONDITIONAL([FORTRAN_2003_CONDITIONAL_F], [test "X$HAVE_FORTRAN_2003" = "Xyes"]) AM_CONDITIONAL([FORTRAN_DEFAULT_REALisDBLE_F], [test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"]) - - ## ---------------------------------------------------------------------- ## Check if they would like the C++ interface compiled ## @@ -609,115 +490,57 @@ if test "X$HDF_CXX" = "Xyes"; then ## Change to the C++ language AC_LANG_PUSH(C++) - AC_MSG_CHECKING([if $CXX needs old style header files in includes]) - AC_TRY_RUN([ -#include <iostream> - -int main(void) { return 0; } - ], [ - echo no - ], [ - echo yes - CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME" - AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME" - ]) - - AC_MSG_CHECKING([if $CXX can handle namespaces]) - AC_TRY_RUN([ -namespace H5 { -int fnord; -} - -int main(void) { - using namespace H5; - fnord = 37; - return 0; -} - ], [ - echo yes - ], [ - echo no - CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE" - AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE" - ]) + # Checking if C++ needs old style header files in includes + PAC_PROG_CXX_HEADERS - AC_MSG_CHECKING([if $CXX supports std]) - AC_TRY_RUN([ -#include <string> - -using namespace std; - -int main(void) { - string myString("testing namespace std"); - return 0; -} - ], [ - echo yes - ], [ - echo no - CXXFLAGS="${CXXFLAGS} -DH5_NO_STD" - AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD" - ]) + # Checking if C++ can handle namespaces + PAC_PROG_CXX_NAMESPACE + + # Checking if C++ has offsetof extension + PAC_PROG_CXX_OFFSETOF - AC_MSG_CHECKING([if $CXX supports bool types]) - AC_TRY_RUN([ -int main(void) { - bool flag; - return 0; -} - ], [ - echo yes - ], [ - echo no - CXXFLAGS="${CXXFLAGS} -DBOOL_NOTDEFINED" - AM_CXXFLAGS="${AM_CXXFLAGS} -DBOOL_NOTDEFINED" - ]) + # if C++ can handle static cast + PAC_PROG_CXX_STATIC_CAST - AC_MSG_CHECKING([if $CXX has offsetof extension]) - AC_TRY_COMPILE([ - #include <stdio.h> - #include <stddef.h> - ],[ - struct index_st - { - unsigned char type; - unsigned char num; - unsigned int len; - }; - typedef struct index_st index_t; - int x,y; - x = offsetof(struct index_st, len); - y = offsetof(index_t, num) - ], - AC_DEFINE([CXX_HAVE_OFFSETOF], [1], - [Define if C++ compiler recognizes offsetof]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - - AC_MSG_CHECKING([if $CXX can handle static cast]) - AC_TRY_RUN([ -int main(void) { - float test_float; - int test_int; - test_float = 37.0; - test_int = static_cast <int> (test_float); - return 0; -} - ], [ - echo yes - ], [ - echo no - CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST" - AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST" - ]) else - echo "no" + AC_MSG_RESULT([no]) CXX="no" fi ## Change back to the C language AC_LANG_POP(C++) + +## ---------------------------------------------------------------------- +## Check if they would like the High Level library compiled +## + +AC_SUBST(HL) HL="" +## name of fortran folder inside "hl", if FORTRAN compile is requested +AC_SUBST(HL_FOR) HL_FOR="" +AC_MSG_CHECKING([if high level library is enabled]) +AC_ARG_ENABLE([hl], + [AS_HELP_STRING([--enable-hl], + [Enable the high level library [default=yes]])], + [HDF5_HL=$enableval], + [HDF5_HL=yes]) + +if test "X$HDF5_HL" = "Xyes"; then + echo "yes" + HL="hl" + AC_DEFINE([INCLUDE_HL], [1], + [Define if HDF5's high-level library headers should be included in hdf5.h]) + + ## If Fortran's default real is double precision and HL is being built then configure + ## should fail due to bug HDFFV-889. + if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then + AC_MSG_ERROR([Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use configure option --disable-hl.]) + fi +else + echo "no" +fi + + ## ---------------------------------------------------------------------- ## Check if they have Perl installed on their system. We only need Perl ## if they're using a GNU compiler. @@ -727,7 +550,6 @@ if test "X$GCC" = "Xyes"; then AC_CHECK_PROGS([PERL], [perl],, [$PATH]) fi - ## ---------------------------------------------------------------------- ## Check which archiving tool to use. This needs to be done before ## the AM_PROG_LIBTOOL macro. @@ -748,6 +570,7 @@ AC_PROG_INSTALL ## ---------------------------------------------------------------------- ## Set up ${TR} which is used to process DEBUG_PKG. + AC_PATH_PROG([TR], [tr]) @@ -755,6 +578,11 @@ AC_PATH_PROG([TR], [tr]) ## Check that time can be used with srcdir. This is okay on most systems, ## but seems to cause problems on Cygwin. ## The solution on Cygwin is not to record execution time for tests. +## +## Note: This is still true as of Cygwin 1.7.32 (Aug 2014) on both 32- +## and 64-bit platforms. Given how long this has been true, it seems +## unlikely to change, but we should probably re-test this periodically. + AC_MSG_CHECKING([if srcdir= and time commands work together]) AC_SUBST([TIME]) @@ -850,80 +678,14 @@ fi AM_CONDITIONAL([FORTRAN_SHARED_CONDITIONAL], [test "X$H5_FORTRAN_SHARED" = "Xyes"]) ## ---------------------------------------------------------------------- -## Disable C++ shared libraries if +DD64 flag is detected. -## -AC_SUBST([H5_CXX_SHARED]) -H5_CXX_SHARED="no" -if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then - AC_MSG_CHECKING([if shared C++ libraries are supported]) - H5_CXX_SHARED="yes" - - ## Disable C++ shared libraries if DD64 flag is being used. - - if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then - H5_CXX_SHARED="no" - CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." - fi - - ## Report results of check(s) - - if test "X${H5_CXX_SHARED}" = "Xno"; then - AC_MSG_RESULT([no]) - AC_MSG_WARN([$CHECK_WARN]) - if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - AC_MSG_WARN([Disabling shared C++ libraries.]) - AC_MSG_WARN([To override this behavior, please use --enable-unsupported configure option.]) - if test "X${enable_static}" = "Xno"; then - AC_MSG_ERROR([both static and shared C++ libraries are disabled]) - fi - else - AC_MSG_WARN([Allowing unsupported C++ shared librares due to use of --enable-unsupported flag]) - fi - else - AC_MSG_RESULT([yes]) - fi -fi - -AM_CONDITIONAL([CXX_SHARED_CONDITIONAL], [test "X$H5_CXX_SHARED" = "Xyes"]) - -## ---------------------------------------------------------------------- -## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect -## these versions and add option "-Mx,28,0x8" to the compiler to avoid -## the problem if optimization is enabled. -## - -if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then - echo 'adding compiler flag to avoid optimization problem in pgcc' - CC="${CC-cc} -Mx,28,0x8" -fi - -## ---------------------------------------------------------------------- -## Shared libraries are not currently supported under Cygwin, so configure -## disables them unless --enable-unsupported has been supplied by the user. - -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - case "`uname`" in - CYGWIN*) - if test "X${enable_shared}" = "Xyes"; then - echo ' warning: shared libraries are not supported on Cygwin!' - echo ' disabling shared libraries' - echo ' use --enable-unsupported to override this warning and keep shared libraries enabled' - fi - enable_shared="no" - ;; - esac -fi - -## ---------------------------------------------------------------------- -## Windows won't create DLLs without the following macro. -## -AC_LIBTOOL_WIN32_DLL - -## ---------------------------------------------------------------------- ## Create libtool. If shared/static libraries are going to be enabled ## or disabled, it should happen before these macros. LT_PREREQ([2.2]) -LT_INIT([dlopen]) + +## ---------------------------------------------------------------------- +## dlopen - This will use an improved version of libtool +## win32-dll - This will build clean dlls on win32 platforms. +LT_INIT([dlopen,win32-dll]) ## ---------------------------------------------------------------------- ## Check if we should install only statically linked executables. @@ -991,79 +753,6 @@ case "X-$RPATH" in esac ## ---------------------------------------------------------------------- -## Sometimes makes think the `.PATH:' appearing before the first rule -## with an action should override the `all' default target. So we have -## to decide what the proper syntax is. -## -AC_MSG_CHECKING([how make searches directories]) -while true; do #for break - ## The most common method is `VPATH=DIR1 DIR2 ...' - cat >maketest <<EOF -VPATH=$srcdir/config $srcdir/src $srcdir/bin -.c.o: - cp $< H5.o - -foo: H5.o - rm -f H5.o - @echo works -EOF - - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=' ' - AC_MSG_RESULT([VPATH=DIR1 DIR2 ...]) - break - fi - - ## The second most common method is like above except with the - ## directories separated by colons. - cat >maketest <<EOF -VPATH=$srcdir/config:$srcdir/src:$srcdir/bin -.c.o: - cp $< H5.o - -foo: H5.o - rm -f H5.o - @echo works -EOF - - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=':' - AC_MSG_RESULT([VPATH=DIR1:DIR2:...]) - break - fi - - ## pmake uses the construct `.PATH: DIR1 DIR2 - cat >maketest <<EOF -.PATH: $srcdir/config $srcdir/src $srcdir/bin -.c.o: - cp $< H5.o - -foo: H5.o - rm -f H5.o - @echo works -EOF - - if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='.PATH: ' - SEARCH_SEP=' ' - AC_MSG_RESULT([.PATH: DIR1 DIR2 ...]) - break - fi - - ## No way for make to search directories - SEARCH_RULE='## SEARCH DISABLED: ' - SEARCH_SEP=' ' - AC_MSG_RESULT([it doesn't]) - if test ! -f configure; then - AC_MSG_ERROR([${MAKE-make} requires the build and source directories to be the same]) - fi - break -done -rm maketest - -## ---------------------------------------------------------------------- ## pmake will throw an error if variables are undefined in a Makefile. ## These errors can be changed to warnings using the -V flag. ## @@ -1145,24 +834,12 @@ if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then AC_CHECK_LIB([nsl], [xdr_int]) fi -dnl AC_CHECK_LIB([coug], [main]) ## ...for ASCI/Red - ## ---------------------------------------------------------------------- ## Check for system header files. ## AC_HEADER_STDC AC_HEADER_TIME -## ---------------------------------------------------------------------- -## Check for these two functions before the time headers are checked -## for, otherwise they are not detected correctly on Solaris (the -## configure test will fail due to multiply-defined symbols). -## -AC_CHECK_FUNCS([difftime]) -AC_CHECK_FUNCS([gettimeofday], [have_gettime="yes"], [have_gettime="no"]) -AC_SEARCH_LIBS([clock_gettime], [rt posix4]) -AC_CHECK_FUNCS([clock_gettime],[have_clock_gettime="yes"],[have_clock_gettime="no"]) - ## Unix AC_CHECK_HEADERS([sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h]) AC_CHECK_HEADERS([sys/socket.h sys/types.h]) @@ -1201,7 +878,7 @@ case "$host" in ## many problems with including them. AC_CHECK_HEADERS([sys/sysinfo.h sys/proc.h]) ;; - mips*-sgi*-irix*) + mips*-sgi*) ## The <sys/fpu.h> is needed on the SGI machines to turn off ## denormalized floating-point values going to zero. We do *not* ## attempt to locate these files on other systems because there @@ -1266,19 +943,28 @@ case "$host_cpu-$host_vendor-$host_os" in ## Add POSIX support on Linux systems, so <features.h> defines ## __USE_POSIX, which is required to get the prototype for fdopen ## defined correctly in <stdio.h>. + ## ## This flag was removed from h5cc as of 2009-10-17 when it was found ## that the flag broke compiling netCDF-4 code with h5cc, but kept in ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen ## is used only by H5_debug_mask which is used only when debugging in ## H5_init_library (all in H5.c). When the flag was removed this was ## the only compile failure noted. + ## ## This was originally defined as _POSIX_SOURCE which was updated to ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX ## functionality so clock_gettime and CLOCK_MONOTONIC are defined - ## correctly. + ## correctly. This was later updated to 200112L so that + ## posix_memalign() is visible for the direct VFD code on Linux + ## systems. + ## ## POSIX feature information can be found in the gcc manual at: ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html - H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" + H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS" + + ## Need to add this so that O_DIRECT is visible for the direct + ## VFD on Linux systems. + H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS" ## Also add BSD support on Linux systems, so <features.h> defines ## __USE_BSD, which is required to get the prototype for strdup @@ -1288,7 +974,12 @@ case "$host_cpu-$host_vendor-$host_os" in ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html ## however, we do not do this since it breaks the big test on some ## older platforms. - AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS" + + ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE. + ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE, + ## which should work for all versions of glibc. + H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS" ;; esac @@ -1464,15 +1155,6 @@ case $withval in ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$dmalloc_inc" = "X/usr/include"; then - dmalloc_inc="" - fi - if test "X$dmalloc_lib" = "X/usr/lib"; then - dmalloc_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -1530,7 +1212,7 @@ case $withval in ;; no) HAVE_ZLIB="no" - AC_MSG_CHECKING([for GNU zlib]) + AC_MSG_CHECKING([for zlib]) AC_MSG_RESULT([suppressed]) ;; *) @@ -1548,15 +1230,6 @@ case $withval in ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$zlib_inc" = "X/usr/include"; then - zlib_inc="" - fi - if test "X$zlib_lib" = "X/usr/lib"; then - zlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -1647,15 +1320,6 @@ case $withval in ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$szlib_inc" = "X/usr/include"; then - szlib_inc="" - fi - if test "X$szlib_lib" = "X/usr/lib"; then - szlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -1702,18 +1366,18 @@ if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then AC_SUBST([LL_PATH]) LL_PATH="$LD_LIBRARY_PATH" AC_CACHE_VAL([hdf5_cv_szlib_can_encode], - [AC_TRY_RUN([ - #include <szlib.h> - - int main(void) - { + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include "szlib.h" + ],[[ /* SZ_encoder_enabled returns 1 if encoder is present */ - if(SZ_encoder_enabled() == 1) - exit(0); - else - exit(1); - } - ], [hdf5_cv_szlib_can_encode=yes], [hdf5_cv_szlib_can_encode=no],)]) + if(SZ_encoder_enabled() == 1) + exit(0); + else + exit(1); + ]])] + , [hdf5_cv_szlib_can_encode=yes], [hdf5_cv_szlib_can_encode=no],)] + ) AC_DEFINE([HAVE_FILTER_SZIP], [1], [Define if support for szip filter is enabled]) @@ -1753,9 +1417,15 @@ AC_CACHE_SAVE AC_MSG_CHECKING([for thread safe support]) AC_ARG_ENABLE([threadsafe], [AS_HELP_STRING([--enable-threadsafe], - [Enable thread-safe capability])], + [Enable thread-safe capability. This will disable the high-level library. + You can override this behavior by specifying --enable-hl and --enable-unsupported. + [default=no]])], [THREADSAFE=$enableval]) +## NOTE: The high-level, C++, and Fortran interfaces are not compatible +## with the thread-safety option because the lock is not hoisted +## into the higher-level API calls. + ## The --enable-threadsafe flag is not compatible with --enable-cxx. ## If the user tried to specify both flags, throw an error, unless ## they also provided the --enable-unsupported flag. @@ -1765,7 +1435,7 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then fi fi -## --enable-threadsafe is also incompatible with --enable-fortran, unless +## --enable-threadsafe is also incompatible with --enable-fortran unless ## --enable-unsupported has been specified on the configure line. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${HDF_FORTRAN}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then @@ -1773,6 +1443,7 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then fi fi + case "X-$THREADSAFE" in X-|X-no) AC_MSG_RESULT([no]) @@ -1791,32 +1462,31 @@ if test "X$THREADSAFE" = "Xyes"; then AC_DEFINE([HAVE_THREADSAFE], [1], [Define if we have thread safe support]) ## ---------------------------------------------------------------------- - ## Is the pthreads library present? It has a header file `pthread.h' and + ## Is the Pthreads library present? It has a header file `pthread.h' and ## a library `-lpthread' and their locations might be specified with the ## `--with-pthread' command-line switch. The value is an include path ## and/or a library path. If the library path is specified then it must ## be preceded by a comma. ## ## Thread-safety in HDF5 only uses Pthreads via configure, so the - ## default is "yes", though this only has an effect when + ## default is "check", though this only has an effect when ## --enable-threadsafe is specified. AC_SUBST([HAVE_PTHREAD]) HAVE_PTHREAD=yes AC_ARG_WITH([pthread], [AS_HELP_STRING([--with-pthread=DIR], - [Specify alternative path to Pthreads library when thread-safe capability is built])],, - [withval=yes]) + [Specify alternative path to Pthreads library when + thread-safe capability is built.])],, + [withval=check]) case "$withval" in - yes) + check | yes) AC_CHECK_HEADERS([pthread.h],, [unset HAVE_PTHREAD]) if test "x$HAVE_PTHREAD" = "xyes"; then AC_CHECK_LIB([pthread], [pthread_self],, [unset HAVE_PTHREAD]) fi ;; no) - AC_MSG_CHECKING([for pthread]) - AC_MSG_RESULT([suppressed]) - unset HAVE_PTHREAD + AC_MSG_ERROR([Must use Pthreads with thread safety]) ;; *) case "$withval" in @@ -1832,15 +1502,6 @@ if test "X$THREADSAFE" = "Xyes"; then ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$pthread_inc" = "X/usr/include"; then - pthread_inc="" - fi - if test "X$pthread_lib" = "X/usr/lib"; then - pthread_lib="" - fi - if test -n "$pthread_inc"; then saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" @@ -1865,6 +1526,44 @@ if test "X$THREADSAFE" = "Xyes"; then fi ;; esac + + ## ---------------------------------------------------------------------- + ## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) + ## is supported on this system + ## + ## Unfortunately, this probably needs to be an AC_RUN_IFELSE since + ## it's impossible to determine if PTHREAD_SCOPE_SYSTEM is + ## supported a priori. POSIX.1-2001 requires that a conformant + ## system need only support one of SYSTEM or PROCESS scopes. + ## + ## For cross-compiling, we've added a pessimistic 'no'. You can + ## hand-hack the config file if you know otherwise. + AC_MSG_CHECKING([Pthreads supports system scope]) + AC_CACHE_VAL([hdf5_cv_system_scope_threads], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #if STDC_HEADERS + #include <stdlib.h> + #include <pthread.h> + #endif + ],[ + pthread_attr_t attribute; + int ret; + + pthread_attr_init(&attribute); + ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); + exit(ret==0 ? 0 : 1); + ])] + , [hdf5_cv_system_scope_threads=yes], [hdf5_cv_system_scope_threads=no], [hdf5_cv_system_scope_threads=no])]) + + if test ${hdf5_cv_system_scope_threads} = "yes"; then + AC_DEFINE([SYSTEM_SCOPE_THREADS], [1], + [Define if your system supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) call.]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_NOTICE([Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM).]) + fi fi ## ---------------------------------------------------------------------- @@ -1888,16 +1587,6 @@ AC_TRY_COMPILE([ AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) -## check if `struct tm' has a `__tm_gmtoff' member. -AC_MSG_CHECKING([for __tm_gmtoff in struct tm]) -AC_TRY_COMPILE([ - #include <sys/time.h> - #include <time.h>], [struct tm tm; tm.__tm_gmtoff=0;], - [AC_DEFINE([HAVE___TM_GMTOFF], [1], - [Define if `__tm_gmtoff' is a member of `struct tm']) - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) - ## Check whether the global variable `timezone' is defined. AC_MSG_CHECKING([for global timezone variable]) @@ -1916,50 +1605,6 @@ case "`uname`" in ;; esac -## Check whether `struct timezone' is defined. -AC_STRUCT_TIMEZONE -AC_MSG_CHECKING([for struct timezone]) -AC_TRY_COMPILE([ - #include <sys/types.h> - #include <sys/time.h> - #include <time.h>], [struct timezone tz; tz.tz_minuteswest=0;], - [AC_DEFINE([HAVE_STRUCT_TIMEZONE], [1], - [Define if `struct timezone' is defined]) - have_struct_tz="yes" - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) - -## If gettimeofday() is going to be used, make sure it uses the timezone struct - -if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then - AC_MSG_CHECKING(whether gettimeofday() gives timezone) - AC_CACHE_VAL([hdf5_cv_gettimeofday_tz], - [AC_TRY_RUN([ - #include <time.h> - #include <sys/time.h> - int main(void) - { - struct timeval tv; - struct timezone tz; - tz.tz_minuteswest = 7777; /* Initialize to an unreasonable number */ - tz.tz_dsttime = 7; - gettimeofday(&tv, &tz); - /* Check whether the function returned any value at all */ - if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7) - exit(1); - else exit (0); - }], - [hdf5_cv_gettimeofday_tz=yes], - [hdf5_cv_gettimeofday_tz=no])]) - - if test ${hdf5_cv_gettimeofday_tz} = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([GETTIMEOFDAY_GIVES_TZ], [1], - [Define if gettimeofday() populates the tz pointer passed in]) - else - AC_MSG_RESULT([no]) - fi -fi ## ---------------------------------------------------------------------- ## Does the struct stat have the st_blocks field? This field is not Posix. @@ -2017,90 +1662,15 @@ AC_TRY_COMPILE([#include <sys/ioctl.h>],[int w=TIOCGETD;], ## ---------------------------------------------------------------------- ## Check for functions. ## -AC_CHECK_FUNCS([alarm BSDgettimeofday fork frexpf frexpl]) -AC_CHECK_FUNCS([gethostname getpwuid getrusage lstat]) -AC_CHECK_FUNCS([rand_r random setsysinfo]) +## NOTE: clock_gettime may require linking to the rt or posix4 library +## so we'll search for it before calling AC_CHECK_FUNCS. +AC_SEARCH_LIBS([clock_gettime], [rt posix4]) +AC_CHECK_FUNCS([alarm clock_gettime difftime fork frexpf frexpl]) +AC_CHECK_FUNCS([gethostname getpwuid getrusage gettimeofday]) +AC_CHECK_FUNCS([lstat rand_r random setsysinfo]) AC_CHECK_FUNCS([signal longjmp setjmp siglongjmp sigsetjmp sigprocmask]) AC_CHECK_FUNCS([snprintf srandom strdup symlink system]) -AC_CHECK_FUNCS([tmpfile asprintf vasprintf waitpid]) - -## Check for vsnprintf() separately, so we can detect situations where it -## doesn't return the correct size for formatted strings that are too large -## for the buffer provided -AC_CHECK_FUNCS([vsnprintf], - - ## Check if vsnprintf() returns correct size for strings that don't fit - ## into the size allowed. If vsnprintf() works correctly on this platform, - ## it should return a value of 42 for the test below - ## - ## Note that vsnprintf fails in two different ways: - ## - In IRIX64, calls to vnsprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return the size of the buffer minus one. - ## - In HP/UX, calls to vsnprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return (-1) - AC_MSG_CHECKING([if vsnprintf returns correct value]) - - AC_CACHE_VAL([hdf5_cv_vsnprintf_works], - AC_TRY_RUN([ -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> - -int test_vsnprintf(const char *fmt,...) -{ - va_list ap; - char *s = malloc(16); - int ret; - - va_start(ap, fmt); - ret=vsnprintf(s,16,"%s",ap); - va_end(ap); - - return(ret!=42 ? 1 : 0); -} - -int main(void) -{ - exit(test_vsnprintf("%s","A string that is longer than 16 characters")); -} - ],[hdf5_cv_vsnprintf_works=yes],[hdf5_cv_vsnprintf_works=no],)) - - if test ${hdf5_cv_vsnprintf_works} = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([VSNPRINTF_WORKS], [1], - [Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed]) - else - AC_MSG_RESULT([no]) - fi - ,) - -## ---------------------------------------------------------------------- -## Check that a lone colon can be used as an argument -## This is not true on Cray X1, which interprets a lone colon as a -## system command. -## -AC_CACHE_CHECK([if lone colon can be used as an argument], - [hdf5_cv_lone_colon], - [ - echo "int main(int argc, char * argv[]) {return 0;}" > conftest.c - $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null - echo "./a.out :" > conftest.sh - chmod 700 conftest.sh - - ./conftest.sh 2> conftest.out - rm -f a.out - TEST_OUTPUT=`cat conftest.out` - - if test "X$TEST_OUTPUT" = "X"; then - hdf5_cv_lone_colon=yes - else - hdf5_cv_lone_colon=no - fi - ]) - -AC_SUBST([H5_LONE_COLON]) H5_LONE_COLON="$hdf5_cv_lone_colon" +AC_CHECK_FUNCS([tmpfile asprintf vasprintf vsnprintf waitpid]) ## ---------------------------------------------------------------------- ## Check compiler characteristics @@ -2151,55 +1721,24 @@ AC_MSG_CHECKING([how to print long long]) AC_CACHE_VAL([hdf5_cv_printf_ll], [ for hdf5_cv_printf_ll in l ll L q unknown; do - AC_TRY_RUN([ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> - - int main(void) - { - char *s = malloc(128); - long long x = (long long)1048576 * (long long)1048576; - sprintf(s,"%${hdf5_cv_printf_ll}d",x); - exit(strcmp(s,"1099511627776")); - } - ], [break],,[continue]) + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + ],[[ + char *s = malloc(128); + long long x = (long long)1048576 * (long long)1048576; + sprintf(s,"%${hdf5_cv_printf_ll}d",x); + exit(strcmp(s,"1099511627776")); + ]])] + , [break],,[continue]) done]) AC_MSG_RESULT([%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u]) AC_DEFINE_UNQUOTED([PRINTF_LL_WIDTH], ["$hdf5_cv_printf_ll"], [Width for printf() for type `long long' or `__int64', use `ll']) -## ---------------------------------------------------------------------- -## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) -## is supported on this system -## -AC_MSG_CHECKING([Threads support system scope]) -AC_CACHE_VAL([hdf5_cv_system_scope_threads], - [AC_TRY_RUN([ - #if STDC_HEADERS - #include <stdlib.h> - #include <pthread.h> - #endif - - int main(void) - { - pthread_attr_t attribute; - int ret; - - pthread_attr_init(&attribute); - ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); - exit(ret==0 ? 0 : 1); - } - ], [hdf5_cv_system_scope_threads=yes], [hdf5_cv_system_scope_threads=no],)]) - -if test ${hdf5_cv_system_scope_threads} = "yes"; then - AC_DEFINE([SYSTEM_SCOPE_THREADS], [1], - [Define if your system supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) call.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi ## ---------------------------------------------------------------------- ## Turn on debugging by setting compiler flags @@ -2476,23 +2015,7 @@ case "X-$enable_parallel" in AC_MSG_ERROR([unable to link a simple MPI-IO C program])]) if test "X$HDF_FORTRAN" = "Xyes"; then - ## Change to the Fortran 90 language - AC_LANG_PUSH(Fortran) - - ## Try link a simple MPI program. - AC_MSG_CHECKING([whether a simple MPI-IO Fortran program can be linked]) - AC_LINK_IFELSE([ - program main - include 'mpif.h' - integer:: ierr - call mpi_file_open( ierr ) - end], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([unable to link a simple MPI-IO Fortran program])]) - - ## Change to the C language - AC_LANG_POP(Fortran) + PAC_PROG_FC_MPI_CHECK fi ## Set RUNPARALLEL to mpiexec if not set yet. @@ -2599,15 +2122,6 @@ if test -n "$PARALLEL"; then ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$mpe_inc" = "X/usr/include"; then - mpe_inc="" - fi - if test "X$mpe_lib" = "X/usr/lib"; then - mpe_lib="" - fi - if test -n "$mpe_inc"; then saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" @@ -2637,148 +2151,42 @@ if test -n "$PARALLEL"; then fi ## ---------------------------------------------------------------------- -## Turn on internal I/O filters by setting macros in header files -## Internal I/O filters are contained entirely within the library and do -## not depend on external headers or libraries. The shuffle filter is -## an example of an internal filter, while the gzip filter is an example of -## an external filter. Each external filter is controlled with an -## "--with-foo=" configure flag. -## -AC_SUBST([FILTERS]) -AC_SUBST([USE_FILTER_SHUFFLE]) USE_FILTER_SHUFFLE="no" -AC_SUBST([USE_FILTER_FLETCHER32]) USE_FILTER_FLETCHER32="no" -AC_SUBST([USE_FILTER_NBIT]) USE_FILTER_NBIT="no" -AC_SUBST([USE_FILTER_SCALEOFFSET]) USE_FILTER_SCALEOFFSET="no" -AC_MSG_CHECKING([for I/O filters]) -AC_ARG_ENABLE([filters], - [AS_HELP_STRING([--enable-filters=all], - [Turn on all internal I/O filters. One may - also specify a comma-separated list of filters - or the word no. The default is all internal - I/O filters.])], - [FILTERS=$enableval]) - -## Eventually: all_filters="shuffle,foo,bar,baz" -all_filters="shuffle,fletcher32,nbit,scaleoffset" -case "X-$FILTERS" in - X-|X-all) - FILTERS=$all_filters - AC_MSG_RESULT([all ($FILTERS)]) - ;; - X-no|X-none) - AC_MSG_RESULT([none]) - FILTERS="none" - ;; - *) - AC_MSG_RESULT([$FILTERS]) - ;; -esac - -if test -n "$FILTERS"; then - for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do - ## ------------------------------------------------------------------ - ## Have to use separate 'if' construct for each filter, so that - ## autoheader can detect the AC_DEFINE for each one... - ## - if test $filter = "SHUFFLE"; then - AC_DEFINE([HAVE_FILTER_SHUFFLE], [1], - [Define if support for shuffle filter is enabled]) - USE_FILTER_SHUFFLE="yes" - fi - if test $filter = "FLETCHER32"; then - AC_DEFINE([HAVE_FILTER_FLETCHER32], [1], - [Define if support for Fletcher32 checksum is enabled]) - USE_FILTER_FLETCHER32="yes" - fi - if test $filter = "NBIT"; then - AC_DEFINE([HAVE_FILTER_NBIT], [1], - [Define if support for nbit filter is enabled]) - USE_FILTER_NBIT="yes" - fi - if test $filter = "SCALEOFFSET"; then - AC_DEFINE([HAVE_FILTER_SCALEOFFSET], [1], - [Define if support for scaleoffset filter is enabled]) - USE_FILTER_SCALEOFFSET="yes" - fi - done -fi - -## ---------------------------------------------------------------------- -## This is defined only when we're using CodeWarrior, since it has a -## broken "open()" call. -# -if test 1 = 2; then - AC_DEFINE([NO_SHARED_WRITING], [1], - [Define if shared writing must be disabled (CodeWarrior only)]) -fi - -## -------------------------------------------------------------------------- -## Should the Default Virtual File Driver be compiled? +## Check if Direct I/O driver is enabled by --enable-direct-vfd ## -AC_MSG_CHECKING([for Default Virtual File Driver definition]) -AC_ARG_WITH([default-vfd], - [AS_HELP_STRING([--with-default-vfd=driver], - [Specify default file driver - [default=sec2]])],, - withval=sec2) - -if test "X$withval" = "Xsec2"; then - AC_MSG_RESULT([yes]) - default_vfd=yes - vfd_define=H5FD_SEC2 -elif test "X$withval" = "Xstdio"; then - AC_MSG_RESULT([yes]) - default_vfd=yes - vfd_define=H5FD_STDIO -else - AC_MSG_RESULT([no]) - default_vfd=no -fi - -if test "X$default_vfd" = "Xyes"; then - AC_DEFINE_UNQUOTED([DEFAULT_VFD], [$vfd_define], - [Define the default virtual file driver to compile]) -fi +## Check these regardless. If the checks are moved inside the main +## direct VFD block, the output is nested. -## ---------------------------------------------------------------------- -## Check if Direct I/O driver is enabled by --enable-direct-vfd -## +AC_CACHE_VAL([hdf5_cv_direct_io], + AC_CHECK_DECL([O_DIRECT], [hdf5_cv_direct_io=yes], [hdf5_cv_direct_io=no], [[#include <fcntl.h>]])) +AC_CACHE_VAL([hdf5_cv_posix_memalign], + AC_CHECK_FUNC([posix_memalign], [hdf5_cv_posix_memalign=yes], [hdf5_cv_posix_memalign=no])) -AC_MSG_CHECKING([for Direct Virtual File Driver support]) +AC_MSG_CHECKING([if the direct I/O virtual file driver (VFD) is enabled]) AC_ARG_ENABLE([direct-vfd], [AS_HELP_STRING([--enable-direct-vfd], - [Build the Direct I/O Virtual File Driver - [default=yes]])], - [DIRECT_VFD=$enableval], [DIRECT_VFD=yes]) - -if test "$DIRECT_VFD" = "yes"; then - AC_CACHE_VAL([hdf5_cv_direct_io], - [AC_TRY_RUN([ - #include <sys/types.h> - #include <sys/stat.h> - #include <fcntl.h> - int main(void) - { - int fid; - if((fid=open("tst_file", O_CREAT | O_TRUNC | O_DIRECT, 0755))<0) - exit(1); - close(fid); - remove("tst_file"); - exit (0); - }], [AC_TRY_LINK(, [posix_memalign()], [hdf5_cv_direct_io=yes], [hdf5_cv_direct_io=no])], [hdf5_cv_direct_io=no],)]) - - if test ${hdf5_cv_direct_io} = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_DIRECT], [1], - [Define if the direct I/O virtual file driver should be compiled]) - else - AC_MSG_RESULT([no]) - DIRECT_VFD=no - fi + [Build the direct I/O virtual file driver (VFD). + This is based on the POSIX (sec2) VFD and + requires the open() call to take the O_DIRECT + flag. [default=no]])], + [DIRECT_VFD=$enableval], [DIRECT_VFD=no]) + +if test "X$DIRECT_VFD" = "Xyes"; then + if test ${hdf5_cv_direct_io} = "yes" && test ${hdf5_cv_posix_memalign} = "yes" ; then + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_DIRECT], [1], + [Define if the direct I/O virtual file driver (VFD) should be compiled]) + else + AC_MSG_RESULT([no]) + DIRECT_VFD=no + AC_MSG_ERROR([The direct VFD was requested but cannot be built. This is either + due to O_DIRECT not being found in fcntl.h or a lack of + posix_memalign() on your system. Please re-configure without + specifying --enable-direct-vfd.]) + fi else - AC_MSG_RESULT([suppressed]) + AC_MSG_RESULT([no]) fi AM_CONDITIONAL([DIRECT_VFD_CONDITIONAL], [test "X$DIRECT_VFD" = "Xyes"]) @@ -2826,61 +2234,6 @@ else fi ## ---------------------------------------------------------------------- -## Decide whether the data accuracy has higher priority during data -## conversions. If not, some hard conversions will still be prefered even -## though the data may be wrong (for example, some compilers don't -## support denormalized floating values) to maximize speed. -## -AC_MSG_CHECKING([whether data accuracy is guaranteed during data conversions]) -AC_ARG_ENABLE([dconv-accuracy], - [AS_HELP_STRING([--enable-dconv-accuracy], - [if data accuracy is guaranteed during - data conversions [default=yes]])], - [DATA_ACCURACY=$enableval], [DATA_ACCURACY=yes]) - -if test "$DATA_ACCURACY" = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([WANT_DATA_ACCURACY], [1], - [Data accuracy is prefered to speed during data conversions]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## denormalized floating-point values. -## (This flag should be set for all machines, except for the Crays, where -## the cache value is set in it's config file) -## -AC_MSG_CHECKING([if converting denormalized floating-point values is possible]) -AC_CACHE_VAL([hdf5_cv_convert_denormal_float], [hdf5_cv_convert_denormal_float=yes]) - -if test ${hdf5_cv_convert_denormal_float} = "yes"; then - AC_DEFINE([CONVERT_DENORMAL_FLOAT], [1], - [Define if your system can handle converting denormalized floating-point values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## floating-point to long long values. -## (This flag should be _unset_ for all machines, except for Windows, where -## it's set in the custom Windows H5pubconf.h file) -## -AC_MSG_CHECKING([if converting floating-point values to long long is not working]) -AC_CACHE_VAL([hdf5_cv_convert_float_llong_not_works], [hdf5_cv_convert_float_llong_not_works=no]) - -if test ${hdf5_cv_convert_float_llong_not_works} = "yes"; then - AC_DEFINE([HW_FP_TO_LLONG_NOT_WORKS], [1], - [Define if your system can't handle converting floating-point values to long long.]) - AC_MSG_RESULT([true]) -else - AC_MSG_RESULT([false]) -fi - -## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine has window style pathname, ## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). ## (This flag should be _unset_ for all machines, except for Windows, where @@ -2899,515 +2252,6 @@ case "`uname`" in ;; esac -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## long double to integers accurately. This flag should be set "yes" for -## all machines except all SGIs. For SGIs, some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x. -## -AC_MSG_CHECKING([if converting from long double to integers is accurate]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_accurate], [hdf5_cv_ldouble_to_integer_accurate=yes]) -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - AC_DEFINE([LDOUBLE_TO_INTEGER_ACCURATE], [1], - [Define if your system can convert long double to integers accurately.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can do conversion from -## long double to integers regardless of accuracy. This flag should be -## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -## compiler has 'floating exception' when converting 'long double' to all -## integers except 'unsigned long long'. Other HP-UX systems are unknown -## yet. (1/8/05 - SLU) - -AC_MSG_CHECKING([if converting from long double to integers works]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_works=${hdf5_cv_ldouble_to_integer_works=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_works], - [AC_TRY_RUN([ - int main(void) - { - void *align; - long double ld= 9701917572145405952.00L; - unsigned char v1; - short v2; - unsigned int v3; - int ret = 0; - - align = (void*)malloc(sizeof(long double)); - memcpy(align, &ld, sizeof(long double)); - - /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting - *from 'long double' to integers*/ - v1=(unsigned char)(*((long double*)align)); - v2=(short)(*((long double*)align)); - v3=(unsigned int)(*((long double*)align)); - - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_integer_works=yes], [hdf5_cv_ldouble_to_integer_works=no],)]) -fi - -if test ${hdf5_cv_ldouble_to_integer_works} = "yes"; then - AC_DEFINE([LDOUBLE_TO_INTEGER_WORKS], [1], - [Define if your system can convert from long double to integer values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## integers to long double. (This flag should be set "yes" for all -## machines except all SGIs, where some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x) -## -AC_MSG_CHECKING([if accurately converting from integers to long double]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_integer_to_ldouble_accurate], [hdf5_cv_integer_to_ldouble_accurate=yes]) -fi - -if test ${hdf5_cv_integer_to_ldouble_accurate} = "yes"; then - AC_DEFINE([INTEGER_TO_LDOUBLE_ACCURATE], [1], - [Define if your system can accurately convert from integers to long double values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned long' to 'float' values. -## (This flag should be set for all machines, except for Pathscale compiler -## on Sandia's Linux machine where the compiler interprets 'unsigned long' -## values as negative when the first bit of 'unsigned long' is on during -## the conversion to float.) -## -AC_MSG_CHECKING([if accurately converting unsigned long to float values]) - -AC_CACHE_VAL([hdf5_cv_ulong_to_float_accurate], - [AC_TRY_RUN([ - int main(void) - { - int ret = 0; - unsigned long l1; - unsigned long l2; - unsigned long l3; - float f1; - float f2; - float f3; - - - if(sizeof(unsigned long)==8) { - l1 = 0xffffffffffffffffUL; - l2 = 0xffffffffffff0000UL; - l3 = 0xf000000000000000UL; - - f1 = (float)l1; - f2 = (float)l2; - f3 = (float)l3; - - if((f1 < 0) || (f2 < 0) || (f3 < 0)) - ret = 1; - } - -done: - exit(ret); - } - ], [hdf5_cv_ulong_to_float_accurate=yes], [hdf5_cv_ulong_to_float_accurate=no],)]) - -if test ${hdf5_cv_ulong_to_float_accurate} = "yes"; then - AC_DEFINE([ULONG_TO_FLOAT_ACCURATE], [1], - [Define if your system accurately converting unsigned long to float values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned (long) long' values to 'float' and 'double' values. -## (This flag should be set for all machines, except for the SGIs, where -## the cache value is set in the config/irix6.x config file) and Solaris -## 64-bit machines, where the short program below tests if round-up is -## correctly handled. -## -AC_MSG_CHECKING([if accurately converting unsigned long long to floating-point values]) - -if test ${host_os_novers} = "solaris2.x"; then - AC_CACHE_VAL([hdf5_cv_ulong_to_fp_bottom_bit_accurate], - [AC_TRY_RUN([ - int main(void) - { - unsigned long l1; - unsigned long l2; - unsigned long l3; - unsigned long l4; - unsigned long long ld1; - unsigned long long ld2; - unsigned long long ld3; - unsigned long long ld4; - double d1, d2, d3, d4; - unsigned char s[8]; - int ret = 0; - - if(sizeof(unsigned long)==8) { - l1 = 0xf000000000000b00UL; /*Round-down case*/ - l2 = 0xf000000000000401UL; /*Round-up case*/ - l3 = 0xf000000000000400UL; /*Round-down case*/ - l4 = 0xf000000000000c00UL; /*Round-up case*/ - - d1 = (double)l1; - d2 = (double)l2; - d3 = (double)l3; - d4 = (double)l4; - } else if(sizeof(unsigned long long)==8) { - ld1 = 0xf000000000000b00ULL; /*Round-down case*/ - ld2 = 0xf000000000000401ULL; /*Round-up case*/ - ld3 = 0xf000000000000400ULL; /*Round-down case*/ - ld4 = 0xf000000000000c00ULL; /*Round-up case*/ - - d1 = (double)ld1; - d2 = (double)ld2; - d3 = (double)ld3; - d4 = (double)ld4; - } else { - ret = 1; - goto done; - } - - memcpy(s, &d1, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d2, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d3, 8); - if(s[7]!=0) - ret = 1; - - memcpy(s, &d4, 8); - if(s[7]!=2) - ret = 1; - -done: - exit(ret); - } - ], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=no],)]) -else - AC_CACHE_VAL([hdf5_cv_ulong_to_fp_bottom_bit_accurate], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes]) -fi - -if test ${hdf5_cv_ulong_to_fp_bottom_bit_accurate} = "yes"; then - AC_DEFINE([ULONG_TO_FP_BOTTOM_BIT_ACCURATE], [1], - [Define if your system can accurately convert unsigned (long) long values to floating-point values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float' or 'double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for PGI compiler -## where round-up happens when the fraction of float-point value is greater -## than 0.5. -## -AC_MSG_CHECKING([if accurately roundup converting floating-point to unsigned long long values]) - -AC_CACHE_VAL([hdf5_cv_fp_to_ullong_accurate], - [AC_TRY_RUN([ - int main(void) - { - float f = 111.60f; - double d = 222.55L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d; - int ret = 0; - - if(l1 == 112) - ret = 1; - if(l2 == 223) - ret = 1; - -done: - exit(ret); - } - ], [hdf5_cv_fp_to_ullong_accurate=yes], [hdf5_cv_fp_to_ullong_accurate=no],)]) - -if test ${hdf5_cv_fp_to_ullong_accurate} = "yes"; then - AC_DEFINE([FP_TO_ULLONG_ACCURATE], [1], - [Define if your system roundup accurately converting floating-point to unsigned long long values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float', 'double' or 'long double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for HP-UX machines -## where the maximal number for unsigned long long is 0x7fffffffffffffff -## during conversion. -## -AC_MSG_CHECKING([if right maximum converting floating-point to unsigned long long values]) - -AC_CACHE_VAL([hdf5_cv_fp_to_ullong_right_maximum], - [AC_TRY_RUN([ - int main(void) - { - float f = 9701917572145405952.00f; - double d1 = 9701917572145405952.00L; - long double d2 = 9701917572145405952.00L; - double d3 = 2e40L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3 = (unsigned long long)d2; - unsigned long long l4; - unsigned long long l5 = 0x7fffffffffffffffULL; - int ret = 0; - - if(l1 <= l5 || l2 <= l5 || l3 <= l5) - ret = 1; - - l4 = (unsigned long long)d3; - if(l4 <= l5) - ret = 1; - -done: - exit(ret); - } - ], [hdf5_cv_fp_to_ullong_right_maximum=yes], [hdf5_cv_fp_to_ullong_right_maximum=no],)]) - -if test ${hdf5_cv_fp_to_ullong_right_maximum} = "yes"; then - AC_DEFINE([FP_TO_ULLONG_RIGHT_MAXIMUM], [1], - [Define if your system has right maximum convert floating-point to unsigned long long values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to 'unsigned int' values. (This flag should be set for -## all machines, except for some Intel compilers on some Linux.) -## -AC_MSG_CHECKING([if correctly converting long double to unsigned int values]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_uint_accurate=${hdf5_cv_ldouble_to_uint_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_uint_accurate], - [AC_TRY_RUN([ - int main(void) - { - long double ld = 2733248032.9183987530L; - unsigned int i; - int ret = 0; - - i = (unsigned int)ld; - if(i!=2733248032 && i!=2733248031 && i!=2733248033) - ret = 1; - - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_uint_accurate=yes], [hdf5_cv_ldouble_to_uint_accurate=no],)]) -fi - -if test ${hdf5_cv_ldouble_to_uint_accurate} = "yes"; then - AC_DEFINE([LDOUBLE_TO_UINT_ACCURATE], [1], - [Define if your system can convert long double to unsigned int values correctly.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'unsigned long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -AC_MSG_CHECKING([if compiling unsigned long long to floating-point typecasts work]) -AC_CACHE_VAL([hdf5_cv_ullong_to_fp_cast_works], [hdf5_cv_ullong_to_fp_cast_works=yes]) - -if test ${hdf5_cv_ullong_to_fp_cast_works} = "yes"; then - AC_DEFINE([ULLONG_TO_FP_CAST_WORKS], [1], - [Define if your system can compile unsigned long long to floating-point casts.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -AC_MSG_CHECKING([if compiling long long to floating-point typecasts work]) -AC_CACHE_VAL([hdf5_cv_llong_to_fp_cast_works], [hdf5_cv_llong_to_fp_cast_works=yes]) - -if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then - AC_DEFINE([LLONG_TO_FP_CAST_WORKS], [1], - [Define if your system can compile long long to floating-point casts.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can convert from -## 'unsigned long long' to 'long double' without precision loss. -## (This flag should be set for all machines, except for FreeBSD(sleipnir) -## where the last 2 bytes of mantissa are lost when compiler tries to do -## the conversion, and Cygwin where compiler doesn't do rounding correctly.) -## -AC_MSG_CHECKING([if converting unsigned long long to long double with precision]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ullong_to_ldouble_precision=${hdf5_cv_ullong_to_ldouble_precision=no} -else - AC_CACHE_VAL([hdf5_cv_ullong_to_ldouble_precision], - [AC_TRY_RUN([ - #include <stdlib.h> - #include <string.h> - - int main(void) - { - /* General variables */ - int endian; - int tst_value = 1; - int ret = 0; - - /* For FreeBSD */ - unsigned long long l = 0xa601e80bda85fcefULL; - long double ld; - unsigned char *c1, *c2; - size_t size; - - /* For Cygwin */ - unsigned long long l_cyg = 0xfffffffffffffff0ULL; - long double ld_cyg; - unsigned char *c2_cyg; - size_t size_cyg; - - - /* Determine this system's endianess */ - c1 = (unsigned char*)calloc(1, sizeof(int)); - memcpy((void*)c1, &tst_value, sizeof(int)); - if(c1[0]==1) - endian = 0; /* little endian */ - else - endian = 1; /* big endian */ - - /* For FreeBSD */ - size = sizeof(long double); - memset(&ld, 0, size); - ld = (long double)l; - - c2 = (unsigned char*)calloc(1, size); - memcpy((void*)c2, &ld, size); - - /* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel - * architecture(sleipnir) where it happens. */ - /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/ - if(endian==0 && c2[0]==0) { /*little endian*/ - ret = 1; - goto done; - } - - /* For Cygwin */ - size_cyg = sizeof(long double); - memset(&ld_cyg, 0, size); - ld_cyg = (long double)l_cyg; - - c2_cyg = (unsigned char*)calloc(1, size_cyg); - memcpy((void*)c2_cyg, &ld_cyg, size_cyg); - - /* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin - * where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ..., - * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000 - * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ..., - * 0x0000403efffffffffffff000 ... - */ - if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0) - ret = 1; - - done: - if(c1) - free(c1); - if(c2) - free(c2); - if(c2_cyg) - free(c2_cyg); - exit(ret); - } - ], [hdf5_cv_ullong_to_ldouble_precision=yes], [hdf5_cv_ullong_to_ldouble_precision=no],)]) -fi - -if test ${hdf5_cv_ullong_to_ldouble_precision} = "yes"; then - AC_DEFINE([ULLONG_TO_LDOUBLE_PRECISION], [1], - [Define if your system can convert unsigned long long to long double with correct precision.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle overflow converting -## all floating-point to all integer types. -## (This flag should be set for all machines, except for Cray X1 where -## floating exception is generated when the floating-point value is greater -## than the maximal integer value). -## -AC_MSG_CHECKING([if overflows normally converting floating-point to integer values]) - -AC_CACHE_VAL([hdf5_cv_fp_to_integer_overflow_works], - [AC_TRY_RUN([ - int main(void) - { - float f = 2147483648.0f; - int i; - - i = (int)f; - -done: - exit(0); - } - ], [hdf5_cv_fp_to_integer_overflow_works=yes], [hdf5_cv_fp_to_integer_overflow_works=no],)]) - -if test ${hdf5_cv_fp_to_integer_overflow_works} = "yes"; then - AC_DEFINE([FP_TO_INTEGER_OVERFLOW_WORKS], [1], - [Define if your system can handle overflow converting floating-point to integer values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - ## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine is using a special algorithm to convert ## 'long double' to '(unsigned) long' values. (This flag should only be set for @@ -3423,61 +2267,60 @@ if test ${ac_cv_sizeof_long_double} = 0; then hdf5_cv_ldouble_to_long_special=${hdf5_cv_ldouble_to_long_special=no} else AC_CACHE_VAL([hdf5_cv_ldouble_to_long_special], - [AC_TRY_RUN([ - int main(void) - { - long double ld = 20041683600089727.779961L; - long ll; - unsigned long ull; - unsigned char s[16]; - unsigned char s2[8]; - int ret = 1; - - if(sizeof(long double) == 16 && sizeof(long) == 8) { - /*make sure the long double type has 16 bytes in size and - * 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /* Assign the hexadecimal value of long double type. */ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - - ll = (long)ld; - memcpy(s2, &ll, 8); - - /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 - * and gets wrong value 20041683600089730 on the IBM Power6 Linux. - * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f - * and gets the correct value 20041683600089727. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; - - ull = (unsigned long)ld; - memcpy(s2, &ull, 8); - - /* The unsigned long is the same as signed long. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; - } - } - - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_long_special=yes], [hdf5_cv_ldouble_to_long_special=no],)]) + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include <string.h> + ],[[ + long double ld = 20041683600089727.779961L; + long ll; + unsigned long ull; + unsigned char s[16]; + unsigned char s2[8]; + int ret = 1; + + if(sizeof(long double) == 16 && sizeof(long) == 8) { + /*make sure the long double type has 16 bytes in size and + * 11 bits of exponent. If it is, + *the bit sequence should be like below. It's not + *a decent way to check but this info isn't available. */ + memcpy(s, &ld, 16); + if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && + s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && + s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { + + /* Assign the hexadecimal value of long double type. */ + s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; + s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; + s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; + s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; + + memcpy(&ld, s, 16); + + ll = (long)ld; + memcpy(s2, &ll, 8); + + /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 + * and gets wrong value 20041683600089730 on the IBM Power6 Linux. + * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f + * and gets the correct value 20041683600089727. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + + ull = (unsigned long)ld; + memcpy(s2, &ull, 8); + + /* The unsigned long is the same as signed long. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + } + } + exit(ret); + ]])] + , [hdf5_cv_ldouble_to_long_special=yes], [hdf5_cv_ldouble_to_long_special=no],)]) fi if test ${hdf5_cv_ldouble_to_long_special} = "yes"; then @@ -3502,63 +2345,63 @@ if test ${ac_cv_sizeof_long_double} = 0; then hdf5_cv_long_to_ldouble_special=${hdf5_cv_long_to_ldouble_special=no} else AC_CACHE_VAL([hdf5_cv_long_to_ldouble_special], - [AC_TRY_RUN([ - int main(void) - { - long double ld; - long ll; - unsigned long ull; - unsigned char s[16]; - int flag=0, ret=1; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long)==8) { - ll = 0x003fffffffffffffL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /* The library converts the value to 0x434fffffffffffff8000000000000000. - * In decimal it is 18014398509481982.000000, one value short of the original. - * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - if(flag==1 && sizeof(unsigned long)==8) { - ull = 0xffffffffffffffffUL; - ld = (long double)ull; - memcpy(s, &ld, 16); - /* Use a different value from signed long to test. The problem is the same - * for both long and unsigned long. The value is 18446744073709551615. - * The library converts the value to 0x43effffffffffffffe000000000000000. - * In decimal it's 18446744073709548544.000000, very different from the original. - * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - done: - exit(ret); - } - ], [hdf5_cv_long_to_ldouble_special=yes], [hdf5_cv_long_to_ldouble_special=no],)]) + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include <string.h> + ],[[ + long double ld; + long ll; + unsigned long ull; + unsigned char s[16]; + int flag=0, ret=1; + + /*Determine if long double has 16 byte in size, 11 bit exponent, and + *the bias is 0x3ff */ + if(sizeof(long double) == 16) { + ld = 1.0L; + memcpy(s, &ld, 16); + if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) + flag = 1; + } + + if(flag==1 && sizeof(long)==8) { + ll = 0x003fffffffffffffL; + ld = (long double)ll; + memcpy(s, &ld, 16); + /* The library converts the value to 0x434fffffffffffff8000000000000000. + * In decimal it is 18014398509481982.000000, one value short of the original. + * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + if(flag==1 && sizeof(unsigned long)==8) { + ull = 0xffffffffffffffffUL; + ld = (long double)ull; + memcpy(s, &ld, 16); + /* Use a different value from signed long to test. The problem is the same + * for both long and unsigned long. The value is 18446744073709551615. + * The library converts the value to 0x43effffffffffffffe000000000000000. + * In decimal it's 18446744073709548544.000000, very different from the original. + * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + exit(ret); + ]])] + , [hdf5_cv_long_to_ldouble_special=yes], [hdf5_cv_long_to_ldouble_special=no],)]) fi if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then @@ -3570,154 +2413,8 @@ else fi ## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to '(unsigned) long long' values. (This flag should be set for -## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -## start to go wrong on these two machines. Adjusting it higher to -## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -## values wildly wrong. This test detects this wrong behavior and disable the test. -## -AC_MSG_CHECKING([if correctly converting long double to (unsigned) long long values]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_llong_accurate=${hdf5_cv_ldouble_to_llong_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_llong_accurate], - [AC_TRY_RUN([ - int main(void) - { - long double ld = 20041683600089727.779961L; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int ret = 0; - - if(sizeof(long double) == 16) { - /*make sure the long double type is the same as the failing type - *which has 16 bytes in size and 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /*slightly adjust the bit sequence (s[8]=0xdf). The converted - *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - ll = (long long)ld; - ull = (unsigned long long)ld; - - if(ll != 20041683600089728 || ull != 20041683600089728) - ret = 1; - } - } - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_llong_accurate=yes], [hdf5_cv_ldouble_to_llong_accurate=no],)]) -fi - -if test ${hdf5_cv_ldouble_to_llong_accurate} = "yes"; then - AC_DEFINE([LDOUBLE_TO_LLONG_ACCURATE], [1], - [Define if your system can convert long double to (unsigned) long long values correctly.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## '(unsigned) long long' to 'long double' values. (This flag should be set for -## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -## as big as they should be. -## -AC_MSG_CHECKING([if correctly converting (unsigned) long long to long double values]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_llong_to_ldouble_correct=${hdf5_cv_llong_to_ldouble_correct=no} -else - AC_CACHE_VAL([hdf5_cv_llong_to_ldouble_correct], - [AC_TRY_RUN([ - int main(void) - { - long double ld; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int flag=0, ret=0; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long long)==8) { - ll = 0x01ffffffffffffffLL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /*Check if the bit sequence is as supposed to be*/ - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - if(flag==1 && sizeof(unsigned long long)==8) { - ull = 0x01ffffffffffffffULL; - ld = (long double)ull; - memcpy(s, &ld, 16); - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - done: - exit(ret); - } - ], [hdf5_cv_llong_to_ldouble_correct=yes], [hdf5_cv_llong_to_ldouble_correct=no],)]) -fi - -if test ${hdf5_cv_llong_to_ldouble_correct} = "yes"; then - AC_DEFINE([LLONG_TO_LDOUBLE_CORRECT], [1], - [Define if your system can convert (unsigned) long long to long double values correctly.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine generates bad code -## for the H5VM_log2_gen() routine in src/H5VMprivate.h -## (This flag should be set to no for all machines, except for SGI IRIX64, -## where the cache value is set to yes in it's config file) -## -AC_MSG_CHECKING([if bad code for log2 routine is generated]) -AC_CACHE_VAL([hdf5_cv_bad_log2_code_generated], [hdf5_cv_bad_log2_code_generated=no]) - -if test ${hdf5_cv_bad_log2_code_generated} = "yes"; then - AC_DEFINE([BAD_LOG2_CODE_GENERATED], [1], - [Define if your system generates wrong code for log2 routine.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- ## Set some variables for general configuration information to be saved -## and installed with the libraries. +## and installed with the libraries (used to generate libhdf5.settings). ## ## HDF5 version from the first line of the README.txt file. @@ -3828,82 +2525,6 @@ fi AC_SUBST([ROOT]) ROOT="`$pwd`" ## ---------------------------------------------------------------------- -## Move any compiler-specific libraries into the main LIBS varaible. -## -LIBS="$DEFAULT_LIBS $LIBS" - -## ---------------------------------------------------------------------- -## Determine the runtime libraries we may need to include in the -## libtools command so that executables will find the correct dynamic -## libraries. -## -AC_SUBST([DYNAMIC_DIRS]) DYNAMIC_DIRS="" - -if test -n "$AM_LDFLAGS $LDFLAGS"; then - for d in $AM_LDFLAGS $LDFLAGS ; do - case "$d" in - -L*) - d="`echo $d | sed -e 's/-L//g'`" - case "$d" in - .*) - ## If the path isn't absolute, make it so by - ## prepending the ROOT directory to it. - d=${ROOT}/$d - ;; - esac - DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" - ;; - esac - done -fi - -if test -n "$AM_CPPFLAGS"; then - TEMP_CPPFLAGS="" - for d in $AM_CPPFLAGS ; do - case "$d" in - -I.*) - ## If the path isn't absolute, make it so by prepending - ## the ROOT directory to it. - d="`echo $d | sed -e 's/-I//g'`" - d="-I${ROOT}/${d}" - ;; - esac - TEMP_CPPFLAGS="$d $TEMP_CPPFLAGS" - done - AM_CPPFLAGS=$TEMP_CPPFLAGS -fi - -## ---------------------------------------------------------------------- -## Check if they would like the High Level library compiled -## - -AC_SUBST(HL) HL="" -## name of fortran folder inside "hl", if FORTRAN compile is requested -AC_SUBST(HL_FOR) HL_FOR="" -AC_MSG_CHECKING([if high level library is enabled]) -AC_ARG_ENABLE([hl], - [AS_HELP_STRING([--enable-hl], - [Enable the high level library [default=yes]])], - [HDF5_HL=$enableval], - [HDF5_HL=yes]) - -if test "X$HDF5_HL" = "Xyes"; then - echo "yes" - HL="hl" - AC_DEFINE([INCLUDE_HL], [1], - [Define if HDF5's high-level library headers should be included in hdf5.h]) - -## Check if Fortran's default real is double precision. If it is and HL is being built then configure -## should fail due to bug HDFFV-889. - if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then - AC_MSG_ERROR([Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use configure option --disable-hl.]) - fi -else - echo "no" -fi - - -## ---------------------------------------------------------------------- ## Some programs shouldn't be built by default (e.g., programs to generate ## data files used by tests, some optional tests). ## Check if they want such programs built anyway. @@ -4109,18 +2730,8 @@ AM_CONDITIONAL([BUILD_HDF5_HL_CONDITIONAL], [test "X$HDF5_HL" = "Xyes"]) ## The directory search list AC_SUBST([SEARCH]) SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' -cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' -SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH -## We don't need to say when we're entering directories if we're using -## GNU make because make does it for us. -if test "X$GMAKE" = "Xyes"; then - AC_SUBST([SETX]) SETX=":" -else - AC_SUBST([SETX]) SETX="set -x" -fi - ## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod @@ -4156,23 +2767,6 @@ touch ./config/stamp2 ## Finally the makefiles test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 -## Post processing to patch up some deficiencies in libtool -case $host_os in - linux* | freebsd* ) - ## If gcc is not used, need to set $wl to use "-Wl," - if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then - : using gcc - else - echo 'fixing $wl in' $ofile -ed - $ofile <<EOF 2> /dev/null -g/^wl=""/s//wl="-Wl,"/ -w -q -EOF - fi - ;; -esac - ## Are we compiling static libraries, shared libraries, or both? This ## is only used for the libhdf5.settings file. We can't just look at ## $enable_static and $enable_shared because if they're yes the ltconfig diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 318417d..f0370cf 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_EXAMPLES) #----------------------------------------------------------------------------- @@ -40,7 +40,7 @@ set (examples foreach (example ${examples}) add_executable (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c) TARGET_NAMING (${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${example} " " " ") + TARGET_C_PROPERTIES (${example} ${LIB_TYPE} " " " ") target_link_libraries (${example} ${HDF5_LIB_TARGET}) set_target_properties (${example} PROPERTIES FOLDER examples) endforeach (example ${examples}) @@ -48,7 +48,7 @@ endforeach (example ${examples}) if (H5_HAVE_PARALLEL) add_executable (ph5example ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c) TARGET_NAMING (ph5example ${LIB_TYPE}) - TARGET_C_PROPERTIES (ph5example " " " ") + TARGET_C_PROPERTIES (ph5example ${LIB_TYPE} " " " ") target_link_libraries (ph5example ${HDF5_LIB_TARGET}) set_target_properties (ph5example PROPERTIES FOLDER examples) endif (H5_HAVE_PARALLEL) diff --git a/examples/Makefile.in b/examples/Makefile.in index 0ea9def..e3784cd 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -107,7 +107,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = $(TEST_SCRIPT) subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -352,7 +353,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -384,7 +384,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -403,17 +402,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -476,7 +472,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -491,10 +486,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -608,8 +599,9 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog $(EXTLINK_DIRS) *.h5 +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 $(EXTLINK_DIRS) \ + *.h5 @BUILD_PARALLEL_CONDITIONAL_TRUE@EXAMPLE_PROG_PARA = ph5example INSTALL_SCRIPT_FILES = run-c-ex.sh INSTALL_TOP_SCRIPT_FILES = run-all-ex.sh diff --git a/examples/run-c-ex.sh.in b/examples/run-c-ex.sh.in index 142d02f..1365e92 100644 --- a/examples/run-c-ex.sh.in +++ b/examples/run-c-ex.sh.in @@ -33,7 +33,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../}" +prefix="${prefix:-@prefix@}" PARALLEL=@PARALLEL@ # Am I in parallel mode? AR="@AR@" RANLIB="@RANLIB@" diff --git a/fortran/CMakeLists.txt b/fortran/CMakeLists.txt index 3fe9e7d..c725047 100644 --- a/fortran/CMakeLists.txt +++ b/fortran/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_F90 C CXX Fortran) if (H5_HAVE_PARALLEL) diff --git a/fortran/Makefile.in b/fortran/Makefile.in index 1bc48c0..55ede05 100644 --- a/fortran/Makefile.in +++ b/fortran/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = fortran ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -408,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -440,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -459,17 +458,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -532,7 +528,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -547,10 +542,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -664,8 +655,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 @BUILD_PARALLEL_CONDITIONAL_TRUE@TESTPARALLEL_DIR = testpar # Subdirectories in build order, not including examples directory diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt index 322ae35..2bf0bf6 100644 --- a/fortran/examples/CMakeLists.txt +++ b/fortran/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_F90_EXAMPLES C CXX Fortran) # -------------------------------------------------------------------- # Notes: When creating examples they should be prefixed @@ -8,7 +8,7 @@ PROJECT (HDF5_F90_EXAMPLES C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Define Sources @@ -41,57 +41,52 @@ set (F2003_examples foreach (example ${examples}) add_executable (f90_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) TARGET_NAMING (f90_ex_${example} ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (f90_ex_${example} " " " ") - if (WIN32) - set_property (TARGET f90_ex_${example} - APPEND PROPERTY COMPILE_DEFINITIONS - HDF5F90_WINDOWS - ) - endif (WIN32) + TARGET_FORTRAN_PROPERTIES (f90_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (f90_ex_${example} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) - set_target_properties (f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f90_ex_${example} PROPERTIES FOLDER examples/fortran) + target_include_directories (f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f90_ex_${example} PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endforeach (example ${examples}) if (HDF5_ENABLE_F2003) foreach (example ${F2003_examples}) add_executable (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) TARGET_NAMING (f03_ex_${example} ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (f03_ex_${example} " " " ") - if (WIN32) - set_property (TARGET f03_ex_${example} - APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS - ) - endif (WIN32) + TARGET_FORTRAN_PROPERTIES (f03_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (f03_ex_${example} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) - set_target_properties (f03_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f03_ex_${example} PROPERTIES FOLDER examples/fortran03) + target_include_directories (f03_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f03_ex_${example} PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran03 + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endforeach (example ${F2003_examples}) endif (HDF5_ENABLE_F2003) if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) add_executable (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90) TARGET_NAMING (f90_ex_ph5example ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example " " " ") - if (WIN32) - set_property (TARGET f90_ex_ph5example - APPEND PROPERTY COMPILE_DEFINITIONS - HDF5F90_WINDOWS - ) - endif (WIN32) + TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example ${LIB_TYPE} " " " ") target_link_libraries (f90_ex_ph5example ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ${MPI_Fortran_LIBRARIES} ) - set_target_properties (f90_ex_ph5example PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f90_ex_ph5example PROPERTIES FOLDER examples/fortran) + target_include_directories (f90_ex_ph5example PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f90_ex_ph5example PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) if (BUILD_TESTING) diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index b6998e6..dd2fb46 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -115,7 +115,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = $(TEST_SCRIPT) subdir = fortran/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -360,7 +361,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -392,7 +392,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -411,17 +410,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -484,7 +480,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -499,10 +494,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -616,8 +607,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 # Compile parallel fortran examples only if parallel is enabled @BUILD_PARALLEL_CONDITIONAL_TRUE@EXAMPLE_PROG_PARA = ph5example diff --git a/fortran/examples/run-fortran-ex.sh.in b/fortran/examples/run-fortran-ex.sh.in index ead7361..a4d4550 100644 --- a/fortran/examples/run-fortran-ex.sh.in +++ b/fortran/examples/run-fortran-ex.sh.in @@ -34,7 +34,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../}" +prefix="${prefix:-@prefix@}" PARALLEL=@PARALLEL@ # Am I in parallel mode? AR="@AR@" RANLIB="@RANLIB@" diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 06b9bed..c015072 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_F90_SRC C CXX Fortran) #----------------------------------------------------------------------------- @@ -11,6 +11,8 @@ if (WIN32) endif (NOT H5_HAVE_PARALLEL) if (NOT HDF5_ENABLE_F2003) set (H5_NOF03EXP ";") + else (NOT HDF5_ENABLE_F2003) + set (H5_F03EXP ";") endif (NOT HDF5_ENABLE_F2003) configure_file (${HDF5_F90_SRC_SOURCE_DIR}/hdf5_fortrandll.def.in ${HDF5_F90_SRC_BINARY_DIR}/hdf5_fortrandll.def @ONLY) endif (MSVC) @@ -52,7 +54,10 @@ if (WIN32 AND MSVC) LINK_FLAGS "/SUBSYSTEM:CONSOLE" ) endif (WIN32 AND MSVC) -set_target_properties (H5test_FortranHavekind PROPERTIES LINKER_LANGUAGE Fortran) +set_target_properties (H5test_FortranHavekind PROPERTIES + LINKER_LANGUAGE Fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) set (CMD $<TARGET_FILE:H5test_FortranHavekind>) add_custom_command ( @@ -140,7 +145,7 @@ set (f90CStub_C_HDRS ) add_library (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} ${f90CStub_C_SRCS} ${f90CStub_C_HDRS}) -TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_C_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_NAME} ${LIB_TYPE}) @@ -245,8 +250,7 @@ if (WIN32) HDF5F90_WINDOWS ) endif (WIN32) -TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) +TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) target_link_libraries (${HDF5_F90_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET}) if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) target_link_libraries (${HDF5_F90_LIB_TARGET} ${MPI_Fortran_LIBRARIES}) @@ -257,6 +261,7 @@ set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES FOLDER libraries/fortran LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -276,100 +281,50 @@ install ( ) if (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5fortran_types.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/hdf5.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5global.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5g.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5i.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5s.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5z.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5_dble_interface.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - if (H5_TEST_KIND_NAME) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/${H5_TEST_KIND_NAME}.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - endif (H5_TEST_KIND_NAME) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}) else (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5fortran_types.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/hdf5.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5global.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5g.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5i.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5s.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5z.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5_dble_interface.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - if (H5_TEST_KIND_NAME) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/${H5_TEST_KIND_NAME}.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - endif (H5_TEST_KIND_NAME) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}) endif (WIN32) +set (mod_files + ${MOD_BUILD_DIR}/h5fortran_types.mod + ${MOD_BUILD_DIR}/hdf5.mod + ${MOD_BUILD_DIR}/h5global.mod + ${MOD_BUILD_DIR}/h5a.mod + ${MOD_BUILD_DIR}/h5d.mod + ${MOD_BUILD_DIR}/h5e.mod + ${MOD_BUILD_DIR}/h5f.mod + ${MOD_BUILD_DIR}/h5g.mod + ${MOD_BUILD_DIR}/h5i.mod + ${MOD_BUILD_DIR}/h5l.mod + ${MOD_BUILD_DIR}/h5lib.mod + ${MOD_BUILD_DIR}/h5o.mod + ${MOD_BUILD_DIR}/h5p.mod + ${MOD_BUILD_DIR}/h5r.mod + ${MOD_BUILD_DIR}/h5s.mod + ${MOD_BUILD_DIR}/h5t.mod + ${MOD_BUILD_DIR}/h5z.mod + ${MOD_BUILD_DIR}/h5a_provisional.mod + ${MOD_BUILD_DIR}/h5d_provisional.mod + ${MOD_BUILD_DIR}/h5e_provisional.mod + ${MOD_BUILD_DIR}/h5f_provisional.mod + ${MOD_BUILD_DIR}/h5l_provisional.mod + ${MOD_BUILD_DIR}/h5lib_provisional.mod + ${MOD_BUILD_DIR}/h5o_provisional.mod + ${MOD_BUILD_DIR}/h5p_provisional.mod + ${MOD_BUILD_DIR}/h5r_provisional.mod + ${MOD_BUILD_DIR}/h5t_provisional.mod + ${MOD_BUILD_DIR}/h5_dble_interface.mod +) +install ( + FILES + ${mod_files} + DESTINATION + ${HDF5_INSTALL_INCLUDE_DIR} + COMPONENT + fortheaders +) + #----------------------------------------------------------------------------- # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c index 8291320..240fbc3 100644 --- a/fortran/src/H5Af.c +++ b/fortran/src/H5Af.c @@ -1652,7 +1652,7 @@ nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder, *corder = (int_f)ainfo.corder; *cset = (int_f)ainfo.cset; - *data_size = (hsize_t)ainfo.data_size; + *data_size = (hsize_t_f)ainfo.data_size; done: return ret_value; @@ -1728,7 +1728,7 @@ nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, *corder_valid = 1; *corder = (int_f)ainfo.corder; *cset = (int_f)ainfo.cset; - *data_size = (hsize_t)ainfo.data_size; + *data_size = (hsize_t_f)ainfo.data_size; done: if(c_obj_name) @@ -1797,7 +1797,7 @@ nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, *corder_valid = 1; *corder = (int_f)ainfo.corder; *cset = (int_f)ainfo.cset; - *data_size = (hsize_t)ainfo.data_size; + *data_size = (hsize_t_f)ainfo.data_size; done: if(c_obj_name) diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c index ecfa946..f4082a9 100644 --- a/fortran/src/H5Df.c +++ b/fortran/src/H5Df.c @@ -621,7 +621,7 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ hid_t c_file_space_id; hid_t c_xfer_prp; hobj_ref_t *buf_c; - int i, n; + unsigned int i, n; /* * Define transfer property @@ -631,8 +631,8 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ /* * Allocate temporary buffer and copy references from Fortran. */ - n = (int)*dims; - buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n)); + n = (unsigned int)*dims; + buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*n); if ( buf_c != NULL ) { for (i = 0; i < n; i++) HDmemcpy(&buf_c[i], &buf[i], sizeof(haddr_t)); @@ -688,9 +688,9 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ hid_t c_file_space_id; hid_t c_xfer_prp; hdset_reg_ref_t *buf_c = NULL; - int i, n; + unsigned int i, n; - n = (int)*dims; + n = (unsigned int)*dims; /* * Define transfer property */ @@ -699,7 +699,7 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ /* * Allocate temporary buffer and copy references from Fortran. */ - buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(n)); + buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*n); if ( buf_c != NULL ) { for (i = 0; i < n; i++) { HDmemcpy(&buf_c[i], buf, H5R_DSET_REG_REF_BUF_SIZE); @@ -1494,7 +1494,7 @@ nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims) * Reverse dimensions due to C-FORTRAN storage order. */ for(i = 0; i < rank; i++) - c_dims[i] = dims[rank - i - 1]; + c_dims[i] = (hsize_t)dims[rank - i - 1]; status = H5Dset_extent((hid_t)*dset_id, c_dims); @@ -1642,7 +1642,7 @@ nh5dwrite_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_ hsize_t num_elem; max_len = (size_t)dims[0]; - num_elem = dims[1]; + num_elem = (hsize_t)dims[1]; c_dset_id = (hid_t)*dset_id; c_mem_type_id = (hid_t)*mem_type_id; @@ -1711,7 +1711,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_s size_t max_len; hvl_t *c_buf; - hssize_t i; + hsize_t i; hssize_t num_elem; c_dset_id = (hid_t)*dset_id; @@ -1722,7 +1722,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_s max_len = (size_t)dims[0]; num_elem = H5Sget_select_npoints(c_mem_space_id); - if(num_elem != dims[1]) return ret_value; + if(num_elem != (hssize_t)dims[1]) return ret_value; c_buf = (hvl_t *)HDmalloc((size_t)num_elem * sizeof(hvl_t)); if (c_buf == NULL) return ret_value; @@ -1731,7 +1731,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_s */ status = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, c_buf); if ( status < 0 ) goto DONE; - for (i=0; i < num_elem; i++) { + for (i=0; i < (hsize_t)num_elem; i++) { len[i] = (size_t_f)c_buf[i].len; memcpy(&buf[i*max_len], c_buf[i].p, c_buf[i].len*sizeof(int_f)); } @@ -1786,7 +1786,7 @@ nh5dwrite_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_sp hsize_t num_elem; max_len = (size_t)dims[0]; - num_elem = dims[1]; + num_elem = (hsize_t)dims[1]; c_dset_id = (hid_t)*dset_id; c_mem_type_id = (hid_t)*mem_type_id; @@ -1873,7 +1873,7 @@ nh5dread_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spa hsize_t num_elem; max_len = (size_t)dims[0]; - num_elem = dims[1]; + num_elem = (hsize_t)dims[1]; c_dset_id = (hid_t)*dset_id; c_mem_type_id = (hid_t)*mem_type_id; @@ -1957,7 +1957,7 @@ nh5dwrite_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spa hsize_t num_elem; max_len = (size_t)dims[0]; - num_elem = dims[1]; + num_elem = (hsize_t)dims[1]; c_dset_id = (hid_t)*dset_id; c_mem_type_id = (hid_t)*mem_type_id; @@ -2026,7 +2026,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spac size_t max_len; hvl_t *c_buf; - hssize_t i; + hsize_t i; hssize_t num_elem; c_dset_id = (hid_t)*dset_id; @@ -2037,7 +2037,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spac max_len = (size_t)dims[0]; num_elem = H5Sget_select_npoints(c_mem_space_id); - if(num_elem != dims[1]) return ret_value; + if(num_elem != (hssize_t)dims[1]) return ret_value; c_buf = (hvl_t *)HDmalloc((size_t)num_elem * sizeof(hvl_t)); if (c_buf == NULL) return ret_value; @@ -2046,7 +2046,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spac */ status = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, c_buf); if ( status <0 ) goto DONE; - for (i=0; i < num_elem; i++) { + for (i=0; i < (hsize_t)num_elem; i++) { len[i] = (size_t_f)c_buf[i].len; memcpy(&buf[i*max_len], c_buf[i].p, c_buf[i].len*sizeof(real_f)); } diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c index 6e7e3c0..2fb7bc2 100644 --- a/fortran/src/H5Ff.c +++ b/fortran/src/H5Ff.c @@ -635,7 +635,7 @@ nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen) /* * Call H5Fget_name function */ - if ((size_c = (size_t_f)H5Fget_name((hid_t)*obj_id, c_buf, (size_t)*buflen)) < 0) + if ((size_c = H5Fget_name((hid_t)*obj_id, c_buf, (size_t)*buflen)) < 0) HGOTO_DONE(FAIL); /* @@ -706,13 +706,16 @@ h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f /******/ { herr_t ret_value=0; /* Return value */ - + ssize_t c_buf_req; /* * Call h5fget_file_image function */ - if ((*buf_req = (size_t_f)H5Fget_file_image((hid_t)*file_id, buf_ptr, (size_t)*buf_len)) < 0) + + if ( (c_buf_req = H5Fget_file_image((hid_t)*file_id, buf_ptr, (size_t)*buf_len)) < 0) HGOTO_DONE(FAIL); + *buf_req = (size_t_f)c_buf_req; + done: return ret_value; } diff --git a/fortran/src/H5Gf.c b/fortran/src/H5Gf.c index 5ebb3e7..7f755b3 100644 --- a/fortran/src/H5Gf.c +++ b/fortran/src/H5Gf.c @@ -67,7 +67,7 @@ nh5gcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, /* * Call H5Gcreate function. */ - if(*size_hint == OBJECT_NAMELEN_DEFAULT_F ){ + if(*size_hint == (size_t_f)OBJECT_NAMELEN_DEFAULT_F ){ c_grp_id = H5Gcreate2((hid_t)*loc_id, c_name,(hid_t)*lcpl_id,(hid_t)*gcpl_id,(hid_t)*gapl_id);} else { /* Create the group creation property list */ @@ -178,7 +178,7 @@ nh5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, char *c_name = NULL; size_t c_obj_namelen; char *c_obj_name = NULL; - hsize_t c_idx = *idx; + hsize_t c_idx = (hsize_t)*idx; hid_t gid = (-1); /* Temporary group ID */ int ret_value = -1; @@ -191,7 +191,7 @@ nh5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, /* * Allocate buffer to hold name of the object */ - c_obj_namelen = *obj_namelen; + c_obj_namelen = (size_t)*obj_namelen; if(c_obj_namelen) if(NULL == (c_obj_name = (char *)HDmalloc(c_obj_namelen + 1))) goto DONE; @@ -352,6 +352,23 @@ nh5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name, goto DONE; break; + /* Cases below were added to remove the warnings in gcc 4.9.2 and probably other */ + case H5L_TYPE_EXTERNAL: + ret_value = -1; + goto DONE; + break; + + case H5L_TYPE_MAX: + ret_value = -1; + goto DONE; + break; + + case H5L_TYPE_ERROR: + ret_value = -1; + goto DONE; + break; + /* End of the warnings fix */ + default: /* Unknown/unhandled link type */ goto DONE; } /* end switch */ @@ -421,6 +438,22 @@ nh5glink2_c(hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen, if(H5Lcreate_soft(c_cur_name, (hid_t)*new_loc_id, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; break; + /* Cases below were added to remove the warnings in gcc 4.9.2 and probably other */ + case H5L_TYPE_EXTERNAL: + ret_value = -1; + goto DONE; + break; + + case H5L_TYPE_MAX: + ret_value = -1; + goto DONE; + break; + + case H5L_TYPE_ERROR: + ret_value = -1; + goto DONE; + break; + /* End of the warnings fix */ default: /* Unknown/unhandled link type */ goto DONE; diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c index 7efa10a..6523ab4 100644 --- a/fortran/src/H5Lf.c +++ b/fortran/src/H5Lf.c @@ -677,9 +677,9 @@ done: /****if* H5Lf/h5lget_name_by_idx_c * NAME - * h5lget_name_by_idx_c + * h5lget_name_by_idx_c * PURPOSE - * Call H5Lget_name_by_idx + * Call H5Lget_name_by_idx * INPUTS * * loc_id - File or group identifier specifying location of subject group @@ -694,10 +694,10 @@ done: * name - Buffer in which link value is returned * size - The size of the link name on success * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 10, 2008 + * March 10, 2008 * SOURCE */ int_f @@ -706,9 +706,10 @@ nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, size_t_f *size, _fcd name, hid_t_f *lapl_id) /******/ { - char *c_group_name = NULL; /* Buffer to hold C string */ + char *c_group_name = NULL; /* Buffer to hold C string */ char *c_name = NULL; /* Buffer to hold C string */ size_t c_size; + ssize_t c_size_link; int_f ret_value = 0; /* Return value */ /* @@ -725,10 +726,12 @@ nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, if(NULL == (c_name = (char *)HDmalloc(c_size))) HGOTO_DONE(FAIL) - if((*size = (size_t_f)H5Lget_name_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field, + if((c_size_link = H5Lget_name_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field, (H5_iter_order_t)*order, (hsize_t)*n,c_name, c_size, (hid_t)*lapl_id)) < 0) HGOTO_DONE(FAIL) + *size = (size_t_f)c_size_link; + /* * Convert C name to FORTRAN and place it in the given buffer */ diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c index ad8b7ed..ae344a5 100644 --- a/fortran/src/H5Of.c +++ b/fortran/src/H5Of.c @@ -23,6 +23,8 @@ #include "H5f90.h" #include "H5Eprivate.h" +int_f +fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info); int_f fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info) { @@ -874,6 +876,7 @@ nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, char *c_comment = NULL; /* Buffer to hold C string */ char *c_name = NULL; /* Buffer to hold C string */ int_f ret_value = 0; /* Return value */ + ssize_t c_bufsize; size_t c_commentsize; /* @@ -895,9 +898,11 @@ nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, * Call H5Oget_comment_by_name function. */ - if((*bufsize = (size_t_f)H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0) + if((c_bufsize = H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0) HGOTO_DONE(FAIL); + *bufsize = (size_t_f)c_bufsize; + /* * Convert C name to FORTRAN and place it in the given buffer */ diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c index fa4dc5b..e9082d6 100644 --- a/fortran/src/H5Pf.c +++ b/fortran/src/H5Pf.c @@ -160,41 +160,32 @@ done: /****if* H5Pf/h5pget_class_c * NAME - * h5pget_class_c + * h5pget_class_c * PURPOSE - * Call H5Pget_class to determine property list class + * Call H5Pget_class to determine property list class * INPUTS - * prp_id - identifier of the dataspace + * prp_id - identifier of the dataspace * OUTPUTS - * classtype - class type; possible values are: - * H5P_ROOT_F -1 - * H5P_FILE_CREATE_F 0 - * H5P_FILE_ACCESS_F 1 - * H5P_DATASET_CREATE_F 2 - * H5P_DATASET_XFER_F 3 - * H5P_FILE_MOUNT_F 4 + * classtype - class type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * SOURCE */ int_f -nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype) +nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype) /******/ { hid_t c_classtype; int_f ret_value = 0; - c_classtype = H5Pget_class((hid_t)*prp_id); - if(c_classtype == H5P_ROOT) { - *classtype = H5P_ROOT; + if( (c_classtype = H5Pget_class((hid_t)*prp_id)) < 0) HGOTO_DONE(FAIL) - } - *classtype = (int_f)c_classtype; + *classtype = (hid_t_f)c_classtype; done: return ret_value; diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90 index 0d85252..3409f15 100644 --- a/fortran/src/H5Pff.f90 +++ b/fortran/src/H5Pff.f90 @@ -237,18 +237,10 @@ CONTAINS ! Returns the property list class for a property list. ! ! INPUTS -! ! prp_id - property list identifier +! ! OUTPUTS -! ! classtype - property list class -! Possible values are: -! H5P_ROOT_F -! H5P_FILE_CREATE_F -! H5P_FILE_ACCESS_F -! H5P_DATASET_CREATE_F -! H5P_DATASET_XFER_F -! H5P_FILE_MOUNT_F ! hdferr: - error code ! Success: 0 ! Failure: -1 @@ -265,30 +257,21 @@ CONTAINS ! Fortran90 Interface: SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier - INTEGER, INTENT(OUT) :: classtype ! The type of the property list - ! to be created. Possible values are: - ! H5P_ROOT_F - ! H5P_FILE_CREATE_F - ! H5P_FILE_ACCESS_F - ! H5P_DATASET_CREATE_F - ! H5P_DATASET_XFER_F - ! H5P_FILE_MOUNT_F + INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier + INTEGER(HID_T), INTENT(OUT) :: classtype ! The type of the property list + ! to be created. INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** -! INTEGER, EXTERNAL :: h5pget_class_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5pget_class_c(prp_id, classtype) USE H5GLOBAL !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_C'::h5pget_class_c !DEC$ENDIF - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER, INTENT(OUT) :: classtype + INTEGER(HID_T), INTENT(IN) :: prp_id + INTEGER(HID_T), INTENT(OUT) :: classtype END FUNCTION h5pget_class_c END INTERFACE @@ -1449,7 +1432,7 @@ CONTAINS !****s* H5P/h5pget_fapl_core_f ! NAME -! h5pget_fapl_core_f +! h5pget_fapl_core_f ! ! PURPOSE ! Queries core file driver properties. @@ -1487,9 +1470,6 @@ CONTAINS !***** INTEGER :: backing_store_flag -! INTEGER, EXTERNAL :: h5pget_fapl_core_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag) USE H5GLOBAL @@ -3644,7 +3624,7 @@ CONTAINS ! size - Actual length of the class name ! NOTE: If provided buffer "name" is smaller, ! than name will be truncated to fit into -! provided user buffer +! provided user buffer. ! hdferr: - error code ! Success: 0 ! Failure: -1 @@ -4222,50 +4202,46 @@ CONTAINS ! Fortran90 Interface: SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map ! Mapping array - INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl ! Property list for each memory usage type - CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name ! Names of member file - REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr - LOGICAL, INTENT(IN) :: relax ! Flag - INTEGER, INTENT(OUT) :: hdferr ! Error code - ! 0 on success and -1 on failure + INTEGER(HID_T), INTENT(IN) :: prp_id + INTEGER, DIMENSION(*), INTENT(IN) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name + REAL, DIMENSION(*), INTENT(IN) :: memb_addr + LOGICAL, INTENT(IN) :: relax + INTEGER, INTENT(OUT) :: hdferr !***** - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm INTEGER :: maxlen - INTEGER :: flag + INTEGER :: flag = 0 INTEGER :: i -! INTEGER, EXTERNAL :: h5pset_fapl_multi_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, & maxlen, memb_addr, flag) USE H5GLOBAL + IMPLICIT NONE !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_C'::h5pset_fapl_multi_c !DEC$ENDIF !DEC$ATTRIBUTES reference :: memb_name INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map - INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl - CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name - REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr - !INTEGER(HADDR_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN) :: memb_addr - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(*), INTENT(IN) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name + REAL, DIMENSION(*), INTENT(IN) :: memb_addr + INTEGER, DIMENSION(*) :: lenm INTEGER :: maxlen INTEGER, INTENT(IN) :: flag END FUNCTION h5pset_fapl_multi_c END INTERFACE + maxlen = LEN(memb_name(1)) - DO i=0, H5FD_MEM_NTYPES_F-1 + DO i=1, H5FD_MEM_NTYPES_F lenm(i) = LEN_TRIM(memb_name(i)) ENDDO - flag = 0 - IF (relax) flag = 1 - hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag) - + IF(relax) flag = 1 + hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag) + END SUBROUTINE h5pset_fapl_multi_l !****s* H5P/h5pset_fapl_multi_s ! NAME @@ -4303,6 +4279,7 @@ CONTAINS INTERFACE INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag) USE H5GLOBAL + IMPLICIT NONE !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_SC'::h5pset_fapl_multi_sc !DEC$ENDIF @@ -4346,51 +4323,50 @@ CONTAINS SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map - INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_fapl - CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_name - !INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr - REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr + INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name + REAL, DIMENSION(*), INTENT(OUT) :: memb_addr INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out LOGICAL, INTENT(OUT) :: relax INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm INTEGER :: maxlen INTEGER :: c_maxlen_out INTEGER :: flag INTEGER :: i - -! INTEGER, EXTERNAL :: h5pget_fapl_multi_c -! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, & maxlen, memb_addr, flag, c_maxlen_out) USE H5GLOBAL + IMPLICIT NONE !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_MULTI_C'::h5pget_fapl_multi_c !DEC$ENDIF !DEC$ATTRIBUTES reference :: memb_name INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_map - INTEGER(HID_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_fapl - CHARACTER(LEN=*), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_name - REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_addr - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name + REAL, DIMENSION(*), INTENT(OUT) :: memb_addr + INTEGER, DIMENSION(*) :: lenm INTEGER :: maxlen INTEGER :: c_maxlen_out INTEGER, INTENT(OUT) :: flag END FUNCTION h5pget_fapl_multi_c END INTERFACE - maxlen = LEN(memb_name(0)) - DO i=0, H5FD_MEM_NTYPES_F-1 + + maxlen = LEN(memb_name(1)) + DO i=1, H5FD_MEM_NTYPES_F lenm(i) = LEN_TRIM(memb_name(i)) ENDDO - hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out) + hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out) + relax = .TRUE. - IF(flag .EQ. 0) relax = .FALSE. + IF(flag .EQ. 0) relax = .FALSE. IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out END SUBROUTINE h5pget_fapl_multi_f !****s* H5P/h5pset_szip_f diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c index e35de21..068f24e 100644 --- a/fortran/src/H5Rf.c +++ b/fortran/src/H5Rf.c @@ -148,13 +148,11 @@ h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *r { int ret_value = -1; char *c_name; - size_t c_namelen; /* * Convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; /* @@ -567,7 +565,7 @@ h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_ /* * Allocate buffer to hold name of an attribute */ - if ((c_buf = HDmalloc(c_bufsize)) == NULL) + if ((c_buf = (char *)HDmalloc(c_bufsize)) == NULL) return ret_value; /* diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff_F03.f90 index fc4b2f3..8f40607 100644 --- a/fortran/src/H5Rff_F03.f90 +++ b/fortran/src/H5Rff_F03.f90 @@ -14,18 +14,18 @@ ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -! 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. * +! 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. * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES @@ -551,7 +551,7 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: loc_id TYPE(hobj_ref_t_f), INTENT(IN), TARGET :: ref INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(OUT) :: hdferr !***** @@ -598,7 +598,7 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: loc_id TYPE(hdset_reg_ref_t_f), INTENT(IN), TARGET :: ref INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(OUT) :: hdferr !***** INTEGER(SIZE_T) :: size_default @@ -647,7 +647,7 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), INTENT(IN) :: ref - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(OUT) :: hdferr INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size !***** diff --git a/fortran/src/H5Rff_F90.f90 b/fortran/src/H5Rff_F90.f90 index 3871d99..ac45857 100644 --- a/fortran/src/H5Rff_F90.f90 +++ b/fortran/src/H5Rff_F90.f90 @@ -14,18 +14,18 @@ ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -! 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. * +! 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. * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c index f6803ac..6947d64 100644 --- a/fortran/src/H5Sf.c +++ b/fortran/src/H5Sf.c @@ -298,7 +298,7 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f *startblock, if (rank < 0 ) return ret_value; c_startblock = (hsize_t)*startblock; - c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_blocks*2*rank)); + c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_blocks*2*(hsize_t)rank)); if (!c_buf) return ret_value; ret_value = H5Sget_select_hyper_blocklist(c_space_id, c_startblock, @@ -425,7 +425,7 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, if (rank < 0 ) return ret_value; c_startpoint = (hsize_t)*startpoint; - c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_points*rank)); + c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_points*(hsize_t)rank)); if (!c_buf) return ret_value; ret_value = H5Sget_select_elem_pointlist(c_space_id, c_startpoint, c_num_points, c_buf); @@ -434,7 +434,7 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, /* and add 1 to account for array's starting at one in Fortran */ i2 = 0; for( i = 0; i < c_num_points; i++) { - i1 = rank*(i+1); + i1 = (hsize_t)rank*(i+1); for(j = 0; j < rank; j++) { buf[i2] = (hsize_t_f)(c_buf[i1-1]+1); i2 = i2 + 1; @@ -442,10 +442,6 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, } } -/* for( i = 0; i < c_num_points*rank; i++) { */ -/* printf("%i \n", (int)c_buf[i]+1); */ -/* } */ - if (ret_value >= 0 ) ret_value = 0; HDfree(c_buf); @@ -453,8 +449,6 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, return ret_value; } - - /****if* H5Sf/h5sselect_all_c * NAME * h5sselect_all_c @@ -1230,7 +1224,8 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi H5S_seloper_t c_op; herr_t status; int rank; - int i, j; + size_t i; + int j; hsize_t *c_coord; size_t c_nelements; @@ -1239,11 +1234,11 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi c_space_id = *space_id; rank = H5Sget_simple_extent_ndims(c_space_id); - c_coord = (hsize_t *)HDmalloc(sizeof(hsize_t)*rank*(*nelements)); + c_coord = (hsize_t *)HDmalloc(sizeof(hsize_t)*(size_t)rank*((size_t)*nelements)); if(!c_coord) return ret_value; - for (i=0; i< *nelements; i++) { + for (i=0; i< (size_t)*nelements; i++) { for (j = 0; j < rank; j++) { - c_coord[j+i*rank] = (hsize_t)coord[j + i*rank]; + c_coord[(size_t)j+i*(size_t)rank] = (hsize_t)coord[(size_t)j + i*(size_t)rank]; } } diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c index ca9c30f..7e1aa42 100644 --- a/fortran/src/H5Tf.c +++ b/fortran/src/H5Tf.c @@ -26,9 +26,9 @@ /****if* H5Tf/h5topen_c * NAME - * h5topen_c + * h5topen_c * PURPOSE - * Call H5Topen2 to open a datatype + * Call H5Topen2 to open a datatype * INPUTS * loc_id - file or group identifier * name - name of the datatype within file or group @@ -78,9 +78,9 @@ done: /****if* H5Tf/h5tcommit_c * NAME - * h5tcommit_c + * h5tcommit_c * PURPOSE - * Call H5Tcommit2 to commit a datatype + * Call H5Tcommit2 to commit a datatype * INPUTS * loc_id - file or group identifier * name - name of the datatype within file or group @@ -126,9 +126,9 @@ done: /****if* H5Tf/h5tclose_c * NAME - * h5tclose_c + * h5tclose_c * PURPOSE - * Call H5Tclose to close the datatype + * Call H5Tclose to close the datatype * INPUTS * type_id - identifier of the datatype to be closed * RETURNS @@ -156,9 +156,9 @@ nh5tclose_c ( hid_t_f *type_id ) /****if* H5Tf/h5tcopy_c * NAME - * h5tcopy_c + * h5tcopy_c * PURPOSE - * Call H5Tcopy to copy a datatype + * Call H5Tcopy to copy a datatype * INPUTS * type_id - identifier of the datatype to be copied * OUTPUTS @@ -190,9 +190,9 @@ nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id) /****if* H5Tf/h5tequal_c * NAME - * h5tequal_c + * h5tequal_c * PURPOSE - * Call H5Tequal to copy a datatype + * Call H5Tequal to copy a datatype * INPUTS * type1_id - datatype identifier * type2_id - datatype identifier @@ -289,9 +289,9 @@ nh5tget_class_c ( hid_t_f *type_id , int_f *classtype) /****if* H5Tf/h5tget_order_c * NAME - * h5tget_order_c + * h5tget_order_c * PURPOSE - * Call H5Tget_order to determine byte order + * Call H5Tget_order to determine byte order * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -333,9 +333,9 @@ nh5tget_order_c ( hid_t_f *type_id , int_f *order) /****if* H5Tf/h5tset_order_c * NAME - * h5tset_order_c + * h5tset_order_c * PURPOSE - * Call H5Tset_order to set byte order + * Call H5Tset_order to set byte order * INPUTS * type_id - identifier of the dataspace * order; possible values are: @@ -374,9 +374,9 @@ nh5tset_order_c ( hid_t_f *type_id , int_f *order) /****if* H5Tf/h5tget_size_c * NAME - * h5tget_size_c + * h5tget_size_c * PURPOSE - * Call H5Tget_size to get size of the datatype + * Call H5Tget_size to get size of the datatype * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -409,9 +409,9 @@ nh5tget_size_c ( hid_t_f *type_id , size_t_f *size) /****if* H5Tf/h5tset_size_c * NAME - * h5tset_size_c + * h5tset_size_c * PURPOSE - * Call H5Tget_size to get size of the datatype + * Call H5Tget_size to get size of the datatype * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -445,9 +445,9 @@ nh5tset_size_c ( hid_t_f *type_id , size_t_f *size) /****if* H5Tf/h5tget_precision_c * NAME - * h5tget_precision_c + * h5tget_precision_c * PURPOSE - * Call H5Tget_precision to get precision of the datatype + * Call H5Tget_precision to get precision of the datatype * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -480,9 +480,9 @@ nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision) /****if* H5Tf/h5tset_precision_c * NAME - * h5tset_precision_c + * h5tset_precision_c * PURPOSE - * Call H5Tset_precision to set precision of the datatype + * Call H5Tset_precision to set precision of the datatype * INPUTS * type_id - identifier of the dataspace * precision - number of significant bits @@ -515,9 +515,9 @@ nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision) /****if* H5Tf/h5tget_offset_c * NAME - * h5tget_offset_c + * h5tget_offset_c * PURPOSE - * Call H5Tget_offset to get bit offset of the first + * Call H5Tget_offset to get bit offset of the first * significant bit of the datatype * INPUTS * type_id - identifier of the dataspace @@ -552,9 +552,9 @@ nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset) /****if* H5Tf/h5tset_offset_c * NAME - * h5tset_offset_c + * h5tset_offset_c * PURPOSE - * Call H5Tset_offset to set bit offset of the first + * Call H5Tset_offset to set bit offset of the first * significant bit of the datatype * INPUTS * type_id - identifier of the dataspace @@ -588,9 +588,9 @@ nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset) /****if* H5Tf/h5tget_pad_c * NAME - * h5tget_pad_c + * h5tget_pad_c * PURPOSE - * Call H5Tget_pad to get the padding type of the least and + * Call H5Tget_pad to get the padding type of the least and * most-significant bit padding * * INPUTS @@ -629,11 +629,11 @@ nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad) /****if* H5Tf/h5tset_pad_c * NAME - * h5tset_pad_c + * h5tset_pad_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_pad to set the padding type of the least and + * Call H5Tset_pad to set the padding type of the least and * most-significant bit padding * * INPUTS @@ -670,9 +670,9 @@ nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad ) /****if* H5Tf/h5tget_sign_c * NAME - * h5tget_sign_c + * h5tget_sign_c * PURPOSE - * Call H5Tget_sign to get sign type for an integer type + * Call H5Tget_sign to get sign type for an integer type * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -705,9 +705,9 @@ nh5tget_sign_c ( hid_t_f *type_id , int_f *sign) /****if* H5Tf/h5tset_sign_c * NAME - * h5tset_sign_c + * h5tset_sign_c * PURPOSE - * Call H5Tset_sign to set sign type for an integer type + * Call H5Tset_sign to set sign type for an integer type * INPUTS * type_id - identifier of the dataspace * sign - sign type for an integer typ @@ -741,9 +741,9 @@ nh5tset_sign_c ( hid_t_f *type_id , int_f* sign) /****if* H5Tf/h5tget_fields_c * NAME - * h5tget_fields_c + * h5tget_fields_c * PURPOSE - * Call H5Tget_fields to get floating point datatype + * Call H5Tget_fields to get floating point datatype * bit field information * INPUTS * type_id - identifier of the dataspace @@ -785,9 +785,9 @@ nh5tget_fields_c ( hid_t_f *type_id , size_t_f *spos, size_t_f *epos, size_t_f* /****if* H5Tf/h5tset_fields_c * NAME - * h5tset_fields_c + * h5tset_fields_c * PURPOSE - * Call H5Tset_fields to set floating point datatype + * Call H5Tset_fields to set floating point datatype * bit field information * INPUTS * type_id - identifier of the dataspace @@ -829,9 +829,9 @@ nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* e /****if* H5Tf/h5tget_ebias_c * NAME - * h5tget_ebias_c + * h5tget_ebias_c * PURPOSE - * Call H5Tget_ebias to get exponent bias of a + * Call H5Tget_ebias to get exponent bias of a * floating-point type of the datatype * INPUTS * type_id - identifier of the dataspace @@ -866,9 +866,9 @@ nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias) /****if* H5Tf/h5tset_ebias_c * NAME - * h5tset_ebias_c + * h5tset_ebias_c * PURPOSE - * Call H5Tset_ebias to set exponent bias of a + * Call H5Tset_ebias to set exponent bias of a * floating-point type of the datatype * INPUTS * type_id - identifier of the dataspace @@ -903,9 +903,9 @@ nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias) /****if* H5Tf/h5tget_norm_c * NAME - * h5tget_norm_c + * h5tget_norm_c * PURPOSE - * Call H5Tget_norm to get mantissa normalization + * Call H5Tget_norm to get mantissa normalization * of a floating-point datatype * INPUTS * type_id - identifier of the dataspace @@ -940,9 +940,9 @@ nh5tget_norm_c ( hid_t_f *type_id , int_f *norm) /****if* H5Tf/h5tset_norm_c * NAME - * h5tset_norm_c + * h5tset_norm_c * PURPOSE - * Call H5Tset_norm to set mantissa normalization of + * Call H5Tset_norm to set mantissa normalization of * floating-point type of the datatype * INPUTS * type_id - identifier of the dataspace @@ -977,9 +977,9 @@ nh5tset_norm_c ( hid_t_f *type_id , int_f *norm) /****if* H5Tf/h5tget_inpad_c * NAME - * h5tget_inpad_c + * h5tget_inpad_c * PURPOSE - * Call H5Tget_inpad to get the padding type for + * Call H5Tget_inpad to get the padding type for * unused bits in floating-point datatypes * * INPUTS @@ -1016,11 +1016,11 @@ nh5tget_inpad_c ( hid_t_f *type_id , int_f * padtype) /****if* H5Tf/h5tset_inpad_c * NAME - * h5tset_inpad_c + * h5tset_inpad_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_inpad to set the padding type + * Call H5Tset_inpad to set the padding type * unused bits in floating-point datatype * * INPUTS @@ -1057,9 +1057,9 @@ nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype) /****if* H5Tf/h5tget_cset_c * NAME - * h5tget_cset_c + * h5tget_cset_c * PURPOSE - * Call H5Tget_cset to get character set + * Call H5Tget_cset to get character set * type of a string datatype * * INPUTS @@ -1095,11 +1095,11 @@ nh5tget_cset_c ( hid_t_f *type_id , int_f * cset) /****if* H5Tf/h5tset_cset_c * NAME - * h5tset_cset_c + * h5tset_cset_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_cset to set character set + * Call H5Tset_cset to set character set * type of a string datatype * * INPUTS @@ -1135,9 +1135,9 @@ nh5tset_cset_c ( hid_t_f *type_id, int_f * cset) /****if* H5Tf/h5tget_strpad_c * NAME - * h5tget_strpad_c + * h5tget_strpad_c * PURPOSE - * Call H5Tget_strpad to get string padding method + * Call H5Tget_strpad to get string padding method * for a string datatype * INPUTS * type_id - identifier of the dataspace @@ -1171,11 +1171,11 @@ nh5tget_strpad_c ( hid_t_f *type_id , int_f * strpad) /****if* H5Tf/h5tset_strpad_c * NAME - * h5tset_strpad_c + * h5tset_strpad_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_strpad to set string padding method + * Call H5Tset_strpad to set string padding method * for a string datatype * * INPUTS @@ -1211,9 +1211,9 @@ nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad) /****if* H5Tf/h5tget_nmembers_c * NAME - * h5tget_nmembers_c + * h5tget_nmembers_c * PURPOSE - * Call H5Tget_nmembers to get number of fields + * Call H5Tget_nmembers to get number of fields * in a compound datatype * INPUTS * type_id - identifier of the dataspace @@ -1246,9 +1246,9 @@ nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members) /****if* H5Tf/h5tget_member_name_c * NAME - * h5tget_member_name_c + * h5tget_member_name_c * PURPOSE - * Call H5Tget_member_name to get name + * Call H5Tget_member_name to get name * of a compound datatype * INPUTS * type_id - identifier of the dataspace @@ -1287,9 +1287,9 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n } /****if* H5Tf/h5tget_member_index_c * NAME - * h5tget_member_index_c + * h5tget_member_index_c * PURPOSE - * Call H5Tget_member_index to get an index of + * Call H5Tget_member_index to get an index of * the specified datatype filed or member. * INPUTS * type_id - datatype identifier @@ -1301,7 +1301,7 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, September 26, 2002 + * Thursday, September 26, 2002 * HISTORY * * SOURCE @@ -1312,15 +1312,13 @@ nh5tget_member_index_c (hid_t_f *type_id, _fcd name, int_f *namelen, int_f *idx) { int ret_value = -1; char *c_name; - size_t c_namelen; hid_t c_type_id; int c_index; /* * Convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; /* @@ -1340,9 +1338,9 @@ DONE: /****if* H5Tf/h5tget_member_offset_c * NAME - * h5tget_member_offset_c + * h5tget_member_offset_c * PURPOSE - * Call H5Tget_member_offset to get byte offset of the + * Call H5Tget_member_offset to get byte offset of the * beginning of a field within a compound datatype with * respect to the beginning of the compound data type datum * INPUTS @@ -1367,12 +1365,8 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) { int ret_value = -1; size_t c_offset; - hid_t c_type_id; - unsigned c_member_no; - c_type_id = *type_id; - c_member_no = *member_no; - c_offset = H5Tget_member_offset(c_type_id, c_member_no); + c_offset = H5Tget_member_offset((hid_t)*type_id, (unsigned)*member_no); *offset = (size_t_f)c_offset; ret_value = 0; return ret_value; @@ -1380,9 +1374,9 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) /****if* H5Tf/h5tget_array_dims_c * NAME - * h5tget_array_dims_c + * h5tget_array_dims_c * PURPOSE - * Call H5Tget_array_dims2 to get + * Call H5Tget_array_dims2 to get * dimensions of array datatype * INPUTS * type_id - identifier of the array datatype @@ -1423,9 +1417,9 @@ DONE: /****if* H5Tf/h5tget_array_ndims_c * NAME - * h5tget_array_ndims_c + * h5tget_array_ndims_c * PURPOSE - * Call H5Tget_array_ndims to get number + * Call H5Tget_array_ndims to get number * of dimensions of array datatype * INPUTS * type_id - identifier of the array datatype @@ -1460,9 +1454,9 @@ nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims) /****if* H5Tf/h5tget_super_c * NAME - * h5tget_super_c + * h5tget_super_c * PURPOSE - * Call H5Tget_super to get base datatype from which + * Call H5Tget_super to get base datatype from which * datatype was derived * INPUTS * type_id - identifier of the array datatype @@ -1498,9 +1492,9 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) /****if* H5Tf/h5tget_member_type_c * NAME - * h5tget_member_type_c + * h5tget_member_type_c * PURPOSE - * Call H5Tget_member_type to get the identifier of a copy of + * Call H5Tget_member_type to get the identifier of a copy of * the datatype of the field * INPUTS * type_id - identifier of the datatype @@ -1511,7 +1505,7 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE @@ -1522,12 +1516,8 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) /******/ { int ret_value = -1; - hid_t c_type_id; - unsigned c_field_idx; - c_type_id = *type_id; - c_field_idx = *field_idx; - *datatype = (hid_t_f)H5Tget_member_type(c_type_id, c_field_idx); + *datatype = (hid_t_f)H5Tget_member_type((hid_t)*type_id, (unsigned)*field_idx); if(*datatype < 0) return ret_value; ret_value = 0; @@ -1537,9 +1527,9 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) /****if* H5Tf/h5tcreate_c * NAME - * h5tcreate_c + * h5tcreate_c * PURPOSE - * Call H5Tcreate to create a datatype + * Call H5Tcreate to create a datatype * INPUTS * cls - class type * size - size of the class memeber @@ -1573,20 +1563,20 @@ nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id) /****if* H5Tf/h5tinsert_c * NAME - * h5tinsert_c + * h5tinsert_c * PURPOSE - * Call H5Tinsert to adds another member to the compound datatype + * Call H5Tinsert to adds another member to the compound datatype * INPUTS - * type_id - identifier of the datatype - * name - Name of the field to insert - * namelen - length of the name - * offset - Offset in memory structure of the field to insert - * field_id - datatype identifier of the new member + * type_id - identifier of the datatype + * name - Name of the field to insert + * namelen - length of the name + * offset - Offset in memory structure of the field to insert + * field_id - datatype identifier of the new member * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE @@ -1597,21 +1587,14 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_ /******/ { int ret_value = -1; - hid_t c_type_id; - hid_t c_field_id; char* c_name; - size_t c_namelen; - size_t c_offset; herr_t error; - c_offset =(size_t) *offset; - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; - c_type_id = *type_id; - c_field_id = *field_id; - error = H5Tinsert(c_type_id, c_name, c_offset, c_field_id); + error = H5Tinsert((hid_t)*type_id, c_name, (size_t)*offset, (hid_t)*field_id); + HDfree(c_name); if(error < 0) return ret_value; ret_value = 0; @@ -1621,18 +1604,18 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_ /****if* H5Tf/h5tpack_c * NAME - * h5tpack_c + * h5tpack_c * PURPOSE - * Call H5Tpack tor ecursively remove padding from - * within a compound datatype to make it more efficient - * (space-wise) to store that data + * Call H5Tpack tor ecursively remove padding from + * within a compound datatype to make it more efficient + * (space-wise) to store that data * INPUTS - * type_id - identifier of the datatype + * type_id - identifier of the datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE @@ -1656,9 +1639,9 @@ nh5tpack_c(hid_t_f * type_id) /****if* H5Tf/h5tarray_create_c * NAME - * h5tarray_create_c + * h5tarray_create_c * PURPOSE - * Call H5Tarray_create2 to create array datatype + * Call H5Tarray_create2 to create array datatype * INPUTS * base_id - identifier of array base datatype * rank - array's rank @@ -1668,7 +1651,7 @@ nh5tpack_c(hid_t_f * type_id) * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, November 16, 2000 + * Thursday, November 16, 2000 * HISTORY * * SOURCE @@ -1687,7 +1670,7 @@ nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* typ * Transpose dimension arrays because of C-FORTRAN storage order */ for(u = 0; u < (unsigned)*rank ; u++) - c_dims[u] = (hsize_t)dims[(*rank - u) - 1]; + c_dims[u] = (hsize_t)dims[((unsigned)*rank - u) - 1]; if((c_type_id = H5Tarray_create2((hid_t)*base_id, (unsigned)*rank, c_dims)) < 0) goto DONE; @@ -1702,19 +1685,19 @@ DONE: /****if* H5Tf/h5tenum_create_c * NAME - * h5tenum_create_c + * h5tenum_create_c * PURPOSE - * Call H5Tenum_create to create a new enumeration datatype + * Call H5Tenum_create to create a new enumeration datatype * INPUTS - * parent_id - Datatype identifier for the base datatype + * parent_id - Datatype identifier for the base datatype * OUTPUTS - * new_type_id - datatype identifier for the new - * enumeration datatype + * new_type_id - datatype identifier for the new + * enumeration datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Tuesday, February 15, 1999 + * Tuesday, February 15, 1999 * HISTORY * * SOURCE @@ -1725,11 +1708,9 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id) /******/ { int ret_value = 0; - hid_t c_parent_id; hid_t c_new_type_id; - c_parent_id = *parent_id; - c_new_type_id = H5Tenum_create(c_parent_id); + c_new_type_id = H5Tenum_create((hid_t)*parent_id); if ( c_new_type_id < 0 ) ret_value = -1; *new_type_id = (hid_t_f)c_new_type_id; @@ -1738,21 +1719,23 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id) /****if* H5Tf/h5tenum_insert_c * NAME - * h5tenum_insert_c + * h5tenum_insert_c * PURPOSE - * Call H5Tenum_insert to insert a new enumeration datatype member. + * Call H5Tenum_insert to insert a new enumeration datatype member. * INPUTS - * type_id - identifier of the datatype - * name - Name of the new member - * namelen - length of the name - * value - value of the new member + * type_id - identifier of the datatype + * name - Name of the new member + * namelen - length of the name + * value - value of the new member * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY - * + * 'value' is no longer cast into an int. If the user passes in an 8 byte integer then + * it should not be cast to an int (which might be 4 bytes). Instead the value + * is written as the size of an int_f. * SOURCE */ @@ -1761,19 +1744,16 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /******/ { int ret_value = -1; - hid_t c_type_id; char* c_name; - size_t c_namelen; - int_f c_value; herr_t error; + int_f c_value; - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; - c_type_id = (hid_t)*type_id; - c_value = (int)*value; - error = H5Tenum_insert(c_type_id, c_name, &c_value); + c_value = *value; + error = H5Tenum_insert((hid_t)*type_id, c_name, &c_value); + HDfree(c_name); if(error < 0) return ret_value; @@ -1784,9 +1764,9 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /****if* H5Tf/h5tenum_nameof_c * NAME - * h5tenum_nameof_c + * h5tenum_nameof_c * PURPOSE - * Call H5Tenum_nameof to find the symbol name that corresponds to + * Call H5Tenum_nameof to find the symbol name that corresponds to * the specified value of the enumeration datatype type * INPUTS * type_id - identifier of the datatype @@ -1828,9 +1808,9 @@ nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen) /****if* H5Tf/h5tenum_valueof_c * NAME - * h5tenum_valueof_c + * h5tenum_valueof_c * PURPOSE - * Call H5Tenum_valueof to find the value of that corresponds to + * Call H5Tenum_valueof to find the value of that corresponds to * the specified name of the enumeration datatype type * INPUTS * type_id - identifier of the datatype @@ -1852,16 +1832,12 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /******/ { int ret_value = -1; - hid_t c_type_id; char* c_name; - size_t c_namelen; herr_t error; - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; - c_type_id = *type_id; - error = H5Tenum_valueof(c_type_id, c_name, value); + error = H5Tenum_valueof((hid_t)*type_id, c_name, value); HDfree(c_name); if(error < 0) return ret_value; @@ -1872,9 +1848,9 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /****if* H5Tf/h5tget_member_value_c * NAME - * h5tget_member_value_c + * h5tget_member_value_c * PURPOSE - * Call H5Tget_member_value to get the value of an + * Call H5Tget_member_value to get the value of an * enumeration datatype member * INPUTS * type_id - identifier of the datatype @@ -1895,14 +1871,10 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) /******/ { int ret_value = -1; - hid_t c_type_id; - unsigned c_member_no; int c_value; herr_t error; - c_type_id = *type_id; - c_member_no = *member_no; - error = H5Tget_member_value(c_type_id, c_member_no, &c_value); + error = H5Tget_member_value((hid_t)*type_id, (unsigned)*member_no, &c_value); if(error < 0) return ret_value; *value = (int_f)c_value; @@ -1912,11 +1884,11 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) /****if* H5Tf/h5tset_tag_c * NAME - * h5tset_tag_c + * h5tset_tag_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_tag to set an opaque datatype tag + * Call H5Tset_tag to set an opaque datatype tag * INPUTS * type_id - identifier of the dataspace * tag - Unique ASCII string with which the opaque @@ -1936,16 +1908,12 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) /******/ { int ret_value = -1; - hid_t c_type_id; herr_t status; char* c_tag; - size_t c_namelen; - c_namelen = *namelen; - c_tag = (char *)HD5f2cstring(tag, c_namelen); + c_tag = (char *)HD5f2cstring(tag, (size_t)*namelen); - c_type_id = *type_id; - status = H5Tset_tag(c_type_id, c_tag); + status = H5Tset_tag((hid_t)*type_id, c_tag); HDfree(c_tag); if ( status < 0 ) return ret_value; @@ -1955,7 +1923,7 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) /****if* H5Tf/h5tget_tag_c * NAME - * h5tget_tag_c + * h5tget_tag_c * PURPOSE * Call H5Tset_tag to set an opaque datatype tag * INPUTS @@ -1993,9 +1961,9 @@ nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* taglen) } /****if* H5Tf/h5tvlen_create_c * NAME - * h5tvlen_create_c + * h5tvlen_create_c * PURPOSE - * Call H5Tvlen_create to create VL dtatype + * Call H5Tvlen_create to create VL dtatype * INPUTS * type_id - identifier of the base datatype * OUTPUTS @@ -2026,9 +1994,9 @@ nh5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id) } /****if* H5Tf/h5tis_variable_str_c * NAME - * h5tis_variable_str_c + * h5tis_variable_str_c * PURPOSE - * Call H5Tis_variable_str to detrmine if the datatype + * Call H5Tis_variable_str to detrmine if the datatype * is a variable string. * INPUTS * type_id - identifier of the dataspace @@ -2061,9 +2029,9 @@ nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ) } /****if* H5Tf/h5tget_member_class_c * NAME - * h5tget_member_class_c + * h5tget_member_class_c * PURPOSE - * Call H5Tget_member_class to detrmine ithe class of the compound + * Call H5Tget_member_class to detrmine ithe class of the compound * datatype member * INPUTS * type_id - identifier of the dataspace @@ -2101,9 +2069,9 @@ nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ) /****if* H5Tf/h5tcommit_anon_c * NAME - * h5tcommit_anon_c + * h5tcommit_anon_c * PURPOSE - * Call H5Tcommit_anon + * Call H5Tcommit_anon * INPUTS * loc_id - file or group identifier * dtype_id - dataset identifier @@ -2137,9 +2105,9 @@ nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, /****if* H5Tf/h5tcommitted_c * NAME - * h5tcommitted_c + * h5tcommitted_c * PURPOSE - * Call H5Tcommitted + * Call H5Tcommitted * dtype_id - dataset identifier * RETURNS * a positive value, for TRUE, if the datatype has been committed, @@ -2168,9 +2136,9 @@ nh5tcommitted_c(hid_t_f *dtype_id) /****if* H5Tf/h5tdecode_c * NAME - * h5tdecode_c + * h5tdecode_c * PURPOSE - * Call H5Tdecode + * Call H5Tdecode * INPUTS * * buf - Buffer for the data space object to be decoded. @@ -2214,9 +2182,9 @@ nh5tdecode_c ( _fcd buf, hid_t_f *obj_id ) /****if* H5Tf/h5tencode_c * NAME - * h5tencode_c + * h5tencode_c * PURPOSE - * Call H5Tencode + * Call H5Tencode * INPUTS * * obj_id - Identifier of the object to be encoded. @@ -2284,9 +2252,9 @@ nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) /****if* H5Tf/h5tget_create_plist_c * NAME - * h5tget_create_plist_c + * h5tget_create_plist_c * PURPOSE - * Call H5Tget_create_plist + * Call H5Tget_create_plist * INPUTS * dtype_id - Datatype identifier * OUTPUTS @@ -2316,9 +2284,9 @@ nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id) /****if* H5Tf/h5tcompiler_conv_c * NAME - * h5tcompiler_conv_c + * h5tcompiler_conv_c * PURPOSE - * Call H5Tcompiler_conv + * Call H5Tcompiler_conv * INPUTS * * src_id - Identifier for the source datatype. @@ -2350,9 +2318,9 @@ nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag) } /****if* H5Tf/h5tget_native_type_c * NAME - * h5tget_native_type_c + * h5tget_native_type_c * PURPOSE - * Call H5Tget_native_type + * Call H5Tget_native_type * INPUTS * * dtype_id - Datatype identifier for the dataset datatype. @@ -2421,3 +2389,44 @@ h5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void return ret_value; } +/****if* H5Tf/h5tenum_insert_ptr_c + * NAME + * /h5tenum_insert_ptr_c + * PURPOSE + * Calls H5Tenum_insert + * INPUTS + * type_id - Datatype identifier for the enumeration datatype. + * name - Datatype identifier. + * value - Pointer to the value of the new member. + * + * OUTPUTS + * + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * February 6, 2015 + * + * SOURCE +*/ +int_f +h5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value) +/******/ +{ + int ret_value = -1; + hid_t status; + char *c_name; + + /* + * Convert FORTRAN name to C name + */ + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); + if (c_name == NULL) return ret_value; + + status = H5Tenum_insert( (hid_t)*type_id, c_name, value); + if ( status < 0 ) return ret_value; + ret_value = 0; + return ret_value; +} + + diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90 index 0e1dbb0..4b4c0b6 100644 --- a/fortran/src/H5Tff.f90 +++ b/fortran/src/H5Tff.f90 @@ -2335,57 +2335,6 @@ CONTAINS hdferr = h5tenum_create_c(parent_id, new_type_id) END SUBROUTINE h5tenum_create_f - -! -!****s* H5T/h5tenaum_insert_f -! -! NAME -! h5tenaum_insert_f -! -! PURPOSE -! Inserts a new enumeration datatype member. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! SOURCE - SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier - CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member - INTEGER, INTENT(IN) :: value !value of the new member - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** - INTEGER :: namelen - - INTERFACE - INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) - USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: name - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER, INTENT(IN) :: value - INTEGER :: namelen - END FUNCTION h5tenum_insert_c - END INTERFACE - - namelen = LEN(name) - hdferr = h5tenum_insert_c(type_id, name, namelen, value) - END SUBROUTINE h5tenum_insert_f - ! !****s* H5T/h5tenum_nameof_f ! diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90 index 2405837..2c9f212 100644 --- a/fortran/src/H5Tff_F03.f90 +++ b/fortran/src/H5Tff_F03.f90 @@ -47,6 +47,11 @@ MODULE H5T_PROVISIONAL !***** + INTERFACE h5tenum_insert_f + MODULE PROCEDURE h5tenum_insert_f03 + MODULE PROCEDURE h5tenum_insert_f90 + END INTERFACE + CONTAINS !****s* H5T (F03)/H5Tconvert_f_F03 @@ -93,6 +98,7 @@ CONTAINS BIND(C, NAME='h5tconvert_c') USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE H5GLOBAL + IMPLICIT NONE INTEGER(HID_T) , INTENT(IN) :: src_id INTEGER(HID_T) , INTENT(IN) :: dst_id INTEGER(SIZE_T), INTENT(IN) :: nelmts @@ -111,6 +117,107 @@ CONTAINS hdferr = H5Tconvert_c(src_id, dst_id, nelmts, buf, background_default, plist_id_default) END SUBROUTINE h5tconvert_f +! +!****s* (F03) H5T/h5tenum_insert_f90 +! +! NAME +! h5tenum_insert_f +! +! PURPOSE +! Inserts a new enumeration datatype member. +! +! INPUTS +! type_id - Datatype identifier for the enumeration datatype. +! name - Datatype identifier. +! value - Value of the new member. +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tenum_insert_f90(type_id, name, value, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier + CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member + INTEGER, INTENT(IN) :: value ! value of the new member + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: namelen + INTERFACE + INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: value + INTEGER :: namelen + END FUNCTION h5tenum_insert_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_insert_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_insert_f90 + +! +!****s* (F03) H5T/h5tenum_insert_f03 +! +! NAME +! h5tenum_insert_f +! +! PURPOSE +! Inserts a new enumeration datatype member. +! +! INPUTS +! type_id - Datatype identifier for the enumeration datatype. +! name - Datatype identifier. +! value - Pointer to the value of the new member. +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! February 6, 2015 +! +! HISTORY +! F2003 implementation of function +! SOURCE + SUBROUTINE h5tenum_insert_f03(type_id, name, value, hdferr) + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char + USE H5GLOBAL + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + TYPE(C_PTR) , INTENT(IN) :: value + INTEGER, INTENT(OUT) :: hdferr +!***** + INTEGER :: namelen + + INTERFACE + INTEGER FUNCTION h5tenum_insert_ptr_c(type_id, name, namelen, value) & + BIND(C, NAME='h5tenum_insert_ptr_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char + USE H5GLOBAL + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: type_id + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + INTEGER :: namelen + TYPE(C_PTR), VALUE :: value + END FUNCTION h5tenum_insert_ptr_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_insert_ptr_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_insert_f03 END MODULE H5T_PROVISIONAL diff --git a/fortran/src/H5Tff_F90.f90 b/fortran/src/H5Tff_F90.f90 index a95b31f..380fbec 100644 --- a/fortran/src/H5Tff_F90.f90 +++ b/fortran/src/H5Tff_F90.f90 @@ -36,4 +36,60 @@ MODULE H5T_PROVISIONAL + USE H5GLOBAL + +CONTAINS + +! +!****s* H5T/h5tenum_insert_f +! +! NAME +! h5tenum_insert_f +! +! PURPOSE +! Inserts a new enumeration datatype member. +! +! INPUTS +! type_id - Datatype identifier for the enumeration datatype. +! name - Datatype identifier. +! value - Value of the new member. +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: value + INTEGER, INTENT(OUT) :: hdferr +!***** + INTEGER :: namelen + + INTERFACE + INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: value + INTEGER :: namelen + END FUNCTION h5tenum_insert_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_insert_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_insert_f + END MODULE H5T_PROVISIONAL diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index 745ef3c..aa7eac1 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -772,6 +772,7 @@ H5_FCDLL int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen H5_FCDLL int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id); H5_FCDLL int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id); H5_FCDLL int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); +H5_FCDLL int_f h5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value); H5_FCDLL int_f nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen); H5_FCDLL int_f nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); H5_FCDLL int_f nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value); @@ -994,7 +995,7 @@ H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ); H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id ); H5_FCDLL int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id); H5_FCDLL int_f nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag); -H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype); +H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype); H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level); H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c index 3fa0efc..c4b7f73 100644 --- a/fortran/src/H5match_types.c +++ b/fortran/src/H5match_types.c @@ -48,11 +48,9 @@ FILE * fort_header; #define FFILE "H5fortran_types.f90" /* Prototypes for the write routines */ -void writeTypedef(const char* c_type, unsigned int size); -void writeFloatTypedef(const char* c_type, unsigned int size); -void writeTypedefDefault(unsigned int size); -void writeToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind); -void writeFloatToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind); +void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size); +void writeTypedefDefault(const char* c_typedef, unsigned int size); +void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, unsigned int kind); static void initCfile(void) @@ -121,38 +119,23 @@ endFfile(void) } /* Define a c_int_x type in the C header */ -void writeTypedef(const char* c_type, unsigned int size) +void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size) { - fprintf(c_header, "#define c_int_%u %s\n", size, c_type); -} - -/* Define a c_float_x type in the C header */ -void writeFloatTypedef(const char* c_type, unsigned int size) -{ - fprintf(c_header, "#define c_float_%u %s\n", size, c_type); + fprintf(c_header, "#define c_%s_%u %s\n", c_typedef, size, c_type); } /* Call this function if there is no matching C type for sizes > 1 */ -void writeTypedefDefault(unsigned int size) +void writeTypedefDefault(const char* c_typedef, unsigned int size) { assert(size %2 == 0); - - fprintf(c_header, "typedef struct {c_int_%u a; c_int_%u b;} c_int_%u\n", size / 2, size / 2, size); + fprintf(c_header, "typedef struct {c_%s_%u a; c_%s_%u b;} c_%s_%u\n", c_typedef, size / 2, c_typedef, size / 2, c_typedef, size); } /* Create matching Fortran and C types by writing to both files */ -void writeToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind) -{ - fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind); - fprintf(c_header, "typedef c_int_%d %s;\n", size, c_type); -} - -/* Create matching Fortran and C floating types by writing to both files */ -void writeFloatToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind) +void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, unsigned int kind) { fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind); - - fprintf(c_header, "typedef c_float_%d %s;\n", size, c_type); + fprintf(c_header, "typedef c_%s_%d %s;\n", c_typedef, size, c_type); } int main(void) @@ -180,68 +163,89 @@ int main(void) #if defined H5_FORTRAN_HAS_INTEGER_1_KIND if(sizeof(long long) == 1) - writeTypedef("long long", 1); + writeTypedef("int", "long long", 1); else if(sizeof(long) == 1) - writeTypedef("long", 1); + writeTypedef("int", "long", 1); else if(sizeof(int) == 1) - writeTypedef("int", 1); + writeTypedef("int", "int", 1); else if(sizeof(short) == 1) - writeTypedef("short", 1); + writeTypedef("int", "short", 1); else - writeTypedef("char", 1); + writeTypedef("int", "char", 1); /* Actually, char is not necessarily one byte. * But if char isn't, then nothing is, so this * is as close as we can get. */ + if(sizeof(size_t) == 1) + writeTypedef("size_t", "size_t", 1); + if(sizeof(hsize_t) == 1) + writeTypedef("hsize_t", "hsize_t", 1); #endif /*H5_FORTRAN_HAS_INTEGER_1_KIND*/ #if defined H5_FORTRAN_HAS_INTEGER_2_KIND if(sizeof(long long) == 2) - writeTypedef("long long", 2); + writeTypedef("int", "long long", 2); else if(sizeof(long) == 2) - writeTypedef("long", 2); + writeTypedef("int", "long", 2); else if(sizeof(int) == 2) - writeTypedef("int", 2); + writeTypedef("int", "int", 2); else if(sizeof(short) == 2) - writeTypedef("short", 2); + writeTypedef("int", "short", 2); else - writeTypedefDefault(2); + writeTypedefDefault("int",2); + + if(sizeof(size_t) == 2) + writeTypedef("size_t", "size_t", 2); + if(sizeof(hsize_t) == 2) + writeTypedef("hsize_t", "hsize_t", 2); #endif /*H5_FORTRAN_HAS_INTEGER_2_KIND*/ #if defined H5_FORTRAN_HAS_INTEGER_4_KIND if(sizeof(long long) == 4) - writeTypedef("long long", 4); + writeTypedef("int", "long long", 4); else if(sizeof(long) == 4) - writeTypedef("long", 4); + writeTypedef("int", "long", 4); else if(sizeof(int) == 4) - writeTypedef("int", 4); + writeTypedef("int", "int", 4); else if(sizeof(short) == 4) - writeTypedef("short", 4); + writeTypedef("int", "short", 4); else - writeTypedefDefault(4); + writeTypedefDefault("int",4); + + if(sizeof(size_t) == 4) + writeTypedef("size_t", "size_t", 4); + if(sizeof(hsize_t) == 4) + writeTypedef("hsize_t", "hsize_t", 4); + #endif /*H5_FORTRAN_HAS_INTEGER_4_KIND*/ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND if(sizeof(long long) == 8) - writeTypedef("long long", 8); + writeTypedef("int", "long long", 8); else if(sizeof(long) == 8) - writeTypedef("long", 8); + writeTypedef("int", "long", 8); else if(sizeof(int) == 8) - writeTypedef("int", 8); + writeTypedef("int", "int", 8); else if(sizeof(short) == 8) - writeTypedef("short", 8); + writeTypedef("int", "short", 8); else - writeTypedefDefault(8); + writeTypedefDefault("int",8); + + if(sizeof(size_t) == 8) + writeTypedef("size_t", "size_t", 8); + if(sizeof(hsize_t) == 8) + writeTypedef("hsize_t", "hsize_t", 8); + #endif /*H5_FORTRAN_HAS_INTEGER_8_KIND*/ /* Define c_float_x */ #if defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND || defined H5_FORTRAN_HAS_REAL_4_KIND if(sizeof(long double) == 4) - writeFloatTypedef("long double", 4); + writeTypedef("float", "long double", 4); else if(sizeof(double) == 4) - writeFloatTypedef("double", 4); + writeTypedef("float", "double", 4); else if(sizeof(float) == 4) - writeFloatTypedef("float", 4); + writeTypedef("float", "float", 4); else { printf("Fortran REAL is 4 bytes, no corresponding C floating type\n"); printf("Quitting....\n"); @@ -251,11 +255,11 @@ int main(void) #if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND || defined H5_FORTRAN_HAS_REAL_8_KIND if(sizeof(long double) == 8) - writeFloatTypedef("long double", 8); + writeTypedef("float", "long double", 8); else if(sizeof(double) == 8) - writeFloatTypedef("double", 8); + writeTypedef("float", "double", 8); else if(sizeof(float) == 8) - writeFloatTypedef("float", 8); + writeTypedef("float", "float", 8); else { printf("Fortran REAL is 16 bytes, no corresponding C floating type\n"); printf("Quitting....\n"); @@ -265,11 +269,11 @@ int main(void) #if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND || defined H5_FORTRAN_HAS_REAL_16_KIND if(sizeof(long double) == 16) - writeFloatTypedef("long double", 16); + writeTypedef("float", "long double", 16); else if(sizeof(double) == 16) - writeFloatTypedef("double", 16); + writeTypedef("float", "double", 16); else if(sizeof(float) == 16) - writeFloatTypedef("float", 16); + writeTypedef("float", "float", 16); else /*C has no 16 byte float so disable it in Fortran*/ { printf("warning: Fortran REAL is 16 bytes, no corresponding C floating type\n"); printf(" Disabling Fortran 16 byte REALs\n"); @@ -281,13 +285,13 @@ int main(void) fprintf(c_header, "\n"); /* haddr_t */ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HADDR_T >= 8 - writeToFiles("HADDR_T", "haddr_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("int","HADDR_T", "haddr_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HADDR_T >= 4 - writeToFiles("HADDR_T", "haddr_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); + writeToFiles("int","HADDR_T", "haddr_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HADDR_T >= 2 - writeToFiles("HADDR_T", "haddr_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); + writeToFiles("int","HADDR_T", "haddr_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HADDR_T >= 1 - writeToFiles("HADDR_T", "haddr_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); + writeToFiles("int","HADDR_T", "haddr_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); #else /* Error: couldn't find a size for haddr_t */ return -1; @@ -295,13 +299,13 @@ int main(void) /* hsize_t */ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSIZE_T >= 8 - writeToFiles("HSIZE_T", "hsize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HSIZE_T >= 4 - writeToFiles("HSIZE_T", "hsize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); + writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HSIZE_T >= 2 - writeToFiles("HSIZE_T", "hsize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); + writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HSIZE_T >= 1 - writeToFiles("HSIZE_T", "hsize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); + writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); #else /* Error: couldn't find a size for hsize_t */ return -1; @@ -309,13 +313,13 @@ int main(void) /* hssize_t */ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSSIZE_T >= 8 - writeToFiles("HSSIZE_T", "hssize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("int","HSSIZE_T", "hssize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HSSIZE_T >= 4 - writeToFiles("HSSIZE_T", "hssize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); + writeToFiles("int","HSSIZE_T", "hssize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HSSIZE_T >= 2 - writeToFiles("HSSIZE_T", "hssize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); + writeToFiles("int","HSSIZE_T", "hssize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HSSIZE_T >= 1 - writeToFiles("HSSIZE_T", "hssize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); + writeToFiles("int","HSSIZE_T", "hssize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); #else /* Error: couldn't find a size for hssize_t */ return -1; @@ -323,13 +327,13 @@ int main(void) /* off_t */ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_OFF_T >= 8 - writeToFiles("OFF_T", "off_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("int","OFF_T", "off_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_OFF_T >= 4 - writeToFiles("OFF_T", "off_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); + writeToFiles("int","OFF_T", "off_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_OFF_T >= 2 - writeToFiles("OFF_T", "off_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); + writeToFiles("int","OFF_T", "off_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_OFF_T >= 1 - writeToFiles("OFF_T", "off_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); + writeToFiles("int","OFF_T", "off_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); #else /* Error: couldn't find a size for off_t */ return -1; @@ -337,13 +341,13 @@ int main(void) /* size_t */ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_SIZE_T >= 8 - writeToFiles("SIZE_T", "size_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("size_t","SIZE_T", "size_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_SIZE_T >= 4 - writeToFiles("SIZE_T", "size_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); + writeToFiles("size_t","SIZE_T", "size_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_SIZE_T >= 2 - writeToFiles("SIZE_T", "size_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); + writeToFiles("size_t","SIZE_T", "size_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_SIZE_T >= 1 - writeToFiles("SIZE_T", "size_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); + writeToFiles("size_t","SIZE_T", "size_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); #else /* Error: couldn't find a size for size_t */ return -1; @@ -351,13 +355,13 @@ int main(void) /* int */ #if defined H5_FORTRAN_HAS_NATIVE_8_KIND - writeToFiles("Fortran_INTEGER", "int_f", 8, H5_FORTRAN_HAS_NATIVE_8_KIND); + writeToFiles("int","Fortran_INTEGER", "int_f", 8, H5_FORTRAN_HAS_NATIVE_8_KIND); #elif defined H5_FORTRAN_HAS_NATIVE_4_KIND - writeToFiles("Fortran_INTEGER", "int_f", 4, H5_FORTRAN_HAS_NATIVE_4_KIND); + writeToFiles("int","Fortran_INTEGER", "int_f", 4, H5_FORTRAN_HAS_NATIVE_4_KIND); #elif defined H5_FORTRAN_HAS_NATIVE_2_KIND - writeToFiles("Fortran_INTEGER", "int_f", 2, H5_FORTRAN_HAS_NATIVE_2_KIND); + writeToFiles("int","Fortran_INTEGER", "int_f", 2, H5_FORTRAN_HAS_NATIVE_2_KIND); #elif defined H5_FORTRAN_HAS_NATIVE_1_KIND - writeToFiles("Fortran_INTEGER", "int_f", 1, H5_FORTRAN_HAS_NATIVE_1_KIND); + writeToFiles("int","Fortran_INTEGER", "int_f", 1, H5_FORTRAN_HAS_NATIVE_1_KIND); #else /* Error: couldn't find a size for int */ return -1; @@ -397,7 +401,7 @@ int main(void) { sprintf(chrA, "Fortran_INTEGER_%d", FoundIntSize[i]); sprintf(chrB, "int_%d_f", FoundIntSize[i]); - writeToFiles(chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]); + writeToFiles("int",chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]); } else /* Did not find the integer type */ { @@ -408,7 +412,7 @@ int main(void) { sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]); sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]); - writeToFiles(chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]); + writeToFiles("int",chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]); flag = 1; break; } @@ -421,7 +425,7 @@ int main(void) { sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]); sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]); - writeToFiles(chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]); + writeToFiles("int",chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]); flag = 1; break; } @@ -464,7 +468,7 @@ int main(void) { sprintf(chrA, "Fortran_REAL_%d", FoundRealSize[i]); sprintf(chrB, "real_%d_f", FoundRealSize[i]); - writeFloatToFiles(chrA, chrB, FoundRealSize[i], FoundRealSizeKind[i]); + writeToFiles("float",chrA, chrB, FoundRealSize[i], FoundRealSizeKind[i]); } else /* Did not find the real type */ { @@ -476,11 +480,11 @@ int main(void) sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]); sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]); if(FoundRealSize[j]>4) { - writeFloatToFiles(chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]); + writeToFiles("float",chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]); flag = 1; } /* else { */ -/* writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */ +/* writeToFiles("float", chrA, chrB, FoundRealSize[j]); */ /* } */ flag = 1; break; @@ -495,9 +499,9 @@ int main(void) sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]); sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]); if(FoundRealSize[j]>4) - writeFloatToFiles(chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]); + writeToFiles("float",chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]); /* else { */ -/* writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */ +/* writeToFiles("float", chrA, chrB, FoundRealSize[j]); */ /* } */ flag = 1; break; @@ -511,15 +515,15 @@ int main(void) /* hid_t */ #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 8 - writeToFiles("HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("int","HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HID_T >= 4 - writeToFiles("HID_T", "hid_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); + writeToFiles("int","HID_T", "hid_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HID_T >= 2 - writeToFiles("HID_T", "hid_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); + writeToFiles("int","HID_T", "hid_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HID_T >= 1 - writeToFiles("HID_T", "hid_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); + writeToFiles("int","HID_T", "hid_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); #elif defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 4 - writeToFiles("HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); + writeToFiles("int","HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); #else /* Error: couldn't find a size for hid_t */ return -1; @@ -528,12 +532,12 @@ int main(void) /* real_f */ #if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND if(H5_C_HAS_REAL_NATIVE_16 != 0) { - writeFloatToFiles("Fortran_REAL", "real_f", 16, H5_FORTRAN_HAS_REAL_NATIVE_16_KIND); + writeToFiles("float","Fortran_REAL", "real_f", 16, H5_FORTRAN_HAS_REAL_NATIVE_16_KIND); } #elif defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND - writeFloatToFiles("Fortran_REAL", "real_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); + writeToFiles("float", "Fortran_REAL", "real_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); #elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND - writeFloatToFiles("Fortran_REAL", "real_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND); + writeToFiles("float", "Fortran_REAL", "real_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND); #else /* Error: couldn't find a size for real_f */ return -1; @@ -542,13 +546,13 @@ int main(void) /* double_f */ #if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND if(H5_C_HAS_REAL_NATIVE_16 != 0) { /* Check if C has 16 byte floats */ - writeFloatToFiles("Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND); + writeToFiles("float", "Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND); } else { #if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND /* Fall back to 8 byte floats */ - writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); + writeToFiles("float", "Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); } #elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND /* Fall back to 4 byte floats */ - writeFloatToFiles("Fortran_DOUBLE", "double_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND); + writeToFiles("float", "Fortran_DOUBLE", "double_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND); } #else /* Error: couldn't find a size for double_f when fortran has 16 byte reals */ @@ -557,7 +561,7 @@ int main(void) #endif #elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND - writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND); + writeToFiles("float", "Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND); #else /* Error: couldn't find a size for real_f */ return -1; diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index f8fb374..345ebe7 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -112,7 +112,8 @@ noinst_PROGRAMS = H5match_types$(EXEEXT) H5fortran_detect$(EXEEXT) \ TESTS = subdir = fortran/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -469,7 +470,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_srcdir)/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -501,7 +501,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -520,17 +519,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -593,7 +589,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -608,10 +603,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -725,15 +716,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 AM_FCLIBS = $(LIBHDF5) diff --git a/fortran/src/README b/fortran/src/README index 508da69..7af5df3 100644 --- a/fortran/src/README +++ b/fortran/src/README @@ -35,8 +35,6 @@ following platforms and compilers: * SunOS 5.6 with WorkshopCompilers 4.2 Fortran 90 1.2 * SunOS 5.7 with WorkshopCompilers 5.0 Fortran 90 2.0 * OSF1 V4.0 with Digital Fortran 90 4.1 - * IRIX64 6.5 (64 option only) with MIPSpro Compilers: Version 7.3.1m - mpt.1.4 * Linux RedHat 6.1, Kernel 2.2.12 with PGF90 * T3E with Cray Fortran: Version 3.4.0.0 with mpt 1.3 @@ -55,7 +53,6 @@ Compilation solaris digunix - irix linux Example: On Digital Unix systems use the following command @@ -91,7 +88,6 @@ Compilation grpdsetexample - creates datasets in the groups hyperslabexample - writes and reads a hyperslab selectele - writes element selections - grpit - iterates through the members of the group attrexample - creates and writes a dataset attribute compound - creates, writes and reads one dim array of structures mountexample - shows how to use mounting files to access a dataset diff --git a/fortran/src/h5fc.in b/fortran/src/h5fc.in index b5a6486..6e2c9d3 100644 --- a/fortran/src/h5fc.in +++ b/fortran/src/h5fc.in @@ -313,7 +313,7 @@ if test "x$do_link" = "xyes"; then hpux*) flag="-Wl,+b -Wl," ;; freebsd*|solaris*) flag="-R" ;; rs6000*|aix*) flag="-L" ;; - irix*|sgi) flag="-rpath " ;; + sgi) flag="-rpath " ;; *) flag="" ;; esac diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in index b679aed..690af79 100644 --- a/fortran/src/hdf5_fortrandll.def.in +++ b/fortran/src/hdf5_fortrandll.def.in @@ -543,7 +543,6 @@ H5T_mp_H5TINSERT_F H5T_mp_H5TPACK_F H5T_mp_H5TARRAY_CREATE_F H5T_mp_H5TENUM_CREATE_F -H5T_mp_H5TENUM_INSERT_F H5T_mp_H5TENUM_NAMEOF_F H5T_mp_H5TENUM_VALUEOF_F H5T_mp_H5TGET_MEMBER_VALUE_F @@ -560,6 +559,9 @@ H5T_mp_H5TGET_CREATE_PLIST_F H5T_mp_H5TCOMPILER_CONV_F H5T_mp_H5TGET_NATIVE_TYPE_F @H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TCONVERT_F +@H5_F03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F +@H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F90 +@H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F03 ; H5Z H5Z_mp_H5ZUNREGISTER_F H5Z_mp_H5ZFILTER_AVAIL_F diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index d10f2ef..2893156 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -1,16 +1,17 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_FORTRAN_TESTS C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Add Test Lib #----------------------------------------------------------------------------- add_library (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} t.c) -TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} " " " ") +set_source_files_properties (t.c PROPERTIES LANGUAGE C) +TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_TEST_LIB_TARGET} @@ -18,12 +19,14 @@ target_link_libraries (${HDF5_F90_C_TEST_LIB_TARGET} H5_SET_LIB_OPTIONS (${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_NAME} ${LIB_TYPE}) set_target_properties (${HDF5_F90_C_TEST_LIB_TARGET} PROPERTIES FOLDER libraries/test/fortran + LINKER_LANGUAGE C INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>" ) # See if the F2008 intrinsic STORAGE_SIZE and C_SIZEOF are supported. If not then # fall back to F2003. If F2003 not supported then use F90 for the tests. +set_source_files_properties (tf_F90.f90 tf_F03.f90 tf_F08.f90 tf.f90 PROPERTIES LANGUAGE Fortran) if (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF) add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F08.f90 tf.f90) elseif (HDF5_ENABLE_F2003) @@ -36,15 +39,14 @@ endif (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF) set (SHARED_LINK_FLAGS " ") if (WIN32) if (BUILD_SHARED_LIBS) - set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS BUILD_HDF5_DLL) + set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS BUILD_HDF5_TEST_DLL) if (MSVC) set (SHARED_LINK_FLAGS "/DLL") endif (MSVC) endif (BUILD_SHARED_LIBS) set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS) endif (WIN32) -TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) +TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) target_link_libraries (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -53,7 +55,9 @@ target_link_libraries (${HDF5_F90_TEST_LIB_TARGET} H5_SET_LIB_OPTIONS (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_TEST_LIB_NAME} ${LIB_TYPE}) set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES FOLDER libraries/test/fortran + LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -79,7 +83,7 @@ add_executable (testhdf5_fortran tHDF5.f90 ) TARGET_NAMING (testhdf5_fortran ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (testhdf5_fortran " " " ") +TARGET_FORTRAN_PROPERTIES (testhdf5_fortran ${LIB_TYPE} " " " ") target_link_libraries (testhdf5_fortran ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -88,8 +92,12 @@ target_link_libraries (testhdf5_fortran if (WIN32 AND MSVC) target_link_libraries (testhdf5_fortran "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (testhdf5_fortran PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (testhdf5_fortran PROPERTIES FOLDER test/fortran) +target_include_directories (testhdf5_fortran PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (testhdf5_fortran PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for testhdf5_fortran_1_8 add_executable (testhdf5_fortran_1_8 @@ -101,7 +109,7 @@ add_executable (testhdf5_fortran_1_8 tHDF5_1_8.f90 ) TARGET_NAMING (testhdf5_fortran_1_8 ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 " " " ") +TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 ${LIB_TYPE} " " " ") target_link_libraries (testhdf5_fortran_1_8 ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -110,8 +118,12 @@ target_link_libraries (testhdf5_fortran_1_8 if (WIN32 AND MSVC) target_link_libraries (testhdf5_fortran_1_8 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (testhdf5_fortran_1_8 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (testhdf5_fortran_1_8 PROPERTIES FOLDER test/fortran) +target_include_directories (testhdf5_fortran_1_8 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (testhdf5_fortran_1_8 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for fortranlib_test_F03 if (HDF5_ENABLE_F2003) @@ -126,7 +138,7 @@ if (HDF5_ENABLE_F2003) tHDF5_F03.f90 ) TARGET_NAMING (fortranlib_test_F03 ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 " " " ") + TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 ${LIB_TYPE} " " " ") target_link_libraries (fortranlib_test_F03 ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -135,14 +147,18 @@ if (HDF5_ENABLE_F2003) if (WIN32 AND MSVC) target_link_libraries (fortranlib_test_F03 "ws2_32.lib") endif (WIN32 AND MSVC) - set_target_properties (fortranlib_test_F03 PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (fortranlib_test_F03 PROPERTIES FOLDER test/fortran) + target_include_directories (fortranlib_test_F03 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (fortranlib_test_F03 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endif (HDF5_ENABLE_F2003) #-- Adding test for fflush1 add_executable (fflush1 fflush1.f90) TARGET_NAMING (fflush1 ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (fflush1 " " " ") +TARGET_FORTRAN_PROPERTIES (fflush1 ${LIB_TYPE} " " " ") target_link_libraries (fflush1 ${HDF5_F90_LIB_TARGET} ${HDF5_F90_TEST_LIB_TARGET} @@ -151,13 +167,17 @@ target_link_libraries (fflush1 if (WIN32 AND MSVC) target_link_libraries (fflush1 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (fflush1 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (fflush1 PROPERTIES FOLDER test/fortran) +target_include_directories (fflush1 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (fflush1 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for fflush2 add_executable (fflush2 fflush2.f90) TARGET_NAMING (fflush2 ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (fflush2 " " " ") +TARGET_FORTRAN_PROPERTIES (fflush2 ${LIB_TYPE} " " " ") target_link_libraries (fflush2 ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -166,7 +186,11 @@ target_link_libraries (fflush2 if (WIN32 AND MSVC) target_link_libraries (fflush2 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (fflush2 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (fflush2 PROPERTIES FOLDER test/fortran) +target_include_directories (fflush2 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (fflush2 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) include (CMakeTests.cmake) diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in index 2140faa..4ec1ad5 100644 --- a/fortran/test/Makefile.in +++ b/fortran/test/Makefile.in @@ -92,7 +92,8 @@ check_PROGRAMS = $(am__EXEEXT_2) TESTS = $(am__EXEEXT_2) subdir = fortran/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -478,7 +479,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -510,7 +510,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -529,17 +528,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -602,7 +598,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -617,10 +612,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -734,10 +725,10 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.raw +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.raw # The Fortran test library noinst_LTLIBRARIES = libh5test_fortran.la diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90 index 039dc6c..320d661 100644 --- a/fortran/test/fortranlib_test_1_8.f90 +++ b/fortran/test/fortranlib_test_1_8.f90 @@ -89,7 +89,7 @@ PROGRAM fortranlibtest total_error) ret_total_error = 0 - CALL test_h5s_encode(cleanup, ret_total_error) + CALL test_h5s_encode(ret_total_error) CALL write_test_status(ret_total_error, & ' Testing dataspace encoding and decoding', & total_error) @@ -100,6 +100,12 @@ PROGRAM fortranlibtest ' Testing scaleoffset filter', & total_error) + ret_total_error = 0 + CALL test_genprop_basic_class(ret_total_error ) + CALL write_test_status(ret_total_error, & + ' Testing basic generic property list class creation functionality', & + total_error) + WRITE(*,*) WRITE(*,*) ' ============================================ ' diff --git a/fortran/test/t.h b/fortran/test/t.h index d315bda..6d6af52 100644 --- a/fortran/test/t.h +++ b/fortran/test/t.h @@ -34,7 +34,7 @@ H5_FCTESTDLL int_f nh5_fixname_c H5_FCTESTDLL int_f nh5_cleanup_c (_fcd base_name, size_t_f *base_namelen, hid_t_f *fapl); -H5_FCTESTDLL void nh5_exit_c +H5_FCTESTDLL NORETURN void nh5_exit_c (int_f *status); H5_FCTESTDLL void nh5_env_nocleanup_c diff --git a/fortran/test/tH5A.f90 b/fortran/test/tH5A.f90 index 07ca6da..e3b3b2a 100644 --- a/fortran/test/tH5A.f90 +++ b/fortran/test/tH5A.f90 @@ -129,8 +129,6 @@ CONTAINS !data buffers ! INTEGER, DIMENSION(NX,NY) :: data_in - LOGICAL :: differ - ! !Initialize data_in buffer diff --git a/fortran/test/tH5A_1_8.f90 b/fortran/test/tH5A_1_8.f90 index 02bef53..8e20100 100644 --- a/fortran/test/tH5A_1_8.f90 +++ b/fortran/test/tH5A_1_8.f90 @@ -157,7 +157,7 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error) ' - Testing creating attributes by name', & total_error) - ! /* More complex tests with both "new format" and "shared" attributes */ + ! More complex tests with both "new format" and "shared" attributes IF( use_shared(j) ) THEN ret_total_error = 0 CALL test_attr_shared_rename(my_fcpl, my_fapl, ret_total_error) @@ -190,12 +190,12 @@ END SUBROUTINE attribute_test_1_8 SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_corder_create_compact(): Test basic H5A (attribute) code. !** Tests compact attribute storage on objects with attribute creation order info !** -!****************************************************************/ +!*************************************************************** ! Needed for get_info_by_name @@ -245,17 +245,17 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) data_dims = 0 ! WRITE(*,*) " - Testing Compact Storage of Attributes with Creation Order Info" - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) CALL H5Pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error) CALL check("H5Pset_attr_creation_order",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) @@ -281,7 +281,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) my_dataset = dset3 END SELECT DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -298,7 +298,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) END DO END DO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -306,15 +306,15 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) @@ -341,34 +341,34 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) DO u = 0,max_compact-1 WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Retrieve information for attribute */ + ! Retrieve information for attribute CALL H5Aget_info_by_name_f(my_dataset, ".", attrname, & f_corder_valid, corder, cset, data_size, error, lapl_id = H5P_DEFAULT_F ) !with optional CALL check("H5Aget_info_by_name_f", error, total_error) - ! /* Verify creation order of attribute */ + ! Verify creation order of attribute CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) CALL verify("H5Aget_info_by_name_f", corder, u, total_error) - ! /* Retrieve information for attribute */ + ! Retrieve information for attribute CALL H5Aget_info_by_name_f(my_dataset, ".", attrname, & f_corder_valid, corder, cset, data_size, error) ! without optional CALL check("H5Aget_info_by_name_f", error, total_error) - ! /* Verify creation order of attribute */ + ! Verify creation order of attribute CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) CALL verify("H5Aget_info_by_name_f", corder, u, total_error) END DO END DO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -376,19 +376,19 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) END SUBROUTINE test_attr_corder_create_compact SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_null_space(): Test basic H5A (attribute) code. !** Tests storing attribute with "null" dataspace !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -426,41 +426,41 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) data_dims = 0 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error) CALL check("h5open_f",error,total_error) - ! /* Create dataspace for dataset attributes */ + ! Create dataspace for dataset attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create "null" dataspace for attribute */ + ! Create "null" dataspace for attribute CALL h5screate_f(H5S_NULL_F, null_sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error) CALL check("h5dcreate_f",error,total_error) - ! /* Add attribute with 'null' dataspace */ + ! Add attribute with 'null' dataspace - ! /* Create attribute */ + ! Create attribute CALL h5acreate_f(dataset, "null attr", H5T_NATIVE_INTEGER, null_sid, attr, error) CALL check("h5acreate_f",error,total_error) - ! /* Try to read data from the attribute */ - ! /* (shouldn't fail, but should leave buffer alone) */ + ! Try to read data from the attribute + ! (shouldn't fail, but should leave buffer alone) value(1) = 103 data_dims(1) = 1 CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error) CALL check("h5aread_f",error,total_error) CALL verify("h5aread_f",value(1),103,total_error) -! /* Try to read data from the attribute again but*/ -! /* for a scalar */ +! Try to read data from the attribute again but +! for a scalar value_scalar = 104 data_dims(1) = 1 @@ -482,7 +482,7 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) CALL h5aget_info_f(attr, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f", error, total_error) - ! /* Check the attribute's information */ + ! Check the attribute's information CALL VERIFY("h5aget_info_f.corder",corder,0,total_error) CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) @@ -513,12 +513,12 @@ END SUBROUTINE test_attr_null_space SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_create_by_name(): Test basic H5A (attribute) code. !** Tests creating attributes by name !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -563,32 +563,32 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) data_dims = 0 - ! /* Create dataspace for dataset & attributes */ + ! Create dataspace for dataset & attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Print appropriate test message */ + ! Print appropriate test message IF(use_index(i))THEN WRITE(*,*) " - Testing Creating Attributes By Name w/Creation Order Index" ELSE WRITE(*,*) " - Testing Creating Attributes By Name w/o Creation Order Index" ENDIF - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object IF(new_format)THEN IF(use_index(i))THEN @@ -602,7 +602,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) ENDIF - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl_id=dcpl ) CALL check("h5dcreate_f2",error,total_error) @@ -614,7 +614,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) CALL check("h5dcreate_f4",error,total_error) - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -632,39 +632,39 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) END SELECT - !/* Create attributes, up to limit of compact form */ + ! Create attributes, up to limit of compact form DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL H5Acreate_by_name_f(fid, dsetname, attrname, H5T_NATIVE_INTEGER, sid, & attr, error, lapl_id=H5P_DEFAULT_F, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F) CALL check("H5Acreate_by_name_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify information for NEW attribute */ + ! Verify information for NEW attribute CALL attr_info_by_idx_check(my_dataset, attrname, INT(u,HSIZE_T), use_index(i), total_error) ! CALL check("FAILED IN attr_info_by_idx_check",total_error) ENDDO - ! /* Test opening attributes stored compactly */ + ! Test opening attributes stored compactly CALL attr_open_check(fid, dsetname, my_dataset, u, total_error) ENDDO - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) CASE (0) @@ -678,7 +678,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) dsetname = DSET3_NAME END SELECT - ! /* Create more attributes, to push into dense form */ + ! Create more attributes, to push into dense form DO u = max_compact, max_compact* 2 - 1 WRITE(chr2,'(I2.2)') u @@ -688,12 +688,12 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) attr, error, lapl_id=H5P_DEFAULT_F) CALL check("H5Acreate_by_name",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) @@ -701,7 +701,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) ENDDO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -710,16 +710,16 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) ENDDO - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) @@ -728,12 +728,12 @@ END SUBROUTINE test_attr_create_by_name SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_info_by_idx(): Test basic H5A (attribute) code. !** Tests querying attribute info by index !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -790,31 +790,31 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) data_dims = 0 - ! /* Create dataspace for dataset & attributes */ + ! Create dataspace for dataset & attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object IF(new_format)THEN IF(use_index(i))THEN Input1 = H5P_CRT_ORDER_INDEXED_F @@ -825,7 +825,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL check("H5Pset_attr_creation_order",error,total_error) ENDIF - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error ) CALL check("h5dcreate_f",error,total_error) @@ -836,7 +836,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error ) CALL check("h5dcreate_f",error,total_error) - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 @@ -849,7 +849,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) my_dataset = dset3 END SELECT - ! /* Check for query on non-existant attribute */ + ! Check for query on non-existant attribute n = 0 @@ -879,10 +879,10 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("h5aget_name_by_idx_f",error,minusone,total_error) - ! /* Create attributes, up to limit of compact form */ + ! Create attributes, up to limit of compact form DO j = 0, max_compact-1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') j attrname = 'attr '//chr2 @@ -890,19 +890,19 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = j data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify information for new attribute */ + ! Verify information for new attribute !EP CALL attr_info_by_idx_check(my_dataset, attrname, INT(j,HSIZE_T), use_index(i), total_error ) htmp = j @@ -914,7 +914,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) ENDDO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -922,17 +922,17 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) END DO - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) @@ -962,13 +962,13 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T - ! /* Verify the information for first attribute, in increasing creation order */ + ! Verify the information for first attribute, in increasing creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, hzero, & f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_by_idx_f",error,total_error) CALL verify("h5aget_info_by_idx_f",corder,0,total_error) - ! /* Verify the information for new attribute, in increasing creation order */ + ! Verify the information for new attribute, in increasing creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, n, & f_corder_valid, corder, cset, data_size, error) @@ -976,7 +976,7 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) CALL check("h5aget_info_by_idx_f",error,total_error) CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) - ! /* Verify the name for new link, in increasing creation order */ + ! Verify the name for new link, in increasing creation order ! Try with the correct buffer size @@ -990,24 +990,24 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) ENDIF CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) - ! /* Don't test "native" order if there is no creation order index, since + ! Don't test "native" order if there is no creation order index, since ! * there's not a good way to easily predict the attribute's order in the name ! * index. - ! */ + ! IF (use_index) THEN - ! /* Verify the information for first attribute, in native creation order */ + ! Verify the information for first attribute, in native creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, hzero, & f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_by_idx_f",error,total_error) CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error) - ! /* Verify the information for new attribute, in native creation order */ + ! Verify the information for new attribute, in native creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, n, & f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_by_idx_f",error,total_error) CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) - ! /* Verify the name for new link, in increasing native order */ + ! Verify the name for new link, in increasing native order CALL h5aget_name_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, & n, tmpname, error) ! check with no optional parameters CALL check("h5aget_name_by_idx_f",error,total_error) @@ -1075,12 +1075,12 @@ END SUBROUTINE attr_info_by_idx_check SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_shared_rename(): Test basic H5A (attribute) code. !** Tests renaming shared attributes in "compact" & "dense" storage !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -1128,114 +1128,114 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension INTEGER :: arank = 1 ! Attribure rank - ! /* Initialize "big" attribute data */ + ! Initialize "big" attribute data - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create "big" dataspace for "large" attributes */ + ! Create "big" dataspace for "large" attributes CALL h5screate_simple_f(arank, adims2, big_sid, error) CALL check("h5screate_simple_f",error,total_error) - ! /* Loop over type of shared components */ + ! Loop over type of shared components DO test_shared = 0, 2 - ! /* Make copy of file creation property list */ + ! Make copy of file creation property list CALL H5Pcopy_f(fcpl, my_fcpl, error) CALL check("H5Pcopy",error,total_error) - ! /* Set up datatype for attributes */ + ! Set up datatype for attributes CALL H5Tcopy_f(H5T_NATIVE_INTEGER, attr_tid, error) CALL check("H5Tcopy",error,total_error) - ! /* Special setup for each type of shared components */ + ! Special setup for each type of shared components IF( test_shared .EQ. 0) THEN - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error) CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) CALL check(" H5Pset_shared_mesg_index_f",error, total_error) ELSE - ! /* Set up copy of file creation property list */ + ! Set up copy of file creation property list CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error) - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) - ! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */ + ! Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error) ENDIF - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, my_fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close FCPL copy */ + ! Close FCPL copy CALL h5pclose_f(my_fcpl, error) CALL check("h5pclose_f", error, total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl) CALL check("h5open_f",error,total_error) - ! /* Commit datatype to file */ + ! Commit datatype to file IF(test_shared.EQ.2) THEN CALL H5Tcommit_f(fid, TYPE1_NAME, attr_tid, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("H5Tcommit",error,total_error) ENDIF - ! /* Set up to query the object creation properties */ + ! Set up to query the object creation properties CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) - ! /* Retrieve limits for compact/dense attribute storage */ + ! Retrieve limits for compact/dense attribute storage CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Add attributes to each dataset, until after converting to dense storage */ + ! Add attributes to each dataset, until after converting to dense storage DO u = 0, (max_compact * 2) - 1 - ! /* Create attribute name */ + ! Create attribute name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on first dataset */ + ! Create "small" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) ELSE - ! Create "big" attribute on first dataset */ + ! Create "big" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 attr_integer_data(1) = u + 1 @@ -1244,19 +1244,19 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on second dataset */ + ! Create "small" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 @@ -1264,12 +1264,12 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) CALL check("h5awrite_f",error,total_error) ELSE - ! /* Create "big" attribute on second dataset */ + ! Create "big" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) -! /* Write data into the attribute */ +! Write data into the attribute attr_integer_data(1) = u + 1 @@ -1278,103 +1278,103 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) ! CALL check("h5awrite_f",error,total_error) -! /* Check refcount for attribute */ +! Check refcount for attribute ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Create new attribute name */ + ! Create new attribute name WRITE(chr2,'(I2.2)') u attrname2 = 'new attr '//chr2 - ! /* Change second dataset's attribute's name */ + ! Change second dataset's attribute's name CALL H5Arename_by_name_f(fid, DSET2_NAME, attrname, attrname2, error, lapl_id=H5P_DEFAULT_F) CALL check("H5Arename_by_name_f",error,total_error) - ! /* Check refcount on attributes now */ + ! Check refcount on attributes now - ! /* Check refcount on renamed attribute */ + ! Check refcount on renamed attribute CALL H5Aopen_f(dataset2, attrname2, attr, error, aapl_id=H5P_DEFAULT_F) CALL check("H5Aopen_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Check refcount on original attribute */ + ! Check refcount on original attribute CALL H5Aopen_f(dataset, attrname, attr, error) CALL check("H5Aopen",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Change second dataset's attribute's name back to original */ + ! Change second dataset's attribute's name back to original CALL H5Arename_by_name_f(fid, DSET2_NAME, attrname2, attrname, error) CALL check("H5Arename_by_name_f",error,total_error) - ! /* Check refcount on attributes now */ + ! Check refcount on attributes now - ! /* Check refcount on renamed attribute */ + ! Check refcount on renamed attribute CALL H5Aopen_f(dataset2, attrname, attr, error) CALL check("H5Aopen",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Check refcount on original attribute */ + ! Check refcount on original attribute - ! /* Check refcount on renamed attribute */ + ! Check refcount on renamed attribute CALL H5Aopen_f(dataset, attrname, attr, error) CALL check("H5Aopen",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Close attribute's datatype */ + ! Close attribute's datatype CALL h5tclose_f(attr_tid, error) CALL check("h5tclose_f",error,total_error) - ! /* Close attribute's datatype */ + ! Close attribute's datatype CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dataset2, error) CALL check("h5dclose_f",error,total_error) - ! /* Unlink datasets with attributes */ + ! Unlink datasets with attributes CALL H5Ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F) CALL check("HLdelete",error,total_error) CALL H5Ldelete_f(fid, DSET2_NAME, error) CALL check("HLdelete",error,total_error) - !/* Unlink committed datatype */ + ! Unlink committed datatype IF(test_shared == 2)THEN CALL H5Ldelete_f(fid, TYPE1_NAME, error) CALL check("HLdelete_f",error,total_error) ENDIF - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Check size of file */ + ! Check size of file !filesize = h5_get_file_size(FILENAME); !VERIFY(filesize, empty_filesize, "h5_get_file_size"); ENDDO - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) CALL h5sclose_f(big_sid, error) @@ -1385,12 +1385,12 @@ END SUBROUTINE test_attr_shared_rename SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_delete_by_idx(): Test basic H5A (attribute) code. !** Tests deleting attribute by index !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -1402,9 +1402,9 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) INTEGER(HID_T), INTENT(IN) :: fapl INTEGER, INTENT(INOUT) :: total_error CHARACTER(LEN=8) :: FileName = "tattr.h5" - INTEGER(HID_T) :: fid ! /* HDF5 File ID */ - INTEGER(HID_T) :: dcpl ! /* Dataset creation property list ID */ - INTEGER(HID_T) :: sid ! /* Dataspace ID */ + INTEGER(HID_T) :: fid ! HDF5 File ID + INTEGER(HID_T) :: dcpl ! Dataset creation property list ID + INTEGER(HID_T) :: sid ! Dataspace ID CHARACTER(LEN=8) :: DSET1_NAME = "Dataset1" CHARACTER(LEN=8) :: DSET2_NAME = "Dataset2" @@ -1442,40 +1442,40 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) INTEGER :: idx_type INTEGER :: order - INTEGER :: u ! /* Local index variable */ + INTEGER :: u ! Local index variable INTEGER :: Input1 INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T INTEGER :: minusone = -1 data_dims = 0 - ! /* Create dataspace for dataset & attributes */ + ! Create dataspace for dataset & attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - !/* Loop over operating on different indices on link fields */ + ! Loop over operating on different indices on link fields DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F - ! /* Loop over operating in different orders */ + ! Loop over operating in different orders DO order = H5_ITER_INC_F, H5_ITER_DEC_F - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object IF(new_format)THEN IF(use_index(i))THEN @@ -1489,7 +1489,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDIF - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl ) CALL check("h5dcreate_f2",error,total_error) @@ -1500,7 +1500,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error, dcpl ) CALL check("h5dcreate_f4",error,total_error) - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -1515,36 +1515,36 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) END SELECT - ! /* Check for deleting non-existant attribute */ + ! Check for deleting non-existant attribute !EP CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, 0_HSIZE_T,error, lapl_id=H5P_DEFAULT_F) CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, hzero,error, lapl_id=H5P_DEFAULT_F) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) - ! /* Create attributes, up to limit of compact form */ + ! Create attributes, up to limit of compact form DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify information for new attribute */ + ! Verify information for new attribute CALL attr_info_by_idx_check(my_dataset, attrname, INT(u,HSIZE_T), use_index(i), total_error ) ENDDO - !/* Check for out of bound deletions */ + ! Check for out of bound deletions CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error, lapl_id=H5P_DEFAULT_F) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) @@ -1563,11 +1563,11 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! CALL HDassert(0.AND."Toomanydatasets!") END SELECT - ! /* Delete attributes from compact storage */ + ! Delete attributes from compact storage DO u = 0, max_compact - 2 - ! /* Delete first attribute in appropriate order */ + ! Delete first attribute in appropriate order !EP CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, error) @@ -1575,7 +1575,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL check("H5Adelete_by_idx_f",error,total_error) - ! /* Verify the attribute information for first attribute in appropriate order */ + ! Verify the attribute information for first attribute in appropriate order ! HDmemset(&ainfo, 0, sizeof(ainfo)); !EP CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, & @@ -1590,7 +1590,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("H5Aget_info_by_idx_f",corder, max_compact-(u + 2),total_error) ENDIF - ! /* Verify the name for first attribute in appropriate order */ + ! Verify the name for first attribute in appropriate order size = 7 ! *CHECK* IF NOT THE SAME SIZE CALL h5aget_name_by_idx_f(my_dataset, ".", idx_type, order,INT(0,hsize_t), & @@ -1607,7 +1607,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) ENDDO - ! /* Delete last attribute */ + ! Delete last attribute !EP CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, error) CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, hzero, error) @@ -1615,7 +1615,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDDO -! /* Work on all the datasets */ +! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -1629,11 +1629,11 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! CALL HDassert(0.AND."Toomanydatasets!") END SELECT - ! /* Create more attributes, to push into dense form */ + ! Create more attributes, to push into dense form DO u = 0, (max_compact * 2) - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -1641,24 +1641,24 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Check for out of bound deletion */ + ! Check for out of bound deletion CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -1670,15 +1670,15 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) my_dataset = dset3 END SELECT - ! /* Delete attributes from dense storage */ + ! Delete attributes from dense storage DO u = 0, (max_compact * 2) - 1 - 1 - ! /* Delete first attribute in appropriate order */ + ! Delete first attribute in appropriate order CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error) CALL check("H5Adelete_by_idx_f",error,total_error) - ! /* Verify the attribute information for first attribute in appropriate order */ + ! Verify the attribute information for first attribute in appropriate order CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), & f_corder_valid, corder, cset, data_size, error) @@ -1690,7 +1690,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("H5Aget_info_by_idx_f",corder, ((max_compact * 2) - (u + 2)), total_error) ENDIF - ! /* Verify the name for first attribute in appropriate order */ + ! Verify the name for first attribute in appropriate order ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE); size = 7 ! *CHECK* if not the correct size @@ -1709,17 +1709,17 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDDO - ! /* Delete last attribute */ + ! Delete last attribute CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error, lapl_id=H5P_DEFAULT_F) CALL check("H5Adelete_by_idx_f",error,total_error) - !/* Check for deletion on empty attribute storage again */ + ! Check for deletion on empty attribute storage again CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -1727,18 +1727,18 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) ENDDO ENDDO ENDDO - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) @@ -1746,12 +1746,12 @@ END SUBROUTINE test_attr_delete_by_idx SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_shared_delete(): Test basic H5A (attribute) code. !** Tests deleting shared attributes in "compact" & "dense" storage !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -1796,77 +1796,77 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension INTEGER :: arank = 1 ! Attribure rank - ! /* Output message about test being performed */ + ! Output message about test being performed - ! /* Initialize "big" attribute DATA */ - ! /* Create dataspace for dataset */ + ! Initialize "big" attribute DATA + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - !/* Create "big" dataspace for "large" attributes */ + ! Create "big" dataspace for "large" attributes CALL h5screate_simple_f(arank, adims2, big_sid, error) CALL check("h5screate_simple_f",error,total_error) - ! /* Loop over type of shared components */ + ! Loop over type of shared components DO test_shared = 0, 2 - ! /* Make copy of file creation property list */ + ! Make copy of file creation property list CALL H5Pcopy_f(fcpl, my_fcpl, error) CALL check("H5Pcopy",error,total_error) - ! /* Set up datatype for attributes */ + ! Set up datatype for attributes CALL H5Tcopy_f(H5T_NATIVE_INTEGER, attr_tid, error) CALL check("H5Tcopy",error,total_error) - ! /* Special setup for each type of shared components */ + ! Special setup for each type of shared components IF( test_shared .EQ. 0) THEN - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error) CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) CALL check(" H5Pset_shared_mesg_index_f",error, total_error) ELSE - ! /* Set up copy of file creation property list */ + ! Set up copy of file creation property list CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error) - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) - ! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */ + ! Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error) ENDIF - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, my_fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close FCPL copy */ + ! Close FCPL copy CALL h5pclose_f(my_fcpl, error) CALL check("h5pclose_f", error, total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl) CALL check("h5open_f",error,total_error) - ! /* Commit datatype to file */ + ! Commit datatype to file IF(test_shared.EQ.2) THEN CALL H5Tcommit_f(fid, TYPE1_NAME, attr_tid, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("H5Tcommit",error,total_error) ENDIF - ! /* Set up to query the object creation properties */ + ! Set up to query the object creation properties CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) @@ -1874,42 +1874,42 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) - ! /* Retrieve limits for compact/dense attribute storage */ + ! Retrieve limits for compact/dense attribute storage CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Add attributes to each dataset, until after converting to dense storage */ + ! Add attributes to each dataset, until after converting to dense storage DO u = 0, (max_compact * 2) - 1 - ! /* Create attribute name */ + ! Create attribute name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on first dataset */ + ! Create "small" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) ELSE - ! Create "big" attribute on first dataset */ + ! Create "big" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error) CALL check("h5acreate_f",error,total_error) - ! Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 @@ -1918,31 +1918,31 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on second dataset */ + ! Create "small" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) ELSE - ! /* Create "big" attribute on second dataset */ + ! Create "big" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) -! /* Write data into the attribute */ +! Write data into the attribute attr_integer_data(1) = u + 1 @@ -1951,21 +1951,21 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) CALL check("h5awrite_f",error,total_error) ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Delete attributes from second dataset */ + ! Delete attributes from second dataset DO u = 0, max_compact*2-1 - ! /* Create attribute name */ + ! Create attribute name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Delete second dataset's attribute */ + ! Delete second dataset's attribute CALL H5Adelete_by_name_f(fid, DSET2_NAME, attrname,error,lapl_id=H5P_DEFAULT_F) CALL check("H5Adelete_by_name", error, total_error) @@ -1973,31 +1973,31 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) CALL check("h5aopen_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Close attribute's datatype */ + ! Close attribute's datatype CALL h5tclose_f(attr_tid, error) CALL check("h5tclose_f",error,total_error) - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dataset2, error) CALL check("h5dclose_f",error,total_error) - ! /* Unlink datasets WITH attributes */ + ! Unlink datasets WITH attributes CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F) CALL check("H5Ldelete_f", error, total_error) CALL h5ldelete_f(fid, DSET2_NAME, error) CALL check("H5Ldelete_f", error, total_error) - ! /* Unlink committed datatype */ + ! Unlink committed datatype IF( test_shared == 2) THEN CALL h5ldelete_f(fid, TYPE1_NAME, error) @@ -2005,13 +2005,13 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) ENDIF - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) ENDDO - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) CALL h5sclose_f(big_sid, error) @@ -2023,12 +2023,12 @@ END SUBROUTINE test_attr_shared_delete SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_dense_open(): Test basic H5A (attribute) code. !** Tests opening attributes in "dense" storage !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -2064,73 +2064,73 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) data_dims = 0 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl) CALL check("h5open_f",error,total_error) - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Query the group creation properties */ + ! Query the group creation properties CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Enable creation order tracking on attributes, so creation order tests work */ + ! Enable creation order tracking on attributes, so creation order tests work CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_TRACKED_F, error) CALL check("H5Pset_attr_creation_order",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, & lcpl_id=H5P_DEFAULT_F, dcpl_id=dcpl, dapl_id=H5P_DEFAULT_F) CALL check("h5dcreate_f",error,total_error) - ! /* Retrieve limits for compact/dense attribute storage */ + ! Retrieve limits for compact/dense attribute storage CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Add attributes, until just before converting to dense storage */ + ! Add attributes, until just before converting to dense storage DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify attributes written so far */ + ! Verify attributes written so far CALL test_attr_dense_verify(dataset, u, total_error) ENDDO ! -! /* Add one more attribute, to push into "dense" storage */ -! /* Create attribute */ +! Add one more attribute, to push into "dense" storage +! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -2138,47 +2138,47 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) - ! /* Verify all the attributes written */ + ! Verify all the attributes written ! ret = test_attr_dense_verify(dataset, (u + 1)); ! CHECK(ret, FAIL, "test_attr_dense_verify"); - ! /* CLOSE Dataset */ + ! CLOSE Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Unlink dataset with attributes */ + ! Unlink dataset with attributes CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F) CALL check("H5Ldelete_f", error, total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Check size of file */ + ! Check size of file ! filesize = h5_get_file_size(FILENAME); ! VERIFY(filesize, empty_filesize, "h5_get_file_size") END SUBROUTINE test_attr_dense_open -!/**************************************************************** +!*************************************************************** !** !** test_attr_dense_verify(): Test basic H5A (attribute) code. !** Verify attributes on object !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) @@ -2206,21 +2206,21 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) data_dims = 0 - ! /* Retrieve the current # of reported errors */ + ! Retrieve the current # of reported errors ! old_nerrs = GetTestNumErrs(); - ! /* Re-open all the attributes by name and verify the data */ + ! Re-open all the attributes by name and verify the data DO u = 0, max_attr -1 - ! /* Open attribute */ + ! Open attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL h5aopen_f(loc_id, attrname, attr, error) CALL check("h5aopen_f",error,total_error) - ! /* Read data from the attribute */ + ! Read data from the attribute ! value = 103 data_dims(1) = 1 @@ -2229,22 +2229,22 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) CALL CHECK("H5Aread_F", error, total_error) CALL VERIFY("H5Aread_F", value, u, total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Re-open all the attributes by index and verify the data */ + ! Re-open all the attributes by index and verify the data DO u=0, max_attr-1 - ! /* Open attribute */ + ! Open attribute CALL H5Aopen_by_idx_f(loc_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(u,HSIZE_T), & attr, error, aapl_id=H5P_DEFAULT_F) - ! /* Verify Name */ + ! Verify Name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -2255,26 +2255,26 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) WRITE(*,*) 'ERROR: attribute name different: attr_name = ',check_name, ', should be ', attrname total_error = total_error + 1 ENDIF - ! /* Read data from the attribute */ + ! Read data from the attribute data_dims(1) = 1 CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error) CALL CHECK("H5Aread_f", error, total_error) CALL VERIFY("H5Aread_f", value, u, total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO END SUBROUTINE test_attr_dense_verify -!/**************************************************************** +!*************************************************************** !** !** test_attr_corder_create_empty(): Test basic H5A (attribute) code. !** Tests basic code to create objects with attribute creation order info !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) @@ -2300,30 +2300,30 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) INTEGER :: crt_order_flags INTEGER :: minusone = -1 - ! /* Output message about test being performed */ + ! Output message about test being performed ! WRITE(*,*) " - Testing Basic Code for Attributes with Creation Order Info" - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Get creation order indexing on object */ + ! Get creation order indexing on object CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) - ! /* Setting invalid combination of a attribute order creation order indexing on should fail */ + ! Setting invalid combination of a attribute order creation order indexing on should fail CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_INDEXED_F, error) CALL VERIFY("H5Pset_attr_creation_order_f",error , minusone, total_error) CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object CALL h5pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error) CALL check("H5Pset_attr_creation_order_f",error,total_error) @@ -2332,72 +2332,72 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , & IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error) - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, & lcpl_id=H5P_DEFAULT_F, dapl_id=H5P_DEFAULT_F, dcpl_id=dcpl) CALL check("h5dcreate_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) - ! /* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl) CALL check("h5open_f",error,total_error) - ! /* Open dataset created */ + ! Open dataset created CALL h5dopen_f(fid, DSET1_NAME, dataset, error, H5P_DEFAULT_F ) CALL check("h5dopen_f",error,total_error) - ! /* Retrieve dataset creation property list for group */ + ! Retrieve dataset creation property list for group CALL H5Dget_create_plist_f(dataset, dcpl, error) CALL check("H5Dget_create_plist_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , & IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error ) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) END SUBROUTINE test_attr_corder_create_basic -!/**************************************************************** +!*************************************************************** !** !** test_attr_basic_write(): Test basic H5A (attribute) code. !** Tests integer attributes on both datasets and groups !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_basic_write(fapl, total_error) @@ -2451,97 +2451,97 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) attr_data1a(3) = -99890 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid1, error, H5P_DEFAULT_F, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_simple_f(rank1, dims1, sid1, error, maxdims1) CALL check("h5screate_simple_f",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid1, DSET1_NAME, H5T_NATIVE_CHARACTER, sid1, dataset, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F ) CALL check("h5dcreate_f",error,total_error) - ! /* Create dataspace for attribute */ + ! Create dataspace for attribute CALL h5screate_simple_f(ATTR1_RANK, dimsa, sid2, error) CALL check("h5screate_simple_f",error,total_error) - ! /* Try to create an attribute on the file (should create an attribute on root group) */ + ! Try to create an attribute on the file (should create an attribute on root group) CALL h5acreate_f(fid1, ATTR1_NAME, H5T_NATIVE_INTEGER, sid2, attr, error, aapl_id=H5P_DEFAULT_F, acpl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Open the root group */ + ! Open the root group CALL H5Gopen_f(fid1, "/", group, error, H5P_DEFAULT_F) CALL check("H5Gopen_f",error,total_error) - ! /* Open attribute again */ + ! Open attribute again CALL h5aopen_f(group, ATTR1_NAME, attr, error) CALL check("h5aopen_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Close root group */ + ! Close root group CALL H5Gclose_f(group, error) CALL check("h5gclose_f",error,total_error) - ! /* Create an attribute for the dataset */ + ! Create an attribute for the dataset CALL h5acreate_f(dataset, ATTR1_NAME, H5T_NATIVE_INTEGER, sid2, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write attribute information */ + ! Write attribute information CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_data1, dimsa, error) CALL check("h5awrite_f",error,total_error) - ! /* Create an another attribute for the dataset */ + ! Create an another attribute for the dataset CALL h5acreate_f(dataset, ATTR1A_NAME, H5T_NATIVE_INTEGER, sid2, attr2, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write attribute information */ + ! Write attribute information CALL h5awrite_f(attr2, H5T_NATIVE_INTEGER, attr_data1a, dimsa, error) CALL check("h5awrite_f",error,total_error) - ! /* Check storage size for attribute */ + ! Check storage size for attribute CALL h5aget_storage_size_f(attr, attr_size, error) CALL check("h5aget_storage_size_f",error,total_error) !EP CALL VERIFY("h5aget_storage_size_f", INT(attr_size), 2*HSIZE_T, total_error) - ! /* Read attribute information immediately, without closing attribute */ + ! Read attribute information immediately, without closing attribute CALL h5aread_f(attr, H5T_NATIVE_INTEGER, read_data1, dimsa, error) CALL check("h5aread_f",error,total_error) - ! /* Verify values read in */ + ! Verify values read in DO i = 1, ATTR1_DIM1 CALL VERIFY('h5aread_f',attr_data1(i),read_data1(i), total_error) ENDDO - ! /* CLOSE attribute */ + ! CLOSE attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr2, error) CALL check("h5aclose_f",error,total_error) - ! /* change attribute name */ + ! change attribute name CALL H5Arename_f(dataset, ATTR1_NAME, ATTR_TMP_NAME, error) CALL check("H5Arename_f", error, total_error) - ! /* Open attribute again */ + ! Open attribute again CALL h5aopen_f(dataset, ATTR_TMP_NAME, attr, error) CALL check("h5aopen_f",error,total_error) - ! /* Verify new attribute name */ + ! Verify new attribute name ! Set a deliberately small size check_name = ' ' ! need to initialize or does not pass test @@ -2572,7 +2572,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) CALL check('H5Aget_name_f',error,total_error) CALL VerifyString('H5Aget_name_f',chr_exact_size,ATTR_TMP_NAME, total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) @@ -2580,22 +2580,22 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) CALL check("h5sclose_f",error,total_error) CALL h5sclose_f(sid2, error) CALL check("h5sclose_f",error,total_error) - !/* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid1, error) CALL check("h5fclose_f",error,total_error) END SUBROUTINE test_attr_basic_write -!/**************************************************************** +!*************************************************************** !** !** test_attr_many(): Test basic H5A (attribute) code. !** Tests storing lots of attributes !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) @@ -2630,20 +2630,20 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) data_dims = 0 - !/* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataspace for attribute */ + ! Create dataspace for attribute CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create group for attributes */ + ! Create group for attributes CALL H5Gcreate_f(fid, GROUP1_NAME, gid, error) CALL check("H5Gcreate_f", error, total_error) - ! /* Create many attributes */ + ! Create many attributes IF(new_format)THEN nattr = 250 @@ -2687,21 +2687,21 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) ENDDO - ! /* Close group */ + ! Close group CALL H5Gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) END SUBROUTINE test_attr_many -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: attr_open_check ! * ! * Purpose: Check opening attribute on an object @@ -2713,7 +2713,7 @@ END SUBROUTINE test_attr_many ! * March 21, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) @@ -2738,10 +2738,10 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) INTEGER(HSIZE_T) :: storage_size ! attributes storage requirements CHARACTER(LEN=2) :: chr2 INTEGER(HID_T) attr_id - ! /* Open each attribute on object by index and check that it's the correct one */ + ! Open each attribute on object by index and check that it's the correct one DO u = 0, max_attrs-1 - ! /* Open the attribute */ + ! Open the attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -2751,12 +2751,12 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aopen_f",error,total_error) - ! /* Get the attribute's information */ + ! Get the attribute's information CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) - ! /* Check that the object's attributes are correct */ + ! Check that the object's attributes are correct CALL VERIFY("h5aget_info_f.corder",corder,u,total_error) CALL Verifylogical("h5aget_info_f.corder_valid",f_corder_valid,.TRUE.,total_error) CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) @@ -2766,18 +2766,18 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr_id, error) CALL check("h5aclose_f",error,total_error) - ! /* Open the attribute */ + ! Open the attribute CALL H5Aopen_by_name_f(obj_id, ".", attrname, attr_id, error, lapl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F) CALL check("H5Aopen_by_name_f", error, total_error) CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) - ! /* Check the attribute's information */ + ! Check the attribute's information CALL VERIFY("h5aget_info_f",corder,u,total_error) CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error) CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) @@ -2785,21 +2785,21 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aget_storage_size_f",error,total_error) CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr_id, error) CALL check("h5aclose_f",error,total_error) - ! /* Open the attribute */ + ! Open the attribute CALL H5Aopen_by_name_f(fid, dsetname, attrname, attr_id, error) CALL check("H5Aopen_by_name_f", error, total_error) - ! /* Get the attribute's information */ + ! Get the attribute's information CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) - ! /* Check the attribute's information */ + ! Check the attribute's information CALL VERIFY("h5aget_info_f",corder,u,total_error) CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error) CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) @@ -2807,7 +2807,7 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aget_storage_size_f",error,total_error) CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr_id, error) CALL check("h5aclose_f",error,total_error) ENDDO diff --git a/fortran/test/tH5E_F03.f90 b/fortran/test/tH5E_F03.f90 index 82ba27c..a7d45f2 100644 --- a/fortran/test/tH5E_F03.f90 +++ b/fortran/test/tH5E_F03.f90 @@ -39,11 +39,11 @@ MODULE test_my_hdf5_error_handler CONTAINS -!/**************************************************************** +!*************************************************************** !** !** my_hdf5_error_handler: Custom error callback routine. !** -!****************************************************************/ +!*************************************************************** INTEGER FUNCTION my_hdf5_error_handler(estack_id, data_inout) bind(C) @@ -173,10 +173,10 @@ SUBROUTINE test_error(total_error) !!$#ifdef H5_USE_16_API !!$ if (old_func != (H5E_auto_t)H5Eprint) !!$ TEST_ERROR; -!!$#else /* H5_USE_16_API */ +!!$#else H5_USE_16_API !!$ if (old_func != (H5E_auto2_t)H5Eprint2) !!$ TEST_ERROR; -!!$#endif /* H5_USE_16_API */ +!!$#endif H5_USE_16_API ! set the customized error handling routine diff --git a/fortran/test/tH5F.f90 b/fortran/test/tH5F.f90 index 6b62aea..1a7be10 100644 --- a/fortran/test/tH5F.f90 +++ b/fortran/test/tH5F.f90 @@ -141,13 +141,11 @@ CONTAINS CALL h5fcreate_f(fix_filename1, H5F_ACC_TRUNC_F, file1_id, error) CALL check("h5fcreate_f",error,total_error) - ! !Create group "/G" inside file "mount1.h5". ! CALL h5gcreate_f(file1_id, "/G", gid, error) CALL check("h5gcreate_f",error,total_error) - ! !close file and group identifiers. ! diff --git a/fortran/test/tH5G_1_8.f90 b/fortran/test/tH5G_1_8.f90 index 5e6f50a..ab75163 100644 --- a/fortran/test/tH5G_1_8.f90 +++ b/fortran/test/tH5G_1_8.f90 @@ -41,7 +41,7 @@ SUBROUTINE group_test(cleanup, total_error) LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error - INTEGER(HID_T) :: fapl, fapl2, my_fapl ! /* File access property lists */ + INTEGER(HID_T) :: fapl, fapl2, my_fapl ! File access property lists INTEGER :: error, ret_total_error @@ -49,15 +49,15 @@ SUBROUTINE group_test(cleanup, total_error) CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error) CALL check("H5Pcreate_f",error, total_error) - ! /* Copy the file access property list */ + ! Copy the file access property list CALL H5Pcopy_f(fapl, fapl2, error) CALL check("H5Pcopy_f",error, total_error) - ! /* Set the "use the latest version of the format" bounds for creating objects in the file */ + ! Set the "use the latest version of the format" bounds for creating objects in the file CALL H5Pset_libver_bounds_f(fapl2, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error) CALL check("H5Pset_libver_bounds_f",error, total_error) - ! /* Check for FAPL to USE */ + ! Check for FAPL to USE my_fapl = fapl2 ret_total_error = 0 @@ -121,7 +121,7 @@ SUBROUTINE group_test(cleanup, total_error) END SUBROUTINE group_test -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: group_info ! * ! * Purpose: Create a group with creation order indices and test querying @@ -135,7 +135,7 @@ END SUBROUTINE group_test ! * February 18, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE group_info(cleanup, fapl, total_error) @@ -146,21 +146,21 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl - INTEGER(HID_T) :: gcpl_id ! /* Group creation property list ID */ + INTEGER(HID_T) :: gcpl_id ! Group creation property list ID - INTEGER :: max_compact ! /* Maximum # of links to store in group compactly */ - INTEGER :: min_dense ! /* Minimum # of links to store in group "densely" */ + INTEGER :: max_compact ! Maximum # of links to store in group compactly + INTEGER :: min_dense ! Minimum # of links to store in group "densely" - INTEGER :: idx_type ! /* Type of index to operate on */ - INTEGER :: order, iorder ! /* Order within in the index */ - LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) ! /* Use index on creation order values */ + INTEGER :: idx_type ! Type of index to operate on + INTEGER :: order, iorder ! Order within in the index + LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) ! Use index on creation order values CHARACTER(LEN=6), PARAMETER :: prefix = 'links0' - CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! /* File name */ + CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! File name INTEGER :: Input1 - INTEGER(HID_T) :: group_id ! /* Group ID */ - INTEGER(HID_T) :: soft_group_id ! /* Group ID for soft links */ + INTEGER(HID_T) :: group_id ! Group ID + INTEGER(HID_T) :: soft_group_id ! Group ID for soft links - INTEGER :: i ! /* Local index variables */ + INTEGER :: i ! Local index variables INTEGER :: storage_type ! Type of storage for links in group: ! H5G_STORAGE_TYPE_COMPACT: Compact storage ! H5G_STORAGE_TYPE_DENSE: Indexed storage @@ -168,34 +168,34 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER :: nlinks ! Number of links in group INTEGER :: max_corder ! Current maximum creation order value for group - INTEGER :: u,v ! /* Local index variables */ + INTEGER :: u,v ! Local index variables CHARACTER(LEN=2) :: chr2 - INTEGER(HID_T) :: group_id2, group_id3 ! /* Group IDs */ - CHARACTER(LEN=7) :: objname ! /* Object name */ - CHARACTER(LEN=7) :: objname2 ! /* Object name */ - CHARACTER(LEN=19) :: valname ! /* Link value */ + INTEGER(HID_T) :: group_id2, group_id3 ! Group IDs + CHARACTER(LEN=7) :: objname ! Object name + CHARACTER(LEN=7) :: objname2 ! Object name + CHARACTER(LEN=19) :: valname ! Link value CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group" CHARACTER(LEN=17), PARAMETER :: CORDER_SOFT_GROUP_NAME = "corder_soft_group" - INTEGER(HID_T) :: file_id ! /* File ID */ - INTEGER :: error ! /* Generic return value */ + INTEGER(HID_T) :: file_id ! File ID + INTEGER :: error ! Generic return value LOGICAL :: mounted LOGICAL :: cleanup - ! /* Create group creation property list */ + ! Create group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error ) CALL check("H5Pcreate_f", error, total_error) - ! /* Query the group creation properties */ + ! Query the group creation properties CALL H5Pget_link_phase_change_f(gcpl_id, max_compact, min_dense, error) CALL check("H5Pget_link_phase_change_f", error, total_error) - ! /* Loop over operating on different indices on link fields */ + ! Loop over operating on different indices on link fields DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F - ! /* Loop over operating in different orders */ + ! Loop over operating in different orders DO iorder = H5_ITER_INC_F, H5_ITER_NATIVE_F - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Print appropriate test message */ + ! Print appropriate test message IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN IF(iorder == H5_ITER_INC_F)THEN order = H5_ITER_INC_F @@ -244,11 +244,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ENDIF END IF - ! /* Create file */ + ! Create file CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl) CALL check("H5Fcreate_f", error, total_error) - ! /* Set creation order tracking & indexing on group */ + ! Set creation order tracking & indexing on group IF(use_index(i))THEN Input1 = H5P_CRT_ORDER_INDEXED_F ELSE @@ -257,103 +257,103 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL H5Pset_link_creation_order_f(gcpl_id, IOR(H5P_CRT_ORDER_TRACKED_F, Input1), error) CALL check("H5Pset_link_creation_order_f", error, total_error) - ! /* Create group with creation order tracking on */ + ! Create group with creation order tracking on CALL H5Gcreate_f(file_id, CORDER_GROUP_NAME, group_id, error, gcpl_id=gcpl_id) CALL check("H5Gcreate_f", error, total_error) - ! /* Create group with creation order tracking on for soft links */ + ! Create group with creation order tracking on for soft links CALL H5Gcreate_f(file_id, CORDER_SOFT_GROUP_NAME, soft_group_id, error, & OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id) CALL check("H5Gcreate_f", error, total_error) - ! /* Check for out of bound query by index on empty group, should fail */ + ! Check for out of bound query by index on empty group, should fail CALL H5Gget_info_by_idx_f(group_id, ".", H5_INDEX_NAME_F, order, INT(0,HSIZE_T), & storage_type, nlinks, max_corder, error) CALL VERIFY("H5Gget_info_by_idx_f", error, -1, total_error) - ! /* Create several links, up to limit of compact form */ + ! Create several links, up to limit of compact form DO u = 0, max_compact-1 - ! /* Make name for link */ + ! Make name for link WRITE(chr2,'(I2.2)') u objname = 'fill '//chr2 - ! /* Create hard link, with group object */ + ! Create hard link, with group object CALL H5Gcreate_f(group_id, objname, group_id2, error, OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id) CALL check("H5Gcreate_f", error, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error, mounted) CALL check("H5Gget_info_f", error, total_error) - ! /* Check (new/empty) group's information */ + ! Check (new/empty) group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error) CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error) CALL verifyLogical("H5Gget_info_f.mounted", mounted,.FALSE.,total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error, mounted=mounted) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check (new/empty) group's information */ + ! Check (new/empty) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error) CALL verifyLogical("H5Gget_info_by_name_f.mounted", mounted,.FALSE.,total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name", error, total_error) - ! /* Check (new/empty) group's information */ + ! Check (new/empty) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error) - ! /* Create objects in new group created */ + ! Create objects in new group created DO v = 0, u - ! /* Make name for link */ + ! Make name for link WRITE(chr2,'(I2.2)') v objname2 = 'fill '//chr2 - ! /* Create hard link, with group object */ + ! Create hard link, with group object CALL H5Gcreate_f(group_id2, objname2, group_id3, error ) CALL check("H5Gcreate_f", error, total_error) - ! /* Close group created */ + ! Close group created CALL H5Gclose_f(group_id3, error) CALL check("H5Gclose_f", error, total_error) ENDDO - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_f", error, total_error) - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f",max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information IF(order.NE.H5_ITER_NATIVE_F)THEN IF(order.EQ.H5_ITER_INC_F) THEN CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(u,HSIZE_T), & @@ -366,72 +366,72 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error) CALL check("H5Gget_info_by_idx_f", error, total_error) ENDIF - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_by_idx_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_idx_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_idx_f", nlinks, u+1, total_error) ENDIF - ! /* Close group created */ + ! Close group created CALL H5Gclose_f(group_id2, error) CALL check("H5Gclose_f", error, total_error) - ! /* Retrieve main group's information */ + ! Retrieve main group's information CALL H5Gget_info_f(group_id, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_f", error, total_error) - ! /* Check main group's information */ + ! Check main group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) - ! /* Retrieve main group's information, by name */ + ! Retrieve main group's information, by name CALL H5Gget_info_by_name_f(file_id, CORDER_GROUP_NAME, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check main group's information */ + ! Check main group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Retrieve main group's information, by name */ + ! Retrieve main group's information, by name CALL H5Gget_info_by_name_f(group_id, ".", storage_type, nlinks, max_corder, error, H5P_DEFAULT_F) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check main group's information */ + ! Check main group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Create soft link in another group, to objects in main group */ + ! Create soft link in another group, to objects in main group valname = CORDER_GROUP_NAME//objname CALL H5Lcreate_soft_f(valname, soft_group_id, objname, error, H5P_DEFAULT_F, H5P_DEFAULT_F) - ! /* Retrieve soft link group's information, by name */ + ! Retrieve soft link group's information, by name CALL H5Gget_info_f(soft_group_id, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_f", error, total_error) - ! /* Check soft link group's information */ + ! Check soft link group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) ENDDO - ! /* Close the groups */ + ! Close the groups CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(soft_group_id, error) CALL check("H5Gclose_f", error, total_error) - ! /* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) ENDDO ENDDO ENDDO - ! /* Free resources */ + ! Free resources CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) @@ -441,7 +441,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE group_info -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: timestamps ! * ! * Purpose: Verify that disabling tracking timestamps for an object @@ -452,7 +452,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * February 20, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE timestamps(cleanup, fapl, total_error) @@ -463,15 +463,15 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl - INTEGER(HID_T) :: file_id !/* File ID */ - INTEGER(HID_T) :: group_id !/* Group ID */ - INTEGER(HID_T) :: group_id2 !/* Group ID */ - INTEGER(HID_T) :: gcpl_id !/* Group creation property list ID */ - INTEGER(HID_T) :: gcpl_id2 !/* Group creation property list ID */ + INTEGER(HID_T) :: file_id ! File ID + INTEGER(HID_T) :: group_id ! Group ID + INTEGER(HID_T) :: group_id2 ! Group ID + INTEGER(HID_T) :: gcpl_id ! Group creation property list ID + INTEGER(HID_T) :: gcpl_id2 ! Group creation property list ID CHARACTER(LEN=6), PARAMETER :: prefix = 'links9' - CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! /* File name */ - ! /* Timestamp macros */ + CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! File name + ! Timestamp macros CHARACTER(LEN=10), PARAMETER :: TIMESTAMP_GROUP_1="timestamp1" CHARACTER(LEN=10), PARAMETER :: TIMESTAMP_GROUP_2="timestamp2" LOGICAL :: track_times @@ -479,58 +479,58 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER :: error - ! /* Print test message */ + ! Print test message ! WRITE(*,*) "timestamps on objects" - ! /* Create group creation property list */ + ! Create group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error ) CALL check("H5Pcreate_f", error, total_error) - ! /* Query the object timestamp setting */ + ! Query the object timestamp setting CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - !/* Check default timestamp information */ + ! Check default timestamp information CALL VerifyLogical("H5Pget_obj_track_times",track_times,.TRUE.,total_error) - ! /* Set a non-default object timestamp setting */ + ! Set a non-default object timestamp setting CALL H5Pset_obj_track_times_f(gcpl_id, .FALSE., error) CALL check("H5Pset_obj_track_times_f", error, total_error) - ! /* Query the object timestamp setting */ + ! Query the object timestamp setting CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - ! /* Check default timestamp information */ + ! Check default timestamp information CALL VerifyLogical("H5Pget_obj_track_times",track_times,.FALSE.,total_error) - ! /* Create file */ + ! Create file !h5_fixname(FILENAME[0], fapl, filename, sizeof filename); CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create group with non-default object timestamp setting */ + ! Create group with non-default object timestamp setting CALL h5gcreate_f(file_id, TIMESTAMP_GROUP_1, group_id, error, & OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id, H5P_DEFAULT_F) CALL check("h5fcreate_f",error,total_error) - ! /* Close the group creation property list */ + ! Close the group creation property list CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) - ! /* Create group with default object timestamp setting */ + ! Create group with default object timestamp setting CALL h5gcreate_f(file_id, TIMESTAMP_GROUP_2, group_id2, error, & OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5fcreate_f",error,total_error) - ! /* Retrieve the new groups' creation properties */ + ! Retrieve the new groups' creation properties CALL H5Gget_create_plist_f(group_id, gcpl_id, error) CALL check("H5Gget_create_plist", error, total_error) CALL H5Gget_create_plist_f(group_id2, gcpl_id2, error) CALL check("H5Gget_create_plist", error, total_error) - ! /* Query & verify the object timestamp settings */ + ! Query & verify the object timestamp settings CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) CALL VerifyLogical("H5Pget_obj_track_times1",track_times,.FALSE.,total_error) @@ -538,11 +538,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_obj_track_times_f", error, total_error) CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) -! /* Query the object information for each group */ +! Query the object information for each group ! if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR ! if(H5Oget_info(group_id2, &oinfo2) < 0) TEST_ERROR -!!$ /* Sanity check object information for each group */ +!!$ Sanity check object information for each group !!$ if(oinfo.atime != 0) TEST_ERROR !!$ if(oinfo.mtime != 0) TEST_ERROR !!$ if(oinfo.ctime != 0) TEST_ERROR @@ -556,40 +556,40 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(oinfo.hdr.space.total >= oinfo2.hdr.space.total) TEST_ERROR !!$ if(oinfo.hdr.space.meta >= oinfo2.hdr.space.meta) TEST_ERROR - ! /* Close the property lists */ + ! Close the property lists CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) CALL H5Pclose_f(gcpl_id2, error) CALL check("H5Pclose_f", error, total_error) - ! /* Close the groups */ + ! Close the groups CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(group_id2, error) CALL check("H5Gclose_f", error, total_error) - !/* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) - !/* Re-open the file */ + ! Re-open the file CALL h5fopen_f(FileName, H5F_ACC_RDONLY_F, file_id, error, H5P_DEFAULT_F) CALL check("h5fopen_f",error,total_error) - !/* Open groups */ + ! Open groups CALL H5Gopen_f(file_id, TIMESTAMP_GROUP_1, group_id, error) ! with no optional param. CALL check("H5Gopen_f", error, total_error) CALL H5Gopen_f(file_id, TIMESTAMP_GROUP_2, group_id2, error, H5P_DEFAULT_F) ! with optional param. CALL check("H5Gopen_f", error, total_error) - ! /* Retrieve the new groups' creation properties */ + ! Retrieve the new groups' creation properties CALL H5Gget_create_plist_f(group_id, gcpl_id, error) CALL check("H5Gget_create_plist", error, total_error) CALL H5Gget_create_plist_f(group_id2, gcpl_id2, error) CALL check("H5Gget_create_plist", error, total_error) - ! /* Query & verify the object timestamp settings */ + ! Query & verify the object timestamp settings CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) @@ -598,11 +598,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_obj_track_times_f", error, total_error) CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) !!$ -!!$ /* Query the object information for each group */ +!!$ Query the object information for each group !!$ if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR !!$ if(H5Oget_info(group_id2, &oinfo2) < 0) TEST_ERROR !!$ -!!$ /* Sanity check object information for each group */ +!!$ Sanity check object information for each group !!$ if(oinfo.atime != 0) TEST_ERROR !!$ if(oinfo.mtime != 0) TEST_ERROR !!$ if(oinfo.ctime != 0) TEST_ERROR @@ -616,19 +616,19 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(oinfo.hdr.space.total >= oinfo2.hdr.space.total) TEST_ERROR !!$ if(oinfo.hdr.space.meta >= oinfo2.hdr.space.meta) TEST_ERROR - ! /* Close the property lists */ + ! Close the property lists CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) CALL H5Pclose_f(gcpl_id2, error) CALL check("H5Pclose_f", error, total_error) - ! /* Close the groups */ + ! Close the groups CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(group_id2, error) CALL check("H5Gclose_f", error, total_error) - !/* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) @@ -637,7 +637,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE timestamps -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: mklinks ! * ! * Purpose: Build a file with assorted links. @@ -649,7 +649,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE mklinks(fapl, total_error) @@ -680,29 +680,29 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! WRITE(*,*) "link creation (w/new group format)" - ! /* Create a file */ + ! Create a file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file, error, H5P_DEFAULT_F, fapl) CALL check("mklinks.h5fcreate_f",error,total_error) CALL h5screate_simple_f(arank, adims2, scalar, error) CALL check("mklinks.h5screate_simple_f",error,total_error) - !/* Create a group */ + ! Create a group CALL H5Gcreate_f(file, "grp1", grp, error) CALL check("H5Gcreate_f", error, total_error) CALL H5Gclose_f(grp, error) CALL check("h5gclose_f",error,total_error) - !/* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(file, "d1", H5T_NATIVE_INTEGER, scalar, d1, error) CALL check("h5dcreate_f",error,total_error) CALL h5dclose_f(d1, error) CALL check("h5dclose_f",error,total_error) - !/* Create a hard link */ + ! Create a hard link CALL H5Lcreate_hard_f(file, "d1", INT(H5L_SAME_LOC_F,HID_T), "grp1/hard", error) CALL check("H5Lcreate_hard_f", error, total_error) - !/* Create a symbolic link */ + ! Create a symbolic link CALL H5Lcreate_soft_f("/d1", file, "grp1/soft",error) CALL check("H5Lcreate_soft_f", error, total_error) @@ -718,14 +718,14 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! should be '/d1' + NULL character = 4 CALL VERIFY("H5Lget_info_by_idx_f", INT(val_size), 4, total_error) - !/* Create a symbolic link to something that doesn't exist */ + ! Create a symbolic link to something that doesn't exist CALL H5Lcreate_soft_f("foobar", file, "grp1/dangle",error) - !/* Create a recursive symbolic link */ + ! Create a recursive symbolic link CALL H5Lcreate_soft_f("/grp1/recursive", file, "/grp1/recursive",error) - !/* Close */ + ! Close CALL h5sclose_f(scalar, error) CALL check("h5sclose_f",error,total_error) CALL h5fclose_f(file, error) @@ -733,7 +733,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE mklinks -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_move_preserves ! * ! * Purpose: Tests that moving and renaming links preserves their @@ -745,7 +745,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_move_preserves(fapl_id, total_error) @@ -758,20 +758,20 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER(HID_T):: file_id INTEGER(HID_T):: group_id - INTEGER(HID_T):: fcpl_id ! /* Group creation property list ID */ + INTEGER(HID_T):: fcpl_id ! Group creation property list ID INTEGER(HID_T):: lcpl_id !H5O_info_t oinfo; !H5L_info_t linfo; INTEGER :: old_cset INTEGER :: old_corder !H5T_cset_t old_cset; - !int64_t old_corder; /* Creation order value of link */ + !int64_t old_corder; Creation order value of link !time_t old_modification_time; !time_t curr_time; - !unsigned crt_order_flags; /* Status of creation order info for GCPL */ + !unsigned crt_order_flags; Status of creation order info for GCPL !char filename[1024]; - INTEGER :: crt_order_flags ! /* Status of creation order info for GCPL */ + INTEGER :: crt_order_flags ! Status of creation order info for GCPL CHARACTER(LEN=12), PARAMETER :: filename = 'TestLinks.h5' INTEGER :: cset ! Indicates the character set used for the link’s name. @@ -789,9 +789,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! WRITE(*,*) "moving and copying links preserves their properties (w/new group format)" - !/* Create a file creation property list with creation order stored for links + ! Create a file creation property list with creation order stored for links ! * in the root group - ! */ + ! CALL H5Pcreate_f(H5P_FILE_CREATE_F, fcpl_id, error) CALL check("H5Pcreate_f",error, total_error) @@ -807,26 +807,26 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_link_creation_order_f",error, total_error) CALL VERIFY("H5Pget_link_creation_order_f",crt_order_flags, H5P_CRT_ORDER_TRACKED_F, total_error) - !/* Create file */ - !/* (with creation order tracking for the root group) */ + ! Create file + ! (with creation order tracking for the root group) CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file_id, error, fcpl_id, fapl_id) CALL check("h5fcreate_f",error,total_error) - !/* Create a link creation property list with the UTF-8 character encoding */ + ! Create a link creation property list with the UTF-8 character encoding CALL H5Pcreate_f(H5P_LINK_CREATE_F, lcpl_id, error) CALL check("H5Pcreate_f",error, total_error) CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) - !/* Create a group with that lcpl */ + ! Create a group with that lcpl CALL H5Gcreate_f(file_id, "group", group_id, error,lcpl_id=lcpl_id, gcpl_id=H5P_DEFAULT_F, gapl_id=H5P_DEFAULT_F) CALL check("H5Gcreate_f", error, total_error) CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) - ! /* Get the group's link's information */ + ! Get the group's link's information CALL H5Lget_info_f(file_id, "group", & cset, corder, f_corder_valid, link_type, address, val_size, & error, H5P_DEFAULT_F) @@ -842,18 +842,18 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! old_modification_time = oinfo.mtime; -! /* If this test happens too quickly, the times will all be the same. Make sure the time changes. */ +! If this test happens too quickly, the times will all be the same. Make sure the time changes. ! curr_time = HDtime(NULL); ! while(HDtime(NULL) <= curr_time) ! ; -! /* Close the file and reopen it */ +! Close the file and reopen it CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) !!$ if((file_id = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR !!$ -!!$ /* Get the link's character set & modification time . They should be unchanged */ +!!$ Get the link's character set & modification time . They should be unchanged !!$ if(H5Lget_info(file_id, "group", &linfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -861,7 +861,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(old_corder != linfo.corder) TEST_ERROR !!$ -!!$ /* Create a new link to the group. It should have a different creation order value but the same modification time */ +!!$ Create a new link to the group. It should have a different creation order value but the same modification time !!$ if(H5Lcreate_hard(file_id, "group", file_id, "group2", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group2", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -871,10 +871,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder != 1) TEST_ERROR !!$ if(linfo.cset != H5T_CSET_ASCII) TEST_ERROR !!$ -!!$ /* Copy the first link to a UTF-8 name. +!!$ Copy the first link to a UTF-8 name. !!$ * Its creation order value should be different, but modification time !!$ * should not change. -!!$ */ +!!$ !!$ if(H5Lcopy(file_id, "group", file_id, "group_copied", lcpl_id, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_copied", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -882,10 +882,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 2) TEST_ERROR !!$ -!!$ /* Check that its character encoding is UTF-8 */ +!!$ Check that its character encoding is UTF-8 !!$ if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Move the link with the default property list. */ +!!$ Move the link with the default property list. !!$ if(H5Lmove(file_id, "group_copied", file_id, "group_copied2", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_copied2", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -893,10 +893,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 3) TEST_ERROR !!$ -!!$ /* Check that its character encoding is not UTF-8 */ +!!$ Check that its character encoding is not UTF-8 !!$ if(linfo.cset == H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Check that the original link is unchanged */ +!!$ Check that the original link is unchanged !!$ if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR !!$ if(H5Lget_info(file_id, "group", &linfo, H5P_DEFAULT) < 0) TEST_ERROR @@ -904,9 +904,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(old_corder != linfo.corder) TEST_ERROR !!$ if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Move the first link to a UTF-8 name. +!!$ Move the first link to a UTF-8 name. !!$ * Its creation order value will change, but modification time should not -!!$ * change. */ +!!$ * change. !!$ if(H5Lmove(file_id, "group", file_id, "group_moved", lcpl_id, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_moved", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -914,10 +914,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 4) TEST_ERROR !!$ -!!$ /* Check that its character encoding is UTF-8 */ +!!$ Check that its character encoding is UTF-8 !!$ if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Move the link again using the default property list. */ +!!$ Move the link again using the default property list. !!$ if(H5Lmove(file_id, "group_moved", file_id, "group_moved_again", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_moved_again", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -925,10 +925,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 5) TEST_ERROR !!$ -!!$ /* Check that its character encoding is not UTF-8 */ +!!$ Check that its character encoding is not UTF-8 !!$ if(linfo.cset == H5T_CSET_UTF8) TEST_ERROR - ! /* Close open IDs */ + ! Close open IDs CALL H5Pclose_f(fcpl_id, error) CALL check("H5Pclose_f", error, total_error) CALL H5Pclose_f(lcpl_id, error) @@ -938,7 +938,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE test_move_preserves -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: lifecycle ! * ! * Purpose: Test that adding links to a group follow proper "lifecycle" @@ -953,7 +953,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * Monday, October 17, 2005 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE lifecycle(cleanup, fapl2, total_error) @@ -967,14 +967,14 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) INTEGER, PARAMETER :: NAME_BUF_SIZE =7 - INTEGER(HID_T) :: fid !/* File ID */ - INTEGER(HID_T) :: gid !/* Group ID */ - INTEGER(HID_T) :: gcpl !/* Group creation property list ID */ - INTEGER(size_t) :: lheap_size_hint !/* Local heap size hint */ - INTEGER :: max_compact !/* Maximum # of links to store in group compactly */ - INTEGER :: min_dense !/* Minimum # of links to store in group "densely" */ - INTEGER :: est_num_entries !/* Estimated # of entries in group */ - INTEGER :: est_name_len !/* Estimated length of entry name */ + INTEGER(HID_T) :: fid ! File ID + INTEGER(HID_T) :: gid ! Group ID + INTEGER(HID_T) :: gcpl ! Group creation property list ID + INTEGER(size_t) :: lheap_size_hint ! Local heap size hint + INTEGER :: max_compact ! Maximum # of links to store in group compactly + INTEGER :: min_dense ! Minimum # of links to store in group "densely" + INTEGER :: est_num_entries ! Estimated # of entries in group + INTEGER :: est_name_len ! Estimated length of entry name CHARACTER(LEN=NAME_BUF_SIZE) :: filename = 'fixx.h5' INTEGER(SIZE_T) :: LIFECYCLE_LOCAL_HEAP_SIZE_HINT = 256 INTEGER :: LIFECYCLE_MAX_COMPACT = 4 @@ -991,29 +991,29 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) ! WRITE(*,*) 'group lifecycle' - ! /* Create file */ + ! Create file CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl2) CALL check("H5Fcreate_f",error,total_error) - !/* Close file */ + ! Close file CALL H5Fclose_f(fid,error) CALL check("H5Fclose_f",error,total_error) - ! /* Get size of file as empty */ + ! Get size of file as empty ! if((empty_size = h5_get_file_size(filename)) < 0) TEST_ERROR - ! /* Re-open file */ + ! Re-open file CALL H5Fopen_f(filename, H5F_ACC_RDWR_F, fid, error,access_prp=fapl2) CALL check("H5Fopen_f",error,total_error) - ! /* Set up group creation property list */ + ! Set up group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F,gcpl,error) CALL check("H5Pcreate_f",error,total_error) - ! /* Query default group creation property settings */ + ! Query default group creation property settings CALL H5Pget_local_heap_size_hint_f(gcpl, lheap_size_hint, error) CALL check("H5Pget_local_heap_size_hint_f",error,total_error) CALL verify("H5Pget_local_heap_size_hint_f", INT(lheap_size_hint),0,total_error) @@ -1030,7 +1030,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL verify("H5Pget_est_link_info_f", est_name_len, H5G_CRT_GINFO_EST_NAME_LEN,total_error) - !/* Set GCPL parameters */ + ! Set GCPL parameters CALL H5Pset_local_heap_size_hint_f(gcpl, LIFECYCLE_LOCAL_HEAP_SIZE_HINT, error) CALL check("H5Pset_local_heap_size_hint_f", error, total_error) @@ -1039,12 +1039,12 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL H5Pset_est_link_info_f(gcpl, LIFECYCLE_EST_NUM_ENTRIES, LIFECYCLE_EST_NAME_LEN, error) CALL check("H5Pset_est_link_info_f", error, total_error) - ! /* Create group for testing lifecycle */ + ! Create group for testing lifecycle CALL H5Gcreate_f(fid, LIFECYCLE_TOP_GROUP, gid, error, gcpl_id=gcpl) CALL check("H5Gcreate_f", error, total_error) - ! /* Query group creation property settings */ + ! Query group creation property settings CALL H5Pget_local_heap_size_hint_f(gcpl, lheap_size_hint, error) CALL check("H5Pget_local_heap_size_hint_f",error,total_error) @@ -1062,20 +1062,20 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) - !/* Close top group */ + ! Close top group CALL H5Gclose_f(gid, error) CALL check("H5Gclose_f", error, total_error) - !/* Unlink top group */ + ! Unlink top group CALL H5Ldelete_f(fid, LIFECYCLE_TOP_GROUP, error) CALL check("H5Ldelete_f", error, total_error) - ! /* Close GCPL */ + ! Close GCPL CALL H5Pclose_f(gcpl, error) CALL check("H5Pclose_f", error, total_error) - ! /* Close file */ + ! Close file CALL H5Fclose_f(fid,error) CALL check("H5Fclose_f",error,total_error) @@ -1084,7 +1084,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) END SUBROUTINE lifecycle -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: cklinks ! * ! * Purpose: Open the file created in the first step and check that the @@ -1100,7 +1100,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) ! * Modifications: Modified original C code ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE cklinks(fapl, total_error) @@ -1124,25 +1124,25 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) LOGICAL :: Lexists - ! /* Open the file */ + ! Open the file CALL H5Fopen_f(filename, H5F_ACC_RDONLY_F, file, error,access_prp=fapl) CALL check("H5Fopen_f",error,total_error) - ! /* Hard link */ + ! Hard link !!$ IF(H5Oget_info_by_name(file, "d1", &oinfo1, H5P_DEFAULT) < 0) FAIL_STACK_ERROR !!$ IF(H5Oget_info_by_name(file, "grp1/hard", &oinfo2, H5P_DEFAULT) < 0) FAIL_STACK_ERROR !!$ IF(H5O_TYPE_DATASET != oinfo2.type) { !!$ H5_FAILED(); !!$ printf(" %d: Unexpected object type should have been a dataset\n", __LINE__); !!$ TEST_ERROR -!!$ } /* end if */ +!!$ } end if !!$ if(H5F_addr_ne(oinfo1.addr, oinfo2.addr)) { !!$ H5_FAILED(); !!$ puts(" Hard link test failed. Link seems not to point to the "); !!$ puts(" expected file location."); !!$ TEST_ERROR -!!$ } /* end if */ +!!$ } end if CALL H5Lexists_f(file,"d1",Lexists, error) @@ -1151,14 +1151,14 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL H5Lexists_f(file,"grp1/hard",Lexists, error) CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) - ! /* Cleanup */ + ! Cleanup CALL H5Fclose_f(file,error) CALL check("H5Fclose_f",error,total_error) END SUBROUTINE cklinks -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: delete_by_idx ! * ! * Purpose: Create a group with creation order indices and test deleting @@ -1173,7 +1173,7 @@ END SUBROUTINE cklinks ! * March 3, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE delete_by_idx(cleanup, fapl, total_error) USE HDF5 ! This module contains all necessary modules @@ -1183,18 +1183,18 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl - INTEGER(HID_T) :: file_id ! /* File ID */ - INTEGER(HID_T) :: group_id ! /* Group ID */ - INTEGER(HID_T) :: gcpl_id ! /* Group creation property list ID */ + INTEGER(HID_T) :: file_id ! File ID + INTEGER(HID_T) :: group_id ! Group ID + INTEGER(HID_T) :: gcpl_id ! Group creation property list ID - INTEGER :: idx_type ! /* Type of index to operate on */ + INTEGER :: idx_type ! Type of index to operate on LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) - ! /* Use index on creation order values */ - INTEGER :: max_compact ! /* Maximum # of links to store in group compactly */ - INTEGER :: min_dense ! /* Minimum # of links to store in group "densely" */ + ! Use index on creation order values + INTEGER :: max_compact ! Maximum # of links to store in group compactly + INTEGER :: min_dense ! Minimum # of links to store in group "densely" - CHARACTER(LEN=7) :: objname ! /* Object name */ - CHARACTER(LEN=8) :: filename = 'file0.h5' ! /* File name */ + CHARACTER(LEN=7) :: objname ! Object name + CHARACTER(LEN=8) :: filename = 'file0.h5' ! File name CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group" LOGICAL :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute @@ -1204,11 +1204,11 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) INTEGER :: link_type INTEGER(HADDR_T) :: address - INTEGER :: u ! /* Local index variable */ + INTEGER :: u ! Local index variable INTEGER :: Input1, i INTEGER(HID_T) :: group_id2 INTEGER(HID_T) :: grp - INTEGER :: iorder ! /* Order within in the index */ + INTEGER :: iorder ! Order within in the index CHARACTER(LEN=2) :: chr2 INTEGER :: error INTEGER :: id_type @@ -1226,13 +1226,13 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) fix_filename2(i:i) = " " ENDDO - ! /* Loop over operating on different indices on link fields */ + ! Loop over operating on different indices on link fields DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F - ! /* Loop over operating in different orders */ + ! Loop over operating in different orders DO iorder = H5_ITER_INC_F, H5_ITER_DEC_F - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Print appropriate test message */ + ! Print appropriate test message !!$ IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN !!$ IF(iorder == H5_ITER_INC_F)THEN !!$ IF(use_index(i))THEN @@ -1263,15 +1263,15 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) !!$ ENDIF !!$ ENDIF - ! /* Create file */ + ! Create file CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, access_prp=fapl) CALL check("delete_by_idx.H5Fcreate_f", error, total_error) - ! /* Create group creation property list */ + ! Create group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error ) CALL check("delete_by_idx.H5Pcreate_f", error, total_error) - ! /* Set creation order tracking & indexing on group */ + ! Set creation order tracking & indexing on group IF(use_index(i))THEN Input1 = H5P_CRT_ORDER_INDEXED_F ELSE @@ -1281,54 +1281,54 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) CALL H5Pset_link_creation_order_f(gcpl_id, IOR(H5P_CRT_ORDER_TRACKED_F, Input1), error) CALL check("delete_by_idx.H5Pset_link_creation_order_f", error, total_error) - ! /* Create group with creation order tracking on */ + ! Create group with creation order tracking on CALL H5Gcreate_f(file_id, CORDER_GROUP_NAME, group_id, error, gcpl_id=gcpl_id) CALL check("delete_by_idx.H5Gcreate_f", error, total_error) - ! /* Query the group creation properties */ + ! Query the group creation properties CALL H5Pget_link_phase_change_f(gcpl_id, max_compact, min_dense, error) CALL check("delete_by_idx.H5Pget_link_phase_change_f", error, total_error) - ! /* Delete links from one end */ + ! Delete links from one end - ! /* Check for deletion on empty group */ + ! Check for deletion on empty group CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error) CALL VERIFY("delete_by_idx.H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) - ! /* Create several links, up to limit of compact form */ + ! Create several links, up to limit of compact form DO u = 0, max_compact-1 - ! /* Make name for link */ + ! Make name for link WRITE(chr2,'(I2.2)') u objname = 'fill '//chr2 - ! /* Create hard link, with group object */ + ! Create hard link, with group object CALL H5Gcreate_f(group_id, objname, group_id2, error) CALL check("delete_by_idx.H5Gcreate_f", error, total_error) CALL H5Gclose_f(group_id2, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) - ! /* Verify link information for new link */ + ! Verify link information for new link CALL link_info_by_idx_check(group_id, objname, u, & .TRUE., use_index(i), total_error) ENDDO - ! /* Verify state of group (compact) */ + ! Verify state of group (compact) ! IF(H5G_has_links_test(group_id, NULL) != TRUE) TEST_ERROR - ! /* Check for out of bound deletion */ + ! Check for out of bound deletion htmp =9 !EP CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(u,HSIZE_T), error) CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, htmp, error) CALL VERIFY("H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) - ! /* Delete links from compact group */ + ! Delete links from compact group DO u = 0, (max_compact - 1) -1 - ! /* Delete first link in appropriate order */ + ! Delete first link in appropriate order CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error) CALL check("H5Ldelete_by_idx_f", error, total_error) - ! /* Verify the link information for first link in appropriate order */ + ! Verify the link information for first link in appropriate order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), & @@ -1358,7 +1358,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) - ! /* Verify the name for first link in appropriate order */ + ! Verify the name for first link in appropriate order ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE); !!$ size_tmp = 20 !!$ CALL H5Lget_name_by_idx_f(group_id, ".", idx_type, order, INT(0,HSIZE_T), size_tmp, tmpname, error) @@ -1374,15 +1374,15 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) !!$ CALL verifyString("delete_by_idx.H5Lget_name_by_idx_f", objname, tmpname, total_error) ENDDO - ! /* Close the group */ + ! Close the group CALL H5Gclose_f(group_id, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) - !/* Close the group creation property list */ + ! Close the group creation property list CALL H5Pclose_f(gcpl_id, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) - !/* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) @@ -1398,7 +1398,7 @@ END SUBROUTINE delete_by_idx -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: link_info_by_idx_check ! * ! * Purpose: Support routine for link_info_by_idx, to verify the link @@ -1414,7 +1414,7 @@ END SUBROUTINE delete_by_idx ! * Tuesday, November 7, 2006 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & hard_link, use_index, total_error) @@ -1436,35 +1436,35 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & INTEGER(HADDR_T) :: address INTEGER(SIZE_T) :: val_size ! Indicates the size, in the number of characters, of the attribute - CHARACTER(LEN=7) :: tmpname !/* Temporary link name */ - CHARACTER(LEN=3) :: tmpname_small !/* to small temporary link name */ - CHARACTER(LEN=10) :: tmpname_big !/* to big temporary link name */ + CHARACTER(LEN=7) :: tmpname ! Temporary link name + CHARACTER(LEN=3) :: tmpname_small ! to small temporary link name + CHARACTER(LEN=10) :: tmpname_big ! to big temporary link name - CHARACTER(LEN=7) :: valname !/* Link value name */ + CHARACTER(LEN=7) :: valname ! Link value name CHARACTER(LEN=2) :: chr2 INTEGER(SIZE_T) :: size_tmp INTEGER :: error - ! /* Make link value for increasing/native order queries */ + ! Make link value for increasing/native order queries WRITE(chr2,'(I2.2)') n valname = 'valn.'//chr2 - ! /* Verify the link information for first link, in increasing creation order */ + ! Verify the link information for first link, in increasing creation order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(0,HSIZE_T), & link_type, f_corder_valid, corder, cset, address, val_size, error) CALL check("H5Lget_info_by_idx_f", error, total_error) CALL VERIFY("H5Lget_info_by_idx_f", corder, 0, total_error) - ! /* Verify the link information for new link, in increasing creation order */ + ! Verify the link information for new link, in increasing creation order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), & link_type, f_corder_valid, corder, cset, address, val_size, error) CALL check("H5Lget_info_by_idx_f", error, total_error) CALL VERIFY("H5Lget_info_by_idx_f", corder, n, total_error) - ! /* Verify value for new soft link, in increasing creation order */ + ! Verify value for new soft link, in increasing creation order !!$ IF(hard_link)THEN !!$ ! HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE); !!$ @@ -1474,7 +1474,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & !!$! IF(HDstrcmp(valname, tmpval)) TEST_ERROR !!$ ENDIF - ! /* Verify the name for new link, in increasing creation order */ + ! Verify the name for new link, in increasing creation order ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE); ! The actual size of tmpname should be 7 @@ -1503,7 +1503,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & END SUBROUTINE link_info_by_idx_check -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_lcpl ! * ! * Purpose: Tests Link Creation Property Lists @@ -1518,7 +1518,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_lcpl(cleanup, fapl, total_error) @@ -1565,35 +1565,35 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & ! WRITE(*,*) "link creation property lists (w/new group format)" - !/* Actually, intermediate group creation is tested elsewhere (tmisc). - ! * Here we only need to test the character encoding property */ + ! Actually, intermediate group creation is tested elsewhere (tmisc). + ! * Here we only need to test the character encoding property - !/* Create file */ + ! Create file ! h5_fixname(FILENAME[0], fapl, filename, sizeof filename); CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl) CALL check("H5Fcreate_f", error, total_error) - ! /* Create and link a group with the default LCPL */ + ! Create and link a group with the default LCPL CALL H5Gcreate_f(file_id, "/group", group_id, error) CALL check("H5Gcreate_f", error, total_error) - ! /* Check that its character encoding is the default */ + ! Check that its character encoding is the default CALL H5Lget_info_f(file_id, "group", & cset, corder, f_corder_valid, link_type, address, val_size, & error, H5P_DEFAULT_F) -!/* File-wide default character encoding can not yet be set via the file -! * creation property list and is always ASCII. */ +! File-wide default character encoding can not yet be set via the file +! * creation property list and is always ASCII. !#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h -- CALL VERIFY("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - ! /* Create and commit a datatype with the default LCPL */ + ! Create and commit a datatype with the default LCPL CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error) CALL check("h5tcopy_f",error,total_error) CALL h5tcommit_f(file_id, "/type", type_id, error) @@ -1602,19 +1602,19 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("h5tclose_f", error, total_error) - ! /* Check that its character encoding is the default */ + ! Check that its character encoding is the default CALL H5Lget_info_f(file_id, "type", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("h5tclose_f", error, total_error) -!/* File-wide default character encoding can not yet be set via the file -! * creation property list and is always ASCII. */ +! File-wide default character encoding can not yet be set via the file +! * creation property list and is always ASCII. !#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h -- CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - !/* Create a dataspace */ + ! Create a dataspace CALL h5screate_simple_f(2, dims, space_id, error) CALL check("h5screate_simple_f",error,total_error) CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error) @@ -1624,7 +1624,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error) CALL h5pset_chunk_f(crp_list, 2, dims, error) - ! /* Create a dataset using the default LCPL */ + ! Create a dataset using the default LCPL CALL h5dcreate_f(file_id, "/dataset", H5T_NATIVE_INTEGER, space_id, dset_id, error, crp_list) CALL check("h5dcreate_f", error, total_error) @@ -1636,10 +1636,10 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL H5Dopen_f(file_id, "/dataset", dset_id, error) CALL check("h5dopen_f", error, total_error) - ! /* Extend the dataset */ + ! Extend the dataset CALL H5Dset_extent_f(dset_id, extend_dim, error) CALL check("H5Dset_extent_f", error, total_error) - ! /* Verify the dataspaces */ + ! Verify the dataspaces ! !Get dataset's dataspace handle. ! @@ -1658,37 +1658,37 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL VERIFY("H5Sget_simple_extent_dims", tmp1, tmp2, total_error) ENDDO - ! /* close data set */ + ! close data set CALL h5dclose_f(dset_id, error) CALL check("h5dclose_f", error, total_error) - ! /* Check that its character encoding is the default */ + ! Check that its character encoding is the default CALL H5Lget_info_f(file_id, "dataset", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) -!/* File-wide default character encoding can not yet be set via the file -! * creation property list and is always ASCII. */ +! File-wide default character encoding can not yet be set via the file +! * creation property list and is always ASCII. !#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h -- CALL verify("h5tclose_f",cset, H5T_CSET_ASCII_F,total_error) - !/* Create a link creation property list with the UTF-8 character encoding */ + ! Create a link creation property list with the UTF-8 character encoding CALL H5Pcreate_f(H5P_LINK_CREATE_F,lcpl_id,error) CALL check("h5Pcreate_f",error,total_error) CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) - ! /* Create and link a group with the new LCPL */ + ! Create and link a group with the new LCPL CALL H5Gcreate_f(file_id, "/group2", group_id, error,lcpl_id=lcpl_id) CALL check("H5Gcreate_f", error, total_error) CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) - !/* Check that its character encoding is UTF-8 */ + ! Check that its character encoding is UTF-8 CALL H5Lget_info_f(file_id, "group2", & cset, corder, f_corder_valid, link_type, address, val_size, & error) @@ -1696,7 +1696,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* Create and commit a datatype with the new LCPL */ + ! Create and commit a datatype with the new LCPL CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error) CALL check("h5tcopy_f",error,total_error) @@ -1706,14 +1706,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("h5tclose_f", error, total_error) - !/* Check that its character encoding is UTF-8 */ + ! Check that its character encoding is UTF-8 CALL H5Lget_info_f(file_id, "type2", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* Create a dataset using the new LCPL */ + ! Create a dataset using the new LCPL CALL h5dcreate_f(file_id, "/dataset2", H5T_NATIVE_INTEGER, space_id, dset_id, error,lcpl_id=lcpl_id) CALL check("h5dcreate_f", error, total_error) @@ -1724,14 +1724,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("H5Pget_char_encoding_f", error, total_error) CALL VERIFY("H5Pget_char_encoding_f", encoding, H5T_CSET_UTF8_F, total_error) - ! /* Check that its character encoding is UTF-8 */ + ! Check that its character encoding is UTF-8 CALL H5Lget_info_f(file_id, "dataset2", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) CALL verify("H5Lget_info_f2",cset, H5T_CSET_UTF8_F,total_error) - ! /* Create a new link to the dataset with a different character encoding. */ + ! Create a new link to the dataset with a different character encoding. CALL H5Pclose_f(lcpl_id, error) CALL check("H5Pclose_f", error, total_error) @@ -1746,14 +1746,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("H5Lexists",error, total_error) CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) - ! /* Check that its character encoding is ASCII */ + ! Check that its character encoding is ASCII CALL H5Lget_info_f(file_id, "/dataset2_link", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - ! /* Check that the first link's encoding hasn't changed */ + ! Check that the first link's encoding hasn't changed CALL H5Lget_info_f(file_id, "/dataset2", & cset, corder, f_corder_valid, link_type, address, val_size, & @@ -1762,8 +1762,8 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f3",cset, H5T_CSET_UTF8_F,total_error) - !/* Make sure that LCPLs work properly for other API calls: */ - !/* H5Lcreate_soft */ + ! Make sure that LCPLs work properly for other API calls: + ! H5Lcreate_soft CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) @@ -1777,7 +1777,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* H5Lmove */ + ! H5Lmove CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_ASCII_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) @@ -1791,7 +1791,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - ! /* H5Lcopy */ + ! H5Lcopy CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) @@ -1805,7 +1805,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* H5Lcreate_external */ + ! H5Lcreate_external CALL H5Lcreate_external_f("filename", "path", file_id, "extlink", error, lcpl_id) CALL check("H5Lcreate_external_f", error, total_error) @@ -1817,7 +1817,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* Close open IDs */ + ! Close open IDs CALL H5Pclose_f(lcpl_id, error) CALL check("H5Pclose_f", error, total_error) @@ -1849,22 +1849,22 @@ SUBROUTINE objcopy(fapl, total_error) flag = H5O_COPY_SHALLOW_HIERARCHY_F -!/* Copy the file access property list */ +! Copy the file access property list CALL H5Pcopy_f(fapl, fapl2, error) CALL check("H5Pcopy_f", error, total_error) -!/* Set the "use the latest version of the format" bounds for creating objects in the file */ +! Set the "use the latest version of the format" bounds for creating objects in the file CALL H5Pset_libver_bounds_f(fapl2, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error) - ! /* create property to pass copy options */ + ! create property to pass copy options CALL h5pcreate_f(H5P_OBJECT_COPY_F, pid, error) CALL check("h5pcreate_f",error, total_error) - ! /* set options for object copy */ + ! set options for object copy CALL H5Pset_copy_object_f(pid, flag, error) CALL check("H5Pset_copy_object_f",error, total_error) - ! /* Verify object copy flags */ + ! Verify object copy flags CALL H5Pget_copy_object_f(pid, cpy_flags, error) CALL check("H5Pget_copy_object_f",error, total_error) CALL VERIFY("H5Pget_copy_object_f", cpy_flags, flag, total_error) @@ -1878,7 +1878,7 @@ SUBROUTINE objcopy(fapl, total_error) END SUBROUTINE objcopy -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: lapl_nlinks ! * ! * Purpose: Check that the maximum number of soft links can be adjusted @@ -1894,7 +1894,7 @@ END SUBROUTINE objcopy ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE lapl_nlinks( fapl, total_error) @@ -1907,30 +1907,30 @@ SUBROUTINE lapl_nlinks( fapl, total_error) INTEGER :: error - INTEGER(HID_T) :: fid = (-1) !/* File ID */ - INTEGER(HID_T) :: gid = (-1), gid2 = (-1) !/* Group IDs */ - INTEGER(HID_T) :: plist = (-1) ! /* lapl ID */ - INTEGER(HID_T) :: tid = (-1) ! /* Other IDs */ - INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) ! /* Other property lists */ + INTEGER(HID_T) :: fid = (-1) ! File ID + INTEGER(HID_T) :: gid = (-1), gid2 = (-1) ! Group IDs + INTEGER(HID_T) :: plist = (-1) ! lapl ID + INTEGER(HID_T) :: tid = (-1) ! Other IDs + INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) ! Other property lists - CHARACTER(LEN=7) :: objname ! /* Object name */ - INTEGER(size_t) :: name_len ! /* Length of object name */ + CHARACTER(LEN=7) :: objname ! Object name + INTEGER(size_t) :: name_len ! Length of object name CHARACTER(LEN=12) :: filename = 'TestLinks.h5' - INTEGER(size_t) :: nlinks ! /* nlinks for H5Pset_nlinks */ + INTEGER(size_t) :: nlinks ! nlinks for H5Pset_nlinks INTEGER(size_t) :: buf_size = 7 ! WRITE(*,*) "adjusting nlinks with LAPL (w/new group format)" - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl) CALL check(" lapl_nlinks.h5fcreate_f",error,total_error) - ! /* Create group with short name in file (used as target for links) */ + ! Create group with short name in file (used as target for links) CALL H5Gcreate_f(fid, "final", gid, error) CALL check(" lapl_nlinks.H5Gcreate_f", error, total_error) - !/* Create chain of soft links to existing object (limited) */ + ! Create chain of soft links to existing object (limited) CALL H5Lcreate_soft_f("final", fid, "soft1", error) CALL H5Lcreate_soft_f("soft1", fid, "soft2", error) CALL H5Lcreate_soft_f("soft2", fid, "soft3", error) @@ -1949,98 +1949,98 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Lcreate_soft_f("soft15", fid, "soft16", error) CALL H5Lcreate_soft_f("soft16", fid, "soft17", error) - !/* Close objects */ + ! Close objects CALL H5Gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - !/* Open file */ + ! Open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl) CALL check("h5open_f",error,total_error) - !/* Create LAPL with higher-than-usual nlinks value */ - !/* Create a non-default lapl with udata set to point to the first group */ + ! Create LAPL with higher-than-usual nlinks value + ! Create a non-default lapl with udata set to point to the first group CALL H5Pcreate_f(H5P_LINK_ACCESS_F,plist,error) CALL check("h5Pcreate_f",error,total_error) nlinks = 20 CALL H5Pset_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f",error,total_error) - !/* Ensure that nlinks was set successfully */ + ! Ensure that nlinks was set successfully nlinks = 0 CALL H5Pget_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f",error,total_error) CALL VERIFY("H5Pset_nlinks_f",INT(nlinks), 20, total_error) - !/* Open object through what is normally too many soft links using - ! * new property list */ + ! Open object through what is normally too many soft links using + ! * new property list CALL H5Oopen_f(fid,"soft17",gid,error,plist) CALL check("H5Oopen_f",error,total_error) - !/* Check name */ + ! Check name CALL h5iget_name_f(gid, objname, buf_size, name_len, error) CALL check("h5iget_name_f",error,total_error) CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft17", total_error) - !/* Create group using soft link */ + ! Create group using soft link CALL H5Gcreate_f(gid, "new_soft", gid2, error) CALL check("H5Gcreate_f", error, total_error) - ! /* Close groups */ + ! Close groups CALL H5Gclose_f(gid2, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(gid, error) CALL check("H5Gclose_f", error, total_error) - !/* Set nlinks to a smaller number */ + ! Set nlinks to a smaller number nlinks = 4 CALL H5Pset_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f", error, total_error) - !/* Ensure that nlinks was set successfully */ + ! Ensure that nlinks was set successfully nlinks = 0 CALL H5Pget_nlinks_f(plist, nlinks, error) CALL check("H5Pget_nlinks_f",error,total_error) CALL VERIFY("H5Pget_nlinks_f", INT(nlinks), 4, total_error) - ! /* Try opening through what is now too many soft links */ + ! Try opening through what is now too many soft links CALL H5Oopen_f(fid,"soft5",gid,error,plist) CALL VERIFY("H5Oopen_f", error, -1, total_error) ! should fail - ! /* Open object through lesser soft link */ + ! Open object through lesser soft link CALL H5Oopen_f(fid,"soft4",gid,error,plist) CALL check("H5Oopen_",error,total_error) - ! /* Check name */ + ! Check name CALL h5iget_name_f(gid, objname, buf_size, name_len, error) CALL check("h5iget_name_f",error,total_error) CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft4", total_error) - ! /* Test other functions that should use a LAPL */ + ! Test other functions that should use a LAPL nlinks = 20 CALL H5Pset_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f", error, total_error) - !/* Try copying and moving when both src and dst contain many soft links + ! Try copying and moving when both src and dst contain many soft links ! * using a non-default LAPL - ! */ + ! CALL H5Lcopy_f(fid, "soft17", fid, "soft17/newer_soft", error, H5P_DEFAULT_F, plist) CALL check("H5Lcopy_f",error,total_error) CALL H5Lmove_f(fid, "soft17/newer_soft", fid, "soft17/newest_soft", error, lapl_id=plist) CALL check("H5Lmove_f",error, total_error) - ! /* H5Olink */ + ! H5Olink CALL H5Olink_f(gid, fid, "soft17/link_to_group", error, H5P_DEFAULT_F, plist) CALL check("H5Olink_f", error, total_error) - ! /* H5Lcreate_hard and H5Lcreate_soft */ + ! H5Lcreate_hard and H5Lcreate_soft CALL H5Lcreate_hard_f(fid, "soft17", fid, "soft17/link2_to_group", error, H5P_DEFAULT_F, plist) CALL check("H5Lcreate_hard_f", error, total_error) @@ -2048,27 +2048,27 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Lcreate_soft_f("/soft4", fid, "soft17/soft_link",error, H5P_DEFAULT_F, plist) CALL check("H5Lcreate_soft_f", error, total_error) - ! /* H5Ldelete */ + ! H5Ldelete CALL h5ldelete_f(fid, "soft17/soft_link", error, plist) CALL check("H5Ldelete_f", error, total_error) -!!$ /* H5Lget_val and H5Lget_info */ +!!$ H5Lget_val and H5Lget_info !!$ if(H5Lget_val(fid, "soft17", NULL, (size_t)0, plist) < 0) TEST_ERROR !!$ if(H5Lget_info(fid, "soft17", NULL, plist) < 0) TEST_ERROR !!$ - ! /* H5Lcreate_external and H5Lcreate_ud */ + ! H5Lcreate_external and H5Lcreate_ud CALL H5Lcreate_external_f("filename", "path", fid, "soft17/extlink", error, H5P_DEFAULT_F, plist) CALL check("H5Lcreate_external_f", error, total_error) !!$ if(H5Lregister(UD_rereg_class) < 0) TEST_ERROR !!$ if(H5Lcreate_ud(fid, "soft17/udlink", UD_HARD_TYPE, NULL, (size_t)0, H5P_DEFAULT, plist) < 0) TEST_ERROR !!$ - ! /* Close plist */ + ! Close plist CALL h5pclose_f(plist, error) CALL check("h5pclose_f", error, total_error) - ! /* Create a datatype and dataset as targets inside the group */ + ! Create a datatype and dataset as targets inside the group CALL h5tcopy_f(H5T_NATIVE_INTEGER, tid, error) CALL check("h5tcopy_f",error,total_error) CALL h5tcommit_f(gid, "datatype", tid, error) @@ -2083,12 +2083,12 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if((did = H5Dcreate2(gid, "dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR !!$ if(H5Dclose(did) < 0) TEST_ERROR !!$ - !/* Close group */ + ! Close group CALL h5gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) !!$ -!!$ /* Try to open the objects using too many symlinks with default *APLs */ +!!$ Try to open the objects using too many symlinks with default *APLs !!$ H5E_BEGIN_TRY { !!$ if((gid = H5Gopen2(fid, "soft17", H5P_DEFAULT)) >= 0) !!$ FAIL_PUTS_ERROR(" Should have failed for too many nested links.") @@ -2098,7 +2098,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ FAIL_PUTS_ERROR(" Should have failed for too many nested links.") !!$ } H5E_END_TRY !!$ - ! /* Create property lists with nlinks set */ + ! Create property lists with nlinks set CALL H5Pcreate_f(H5P_GROUP_ACCESS_F,gapl,error) CALL check("h5Pcreate_f",error,total_error) @@ -2116,9 +2116,9 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Pset_nlinks_f(dapl, nlinks, error) CALL check("H5Pset_nlinks_f", error, total_error) - !/* We should now be able to use these property lists to open each kind + ! We should now be able to use these property lists to open each kind ! * of object. - ! */ + ! CALL H5Gopen_f(fid, "soft17", gid, error, gapl) CALL check("H5Gopen_f",error,total_error) @@ -2128,7 +2128,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if((did = H5Dopen2(fid, "soft17/dataset", dapl)) < 0) TEST_ERROR - ! /* Close objects */ + ! Close objects CALL h5gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) @@ -2137,7 +2137,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if(H5Dclose(did) < 0) TEST_ERROR !!$ - ! /* Close plists */ + ! Close plists CALL h5pclose_f(gapl, error) CALL check("h5pclose_f", error, total_error) @@ -2146,11 +2146,11 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if(H5Pclose(dapl) < 0) TEST_ERROR !!$ -!!$ /* Unregister UD hard link class */ +!!$ Unregister UD hard link class !!$ if(H5Lunregister(UD_HARD_TYPE) < 0) TEST_ERROR !!$ - ! /* Close file */ + ! Close file CALL H5Fclose_f(fid, error) CALL check("H5Fclose_f", error, total_error) diff --git a/fortran/test/tH5MISC_1_8.f90 b/fortran/test/tH5MISC_1_8.f90 index efc350e..efaf594 100644 --- a/fortran/test/tH5MISC_1_8.f90 +++ b/fortran/test/tH5MISC_1_8.f90 @@ -80,38 +80,36 @@ SUBROUTINE dtransform(cleanup, total_error) IF(cleanup) CALL h5_cleanup_f("dtransform", H5P_DEFAULT_F, error) CALL check("h5_cleanup_f", error, total_error) - END SUBROUTINE dtransform -!/**************************************************************** +!*************************************************************** !** !** test_genprop_basic_class(): Test basic generic property list code. !** Tests creating new generic classes. !** -!****************************************************************/ +!*************************************************************** -SUBROUTINE test_genprop_basic_class(cleanup, total_error) +SUBROUTINE test_genprop_basic_class(total_error) USE HDF5 ! This module contains all necessary modules USE TH5_MISC IMPLICIT NONE - LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error - INTEGER(HID_T) :: cid1 !/* Generic Property class ID */ - INTEGER(HID_T) :: cid2 !/* Generic Property class ID */ + INTEGER(HID_T) :: cid1 ! Generic Property class ID + INTEGER(HID_T) :: cid2 ! Generic Property class ID CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1" - CHARACTER(LEN=7) :: name ! /* Name of class */ - CHARACTER(LEN=10) :: name_big ! /* Name of class bigger buffer */ - CHARACTER(LEN=4) :: name_small ! /* Name of class smaller buffer*/ + CHARACTER(LEN=7) :: name ! Name of class + CHARACTER(LEN=10) :: name_big ! Name of class bigger buffer + CHARACTER(LEN=4) :: name_small ! Name of class smaller buffer INTEGER :: error INTEGER :: size LOGICAL :: flag - !/* Output message about test being performed */ + ! Output message about test being performed !WRITE(*,*) "Testing Basic Generic Property List Class Creation Functionality" @@ -121,11 +119,11 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) CALL H5Pget_class_name_f(cid1, name, size, error) CALL VERIFY("H5Pget_class_name", error, -1, error) - ! /* Create a new generic class, derived from the root of the class hierarchy */ + ! Create a new generic class, derived from the root of the class hierarchy CALL H5Pcreate_class_f(H5P_ROOT_F, CLASS1_NAME, cid1, error) CALL check("H5Pcreate_class", error, total_error) - ! /* Check class name */ + ! Check class name CALL H5Pget_class_name_f(cid1, name, size, error) CALL check("H5Pget_class_name", error, total_error) CALL VERIFY("H5Pget_class_name", size,7,error) @@ -135,7 +133,7 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) total_error = total_error + 1 ENDIF - ! /* Check class name smaller buffer*/ + ! Check class name smaller buffer CALL H5Pget_class_name_f(cid1, name_small, size, error) CALL check("H5Pget_class_name", error, total_error) CALL VERIFY("H5Pget_class_name", size,7,error) @@ -145,7 +143,7 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) total_error = total_error + 1 ENDIF - ! /* Check class name bigger buffer*/ + ! Check class name bigger buffer CALL H5Pget_class_name_f(cid1, name_big, size, error) CALL check("H5Pget_class_name", error, total_error) CALL VERIFY("H5Pget_class_name", size,7,error) @@ -155,56 +153,55 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) total_error = total_error + 1 ENDIF - ! /* Check class parent */ + ! Check class parent CALL H5Pget_class_parent_f(cid1, cid2, error) CALL check("H5Pget_class_parent_f", error, total_error) - ! /* Verify class parent correct */ + ! Verify class parent correct CALL H5Pequal_f(cid2, H5P_ROOT_F, flag, error) CALL check("H5Pequal_f", error, total_error) CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error) - ! /* Make certain false postives aren't being returned */ + ! Make certain false postives aren't being returned CALL H5Pequal_f(cid2, H5P_FILE_CREATE_F, flag, error) CALL check("H5Pequal_f", error, total_error) CALL verifylogical("H5Pequal_f", flag, .FALSE., total_error) - !/* Close parent class */ + ! Close parent class CALL H5Pclose_class_f(cid2, error) CALL check("H5Pclose_class_f", error, total_error) - !/* Close class */ + ! Close class CALL H5Pclose_class_f(cid1, error) CALL check("H5Pclose_class_f", error, total_error) END SUBROUTINE test_genprop_basic_class -SUBROUTINE test_h5s_encode(cleanup, total_error) +SUBROUTINE test_h5s_encode(total_error) -!/**************************************************************** +!*************************************************************** !** !** test_h5s_encode(): Test H5S (dataspace) encoding and decoding. !** -!****************************************************************/ +!*************************************************************** USE HDF5 ! This module contains all necessary modules USE TH5_MISC IMPLICIT NONE - LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error - INTEGER(hid_t) :: sid1, sid3! /* Dataspace ID */ + INTEGER(hid_t) :: sid1, sid3! Dataspace ID INTEGER(hid_t) :: decoded_sid1, decoded_sid3 - INTEGER :: rank !/* LOGICAL rank of dataspace */ + INTEGER :: rank ! LOGICAL rank of dataspace INTEGER(size_t) :: sbuf_size=0, scalar_size=0 ! Make sure the size is large CHARACTER(LEN=288) :: sbuf CHARACTER(LEN=288) :: scalar_buf - INTEGER(hsize_t) :: n ! /* Number of dataspace elements */ + INTEGER(hsize_t) :: n ! Number of dataspace elements INTEGER(hsize_t), DIMENSION(1:3) :: start = (/0, 0, 0/) INTEGER(hsize_t), DIMENSION(1:3) :: stride = (/2, 5, 3/) @@ -221,10 +218,10 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) INTEGER :: SPACE1_RANK = 3 INTEGER :: error - !/*------------------------------------------------------------------------- + !------------------------------------------------------------------------- ! * Test encoding and decoding of simple dataspace and hyperslab selection. ! *------------------------------------------------------------------------- - ! */ + ! CALL H5Screate_simple_f(SPACE1_RANK, dims1, sid1, error) CALL check("H5Screate_simple", error, total_error) @@ -234,14 +231,14 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Encode simple data space in a buffer */ + ! Encode simple data space in a buffer ! First find the buffer size CALL H5Sencode_f(sid1, sbuf, sbuf_size, error) CALL check("H5Sencode", error, total_error) - ! /* Try decoding bogus buffer */ + ! Try decoding bogus buffer CALL H5Sdecode_f(sbuf, decoded_sid1, error) CALL VERIFY("H5Sdecode", error, -1, total_error) @@ -249,12 +246,12 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL H5Sencode_f(sid1, sbuf, sbuf_size, error) CALL check("H5Sencode", error, total_error) - ! /* Decode from the dataspace buffer and return an object handle */ + ! Decode from the dataspace buffer and return an object handle CALL H5Sdecode_f(sbuf, decoded_sid1, error) CALL check("H5Sdecode", error, total_error) - ! /* Verify the decoded dataspace */ + ! Verify the decoded dataspace CALL h5sget_simple_extent_npoints_f(decoded_sid1, n, error) CALL check("h5sget_simple_extent_npoints_f", error, total_error) CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), INT(SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3), & @@ -269,16 +266,16 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL h5sclose_f(decoded_sid1, error) CALL check("h5sclose_f", error, total_error) - ! /*------------------------------------------------------------------------- + ! ------------------------------------------------------------------------- ! * Test encoding and decoding of scalar dataspace. ! *------------------------------------------------------------------------- - ! */ - ! /* Create scalar dataspace */ + ! + ! Create scalar dataspace CALL H5Screate_f(H5S_SCALAR_F, sid3, error) CALL check("H5Screate_f",error, total_error) - ! /* Encode scalar data space in a buffer */ + ! Encode scalar data space in a buffer ! First find the buffer size CALL H5Sencode_f(sid3, scalar_buf, scalar_size, error) @@ -290,19 +287,19 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL check("H5Sencode_f", error, total_error) - ! /* Decode from the dataspace buffer and return an object handle */ + ! Decode from the dataspace buffer and return an object handle CALL H5Sdecode_f(scalar_buf, decoded_sid3, error) CALL check("H5Sdecode_f", error, total_error) - ! /* Verify extent type */ + ! Verify extent type CALL H5Sget_simple_extent_type_f(decoded_sid3, space_type, error) CALL check("H5Sget_simple_extent_type_f", error, total_error) CALL VERIFY("H5Sget_simple_extent_type_f", space_type, H5S_SCALAR_F, total_error) - ! /* Verify decoded dataspace */ + ! Verify decoded dataspace CALL h5sget_simple_extent_npoints_f(decoded_sid3, n, error) CALL check("h5sget_simple_extent_npoints_f", error, total_error) CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), 1, total_error) @@ -469,6 +466,9 @@ SUBROUTINE test_scaleoffset(cleanup, total_error ) CALL H5Fclose_f(file, error) CALL CHECK(" H5Fclose_f", error, total_error) + IF(cleanup) CALL h5_cleanup_f("h5scaleoffset", H5P_DEFAULT_F, error) + CALL check("h5_cleanup_f", error, total_error) + END SUBROUTINE test_scaleoffset END MODULE TH5MISC_1_8 diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90 index 8672e3c..99d4c22 100644 --- a/fortran/test/tH5O.f90 +++ b/fortran/test/tH5O.f90 @@ -49,11 +49,11 @@ SUBROUTINE test_h5o(cleanup, total_error) END SUBROUTINE test_h5o -!/**************************************************************** +!*************************************************************** !** !** test_h5o_link: Test creating link to object !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_h5o_link(total_error) @@ -80,10 +80,10 @@ SUBROUTINE test_h5o_link(total_error) INTEGER, PARAMETER :: TRUE = 1 - LOGICAL :: committed ! /* Whether the named datatype is committed + LOGICAL :: committed ! Whether the named datatype is committed INTEGER :: i, j - INTEGER :: error ! /* Value returned from API calls + INTEGER :: error ! Value returned from API calls CHARACTER(LEN=14) :: NAME_DATATYPE_SIMPLE="H5T_NATIVE_INT" CHARACTER(LEN=16) :: NAME_DATATYPE_SIMPLE2="H5T_NATIVE_INT-2" diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90 index b7003b3..8e014f4 100644 --- a/fortran/test/tH5O_F03.f90 +++ b/fortran/test/tH5O_F03.f90 @@ -116,11 +116,11 @@ END MODULE visit_cb MODULE TH5O_F03 CONTAINS -!/**************************************************************** +!*************************************************************** !** !** test_h5o_refcount(): Test H5O refcounting functions. !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_h5o_refcount(total_error) diff --git a/fortran/test/tH5P.f90 b/fortran/test/tH5P.f90 index 8b48be6..7dcc580 100644 --- a/fortran/test/tH5P.f90 +++ b/fortran/test/tH5P.f90 @@ -450,8 +450,6 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) INTEGER(size_t) rdcc_nelmts INTEGER(size_t) rdcc_nbytes REAL :: rdcc_w0 - LOGICAL :: differ - CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) IF (error .NE. 0) THEN diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90 index 945d0a5..56f9679 100644 --- a/fortran/test/tH5P_F03.f90 +++ b/fortran/test/tH5P_F03.f90 @@ -43,7 +43,7 @@ MODULE test_genprop_cls_cb1_mod USE ISO_C_BINDING IMPLICIT NONE - TYPE, BIND(C) :: cop_cb_struct_ ! /* Struct for iterations */ + TYPE, BIND(C) :: cop_cb_struct_ ! Struct for iterations INTEGER :: count INTEGER(HID_T) :: id END TYPE cop_cb_struct_ @@ -73,7 +73,7 @@ MODULE TH5P_F03 CONTAINS -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_create ! * ! * Purpose: Tests H5Pset_fill_value_f and H5Pget_fill_value_f @@ -88,7 +88,7 @@ CONTAINS ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_create(total_error) @@ -116,9 +116,9 @@ SUBROUTINE test_create(total_error) REAL :: rfill REAL(KIND=dp) :: dpfill - !/* + ! ! * Create a file. - ! */ + ! CALL h5fcreate_f(filename,H5F_ACC_TRUNC_F,file,error) CALL check("h5fcreate_f", error, total_error) @@ -131,7 +131,7 @@ SUBROUTINE test_create(total_error) CALL h5pset_chunk_f(dcpl, 5, ch_size, error) CALL check("h5pset_chunk_f",error, total_error) - ! /* Create a compound datatype */ + ! Create a compound datatype CALL h5tcreate_f(H5T_COMPOUND_F, H5_SIZEOF(fill_ctype), comp_type_id, error) CALL check("h5tcreate_f", error, total_error) h5off = H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%a)) @@ -152,7 +152,7 @@ SUBROUTINE test_create(total_error) CALL H5Pset_fill_time_f(dcpl, H5D_FILL_TIME_ALLOC_F, error) CALL check("H5Pset_fill_time_f",error, total_error) - ! /* Compound datatype test */ + ! Compound datatype test f_ptr = C_LOC(fill_ctype) @@ -213,7 +213,7 @@ SUBROUTINE test_create(total_error) CALL h5fclose_f(file,error) CALL check("h5fclose_f", error, total_error) - ! /* Open the file and get the dataset fill value from each dataset */ + ! Open the file and get the dataset fill value from each dataset CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error) CALL check("H5Pcreate_f",error, total_error) @@ -223,7 +223,7 @@ SUBROUTINE test_create(total_error) CALL h5fopen_f (FILENAME, H5F_ACC_RDONLY_F, file, error, fapl) CALL check("h5fopen_f", error, total_error) - !/* Compound datatype test */ + ! Compound datatype test CALL h5dopen_f(file, "dset9", dset9, error) CALL check("h5dopen_f", error, total_error) @@ -277,14 +277,13 @@ SUBROUTINE test_genprop_class_callback(total_error) INTEGER, INTENT(INOUT) :: total_error - INTEGER(hid_t) :: cid1 !/* Generic Property class ID */ - INTEGER(hid_t) :: lid1 !/* Generic Property list ID */ - INTEGER(hid_t) :: lid2 !/* 2nd Generic Property list ID */ - INTEGER(size_t) :: nprops !/* Number of properties in class */ + INTEGER(hid_t) :: cid1, cid2 ! Generic Property class ID + INTEGER(hid_t) :: lid1, lid2 ! Generic Property list ID + INTEGER(size_t) :: nprops ! Number of properties in class TYPE(cop_cb_struct_), TARGET :: crt_cb_struct, cls_cb_struct - - CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1" + INTEGER :: CLASS1_NAME_SIZE = 7 ! length of class string + CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1", CLASS1_NAME_BUF TYPE(C_FUNPTR) :: f1, f5 TYPE(C_PTR) :: f2, f6 @@ -301,7 +300,8 @@ SUBROUTINE test_genprop_class_callback(total_error) INTEGER :: PROP3_DEF_VALUE = 10 INTEGER :: PROP4_DEF_VALUE = 10 - INTEGER :: error ! /* Generic RETURN value */ + INTEGER :: error ! Generic RETURN value + LOGICAL :: flag ! for tests f1 = C_FUNLOC(test_genprop_cls_cb1_f) f5 = C_FUNLOC(test_genprop_cls_cb1_f) @@ -309,79 +309,100 @@ SUBROUTINE test_genprop_class_callback(total_error) f2 = C_LOC(crt_cb_struct) f6 = C_LOC(cls_cb_struct) - !/* Create a new generic class, derived from the root of the class hierarchy */ - CALL h5pcreate_class_f(h5p_ROOT_F,CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6) + ! Create a new generic class, derived from the root of the class hierarchy + CALL h5pcreate_class_f(h5p_ROOT_F, CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6) CALL check("h5pcreate_class_f", error, total_error) - !/* Insert first property into class (with no callbacks) */ + ! Insert first property into class (with no callbacks) CALL h5pregister_f(cid1, PROP1_NAME, PROP1_SIZE, PROP1_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - !/* Insert second property into class (with no callbacks) */ + ! Insert second property into class (with no callbacks) CALL h5pregister_f(cid1, PROP2_NAME, PROP2_SIZE, PROP2_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - !/* Insert third property into class (with no callbacks) */ + ! Insert third property into class (with no callbacks) CALL h5pregister_f(cid1, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - !/* Insert fourth property into class (with no callbacks) */ + ! Insert fourth property into class (with no callbacks) CALL h5pregister_f(cid1, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - ! /* Check the number of properties in class */ + ! Check the number of properties in class CALL h5pget_nprops_f(cid1, nprops, error) CALL check("h5pget_nprops_f", error, total_error) CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) - ! /* Initialize class callback structs */ + ! Initialize class callback structs crt_cb_struct%count = 0 crt_cb_struct%id = -1 cls_cb_struct%count = 0 cls_cb_struct%id = -1 - !/* Create a property list from the class */ + ! Create a property list from the class CALL h5pcreate_f(cid1, lid1, error) CALL check("h5pcreate_f", error, total_error) - !/* Verify that the creation callback occurred */ + ! Get the list's class + CALL H5Pget_class_f(lid1, cid2, error) + CALL check("H5Pget_class_f", error, total_error) + + ! Check that the list's class is correct + CALL H5Pequal_f(cid2, cid1, flag, error) + CALL check("H5Pequal_f", error, total_error) + CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error) + + ! Check the class name + CALL H5Pget_class_name_f(cid2, CLASS1_NAME_BUF, CLASS1_NAME_SIZE, error) + CALL check("H5Pget_class_name_f", error, total_error) + CALL verifystring("H5Pget_class_name_f", CLASS1_NAME_BUF, CLASS1_NAME, error) + IF(error.NE.0)THEN + WRITE(*,*) 'Class names do not match! name=',CLASS1_NAME_BUF, 'CLASS1_NAME=',CLASS1_NAME + total_error = total_error + 1 + ENDIF + ! Close class + CALL h5pclose_class_f(cid2, error) + CALL check("h5pclose_class_f", error, total_error) + + ! Verify that the creation callback occurred CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 1, total_error) - CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid1), total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid1, total_error) - ! /* Check the number of properties in list */ + ! Check the number of properties in list CALL h5pget_nprops_f(lid1,nprops, error) CALL check("h5pget_nprops_f", error, total_error) CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) - ! /* Create another property list from the class */ + ! Create another property list from the class CALL h5pcreate_f(cid1, lid2, error) CALL check("h5pcreate_f", error, total_error) - ! /* Verify that the creation callback occurred */ + ! Verify that the creation callback occurred CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 2, total_error) - CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid2), total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid2, total_error) - ! /* Check the number of properties in list */ + ! Check the number of properties in list CALL h5pget_nprops_f(lid2,nprops, error) CALL check("h5pget_nprops_f", error, total_error) CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) - ! /* Close first list */ + ! Close first list CALL h5pclose_f(lid1, error); CALL check("h5pclose_f", error, total_error) - !/* Verify that the close callback occurred */ + ! Verify that the close callback occurred CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 1, total_error) - CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid1), total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid1, total_error) - !/* Close second list */ + ! Close second list CALL h5pclose_f(lid2, error); CALL check("h5pclose_f", error, total_error) - !/* Verify that the close callback occurred */ + ! Verify that the close callback occurred CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 2, total_error) - CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid2), total_error) + CALL verify_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid2, total_error) - !/* Close class */ + ! Close class CALL h5pclose_class_f(cid1, error) CALL check("h5pclose_class_f", error, total_error) diff --git a/fortran/test/tH5Sselect.f90 b/fortran/test/tH5Sselect.f90 index ba68d62..7d07308 100644 --- a/fortran/test/tH5Sselect.f90 +++ b/fortran/test/tH5Sselect.f90 @@ -1027,13 +1027,13 @@ CONTAINS RETURN END SUBROUTINE test_basic_select -!/**************************************************************** +!*************************************************************** !** !** test_select_point(): Test basic H5S (dataspace) selection code. !** Tests element selections between dataspaces of various sizes !** and dimensionalities. !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_select_point(cleanup, total_error) USE HDF5 ! This module contains all necessary modules @@ -1056,29 +1056,29 @@ SUBROUTINE test_select_point(cleanup, total_error) INTEGER, PARAMETER :: SPACE2_RANK=2 INTEGER, PARAMETER :: SPACE3_RANK=2 - ! /* Element selection information */ + ! Element selection information INTEGER, PARAMETER :: POINT1_NPOINTS=10 - INTEGER(hid_t) ::fid1 ! /* HDF5 File IDs */ - INTEGER(hid_t) ::dataset ! /* Dataset ID */ - INTEGER(hid_t) ::sid1,sid2 ! /* Dataspace ID */ + INTEGER(hid_t) ::fid1 ! HDF5 File IDs + INTEGER(hid_t) ::dataset ! Dataset ID + INTEGER(hid_t) ::sid1,sid2 ! Dataspace ID INTEGER(hsize_t), DIMENSION(1:3) :: dims1 = (/SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3/) INTEGER(hsize_t), DIMENSION(1:2) :: dims2 = (/SPACE2_DIM1, SPACE2_DIM2/) INTEGER(hsize_t), DIMENSION(1:2) :: dims3 = (/SPACE3_DIM1, SPACE3_DIM2/) - INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 !/* Coordinates for point selection */ + INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 ! Coordinates for point selection INTEGER(hssize_t) :: npoints -!!$ uint8_t *wbuf, /* buffer to write to disk */ -!!$ *rbuf, /* buffer read from disk */ -!!$ *tbuf; /* temporary buffer pointer */ - INTEGER :: i,j; !/* Counters */ -! struct pnt_iter pi; /* Custom Pointer iterator struct */ - INTEGER :: error !/* Generic return value */ +!!$ uint8_t *wbuf, buffer to write to disk +!!$ *rbuf, buffer read from disk +!!$ *tbuf; temporary buffer pointer + INTEGER :: i,j; ! Counters +! struct pnt_iter pi; Custom Pointer iterator struct + INTEGER :: error ! Generic return value CHARACTER(LEN=9) :: filename = 'h5s_hyper' CHARACTER(LEN=80) :: fix_filename CHARACTER(LEN=1), DIMENSION(1:SPACE2_DIM1,1:SPACE2_DIM2) :: wbuf @@ -1091,11 +1091,11 @@ SUBROUTINE test_select_point(cleanup, total_error) xfer_plist = H5P_DEFAULT_F ! MESSAGE(5, ("Testing Element Selection Functions\n")); - !/* Allocate write & read buffers */ + ! Allocate write & read buffers !!$ wbuf = HDmalloc(sizeof(uint8_t) * SPACE2_DIM1 * SPACE2_DIM2); !!$ rbuf = HDcalloc(sizeof(uint8_t), (size_t)(SPACE3_DIM1 * SPACE3_DIM2)); !!$ - !/* Initialize WRITE buffer */ + ! Initialize WRITE buffer DO i = 1, SPACE2_DIM1 DO j = 1, SPACE2_DIM2 @@ -1107,19 +1107,19 @@ SUBROUTINE test_select_point(cleanup, total_error) !!$ for(j=0; j<SPACE2_DIM2; j++) !!$ *tbuf++=(uint8_t)((i*SPACE2_DIM2)+j); - !/* Create file */ + ! Create file CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, fid1, error) CALL check("h5fcreate_f", error, total_error) - !/* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_simple_f(SPACE1_RANK, dims1, sid1, error) CALL check("h5screate_simple_f", error, total_error) - !/* Create dataspace for write buffer */ + ! Create dataspace for write buffer CALL h5screate_simple_f(SPACE2_RANK, dims2, sid2, error) CALL check("h5screate_simple_f", error, total_error) - !/* Select sequence of ten points for disk dataset */ + ! Select sequence of ten points for disk dataset coord1(1,1)=1; coord1(2,1)=11; coord1(3,1)= 6; coord1(1,2)=2; coord1(2,2)= 3; coord1(3,2)= 8; coord1(1,3)=3; coord1(2,3)= 5; coord1(3,3)=10; @@ -1134,7 +1134,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL h5sselect_elements_f(sid1, H5S_SELECT_SET_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error) CALL check("h5sselect_elements_f", error, total_error) - !/* Verify correct elements selected */ + ! Verify correct elements selected CALL h5sget_select_elem_pointlist_f(sid1, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) @@ -1149,7 +1149,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_npoints_f", error, total_error) CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error) - !/* Append another sequence of ten points to disk dataset */ + ! Append another sequence of ten points to disk dataset coord1(1,1)=1; coord1(2,1)=3; coord1(3,1)= 1; coord1(1,2)=2; coord1(2,2)=11; coord1(3,2)= 9; @@ -1165,7 +1165,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL h5sselect_elements_f(sid1, H5S_SELECT_APPEND_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error) CALL check("h5sselect_elements_f", error, total_error) - ! /* Verify correct elements selected */ + ! Verify correct elements selected CALL h5sget_select_elem_pointlist_f(sid1, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) @@ -1180,7 +1180,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_npoints_f", error, total_error) CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error) - ! /* Select sequence of ten points for memory dataset */ + ! Select sequence of ten points for memory dataset coord2(1,1)=13; coord2(2,1)= 4; coord2(1,2)=16; coord2(2,2)=14; coord2(1,3)= 8; coord2(2,3)=26; @@ -1196,7 +1196,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sselect_elements_f", error, total_error) - !/* Verify correct elements selected */ + ! Verify correct elements selected CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) @@ -1207,9 +1207,9 @@ SUBROUTINE test_select_point(cleanup, total_error) ENDDO !!$ -!!$ /* Save points for later iteration */ -!!$ /* (these are in the second half of the buffer, because we are prepending */ -!!$ /* the next list of points to the beginning of the point selection list) */ +!!$ Save points for later iteration +!!$ (these are in the second half of the buffer, because we are prepending +!!$ the next list of points to the beginning of the point selection list) !!$ HDmemcpy(((char *)pi.coord)+sizeof(coord2),coord2,sizeof(coord2)); !!$ @@ -1217,7 +1217,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_npoints_f", error, total_error) CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error) - !/* Append another sequence of ten points to memory dataset */ + ! Append another sequence of ten points to memory dataset coord2(1,1)=25; coord2(2,1)= 1; coord2(1,2)= 3; coord2(2,2)=26; coord2(1,3)=14; coord2(2,3)=18; @@ -1233,7 +1233,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sselect_elements_f", error, total_error) - !/* Verify correct elements selected */ + ! Verify correct elements selected CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) @@ -1246,26 +1246,26 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_npoints_f", error, total_error) CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error) -!!$ /* Save points for later iteration */ +!!$ Save points for later iteration !!$ HDmemcpy(pi.coord,coord2,sizeof(coord2)); - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid1, "Dataset1", H5T_NATIVE_CHARACTER, sid1, dataset, error) CALL check("h5dcreate_f", error, total_error) - ! /* Write selection to disk */ + ! Write selection to disk CALL h5dwrite_f(dataset, H5T_NATIVE_CHARACTER, wbuf, dims2, error, sid2, sid1, xfer_plist) CALL check("h5dwrite_f", error, total_error) - ! /* Close memory dataspace */ + ! Close memory dataspace CALL h5sclose_f(sid2, error) CALL check("h5sclose_f", error, total_error) - ! /* Create dataspace for reading buffer */ + ! Create dataspace for reading buffer CALL h5screate_simple_f(SPACE3_RANK, dims3, sid2, error) CALL check("h5screate_simple_f", error, total_error) - ! /* Select sequence of points for read dataset */ + ! Select sequence of points for read dataset coord3(1,1)= 1; coord3(2,1)= 3; coord3(1,2)= 5; coord3(2,2)= 9; coord3(1,3)=14; coord3(2,3)=14; @@ -1280,7 +1280,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL h5sselect_elements_f(sid2, H5S_SELECT_SET_F, SPACE3_RANK, INT(POINT1_NPOINTS,size_t), coord3, error) CALL check("h5sselect_elements_f", error, total_error) - ! /* Verify correct elements selected */ + ! Verify correct elements selected CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS @@ -1292,7 +1292,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_npoints_f", error, total_error) CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error) - !/* Append another sequence of ten points to disk dataset */ + ! Append another sequence of ten points to disk dataset coord3(1,1)=15; coord3(2,1)=26; coord3(1,2)= 1; coord3(2,2)= 1; coord3(1,3)=12; coord3(2,3)=12; @@ -1307,7 +1307,7 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL h5sselect_elements_f(sid2, H5S_SELECT_APPEND_F, SPACE3_RANK, INT(POINT1_NPOINTS,size_t), coord3, error) CALL check("h5sselect_elements_f", error, total_error) - ! /* Verify correct elements selected */ + ! Verify correct elements selected CALL h5sget_select_elem_pointlist_f(sid2, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS @@ -1320,11 +1320,11 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error) ! F2003 feature -!!$ /* Read selection from disk */ +!!$ Read selection from disk !!$ ret=H5Dread(dataset,H5T_NATIVE_UCHAR,sid2,sid1,xfer_plist,rbuf); !!$ CHECK(ret, FAIL, "H5Dread"); !!$ -!!$ /* Check that the values match with a dataset iterator */ +!!$ Check that the values match with a dataset iterator !!$ pi.buf=wbuf; !!$ pi.offset=0; !!$ ret = H5Diterate(rbuf,H5T_NATIVE_UCHAR,sid2,test_select_point_iter1,&pi); @@ -1332,19 +1332,19 @@ SUBROUTINE test_select_point(cleanup, total_error) !!$ ! F2003 feature - !/* Close memory dataspace */ + ! Close memory dataspace CALL h5sclose_f(sid2, error) CALL check("h5sclose_f", error, total_error) - !/* Close disk dataspace */ + ! Close disk dataspace CALL h5sclose_f(sid1, error) CALL check("h5sclose_f", error, total_error) - !/* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f", error, total_error) - !/* Close file */ + ! Close file CALL h5fclose_f(fid1, error) CALL check("h5fclose_f", error, total_error) @@ -1354,13 +1354,13 @@ SUBROUTINE test_select_point(cleanup, total_error) END SUBROUTINE test_select_point -!/**************************************************************** +!*************************************************************** !** !** test_select_combine(): Test basic H5S (dataspace) selection code. !** Tests combining "all" and "none" selections with hyperslab !** operations. !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_select_combine(total_error) USE HDF5 ! This module contains all necessary modules @@ -1373,25 +1373,25 @@ SUBROUTINE test_select_combine(total_error) INTEGER, PARAMETER :: SPACE7_DIM1 = 10 INTEGER, PARAMETER :: SPACE7_DIM2 = 10 - INTEGER(hid_t) :: base_id ! /* Base dataspace for test */ - INTEGER(hid_t) :: all_id ! /* Dataspace for "all" selection */ - INTEGER(hid_t) :: none_id ! /* Dataspace for "none" selection */ - INTEGER(hid_t) :: space1 ! /* Temporary dataspace #1 */ - INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: start ! /* Hyperslab start */ - INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: stride ! /* Hyperslab stride */ - INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: icount ! /* Hyperslab count */ - INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: iblock ! /* Hyperslab BLOCK */ - INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: dims = (/SPACE7_DIM1,SPACE7_DIM2/) !/* Dimensions of dataspace */ - INTEGER :: sel_type ! /* Selection type */ - INTEGER(hssize_t) :: nblocks !/* Number of hyperslab blocks */ - INTEGER(hsize_t), DIMENSION(1:128,1:2,1:SPACE7_RANK) :: blocks ! /* List of blocks */ + INTEGER(hid_t) :: base_id ! Base dataspace for test + INTEGER(hid_t) :: all_id ! Dataspace for "all" selection + INTEGER(hid_t) :: none_id ! Dataspace for "none" selection + INTEGER(hid_t) :: space1 ! Temporary dataspace #1 + INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: start ! Hyperslab start + INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: stride ! Hyperslab stride + INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: icount ! Hyperslab count + INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: iblock ! Hyperslab BLOCK + INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: dims = (/SPACE7_DIM1,SPACE7_DIM2/) ! Dimensions of dataspace + INTEGER :: sel_type ! Selection type + INTEGER(hssize_t) :: nblocks ! Number of hyperslab blocks + INTEGER(hsize_t), DIMENSION(1:128,1:2,1:SPACE7_RANK) :: blocks ! List of blocks INTEGER :: error, area - !/* Create dataspace for dataset on disk */ + ! Create dataspace for dataset on disk CALL h5screate_simple_f(SPACE7_RANK, dims, base_id, error) CALL check("h5screate_simple_f", error, total_error) - ! /* Copy base dataspace and set selection to "all" */ + ! Copy base dataspace and set selection to "all" CALL h5scopy_f(base_id, all_id, error) CALL check("h5scopy_f", error, total_error) @@ -1402,7 +1402,7 @@ SUBROUTINE test_select_combine(total_error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error) - !/* Copy base dataspace and set selection to "none" */ + ! Copy base dataspace and set selection to "none" CALL h5scopy_f(base_id, none_id, error) CALL check("h5scopy_f", error, total_error) @@ -1413,11 +1413,11 @@ SUBROUTINE test_select_combine(total_error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_NONE_F), total_error) - !/* Copy "all" selection & space */ + ! Copy "all" selection & space CALL H5Scopy_f(all_id, space1, error) CALL check("h5scopy_f", error, total_error) - !/* 'OR' "all" selection with another hyperslab */ + ! 'OR' "all" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1426,20 +1426,20 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Verify that it's still "all" selection */ + ! Verify that it's still "all" selection CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error) - !/* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - !/* Copy "all" selection & space */ + ! Copy "all" selection & space CALL H5Scopy_f(all_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'AND' "all" selection with another hyperslab */ + ! 'AND' "all" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1448,36 +1448,36 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Verify that the new selection is the same at the original block */ + ! Verify that the new selection is the same at the original block CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) - !/* Verify that there is only one block */ + ! Verify that there is only one block CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error) CALL check("h5sget_select_hyper_nblocks_f", error, total_error) CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) - !/* Retrieve the block defined */ + ! Retrieve the block defined CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) - !/* Verify that the correct block is defined */ + ! Verify that the correct block is defined CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error) - !/* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - !/* Copy "all" selection & space */ + ! Copy "all" selection & space CALL H5Scopy_f(all_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'XOR' "all" selection with another hyperslab */ + ! 'XOR' "all" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1487,23 +1487,23 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is an inversion of the original block */ + ! Verify that the new selection is an inversion of the original block CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) - ! /* Verify that there are two blocks */ + ! Verify that there are two blocks CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error) CALL check("h5sget_select_hyper_nblocks_f", error, total_error) CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error) - ! /* Retrieve the block defined */ + ! Retrieve the block defined - blocks = -1 ! /* Reset block list */ + blocks = -1 ! Reset block list CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) - ! /* Verify that the correct block is defined */ + ! Verify that the correct block is defined ! No guarantee is implied as the order in which blocks are listed. ! So this will ONLY work for square domains iblock(1:2) = (/5,5/) @@ -1521,15 +1521,15 @@ SUBROUTINE test_select_combine(total_error) area = area + (ABS(INT(blocks(5,1,1)-blocks(7,1,1)))+1)*(ABS(INT(blocks(6,1,1)-blocks(8,1,1)))+1) CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error) - !/* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "all" selection & space */ + ! Copy "all" selection & space CALL H5Scopy_f(all_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'NOTB' "all" selection with another hyperslab */ + ! 'NOTB' "all" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1539,22 +1539,22 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is an inversion of the original block */ + ! Verify that the new selection is an inversion of the original block CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) - ! /* Verify that there are two blocks */ + ! Verify that there are two blocks CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error) CALL check("h5sget_select_hyper_nblocks_f", error, total_error) CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error) - ! /* Retrieve the block defined */ - blocks = -1 ! /* Reset block list */ + ! Retrieve the block defined + blocks = -1 ! Reset block list CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) - ! /* Verify that the correct block is defined */ + ! Verify that the correct block is defined ! No guarantee is implied as the order in which blocks are listed. ! So this will ONLY work for square domains iblock(1:2) = (/5,5/) @@ -1574,14 +1574,14 @@ SUBROUTINE test_select_combine(total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "all" selection & space */ + ! Copy "all" selection & space CALL H5Scopy_f(all_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'NOTA' "all" selection with another hyperslab */ + ! 'NOTA' "all" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1591,20 +1591,20 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Verify that the new selection is the "none" selection */ + ! Verify that the new selection is the "none" selection CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "none" selection & space */ + ! Copy "none" selection & space CALL H5Scopy_f(none_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'OR' "none" selection with another hyperslab */ + ! 'OR' "none" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1614,37 +1614,37 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is the same as the original hyperslab */ + ! Verify that the new selection is the same as the original hyperslab CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) - ! /* Verify that there is only one block */ + ! Verify that there is only one block CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error) CALL check("h5sget_select_hyper_nblocks_f", error, total_error) CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) - ! /* Retrieve the block defined */ - blocks = -1 ! /* Reset block list */ + ! Retrieve the block defined + blocks = -1 ! Reset block list CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) - ! /* Verify that the correct block is defined */ + ! Verify that the correct block is defined CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "none" selection & space */ + ! Copy "none" selection & space CALL H5Scopy_f(none_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'AND' "none" selection with another hyperslab */ + ! 'AND' "none" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1654,20 +1654,20 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is the "none" selection */ + ! Verify that the new selection is the "none" selection CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "none" selection & space */ + ! Copy "none" selection & space CALL H5Scopy_f(none_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'XOR' "none" selection with another hyperslab */ + ! 'XOR' "none" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1677,36 +1677,36 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is the same as the original hyperslab */ + ! Verify that the new selection is the same as the original hyperslab CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) - ! /* Verify that there is only one block */ + ! Verify that there is only one block CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error) CALL check("h5sget_select_hyper_nblocks_f", error, total_error) CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) - ! /* Retrieve the block defined */ - blocks = -1 ! /* Reset block list */ + ! Retrieve the block defined + blocks = -1 ! Reset block list CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) - ! /* Verify that the correct block is defined */ + ! Verify that the correct block is defined CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "none" selection & space */ + ! Copy "none" selection & space CALL H5Scopy_f(none_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'NOTB' "none" selection with another hyperslab */ + ! 'NOTB' "none" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1716,20 +1716,20 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is the "none" selection */ + ! Verify that the new selection is the "none" selection CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Copy "none" selection & space */ + ! Copy "none" selection & space CALL H5Scopy_f(none_id, space1, error) CALL check("h5scopy_f", error, total_error) - ! /* 'NOTA' "none" selection with another hyperslab */ + ! 'NOTA' "none" selection with another hyperslab start(1:2) = 0 stride(1:2) = 1 icount(1:2) = 1 @@ -1738,35 +1738,35 @@ SUBROUTINE test_select_combine(total_error) icount, error, stride, iblock) CALL check("h5sselect_hyperslab_f", error, total_error) - ! /* Verify that the new selection is the same as the original hyperslab */ + ! Verify that the new selection is the same as the original hyperslab CALL H5Sget_select_type_f(space1, sel_type, error) CALL check("H5Sget_select_type_f", error, total_error) CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) - ! /* Verify that there is ONLY one BLOCK */ + ! Verify that there is ONLY one BLOCK CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error) CALL check("h5sget_select_hyper_nblocks_f", error, total_error) CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) - ! /* Retrieve the block defined */ + ! Retrieve the block defined - blocks = -1 ! /* Reset block list */ + blocks = -1 ! Reset block list CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) - ! /* Verify that the correct block is defined */ + ! Verify that the correct block is defined CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error) CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error) - ! /* Close temporary dataspace */ + ! Close temporary dataspace CALL h5sclose_f(space1, error) CALL check("h5sclose_f", error, total_error) - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(base_id, error) CALL check("h5sclose_f", error, total_error) @@ -1777,12 +1777,12 @@ SUBROUTINE test_select_combine(total_error) END SUBROUTINE test_select_combine -!/**************************************************************** +!*************************************************************** !** !** test_select_bounds(): Tests selection bounds on dataspaces, !** both with and without offsets. !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_select_bounds(total_error) USE HDF5 ! This module contains all necessary modules @@ -1796,24 +1796,24 @@ SUBROUTINE test_select_bounds(total_error) INTEGER, PARAMETER :: SPACE11_DIM2=50 INTEGER, PARAMETER :: SPACE11_NPOINTS=4 - INTEGER(hid_t) :: sid ! /* Dataspace ID */ + INTEGER(hid_t) :: sid ! Dataspace ID INTEGER(hsize_t), DIMENSION(1:SPACE11_RANK) :: dims = (/SPACE11_DIM1, SPACE11_DIM2/) !Dataspace dimensions - INTEGER(hsize_t), DIMENSION(SPACE11_RANK, SPACE11_NPOINTS) :: coord !/* Coordinates for point selection - INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: start ! /* The start of the hyperslab */ - INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: stride !/* The stride between block starts for the hyperslab */ - INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: count !/* The number of blocks for the hyperslab */ - INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: BLOCK !/* The size of each block for the hyperslab */ - INTEGER(hssize_t), DIMENSION(SPACE11_RANK) :: offset !/* Offset amount for selection */ - INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: low_bounds !/* The low bounds for the selection */ - INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: high_bounds !/* The high bounds for the selection */ + INTEGER(hsize_t), DIMENSION(SPACE11_RANK, SPACE11_NPOINTS) :: coord ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: start ! The start of the hyperslab + INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: stride ! The stride between block starts for the hyperslab + INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: count ! The number of blocks for the hyperslab + INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: BLOCK ! The size of each block for the hyperslab + INTEGER(hssize_t), DIMENSION(SPACE11_RANK) :: offset ! Offset amount for selection + INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: low_bounds ! The low bounds for the selection + INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: high_bounds ! The high bounds for the selection INTEGER :: error - !/* Create dataspace */ + ! Create dataspace CALL h5screate_simple_f(SPACE11_RANK, dims, sid, error) CALL check("h5screate_simple_f", error, total_error) - ! /* Get bounds for 'all' selection */ + ! Get bounds for 'all' selection CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1822,12 +1822,12 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error) - !/* Set offset for selection */ + ! Set offset for selection offset(1:2) = 1 CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - !/* Get bounds for 'all' selection with offset (which should be ignored) */ + ! Get bounds for 'all' selection with offset (which should be ignored) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1836,20 +1836,20 @@ SUBROUTINE test_select_bounds(total_error) CALL verify("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error) CALL verify("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error) - !/* Reset offset for selection */ + ! Reset offset for selection offset(1:2) = 0 CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - !/* Set 'none' selection */ + ! Set 'none' selection CALL H5Sselect_none_f(sid, error) CALL check("H5Sselect_none_f", error, total_error) - !/* Get bounds for 'none' selection, should fail */ + ! Get bounds for 'none' selection, should fail CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) - !/* Set point selection */ + ! Set point selection coord(1,1)= 3; coord(2,1)= 3; coord(1,2)= 3; coord(2,2)= 46; @@ -1859,7 +1859,7 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sselect_elements_f(sid, H5S_SELECT_SET_F, SPACE11_RANK, INT(SPACE11_NPOINTS,size_t), coord, error) CALL check("h5sselect_elements_f", error, total_error) - !/* Get bounds for point selection */ + ! Get bounds for point selection CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1868,22 +1868,22 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), INT(SPACE11_DIM1-4), total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), INT(SPACE11_DIM2-4), total_error) - ! /* Set bad offset for selection */ + ! Set bad offset for selection offset(1:2) = (/5,-5/) CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - ! /* Get bounds for hyperslab selection with negative offset */ + ! Get bounds for hyperslab selection with negative offset CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) - ! /* Set valid offset for selection */ + ! Set valid offset for selection offset(1:2) = (/2,-2/) CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - ! /* Get bounds for point selection with offset */ + ! Get bounds for point selection with offset CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1892,12 +1892,12 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), INT(SPACE11_DIM1-2), total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), INT(SPACE11_DIM2-6), total_error) - ! /* Reset offset for selection */ + ! Reset offset for selection offset(1:2) = 0 CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - ! /* Set "regular" hyperslab selection */ + ! Set "regular" hyperslab selection start(1:2) = 2 stride(1:2) = 10 count(1:2) = 4 @@ -1907,7 +1907,7 @@ SUBROUTINE test_select_bounds(total_error) count, error, stride, block) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Get bounds for hyperslab selection */ + ! Get bounds for hyperslab selection CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1916,21 +1916,21 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 37, total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 37, total_error) - !/* Set bad offset for selection */ + ! Set bad offset for selection offset(1:2) = (/5,-5/) CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - ! /* Get bounds for hyperslab selection with negative offset */ + ! Get bounds for hyperslab selection with negative offset CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) - ! /* Set valid offset for selection */ + ! Set valid offset for selection offset(1:2) = (/5,-2/) CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - !/* Get bounds for hyperslab selection with offset */ + ! Get bounds for hyperslab selection with offset CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1939,12 +1939,12 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 42, total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 35, total_error) - !/* Reset offset for selection */ + ! Reset offset for selection offset(1:2) = 0 CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - ! /* Make "irregular" hyperslab selection */ + ! Make "irregular" hyperslab selection start(1:2) = 20 stride(1:2) = 20 count(1:2) = 2 @@ -1954,7 +1954,7 @@ SUBROUTINE test_select_bounds(total_error) count, error, stride, block) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Get bounds for hyperslab selection */ + ! Get bounds for hyperslab selection CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1963,21 +1963,21 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 50, total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 50, total_error) - ! /* Set bad offset for selection */ + ! Set bad offset for selection offset(1:2) = (/5,-5/) CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - ! /* Get bounds for hyperslab selection with negative offset */ + ! Get bounds for hyperslab selection with negative offset CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) - !/* Set valid offset for selection */ + ! Set valid offset for selection offset(1:2) = (/5,-2/) CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - !/* Get bounds for hyperslab selection with offset */ + ! Get bounds for hyperslab selection with offset CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) @@ -1986,12 +1986,12 @@ SUBROUTINE test_select_bounds(total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 55, total_error) CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 48, total_error) - !/* Reset offset for selection */ + ! Reset offset for selection offset(1:2) = 0 CALL H5Soffset_simple_f(sid, offset, error) CALL check("H5Soffset_simple_f", error, total_error) - !/* Close the dataspace */ + ! Close the dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f", error, total_error) diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90 index 8ac91d2..7822c16 100644 --- a/fortran/test/tH5T.f90 +++ b/fortran/test/tH5T.f90 @@ -112,7 +112,7 @@ CONTAINS INTEGER(HID_T) :: decoded_tid1 INTEGER(HID_T) :: fixed_str1, fixed_str2 - LOGICAL :: are_equal, differ + LOGICAL :: are_equal INTEGER(SIZE_T), PARAMETER :: str_size = 10 INTEGER(SIZE_T) :: query_size @@ -556,13 +556,13 @@ CONTAINS ! * Test encoding and decoding compound datatypes ! *----------------------------------------------------------------------- ! - ! /* Encode compound type in a buffer */ + ! Encode compound type in a buffer ! -- First find the buffer size CALL H5Tencode_f(dtype_id, cmpd_buf, cmpd_buf_size, error) CALL check("H5Tencode_f", error, total_error) - ! /* Try decoding bogus buffer */ + ! Try decoding bogus buffer CALL H5Tdecode_f(cmpd_buf, decoded_tid1, error) CALL VERIFY("H5Tdecode_f", error, -1, total_error) @@ -570,11 +570,11 @@ CONTAINS CALL H5Tencode_f(dtype_id, cmpd_buf, cmpd_buf_size, error) CALL check("H5Tencode_f", error, total_error) - ! /* Decode from the compound buffer and return an object handle */ + ! Decode from the compound buffer and return an object handle CALL H5Tdecode_f(cmpd_buf, decoded_tid1, error) CALL check("H5Tdecode_f", error, total_error) - ! /* Verify that the datatype was copied exactly */ + ! Verify that the datatype was copied exactly CALL H5Tequal_f(decoded_tid1, dtype_id, flag, error) CALL check("H5Tequal_f", error, total_error) @@ -897,7 +897,7 @@ CONTAINS CALL H5Tget_native_type_f(dtype, H5T_DIR_ASCEND_F, native_type, error) CALL check("H5Tget_native_type_f",error, total_error) - !/* Verify the datatype retrieved and converted */ + ! Verify the datatype retrieved and converted CALL H5Tget_order_f(native_type, order1, error) CALL check("H5Tget_order_f",error, total_error) CALL H5Tget_order_f(H5T_NATIVE_INTEGER, order2, error) @@ -952,7 +952,7 @@ CONTAINS RETURN END SUBROUTINE enumtest -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_derived_flt ! * ! * Purpose: Tests user-define and query functions of floating-point types. @@ -968,7 +968,7 @@ CONTAINS ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_derived_flt(cleanup, total_error) @@ -990,7 +990,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error) INTEGER :: error - !/* Create File */ + ! Create File CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) IF (error .NE. 0) THEN WRITE(*,*) "Cannot modify filename" @@ -1009,7 +1009,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error) CALL h5tcopy_f(H5T_IEEE_F32LE, tid2, error) CALL check("h5tcopy_f",error,total_error) - !/*------------------------------------------------------------------------ + !------------------------------------------------------------------------ ! * 1st floating-point type ! * size=7 byte, precision=42 bits, offset=3 bits, mantissa size=31 bits, ! * mantissa position=3, exponent size=10 bits, exponent position=34, @@ -1026,7 +1026,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error) ! * bigger than original size but can be decreased. There should be no ! * holes among the significant bits. Exponent bias usually is set ! * 2^(n-1)-1, where n is the exponent size. - ! *-----------------------------------------------------------------------*/ + ! *----------------------------------------------------------------------- CALL H5Tset_fields_f(tid1, INT(44,size_t), INT(34,size_t), INT(10,size_t), & INT(3,size_t), INT(31,size_t), error) @@ -1079,7 +1079,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error) CALL check("H5Tget_ebias_f", error, total_error) CALL VERIFY("H5Tget_ebias_f", INT(ebias1), 511, total_error) - !/*-------------------------------------------------------------------------- + !-------------------------------------------------------------------------- ! * 2nd floating-point type ! * size=3 byte, precision=24 bits, offset=0 bits, mantissa size=16 bits, ! * mantissa position=0, exponent size=7 bits, exponent position=16, exponent @@ -1087,7 +1087,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error) ! * ! * 2 1 0 ! * SEEEEEEE MMMMMMMM MMMMMMMM - ! *--------------------------------------------------------------------------*/ + ! *-------------------------------------------------------------------------- CALL H5Tset_fields_f(tid2, INT(23,size_t), INT(16,size_t), INT(7,size_t), & INT(0,size_t), INT(16,size_t), error) diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90 index f15424d..32531b0 100644 --- a/fortran/test/tH5T_F03.f90 +++ b/fortran/test/tH5T_F03.f90 @@ -34,12 +34,12 @@ ! *** H 5 T T E S T S ! ***************************************** -!/**************************************************************** +!*************************************************************** !** !** test_array_compound_atomic(): Test basic array datatype code. !** Tests 1-D array of compound datatypes (with no array fields) !** -!****************************************************************/ +!*************************************************************** ! MODULE TH5T_F03 @@ -1419,7 +1419,7 @@ SUBROUTINE t_enum(total_error) ! Insert enumerated value for memtype. ! val(1) = i - CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), val(1), error) + CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), C_LOC(val(1)), error) CALL check("H5Tenum_insert_f", error, total_error) ! ! Insert enumerated value for filetype. We must first convert @@ -1428,7 +1428,11 @@ SUBROUTINE t_enum(total_error) f_ptr = C_LOC(val(1)) CALL H5Tconvert_f(M_BASET, F_BASET, INT(1,SIZE_T), f_ptr, error) CALL check("H5Tconvert_f",error, total_error) - CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error) + IF(i.GE.1)THEN ! test both F90 and F03 APIs + CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), f_ptr, error) + ELSE + CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error) + ENDIF CALL check("H5Tenum_insert_f",error, total_error) ENDDO ! @@ -3134,7 +3138,7 @@ SUBROUTINE t_enum_conv(total_error) ENUMERATOR :: E1_RED, E1_GREEN, E1_BLUE, E1_WHITE, E1_BLACK END ENUM - INTEGER :: val + INTEGER(KIND(E1_RED)), TARGET :: val ! Enumerated data array ! Some values are out of range for testing. The library should accept them @@ -3185,19 +3189,19 @@ SUBROUTINE t_enum_conv(total_error) ! Initialize enum data. ! val = E1_RED - CALL H5Tenum_insert_f(dtype, "RED", val, error) + CALL H5Tenum_insert_f(dtype, "RED", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_GREEN - CALL H5Tenum_insert_f(dtype, "GREEN", val, error) + CALL H5Tenum_insert_f(dtype, "GREEN", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_BLUE - CALL H5Tenum_insert_f(dtype, "BLUE", val, error) + CALL H5Tenum_insert_f(dtype, "BLUE", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_WHITE - CALL H5Tenum_insert_f(dtype, "WHITE", val, error) + CALL H5Tenum_insert_f(dtype, "WHITE", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_BLACK - CALL H5Tenum_insert_f(dtype, "BLACK", val, error) + CALL H5Tenum_insert_f(dtype, "BLACK", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) ! ! Create dataspace. Setting maximum size to be the current size. diff --git a/fortran/test/tH5VL.f90 b/fortran/test/tH5VL.f90 index f063722..651ca75 100644 --- a/fortran/test/tH5VL.f90 +++ b/fortran/test/tH5VL.f90 @@ -226,7 +226,6 @@ CONTAINS INTEGER(SIZE_T) max_len INTEGER(HID_T) :: vl_type_id LOGICAL :: vl_flag - LOGICAL :: differ ! ! Initialize the vl_int_data array. diff --git a/fortran/test/tf.f90 b/fortran/test/tf.f90 index 063e93d..450daf2 100644 --- a/fortran/test/tf.f90 +++ b/fortran/test/tf.f90 @@ -36,7 +36,7 @@ MODULE TH5_MISC CONTAINS !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: dreal_eq !DEC$endif LOGICAL FUNCTION dreal_eq(a,b) @@ -49,7 +49,7 @@ CONTAINS END FUNCTION dreal_eq !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: verify_real_kind_7 !DEC$endif SUBROUTINE verify_real_kind_7(string,value,correct_value,total_error) @@ -66,7 +66,7 @@ CONTAINS END SUBROUTINE verify_real_kind_7 !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: write_test_status !DEC$endif SUBROUTINE write_test_status( test_result, test_title, total_error) @@ -105,7 +105,7 @@ CONTAINS !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: check !DEC$endif SUBROUTINE check(string,error,total_error) @@ -119,7 +119,7 @@ CONTAINS END SUBROUTINE check !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: verify !DEC$endif SUBROUTINE VERIFY(string,value,correct_value,total_error) @@ -133,7 +133,23 @@ CONTAINS END SUBROUTINE verify !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: verify_INTEGER_HID_T +!DEC$endif + SUBROUTINE verify_INTEGER_HID_T(string,value,correct_value,total_error) + USE HDF5 + CHARACTER(LEN=*) :: string + INTEGER(HID_T) :: value, correct_value + INTEGER :: total_error + IF (value .NE. correct_value) THEN + total_error=total_error+1 + WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string + ENDIF + RETURN + END SUBROUTINE verify_INTEGER_HID_T + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: verify_Fortran_INTEGER_4 !DEC$endif SUBROUTINE verify_Fortran_INTEGER_4(string,value,correct_value,total_error) @@ -150,7 +166,7 @@ CONTAINS END SUBROUTINE verify_Fortran_INTEGER_4 !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: verifyLogical !DEC$endif SUBROUTINE verifyLogical(string,value,correct_value,total_error) @@ -165,7 +181,7 @@ CONTAINS END SUBROUTINE verifyLogical !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: verifyString !DEC$endif SUBROUTINE verifyString(string, value,correct_value,total_error) @@ -203,7 +219,7 @@ CONTAINS SUBROUTINE h5_fixname_f(base_name, full_name, fapl, hdferr) ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_fixname_f !DEC$endif USE H5GLOBAL @@ -263,7 +279,7 @@ CONTAINS SUBROUTINE h5_cleanup_f(base_name, fapl, hdferr) ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_cleanup_f !DEC$endif USE H5GLOBAL @@ -315,7 +331,7 @@ CONTAINS SUBROUTINE h5_exit_f(status) ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_exit_f !DEC$endif IMPLICIT NONE @@ -352,7 +368,7 @@ CONTAINS SUBROUTINE h5_env_nocleanup_f(HDF5_NOCLEANUP) ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_env_nocleanup_f !DEC$endif IMPLICIT NONE diff --git a/fortran/test/tf_F03.f90 b/fortran/test/tf_F03.f90 index 4513783..b3f1399 100644 --- a/fortran/test/tf_F03.f90 +++ b/fortran/test/tf_F03.f90 @@ -66,7 +66,7 @@ MODULE TH5_MISC_PROVISIONAL CONTAINS !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_cmpd !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a) @@ -78,7 +78,7 @@ CONTAINS END FUNCTION H5_SIZEOF_CMPD !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_chr !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a) @@ -90,7 +90,7 @@ CONTAINS END FUNCTION H5_SIZEOF_CHR !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_i !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a) @@ -102,7 +102,7 @@ CONTAINS END FUNCTION H5_SIZEOF_I !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_sp !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a) @@ -114,7 +114,7 @@ CONTAINS END FUNCTION H5_SIZEOF_SP !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_dp !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a) diff --git a/fortran/test/tf_F08.f90 b/fortran/test/tf_F08.f90 index 5583f3f..20c2859 100644 --- a/fortran/test/tf_F08.f90 +++ b/fortran/test/tf_F08.f90 @@ -65,7 +65,7 @@ MODULE TH5_MISC_PROVISIONAL CONTAINS !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_cmpd !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a) @@ -77,7 +77,7 @@ CONTAINS END FUNCTION H5_SIZEOF_CMPD !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_chr !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a) @@ -89,7 +89,7 @@ CONTAINS END FUNCTION H5_SIZEOF_CHR !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_i !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a) @@ -102,7 +102,7 @@ CONTAINS !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_sp !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a) @@ -114,7 +114,7 @@ CONTAINS END FUNCTION H5_SIZEOF_SP !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_TEST_DLL) !DEC$attributes dllexport :: h5_sizeof_dp !DEC$endif INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a) diff --git a/fortran/testpar/CMakeLists.txt b/fortran/testpar/CMakeLists.txt index 3361220..98ef6c8 100644 --- a/fortran/testpar/CMakeLists.txt +++ b/fortran/testpar/CMakeLists.txt @@ -1,10 +1,10 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_FORTRAN_TESTPAR C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Add Tests @@ -17,7 +17,7 @@ add_executable (parallel_test mdset.f90 ) TARGET_NAMING (parallel_test ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (parallel_test " " " ") +TARGET_FORTRAN_PROPERTIES (parallel_test ${LIB_TYPE} " " " ") target_link_libraries (parallel_test ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -27,6 +27,7 @@ target_link_libraries (parallel_test if (WIN32 AND MSVC) target_link_libraries (parallel_test "ws2_32.lib") endif (WIN32 AND MSVC) +target_include_directories (parallel_test PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (parallel_test PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (parallel_test PROPERTIES FOLDER test/fortran) diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in index 18d64bf..f16dfff 100644 --- a/fortran/testpar/Makefile.in +++ b/fortran/testpar/Makefile.in @@ -109,7 +109,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = subdir = fortran/testpar ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -404,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_srcdir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -436,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -455,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -528,7 +524,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -543,10 +538,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -660,10 +651,10 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files -CHECK_CLEANFILES = *.chkexe *.chklog *.clog parf[12].h5 +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 parf[12].h5 # These are our main targets TEST_PROG_PARA = parallel_test diff --git a/fortran/testpar/ptest.f90 b/fortran/testpar/ptest.f90 index e474668..69594b0 100644 --- a/fortran/testpar/ptest.f90 +++ b/fortran/testpar/ptest.f90 @@ -19,6 +19,7 @@ PROGRAM parallel_test USE hdf5 + IMPLICIT NONE INCLUDE 'mpif.h' diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt index e693dd7..b5d4308 100644 --- a/hl/CMakeLists.txt +++ b/hl/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL C CXX) #----------------------------------------------------------------------------- @@ -38,7 +38,3 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED) add_subdirectory (${HDF5_HL_SOURCE_DIR}/test ${HDF5_HL_BINARY_DIR}/test) endif (BUILD_TESTING) endif (NOT HDF5_EXTERNALLY_CONFIGURED) - -if (HDF5_BUILD_CPP_LIB) - add_subdirectory (${HDF5_HL_SOURCE_DIR}/c++ ${HDF5_HL_BINARY_DIR}/c++) -endif (HDF5_BUILD_CPP_LIB) diff --git a/hl/Makefile.am b/hl/Makefile.am index 3271575..9f31719 100644 --- a/hl/Makefile.am +++ b/hl/Makefile.am @@ -43,7 +43,7 @@ DIST_SUBDIRS=src test tools c++ fortran examples # Install examples install-examples uninstall-examples: - @@SETX@; for d in examples $(HDF5_INTERFACES); do \ + for d in examples $(HDF5_INTERFACES); do \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ done diff --git a/hl/Makefile.in b/hl/Makefile.in index bb7e708..60c9453 100644 --- a/hl/Makefile.in +++ b/hl/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -408,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -440,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -459,17 +458,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -532,7 +528,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -547,10 +542,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -664,8 +655,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 @BUILD_FORTRAN_CONDITIONAL_TRUE@FORTRAN_DIR = fortran @BUILD_CXX_CONDITIONAL_TRUE@CXX_DIR = c++ @BUILD_HDF5_HL_CONDITIONAL_TRUE@SUBDIRS = src test tools $(CXX_DIR) $(FORTRAN_DIR) @@ -1167,7 +1158,7 @@ help: # Install examples install-examples uninstall-examples: - @@SETX@; for d in examples $(HDF5_INTERFACES); do \ + for d in examples $(HDF5_INTERFACES); do \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ done diff --git a/hl/c++/CMakeLists.txt b/hl/c++/CMakeLists.txt index 9f0aa7e..36f4c30 100644 --- a/hl/c++/CMakeLists.txt +++ b/hl/c++/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_CPP) #----------------------------------------------------------------------------- diff --git a/hl/c++/Makefile.in b/hl/c++/Makefile.in index c473865..278f97b 100644 --- a/hl/c++/Makefile.in +++ b/hl/c++/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/c++ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -404,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -436,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -455,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -528,7 +524,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -543,10 +538,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -660,8 +651,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 SUBDIRS = src test DIST_SUBDIRS = src test examples diff --git a/hl/c++/examples/CMakeLists.txt b/hl/c++/examples/CMakeLists.txt index 8f9b43f..e3fc3ae 100644 --- a/hl/c++/examples/CMakeLists.txt +++ b/hl/c++/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_CPP_EXAMPLES) #----------------------------------------------------------------------------- @@ -12,7 +12,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_CPP_SRC_DIR}/src) # -------------------------------------------------------------------- add_executable (ptExampleFL ${HDF5_HL_CPP_EXAMPLES_SOURCE_DIR}/ptExampleFL.cpp) TARGET_NAMING (ptExampleFL ${LIB_TYPE}) -TARGET_C_PROPERTIES (ptExampleFL " " " ") +TARGET_C_PROPERTIES (ptExampleFL ${LIB_TYPE} " " " ") target_link_libraries ( ptExampleFL ${HDF5_HL_CPP_LIB_TARGET} diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in index a538c23..a36886c 100644 --- a/hl/c++/examples/Makefile.in +++ b/hl/c++/examples/Makefile.in @@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/c++/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -351,7 +352,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -383,7 +383,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -402,17 +401,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -475,7 +471,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -490,10 +485,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -607,8 +598,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 # These are the programs that 'make all' or 'make prog' will build and # which 'make check' will run. List them in the order they should be run. diff --git a/hl/c++/examples/run-hlc++-ex.sh.in b/hl/c++/examples/run-hlc++-ex.sh.in index 103dd76..5aa1032 100644 --- a/hl/c++/examples/run-hlc++-ex.sh.in +++ b/hl/c++/examples/run-hlc++-ex.sh.in @@ -33,7 +33,7 @@ EXIT_SUCCESS=0 EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../../}" +prefix="${prefix:-@prefix@}" AR="@AR@" RANLIB="@RANLIB@" H5TOOL="h5c++" # The tool name diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt index 03ef26d..640cb2d 100644 --- a/hl/c++/src/CMakeLists.txt +++ b/hl/c++/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_CPP_SRC) #----------------------------------------------------------------------------- @@ -11,7 +11,7 @@ set (HDF5_HL_CPP_SRCS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.cpp) set (HDF5_HL_CPP_HDRS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.h) add_library (${HDF5_HL_CPP_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_CPP_SRCS}) -TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries ( ${HDF5_HL_CPP_LIB_TARGET} ${HDF5_HL_LIB_TARGET} diff --git a/hl/c++/src/Makefile.am b/hl/c++/src/Makefile.am index 9751e94..b268948 100644 --- a/hl/c++/src/Makefile.am +++ b/hl/c++/src/Makefile.am @@ -30,12 +30,6 @@ lib_LTLIBRARIES=libhdf5_hl_cpp.la # Add libtool numbers to the HDF5 HL C++ library (from config/lt_vers.am) libhdf5_hl_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS) -# Shared C++ libraries aren't universally supported. -if CXX_SHARED_CONDITIONAL -else - AM_LDFLAGS+=-static -endif - # Source files for the library # At the moment, only the H5PT Packet Table has a C++ API. libhdf5_hl_cpp_la_SOURCES=H5PacketTable.cpp diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 72c3a65..89b71cb 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -102,13 +102,11 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(top_srcdir)/bin/depcomp $(include_HEADERS) \ $(top_srcdir)/bin/test-driver - -# Shared C++ libraries aren't universally supported. -@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static TESTS = subdir = hl/c++/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -407,10 +405,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \ AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) +AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -442,7 +439,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -461,17 +457,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -534,7 +527,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -549,10 +541,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -666,15 +654,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 # This is our main target diff --git a/hl/c++/test/CMakeLists.txt b/hl/c++/test/CMakeLists.txt index 4a7523c..ff06b22 100644 --- a/hl/c++/test/CMakeLists.txt +++ b/hl/c++/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_CPP_TEST) #----------------------------------------------------------------------------- @@ -16,7 +16,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_SRC_DIR}/test) INCLUDE_DIRECTORIES (${HDF5_CPP_SRC_DIR}/src) add_executable (hl_ptableTest ${HDF5_HL_CPP_TEST_SOURCE_DIR}/ptableTest.cpp) -TARGET_C_PROPERTIES (hl_ptableTest " " " ") +TARGET_C_PROPERTIES (hl_ptableTest ${LIB_TYPE} " " " ") TARGET_NAMING (hl_ptableTest ${LIB_TYPE}) target_link_libraries ( hl_ptableTest diff --git a/hl/c++/test/Makefile.am b/hl/c++/test/Makefile.am index 105188f..c835843 100644 --- a/hl/c++/test/Makefile.am +++ b/hl/c++/test/Makefile.am @@ -23,12 +23,6 @@ include $(top_srcdir)/config/commence.am # Include directories AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/c++/src -I$(top_srcdir)/hl/src -I$(top_srcdir)/hl/c++/src -I$(top_srcdir)/test -I$(top_builddir)/hl/test -I$(top_srcdir)/hl/test -# Shared C++ libraries aren't universally supported. -if CXX_SHARED_CONDITIONAL -else - AM_LDFLAGS+=-static -endif - # These are our main targets. They should be listed in the order to be # executed, generally most specific tests to least specific tests. TEST_PROG=ptableTest diff --git a/hl/c++/test/Makefile.in b/hl/c++/test/Makefile.in index f5f2b9b..b7d7d09 100644 --- a/hl/c++/test/Makefile.in +++ b/hl/c++/test/Makefile.in @@ -98,14 +98,12 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(top_srcdir)/config/conclude.am $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(top_srcdir)/bin/depcomp $(top_srcdir)/bin/test-driver - -# Shared C++ libraries aren't universally supported. -@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = hl/c++/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -404,10 +402,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \ AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) +AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -439,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -458,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -531,7 +524,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -546,10 +538,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -663,8 +651,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # These are our main targets. They should be listed in the order to be # executed, generally most specific tests to least specific tests. diff --git a/hl/examples/CMakeLists.txt b/hl/examples/CMakeLists.txt index 7847dbe..e264f75 100644 --- a/hl/examples/CMakeLists.txt +++ b/hl/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_EXAMPLES ) #----------------------------------------------------------------------------- @@ -29,7 +29,7 @@ set (examples foreach (example ${examples}) add_executable (hl_ex_${example} ${HDF5_HL_EXAMPLES_SOURCE_DIR}/${example}.c) TARGET_NAMING (hl_ex_${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_ex_${example} " " " ") + TARGET_C_PROPERTIES (hl_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (hl_ex_${example} ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (hl_ex_${example} PROPERTIES FOLDER examples/hl) endforeach (example ${examples}) diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in index 005ef91..f0bf099 100644 --- a/hl/examples/Makefile.in +++ b/hl/examples/Makefile.in @@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -351,7 +352,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -383,7 +383,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -402,17 +401,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -475,7 +471,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -490,10 +485,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -607,8 +598,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 @BUILD_PARALLEL_CONDITIONAL_TRUE@EXAMPLE_PROG_PARA = # Example directory diff --git a/hl/examples/ex_image1.c b/hl/examples/ex_image1.c index 96bc7c7..18ad903 100644 --- a/hl/examples/ex_image1.c +++ b/hl/examples/ex_image1.c @@ -24,7 +24,6 @@ unsigned char buf [ WIDTH*HEIGHT ]; int main( void ) { hid_t file_id; - herr_t status; hsize_t pal_dims[] = {PAL_ENTRIES,3}; size_t i, j; int n, space; @@ -56,16 +55,16 @@ int main( void ) file_id = H5Fcreate( "ex_image1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* make the image */ - status = H5IMmake_image_8bit( file_id, "image1", (hsize_t)WIDTH, (hsize_t)HEIGHT, buf ); + H5IMmake_image_8bit( file_id, "image1", (hsize_t)WIDTH, (hsize_t)HEIGHT, buf ); /* make a palette */ - status = H5IMmake_palette( file_id, "pallete", pal_dims, pal ); + H5IMmake_palette( file_id, "pallete", pal_dims, pal ); /* attach the palette to the image */ - status = H5IMlink_palette( file_id, "image1", "pallete" ); + H5IMlink_palette( file_id, "image1", "pallete" ); /* close the file. */ - status = H5Fclose( file_id ); + H5Fclose( file_id ); return 0; diff --git a/hl/examples/ex_image2.c b/hl/examples/ex_image2.c index 3276f7c..b57f1b7 100644 --- a/hl/examples/ex_image2.c +++ b/hl/examples/ex_image2.c @@ -35,7 +35,7 @@ int main( void ) hsize_t height; /* height of image */ unsigned char pal[ PAL_ENTRIES * 3 ]; /* palette array */ hsize_t pal_dims[2] = {PAL_ENTRIES,3}; /* palette dimensions */ - herr_t status, i, n; + herr_t i, n; /* create a new HDF5 file using default properties. */ file_id = H5Fcreate( "ex_image2.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); @@ -45,7 +45,7 @@ int main( void ) goto out; /* make the image */ - status=H5IMmake_image_8bit( file_id, IMAGE1_NAME, width, height, gbuf ); + H5IMmake_image_8bit( file_id, IMAGE1_NAME, width, height, gbuf ); if (gbuf) { free(gbuf); gbuf = NULL; @@ -63,10 +63,10 @@ int main( void ) } /* make a palette */ - status=H5IMmake_palette( file_id, PAL_NAME, pal_dims, pal ); + H5IMmake_palette( file_id, PAL_NAME, pal_dims, pal ); /* attach the palette to the image */ - status=H5IMlink_palette( file_id, IMAGE1_NAME, PAL_NAME ); + H5IMlink_palette( file_id, IMAGE1_NAME, PAL_NAME ); /*------------------------------------------------------------------------- * True color image example with pixel interlace @@ -78,7 +78,7 @@ int main( void ) goto out; /* make dataset */ - status=H5IMmake_image_24bit( file_id, IMAGE2_NAME, width, height, "INTERLACE_PIXEL", gbuf ); + H5IMmake_image_24bit( file_id, IMAGE2_NAME, width, height, "INTERLACE_PIXEL", gbuf ); /* close the file. */ H5Fclose( file_id ); diff --git a/hl/examples/ex_lite1.c b/hl/examples/ex_lite1.c index 2a82fef..446c803 100644 --- a/hl/examples/ex_lite1.c +++ b/hl/examples/ex_lite1.c @@ -25,16 +25,15 @@ int main( void ) hid_t file_id; hsize_t dims[RANK]={2,3}; int data[6]={1,2,3,4,5,6}; - herr_t status; /* create a HDF5 file */ file_id = H5Fcreate ("ex_lite1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); /* create and write an integer type dataset named "dset" */ - status = H5LTmake_dataset(file_id,"/dset",RANK,dims,H5T_NATIVE_INT,data); + H5LTmake_dataset(file_id,"/dset",RANK,dims,H5T_NATIVE_INT,data); /* close file */ - status = H5Fclose (file_id); + H5Fclose (file_id); return 0; } diff --git a/hl/examples/ex_lite2.c b/hl/examples/ex_lite2.c index 98f92c8..a696a20 100644 --- a/hl/examples/ex_lite2.c +++ b/hl/examples/ex_lite2.c @@ -21,17 +21,16 @@ int main( void ) hid_t file_id; int data[6]; hsize_t dims[2]; - herr_t status; size_t i, j, nrow, n_values; /* open file from ex_lite1.c */ file_id = H5Fopen ("ex_lite1.h5", H5F_ACC_RDONLY, H5P_DEFAULT); /* read dataset */ - status = H5LTread_dataset_int(file_id,"/dset",data); + H5LTread_dataset_int(file_id,"/dset",data); /* get the dimensions of the dataset */ - status = H5LTget_dataset_info(file_id,"/dset",dims,NULL,NULL); + H5LTget_dataset_info(file_id,"/dset",dims,NULL,NULL); /* print it by rows */ n_values = (size_t)(dims[0] * dims[1]); @@ -44,7 +43,7 @@ int main( void ) } /* close file */ - status = H5Fclose (file_id); + H5Fclose (file_id); return 0; diff --git a/hl/examples/ex_lite3.c b/hl/examples/ex_lite3.c index 9164c7b..f409ea4 100644 --- a/hl/examples/ex_lite3.c +++ b/hl/examples/ex_lite3.c @@ -26,7 +26,6 @@ int main( void ) hid_t space_id; hsize_t dims[1] = { ATTR_SIZE }; int data[ATTR_SIZE] = {1,2,3,4,5}; - herr_t status; int i; /* create a file */ @@ -39,8 +38,8 @@ int main( void ) dset_id = H5Dcreate2(file_id, "dset", H5T_NATIVE_INT, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); /* close */ - status = H5Dclose(dset_id); - status = H5Sclose(space_id); + H5Dclose(dset_id); + H5Sclose(space_id); /*------------------------------------------------------------------------- * example of H5LTset_attribute_int @@ -48,7 +47,7 @@ int main( void ) */ /* create and write the attribute "attr1" on the dataset "dset" */ - status = H5LTset_attribute_int(file_id, "dset", "attr1", data, ATTR_SIZE); + H5LTset_attribute_int(file_id, "dset", "attr1", data, ATTR_SIZE); /*------------------------------------------------------------------------- * example of H5LTget_attribute_int @@ -56,14 +55,14 @@ int main( void ) */ /* get the attribute "attr1" from the dataset "dset" */ - status = H5LTget_attribute_int(file_id, "dset", "attr1", data); + H5LTget_attribute_int(file_id, "dset", "attr1", data); for(i = 0; i < ATTR_SIZE; i++ ) printf(" %d", data[i]); printf("\n"); /* close file */ - status = H5Fclose(file_id); + H5Fclose(file_id); return 0; } diff --git a/hl/examples/ex_table_01.c b/hl/examples/ex_table_01.c index de304d9..1d381ae 100644 --- a/hl/examples/ex_table_01.c +++ b/hl/examples/ex_table_01.c @@ -80,7 +80,6 @@ int main( void ) hsize_t chunk_size = 10; int *fill_data = NULL; int compress = 0; - herr_t status; int i; /* Initialize field_type */ @@ -100,7 +99,7 @@ int main( void ) *------------------------------------------------------------------------- */ - status=H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); @@ -109,7 +108,7 @@ int main( void ) *------------------------------------------------------------------------- */ - status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* print it by rows */ for (i=0; i<NRECORDS; i++) { diff --git a/hl/examples/ex_table_02.c b/hl/examples/ex_table_02.c index 98e33d3..129f87d 100644 --- a/hl/examples/ex_table_02.c +++ b/hl/examples/ex_table_02.c @@ -78,7 +78,6 @@ int main( void ) hsize_t chunk_size = 10; int *fill_data = NULL; int compress = 0; - herr_t status; int i; /* Append particles */ @@ -99,16 +98,16 @@ int main( void ) file_id = H5Fcreate( "ex_table_02.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* make a table */ - status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, dst_size, field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); /* append two records */ - status=H5TBappend_records(file_id, TABLE_NAME,NRECORDS_ADD, dst_size, dst_offset, dst_sizes, + H5TBappend_records(file_id, TABLE_NAME,NRECORDS_ADD, dst_size, dst_offset, dst_sizes, &particle_in ); /* read the table */ - status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* print it by rows */ for (i=0; i<NRECORDS+NRECORDS_ADD; i++) { diff --git a/hl/examples/ex_table_03.c b/hl/examples/ex_table_03.c index 7315fd3..c9f94ce 100644 --- a/hl/examples/ex_table_03.c +++ b/hl/examples/ex_table_03.c @@ -71,7 +71,6 @@ int main( void ) hsize_t chunk_size = 10; hsize_t start; /* Record to start reading/writing */ hsize_t nrecords; /* Number of records to read/write */ - herr_t status; int i; /* Define 2 new particles to write */ @@ -92,7 +91,7 @@ int main( void ) file_id = H5Fcreate( "ex_table_03.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make the table */ - status=H5TBmake_table( "Table Title", + H5TBmake_table( "Table Title", file_id, TABLE_NAME, NFIELDS, @@ -110,11 +109,11 @@ int main( void ) /* Overwrite 2 records starting at record 0 */ start = 0; nrecords = NRECORDS_WRITE; - status=H5TBwrite_records( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset, + H5TBwrite_records( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset, dst_sizes, particle_in); /* read the table */ - status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* print it by rows */ for (i=0; i<NRECORDS; i++) { diff --git a/hl/examples/ex_table_04.c b/hl/examples/ex_table_04.c index 0a01116..01f2869 100644 --- a/hl/examples/ex_table_04.c +++ b/hl/examples/ex_table_04.c @@ -81,7 +81,6 @@ int main( void ) hsize_t start; /* Record to start reading/writing */ hsize_t nrecords; /* Number of records to read/write */ int compress = 0; - herr_t status; int i; Particle *p_data = NULL; /* Initially no data */ float pressure_in [NRECORDS_ADD] = /* Define new values for the field "Pressure" */ @@ -118,24 +117,24 @@ int main( void ) file_id = H5Fcreate( "ex_table_04.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make the table */ - status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); /* Write the pressure field starting at record 2 */ start = 2; nrecords = NRECORDS_ADD; - status=H5TBwrite_fields_name( file_id, TABLE_NAME, "Pressure", start, nrecords, + H5TBwrite_fields_name( file_id, TABLE_NAME, "Pressure", start, nrecords, sizeof( float ), 0, field_sizes_pre, pressure_in ); /* Write the new longitude and latitude information starting at record 2 */ start = 2; nrecords = NRECORDS_ADD; - status=H5TBwrite_fields_name( file_id, TABLE_NAME, "Latitude,Longitude", start, nrecords, + H5TBwrite_fields_name( file_id, TABLE_NAME, "Latitude,Longitude", start, nrecords, sizeof( Position ), field_offset_pos, field_sizes_pos, position_in ); /* read the table */ - status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* print it by rows */ for (i=0; i<NRECORDS; i++) { diff --git a/hl/examples/ex_table_05.c b/hl/examples/ex_table_05.c index f0c96eb..7ed1fec 100644 --- a/hl/examples/ex_table_05.c +++ b/hl/examples/ex_table_05.c @@ -51,13 +51,6 @@ int main( void ) int longi; } Position; - /* Define a subset of Particle, with name and pressure fields */ - typedef struct NamePressure - { - char name[16]; - float pressure; - } NamePressure; - /* Calculate the type_size and the offsets of our struct members */ Particle dst_buf[NRECORDS]; size_t dst_size = sizeof( Particle ); @@ -91,7 +84,6 @@ int main( void ) hsize_t nfields; hsize_t start; /* Record to start reading/writing */ hsize_t nrecords; /* Number of records to read/write */ - herr_t status; int i; /* Define new values for the field "Pressure" */ @@ -129,7 +121,7 @@ int main( void ) file_id = H5Fcreate( "ex_table_05.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make the table */ - status=H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); @@ -137,7 +129,7 @@ int main( void ) nfields = 1; start = 2; nrecords = NRECORDS_ADD; - status=H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pre, start, nrecords, + H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pre, start, nrecords, sizeof( float ), 0, field_sizes_pre, pressure_in ); @@ -145,12 +137,12 @@ int main( void ) nfields = 2; start = 2; nrecords = NRECORDS_ADD; - status=H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pos, start, nrecords, + H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pos, start, nrecords, sizeof( Position ), field_offset_pos, field_sizes_pos, position_in ); /* read the table */ - status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* print it by rows */ for (i=0; i<NRECORDS; i++) { @@ -163,8 +155,7 @@ int main( void ) printf ("\n"); } - - /* close type */ + /* close type */ H5Tclose( string_type ); /* close the file */ diff --git a/hl/examples/ex_table_06.c b/hl/examples/ex_table_06.c index 261b23c..081347e 100644 --- a/hl/examples/ex_table_06.c +++ b/hl/examples/ex_table_06.c @@ -60,7 +60,6 @@ int main( void ) int compress = 0; hsize_t nfields_out; hsize_t nrecords_out; - herr_t status; /* Initialize field_type */ string_type = H5Tcopy( H5T_C_S1 ); @@ -75,12 +74,12 @@ int main( void ) file_id = H5Fcreate( "ex_table_06.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make a table */ - status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,dst_size, + H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,dst_size, field_names, dst_offset, field_type, chunk_size, fill_data, compress, NULL); /* Get table info */ - status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/ex_table_07.c b/hl/examples/ex_table_07.c index 3479aa8..3be788f 100644 --- a/hl/examples/ex_table_07.c +++ b/hl/examples/ex_table_07.c @@ -73,7 +73,6 @@ int main( void ) hsize_t nrecords; /* Number of records to insert/delete */ hsize_t nfields_out; hsize_t nrecords_out; - herr_t status; /* Initialize the field field_type */ string_type = H5Tcopy( H5T_C_S1 ); @@ -88,17 +87,17 @@ int main( void ) file_id = H5Fcreate( "ex_table_07.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make the table */ - status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); /* Delete records */ start = 3; nrecords = 3; - status=H5TBdelete_record( file_id, TABLE_NAME, start, nrecords ); + H5TBdelete_record( file_id, TABLE_NAME, start, nrecords ); /* Get table info */ - status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/ex_table_08.c b/hl/examples/ex_table_08.c index bd3a3e1..5d3659f 100644 --- a/hl/examples/ex_table_08.c +++ b/hl/examples/ex_table_08.c @@ -84,7 +84,6 @@ int main( void ) int *fill_data = NULL; hsize_t start; /* Record to start reading */ hsize_t nrecords; /* Number of records to insert/delete */ - herr_t status; hsize_t nfields_out; hsize_t nrecords_out; int i; @@ -102,21 +101,21 @@ int main( void ) file_id = H5Fcreate( "ex_table_08.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make the table */ - status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); /* Insert records */ start = 3; nrecords = NRECORDS_INS; - status=H5TBinsert_record( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset, + H5TBinsert_record( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset, dst_sizes, p_data_insert ); /* read the table */ - status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* get table info */ - status=H5TBget_table_info(file_id,TABLE_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info(file_id,TABLE_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/ex_table_09.c b/hl/examples/ex_table_09.c index c50e20d..a4ef611 100644 --- a/hl/examples/ex_table_09.c +++ b/hl/examples/ex_table_09.c @@ -81,7 +81,6 @@ int main( void ) hsize_t start1; /* Record to start reading from 1st table */ hsize_t nrecords; /* Number of records to insert */ hsize_t start2; /* Record to start writing in 2nd table */ - herr_t status; int i; hsize_t nfields_out; hsize_t nrecords_out; @@ -99,11 +98,11 @@ int main( void ) file_id = H5Fcreate( "ex_table_09.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make 2 tables: TABLE2_NAME is empty */ - status=H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); - status=H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, NULL ); @@ -112,13 +111,13 @@ int main( void ) start1 = 3; nrecords = NRECORDS_INS; start2 = 6; - status=H5TBadd_records_from( file_id, TABLE1_NAME, start1, nrecords, TABLE2_NAME, start2 ); + H5TBadd_records_from( file_id, TABLE1_NAME, start1, nrecords, TABLE2_NAME, start2 ); /* read TABLE2_NAME: it should have 2 more records now */ - status=H5TBread_table( file_id, TABLE2_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE2_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* Get table info */ - status=H5TBget_table_info (file_id,TABLE2_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info (file_id,TABLE2_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/ex_table_10.c b/hl/examples/ex_table_10.c index 73a9431..059c7ea 100644 --- a/hl/examples/ex_table_10.c +++ b/hl/examples/ex_table_10.c @@ -77,7 +77,6 @@ int main( void ) hsize_t chunk_size = 10; int compress = 0; int *fill_data = NULL; - herr_t status; hsize_t nfields_out; hsize_t nrecords_out; int i; @@ -95,22 +94,22 @@ int main( void ) file_id = H5Fcreate( "ex_table_10.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make two tables */ - status=H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); - status=H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS, dst_size,field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); /* Combine the two tables into a third in the same file */ - status=H5TBcombine_tables( file_id, TABLE1_NAME, file_id, TABLE2_NAME, TABLE3_NAME ); + H5TBcombine_tables( file_id, TABLE1_NAME, file_id, TABLE2_NAME, TABLE3_NAME ); /* read the combined table */ - status=H5TBread_table( file_id, TABLE3_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); + H5TBread_table( file_id, TABLE3_NAME, dst_size, dst_offset, dst_sizes, dst_buf ); /* Get table info */ - status=H5TBget_table_info (file_id,TABLE3_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info (file_id,TABLE3_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/ex_table_11.c b/hl/examples/ex_table_11.c index 6746945..687568c 100644 --- a/hl/examples/ex_table_11.c +++ b/hl/examples/ex_table_11.c @@ -67,10 +67,9 @@ int main( void ) hid_t file_id; hsize_t chunk_size = 10; int compress = 0; - Particle1 fill_data[1] = { "no data",-1,-1, -99.0f, -99.0 }; + Particle1 fill_data[1] = { {"no data",-1,-1, -99.0f, -99.0} }; int fill_data_new[1] = { -100 }; hsize_t position; - herr_t status; hsize_t nfields_out; hsize_t nrecords_out; @@ -91,17 +90,17 @@ int main( void ) file_id = H5Fcreate( "ex_table_11.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make the table */ - status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, + H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS, dst_size1,field_names, dst_offset1, field_type, chunk_size, fill_data, compress, p_data ); /* Insert the new field at the end of the field list */ position = NFIELDS; - status=H5TBinsert_field( file_id, TABLE_NAME, "New Field", field_type_new, position, + H5TBinsert_field( file_id, TABLE_NAME, "New Field", field_type_new, position, fill_data_new, data ); /* Get table info */ - status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/ex_table_12.c b/hl/examples/ex_table_12.c index b6cc2b4..125b8be 100644 --- a/hl/examples/ex_table_12.c +++ b/hl/examples/ex_table_12.c @@ -70,7 +70,6 @@ int main( void ) int compress = 0; Particle fill_data[1] = { {"no data",-1,-1, -99.0f, -99.0} }; - herr_t status; hsize_t nfields_out; hsize_t nrecords_out; @@ -87,15 +86,15 @@ int main( void ) file_id = H5Fcreate( "ex_table_12.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); /* Make a table */ - status=H5TBmake_table( "Table Title", file_id, TABLE_NAME, NFIELDS, NRECORDS, dst_size, + H5TBmake_table( "Table Title", file_id, TABLE_NAME, NFIELDS, NRECORDS, dst_size, field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data ); /* Delete the field */ - status=H5TBdelete_field( file_id, TABLE_NAME, "Pressure" ); + H5TBdelete_field( file_id, TABLE_NAME, "Pressure" ); /* Get table info */ - status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); + H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out ); /* print */ printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out); diff --git a/hl/examples/run-hlc-ex.sh.in b/hl/examples/run-hlc-ex.sh.in index a79f67a..d897a02 100644 --- a/hl/examples/run-hlc-ex.sh.in +++ b/hl/examples/run-hlc-ex.sh.in @@ -33,7 +33,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../../}" +prefix="${prefix:-@prefix@}" PARALLEL=@PARALLEL@ # Am I in parallel mode? AR="@AR@" RANLIB="@RANLIB@" diff --git a/hl/fortran/CMakeLists.txt b/hl/fortran/CMakeLists.txt index c26d94c..892169c 100644 --- a/hl/fortran/CMakeLists.txt +++ b/hl/fortran/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_F90 C CXX Fortran) #----------------------------------------------------------------------------- @@ -9,9 +9,9 @@ add_subdirectory (${HDF5_HL_F90_SOURCE_DIR}/src ${HDF5_HL_F90_BINARY_DIR}/src) #----------------------------------------------------------------------------- # Build the HL Fortran Examples #----------------------------------------------------------------------------- -if (HDF5_BUILD_FORTRAN_EXAMPLES) +if (HDF5_BUILD_EXAMPLES) add_subdirectory (${HDF5_HL_F90_SOURCE_DIR}/examples ${HDF5_HL_F90_BINARY_DIR}/examples) -endif (HDF5_BUILD_FORTRAN_EXAMPLES) +endif (HDF5_BUILD_EXAMPLES) #----------------------------------------------------------------------------- # Testing diff --git a/hl/fortran/Makefile.in b/hl/fortran/Makefile.in index 3578877..4651579 100644 --- a/hl/fortran/Makefile.in +++ b/hl/fortran/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/fortran ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -408,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -440,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -459,17 +458,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -532,7 +528,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -547,10 +542,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -664,8 +655,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 SUBDIRS = src test DIST_SUBDIRS = src test examples diff --git a/hl/fortran/examples/CMakeLists.txt b/hl/fortran/examples/CMakeLists.txt index 12467b8..bded2d9 100644 --- a/hl/fortran/examples/CMakeLists.txt +++ b/hl/fortran/examples/CMakeLists.txt @@ -1,11 +1,10 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_F90_EXAMPLES C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- INCLUDE_DIRECTORIES ( - ${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src ) @@ -18,12 +17,13 @@ set (examples foreach (example ${examples}) add_executable (hl_f90_ex_${example} ${HDF5_HL_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) TARGET_NAMING (hl_f90_ex_${example} ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (hl_f90_ex_${example} " " " ") + TARGET_FORTRAN_PROPERTIES (hl_f90_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_ex_${example} ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) + target_include_directories (hl_f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_ex_${example} PROPERTIES FOLDER examples/hl/fortran) diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in index ff614a8..c8878d5 100644 --- a/hl/fortran/examples/Makefile.in +++ b/hl/fortran/examples/Makefile.in @@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/fortran/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -351,7 +352,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -383,7 +383,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -402,17 +401,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -475,7 +471,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -490,10 +485,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -607,8 +598,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 # Compile parallel fortran examples only if parallel is enabled @BUILD_PARALLEL_CONDITIONAL_TRUE@EXAMPLE_PROG_PARA = diff --git a/hl/fortran/examples/run-hlfortran-ex.sh.in b/hl/fortran/examples/run-hlfortran-ex.sh.in index 2780bff..12f9fec 100644 --- a/hl/fortran/examples/run-hlfortran-ex.sh.in +++ b/hl/fortran/examples/run-hlfortran-ex.sh.in @@ -34,7 +34,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../../}" +prefix="${prefix:-@prefix@}" PARALLEL=@PARALLEL@ # Am I in parallel mode? AR="@AR@" RANLIB="@RANLIB@" diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt index ee8604e..6e6e44a 100644 --- a/hl/fortran/src/CMakeLists.txt +++ b/hl/fortran/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT(HDF5_HL_F90_SRC C CXX Fortran) #----------------------------------------------------------------------------- @@ -8,7 +8,6 @@ INCLUDE_DIRECTORIES ( ${HDF5_HL_SRC_DIR}/src ${HDF5_F90_SRC_DIR}/src ${HDF5_F90_BINARY_DIR} - ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -26,7 +25,7 @@ set_source_files_properties (${HDF5_HL_F90_C_SRCS} PROPERTIES LANGUAGE C) set (HDF5_HL_F90_HEADERS ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5LTf90proto.h) add_library (${HDF5_HL_F90_C_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_F90_C_SRCS} ${HDF5_HL_F90_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_HL_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_C_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_HL_F90_C_LIB_NAME} ${LIB_TYPE}) @@ -45,6 +44,7 @@ set (HDF5_HL_F90_F_SRCS ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5LTff.f90 ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5IMff.f90 ) +set_source_files_properties (${HDF5_HL_F90_F_SRCS} PROPERTIES LANGUAGE Fortran) add_library (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_F90_F_SRCS}) set (SHARED_LINK_FLAGS " ") @@ -52,8 +52,8 @@ if (BUILD_SHARED_LIBS) if (WIN32) set_property (TARGET ${HDF5_HL_F90_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS - BUILD_HDF5_DLL - ) + BUILD_HDF5_HL_DLL + ) if (MSVC) set (SHARED_LINK_FLAGS "/DLL") endif (MSVC) @@ -65,45 +65,43 @@ if (WIN32) HDF5F90_WINDOWS ) endif (WIN32) -TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) +TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) target_link_libraries (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} ${LIB_TYPE}) set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES FOLDER libraries/hl/fortran + LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- # Add file(s) to CMake Install #----------------------------------------------------------------------------- + if (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5ds.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5tb.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lt.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5im.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}) else (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5ds.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5tb.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lt.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5im.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}) endif (WIN32) +set (mod_files + ${MOD_BUILD_DIR}/h5ds.mod + ${MOD_BUILD_DIR}/h5tb.mod + ${MOD_BUILD_DIR}/h5lt.mod + ${MOD_BUILD_DIR}/h5im.mod +) + +install ( + FILES + ${mod_files} + DESTINATION + ${HDF5_INSTALL_INCLUDE_DIR} + COMPONENT + fortheaders +) + #----------------------------------------------------------------------------- # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- diff --git a/hl/fortran/src/H5DSfc.c b/hl/fortran/src/H5DSfc.c index 2e38939..1de3fff 100644 --- a/hl/fortran/src/H5DSfc.c +++ b/hl/fortran/src/H5DSfc.c @@ -35,7 +35,7 @@ *------------------------------------------------------------------------- */ int_f -nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, int_f *dimnamelen) +nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, size_t_f *dimnamelen) { char *c_dimname = NULL; int_f ret_value = 0; @@ -217,7 +217,7 @@ nh5dsis_scale_c( hid_t_f *did, int_f *is_scale) *------------------------------------------------------------------------- */ int_f -nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, int_f *labellen) +nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *labellen) { char *c_label = NULL; int_f ret_value = 0; @@ -269,14 +269,14 @@ nh5dsget_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *size) /* * Allocate buffer to hold label */ - if ((c_label = HDmalloc((size_t)*size + 1)) == NULL) + if ((c_label = (char *)HDmalloc((size_t)*size + 1)) == NULL) HGOTO_DONE(FAIL); /* * call H5DSget_label function. */ - if( (size_c = (size_t_f)H5DSget_label( (hid_t)*did, (unsigned)*idx, c_label, (size_t)*size+1)) < 0) + if( (size_c = H5DSget_label( (hid_t)*did, (unsigned)*idx, c_label, (size_t)*size+1)) < 0) HGOTO_DONE(FAIL) /* @@ -287,7 +287,7 @@ nh5dsget_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *size) done: *size = (size_t_f)size_c; /* Don't subtract '1' because H5DSget_label doesn't include the - * trailing NULL in the length calculation, Ref. HDFFV-7596 */ + * trailing NULL in the length calculation, Ref. HDFFV-7596 */ if(c_label) HDfree(c_label); return ret_value; @@ -318,14 +318,14 @@ nh5dsget_scale_name_c(hid_t_f *did, _fcd name, size_t_f *size) /* * Allocate buffer to hold name */ - if ((c_scale_name = HDmalloc((size_t)*size + 1)) == NULL) + if ((c_scale_name = (char *)HDmalloc((size_t)*size + 1)) == NULL) HGOTO_DONE(FAIL); /* * call H5DSget_scale_name function. */ - if( (size_c = (size_t_f)H5DSget_scale_name( (hid_t)*did, c_scale_name, (size_t)*size+1)) < 0) + if( (size_c = H5DSget_scale_name( (hid_t)*did, c_scale_name, (size_t)*size+1)) < 0) HGOTO_DONE(FAIL) /* diff --git a/hl/fortran/src/H5DSff.f90 b/hl/fortran/src/H5DSff.f90 index 4fbd90a..04540a6 100644 --- a/hl/fortran/src/H5DSff.f90 +++ b/hl/fortran/src/H5DSff.f90 @@ -48,7 +48,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsset_scale_f !DEC$endif ! @@ -57,7 +57,7 @@ CONTAINS CHARACTER(LEN=*), INTENT(in), OPTIONAL :: dimname ! The dimension name INTEGER :: errcode ! Error code - INTEGER:: dimname_len ! length of dimname (if present) + INTEGER(SIZE_T) :: dimname_len ! length of dimname (if present) INTERFACE INTEGER FUNCTION H5DSset_scale_c(dsid, dimname, dimname_len ) @@ -70,7 +70,7 @@ CONTAINS !DEC$ATTRIBUTES reference :: dimname INTEGER(hid_t), INTENT(in) :: dsid ! The dataset to be made a Dimension Scale CHARACTER(LEN=*), INTENT(in) :: dimname ! The dimension name - INTEGER, INTENT(in) :: dimname_len + INTEGER(SIZE_T), INTENT(in) :: dimname_len END FUNCTION H5DSset_scale_c END INTERFACE @@ -78,7 +78,7 @@ CONTAINS dimname_len = LEN(dimname) errcode = H5DSset_scale_c(dsid, dimname, dimname_len ) ELSE - errcode = H5DSset_scale_c(dsid, " ", 0 ) + errcode = H5DSset_scale_c(dsid, " ", INT(0,SIZE_T) ) ENDIF END SUBROUTINE H5DSset_scale_f @@ -106,7 +106,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsattach_scale_f !DEC$endif ! @@ -159,7 +159,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsdetach_scale_f !DEC$endif ! @@ -213,7 +213,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsis_attached_f !DEC$endif ! @@ -281,7 +281,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsis_scale_f !DEC$endif ! @@ -338,7 +338,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsset_label_f !DEC$endif ! @@ -348,7 +348,7 @@ CONTAINS CHARACTER(LEN=*), INTENT(in) :: label ! The label INTEGER :: errcode ! Error code - INTEGER :: label_len ! Length of label + INTEGER(SIZE_T) :: label_len ! Length of label INTEGER :: c_idx INTERFACE @@ -363,7 +363,7 @@ CONTAINS INTEGER(hid_t), INTENT(in) :: did ! The dataset INTEGER , INTENT(in) :: idx ! The dimension CHARACTER(LEN=*), INTENT(in) :: label ! The label - INTEGER, INTENT(in) :: label_len ! Length of label + INTEGER(SIZE_T), INTENT(in) :: label_len ! Length of label END FUNCTION H5DSset_label_c END INTERFACE @@ -397,7 +397,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsget_label_f !DEC$endif ! @@ -455,7 +455,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsget_scale_name_f !DEC$endif ! @@ -507,7 +507,7 @@ CONTAINS ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5dsget_num_scales_f !DEC$endif ! diff --git a/hl/fortran/src/H5IMcc.c b/hl/fortran/src/H5IMcc.c index b4ea067..ae58fab 100644 --- a/hl/fortran/src/H5IMcc.c +++ b/hl/fortran/src/H5IMcc.c @@ -470,7 +470,7 @@ herr_t H5IM_get_palette(hid_t loc_id, hid_t attr_space_id; hid_t attr_class; hssize_t n_refs; - hsize_t dim_ref; + size_t dim_ref; hobj_ref_t *refbuf; /* buffer to read references */ hid_t pal_id; @@ -503,9 +503,9 @@ herr_t H5IM_get_palette(hid_t loc_id, n_refs = H5Sget_simple_extent_npoints(attr_space_id); - dim_ref = n_refs; + dim_ref = (size_t)n_refs; - refbuf = HDmalloc(sizeof(hobj_ref_t) * (int)dim_ref); + refbuf = (hobj_ref_t *)HDmalloc(sizeof(hobj_ref_t) * dim_ref); if(H5Aread(attr_id, attr_type, refbuf) < 0) goto out; diff --git a/hl/fortran/src/H5IMfc.c b/hl/fortran/src/H5IMfc.c index 39cb990..6acd410 100644 --- a/hl/fortran/src/H5IMfc.c +++ b/hl/fortran/src/H5IMfc.c @@ -40,7 +40,7 @@ int_f nh5immake_image_8bit_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *width, hsize_t_f *height, @@ -50,15 +50,13 @@ nh5immake_image_8bit_c (hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; hsize_t w = (hsize_t)*width; hsize_t h = (hsize_t)*height; /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -103,30 +101,25 @@ done: int_f nh5imread_image_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *buf) { int ret_value = -1; herr_t ret; - hid_t c_loc_id; char *c_name = NULL; - int c_namelen; /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; /* * call H5IMread_image function. */ - c_loc_id = (hid_t)*loc_id; - - ret = H5IMread_imagef(c_loc_id,c_name,buf); + ret = H5IMread_imagef((hid_t)*loc_id,c_name,buf); if (ret < 0) goto done; @@ -161,9 +154,9 @@ done: int_f nh5immake_image_24bit_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *ilen, + size_t_f *ilen, _fcd il, hsize_t_f *width, hsize_t_f *height, @@ -173,22 +166,18 @@ nh5immake_image_24bit_c (hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; char *c_il = NULL; - int c_ilen; hsize_t w = (hsize_t)*width; hsize_t h = (hsize_t)*height; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; - c_ilen = *ilen; - c_il = (char *)HD5f2cstring(il, c_ilen); + c_il = (char *)HD5f2cstring(il, (size_t)*ilen); if (c_il == NULL) goto done; @@ -197,7 +186,7 @@ nh5immake_image_24bit_c (hid_t_f *loc_id, */ c_loc_id = (hid_t)*loc_id; - ret = H5IMmake_image_24bitf(c_loc_id,c_name,w,h,c_il,buf); + ret = H5IMmake_image_24bitf(c_loc_id,c_name,w,h,c_il,(int_f *)buf); if (ret < 0) goto done; @@ -234,20 +223,19 @@ done: int_f nh5imget_image_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *width, hsize_t_f *height, hsize_t_f *planes, hsize_t_f *npals, - int_f *ilen, + size_t_f *ilen, _fcd interlace) { int ret_value = -1; herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; hsize_t c_width; hsize_t c_height; hsize_t c_planes; @@ -257,15 +245,14 @@ nh5imget_image_info_c(hid_t_f *loc_id, /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; /* * allocate buffer to hold name of an attribute */ - if ((c_buf = HDmalloc((size_t)*ilen +1)) == NULL) + if ((c_buf = (char *)HDmalloc((size_t)*ilen +1)) == NULL) goto done; /* @@ -321,19 +308,17 @@ done: int_f nh5imis_image_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name) { hid_t c_loc_id; char *c_name = NULL; - int c_namelen; herr_t ret; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return -1; /* @@ -372,7 +357,7 @@ nh5imis_image_c(hid_t_f *loc_id, int_f nh5immake_palette_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *dims, void *buf) @@ -386,16 +371,16 @@ nh5immake_palette_c (hid_t_f *loc_id, /* * convert FORTRAN name to C name */ - if(NULL == (c_name = (char *)HD5f2cstring(name, (int)*namelen))) + if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) HGOTO_DONE(FAIL) for(i = 0; i < rank ; i++) - c_dims[i] = dims[i]; + c_dims[i] = (hsize_t)dims[i]; /* * call H5IMmake_palette function. */ - if(H5IMmake_palettef((hid_t)*loc_id, c_name, c_dims, buf) < 0) + if(H5IMmake_palettef((hid_t)*loc_id, c_name, c_dims, (int_f *)buf) < 0) HGOTO_DONE(FAIL) done: @@ -427,9 +412,9 @@ done: int_f nh5imlink_palette_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *ilen, + size_t_f *ilen, _fcd pal_name) { int ret_value = -1; @@ -437,19 +422,15 @@ nh5imlink_palette_c (hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_namepal = NULL; - int c_namelen; - int c_namelenpal; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; - c_namelenpal = *ilen; - c_namepal = (char *)HD5f2cstring(pal_name, c_namelenpal); + c_namepal = (char *)HD5f2cstring(pal_name, (size_t)*ilen); if (c_namepal == NULL) goto done; @@ -496,9 +477,9 @@ done: int_f nh5imunlink_palette_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *ilen, + size_t_f *ilen, _fcd pal_name) { int ret_value = -1; @@ -506,20 +487,15 @@ nh5imunlink_palette_c (hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_namepal = NULL; - int c_namelen; - int c_namelenpal; - /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; - c_namelenpal = *ilen; - c_namepal = (char *)HD5f2cstring(pal_name, c_namelenpal); + c_namepal = (char *)HD5f2cstring(pal_name, (size_t)*ilen); if (c_namepal == NULL) goto done; @@ -567,7 +543,7 @@ done: int_f nh5imget_npalettes_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *npals) { @@ -575,14 +551,12 @@ nh5imget_npalettes_c(hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; hssize_t c_npals; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -631,7 +605,7 @@ done: int_f nh5imget_palette_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *pal_number, hsize_t_f *dims) @@ -640,15 +614,13 @@ nh5imget_palette_info_c(hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; hsize_t c_dims[2]; int i; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -700,7 +672,7 @@ done: int_f nh5imget_palette_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *pal_number, void *buf) @@ -709,13 +681,11 @@ nh5imget_palette_c(hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -724,7 +694,7 @@ nh5imget_palette_c(hid_t_f *loc_id, */ c_loc_id = (hid_t)*loc_id; - ret = H5IMget_palettef(c_loc_id,c_name,*pal_number,buf); + ret = H5IMget_palettef(c_loc_id,c_name,*pal_number,(int_f *)buf); if (ret < 0) goto done; @@ -760,19 +730,17 @@ done: int_f nh5imis_palette_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name) { hid_t c_loc_id; char *c_name; - int c_namelen; herr_t ret; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return -1; /* diff --git a/hl/fortran/src/H5IMff.f90 b/hl/fortran/src/H5IMff.f90 index 2a66597..50c6d8b 100644 --- a/hl/fortran/src/H5IMff.f90 +++ b/hl/fortran/src/H5IMff.f90 @@ -51,7 +51,7 @@ subroutine h5immake_image_8bit_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5immake_image_8bit_f !DEC$endif ! @@ -62,7 +62,7 @@ subroutine h5immake_image_8bit_f(loc_id,& integer(hsize_t), intent(in) :: height ! height of image integer, intent(in), dimension(*) :: buf ! buffer integer :: errcode ! error code - integer :: namelen ! name length + INTEGER(size_t) :: namelen ! name length interface integer function h5immake_image_8bit_c(loc_id,namelen,dset_name,width,height,buf) @@ -73,11 +73,11 @@ subroutine h5immake_image_8bit_f(loc_id,& !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(size_t) :: namelen ! length of name buffer character(len=*), intent(in) :: dset_name ! name of the dataset integer(hsize_t), intent(in) :: width ! width of image integer(hsize_t), intent(in) :: height ! height of image - integer , intent(in), dimension(*) :: buf ! buffer + integer , intent(in), dimension(*) :: buf ! buffer end function h5immake_image_8bit_c end interface @@ -115,7 +115,7 @@ subroutine h5imread_image_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imread_image_f !DEC$endif ! @@ -123,7 +123,7 @@ subroutine h5imread_image_f(loc_id,& character(len=*), intent(in) :: dset_name ! name of the dataset integer, intent(inout), dimension(*) :: buf ! buffer integer :: errcode ! error code - integer :: namelen ! name length + INTEGER(size_t) :: namelen ! name length interface integer function h5imread_image_c(loc_id,namelen,dset_name,buf) @@ -134,7 +134,7 @@ subroutine h5imread_image_f(loc_id,& !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(size_t) :: namelen ! length of name buffer character(len=*), intent(in) :: dset_name ! name of the dataset integer, intent(inout), dimension(*) :: buf ! buffer end function h5imread_image_c @@ -175,7 +175,7 @@ subroutine h5immake_image_24bit_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5immake_image_24bit_f !DEC$endif ! @@ -187,8 +187,8 @@ subroutine h5immake_image_24bit_f(loc_id,& character(len=*), intent(in) :: il ! interlace integer, intent(in), dimension(*) :: buf ! buffer integer :: errcode ! error code - integer :: namelen ! name length - integer :: ilen ! name length + INTEGER(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length interface integer function h5immake_image_24bit_c(loc_id,namelen,dset_name,ilen,il,width,height,buf) @@ -205,8 +205,8 @@ subroutine h5immake_image_24bit_f(loc_id,& integer(hsize_t), intent(in) :: height ! height of image character(len=*), intent(in) :: il ! interlace integer, intent(in), dimension(*) :: buf ! buffer - integer :: namelen ! lenght of name buffer - integer :: ilen ! name length + integer(size_t) :: namelen ! length of name buffer + integer(size_t) :: ilen ! name length end function h5immake_image_24bit_c end interface @@ -249,7 +249,7 @@ subroutine h5imget_image_info_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imget_image_info_f !DEC$endif ! @@ -262,8 +262,8 @@ subroutine h5imget_image_info_f(loc_id,& integer(hsize_t), intent(inout) :: npals ! palettes character(len=*), intent(inout) :: interlace ! interlace integer :: errcode ! error code - integer :: namelen ! name length - integer :: ilen ! name length + integer(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length interface integer function h5imget_image_info_c(loc_id,namelen,dset_name,width,height,planes,npals,ilen,interlace) @@ -281,8 +281,8 @@ subroutine h5imget_image_info_f(loc_id,& integer(hsize_t), intent(inout) :: planes ! color planes integer(hsize_t), intent(inout) :: npals ! palettes character(len=*), intent(inout) :: interlace ! interlace - integer :: namelen ! name length - integer :: ilen ! name length + integer(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length end function h5imget_image_info_c end interface @@ -317,7 +317,7 @@ integer function h5imis_image_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imis_image_f !DEC$endif ! @@ -325,7 +325,7 @@ integer function h5imis_image_f(loc_id,& 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 + integer(size_t) :: namelen ! name length interface integer function h5imis_image_c(loc_id,namelen,dset_name) @@ -336,7 +336,7 @@ integer function h5imis_image_f(loc_id,& !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(size_t) :: namelen ! length of name buffer character(len=*), intent(in) :: dset_name ! name of the dataset end function h5imis_image_c end interface @@ -375,7 +375,7 @@ subroutine h5immake_palette_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5immake_palette_f !DEC$endif ! @@ -385,7 +385,7 @@ subroutine h5immake_palette_f(loc_id,& integer(hsize_t), intent(in), dimension(*) :: pal_dims ! dimensions integer, intent(in), dimension(*) :: buf ! buffer integer :: errcode ! error code - integer :: namelen ! name length + integer(size_t) :: namelen ! name length interface integer function h5immake_palette_c(loc_id,namelen,dset_name,pal_dims,buf) @@ -396,7 +396,7 @@ subroutine h5immake_palette_f(loc_id,& !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(size_t) :: namelen ! length of name buffer character(len=*), intent(in) :: dset_name ! name of the dataset integer(hsize_t), intent(in), dimension(*) :: pal_dims ! dimensions integer, intent(in), dimension(*) :: buf ! buffer @@ -436,7 +436,7 @@ subroutine h5imlink_palette_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imlink_palette_f !DEC$endif ! @@ -444,8 +444,8 @@ subroutine h5imlink_palette_f(loc_id,& character(len=*), intent(in) :: dset_name ! name of the dataset character(len=*), intent(in) :: pal_name ! palette name integer :: errcode ! error code - integer :: namelen ! name length - integer :: ilen ! name length + integer(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length interface integer function h5imlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name) @@ -459,8 +459,8 @@ subroutine h5imlink_palette_f(loc_id,& 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) :: pal_name ! palette name - integer :: namelen ! name length - integer :: ilen ! name length + integer(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length end function h5imlink_palette_c end interface @@ -497,7 +497,7 @@ subroutine h5imunlink_palette_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imunlink_palette_f !DEC$endif ! @@ -507,8 +507,8 @@ subroutine h5imunlink_palette_f(loc_id,& character(len=*), intent(in) :: dset_name ! name of the dataset character(len=*), intent(in) :: pal_name ! palette name integer :: errcode ! error code - integer :: namelen ! name length - integer :: ilen ! name length + integer(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length interface integer function h5imunlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name) @@ -522,8 +522,8 @@ subroutine h5imunlink_palette_f(loc_id,& 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) :: pal_name ! palette name - integer :: namelen ! name length - integer :: ilen ! name length + integer(size_t) :: namelen ! name length + integer(size_t) :: ilen ! name length end function h5imunlink_palette_c end interface @@ -561,7 +561,7 @@ subroutine h5imget_npalettes_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imget_npalettes_f !DEC$endif ! @@ -570,7 +570,7 @@ subroutine h5imget_npalettes_f(loc_id,& character(len=*), intent(in) :: dset_name ! name of the dataset integer(hsize_t), intent(inout) :: npals ! palettes integer :: errcode ! error code - integer :: namelen ! name length + integer(size_t) :: namelen ! name length interface integer function h5imget_npalettes_c(loc_id,namelen,dset_name,npals) @@ -583,7 +583,7 @@ subroutine h5imget_npalettes_f(loc_id,& 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) :: npals ! palettes - integer :: namelen ! name length + integer(size_t) :: namelen ! name length end function h5imget_npalettes_c end interface @@ -621,7 +621,7 @@ subroutine h5imget_palette_info_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imget_palette_info_f !DEC$endif ! @@ -631,7 +631,7 @@ subroutine h5imget_palette_info_f(loc_id,& integer, intent(in) :: pal_number ! palette number integer(hsize_t), dimension(*), intent(inout) :: dims ! dimensions integer :: errcode ! error code - integer :: namelen ! name length + integer(size_t) :: namelen ! name length interface integer function h5imget_palette_info_c(loc_id,namelen,dset_name,pal_number,dims) @@ -645,7 +645,7 @@ subroutine h5imget_palette_info_f(loc_id,& character(len=*), intent(in) :: dset_name ! name of the dataset integer, intent(in) :: pal_number ! palette number integer(hsize_t), dimension(*), intent(inout) :: dims ! dimensions - integer :: namelen ! name length + integer(size_t) :: namelen ! name length end function h5imget_palette_info_c end interface @@ -684,7 +684,7 @@ subroutine h5imget_palette_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imget_palette_f !DEC$endif ! @@ -694,7 +694,7 @@ subroutine h5imget_palette_f(loc_id,& integer, intent(in) :: pal_number ! palette number integer, intent(inout), dimension(*) :: buf ! buffer integer :: errcode ! error code - integer :: namelen ! name length + integer(size_t) :: namelen ! name length interface integer function h5imget_palette_c(loc_id,namelen,dset_name,pal_number,buf) @@ -705,7 +705,7 @@ subroutine h5imget_palette_f(loc_id,& !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(size_t) :: namelen ! length of name buffer character(len=*), intent(in) :: dset_name ! name of the dataset integer, intent(in) :: pal_number ! palette number integer, intent(inout), dimension(*) :: buf ! buffer @@ -742,7 +742,7 @@ integer function h5imis_palette_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5imis_palette_f !DEC$endif ! @@ -750,7 +750,7 @@ integer function h5imis_palette_f(loc_id,& 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 + integer(size_t) :: namelen ! name length interface integer function h5imis_palette_c(loc_id,namelen,dset_name) @@ -761,7 +761,7 @@ integer function h5imis_palette_f(loc_id,& !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(size_t) :: namelen ! length of name buffer character(len=*), intent(in) :: dset_name ! name of the dataset end function h5imis_palette_c end interface diff --git a/hl/fortran/src/H5LTf90proto.h b/hl/fortran/src/H5LTf90proto.h index 332a7e2..532d9d8 100644 --- a/hl/fortran/src/H5LTf90proto.h +++ b/hl/fortran/src/H5LTf90proto.h @@ -22,8 +22,9 @@ #include <stdlib.h> #include <string.h> +/* These definitions should match those in fortran/src/H5f90kit.c */ -H5_FCDLL char* HD5f2cstring (_fcd fdesc, int len); +H5_FCDLL char* HD5f2cstring (_fcd fdesc, size_t len); H5_FCDLL void HD5packFstring (char *src, char *dest, size_t len); /* @@ -204,7 +205,7 @@ H5_FCDLL void HD5packFstring (char *src, char *dest, size_t len); HDF5_HL_F90CSTUBDLL int_f -nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, int_f *dimnamelen); +nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, size_t_f *dimnamelen); HDF5_HL_F90CSTUBDLL int_f @@ -224,7 +225,7 @@ nh5dsis_scale_c(hid_t_f *did, int_f *is_scale); HDF5_HL_F90CSTUBDLL int_f -nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, int_f *labellen); +nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *labellen); HDF5_HL_F90CSTUBDLL int_f @@ -242,7 +243,7 @@ nh5dsget_num_scales_c( hid_t_f *did, int_f *idx, int_f *num_scales); HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -252,7 +253,7 @@ nh5ltmake_dataset_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_int1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -262,7 +263,7 @@ nh5ltmake_dataset_int1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_int2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -272,7 +273,7 @@ nh5ltmake_dataset_int2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_int3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -282,7 +283,7 @@ 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, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -292,7 +293,7 @@ nh5ltmake_dataset_int4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_int5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -302,7 +303,7 @@ nh5ltmake_dataset_int5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_int6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -312,7 +313,7 @@ nh5ltmake_dataset_int6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_int7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -323,7 +324,7 @@ nh5ltmake_dataset_int7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_fl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -333,7 +334,7 @@ nh5ltmake_dataset_fl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_fl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -343,7 +344,7 @@ nh5ltmake_dataset_fl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_fl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -353,7 +354,7 @@ 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, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -363,7 +364,7 @@ nh5ltmake_dataset_fl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_fl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -373,7 +374,7 @@ nh5ltmake_dataset_fl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_fl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -383,7 +384,7 @@ nh5ltmake_dataset_fl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_fl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -394,7 +395,7 @@ nh5ltmake_dataset_fl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_dl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -404,7 +405,7 @@ nh5ltmake_dataset_dl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_dl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -414,7 +415,7 @@ nh5ltmake_dataset_dl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_dl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -424,7 +425,7 @@ 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, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -434,7 +435,7 @@ nh5ltmake_dataset_dl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_dl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -444,7 +445,7 @@ nh5ltmake_dataset_dl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_dl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -454,7 +455,7 @@ nh5ltmake_dataset_dl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_dl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -464,7 +465,7 @@ nh5ltmake_dataset_dl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nint1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -474,7 +475,7 @@ nh5ltmake_dataset_nint1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nint2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -484,7 +485,7 @@ nh5ltmake_dataset_nint2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nint3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -494,7 +495,7 @@ 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, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -504,7 +505,7 @@ nh5ltmake_dataset_nint4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nint5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -514,7 +515,7 @@ nh5ltmake_dataset_nint5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nint6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -524,7 +525,7 @@ nh5ltmake_dataset_nint6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nint7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -534,7 +535,7 @@ nh5ltmake_dataset_nint7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -544,7 +545,7 @@ nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -554,7 +555,7 @@ nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -564,7 +565,7 @@ 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, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -574,7 +575,7 @@ nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -584,7 +585,7 @@ nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -594,7 +595,7 @@ nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -604,7 +605,7 @@ nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -614,7 +615,7 @@ nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -624,7 +625,7 @@ nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -634,7 +635,7 @@ 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, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -644,7 +645,7 @@ nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -654,7 +655,7 @@ nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -664,7 +665,7 @@ nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -674,7 +675,7 @@ nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -684,7 +685,7 @@ nh5ltread_dataset_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_int1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -693,7 +694,7 @@ nh5ltread_dataset_int1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_int2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -702,7 +703,7 @@ nh5ltread_dataset_int2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_int3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -711,7 +712,7 @@ 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, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -720,7 +721,7 @@ nh5ltread_dataset_int4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_int5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -729,7 +730,7 @@ nh5ltread_dataset_int5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_int6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -738,7 +739,7 @@ nh5ltread_dataset_int6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_int7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -747,7 +748,7 @@ nh5ltread_dataset_int7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_fl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -756,7 +757,7 @@ nh5ltread_dataset_fl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_fl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -765,7 +766,7 @@ nh5ltread_dataset_fl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_fl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -774,7 +775,7 @@ 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, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -783,7 +784,7 @@ nh5ltread_dataset_fl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_fl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -792,7 +793,7 @@ nh5ltread_dataset_fl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_fl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -802,7 +803,7 @@ nh5ltread_dataset_fl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_fl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -811,7 +812,7 @@ nh5ltread_dataset_fl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_dl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -820,7 +821,7 @@ nh5ltread_dataset_dl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_dl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -829,7 +830,7 @@ nh5ltread_dataset_dl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_dl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -838,7 +839,7 @@ 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, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -847,7 +848,7 @@ nh5ltread_dataset_dl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_dl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -856,7 +857,7 @@ nh5ltread_dataset_dl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_dl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -865,7 +866,7 @@ nh5ltread_dataset_dl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_dl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -874,7 +875,7 @@ nh5ltread_dataset_dl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nint1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -883,7 +884,7 @@ nh5ltread_dataset_nint1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nint2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -892,7 +893,7 @@ nh5ltread_dataset_nint2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nint3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -901,7 +902,7 @@ 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, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -910,7 +911,7 @@ nh5ltread_dataset_nint4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nint5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -919,7 +920,7 @@ nh5ltread_dataset_nint5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nint6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -928,7 +929,7 @@ nh5ltread_dataset_nint6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nint7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -937,7 +938,7 @@ nh5ltread_dataset_nint7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nfl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -946,7 +947,7 @@ nh5ltread_dataset_nfl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nfl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -955,7 +956,7 @@ nh5ltread_dataset_nfl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nfl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -964,7 +965,7 @@ 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, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -973,7 +974,7 @@ nh5ltread_dataset_nfl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nfl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -982,7 +983,7 @@ nh5ltread_dataset_nfl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nfl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -991,7 +992,7 @@ nh5ltread_dataset_nfl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_nfl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1000,7 +1001,7 @@ nh5ltread_dataset_nfl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_ndl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1009,7 +1010,7 @@ nh5ltread_dataset_ndl1_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_ndl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1018,7 +1019,7 @@ nh5ltread_dataset_ndl2_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_ndl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1027,7 +1028,7 @@ 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, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1036,7 +1037,7 @@ nh5ltread_dataset_ndl4_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_ndl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1045,7 +1046,7 @@ nh5ltread_dataset_ndl5_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_ndl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1054,7 +1055,7 @@ nh5ltread_dataset_ndl6_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_ndl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1063,9 +1064,9 @@ nh5ltread_dataset_ndl7_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltset_attribute_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, size_t_f *size, void *buf); @@ -1073,9 +1074,9 @@ nh5ltset_attribute_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltset_attribute_float_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, size_t_f *size, void *buf); @@ -1083,9 +1084,9 @@ nh5ltset_attribute_float_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltset_attribute_double_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, size_t_f *size, void *buf); @@ -1093,68 +1094,68 @@ nh5ltset_attribute_double_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltset_attribute_string_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, - int_f *buflen, + size_t_f *buflen, void *buf); HDF5_HL_F90CSTUBDLL int_f nh5ltget_attribute_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, void *buf); HDF5_HL_F90CSTUBDLL int_f nh5ltget_attribute_float_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, void *buf); HDF5_HL_F90CSTUBDLL int_f nh5ltget_attribute_double_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, void *buf); HDF5_HL_F90CSTUBDLL int_f nh5ltget_attribute_string_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, _fcd buf, - size_t_f *buf_size); + size_t_f *buf_size); HDF5_HL_F90CSTUBDLL int_f nh5ltget_dataset_ndims_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank); HDF5_HL_F90CSTUBDLL int_f nh5ltfind_dataset_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name); HDF5_HL_F90CSTUBDLL int_f nh5ltget_dataset_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *dims, int_f *type_class, @@ -1163,17 +1164,17 @@ nh5ltget_dataset_info_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltget_attribute_ndims_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, int_f *rank); HDF5_HL_F90CSTUBDLL int_f nh5ltget_attribute_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, hsize_t_f *dims, int_f *type_class, @@ -1182,24 +1183,24 @@ nh5ltget_attribute_info_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5ltmake_dataset_string_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *buflen, + size_t_f *buflen, char *buf); HDF5_HL_F90CSTUBDLL int_f nh5ltread_dataset_string_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, char *buf); HDF5_HL_F90CSTUBDLL int_f nh5ltpath_valid_c(hid_t_f *loc_id, - _fcd path, - int_f *pathlen, - int_f *check_object_valid_c); + _fcd path, + size_t_f *pathlen, + int_f *check_object_valid_c); /*------------------------------------------------------------------------- * Image @@ -1209,7 +1210,7 @@ nh5ltpath_valid_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5immake_image_8bit_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *width, hsize_t_f *height, @@ -1217,16 +1218,16 @@ nh5immake_image_8bit_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5imread_image_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *buf); HDF5_HL_F90CSTUBDLL int_f nh5immake_image_24bit_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *ilen, + size_t_f *ilen, _fcd il, hsize_t_f *width, hsize_t_f *height, @@ -1234,27 +1235,27 @@ nh5immake_image_24bit_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5imget_image_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *width, hsize_t_f *height, hsize_t_f *planes, hsize_t_f *npals, - int_f *ilen, + size_t_f *ilen, _fcd interlace); HDF5_HL_F90CSTUBDLL int_f nh5imis_image_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name); HDF5_HL_F90CSTUBDLL int_f nh5immake_palette_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *dims, void *buf); @@ -1262,23 +1263,23 @@ nh5immake_palette_c (hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5imlink_palette_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *ilen, + size_t_f *ilen, _fcd pal_name); HDF5_HL_F90CSTUBDLL int_f nh5imunlink_palette_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *ilen, + size_t_f *ilen, _fcd pal_name); HDF5_HL_F90CSTUBDLL int_f nh5imget_npalettes_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *npals); @@ -1286,7 +1287,7 @@ nh5imget_npalettes_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5imget_palette_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *pal_number, hsize_t_f *dims); @@ -1294,7 +1295,7 @@ nh5imget_palette_info_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5imget_palette_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *pal_number, void *buf); @@ -1302,7 +1303,7 @@ nh5imget_palette_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5imis_palette_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name); @@ -1314,10 +1315,10 @@ nh5imis_palette_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbmake_table_c(int_f *namelen1, +nh5tbmake_table_c(size_t_f *namelen1, _fcd name1, hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *nfields, hsize_t_f *nrecords, @@ -1326,16 +1327,16 @@ nh5tbmake_table_c(int_f *namelen1, hid_t_f *field_types, hsize_t_f *chunk_size, int_f *compress, - int_f *char_len_field_names, /* field_names lenghts */ - int_f *max_char_size_field_names, /* char len of fields */ + size_t_f *char_len_field_names, /* field_names lenghts */ + size_t_f *max_char_size_field_names, /* char len of fields */ _fcd buf); /* field_names */ HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_name_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1345,9 +1346,9 @@ nh5tbwrite_field_name_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_name_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1357,9 +1358,9 @@ nh5tbwrite_field_name_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1369,9 +1370,9 @@ nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1381,9 +1382,9 @@ nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_name_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1393,9 +1394,9 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_name_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1405,9 +1406,9 @@ nh5tbread_field_name_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_name_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1417,9 +1418,9 @@ nh5tbread_field_name_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_name_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1429,9 +1430,9 @@ nh5tbread_field_name_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_name_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1441,9 +1442,9 @@ nh5tbread_field_name_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_name_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -1453,7 +1454,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_index_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1464,7 +1465,7 @@ nh5tbwrite_field_index_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_index_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1475,7 +1476,7 @@ nh5tbwrite_field_index_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1486,7 +1487,7 @@ nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1497,7 +1498,7 @@ nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbwrite_field_index_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1508,7 +1509,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_index_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1519,7 +1520,7 @@ nh5tbread_field_index_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_index_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1530,7 +1531,7 @@ nh5tbread_field_index_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_index_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1541,7 +1542,7 @@ nh5tbread_field_index_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_index_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1552,7 +1553,7 @@ nh5tbread_field_index_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbread_field_index_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -1563,9 +1564,9 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbinsert_field_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -1574,9 +1575,9 @@ nh5tbinsert_field_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbinsert_field_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -1584,9 +1585,9 @@ nh5tbinsert_field_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbinsert_field_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -1594,9 +1595,9 @@ nh5tbinsert_field_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbinsert_field_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -1604,9 +1605,9 @@ nh5tbinsert_field_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbinsert_field_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -1614,16 +1615,16 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbdelete_field_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name); HDF5_HL_F90CSTUBDLL int_f nh5tbget_table_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *nfields, hsize_t_f *nrecords); @@ -1631,16 +1632,16 @@ nh5tbget_table_info_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f nh5tbget_field_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *nfields, size_t_f *field_sizes, size_t_f *field_offsets, size_t_f *type_size, - int_f *namelen2, - int_f *lenmax, + size_t_f *namelen2, + size_t_f *lenmax, _fcd field_names, - int_f *maxlen_out); + size_t_f *maxlen_out); #endif /* _H5LTf90proto_H */ diff --git a/hl/fortran/src/H5LTfc.c b/hl/fortran/src/H5LTfc.c index 4f8f7b6..1e0a236 100644 --- a/hl/fortran/src/H5LTfc.c +++ b/hl/fortran/src/H5LTfc.c @@ -40,7 +40,7 @@ int_f nh5ltmake_dataset_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -49,25 +49,20 @@ nh5ltmake_dataset_c (hid_t_f *loc_id, { int ret_value = -1; herr_t ret; - hid_t c_loc_id; - hid_t c_type_id; char *c_name = NULL; hsize_t *c_dims = NULL; - int c_namelen; int i; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; - c_dims = HDmalloc(sizeof(hsize_t) * (*rank )); + c_dims = (hsize_t *)HDmalloc(sizeof(hsize_t) * ( (size_t)*rank )); if (c_dims == NULL) goto done; - /* * transpose dimension arrays because of C-FORTRAN storage order */ @@ -79,11 +74,8 @@ nh5ltmake_dataset_c (hid_t_f *loc_id, /* * call H5LTmake_dataset function. */ - c_loc_id = (hid_t)*loc_id; - c_type_id = (hid_t)*type_id; - - ret = H5LTmake_dataset(c_loc_id, c_name, *rank, c_dims, c_type_id, buf ); + ret = H5LTmake_dataset((hid_t)*loc_id, c_name, (int)*rank, c_dims, (hid_t)*type_id, buf ); if (ret < 0) goto done; @@ -99,7 +91,7 @@ done: int_f nh5ltmake_dataset_int1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -110,7 +102,7 @@ nh5ltmake_dataset_int1_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_int2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -121,7 +113,7 @@ nh5ltmake_dataset_int2_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_int3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -132,7 +124,7 @@ nh5ltmake_dataset_int3_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_int4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -143,7 +135,7 @@ nh5ltmake_dataset_int4_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_int5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -154,7 +146,7 @@ nh5ltmake_dataset_int5_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_int6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -165,7 +157,7 @@ nh5ltmake_dataset_int6_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_int7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -176,7 +168,7 @@ nh5ltmake_dataset_int7_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -187,7 +179,7 @@ nh5ltmake_dataset_fl1_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -198,7 +190,7 @@ nh5ltmake_dataset_fl2_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -209,7 +201,7 @@ nh5ltmake_dataset_fl3_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -220,7 +212,7 @@ nh5ltmake_dataset_fl4_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -231,7 +223,7 @@ nh5ltmake_dataset_fl5_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -242,7 +234,7 @@ nh5ltmake_dataset_fl6_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_fl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -253,7 +245,7 @@ nh5ltmake_dataset_fl7_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -264,7 +256,7 @@ nh5ltmake_dataset_dl1_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -275,7 +267,7 @@ nh5ltmake_dataset_dl2_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -286,7 +278,7 @@ nh5ltmake_dataset_dl3_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -297,7 +289,7 @@ nh5ltmake_dataset_dl4_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -308,7 +300,7 @@ nh5ltmake_dataset_dl5_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -319,7 +311,7 @@ nh5ltmake_dataset_dl6_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_dl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -330,7 +322,7 @@ nh5ltmake_dataset_dl7_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -341,7 +333,7 @@ nh5ltmake_dataset_nint1_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -352,7 +344,7 @@ nh5ltmake_dataset_nint2_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -363,7 +355,7 @@ nh5ltmake_dataset_nint3_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -374,7 +366,7 @@ nh5ltmake_dataset_nint4_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -385,7 +377,7 @@ nh5ltmake_dataset_nint5_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -396,7 +388,7 @@ nh5ltmake_dataset_nint6_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nint7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -407,7 +399,7 @@ nh5ltmake_dataset_nint7_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -418,7 +410,7 @@ nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -429,7 +421,7 @@ nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -440,7 +432,7 @@ nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -451,7 +443,7 @@ nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -462,7 +454,7 @@ nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -473,7 +465,7 @@ nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -484,7 +476,7 @@ nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -495,7 +487,7 @@ nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -506,7 +498,7 @@ nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -517,7 +509,7 @@ nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -528,7 +520,7 @@ nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -539,7 +531,7 @@ nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -550,7 +542,7 @@ nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id, } int_f nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank, hsize_t_f *dims, @@ -580,7 +572,7 @@ nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id, int_f nh5ltread_dataset_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -591,13 +583,11 @@ nh5ltread_dataset_c (hid_t_f *loc_id, hid_t c_loc_id; hid_t c_type_id; char *c_name = NULL; - int c_namelen; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -623,7 +613,7 @@ done: int_f nh5ltread_dataset_int1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -633,7 +623,7 @@ nh5ltread_dataset_int1_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_int2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -643,7 +633,7 @@ nh5ltread_dataset_int2_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_int3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -653,7 +643,7 @@ nh5ltread_dataset_int3_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_int4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -663,7 +653,7 @@ nh5ltread_dataset_int4_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_int5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -673,7 +663,7 @@ nh5ltread_dataset_int5_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_int6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -683,7 +673,7 @@ nh5ltread_dataset_int6_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_int7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -693,7 +683,7 @@ nh5ltread_dataset_int7_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -703,7 +693,7 @@ nh5ltread_dataset_fl1_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -713,7 +703,7 @@ nh5ltread_dataset_fl2_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -723,7 +713,7 @@ nh5ltread_dataset_fl3_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -733,7 +723,7 @@ nh5ltread_dataset_fl4_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -743,7 +733,7 @@ nh5ltread_dataset_fl5_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -753,7 +743,7 @@ nh5ltread_dataset_fl6_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_fl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -763,7 +753,7 @@ nh5ltread_dataset_fl7_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -773,7 +763,7 @@ nh5ltread_dataset_dl1_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -783,7 +773,7 @@ nh5ltread_dataset_dl2_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -793,7 +783,7 @@ nh5ltread_dataset_dl3_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -803,7 +793,7 @@ nh5ltread_dataset_dl4_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -813,7 +803,7 @@ nh5ltread_dataset_dl5_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -823,7 +813,7 @@ nh5ltread_dataset_dl6_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_dl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -833,7 +823,7 @@ nh5ltread_dataset_dl7_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -843,7 +833,7 @@ nh5ltread_dataset_nint1_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -853,7 +843,7 @@ nh5ltread_dataset_nint2_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -863,7 +853,7 @@ nh5ltread_dataset_nint3_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -873,7 +863,7 @@ nh5ltread_dataset_nint4_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -883,7 +873,7 @@ nh5ltread_dataset_nint5_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -893,7 +883,7 @@ nh5ltread_dataset_nint6_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nint7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -903,7 +893,7 @@ nh5ltread_dataset_nint7_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -913,7 +903,7 @@ nh5ltread_dataset_nfl1_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -923,7 +913,7 @@ nh5ltread_dataset_nfl2_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -933,7 +923,7 @@ nh5ltread_dataset_nfl3_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -943,7 +933,7 @@ nh5ltread_dataset_nfl4_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -953,7 +943,7 @@ nh5ltread_dataset_nfl5_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -963,7 +953,7 @@ nh5ltread_dataset_nfl6_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_nfl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -973,7 +963,7 @@ nh5ltread_dataset_nfl7_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl1_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -983,7 +973,7 @@ nh5ltread_dataset_ndl1_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl2_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -993,7 +983,7 @@ nh5ltread_dataset_ndl2_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl3_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1003,7 +993,7 @@ nh5ltread_dataset_ndl3_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl4_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1013,7 +1003,7 @@ nh5ltread_dataset_ndl4_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl5_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1023,7 +1013,7 @@ nh5ltread_dataset_ndl5_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl6_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1033,7 +1023,7 @@ nh5ltread_dataset_ndl6_c (hid_t_f *loc_id, } int_f nh5ltread_dataset_ndl7_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hid_t_f *type_id, void *buf, @@ -1062,29 +1052,25 @@ nh5ltread_dataset_ndl7_c (hid_t_f *loc_id, int_f nh5ltmake_dataset_string_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *buflen, + size_t_f *buflen, char *buf) { int ret_value = -1; herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; char *c_buf = NULL; - int c_buflen; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; - c_buflen = *buflen; - c_buf = (char *)HD5f2cstring(buf, c_buflen); + c_buf = (char *)HD5f2cstring(buf, (size_t)*buflen); if (c_buf == NULL) goto done; @@ -1131,7 +1117,7 @@ done: int_f nh5ltread_dataset_string_c (hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, char *buf) { @@ -1139,13 +1125,11 @@ nh5ltread_dataset_string_c (hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -1191,9 +1175,9 @@ done: int_f nh5ltset_attribute_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, size_t_f *size, void *buf) @@ -1203,20 +1187,16 @@ nh5ltset_attribute_int_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; size_t c_size; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -1227,11 +1207,11 @@ nh5ltset_attribute_int_c(hid_t_f *loc_id, c_size = (size_t)*size; if (sizeof(int_f) == sizeof(int)) - ret = H5LTset_attribute_int(c_loc_id,c_name,c_attrname,buf,c_size); + ret = H5LTset_attribute_int(c_loc_id,c_name,c_attrname,(const int *)buf,c_size); else if (sizeof(int_f) == sizeof(long)) - ret = H5LTset_attribute_long(c_loc_id,c_name,c_attrname,buf,c_size); + ret = H5LTset_attribute_long(c_loc_id,c_name,c_attrname,(const long *)buf,c_size); else if (sizeof(int_f) == sizeof(long long)) - ret = H5LTset_attribute_long_long(c_loc_id,c_name,c_attrname,buf,c_size); + ret = H5LTset_attribute_long_long(c_loc_id,c_name,c_attrname,(const long long *)buf,c_size); else goto done; @@ -1270,9 +1250,9 @@ done: int_f nh5ltset_attribute_float_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, size_t_f *size, void *buf) @@ -1282,20 +1262,16 @@ nh5ltset_attribute_float_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; size_t c_size; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = *attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -1305,7 +1281,7 @@ nh5ltset_attribute_float_c(hid_t_f *loc_id, c_loc_id = (hid_t)*loc_id; c_size = (size_t)*size; - ret = H5LTset_attribute_float(c_loc_id,c_name,c_attrname,buf,c_size); + ret = H5LTset_attribute_float(c_loc_id,c_name,c_attrname,(float *)buf,c_size); if (ret < 0) goto done; @@ -1343,9 +1319,9 @@ done: int_f nh5ltset_attribute_double_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, size_t_f *size, void *buf) @@ -1355,20 +1331,16 @@ nh5ltset_attribute_double_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; size_t c_size; /* * Convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = *attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -1378,7 +1350,7 @@ nh5ltset_attribute_double_c(hid_t_f *loc_id, c_loc_id = (hid_t)*loc_id; c_size = (size_t)*size; - ret = H5LTset_attribute_double(c_loc_id,c_name,c_attrname,buf,c_size); + ret = H5LTset_attribute_double(c_loc_id,c_name,c_attrname,(double *)buf,c_size); if (ret < 0) goto done; @@ -1416,11 +1388,11 @@ done: int_f nh5ltset_attribute_string_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, - int_f *buflen, + size_t_f *buflen, void *buf) { int ret_value = -1; @@ -1428,26 +1400,20 @@ nh5ltset_attribute_string_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; char *c_buf = NULL; - int c_buflen; /* * convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = *attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; - c_buflen = *buflen; - c_buf = (char *)HD5f2cstring(buf, c_buflen); + c_buf = (char *)HD5f2cstring((_fcd)buf, (size_t)*buflen); if (c_buf == NULL) goto done; @@ -1497,9 +1463,9 @@ done: int_f nh5ltget_attribute_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, void *buf) { @@ -1508,19 +1474,15 @@ nh5ltget_attribute_int_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -1530,11 +1492,11 @@ nh5ltget_attribute_int_c(hid_t_f *loc_id, c_loc_id = (hid_t)*loc_id; if(sizeof(int_f) == sizeof(int)) - ret = H5LTget_attribute_int(c_loc_id,c_name,c_attrname,buf); + ret = H5LTget_attribute_int(c_loc_id,c_name,c_attrname,(int *)buf); else if (sizeof(int_f) == sizeof(long)) - ret = H5LTget_attribute_long(c_loc_id,c_name,c_attrname,buf); + ret = H5LTget_attribute_long(c_loc_id,c_name,c_attrname,(long *)buf); else if (sizeof(int_f) == sizeof(long long)) - ret = H5LTget_attribute_long_long(c_loc_id,c_name,c_attrname,buf); + ret = H5LTget_attribute_long_long(c_loc_id,c_name,c_attrname,(long long *)buf); else goto done; @@ -1575,9 +1537,9 @@ done: int_f nh5ltget_attribute_float_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, void *buf) { @@ -1586,19 +1548,15 @@ nh5ltget_attribute_float_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -1607,7 +1565,7 @@ nh5ltget_attribute_float_c(hid_t_f *loc_id, */ c_loc_id = (hid_t)*loc_id; - ret = H5LTget_attribute_float(c_loc_id,c_name,c_attrname,buf); + ret = H5LTget_attribute_float(c_loc_id,c_name,c_attrname,(float*)buf); if (ret < 0) goto done; @@ -1644,9 +1602,9 @@ done: int_f nh5ltget_attribute_double_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, void *buf) { @@ -1655,19 +1613,15 @@ nh5ltget_attribute_double_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -1676,7 +1630,7 @@ nh5ltget_attribute_double_c(hid_t_f *loc_id, */ c_loc_id = (hid_t)*loc_id; - ret = H5LTget_attribute_double(c_loc_id,c_name,c_attrname,buf); + ret = H5LTget_attribute_double(c_loc_id,c_name,c_attrname,(double *)buf); if (ret < 0) goto done; @@ -1714,9 +1668,9 @@ done: int_f nh5ltget_attribute_string_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, _fcd buf, size_t_f *buf_size) { @@ -1725,25 +1679,21 @@ nh5ltget_attribute_string_c(hid_t_f *loc_id, char *c_name = NULL; char *c_attrname = NULL; char *c_buf = NULL; - int c_namelen; - int c_attrnamelen; /* * Convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; /* * Allocate buffer to hold C attribute string */ - if ((c_buf = HDmalloc((size_t)*buf_size + 1)) == NULL) + if ((c_buf = (char *)HDmalloc((size_t)*buf_size + 1)) == NULL) goto done; /* @@ -1793,7 +1743,7 @@ done: int_f nh5ltget_dataset_ndims_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *rank) { @@ -1801,14 +1751,12 @@ nh5ltget_dataset_ndims_c(hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; int c_rank; /* * Convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -1855,19 +1803,17 @@ done: int_f nh5ltfind_dataset_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name) { hid_t c_loc_id; char *c_name = NULL; - int c_namelen; herr_t ret; /* * Convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return -1; /* @@ -1905,7 +1851,7 @@ nh5ltfind_dataset_c(hid_t_f *loc_id, int_f nh5ltget_dataset_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *dims, int_f *type_class, @@ -1915,7 +1861,6 @@ nh5ltget_dataset_info_c(hid_t_f *loc_id, herr_t ret; hid_t c_loc_id; char *c_name = NULL; - int c_namelen; H5T_class_t c_classtype; size_t c_type_size; hsize_t c_dims[32]; @@ -1925,8 +1870,7 @@ nh5ltget_dataset_info_c(hid_t_f *loc_id, /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; @@ -1986,9 +1930,9 @@ done: int_f nh5ltget_attribute_ndims_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd dsetname, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, int_f *rank) { @@ -1997,20 +1941,16 @@ nh5ltget_attribute_ndims_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; int c_rank; /* * Convert FORTRAN name to C name */ - c_namelen =(int) *namelen; - c_name = (char *)HD5f2cstring(dsetname, c_namelen); + c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -2059,9 +1999,9 @@ done: int_f nh5ltget_attribute_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *attrnamelen, + size_t_f *attrnamelen, _fcd attrname, hsize_t_f *dims, int_f *type_class, @@ -2072,8 +2012,6 @@ nh5ltget_attribute_info_c(hid_t_f *loc_id, hid_t c_loc_id; char *c_name = NULL; char *c_attrname = NULL; - int c_namelen; - int c_attrnamelen; H5T_class_t c_classtype; size_t c_type_size; hsize_t c_dims[32]; @@ -2083,13 +2021,11 @@ nh5ltget_attribute_info_c(hid_t_f *loc_id, /* * convert FORTRAN name to C name */ - c_namelen = (int)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) goto done; - c_attrnamelen = (int)*attrnamelen; - c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen); + c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen); if (c_attrname == NULL) goto done; @@ -2152,9 +2088,9 @@ done: int_f nh5ltpath_valid_c(hid_t_f *loc_id, - _fcd path, - int_f *pathlen, - int_f *check_object_valid_c) + _fcd path, + size_t_f *pathlen, + int_f *check_object_valid_c) { htri_t ret = -1; char *c_path = NULL; diff --git a/hl/fortran/src/H5LTff.f90 b/hl/fortran/src/H5LTff.f90 index b06a8fe..9393f7f 100644 --- a/hl/fortran/src/H5LTff.f90 +++ b/hl/fortran/src/H5LTff.f90 @@ -163,7 +163,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int1 !DEC$endif ! @@ -171,11 +171,11 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) @@ -187,10 +187,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltmake_dataset_int1_c END INTERFACE @@ -229,7 +229,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int2 !DEC$endif ! @@ -237,10 +237,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -254,10 +254,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_int2_c @@ -297,7 +297,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int3 !DEC$endif ! @@ -305,10 +305,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -322,10 +322,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_int3_c @@ -360,7 +360,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int4 !DEC$endif ! @@ -368,10 +368,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -385,10 +385,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_int4_c @@ -423,7 +423,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int5 !DEC$endif ! @@ -431,10 +431,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -448,10 +448,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_int5_c @@ -486,7 +486,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int6 !DEC$endif ! @@ -494,10 +494,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -511,10 +511,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -549,7 +549,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_int7 !DEC$endif ! @@ -557,10 +557,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -574,10 +574,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -618,7 +618,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float1 !DEC$endif ! @@ -626,11 +626,11 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) @@ -642,10 +642,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltmake_dataset_fl1_c END INTERFACE @@ -684,7 +684,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float2 !DEC$endif ! @@ -692,10 +692,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -709,10 +709,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_fl2_c @@ -752,7 +752,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float3 !DEC$endif ! @@ -760,10 +760,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -777,10 +777,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_fl3_c @@ -815,7 +815,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float4 !DEC$endif ! @@ -823,10 +823,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -840,10 +840,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_fl4_c @@ -878,7 +878,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float5 !DEC$endif ! @@ -886,10 +886,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -903,10 +903,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_fl5_c @@ -941,7 +941,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float6 !DEC$endif ! @@ -949,10 +949,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -966,10 +966,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1004,7 +1004,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_float7 !DEC$endif ! @@ -1012,10 +1012,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -1029,10 +1029,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1072,7 +1072,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double1 !DEC$endif ! @@ -1080,11 +1080,11 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) @@ -1096,10 +1096,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltmake_dataset_dl1_c END INTERFACE @@ -1138,7 +1138,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double2 !DEC$endif ! @@ -1146,10 +1146,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -1163,10 +1163,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_dl2_c @@ -1206,7 +1206,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double3 !DEC$endif ! @@ -1214,10 +1214,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -1231,10 +1231,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_dl3_c @@ -1269,7 +1269,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double4 !DEC$endif ! @@ -1277,10 +1277,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf ! data buffer @@ -1294,10 +1294,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_dl4_c @@ -1332,7 +1332,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double5 !DEC$endif ! @@ -1340,10 +1340,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -1357,10 +1357,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1395,7 +1395,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double6 !DEC$endif ! @@ -1403,10 +1403,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -1420,10 +1420,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1458,7 +1458,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_f_double7 !DEC$endif ! @@ -1466,10 +1466,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: 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 @@ -1483,10 +1483,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1525,7 +1525,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int1 !DEC$endif ! @@ -1533,10 +1533,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims) @@ -1548,9 +1548,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the buffer buf INTEGER, INTENT(IN), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltread_dataset_int1_c END INTERFACE @@ -1588,7 +1588,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int2 !DEC$endif ! @@ -1596,9 +1596,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -1612,9 +1612,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltread_dataset_int2_c @@ -1653,7 +1653,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int3 !DEC$endif ! @@ -1661,9 +1661,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -1677,9 +1677,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltread_dataset_int3_c @@ -1714,7 +1714,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int4 !DEC$endif ! @@ -1722,9 +1722,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -1738,9 +1738,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltread_dataset_int4_c @@ -1775,7 +1775,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int5 !DEC$endif ! @@ -1783,9 +1783,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -1799,9 +1799,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltread_dataset_int5_c @@ -1836,7 +1836,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int6 !DEC$endif ! @@ -1844,9 +1844,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -1860,9 +1860,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1897,7 +1897,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_int7 !DEC$endif ! @@ -1905,9 +1905,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -1921,9 +1921,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -1963,7 +1963,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float1 !DEC$endif ! @@ -1971,10 +1971,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(inout), DIMENSION(*) :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims) @@ -1986,9 +1986,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltread_dataset_fl1_c END INTERFACE @@ -2026,7 +2026,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float2 !DEC$endif ! @@ -2035,9 +2035,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -2051,9 +2051,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltread_dataset_fl2_c @@ -2092,7 +2092,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float3 !DEC$endif ! @@ -2100,9 +2100,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -2116,9 +2116,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltread_dataset_fl3_c @@ -2153,7 +2153,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float4 !DEC$endif ! @@ -2161,9 +2161,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -2177,9 +2177,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltread_dataset_fl4_c @@ -2214,7 +2214,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float5 !DEC$endif ! @@ -2222,9 +2222,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -2238,9 +2238,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltread_dataset_fl5_c @@ -2275,7 +2275,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float6 !DEC$endif ! @@ -2283,9 +2283,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -2299,9 +2299,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -2336,7 +2336,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_float7 !DEC$endif ! @@ -2344,9 +2344,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -2360,9 +2360,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -2402,7 +2402,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport ::h5ltread_dataset_f_double1 !DEC$endif ! @@ -2410,10 +2410,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(inout), DIMENSION(*) :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims) @@ -2425,9 +2425,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltread_dataset_dl1_c END INTERFACE @@ -2465,7 +2465,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_double2 !DEC$endif ! @@ -2473,9 +2473,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -2489,9 +2489,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltread_dataset_dl2_c @@ -2530,7 +2530,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_double3 !DEC$endif ! @@ -2538,9 +2538,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -2554,9 +2554,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltread_dataset_dl3_c @@ -2591,7 +2591,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_double4 !DEC$endif ! @@ -2599,9 +2599,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -2615,9 +2615,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltread_dataset_dl4_c @@ -2652,7 +2652,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_double5 !DEC$endif ! @@ -2660,9 +2660,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -2676,9 +2676,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -2713,7 +2713,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_double6 !DEC$endif ! @@ -2721,9 +2721,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -2737,9 +2737,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -2774,7 +2774,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_f_double7 !DEC$endif ! @@ -2782,9 +2782,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: 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 @@ -2798,9 +2798,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -2839,7 +2839,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_1 !DEC$endif ! @@ -2847,10 +2847,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) @@ -2862,10 +2862,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nint1_c END INTERFACE @@ -2903,7 +2903,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_2 !DEC$endif ! @@ -2911,9 +2911,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -2928,10 +2928,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nint2_c @@ -2971,7 +2971,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_3 !DEC$endif ! @@ -2979,9 +2979,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -2996,10 +2996,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nint3_c @@ -3034,7 +3034,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_4 !DEC$endif ! @@ -3042,9 +3042,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -3059,10 +3059,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nint4_c @@ -3097,7 +3097,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_5 !DEC$endif ! @@ -3105,9 +3105,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -3122,10 +3122,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nint5_c @@ -3160,7 +3160,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_6 !DEC$endif ! @@ -3168,9 +3168,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -3185,10 +3185,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -3223,7 +3223,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_int_f_7 !DEC$endif ! @@ -3231,9 +3231,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -3248,10 +3248,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -3290,7 +3290,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_1 !DEC$endif ! @@ -3298,10 +3298,10 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) @@ -3313,10 +3313,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nfl1_c END INTERFACE @@ -3354,7 +3354,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_2 !DEC$endif ! @@ -3362,9 +3362,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -3378,10 +3378,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nfl2_c @@ -3420,7 +3420,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_3 !DEC$endif ! @@ -3428,9 +3428,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -3444,10 +3444,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nfl3_c @@ -3482,7 +3482,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_4 !DEC$endif ! @@ -3490,9 +3490,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -3506,10 +3506,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nfl4_c @@ -3544,7 +3544,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_5 !DEC$endif ! @@ -3552,9 +3552,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -3568,10 +3568,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_nfl5_c @@ -3606,7 +3606,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_6 !DEC$endif ! @@ -3614,9 +3614,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -3630,10 +3630,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -3668,7 +3668,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_float_f_7 !DEC$endif ! @@ -3676,9 +3676,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -3692,10 +3692,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -3735,7 +3735,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_1 !DEC$endif ! @@ -3743,9 +3743,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1)) :: buf ! data buffer @@ -3759,10 +3759,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_ndl1_c @@ -3802,7 +3802,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_2 !DEC$endif ! @@ -3810,9 +3810,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -3826,10 +3826,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_ndl2_c @@ -3868,7 +3868,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_3 !DEC$endif ! @@ -3876,9 +3876,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -3892,10 +3892,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_ndl3_c @@ -3930,7 +3930,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_4 !DEC$endif ! @@ -3938,9 +3938,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -3954,10 +3954,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltmake_dataset_ndl4_c @@ -3992,7 +3992,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5 !DEC$endif ! @@ -4000,9 +4000,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -4016,10 +4016,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -4054,7 +4054,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5 !DEC$endif ! @@ -4062,9 +4062,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -4078,10 +4078,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -4116,7 +4116,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5 !DEC$endif ! @@ -4124,9 +4124,9 @@ CONTAINS 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: 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 @@ -4140,10 +4140,10 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -4181,16 +4181,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1)) :: buf ! data buffer @@ -4204,9 +4204,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(inout), & DIMENSION(dims(1)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nint1_c @@ -4245,16 +4245,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -4268,9 +4268,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nint2_c @@ -4308,16 +4308,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -4331,9 +4331,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nint3_c @@ -4367,16 +4367,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -4390,9 +4390,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nint4_c @@ -4426,16 +4426,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -4449,9 +4449,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nint5_c @@ -4485,16 +4485,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -4508,9 +4508,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -4544,16 +4544,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -4567,9 +4567,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -4608,16 +4608,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1)) :: buf ! data buffer @@ -4631,9 +4631,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(inout), & DIMENSION(dims(1)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nfl1_c @@ -4672,16 +4672,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -4695,9 +4695,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nfl2_c @@ -4735,16 +4735,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -4758,9 +4758,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nfl3_c @@ -4794,16 +4794,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -4817,9 +4817,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nfl4_c @@ -4853,16 +4853,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -4876,9 +4876,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer END FUNCTION h5ltread_dataset_nfl5_c @@ -4912,16 +4912,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -4935,9 +4935,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -4971,16 +4971,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length REAL, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer @@ -4994,9 +4994,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -5034,16 +5034,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1)) :: buf ! data buffer @@ -5057,9 +5057,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1)) :: buf ! data buffer END FUNCTION h5ltread_dataset_ndl1_c @@ -5098,16 +5098,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer @@ -5121,9 +5121,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2)) :: buf ! data buffer END FUNCTION h5ltread_dataset_ndl2_c @@ -5161,16 +5161,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer @@ -5184,9 +5184,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer END FUNCTION h5ltread_dataset_ndl3_c @@ -5220,16 +5220,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer @@ -5243,9 +5243,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer END FUNCTION h5ltread_dataset_ndl4_c @@ -5279,16 +5279,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer @@ -5302,9 +5302,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -5338,16 +5338,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length DOUBLE PRECISION, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer @@ -5361,9 +5361,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -5397,16 +5397,16 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: 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 @@ -5420,9 +5420,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length 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(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer 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 @@ -5457,20 +5457,18 @@ CONTAINS errcode ) IMPLICIT NONE - ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: buflen ! buffer length INTERFACE INTEGER FUNCTION h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buflen,buf) @@ -5481,8 +5479,8 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: buflen ! length 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 @@ -5520,7 +5518,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltread_dataset_string_f !DEC$endif ! @@ -5529,7 +5527,7 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf) @@ -5540,7 +5538,7 @@ CONTAINS !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(size_t) :: namelen ! length 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 @@ -5587,7 +5585,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltset_attribute_int_f !DEC$endif ! @@ -5598,8 +5596,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) @@ -5611,8 +5609,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -5654,7 +5652,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltset_attribute_float_f !DEC$endif ! @@ -5665,8 +5663,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) @@ -5678,8 +5676,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -5721,7 +5719,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltset_attribute_double_f !DEC$endif ! @@ -5732,8 +5730,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) @@ -5745,8 +5743,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -5788,7 +5786,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltset_attribute_string_f !DEC$endif ! @@ -5798,9 +5796,9 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length + INTEGER(size_t) :: buflen ! data buffer length INTERFACE INTEGER FUNCTION h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf) @@ -5812,9 +5810,9 @@ CONTAINS !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 + INTEGER(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length of attr name buffer + INTEGER(size_t) :: 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 @@ -5857,7 +5855,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_attribute_int_f !DEC$endif ! @@ -5867,8 +5865,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) @@ -5880,11 +5878,11 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 + INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer END FUNCTION h5ltget_attribute_int_c END INTERFACE @@ -5922,7 +5920,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_attribute_float_f !DEC$endif ! @@ -5932,8 +5930,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) @@ -5945,8 +5943,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -5986,7 +5984,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_attribute_double_f !DEC$endif ! @@ -5996,8 +5994,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) @@ -6009,8 +6007,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -6050,7 +6048,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_attribute_string_f !DEC$endif ! @@ -6060,8 +6058,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTEGER(size_t) :: buf_size ! buf size INTERFACE @@ -6074,8 +6072,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -6121,7 +6119,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_dataset_ndims_f !DEC$endif ! @@ -6130,7 +6128,7 @@ CONTAINS CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(inout) :: rank ! rank INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank) @@ -6141,7 +6139,7 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(inout) :: rank ! rank END FUNCTION h5ltget_dataset_ndims_c @@ -6178,7 +6176,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltfind_dataset_f !DEC$endif ! @@ -6186,7 +6184,7 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltfind_dataset_c(loc_id,namelen,dset_name) @@ -6197,7 +6195,7 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer CHARACTER(len=*), INTENT(in) :: dset_name ! name of the dataset END FUNCTION h5ltfind_dataset_c END INTERFACE @@ -6236,7 +6234,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_dataset_info_f !DEC$endif ! @@ -6247,7 +6245,7 @@ CONTAINS 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size) @@ -6258,7 +6256,7 @@ CONTAINS !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(size_t) :: namelen ! length 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 @@ -6304,7 +6302,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_attribute_ndims_f !DEC$endif ! @@ -6314,8 +6312,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank) @@ -6327,8 +6325,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -6371,7 +6369,7 @@ CONTAINS ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltget_attribute_info_f !DEC$endif ! @@ -6383,8 +6381,8 @@ CONTAINS 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length INTERFACE INTEGER FUNCTION h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size) @@ -6396,8 +6394,8 @@ CONTAINS !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(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length 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 @@ -6434,7 +6432,7 @@ CONTAINS IMPLICIT NONE ! !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_DLL) + !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5ltpath_valid_f !DEC$endif ! @@ -6445,7 +6443,7 @@ CONTAINS LOGICAL , INTENT(OUT) :: path_valid ! Object status INTEGER , INTENT(OUT) :: errcode ! Error code: 0 on success and -1 on failure - INTEGER :: pathlen + INTEGER(size_t) :: pathlen INTEGER :: check_object_valid_c INTEGER :: status @@ -6459,7 +6457,7 @@ CONTAINS !DEC$ATTRIBUTES reference :: path INTEGER(hid_t), INTENT(in) :: loc_id CHARACTER(len=*), INTENT(in) :: path - INTEGER :: pathlen + INTEGER(size_t) :: pathlen INTEGER :: check_object_valid_c END FUNCTION h5ltpath_valid_c END INTERFACE diff --git a/hl/fortran/src/H5TBfc.c b/hl/fortran/src/H5TBfc.c index 0efc9a8..bf058fd 100644 --- a/hl/fortran/src/H5TBfc.c +++ b/hl/fortran/src/H5TBfc.c @@ -37,10 +37,10 @@ *------------------------------------------------------------------------- */ int_f -nh5tbmake_table_c(int_f *namelen1, +nh5tbmake_table_c(size_t_f *namelen1, _fcd name1, hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *nfields, hsize_t_f *nrecords, @@ -49,8 +49,8 @@ nh5tbmake_table_c(int_f *namelen1, hid_t_f *field_types, hsize_t_f *chunk_size, int_f *compress, - int_f *char_len_field_names, /* field_names lenghts */ - int_f *max_char_size_field_names, /* char len of fields */ + size_t_f *char_len_field_names, /* field_names lenghts */ + size_t_f *max_char_size_field_names, /* char len of fields */ char *field_names) /* field_names */ { char *c_name = NULL; @@ -64,7 +64,7 @@ nh5tbmake_table_c(int_f *namelen1, char *tmp = NULL, *tmp_p; int_f ret_value = 0; - num_elem = *nfields; + num_elem = (hsize_t)*nfields; /* * convert FORTRAN name to C name @@ -79,7 +79,7 @@ nh5tbmake_table_c(int_f *namelen1, HGOTO_DONE(FAIL) for(i = 0; i < num_elem; i++) { - c_field_offset[i] = field_offset[i]; + c_field_offset[i] = (size_t)field_offset[i]; c_field_types[i] = field_types[i]; } /* end for */ @@ -100,7 +100,7 @@ nh5tbmake_table_c(int_f *namelen1, 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'; + c_field_names[i][char_len_field_names[i]] = '\0'; tmp_p = tmp_p + *max_char_size_field_names; } /* end for */ @@ -123,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); @@ -152,9 +152,9 @@ done: */ int_f nh5tbwrite_field_name_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -192,9 +192,9 @@ done: int_f nh5tbwrite_field_name_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -207,9 +207,9 @@ nh5tbwrite_field_name_int_c(hid_t_f *loc_id, int_f nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -222,9 +222,9 @@ nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, int_f nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -237,9 +237,9 @@ nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, int_f nh5tbwrite_field_name_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -267,9 +267,9 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id, */ int_f nh5tbread_field_name_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -307,9 +307,9 @@ done: int_f nh5tbread_field_name_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -322,9 +322,9 @@ nh5tbread_field_name_int_c(hid_t_f *loc_id, int_f nh5tbread_field_name_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -337,9 +337,9 @@ nh5tbread_field_name_fl_c(hid_t_f *loc_id, int_f nh5tbread_field_name_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -352,9 +352,9 @@ nh5tbread_field_name_dl_c(hid_t_f *loc_id, int_f nh5tbread_field_name_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hsize_t_f *start, hsize_t_f *nrecords, @@ -382,7 +382,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id, */ int_f nh5tbwrite_field_index_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -418,7 +418,7 @@ done: int_f nh5tbwrite_field_index_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -432,7 +432,7 @@ nh5tbwrite_field_index_int_c(hid_t_f *loc_id, int_f nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -446,7 +446,7 @@ nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, int_f nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -460,7 +460,7 @@ nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, int_f nh5tbwrite_field_index_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -489,7 +489,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id, */ int_f nh5tbread_field_index_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -524,7 +524,7 @@ done: int_f nh5tbread_field_index_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -538,7 +538,7 @@ nh5tbread_field_index_int_c(hid_t_f *loc_id, int_f nh5tbread_field_index_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -552,7 +552,7 @@ nh5tbread_field_index_fl_c(hid_t_f *loc_id, int_f nh5tbread_field_index_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -566,7 +566,7 @@ nh5tbread_field_index_dl_c(hid_t_f *loc_id, int_f nh5tbread_field_index_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, int_f *field_index, hsize_t_f *start, @@ -595,9 +595,9 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id, */ int_f nh5tbinsert_field_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -633,9 +633,9 @@ done: int_f nh5tbinsert_field_int_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -647,9 +647,9 @@ nh5tbinsert_field_int_c(hid_t_f *loc_id, int_f nh5tbinsert_field_fl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -661,9 +661,9 @@ nh5tbinsert_field_fl_c(hid_t_f *loc_id, int_f nh5tbinsert_field_dl_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -675,9 +675,9 @@ nh5tbinsert_field_dl_c(hid_t_f *loc_id, int_f nh5tbinsert_field_st_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name, hid_t_f *field_type, int_f *position, @@ -704,9 +704,9 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id, */ int_f nh5tbdelete_field_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, - int_f *namelen1, + size_t_f *namelen1, _fcd field_name) { char *c_name = NULL; @@ -753,7 +753,7 @@ done: */ int_f nh5tbget_table_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *nfields, hsize_t_f *nrecords) @@ -803,16 +803,16 @@ done: */ int_f nh5tbget_field_info_c(hid_t_f *loc_id, - int_f *namelen, + size_t_f *namelen, _fcd name, hsize_t_f *nfields, size_t_f *field_sizes, size_t_f *field_offsets, size_t_f *type_size, - int_f *namelen2, /* field_names lenghts */ - int_f *lenmax, /* character len max */ + size_t_f *namelen2, /* field_names lenghts */ + size_t_f *lenmax, /* character len max */ _fcd field_names, /* field_names */ - int_f *maxlen_out) + size_t_f *maxlen_out) { char *c_name = NULL; @@ -867,9 +867,9 @@ nh5tbget_field_info_c(hid_t_f *loc_id, 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; - length = MAX(length, strlen((c_field_names[i]))); - tmp_p = tmp_p + c_lenmax; + namelen2[i] = (size_t_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), (size_t)( c_lenmax* c_nfields)); @@ -880,7 +880,7 @@ 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; + *maxlen_out = (size_t_f)length; done: if(c_name) diff --git a/hl/fortran/src/H5TBff.f90 b/hl/fortran/src/H5TBff.f90 index 76bf77c..5846f49 100644 --- a/hl/fortran/src/H5TBff.f90 +++ b/hl/fortran/src/H5TBff.f90 @@ -93,14 +93,12 @@ SUBROUTINE h5tbmake_table_f(table_title,& errcode ) IMPLICIT NONE - ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbmake_table_f !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 @@ -112,12 +110,12 @@ SUBROUTINE h5tbmake_table_f(table_title,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: 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 + INTEGER(size_t), DIMENSION(1:nfields) :: char_len_field_names ! field name lengths + INTEGER(size_t) :: max_char_size_field_names ! character len of field names + INTEGER(hsize_t) :: i ! general purpose integer INTERFACE @@ -155,10 +153,10 @@ SUBROUTINE h5tbmake_table_f(table_title,& 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_field_names ! character len of field names + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER(size_t), DIMENSION(nfields) :: char_len_field_names ! field name's lengths + INTEGER(size_t) :: max_char_size_field_names ! character len of field names END FUNCTION h5tbmake_table_c END INTERFACE @@ -219,7 +217,7 @@ SUBROUTINE h5tbwrite_field_name_f_int(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_name_f_int !DEC$endif ! @@ -232,8 +230,8 @@ SUBROUTINE h5tbwrite_field_name_f_int(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -254,8 +252,8 @@ SUBROUTINE h5tbwrite_field_name_f_int(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbwrite_field_name_int_c END INTERFACE @@ -295,7 +293,7 @@ SUBROUTINE h5tbwrite_field_name_f_float(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_name_f_float !DEC$endif ! @@ -308,8 +306,8 @@ SUBROUTINE h5tbwrite_field_name_f_float(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -330,8 +328,8 @@ SUBROUTINE h5tbwrite_field_name_f_float(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbwrite_field_name_fl_c END INTERFACE @@ -373,7 +371,7 @@ SUBROUTINE h5tbwrite_field_name_f_double(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_name_f_double !DEC$endif ! @@ -386,8 +384,8 @@ SUBROUTINE h5tbwrite_field_name_f_double(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -408,8 +406,8 @@ SUBROUTINE h5tbwrite_field_name_f_double(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbwrite_field_name_dl_c END INTERFACE @@ -449,7 +447,7 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_name_f_string !DEC$endif ! @@ -462,8 +460,8 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -484,8 +482,8 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbwrite_field_name_st_c END INTERFACE @@ -526,7 +524,7 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_name_f_int !DEC$endif ! @@ -539,8 +537,8 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -561,8 +559,8 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbread_field_name_int_c END INTERFACE @@ -602,7 +600,7 @@ SUBROUTINE h5tbread_field_name_f_float(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_name_f_float !DEC$endif ! @@ -615,8 +613,8 @@ SUBROUTINE h5tbread_field_name_f_float(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -637,8 +635,8 @@ SUBROUTINE h5tbread_field_name_f_float(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbread_field_name_fl_c END INTERFACE @@ -678,7 +676,7 @@ SUBROUTINE h5tbread_field_name_f_double(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_name_f_double !DEC$endif ! @@ -691,8 +689,8 @@ SUBROUTINE h5tbread_field_name_f_double(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -713,8 +711,8 @@ SUBROUTINE h5tbread_field_name_f_double(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbread_field_name_dl_c END INTERFACE @@ -754,7 +752,7 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_name_f_string !DEC$endif ! @@ -767,8 +765,8 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTERFACE INTEGER FUNCTION h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& @@ -789,8 +787,8 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length END FUNCTION h5tbread_field_name_st_c END INTERFACE @@ -831,7 +829,7 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_index_f_int !DEC$endif ! @@ -844,7 +842,7 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,& @@ -864,7 +862,7 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbwrite_field_index_int_c END INTERFACE @@ -903,7 +901,7 @@ SUBROUTINE h5tbwrite_field_index_f_float(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_index_f_float !DEC$endif ! @@ -916,7 +914,7 @@ SUBROUTINE h5tbwrite_field_index_f_float(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,& @@ -936,7 +934,7 @@ SUBROUTINE h5tbwrite_field_index_f_float(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbwrite_field_index_fl_c END INTERFACE @@ -977,7 +975,7 @@ SUBROUTINE h5tbwrite_field_index_f_double(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_index_f_double !DEC$endif ! @@ -990,7 +988,7 @@ SUBROUTINE h5tbwrite_field_index_f_double(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,& @@ -1010,7 +1008,7 @@ SUBROUTINE h5tbwrite_field_index_f_double(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbwrite_field_index_dl_c END INTERFACE @@ -1049,7 +1047,7 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_index_f_string !DEC$endif ! @@ -1062,7 +1060,7 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,& @@ -1082,7 +1080,7 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbwrite_field_index_st_c END INTERFACE @@ -1122,7 +1120,7 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport ::h5tbread_field_index_f_int !DEC$endif ! @@ -1135,7 +1133,7 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,& @@ -1155,7 +1153,7 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbread_field_index_int_c END INTERFACE @@ -1194,7 +1192,7 @@ SUBROUTINE h5tbread_field_index_f_float(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_index_f_float !DEC$endif ! @@ -1207,7 +1205,7 @@ SUBROUTINE h5tbread_field_index_f_float(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,& @@ -1227,7 +1225,7 @@ SUBROUTINE h5tbread_field_index_f_float(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbread_field_index_fl_c END INTERFACE @@ -1266,7 +1264,7 @@ SUBROUTINE h5tbread_field_index_f_double(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_index_f_double !DEC$endif ! @@ -1279,7 +1277,7 @@ SUBROUTINE h5tbread_field_index_f_double(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,& @@ -1299,7 +1297,7 @@ SUBROUTINE h5tbread_field_index_f_double(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbread_field_index_dl_c END INTERFACE @@ -1338,7 +1336,7 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbread_field_index_f_string !DEC$endif ! @@ -1351,7 +1349,7 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,& 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(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,& @@ -1371,7 +1369,7 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,& 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(size_t) :: namelen ! name length END FUNCTION h5tbread_field_index_st_c END INTERFACE @@ -1409,7 +1407,7 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbinsert_field_f_int !DEC$endif ! @@ -1420,8 +1418,8 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTEGER :: errcode ! error code @@ -1442,8 +1440,8 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length END FUNCTION h5tbinsert_field_int_c END INTERFACE @@ -1483,7 +1481,7 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbinsert_field_f_float !DEC$endif ! @@ -1494,8 +1492,8 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTEGER :: errcode ! error code @@ -1516,8 +1514,8 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length END FUNCTION h5tbinsert_field_fl_c END INTERFACE @@ -1557,7 +1555,7 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbinsert_field_f_double !DEC$endif ! @@ -1568,8 +1566,8 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTEGER :: errcode ! error code @@ -1590,8 +1588,8 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length END FUNCTION h5tbinsert_field_dl_c END INTERFACE @@ -1632,7 +1630,7 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbinsert_field_f_string !DEC$endif ! @@ -1643,8 +1641,8 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTEGER :: errcode ! error code @@ -1665,8 +1663,8 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length END FUNCTION h5tbinsert_field_st_c END INTERFACE @@ -1704,7 +1702,7 @@ SUBROUTINE h5tbdelete_field_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbdelete_field_f !DEC$endif ! @@ -1712,8 +1710,8 @@ SUBROUTINE h5tbdelete_field_f(loc_id,& 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(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length INTEGER :: errcode ! error code @@ -1730,8 +1728,8 @@ SUBROUTINE h5tbdelete_field_f(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length END FUNCTION h5tbdelete_field_c END INTERFACE @@ -1771,7 +1769,7 @@ SUBROUTINE h5tbget_table_info_f(loc_id,& ! !This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_DLL) +!DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbget_table_info_f !DEC$endif ! @@ -1781,7 +1779,7 @@ SUBROUTINE h5tbget_table_info_f(loc_id,& INTEGER(hsize_t), INTENT(inout):: nfields ! nfields INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords INTEGER :: errcode ! error code - INTEGER :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords) @@ -1795,7 +1793,7 @@ SUBROUTINE h5tbget_table_info_f(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length END FUNCTION h5tbget_table_info_c END INTERFACE @@ -1819,7 +1817,7 @@ END SUBROUTINE h5tbget_table_info_f ! Comments: ! ! Modifications: -! Added optional parameter for returning the maximum character lenght +! Added optional parameter for returning the maximum character length ! in the field name array. March 3, 2011 ! !------------------------------------------------------------------------- @@ -1828,15 +1826,15 @@ SUBROUTINE h5tbget_field_info_f(loc_id,& dset_name,& nfields,& field_names,& - field_sizes,& - field_offsets,& - type_size,& + 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$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbget_field_info_f !DEC$endif ! @@ -1849,11 +1847,11 @@ SUBROUTINE h5tbget_field_info_f(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t), DIMENSION(nfields) :: namelen2 ! name lengths + INTEGER(hsize_t) :: i ! general purpose integer + INTEGER(size_t) :: maxlen + INTEGER(size_t) :: c_maxlen_out INTERFACE INTEGER FUNCTION h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,& @@ -1872,10 +1870,10 @@ SUBROUTINE h5tbget_field_info_f(loc_id,& 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 + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: maxlen ! maxiumum length of input field names + INTEGER(size_t), DIMENSION(1:nfields) :: namelen2 ! name lengths + INTEGER(size_t) :: c_maxlen_out ! maximum character length of a field array element END FUNCTION h5tbget_field_info_c END INTERFACE diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 1472bfe..6f34295 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -108,7 +108,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/fortran/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -425,7 +426,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -457,7 +457,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -476,17 +475,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -549,7 +545,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -564,10 +559,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -681,15 +672,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 # Our main target, the high-level fortran library diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt index 120d6a5..55fb987 100644 --- a/hl/fortran/test/CMakeLists.txt +++ b/hl/fortran/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_FORTRAN_TESTS C CXX Fortran) #----------------------------------------------------------------------------- @@ -9,32 +9,36 @@ INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${ #-- Adding test for hl_f90_tstds add_executable (hl_f90_tstds tstds.f90) TARGET_NAMING (hl_f90_tstds ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tstds " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tstds ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstds ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstds PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstds PROPERTIES FOLDER test/hl/fortran) #-- Adding test for hl_f90_tstlite add_executable (hl_f90_tstlite tstlite.f90) TARGET_NAMING (hl_f90_tstlite ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstlite PROPERTIES FOLDER test/hl/fortran) #-- Adding test for hl_f90_tstimage add_executable (hl_f90_tstimage tstimage.f90) TARGET_NAMING (hl_f90_tstimage ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstimage ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstimage PROPERTIES FOLDER test/hl/fortran) #-- Adding test for hl_f90_tsttable add_executable (hl_f90_tsttable tsttable.f90) TARGET_NAMING (hl_f90_tsttable ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tsttable PROPERTIES FOLDER test/hl/fortran) diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in index ff2ecdc..6725d26 100644 --- a/hl/fortran/test/Makefile.in +++ b/hl/fortran/test/Makefile.in @@ -107,7 +107,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = hl/fortran/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -416,7 +417,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -448,7 +448,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -467,17 +466,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -540,7 +536,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -555,10 +550,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -672,11 +663,11 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog dsetf[1-5].h5 f1img.h5 \ - f1tab.h5 tstds.h5 +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 dsetf[1-5].h5 \ + f1img.h5 f1tab.h5 tstds.h5 # Our main target, the test programs TEST_PROG = tstds tstlite tstimage tsttable diff --git a/hl/fortran/test/tstds.f90 b/hl/fortran/test/tstds.f90 index c73e1c4..cbf6c38 100644 --- a/hl/fortran/test/tstds.f90 +++ b/hl/fortran/test/tstds.f90 @@ -91,7 +91,7 @@ SUBROUTINE test_testds(err) !------------------------------------------------------------------------- ! attach the DS_1_NAME dimension scale to DSET_NAME at dimension 1 !------------------------------------------------------------------------- - + CALL test_begin(' Test Attaching Dimension Scale ') ! get the dataset id for DSET_NAME diff --git a/hl/fortran/test/tstimage.f90 b/hl/fortran/test/tstimage.f90 index 3794bbf..0bff6b2 100644 --- a/hl/fortran/test/tstimage.f90 +++ b/hl/fortran/test/tstimage.f90 @@ -111,13 +111,11 @@ 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) - !------------------------------------------------------------------------- ! indexed image !------------------------------------------------------------------------- diff --git a/hl/fortran/test/tstlite.f90 b/hl/fortran/test/tstlite.f90 index 0b5a138..d035b89 100644 --- a/hl/fortran/test/tstlite.f90 +++ b/hl/fortran/test/tstlite.f90 @@ -63,7 +63,6 @@ INTEGER :: i ! general purpose integer CALL test_begin(' Make/Read datasets (1D) ') - ! ! Initialize the data array. ! @@ -186,8 +185,8 @@ USE HDF5 ! module of HDF5 library IMPLICIT NONE -INTEGER, PARAMETER :: DIM1 = 4; ! columns -INTEGER, PARAMETER :: DIM2 = 6; ! rows +INTEGER(HSIZE_T), PARAMETER :: DIM1 = 4; ! columns +INTEGER(HSIZE_T), 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 @@ -205,7 +204,7 @@ 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(HSIZE_T) :: i, j, n ! general purpose integers CALL test_begin(' Make/Read datasets (2D) ') @@ -215,15 +214,15 @@ CALL test_begin(' Make/Read datasets (2D) ') ! n=1 DO i = 1, DIM1*DIM2 - buf(i) = n; + buf(i) = INT(n) n = n + 1 END DO 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; + buf2(i,j) = INT((i-1)*dims(2) + j) + buf3(i,j) = INT((i-1)*dims(2) + j) + buf4(i,j) = INT((i-1)*dims(2) + j) END DO END DO @@ -373,9 +372,9 @@ USE HDF5 ! module of HDF5 library IMPLICIT NONE -INTEGER, PARAMETER :: DIM1 = 6; ! columns -INTEGER, PARAMETER :: DIM2 = 4; ! rows -INTEGER, PARAMETER :: DIM3 = 2; ! layers +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 @@ -394,7 +393,7 @@ 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(HSIZE_T) :: i, j, k, n ! general purpose integers INTEGER :: type_class INTEGER(SIZE_T) :: type_size @@ -406,20 +405,20 @@ CALL test_begin(' Make/Read datasets (3D) ') ! n=1 DO i = 1, DIM1*DIM2*DIM3 - buf(i) = n; + buf(i) = INT(n) n = n + 1 END DO n = 1 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 + DO j = 1, dims(2) + DO k = 1, dims(3) + buf2(i,j,k) = INT(n) + buf3(i,j,k) = INT(n) + buf4(i,j,k) = INT(n) + n = n + 1 + END DO + END DO END DO ! @@ -625,7 +624,7 @@ SUBROUTINE test_datasetND(rank) 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(HSIZE_T) :: i, j, k, l, m, n, o, nn ! general purpose integers INTEGER :: type_class INTEGER(SIZE_T) :: type_size CHARACTER(LEN=1) :: ichr1 @@ -651,9 +650,9 @@ SUBROUTINE test_datasetND(rank) 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 + ibuf_4(i,j,k,l) = INT(nn) + rbuf_4(i,j,k,l) = INT(nn) + dbuf_4(i,j,k,l) = INT(nn) nn = nn + 1 END DO END DO @@ -677,9 +676,9 @@ SUBROUTINE test_datasetND(rank) 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 + ibuf_5(i,j,k,l,m) = INT(nn) + rbuf_5(i,j,k,l,m) = INT(nn) + dbuf_5(i,j,k,l,m) = INT(nn) nn = nn + 1 END DO END DO @@ -705,9 +704,9 @@ SUBROUTINE test_datasetND(rank) 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 + ibuf_6(i,j,k,l,m,n) = INT(nn) + rbuf_6(i,j,k,l,m,n) = INT(nn) + dbuf_6(i,j,k,l,m,n) = INT(nn) nn = nn + 1 END DO END DO @@ -735,9 +734,9 @@ SUBROUTINE test_datasetND(rank) 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 + ibuf_7(i,j,k,l,m,n,o) = INT(nn) + rbuf_7(i,j,k,l,m,n,o) = INT(nn) + dbuf_7(i,j,k,l,m,n,o) = INT(nn) nn = nn + 1 END DO END DO @@ -1045,7 +1044,7 @@ SUBROUTINE test_datasets() 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 + 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 @@ -1086,10 +1085,10 @@ SUBROUTINE test_datasets() ! n = 1 DO i = 1, DIM1 - buf2(i) = n; - buf3(i) = n; - buf4(i) = n; - n = n + 1; + buf2(i) = n + buf3(i) = n + buf4(i) = n + n = n + 1 END DO !------------------------------------------------------------------------- @@ -1344,8 +1343,8 @@ SUBROUTINE test_attributes() CHARACTER(len=9), PARAMETER :: filename = "dsetf5.h5"! File name CHARACTER(len=9), PARAMETER :: filename1 ="tattr.h5" ! C written attribute file INTEGER(HID_T) :: file_id ! File identifier - INTEGER(HID_T) :: file_id1 - INTEGER, PARAMETER :: DIM1 = 10; ! Dimension of array +! INTEGER(HID_T) :: file_id1 + 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 @@ -1355,8 +1354,8 @@ SUBROUTINE test_attributes() CHARACTER(LEN=16), PARAMETER :: buf_c = "string attribute" CHARACTER(LEN=8) :: bufr1 ! Data buffer CHARACTER(LEN=10) :: bufr1_lg ! Data buffer - CHARACTER(LEN=16) :: bufr_c ! Data buffer - CHARACTER(LEN=18) :: bufr_c_lg ! Data buffer +! CHARACTER(LEN=16) :: bufr_c ! Data buffer +! CHARACTER(LEN=18) :: bufr_c_lg ! Data buffer INTEGER, DIMENSION(DIM1) :: buf2 ! Data buffer INTEGER, DIMENSION(DIM1) :: bufr2 ! Data buffer REAL, DIMENSION(DIM1) :: buf3 ! Data buffer @@ -1395,10 +1394,10 @@ SUBROUTINE test_attributes() size = DIM1 n = 1 DO i = 1, DIM1 - buf2(i) = n; - buf3(i) = n; - buf4(i) = n; - n = n + 1; + buf2(i) = n + buf3(i) = n + buf4(i) = n + n = n + 1 END DO @@ -1443,7 +1442,6 @@ SUBROUTINE test_attributes() ! write attribute. ! CALL h5ltset_attribute_float_f(file_id,dsetname1,attrname3,buf3,size,errcode) - ! ! read attribute. ! @@ -1460,7 +1458,6 @@ SUBROUTINE test_attributes() ENDIF END DO - CALL passed() !------------------------------------------------------------------------- @@ -1468,8 +1465,7 @@ SUBROUTINE test_attributes() !------------------------------------------------------------------------- CALL test_begin(' Set/Get attributes double ') - - + ! ! write attribute. ! diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt index 9c9e3a9..3c24e40 100644 --- a/hl/src/CMakeLists.txt +++ b/hl/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_SRC) #----------------------------------------------------------------------------- @@ -34,7 +34,7 @@ set (HL_HEADERS ) add_library (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} ${HL_SRCS} ${HL_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET}) H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} ${LIB_TYPE}) set_target_properties (${HDF5_HL_LIB_TARGET} PROPERTIES diff --git a/hl/src/H5DS.c b/hl/src/H5DS.c index f4b754a..de6e66c 100644 --- a/hl/src/H5DS.c +++ b/hl/src/H5DS.c @@ -144,7 +144,8 @@ herr_t H5DSattach_scale(hid_t did, hid_t dsid_j; /* DS dataset ID in DIMENSION_LIST */ H5O_info_t oi1, oi2; H5I_type_t it1, it2; - int i, len; + int i; + size_t len; int found_ds=0; htri_t is_scale; @@ -242,7 +243,7 @@ herr_t H5DSattach_scale(hid_t did, if (has_dimlist == 0) { - dims[0] = rank; + dims[0] = (hsize_t)rank; /* space for the attribute */ if((sid = H5Screate_simple(1, dims, NULL)) < 0) @@ -477,7 +478,7 @@ herr_t H5DSattach_scale(hid_t did, dsbuf[nelmts - 1] = dsl; /* create a new data space for the new references array */ - dims[0] = nelmts; + dims[0] = (hsize_t)nelmts; if((sid = H5Screate_simple(1, dims, NULL)) < 0) goto out; @@ -798,7 +799,7 @@ herr_t H5DSdetach_scale(hid_t did, for(ii=0; ii<nelmts; ii++) { /* First check if we have the same dimension index */ - if((int)idx == dsbuf[ii].dim_idx) { + if(idx == dsbuf[ii].dim_idx) { /* get the reference to the dataset */ ref = dsbuf[ii].ref; @@ -853,7 +854,7 @@ herr_t H5DSdetach_scale(hid_t did, if(nelmts) { /* create a new data space for the new references array */ - dims[0] = nelmts; + dims[0] = (hsize_t)nelmts; if((sid = H5Screate_simple(1, dims, NULL)) < 0) goto out; @@ -1153,7 +1154,7 @@ htri_t H5DSis_attached(hid_t did, goto out; /* same object */ - if(oi3.fileno == oi4.fileno && oi3.addr == oi4.addr && (int)idx==dsbuf[i].dim_idx) + if(oi3.fileno == oi4.fileno && oi3.addr == oi4.addr && idx==dsbuf[i].dim_idx) found_dset=1; /* close the dereferenced dataset */ @@ -1429,10 +1430,12 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) hid_t aid = -1; /* attribute ID */ int rank; /* rank of dataset */ hsize_t dims[1]; /* dimensions of dataset */ - const char **buf = NULL; /* buffer to store in the attribute */ H5I_type_t it; /* ID type */ unsigned int i; - + union { /* union is needed to eliminate compiler warnings about */ + char ** buf; /* discarding the 'const' qualifier in the free */ + char const ** const_buf; /* buf calls */ + } u; /*------------------------------------------------------------------------- * parameter checking *------------------------------------------------------------------------- @@ -1478,7 +1481,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) if (has_labels == 0) { - dims[0] = rank; + dims[0] = (hsize_t)rank; /* space for the attribute */ if ((sid = H5Screate_simple(1, dims, NULL)) < 0) @@ -1495,19 +1498,19 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; /* allocate and initialize */ - buf = (const char **) HDmalloc((size_t) rank * sizeof(char *)); + u.const_buf = (char const **) HDmalloc((size_t) rank * sizeof(char *)); - if (buf == NULL) + if (u.const_buf == NULL) goto out; for (i = 0; i < (unsigned int) rank; i++) - buf[i] = NULL; + u.const_buf[i] = NULL; /* store the label information in the required index */ - buf[idx] = label; + u.const_buf[idx] = label; /* write the attribute with the label */ - if (H5Awrite(aid, tid, buf) < 0) + if (H5Awrite(aid, tid, u.const_buf) < 0) goto out; /* close */ @@ -1517,10 +1520,10 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; if (H5Aclose(aid) < 0) goto out; - if (buf) + if (u.const_buf) { - HDfree(buf); - buf = NULL; + HDfree(u.const_buf); + u.const_buf = NULL; } } @@ -1531,6 +1534,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) else { + if ((aid = H5Aopen(did, DIMENSION_LABELS, H5P_DEFAULT)) < 0) goto out; @@ -1538,34 +1542,34 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; /* allocate and initialize */ - buf = (const char **) HDmalloc((size_t) rank * sizeof(char *)); - - if (buf == NULL) + u.buf = (char **) HDmalloc((size_t) rank * sizeof(char *)); + + if (u.buf == NULL) goto out; /* read */ - if (H5Aread(aid, tid, (void *) buf) < 0) + if (H5Aread(aid, tid, (void *)u.buf) < 0) goto out; /* free the ptr that will be replaced by label */ - if (buf[idx]) - HDfree(buf[idx]); + if (u.buf[idx]) + HDfree(u.buf[idx]); /* store the label information in the required index */ - buf[idx] = label; + u.const_buf[idx] = label; /* write the attribute with the new references */ - if (H5Awrite(aid, tid, buf) < 0) + if (H5Awrite(aid, tid, u.buf) < 0) goto out; /* label was brought in, so don't free */ - buf[idx] = NULL; + u.buf[idx] = NULL; /* free all the ptr's from the H5Aread() */ for (i = 0; i < (unsigned int) rank; i++) { - if (buf[i]) - HDfree(buf[i]); + if (u.buf[i]) + HDfree(u.buf[i]); } /* close */ @@ -1573,28 +1577,29 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; if (H5Aclose(aid) < 0) goto out; - if (buf) + if (u.buf) { - HDfree(buf); - buf = NULL; + HDfree(u.buf); + u.buf = NULL; } } return SUCCEED; /* error zone */ + out: - if (buf) + if (u.buf) { - if (buf[idx]) /* check if we errored during H5Awrite */ - buf[idx] = NULL; /* don't free label */ + if (u.buf[idx]) /* check if we errored during H5Awrite */ + u.buf[idx] = NULL; /* don't free label */ /* free all the ptr's from the H5Aread() */ for (i = 0; i < (unsigned int) rank; i++) { - if (buf[i]) - HDfree(buf[i]); + if (u.buf[i]) + HDfree(u.buf[i]); } - HDfree(buf); + HDfree(u.buf); } H5E_BEGIN_TRY { diff --git a/hl/src/H5DSprivate.h b/hl/src/H5DSprivate.h index 61c0a1c..39c3e74 100644 --- a/hl/src/H5DSprivate.h +++ b/hl/src/H5DSprivate.h @@ -28,7 +28,7 @@ /* attribute type of a DS dataset */ typedef struct ds_list_t { hobj_ref_t ref; /* object reference */ - int dim_idx; /* dimension index of the dataset */ + unsigned int dim_idx; /* dimension index of the dataset */ } ds_list_t; diff --git a/hl/src/H5IM.c b/hl/src/H5IM.c index aeda6ab..6fa548d 100644 --- a/hl/src/H5IM.c +++ b/hl/src/H5IM.c @@ -628,9 +628,9 @@ herr_t H5IMlink_palette( hid_t loc_id, n_refs = H5Sget_simple_extent_npoints(asid); - dim_ref = n_refs + 1; + dim_ref = (hsize_t)n_refs + 1; - refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref ); + refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (size_t)dim_ref ); if ( H5Aread( aid, atid, refbuf ) < 0) goto out; @@ -949,9 +949,9 @@ herr_t H5IMget_palette_info( hid_t loc_id, n_refs = H5Sget_simple_extent_npoints(asid); - dim_ref = n_refs; + dim_ref = (hsize_t)n_refs; - refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref ); + refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (size_t)dim_ref ); if ( H5Aread( aid, atid, refbuf ) < 0) goto out; @@ -1067,9 +1067,9 @@ herr_t H5IMget_palette( hid_t loc_id, n_refs = H5Sget_simple_extent_npoints(asid); - dim_ref = n_refs; + dim_ref = (hsize_t)n_refs; - refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref ); + refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (size_t)dim_ref ); if ( H5Aread( aid, atid, refbuf ) < 0) goto out; diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c index ed725a3..8541cfe 100644 --- a/hl/src/H5LT.c +++ b/hl/src/H5LT.c @@ -1981,7 +1981,8 @@ find_attr(hid_t loc_id, const char *name, const H5A_info_t *ainfo, * cause the iterator to immediately return that positive value, * indicating short-circuit success */ - if(HDstrncmp(name, (char *)op_data, HDstrlen((char *)op_data)) == 0) + + if(HDstrncmp(name, (char *)op_data, MAX(HDstrlen((char *)op_data),HDstrlen(name))) == 0) ret = H5_ITER_STOP; return ret; @@ -2397,7 +2398,7 @@ print_enum(hid_t type, char* str, size_t *str_len, hbool_t no_ubuf, size_t indt) for (i = 0; i < nmembs; i++) { if((name[i] = H5Tget_member_name(type, (unsigned)i))==NULL) goto out; - if(H5Tget_member_value(type, (unsigned)i, value + i * super_size) < 0) + if(H5Tget_member_value(type, (unsigned)i, value + (size_t)i * super_size) < 0) goto out; } @@ -2425,7 +2426,7 @@ print_enum(hid_t type, char* str, size_t *str_len, hbool_t no_ubuf, size_t indt) /*On SGI Altix(cobalt), wrong values were printed out with "value+i*dst_size" *strangely, unless use another pointer "copy".*/ - copy = value+i*dst_size; + copy = value + (size_t)i * dst_size; if (H5T_SGN_NONE == H5Tget_sign(native)) HDsnprintf(tmp_str, TMP_LEN, "%u", *((unsigned int*)((void *)copy))); else @@ -2556,6 +2557,7 @@ char* H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *sl switch (tcls) { case H5T_INTEGER: + case H5T_BITFIELD: if (H5Tequal(dtype, H5T_STD_I8BE)) { HDsnprintf(dt_str, *slen, "H5T_STD_I8BE"); } else if (H5Tequal(dtype, H5T_STD_I8LE)) { @@ -3052,9 +3054,19 @@ next: case H5T_TIME: HDsnprintf(dt_str, *slen, "H5T_TIME: not yet implemented"); break; - case H5T_BITFIELD: - HDsnprintf(dt_str, *slen, "H5T_BITFIELD: not yet implemented"); + case H5T_NO_CLASS: + HDsnprintf(dt_str, *slen, "H5T_NO_CLASS"); break; + case H5T_REFERENCE: + if (H5Tequal(dtype, H5T_STD_REF_DSETREG) == TRUE) { + HDsnprintf(dt_str, *slen, " H5T_REFERENCE { H5T_STD_REF_DSETREG }"); + } + else { + HDsnprintf(dt_str, *slen, " H5T_REFERENCE { H5T_STD_REF_OBJECT }"); + } + break; + case H5T_NCLASSES: + break; default: HDsnprintf(dt_str, *slen, "unknown data type"); } diff --git a/hl/src/H5LTanalyze.c b/hl/src/H5LTanalyze.c index d9ffb36..54e443d 100644 --- a/hl/src/H5LTanalyze.c +++ b/hl/src/H5LTanalyze.c @@ -1,3 +1,22 @@ +#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2 +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wimplicit-function-declaration" +#pragma GCC diagnostic ignored "-Wlarger-than=" +#pragma GCC diagnostic ignored "-Wmissing-prototypes" +#pragma GCC diagnostic ignored "-Wnested-externs" +#pragma GCC diagnostic ignored "-Wold-style-definition" +#pragma GCC diagnostic ignored "-Wsign-compare" +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wstrict-prototypes" +#pragma GCC diagnostic ignored "-Wswitch-default" +#pragma GCC diagnostic ignored "-Wunused-function" +#pragma GCC diagnostic ignored "-Wunused-macros" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#elif defined __SUNPRO_CC +#pragma disable_warn +#elif defined _MSC_VER +#pragma warning(push, 1) +#endif #line 2 "H5LTanalyze.c" #line 4 "H5LTanalyze.c" diff --git a/hl/src/H5LTparse.c b/hl/src/H5LTparse.c index aa12185..6ca95c54 100644 --- a/hl/src/H5LTparse.c +++ b/hl/src/H5LTparse.c @@ -1,3 +1,22 @@ +#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2 +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wimplicit-function-declaration" +#pragma GCC diagnostic ignored "-Wlarger-than=" +#pragma GCC diagnostic ignored "-Wmissing-prototypes" +#pragma GCC diagnostic ignored "-Wnested-externs" +#pragma GCC diagnostic ignored "-Wold-style-definition" +#pragma GCC diagnostic ignored "-Wsign-compare" +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wstrict-prototypes" +#pragma GCC diagnostic ignored "-Wswitch-default" +#pragma GCC diagnostic ignored "-Wunused-function" +#pragma GCC diagnostic ignored "-Wunused-macros" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#elif defined __SUNPRO_CC +#pragma disable_warn +#elif defined _MSC_VER +#pragma warning(push, 1) +#endif /* A Bison parser, made by GNU Bison 2.7. */ /* Bison implementation for Yacc-like parsers in C diff --git a/hl/src/H5PT.c b/hl/src/H5PT.c index 7a0bc20..6ed1ac0 100644 --- a/hl/src/H5PT.c +++ b/hl/src/H5PT.c @@ -130,6 +130,9 @@ hid_t H5PTcreate_fl ( hid_t loc_id, if((table->type_id = H5Tcopy(dtype_id)) < 0) goto out; + if((table->type_id = H5Tget_native_type(table->type_id, H5T_DIR_DEFAULT)) < 0) + goto out; + H5PT_create_index(table); table->size = 0; diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 450c5d2..8685b9e 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -406,7 +407,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -438,7 +438,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -457,17 +456,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -530,7 +526,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -545,10 +540,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -662,15 +653,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 # This library is our main target. diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt index 545210b..47383ce 100644 --- a/hl/test/CMakeLists.txt +++ b/hl/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_TEST) # -------------------------------------------------------------------- # Notes: When creating unit test executables they should be prefixed @@ -23,7 +23,7 @@ INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR}) MACRO (HL_ADD_EXE hl_name) add_executable (hl_${hl_name} ${hl_name}.c) TARGET_NAMING (hl_${hl_name} ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_${hl_name} " " " ") + TARGET_C_PROPERTIES (hl_${hl_name} ${LIB_TYPE} " " " ") target_link_libraries (hl_${hl_name} ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} @@ -45,8 +45,8 @@ HL_ADD_EXE (test_table) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (hl_gen_test_ds gen_test_ds.c) - TARGET_NAMING (hl_gen_test_ds ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_gen_test_ds " " " ") + TARGET_NAMING (hl_gen_test_ds STATIC) + TARGET_C_PROPERTIES (hl_gen_test_ds STATIC " " " ") target_link_libraries (hl_gen_test_ds ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in index e329566..6fc324b 100644 --- a/hl/test/Makefile.in +++ b/hl/test/Makefile.in @@ -107,7 +107,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = hl/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -443,7 +444,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -475,7 +475,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -494,17 +493,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -567,7 +563,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -582,10 +577,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -699,14 +690,14 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. These files are the ones created by running `make test'. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog combine_tables[1-2].h5 \ - test_ds[1-9].h5 test_ds10.h5 test_image[1-3].h5 \ - file_img[1-2].h5 test_lite[1-4].h5 test_table.h5 \ - test_packet_table.h5 test_packet_compress.h5 test_detach.h5 \ - test_dectris.h5 +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 \ + combine_tables[1-2].h5 test_ds[1-9].h5 test_ds10.h5 \ + test_image[1-3].h5 file_img[1-2].h5 test_lite[1-4].h5 \ + test_table.h5 test_packet_table.h5 test_packet_compress.h5 \ + test_detach.h5 test_dectris.h5 # The tests depend on the hdf5, hdf5 test, and hdf5_hl libraries LDADD = $(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5) diff --git a/hl/test/h5hltest.h b/hl/test/h5hltest.h index 809c4ec..e8292d2 100644 --- a/hl/test/h5hltest.h +++ b/hl/test/h5hltest.h @@ -33,7 +33,7 @@ #define TESTING2(WHAT) {printf("%-70s", "Testing " WHAT); fflush(stdout);} #define TESTING3(WHAT) {printf("%-70s", "" WHAT); fflush(stdout);} -/* Implrements verbose 'assert' with 'goto error' exit */ +/* Implements verbose 'assert' with 'goto error' exit */ #define VERIFY(condition, string) do { if (!(condition)) FAIL_PUTS_ERROR(string) } while(0) #endif /* _H5HLTEST_H */ diff --git a/hl/test/test_ds.c b/hl/test/test_ds.c index 77d2b71..7b6fb82 100644 --- a/hl/test/test_ds.c +++ b/hl/test/test_ds.c @@ -3126,7 +3126,7 @@ static int test_simple(void) if(H5DSget_scale_name(dsid, name_out, (size_t)name_len+1) < 0) goto out; - if(HDstrncmp("Latitude set 0",name_out, name_len)!=0) + if(HDstrncmp("Latitude set 0",name_out, (size_t)name_len)!=0) goto out; if(name_out) { HDfree(name_out); diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c index bddd162..95ce535 100644 --- a/hl/test/test_dset_opt.c +++ b/hl/test/test_dset_opt.c @@ -41,7 +41,7 @@ #define CHUNK_NX 4 #define CHUNK_NY 4 -#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) +#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001F)+12) /* Temporary filter IDs used for testing */ #define H5Z_FILTER_BOGUS1 305 @@ -501,20 +501,20 @@ filter_bogus1(unsigned int flags, size_t UNUSED cd_nelmts, size_t *buf_size, void **buf) { int *int_ptr=(int *)*buf; /* Pointer to the data values */ - ssize_t buf_left=*buf_size; /* Amount of data buffer left to process */ + ssize_t buf_left=(ssize_t)*buf_size; /* Amount of data buffer left to process */ if(flags & H5Z_FLAG_REVERSE) { /* read */ /* Substract the "add on" value to all the data values */ while(buf_left>0) { *int_ptr++ -= (int)ADD_ON; - buf_left -= sizeof(int); + buf_left -= (ssize_t)sizeof(int); } /* end while */ } /* end if */ else { /* write */ /* Add the "add on" value to all the data values */ while(buf_left>0) { *int_ptr++ += (int)ADD_ON; - buf_left -= sizeof(int); + buf_left -= (ssize_t)sizeof(int); } /* end while */ } /* end else */ @@ -538,20 +538,20 @@ filter_bogus2(unsigned int flags, size_t UNUSED cd_nelmts, size_t *buf_size, void **buf) { int *int_ptr=(int *)*buf; /* Pointer to the data values */ - ssize_t buf_left=*buf_size; /* Amount of data buffer left to process */ + ssize_t buf_left=(ssize_t)*buf_size; /* Amount of data buffer left to process */ if(flags & H5Z_FLAG_REVERSE) { /* read */ /* Substract the "add on" value to all the data values */ while(buf_left>0) { *int_ptr++ /= (int)FACTOR; - buf_left -= sizeof(int); + buf_left -= (ssize_t)sizeof(int); } /* end while */ } /* end if */ else { /* write */ /* Add the "add on" value to all the data values */ while(buf_left>0) { *int_ptr++ *= (int)FACTOR; - buf_left -= sizeof(int); + buf_left -= (ssize_t)sizeof(int); } /* end while */ } /* end else */ diff --git a/hl/test/test_lite.c b/hl/test/test_lite.c index d61d6cf..2337610 100644 --- a/hl/test/test_lite.c +++ b/hl/test/test_lite.c @@ -36,10 +36,12 @@ #define DIM 6 +#define ATTR_NAME_SUB "att" #define ATTR1_NAME "attr string" #define ATTR2_NAME "attr char" #define ATTR3_NAME "attr short" #define ATTR4_NAME "attr int" +#define ATTR_NAME_EXT "att int ext" #define ATTR5_NAME "attr long" #define ATTR6_NAME "attr uchar" #define ATTR7_NAME "attr ushort" @@ -298,7 +300,7 @@ static int test_dsets( void ) for (i = 0; i < DIM; i++) { - if ( data_float_in[i] != data_float_out[i] ) { + if(!FLT_ABS_EQUAL(data_float_in[i],data_float_out[i])) { goto out; } } @@ -309,7 +311,7 @@ static int test_dsets( void ) for (i = 0; i < DIM; i++) { - if ( data_float_in[i] != data_float_out[i] ) { + if(!FLT_ABS_EQUAL(data_float_in[i],data_float_out[i])) { goto out; } } @@ -334,7 +336,7 @@ static int test_dsets( void ) for (i = 0; i < DIM; i++) { - if ( data_double_in[i] != data_double_out[i] ) { + if(!DBL_ABS_EQUAL(data_double_in[i],data_double_out[i])) { goto out; } } @@ -345,7 +347,7 @@ static int test_dsets( void ) for (i = 0; i < DIM; i++) { - if ( data_double_in[i] != data_double_out[i] ) { + if(!DBL_ABS_EQUAL(data_double_in[i],data_double_out[i])) { goto out; } } @@ -646,6 +648,14 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) if ( H5LTset_attribute_int( loc_id, obj_name, ATTR4_NAME, attr_int_in, (size_t)5 ) < 0 ) return -1; + /* Set the attribute which is a substring of an existing attribute */ + if ( H5LTset_attribute_int( loc_id, obj_name, ATTR_NAME_SUB, attr_int_in, (size_t)5 ) < 0 ) + return -1; + + /* Set the attribute which is an extension of an existing attribute */ + if ( H5LTset_attribute_int( loc_id, obj_name, ATTR_NAME_EXT, attr_int_in, (size_t)5 ) < 0 ) + return -1; + PASSED(); /*------------------------------------------------------------------------- @@ -666,6 +676,26 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) } } + if ( H5LTget_attribute_int( loc_id, obj_name, ATTR_NAME_SUB, attr_int_out ) < 0 ) + return -1; + + for (i = 0; i < 5; i++) + { + if ( attr_int_in[i] != attr_int_out[i] ) { + return -1; + } + } + + if ( H5LTget_attribute_int( loc_id, obj_name, ATTR_NAME_EXT, attr_int_out ) < 0 ) + return -1; + + for (i = 0; i < 5; i++) + { + if ( attr_int_in[i] != attr_int_out[i] ) { + return -1; + } + } + /* Get the attribute */ if ( H5LTget_attribute( loc_id, obj_name, ATTR4_NAME, H5T_NATIVE_INT, attr_int_out ) < 0 ) return -1; @@ -929,7 +959,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) for (i = 0; i < 5; i++) { - if ( attr_float_in[i] != attr_float_out[i] ) { + if(!FLT_ABS_EQUAL(attr_float_in[i],attr_float_out[i])) { return -1; } } @@ -940,7 +970,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) for (i = 0; i < 5; i++) { - if ( attr_float_in[i] != attr_float_out[i] ) { + if(!FLT_ABS_EQUAL(attr_float_in[i],attr_float_out[i])) { return -1; } } @@ -973,7 +1003,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) for (i = 0; i < 5; i++) { - if ( attr_double_in[i] != attr_double_out[i] ) { + if(!DBL_ABS_EQUAL(attr_double_in[i],attr_double_out[i])) { return -1; } } @@ -984,7 +1014,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) for (i = 0; i < 5; i++) { - if ( attr_double_in[i] != attr_double_out[i] ) { + if(!DBL_ABS_EQUAL(attr_double_in[i],attr_double_out[i])) { return -1; } } @@ -1016,7 +1046,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ) TESTING("H5LTget_attribute_info"); - if(NULL==(dims_out = (hsize_t*) HDmalloc( sizeof(hsize_t) * rank_out ))) return -1; + if(NULL==(dims_out = (hsize_t*) HDmalloc( sizeof(hsize_t) * (size_t)rank_out ))) return -1; if ( H5LTget_attribute_info( loc_id, obj_name, ATTR2_NAME, dims_out, &type_class, &type_size) < 0 ) { HDfree( dims_out ); diff --git a/hl/test/test_packet.c b/hl/test/test_packet.c index 9d3074d..256892b 100644 --- a/hl/test/test_packet.c +++ b/hl/test/test_packet.c @@ -54,14 +54,14 @@ typedef struct particle_t *------------------------------------------------------------------------- */ static particle_t testPart[NRECORDS] = { - {"zero", 0,0, 0.0f, 0.0}, - {"one", 10,10, 1.0f, 10.0}, - {"two", 20,20, 2.0f, 20.0}, - {"three",30,30, 3.0f, 30.0}, - {"four", 40,40, 4.0f, 40.0}, - {"five", 50,50, 5.0f, 50.0}, - {"six", 60,60, 6.0f, 60.0}, - {"seven",70,70, 7.0f, 70.0} + {"zero", 0,0, 0.0f, 0.0f}, + {"one", 10,10, 1.0f, 10.0f}, + {"two", 20,20, 2.0f, 20.0f}, + {"three",30,30, 3.0f, 30.0f}, + {"four", 40,40, 4.0f, 40.0f}, + {"five", 50,50, 5.0f, 50.0f}, + {"six", 60,60, 6.0f, 60.0f}, + {"seven",70,70, 7.0f, 70.0f} }; /*------------------------------------------------------------------------- @@ -75,8 +75,8 @@ static int cmp_par(size_t i, size_t j, particle_t *rbuf, particle_t *wbuf ) if ( ( HDstrcmp( rbuf[i].name, wbuf[j].name ) != 0 ) || rbuf[i].lati != wbuf[j].lati || rbuf[i].longi != wbuf[j].longi || - rbuf[i].pressure != wbuf[j].pressure || - rbuf[i].temperature != wbuf[j].temperature ) { + !FLT_ABS_EQUAL(rbuf[i].pressure,wbuf[j].pressure) || + !DBL_ABS_EQUAL(rbuf[i].temperature,wbuf[j].temperature) ) { return -1; } return 0; @@ -895,6 +895,92 @@ error: return -1; } +/*------------------------------------------------------------------------- + * test_rw_non-native_dt + * + * test reading and writing packet table using datatypes that are not + * native. + * + *------------------------------------------------------------------------- + */ +static int test_rw_nonnative_dt(hid_t fid) +{ + hid_t ptable; /* Packet table identifier */ + + herr_t err; /* Function return status */ + hsize_t count; /* Number of records in the table */ + + int x; /* Loop variable */ + + /* Buffers to hold data */ + int writeBuffer[5]; + int readBuffer[5]; + + TESTING("reading/writing non-native packet table"); + + /* Initialize buffers */ + for(x=0; x<5; x++) { + writeBuffer[x]=x; + readBuffer[x] = -1; + } + + /* Create a fixed-length packet table within the file */ + /* This table's "packets" will be simple integers and it will use no compression */ + if(H5Tget_order(H5T_NATIVE_INT) == H5T_ORDER_LE) { + ptable = H5PTcreate_fl(fid, "Packet Test Dataset, Non-native", H5T_STD_I32BE, (hsize_t)100, -1); + } else { + ptable = H5PTcreate_fl(fid, "Packet Test Dataset, Non-native", H5T_STD_I32LE, (hsize_t)100, -1); + } + if(ptable == H5I_INVALID_HID) + goto out; + + /* Write one packet to the packet table */ + if( (err = H5PTappend(ptable, (hsize_t)1, &(writeBuffer[0]))) < 0 ) + goto out; + + /* Write several packets to the packet table */ + if( (err = H5PTappend(ptable, (hsize_t)4, &(writeBuffer[1]))) < 0) + goto out; + + if( (err = H5PTclose(ptable)) < 0) + goto out; + + /* Open the Packet table */ + if( (ptable = H5PTopen(fid, "Packet Test Dataset, Non-native")) < 0) + goto out; + + /* Get the number of packets in the packet table. This should be five. */ + if( (err = H5PTget_num_packets(ptable, &count)) < 0) + goto out; + + if( (int)count != 5 ) + goto out; + + /* Initialize packet table's "current record" */ + if( (err = H5PTcreate_index(ptable)) < 0) + goto out; + + /* Iterate through packets, read each one back */ + for(x=0; x<5; x++) { + if( (err = H5PTget_next(ptable, (hsize_t)1, &(readBuffer[x]))) < 0) + goto out; + if( x != readBuffer[x]) + goto out; + } + + /* Close the packet table */ + if( (err = H5PTclose(ptable)) < 0) + goto out; + + PASSED(); + return 0; + + out: + H5_FAILED(); + if( H5PTis_valid(ptable) < 0) + H5PTclose(ptable); + return -1; +} /*------------------------------------------------------------------------- * test_error @@ -1035,6 +1121,7 @@ static int test_packet_table(hid_t fid) test_read(fid); test_get_next(fid); test_big_table(fid); + test_rw_nonnative_dt(fid); #ifdef VLPT_REMOVED test_varlen(fid); #endif /* VLPT_REMOVED */ diff --git a/hl/test/test_table.c b/hl/test/test_table.c index c312296..3bc5e5f 100644 --- a/hl/test/test_table.c +++ b/hl/test/test_table.c @@ -166,14 +166,14 @@ static int cmp_par(hsize_t i, hsize_t j, particle_t *rbuf, particle_t *wbuf ) if ( ( HDstrcmp( rbuf[i].name, wbuf[j].name ) != 0 ) || rbuf[i].lati != wbuf[j].lati || rbuf[i].longi != wbuf[j].longi || - rbuf[i].pressure != wbuf[j].pressure || - rbuf[i].temperature != wbuf[j].temperature ) + !FLT_ABS_EQUAL(rbuf[i].pressure,wbuf[j].pressure) || + !DBL_ABS_EQUAL(rbuf[i].temperature,wbuf[j].temperature) ) { HDfprintf(stderr,"read and write buffers have differences\n"); HDfprintf(stderr,"%s %ld %f %f %d\n", - rbuf[i].name,rbuf[i].longi,rbuf[i].pressure,rbuf[i].temperature,rbuf[i].lati); + rbuf[i].name,rbuf[i].longi,(double)rbuf[i].pressure,rbuf[i].temperature,rbuf[i].lati); HDfprintf(stderr,"%s %ld %f %f %d\n", - wbuf[j].name,wbuf[j].longi,wbuf[j].pressure,wbuf[j].temperature,wbuf[j].lati); + wbuf[j].name,wbuf[j].longi,(double)wbuf[j].pressure,wbuf[j].temperature,wbuf[j].lati); return -1; } return 0; @@ -218,7 +218,7 @@ static int test_table(hid_t fid, int do_write) hsize_t chunk_size=10; int compress=0; int *fill=NULL; - particle_t fill1[1] = { {"no data",-1, -99.0f, -99.0, -1} }; + particle_t fill1[1] = { {"no data",-1, -99.0f, -99.0f, -1} }; int fill1_new[1] = { -100 }; hsize_t position; char tname[20]; @@ -246,18 +246,18 @@ static int test_table(hid_t fid, int do_write) particle2_t rbuf2[NRECORDS]; particle3_t rbuf3[NRECORDS]; particle_t rbufc[NRECORDS*2]; - particle_t abuf[2]={{"eight",80,8.0f,80.0,80},{"nine",90,9.0f,90.0,90}}; - particle_t ibuf[2]={{"zero", 0, 0.0f, 0.0, 0},{"zero", 0, 0.0f, 0.0, 0}}; + particle_t abuf[2]={{"eight",80,8.0f,80.0f,80},{"nine",90,9.0f,90.0f,90}}; + particle_t ibuf[2]={{"zero", 0, 0.0f, 0.0f, 0},{"zero", 0, 0.0f, 0.0f, 0}}; particle_t wbufd[NRECORDS]; particle_t wbuf[NRECORDS] = { - {"zero", 0, 0.0f, 0.0, 0,}, - {"one", 10, 1.0f, 10.0, 10}, - {"two", 20, 2.0f, 20.0, 20}, - {"three",30, 3.0f, 30.0, 30}, - {"four", 40, 4.0f, 40.0, 40}, - {"five", 50, 5.0f, 50.0, 50}, - {"six", 60, 6.0f, 60.0, 60}, - {"seven",70, 7.0f, 70.0, 70} + {"zero", 0, 0.0f, 0.0f, 0,}, + {"one", 10, 1.0f, 10.0f, 10}, + {"two", 20, 2.0f, 20.0f, 20}, + {"three",30, 3.0f, 30.0f, 30}, + {"four", 40, 4.0f, 40.0f, 40}, + {"five", 50, 5.0f, 50.0f, 50}, + {"six", 60, 6.0f, 60.0f, 60}, + {"seven",70, 7.0f, 70.0f, 70} }; /* buffers for the field "Pressure" and "New_field" */ float pressure_in [NRECORDS] = { 0.0f,1.0f,2.0f,3.0f,4.0f,5.0f,6.0f,7.0f }; @@ -390,14 +390,14 @@ static int test_table(hid_t fid, int do_write) /* Define an array of Particles */ particle4_t p_data[NRECORDS] = { - {12112, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12113, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12114, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12115, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12116, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12117, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12118, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}, - {12119, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}} + {12112, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12113, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12114, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12115, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12116, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12117, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12118, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}, + {12119, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}} }; /*------------------------------------------------------------------------- @@ -1138,14 +1138,14 @@ static int test_table(hid_t fid, int do_write) { if ( i >= 2 && i <= 4 ) { - if ( rbuf[i].lati != position_in[i-NRECORDS_ADD+1].lati || + if ( rbuf[i].lati != position_in[i-NRECORDS_ADD+1].lati || rbuf[i].longi != position_in[i-NRECORDS_ADD+1].longi || - rbuf[i].pressure != pressure_in[i-NRECORDS_ADD+1] ) + !FLT_ABS_EQUAL(rbuf[i].pressure,pressure_in[i-NRECORDS_ADD+1]) ) { HDfprintf(stderr,"%ld %f %d\n", - rbuf[i].longi,rbuf[i].pressure,rbuf[i].lati); + rbuf[i].longi,(double)rbuf[i].pressure,rbuf[i].lati); HDfprintf(stderr,"%ld %f %d\n", - position_in[i].longi,pressure_in[i],position_in[i].lati); + position_in[i].longi,(double)pressure_in[i],position_in[i].lati); goto out; } } @@ -1200,9 +1200,9 @@ static int test_table(hid_t fid, int do_write) goto out; /* Compare the extracted table with the initial values */ - for( i = 0; i < NRECORDS; i++ ) + for ( i = 0; i < NRECORDS; i++ ) { - if ( pressure_out[i] != pressure_in[i] ) { + if ( !FLT_ABS_EQUAL(pressure_out[i], pressure_in[i]) ) { goto out; } } @@ -1265,7 +1265,7 @@ static int test_table(hid_t fid, int do_write) for( i = 0; i < NRECORDS; i++ ) { if ( ( HDstrcmp( namepre_out[i].name, namepre_in[i].name ) != 0 ) || - namepre_out[i].pressure != namepre_in[i].pressure ) { + !FLT_ABS_EQUAL(namepre_out[i].pressure,namepre_in[i].pressure) ) { goto out; } } @@ -1294,7 +1294,7 @@ static int test_table(hid_t fid, int do_write) { hsize_t iistart = start; if ( ( HDstrcmp( namepre_out[i].name, namepre_in[iistart+i].name ) != 0 ) || - namepre_out[i].pressure != namepre_in[iistart+i].pressure ) { + !FLT_ABS_EQUAL(namepre_out[i].pressure, namepre_in[iistart+i].pressure) ) { goto out; } } @@ -1353,7 +1353,7 @@ static int test_table(hid_t fid, int do_write) { if ( rbuf[i].lati != position_in[i-NRECORDS_ADD+1].lati || rbuf[i].longi != position_in[i-NRECORDS_ADD+1].longi || - rbuf[i].pressure != pressure_in[i-NRECORDS_ADD+1] ) + !FLT_ABS_EQUAL(rbuf[i].pressure,pressure_in[i-NRECORDS_ADD+1]) ) goto out; } } @@ -1406,7 +1406,7 @@ static int test_table(hid_t fid, int do_write) /* compare the extracted table with the initial values */ for( i = 0; i < NRECORDS; i++ ) { - if ( pressure_out[i] != pressure_in[i] ) { + if ( !FLT_ABS_EQUAL(pressure_out[i], pressure_in[i]) ) { goto out; } } @@ -1471,10 +1471,10 @@ static int test_table(hid_t fid, int do_write) /* compare the extracted table with the initial values */ for( i = 0; i < NRECORDS; i++ ) { - if ( ( HDstrcmp( namepre_out[i].name, namepre_in[i].name ) != 0 ) || - namepre_out[i].pressure != namepre_in[i].pressure ) { - goto out; - } + if ( ( HDstrcmp( namepre_out[i].name, namepre_in[i].name ) != 0 ) || + !FLT_ABS_EQUAL(namepre_out[i].pressure,namepre_in[i].pressure) ) { + goto out; + } } /* reset buffer */ @@ -1502,8 +1502,8 @@ static int test_table(hid_t fid, int do_write) for( i = 0; i < 3; i++ ) { int iistart = (int) start; - if ( ( HDstrcmp( namepre_out[i].name, wbuf[iistart+i].name ) != 0 ) || - namepre_out[i].pressure != wbuf[iistart+i].pressure ) { + if ( ( HDstrcmp( namepre_out[i].name, wbuf[iistart+(int)i].name ) != 0 ) || + !FLT_ABS_EQUAL(namepre_out[i].pressure, wbuf[iistart+(int)i].pressure) ) { goto out; } } @@ -1546,8 +1546,8 @@ static int test_table(hid_t fid, int do_write) if ( ( HDstrcmp( rbuf2[i].name, wbuf[i].name ) != 0 ) || rbuf2[i].lati != wbuf[i].lati || rbuf2[i].longi != wbuf[i].longi || - rbuf2[i].pressure != wbuf[i].pressure || - rbuf2[i].temperature != wbuf[i].temperature || + !FLT_ABS_EQUAL(rbuf2[i].pressure,wbuf[i].pressure) || + !DBL_ABS_EQUAL(rbuf2[i].temperature,wbuf[i].temperature) || rbuf2[i].new_field != buf_new[i] ) { goto out; } @@ -1587,7 +1587,7 @@ static int test_table(hid_t fid, int do_write) if ( ( HDstrcmp( rbuf3[i].name, wbuf[i].name ) != 0 ) || rbuf3[i].lati != wbuf[i].lati || rbuf3[i].longi != wbuf[i].longi || - rbuf3[i].temperature != wbuf[i].temperature ) { + !DBL_ABS_EQUAL(rbuf3[i].temperature,wbuf[i].temperature) ) { goto out; } } diff --git a/hl/tools/CMakeLists.txt b/hl/tools/CMakeLists.txt index a41aecc..f58a513 100644 --- a/hl/tools/CMakeLists.txt +++ b/hl/tools/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_HL_TOOLS) #----------------------------------------------------------------------------- @@ -19,7 +19,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5) add_executable (gif2h5 ${GIF2H5_SRCS}) TARGET_NAMING (gif2h5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (gif2h5 " " " ") +TARGET_C_PROPERTIES (gif2h5 ${LIB_TYPE} " " " ") target_link_libraries (gif2h5 ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (gif2h5 PROPERTIES FOLDER tools/hl) @@ -30,7 +30,7 @@ set (hdf2gif_SRCS ) add_executable (h52gif ${hdf2gif_SRCS}) TARGET_NAMING (h52gif ${LIB_TYPE}) -TARGET_C_PROPERTIES (h52gif " " " ") +TARGET_C_PROPERTIES (h52gif ${LIB_TYPE} " " " ") target_link_libraries (h52gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h52gif PROPERTIES FOLDER tools/hl) @@ -42,8 +42,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (hl_h52gifgentest ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/h52gifgentst.c) - TARGET_NAMING (hl_h52gifgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_h52gifgentest " " " ") + TARGET_NAMING (hl_h52gifgentest STATIC) + TARGET_C_PROPERTIES (hl_h52gifgentest STATIC " " " ") target_link_libraries (hl_h52gifgentest ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (hl_h52gifgentest PROPERTIES FOLDER generator/tools/hl) diff --git a/hl/tools/CMakeTests.cmake b/hl/tools/CMakeTests.cmake index a340c2d..4ebd7a2 100644 --- a/hl/tools/CMakeTests.cmake +++ b/hl/tools/CMakeTests.cmake @@ -26,6 +26,13 @@ add_custom_command ( ARGS -E copy_if_different ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/testfiles/h52giftst.h5 ${PROJECT_BINARY_DIR}/testfiles/h52giftst.h5 ) +add_custom_command ( + TARGET h52gif + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/testfiles/ex_image2.h5 ${PROJECT_BINARY_DIR}/testfiles/ex_image2.h5 +) + # Remove any output file left over from previous test run add_test ( NAME HL_TOOLS-clear-objects @@ -33,8 +40,19 @@ add_test ( -E remove image1.gif image1.h5 + image.gif + image24.gif ) +add_test (NAME HL_TOOLS_gif2h5 COMMAND $<TARGET_FILE:gif2h5> testfiles/image1.gif image1.h5) + add_test (NAME HL_TOOLS_h52gif COMMAND $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image1.gif -i image) -add_test (NAME HL_TOOLS_gif2h5 COMMAND $<TARGET_FILE:gif2h5> testfiles/image1.gif image1.h5) +add_test (NAME HL_TOOLS_h52gif_none COMMAND $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image.gif -i nosuch_image) +set_tests_properties (HL_TOOLS_h52gif_none PROPERTIES WILL_FAIL "true") + +#add_test (NAME HL_TOOLS_h52gifpal COMMAND $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image.gif -i palette) +#set_tests_properties (HL_TOOLS_h52gifpal PROPERTIES WILL_FAIL "true") + +add_test (NAME HL_TOOLS_h52gif24bits COMMAND $<TARGET_FILE:h52gif> testfiles/ex_image2.h5 image24.gif -i image24bitpixel) +set_tests_properties (HL_TOOLS_h52gif24bits PROPERTIES WILL_FAIL "true") diff --git a/hl/tools/Makefile.in b/hl/tools/Makefile.in index 7f60940e..77049d3 100644 --- a/hl/tools/Makefile.in +++ b/hl/tools/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/tools ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -405,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -437,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -456,17 +455,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -529,7 +525,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -544,10 +539,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -661,8 +652,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # All subdirectories SUBDIRS = gif2h5 diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in index aedefdd..3da84e1 100644 --- a/hl/tools/gif2h5/Makefile.in +++ b/hl/tools/gif2h5/Makefile.in @@ -105,7 +105,8 @@ noinst_PROGRAMS = h52gifgentst$(EXEEXT) TESTS = $(TEST_SCRIPT) subdir = hl/tools/gif2h5 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -419,7 +420,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -451,7 +451,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -470,17 +469,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -543,7 +539,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -558,10 +553,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -675,8 +666,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.gif +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.gif # These are our main targets, the tools TEST_SCRIPT = h52giftest.sh diff --git a/hl/tools/gif2h5/decompress.c b/hl/tools/gif2h5/decompress.c index d4e4cdc..ef2d78a 100644 --- a/hl/tools/gif2h5/decompress.c +++ b/hl/tools/gif2h5/decompress.c @@ -90,7 +90,7 @@ ReadCode(void) RawCode += (0x10000 * Raster[ByteOffset + 2]); RawCode >>= (BitOffset % 8); - BitOffset += CodeSize; + BitOffset += (int)CodeSize; return (RawCode & ReadMask); } diff --git a/hl/tools/gif2h5/gif.h b/hl/tools/gif2h5/gif.h index 5334919..f34a111 100644 --- a/hl/tools/gif2h5/gif.h +++ b/hl/tools/gif2h5/gif.h @@ -143,7 +143,7 @@ typedef struct _GifToMem { */ /* GIF2MEM.C */ -GIFTOMEM Gif2Mem(BYTE *); +int Gif2Mem(BYTE *, GIFTOMEM *); /* GIFREAD.C */ int ReadGifHeader(GIFHEAD *, BYTE **); diff --git a/hl/tools/gif2h5/gif2hdf.c b/hl/tools/gif2h5/gif2hdf.c index 810be78..8a9e971 100644 --- a/hl/tools/gif2h5/gif2hdf.c +++ b/hl/tools/gif2h5/gif2hdf.c @@ -99,7 +99,7 @@ main(int argv , char *argc[]) * Call Gif2Mem and break the whole file into parts. Gif2Mem also calls * decompresses the images so we don't have to worry about that */ - GifMemoryStruct = Gif2Mem(MemGif); + Gif2Mem(MemGif, &GifMemoryStruct); if (ferror(fpGif)) { printf("File Stream Error\n\n"); diff --git a/hl/tools/gif2h5/gif2mem.c b/hl/tools/gif2h5/gif2mem.c index ac4b0ec..456a32d 100644 --- a/hl/tools/gif2h5/gif2mem.c +++ b/hl/tools/gif2h5/gif2mem.c @@ -37,8 +37,8 @@ #include "gif.h" -GIFTOMEM -Gif2Mem(BYTE *MemGif) +int +Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct) { /* * The gif structure outline for passing data to memory is given in gif.h. @@ -51,8 +51,6 @@ Gif2Mem(BYTE *MemGif) GIFCOMMENT **gifComment; /* Comment Extension structure */ GIFGRAPHICCONTROL **gifGraphicControl; /* Graphic Control Extension strct */ - GIFTOMEM GifMemoryStruct; - register WORD i; /* Loop counter */ BYTE Identifier; /* Extension block identifier holder */ BYTE Label; /* Extension block label holder */ @@ -133,15 +131,15 @@ Gif2Mem(BYTE *MemGif) gifHead->PlainTextCount = PlainTextCount; /* putting stuff into the gif2mem structure */ - GifMemoryStruct.GifHeader = gifHead; - GifMemoryStruct.GifImageDesc = gifImageDesc; - GifMemoryStruct.GifPlainTextExtension = gifPlainText; - GifMemoryStruct.GifApplicationExtension = gifApplication; - GifMemoryStruct.GifCommentExtension = gifComment; - GifMemoryStruct.GifGraphicControlExtension = gifGraphicControl; + GifMemoryStruct->GifHeader = gifHead; + GifMemoryStruct->GifImageDesc = gifImageDesc; + GifMemoryStruct->GifPlainTextExtension = gifPlainText; + GifMemoryStruct->GifApplicationExtension = gifApplication; + GifMemoryStruct->GifCommentExtension = gifComment; + GifMemoryStruct->GifGraphicControlExtension = gifGraphicControl; /* return the struct */ - return GifMemoryStruct; + return 0; case 0x2C: /* Image Descriptor */ /* @@ -155,7 +153,7 @@ Gif2Mem(BYTE *MemGif) if (ImageCount > ImageArray) { aTemp = ImageArray; - ImageArray = (ImageArray << 1) + 1; + ImageArray = (BYTE)((ImageArray << 1) + 1); if (!(gifImageDesc = (GIFIMAGEDESC **)realloc(gifImageDesc, sizeof(GIFIMAGEDESC *) * ImageArray))) { printf("Out of memory!"); @@ -222,7 +220,7 @@ Gif2Mem(BYTE *MemGif) PlainTextCount++; if (PlainTextCount > PlainTextArray) - PlainTextArray = (PlainTextArray << 1) + 1; + PlainTextArray = (BYTE)((PlainTextArray << 1) + 1); if (!(gifPlainText = (GIFPLAINTEXT **)realloc(gifPlainText , sizeof(GIFPLAINTEXT *) * PlainTextArray))) { printf("Out of memory!"); @@ -244,7 +242,7 @@ Gif2Mem(BYTE *MemGif) CommentCount++; if (CommentCount > CommentArray) - CommentArray = (CommentArray << 1) + 1; + CommentArray = (BYTE)((CommentArray << 1) + 1); if (!(gifComment = (GIFCOMMENT **)realloc(gifComment , sizeof(GIFCOMMENT *) * CommentArray))) { printf("Out of memory!"); @@ -271,7 +269,7 @@ Gif2Mem(BYTE *MemGif) if (ImageCount > ImageArray) { aTemp = ImageArray; - ImageArray = (ImageArray << 1) + 1; + ImageArray = (BYTE)((ImageArray << 1) + 1); if (!(gifGraphicControl = (GIFGRAPHICCONTROL **)realloc(gifGraphicControl , sizeof(GIFGRAPHICCONTROL *) * ImageArray))) { printf("Out of memory!"); @@ -309,7 +307,7 @@ Gif2Mem(BYTE *MemGif) ApplicationCount++; if (ApplicationCount > ApplicationArray) - ApplicationArray = (ApplicationArray << 1) + 1; + ApplicationArray = (BYTE)((ApplicationArray << 1) + 1); if (!(gifApplication = (GIFAPPLICATION **)realloc(gifApplication , sizeof(GIFAPPLICATION *) * ApplicationArray))) { printf("Out of memory!"); diff --git a/hl/tools/gif2h5/h52gifgentst.c b/hl/tools/gif2h5/h52gifgentst.c index ef38c3b..3433d0a 100644 --- a/hl/tools/gif2h5/h52gifgentst.c +++ b/hl/tools/gif2h5/h52gifgentst.c @@ -64,7 +64,7 @@ int main(void) space = WIDTH*HEIGHT / PAL_ENTRIES; for (i=0, j=0, n=0; i < WIDTH*HEIGHT; i++, j++ ) { - buf[i] = n; + buf[i] = (unsigned char)n; if ( j > space ) { n++; @@ -83,9 +83,9 @@ int main(void) */ for ( i=0, n=0; i<PAL_ENTRIES*3; i+=3, n++) { - pal[i] =n; /* red */ - pal[i+1]=0; /* green */ - pal[i+2]=255-n; /* blue */ + pal[i] = (unsigned char)n; /* red */ + pal[i+1] = (unsigned char)0; /* green */ + pal[i+2] = (unsigned char)(255-n); /* blue */ } /* make a palette */ diff --git a/hl/tools/gif2h5/h52giftest.sh.in b/hl/tools/gif2h5/h52giftest.sh.in index 186b369..7aec219 100644 --- a/hl/tools/gif2h5/h52giftest.sh.in +++ b/hl/tools/gif2h5/h52giftest.sh.in @@ -18,6 +18,7 @@ TESTFILE1="$srcdir/testfiles/h52giftst.h5" TESTFILE2="$srcdir/testfiles/image1.gif" +TESTFILE3="$srcdir/testfiles/ex_image2.h5" # initialize errors variable errors=0 @@ -29,45 +30,69 @@ TESTING() { -TOOLTEST1() +# Verify the test runs with success (return code is 0) +TOOLTEST() { - $RUNSERIAL ./h52gif $* - - RET=$? - if [ $RET != 0 ] ; then - echo "*FAILED*" - errors="` expr $errors + 1 `"; - else - echo " PASSED" - fi + # for now, discard any error messages generated. + $RUNSERIAL $* > /dev/null 2>&1 + + RET=$? + if [ $RET = 0 ] ; then + echo " PASSED" + else + echo "*FAILED*" + errors="` expr $errors + 1 `"; + fi } -TOOLTEST2() +# Verify the test runs with failure (return code is not 0) +# Use for testing if tool can handle error conditions like +# illegal input, bad arguments, exeeding limits, ... +TOOLTESTFAIL() { - $RUNSERIAL ./gif2h5 $* - - RET=$? - if [ $RET != 0 ] ; then - echo "*FAILED*" - errors="` expr $errors + 1 `"; - else - echo " PASSED" - fi + # for now, discard any error messages generated. + $RUNSERIAL $* > /dev/null 2>&1 + + RET=$? + if [ $RET != 0 ] ; then + echo " PASSED" + else + echo "*FAILED*" + errors="` expr $errors + 1 `"; + fi } +# Positive tests for gif2h5 +echo "**validate the gif2h5 tool processes input correctly..." +TESTING "./gif2h5 image1.gif image1.h5" +TOOLTEST ./gif2h5 $TESTFILE2 image1.h5 +echo "" +# Positive tests for h52gif +echo "**validate the h52gif tool processes input correctly..." TESTING "./h52gif h52giftst.h5 image1.gif -i image" -TOOLTEST1 $TESTFILE1 image1.gif -i image -TESTING "./gif2h5 image1.gif image1.h5" -TOOLTEST2 $TESTFILE2 image1.h5 +TOOLTEST ./h52gif $TESTFILE1 image1.gif -i image +echo "" +# Negative tests. +echo "**verify the the h52gif tool handle error conditions correctly..." +# nonexisting dataset name +TESTING "./h52gif h52giftst.h5 image.gif -i nosuch_image" +TOOLTESTFAIL "./h52gif $TESTFILE1 image.gif -i nosuch_image" +# this test should have failed but it did not. Comment it out for now. +#TESTING "./h52gif h52giftst.h5 image.gif -i palette" +#TOOLTESTFAIL "./h52gif $TESTFILE1 image.gif -i palette" +TESTING "./h52gif h52giftst.h5 image24.gif -i image24bitpixel" +TOOLTESTFAIL "./h52gif $TESTFILE3 image24.gif -i image24bitpixel" +echo "" +# all done. summarize results. if test $errors -eq 0 ; then - echo "All h52gif tests passed." + echo "All gif2h5 and h52gif tests passed." exit 0 else - echo "h52gif tests failed with $errors errors." + echo "Some gif2h5 or h52gif tests failed with $errors errors." exit 1 fi diff --git a/hl/tools/gif2h5/hdf2gif.c b/hl/tools/gif2h5/hdf2gif.c index 090d657..5c342ba 100644 --- a/hl/tools/gif2h5/hdf2gif.c +++ b/hl/tools/gif2h5/hdf2gif.c @@ -20,6 +20,8 @@ #include "h5tools.h" #include "h5tools_utils.h" +#define IMAGE_WIDTH_MAX 65535 /* unsigned 16bits integer */ +#define IMAGE_HEIGHT_MAX 65535 /* unsigned 16bits integer */ int EndianOrder; @@ -147,6 +149,17 @@ int main(int argc , char **argv) if ( H5IMget_image_info( fid, image_name, &width, &height, &planes, interlace, &npals ) < 0 ) goto out; + if (width > IMAGE_WIDTH_MAX || height > IMAGE_HEIGHT_MAX){ + fprintf(stderr, "HDF5 image is too large. Limit is %d by %d.\n", IMAGE_WIDTH_MAX, IMAGE_HEIGHT_MAX); + goto out; + } + + /* tool can handle single plane images only. */ + if (planes > 1){ + fprintf(stderr, "Cannot handle multiple planes image\n"); + goto out; + } + Image = (BYTE*) malloc( (size_t) width * (size_t) height ); if ( H5IMread_image( fid, image_name, Image ) < 0 ) @@ -194,9 +207,9 @@ int main(int argc , char **argv) numcols = 256; for (i = 0 ; i < numcols ; i++) { - Red[i] = 255 - i; - Green[i] = 255 - i; - Blue[i] = 255 - i; + Red[i] = (BYTE)(255 - i); + Green[i] = (BYTE)(255 - i); + Blue[i] = (BYTE)(255 - i); } } else @@ -229,7 +242,7 @@ int main(int argc , char **argv) if (j==i) { /* wasn't found */ - pc2nc[i] = nc; + pc2nc[i] = (BYTE)nc; r1[nc] = Red[i]; g1[nc] = Green[i]; b1[nc] = Blue[i]; diff --git a/hl/tools/gif2h5/hdfgifwr.c b/hl/tools/gif2h5/hdfgifwr.c index d828226..4c52f4c 100644 --- a/hl/tools/gif2h5/hdfgifwr.c +++ b/hl/tools/gif2h5/hdfgifwr.c @@ -270,7 +270,7 @@ nomatch: ent = c; if (free_ent < maxmaxcode) { - CodeTabOf (i) = free_ent++; /* code -> hashtable */ + CodeTabOf (i) = (unsigned short)free_ent++; /* code -> hashtable */ HashTabOf (i) = fcode; } else { cl_block(); @@ -313,9 +313,9 @@ output(int code) cur_accum &= masks[cur_bits]; if (cur_bits > 0) - cur_accum |= ((long)code << cur_bits); + cur_accum |= (unsigned long)((long)code << cur_bits); else - cur_accum = code; + cur_accum = (unsigned long)code; cur_bits += n_bits; @@ -437,7 +437,7 @@ static char accum[ 256 ]; static void char_out(int c) { - accum[ a_count++ ] = c; + accum[ a_count++ ] = (char)c; if (a_count >= 254) flush_char(); diff --git a/hl/tools/gif2h5/testfiles/REAMDE b/hl/tools/gif2h5/testfiles/REAMDE new file mode 100644 index 0000000..a428d47 --- /dev/null +++ b/hl/tools/gif2h5/testfiles/REAMDE @@ -0,0 +1,6 @@ +ex_image2.h5 + Generated by hl/examples/ex_image2.c +5giftst.h5: + Generated by ../h52gifgentst.c +image1.gif: + To be determined. diff --git a/hl/tools/gif2h5/testfiles/ex_image2.h5 b/hl/tools/gif2h5/testfiles/ex_image2.h5 Binary files differnew file mode 100644 index 0000000..a36df1b --- /dev/null +++ b/hl/tools/gif2h5/testfiles/ex_image2.h5 diff --git a/m4/aclocal_cxx.m4 b/m4/aclocal_cxx.m4 new file mode 100644 index 0000000..b44ae82 --- /dev/null +++ b/m4/aclocal_cxx.m4 @@ -0,0 +1,121 @@ +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- +dnl +dnl Copyright by the Board of Trustees of the University of Illinois. +dnl All rights reserved. +dnl +dnl This file is part of HDF5. The full HDF5 copyright notice, including +dnl terms governing use, modification, and redistribution, is contained in +dnl the files COPYING and Copyright.html. COPYING can be found at the root +dnl of the source code distribution tree; Copyright.html can be found at the +dnl root level of an installed copy of the electronic HDF5 document set and +dnl is linked from the top-level documents page. It can also be found at +dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have +dnl access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. +dnl +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- + +dnl ********************************* +dnl PURPOSE +dnl Contains Macros for HDF5 C++ +dnl ********************************* +dnl +dnl Special characteristics that have no autoconf counterpart but that +dnl we need as part of the C++ support. To distinquish these, they +dnl have a [PAC] prefix. + +dnl Checking if C++ needs old style header files in includes + +AC_DEFUN([PAC_PROG_CXX_HEADERS],[ + AC_MSG_CHECKING([if $CXX needs old style header files in includes]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ +#include <iostream> + +int main(void) { return 0; } + ])], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes]) + CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME" + AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME"]) +]) + +dnl Checking if ++ can handle namespaces + +AC_DEFUN([PAC_PROG_CXX_NAMESPACE],[ + AC_MSG_CHECKING([if $CXX can handle namespaces]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ +namespace H5 { +int fnord; +} + +int main(void) { + using namespace H5; + fnord = 37; + return 0; +} + ])], [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE" + AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"]) +]) + +dnl Checking if C++ supports std + +AC_DEFUN([PAC_PROG_CXX_STD],[ + AC_MSG_CHECKING([if $CXX supports std]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ +#include <string> + +using namespace std; + +int main(void) { + string myString("testing namespace std"); + return 0; +} + ])], [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + CXXFLAGS="${CXXFLAGS} -DH5_NO_STD" + AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"]) +]) + +dnl Checking if C++ has offsetof extension + +AC_DEFUN([PAC_PROG_CXX_OFFSETOF],[ + AC_MSG_CHECKING([if $CXX has offsetof extension]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([ + #include <stdio.h> + #include <stddef.h> + ],[ + struct index_st + { + unsigned char type; + unsigned char num; + unsigned int len; + }; + typedef struct index_st index_t; + int x,y; + x = offsetof(struct index_st, len); + y = offsetof(index_t, num) + ])],[AC_MSG_RESULT([yes]) + AC_DEFINE([CXX_HAVE_OFFSETOF], [1], [Define if C++ compiler recognizes offsetof])], + AC_MSG_RESULT([no])) +]) + +dnl Checking if C++ can handle static cast + +AC_DEFUN([PAC_PROG_CXX_STATIC_CAST],[ + AC_MSG_CHECKING([if $CXX can handle static cast]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ +int main(void) { + float test_float; + int test_int; + test_float = 37.0; + test_int = static_cast <int> (test_float); + return 0; +} + ])], [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST" + AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"]) +]) diff --git a/m4/aclocal_fc.m4 b/m4/aclocal_fc.m4 new file mode 100644 index 0000000..cda2fee --- /dev/null +++ b/m4/aclocal_fc.m4 @@ -0,0 +1,283 @@ +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- +dnl +dnl Copyright by the Board of Trustees of the University of Illinois. +dnl All rights reserved. +dnl +dnl This file is part of HDF5. The full HDF5 copyright notice, including +dnl terms governing use, modification, and redistribution, is contained in +dnl the files COPYING and Copyright.html. COPYING can be found at the root +dnl of the source code distribution tree; Copyright.html can be found at the +dnl root level of an installed copy of the electronic HDF5 document set and +dnl is linked from the top-level documents page. It can also be found at +dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have +dnl access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. +dnl +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- + +dnl ********************************* +dnl PURPOSE +dnl Contains Macros for HDF5 Fortran +dnl ********************************* +dnl +dnl Special characteristics that have no autoconf counterpart but that +dnl we need as part of the C++ support. To distinquish these, they +dnl have a [PAC] prefix. +dnl +dnl ------------------------------------------------------------------------- +dnl +dnl PAC_FC_SEARCH_LIST - expands to a whitespace separated list of modern +dnl fortran compilers for use with AC_PROG_FC that is more suitable for HPC +dnl software packages +AC_DEFUN([PAC_FC_SEARCH_LIST], + [gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc]) +dnl +dnl PAC_PROG_FC([COMPILERS]) +dnl +dnl COMPILERS is a space separated list of Fortran compilers to search for. +dnl +dnl Compilers are ordered by +dnl 1. F90, F95, F2003 +dnl 2. Good/tested native compilers, bad/untested native compilers +dnl 3. Wrappers around f2c go last. +dnl +dnl frt is the Fujitsu Fortran compiler. +dnl pgf90 are the Portland Group F90 compilers. +dnl xlf/xlf90/xlf95/xlf2003 are IBM (AIX) F90/F95/F2003 compilers. +dnl lf95 is the Lahey-Fujitsu compiler. +dnl fl32 is the Microsoft Fortran "PowerStation" compiler. +dnl epcf90 is the "Edinburgh Portable Compiler" F90. +dnl fort is the Compaq Fortran 90 (now 95) compiler for Tru64 and Linux/Alpha. +dnl pathf90 is the Pathscale Fortran 90 compiler +dnl ifort is another name for the Intel f90 compiler +dnl efc - An older Intel compiler (?) +dnl ifc - An older Intel compiler +dnl fc - A compiler on some unknown system. This has been removed because +dnl it may also be the name of a command for something other than +dnl the Fortran compiler (e.g., fc=file system check!) +dnl gfortran - The GNU Fortran compiler (not the same as g95) +dnl gfc - An alias for gfortran recommended in cygwin installations +dnl NOTE: this macro suffers from a basically intractable "expanded before it +dnl was required" problem when libtool is also used +dnl [1] MPICH.org +dnl + +dnl See if the fortran compiler supports the intrinsic function "SIZEOF" + +AC_DEFUN([PAC_PROG_FC_SIZEOF],[ + HAVE_SIZEOF_FORTRAN="no" + AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ + PROGRAM main + i = sizeof(x) + END PROGRAM + ])],[AC_MSG_RESULT([yes]) + HAVE_SIZEOF_FORTRAN="yes"], + [AC_MSG_RESULT([no])]) +]) + +dnl See if the fortran compiler supports the intrinsic function "C_SIZEOF" + +AC_DEFUN([PAC_PROG_FC_C_SIZEOF],[ + HAVE_C_SIZEOF_FORTRAN="no" + AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ + PROGRAM main + USE ISO_C_BINDING + INTEGER(C_INT) :: a + INTEGER(C_SIZE_T) :: result + result = C_SIZEOF(a) + END PROGRAM + ])], [AC_MSG_RESULT([yes]) + HAVE_C_SIZEOF_FORTRAN="yes"], + [AC_MSG_RESULT([no])]) +]) + +dnl See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" + +AC_DEFUN([PAC_PROG_FC_STORAGE_SIZE],[ + HAVE_STORAGE_SIZE_FORTRAN="no" + AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE]) + AC_LINK_IFELSE([AC_LANG_SOURCE([ + PROGRAM main + INTEGER :: a + INTEGER :: result + result = STORAGE_SIZE(a) + END PROGRAM + ])], [AC_MSG_RESULT([yes]) + HAVE_STORAGE_SIZE_FORTRAN="yes"], + [AC_MSG_RESULT([no])]) + +]) + +dnl Check to see if -r8 was specified to determine if we need to +dnl compile the DOUBLE PRECISION interfaces. + +AC_DEFUN([PAC_PROG_FC_DEFAULT_REALisDBLE],[ + FORTRAN_DEFAULT_REALisDBLE="no" + AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + MODULE type_mod + INTERFACE h5t + MODULE PROCEDURE h5t_real + MODULE PROCEDURE h5t_dble + END INTERFACE + CONTAINS + SUBROUTINE h5t_real(r) + REAL :: r + END SUBROUTINE h5t_real + SUBROUTINE h5t_dble(d) + DOUBLE PRECISION :: d + END SUBROUTINE h5t_dble + END MODULE type_mod + PROGRAM main + USE type_mod + REAL :: r + DOUBLE PRECISION :: d + CALL h5t(r) + CALL h5t(d) + END PROGRAM main + ])], [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes]) + FORTRAN_DEFAULT_REALisDBLE="yes"]) +]) + +dnl Checking if the compiler supports the required Fortran 2003 features and +dnl disable Fortran 2003 if it does not. + +AC_DEFUN([PAC_PROG_FC_HAVE_F2003_REQUIREMENTS],[ + AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF]) +dnl -------------------------------------------------------------------- +dnl Default for FORTRAN 2003 compliant compilers +dnl + HAVE_FORTRAN_2003="no" + HAVE_F2003_REQUIREMENTS="no" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[ + + USE iso_c_binding + IMPLICIT NONE + TYPE(C_PTR) :: ptr + TYPE(C_FUNPTR) :: funptr + CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr + + ptr = C_LOC(ichr(1:1)) + + ])],[AC_MSG_RESULT([yes]) + HAVE_F2003_REQUIREMENTS=[yes]], + [AC_MSG_RESULT([no])]) +]) + +dnl ------------------------------------------------------------------------- +dnl AC_F9X_MODS() +dnl +dnl Check how F9X handles modules. This macro also checks which +dnl command-line option to use to include the module once it's built. +dnl +AC_DEFUN([AC_F9X_MODS], +[AC_MSG_CHECKING(what $FC does with modules) +AC_LANG_PUSH(Fortran) + +test -d conftestdir || mkdir conftestdir +cd conftestdir +rm -rf * + +cat >conftest.$ac_ext <<EOF + module module + integer foo + end module module +EOF + +eval $ac_compile +modfiles="" +F9XMODEXT="" + +for f in conftest.o module.mod MODULE.mod module.M MODULE.M; do + if test -f "$f" ; then + modfiles="$f" + + case "$f" in + *.o) F9XMODEXT="o" ;; + *.mod) F9XMODEXT="mod" ;; + *.M) F9XMODEXT="M" ;; + esac + fi +done + +echo $modfiles 6>&1 +if test "$modfiles" = file.o; then + echo $ac_n "checking whether $FC -em is saner""... $ac_c" 1>&6 + OLD_FCFLAGS=$FCFLAGS + FCFLAGS="$FCFLAGS -em" + eval $ac_compile + modfiles="" + for f in file.o module.mod MODULE.mod module.M MODULE.M; do + test -f $f && modfiles="$f" + done + if test "$modfiles" = "file.o"; then + FCFLAGS=$OLD_FCFLAGS + echo no 6>&1 + else + echo yes 6>&1 + fi +fi +cd .. + +AC_MSG_CHECKING(how $FC finds modules) + +for flag in "-I" "-M" "-p"; do + cat >conftest.$ac_ext <<EOF + program conftest + use module + end program conftest +EOF + + ac_compile='${FC-f90} $FCFLAGS ${flag}conftestdir -c conftest.$ac_ext 1>&AS_MESSAGE_LOG_FD' + + if AC_TRY_EVAL(ac_compile); then + F9XMODFLAG=$flag + break + fi +done + +if test -n "$F9XMODFLAG"; then + echo $F9XMODFLAG 1>&6 + FCFLAGS="$F9XMODFLAG. $FCFLAGS" +else + echo unknown 1>&6 +fi +AC_SUBST(F9XMODFLAG) +AC_SUBST(F9XMODEXT) +rm -rf conftest* +AC_LANG_POP(Fortran) +]) + +dnl ---------------------- +dnl Parallel Test Programs +dnl ---------------------- + +dnl Try link a simple MPI program. + +AC_DEFUN([PAC_PROG_FC_MPI_CHECK],[ + +dnl Change to the Fortran 90 language + AC_LANG_PUSH(Fortran) + +dnl Try link a simple MPI program. + AC_MSG_CHECKING([whether a simple MPI-IO Fortran program can be linked]) + AC_LINK_IFELSE([ + PROGRAM main + INCLUDE 'mpif.h' + INTEGER :: comm, amode, info, fh, ierror + CHARACTER(LEN=1) :: filename + CALL MPI_File_open( comm, filename, amode, info, fh, ierror) + END], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([unable to link a simple MPI-IO Fortran program])]) + +dnl Change to the C language + AC_LANG_POP(Fortran) +]) + diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index bc11e20..dc87d5a 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -30,7 +30,7 @@ Obtaining HDF5 source code CMake version 1. We suggest you obtain the latest CMake from the Kitware web site. - The HDF5 1.8."X" product requires a minimum CMake version 2.8.12, + The HDF5 1.8."X" product requires a minimum CMake version 3.1.0, where "X" is the current HDF5 release version. @@ -227,7 +227,7 @@ IV. Further considerations ======================================================================== 1. We suggest you obtain the latest CMake for windows from the Kitware - web site. The HDF5 1.8."X" product requires a minimum CMake version 2.8.12. + web site. The HDF5 1.8."X" product requires a minimum CMake version 3.1.0. 2. If you plan to use Zlib or Szip: A. Download the binary packages and install them in a central location. @@ -542,15 +542,14 @@ The config/cmake/cacheinit.cmake file overrides the following values. ---------------- General Build Options --------------------- BUILD_SHARED_LIBS "Build Shared Libraries" OFF BUILD_STATIC_EXECS "Build Static Executabless" OFF -BUILD_STATIC_PIC "Build Static PIC" OFF BUILD_TESTING "Build HDF5 Unit Testing" OFF ---------------- HDF5 Build Options --------------------- -HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF -HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" OFF +HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" ON +HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF -HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" OFF -HDF5_BUILD_TOOLS "Build HDF5 Tools" OFF +HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON +HDF5_BUILD_TOOLS "Build HDF5 Tools" ON if (HDF5_BUILD_FORTRAN) HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON @@ -574,7 +573,6 @@ HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" HDF5_TEST_VFD "Execute tests with different VFDs" OFF HDF5_USE_16_API_DEFAULT "Use the HDF5 1.6.x API by default" OFF HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." OFF -HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON HDF5_WANT_DCONV_EXCEPTION "exception handling functions is checked during data conversions" ON HDF5_ENABLE_THREADSAFE "Enable Threadsafety" OFF if (APPLE) @@ -590,10 +588,6 @@ HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 0 SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0 -HDF5_USE_FILTER_FLETCHER32 "Use the FLETCHER32 Filter" ON -HDF5_USE_FILTER_NBIT "Use the NBIT Filter" ON -HDF5_USE_FILTER_SCALEOFFSET "Use the SCALEOFFSET Filter" ON -HDF5_USE_FILTER_SHUFFLE "Use the SHUFFLE Filter" ON if (HDF5_ENABLE_SZIP_SUPPORT) HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF if (WINDOWS) @@ -632,7 +626,7 @@ platform configuration script. # CTestScript.cmake file. Usage: # "ctest -S HDF518LinuxCmake.cmake -C Release -O hdf518shared.log" ############################################################################ -cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR) +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) # this is the location of the source hardcoded to hdf5-1.8.13 set(CTEST_SOURCE_NAME hdf5-1.8.13) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 23b2000..17f9ac1 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.215 currently under development +HDF5 version 1.9.216 currently under development ================================================================================ diff --git a/release_docs/USING_CMake_Examples.txt b/release_docs/USING_CMake_Examples.txt index 6bc7ff0..0956ff1 100644 --- a/release_docs/USING_CMake_Examples.txt +++ b/release_docs/USING_CMake_Examples.txt @@ -22,7 +22,7 @@ I. Preconditions 1. We suggest you obtain the latest CMake for windows from the Kitware web site. The HDF5 1.8.x product requires a minimum CMake version - of 2.8.12. + of 3.1.0. 2. You have installed the HDF5 library built with CMake, by executing the HDF Install Utility (the *.exe file in the binary package for @@ -47,7 +47,7 @@ Files in the HDF5 install directory: Default installation process: Create a directory to run the examples, i.e. \test_hdf5. - Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, do NOT unzip. + Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, uncompress. Copy HDF518_Examples.cmake to this directory. Edit line 8 of the HDF518_Examples.cmake file and change the INSTALLDIR to the HDF5 install location. @@ -55,7 +55,7 @@ Default installation process: Execute from this directory: ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log -The script will uncompress the examples file HDF5Examples-0.1.1-Source.zip(.tar.gz), +The script will use the examples folder HDF5Examples-0.1.1-Source, and create a build directory inside the HDF5Examples-0.1.1-Source directory. It will then configure, build, and execute the examples. All the log files will be found under the build\Testing\Temporary directory, check these for @@ -75,9 +75,9 @@ Line 14: uncomment to allow Mac machines to build shared examples. Line 15: uncomment to build and test Fortran examples. -Line 16: uncomment to build and test Fortran examples with F2003 option. +Line 16: comment to NOT build and test Fortran examples with F2003 option. -Line 17: comment to use an existing source directory. +Line 17: uncomment to use a compressed source file. Line 71: change the CTEST_7Z_COMMAND to a different unzip program. diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt index 6195dc3..347876c 100644 --- a/release_docs/USING_HDF5_CMake.txt +++ b/release_docs/USING_HDF5_CMake.txt @@ -37,7 +37,7 @@ I. Preconditions 1. We suggest you obtain the latest CMake for windows from the Kitware web site. The HDF5 1.8.x product requires a minimum CMake version - of 2.8.12. + of 3.1.0. 2. You have installed the HDF5 library built with CMake, by executing the HDF Install Utility (the *.exe file in the binary package for @@ -179,7 +179,7 @@ Create a CMakeLists.txt file at the source root. Include the following text in the file: ########################################################## -cmake_minimum_required (VERSION 2.8.12) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5MyApp C CXX) FIND_PACKAGE (HDF5 NAMES hdf5) @@ -232,7 +232,7 @@ ctest # where hdf518Examples is the source folder relative to the location of these scripts ############################################################################ -cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a137506..56315bd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_SRC C CXX) #----------------------------------------------------------------------------- @@ -486,6 +486,7 @@ set (H5PL_SRCS set (H5PL_HDRS ${HDF5_SRC_DIR}/H5PLextern.h + ${HDF5_SRC_DIR}/H5PLpublic.h ) IDE_GENERATED_PROPERTIES ("H5PL" "${H5PL_HDRS}" "${H5PL_SRCS}" ) @@ -788,14 +789,14 @@ set (H5_PRIVATE_HEADERS # specific type checks inside #----------------------------------------------------------------------------- #add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) -#TARGET_C_PROPERTIES (H5detect " " " ") +#TARGET_C_PROPERTIES (H5detect STATIC " " " ") IF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) SET (LOCAL_OPT_FLAG "-O0") ELSE (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) SET (LOCAL_OPT_FLAG " ") ENDIF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c) -TARGET_C_PROPERTIES (H5detect ${LOCAL_OPT_FLAG} " ") +TARGET_C_PROPERTIES (H5detect STATIC ${LOCAL_OPT_FLAG} " ") if (MSVC OR MINGW) target_link_libraries (H5detect "ws2_32.lib") @@ -810,7 +811,7 @@ add_custom_command ( ) add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) -TARGET_C_PROPERTIES (H5make_libsettings " " " ") +TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5make_libsettings "ws2_32.lib") endif (MSVC OR MINGW) @@ -877,7 +878,7 @@ set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5overflow.h) set_source_files_properties (${HDF5_BINARY_DIR}/H5overflow.h GENERATED) add_library (${HDF5_LIB_TARGET} ${LIB_TYPE} ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS}) if (NOT WIN32) target_link_libraries (${HDF5_LIB_TARGET} dl) @@ -52,7 +52,9 @@ /* Local Prototypes */ /********************/ static void H5_debug_mask(const char*); - +#ifdef H5_HAVE_PARALLEL +static int H5_mpi_delete_cb(MPI_Comm comm, int keyval, void *attr_val, int *flag); +#endif /*H5_HAVE_PARALLEL*/ /*********************/ /* Package Variables */ @@ -109,6 +111,43 @@ H5_init_library(void) herr_t ret_value = SUCCEED; FUNC_ENTER_NOAPI(FAIL) + +#ifdef H5_HAVE_PARALLEL + { + int mpi_initialized; + int mpi_code; + + MPI_Initialized(&mpi_initialized); + +#ifdef H5_HAVE_MPE + /* Initialize MPE instrumentation library. */ + if (!H5_MPEinit_g) + { + int mpe_code; + if (mpi_initialized){ + mpe_code = MPE_Init_log(); + HDassert(mpe_code >=0); + H5_MPEinit_g = TRUE; + } + } +#endif /*H5_HAVE_MPE*/ + + /* add an attribute on MPI_COMM_SELF to call H5_term_library + when it is destroyed, i.e. on MPI_Finalize */ + if (mpi_initialized) { + int key_val; + + if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, + (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, + &key_val, NULL))) + HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code) + + if(MPI_SUCCESS != (mpi_code = MPI_Comm_set_attr(MPI_COMM_SELF, key_val, NULL))) + HMPI_GOTO_ERROR(FAIL, "MPI_Comm_set_attr failed", mpi_code) + } + } +#endif /*H5_HAVE_PARALLEL*/ + /* * Make sure the package information is updated. */ @@ -133,24 +172,6 @@ H5_init_library(void) H5_debug_g.pkg[H5_PKG_VL].name = "vl"; H5_debug_g.pkg[H5_PKG_Z].name = "z"; -#ifdef H5_HAVE_MPE - /* Initialize MPE instrumentation library. May need to move this - * up earlier if any of the above initialization involves using - * the instrumentation code. - */ - if (!H5_MPEinit_g) - { - int mpe_code; - int mpi_initialized; - MPI_Initialized(&mpi_initialized); - if (mpi_initialized){ - mpe_code = MPE_Init_log(); - HDassert(mpe_code >=0); - H5_MPEinit_g = TRUE; - } - } -#endif - /* * Install atexit() library cleanup routines unless the H5dont_atexit() * has been called. Once we add something to the atexit() list it stays @@ -584,6 +605,27 @@ H5_debug_mask(const char *s) } } /* end H5_debug_mask() */ +#ifdef H5_HAVE_PARALLEL + +/*------------------------------------------------------------------------- + * Function: H5_mpi_delete_cb + * + * Purpose: Callback attribute on MPI_COMM_SELF to terminate the HDF5 + * library when the communicator is destroyed, i.e. on MPI_Finalize. + * + * Return: MPI_SUCCESS + * + * Programmer: Mohamad Chaarawi, February 2015 + * + *------------------------------------------------------------------------- + */ +static int H5_mpi_delete_cb(MPI_Comm UNUSED comm, int UNUSED keyval, void UNUSED *attr_val, int UNUSED *flag) +{ + H5_term_library(); + return MPI_SUCCESS; +} +#endif /*H5_HAVE_PARALLEL*/ + /*------------------------------------------------------------------------- * Function: H5get_libversion @@ -822,27 +864,109 @@ H5close(void) /*------------------------------------------------------------------------- + * Function: H5allocate_memory + * + * Purpose: Allocate a memory buffer with the semantics of malloc(). + * + * NOTE: This function is intended for use with filter + * plugins so that all allocation and free operations + * use the same memory allocator. It is not intended for + * use as a general memory allocator in applications. + * + * Parameters: + * + * size: The size of the buffer. + * + * clear: Whether or not to memset the buffer to 0. + * + * Return: + * + * Success: A pointer to the allocated buffer. + * + * Failure: NULL + * + *------------------------------------------------------------------------- + */ +void * +H5allocate_memory(size_t size, hbool_t clear) +{ + void *ret_value = NULL; + + FUNC_ENTER_API_NOINIT; + H5TRACE2("*x", "zb", size, clear); + + if(clear) + ret_value = H5MM_calloc(size); + else + ret_value = H5MM_malloc(size); + + FUNC_LEAVE_API(ret_value) + +} /* end H5allocate_memory() */ + + +/*------------------------------------------------------------------------- + * Function: H5resize_memory + * + * Purpose: Resize a memory buffer with the semantics of realloc(). + * + * NOTE: This function is intended for use with filter + * plugins so that all allocation and free operations + * use the same memory allocator. It is not intended for + * use as a general memory allocator in applications. + * + * Parameters: + * + * mem: The buffer to be resized. + * + * size: The size of the buffer. + * + * Return: + * + * Success: A pointer to the resized buffer. + * + * Failure: NULL (the input buffer will be unchanged) + * + *------------------------------------------------------------------------- + */ +void * +H5resize_memory(void *mem, size_t size) +{ + void *ret_value = NULL; + + FUNC_ENTER_API_NOINIT; + H5TRACE2("*x", "*xz", mem, size); + + ret_value = H5MM_realloc(mem, size); + + FUNC_LEAVE_API(ret_value) + +} /* end H5resize_memory() */ + + +/*------------------------------------------------------------------------- * Function: H5free_memory * - * Purpose: Frees memory allocated by the library that it is the user's + * Purpose: Frees memory allocated by the library that it is the user's * responsibility to free. Ensures that the same library * that was used to allocate the memory frees it. Passing * NULL pointers is allowed. * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * *------------------------------------------------------------------------- */ herr_t H5free_memory(void *mem) { - FUNC_ENTER_API_NOINIT + FUNC_ENTER_API_NOINIT; H5TRACE1("e", "*x", mem); /* At this time, it is impossible for this to fail. */ HDfree(mem); FUNC_LEAVE_API(SUCCEED) + } /* end H5free_memory() */ @@ -906,3 +1030,4 @@ DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved) return fOkay; } #endif /* H5_HAVE_WIN32_API && H5_BUILT_AS_DYNAMIC_LIB && H5_HAVE_WIN_THREADS && H5_HAVE_THREADSAFE*/ + @@ -510,22 +510,18 @@ H5B_split(H5F_t *f, hid_t dxpl_id, H5B_ins_ud_t *bt_ud, unsigned idx, bt_ud->bt->nchildren = nleft; /* - * Update sibling pointers. + * Update other sibling pointers. */ split_bt_ud->bt->left = bt_ud->addr; split_bt_ud->bt->right = bt_ud->bt->right; if(H5F_addr_defined(bt_ud->bt->right)) { - H5B_t *tmp_bt; - H5B_cache_ud_t cache_udata2; /* User-data for metadata cache callback */ + H5B_t *tmp_bt; - cache_udata2.f = f; - cache_udata2.type = shared->type; - cache_udata2.rc_shared = bt_ud->bt->rc_shared; - if(NULL == (tmp_bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, bt_ud->bt->right, &cache_udata2, H5AC_WRITE))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load right sibling") + if(NULL == (tmp_bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, bt_ud->bt->right, &cache_udata, H5AC_WRITE))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load right sibling") - tmp_bt->left = split_bt_ud->addr; + tmp_bt->left = split_bt_ud->addr; if(H5AC_unprotect(f, dxpl_id, H5AC_BT, bt_ud->bt->right, tmp_bt, H5AC__DIRTIED_FLAG) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") @@ -539,6 +535,7 @@ done: HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") split_bt_ud->bt = NULL; split_bt_ud->addr = HADDR_UNDEF; + split_bt_ud->cache_flags = H5AC__NO_FLAGS_SET; } /* end if */ FUNC_LEAVE_NOAPI(ret_value) @@ -559,8 +556,7 @@ done: *------------------------------------------------------------------------- */ herr_t -H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, - void *udata) +H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, void *udata) { /* * These are defined this way to satisfy alignment constraints. @@ -609,6 +605,8 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, <_key_changed, md_key, udata, rt_key, &rt_key_changed, &split_bt_ud/*out*/)) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "unable to insert key") + + /* Check if the root node split */ if(H5B_INS_NOOP == my_ins) { HDassert(!split_bt_ud.bt); HGOTO_DONE(SUCCEED) @@ -633,7 +631,7 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, */ H5_CHECK_OVERFLOW(shared->sizeof_rnode,size_t,hsize_t); if(HADDR_UNDEF == (old_root_addr = H5MF_alloc(f, H5FD_MEM_BTREE, dxpl_id, (hsize_t)shared->sizeof_rnode))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "unable to allocate file space to move root") + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "unable to allocate file space to move root") /* * Move the node to the new location @@ -641,7 +639,7 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, /* Make a copy of the old root information */ if(NULL == (new_root_bt = H5B_copy(bt_ud.bt))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTCOPY, FAIL, "unable to copy old root"); + HGOTO_ERROR(H5E_BTREE, H5E_CANTCOPY, FAIL, "unable to copy old root") /* Unprotect the old root so we can move it. Also force it to be marked * dirty so it is written to the new location. */ @@ -651,7 +649,7 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, /* Move the location of the old root on the disk */ if(H5AC_move_entry(f, H5AC_BT, bt_ud.addr, old_root_addr) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTSPLIT, FAIL, "unable to move B-tree root node") + HGOTO_ERROR(H5E_BTREE, H5E_CANTSPLIT, FAIL, "unable to move B-tree root node") bt_ud.addr = old_root_addr; /* Update the split b-tree's left pointer to point to the new location */ @@ -769,7 +767,7 @@ H5B_insert_child(H5B_t *bt, unsigned *bt_flags, unsigned idx, *bt_flags |= H5AC__DIRTIED_FLAG; FUNC_LEAVE_NOAPI(SUCCEED) -} +} /* end H5B_insert_child() */ /*------------------------------------------------------------------------- @@ -1046,6 +1044,10 @@ H5B_insert_helper(H5F_t *f, hid_t dxpl_id, H5B_ins_ud_t *bt_ud, else HDmemcpy(rt_key, H5B_NKEY(bt, shared, idx + 1), type->sizeof_nkey); } /* end if */ + + /* + * Handle changes/additions to children + */ if(H5B_INS_CHANGE == my_ins) { /* * The insertion simply changed the address for the child. @@ -1081,7 +1083,7 @@ H5B_insert_helper(H5F_t *f, hid_t dxpl_id, H5B_ins_ud_t *bt_ud, /* Insert the child */ if(H5B_insert_child(tmp_bt, tmp_bt_flags_ptr, idx, new_child_bt_ud.addr, my_ins, md_key) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, H5B_INS_ERROR, "can't insert child") - } + } /* end else-if */ /* * If this node split, return the mid key (the one that is shared @@ -1113,7 +1115,7 @@ done: HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5B_INS_ERROR, "unable to unprotect new child") FUNC_LEAVE_NOAPI(ret_value) -} +} /* end H5B_insert_helper() */ /*------------------------------------------------------------------------- @@ -1134,13 +1136,12 @@ static herr_t H5B_iterate_helper(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, H5B_operator_t op, void *udata) { - H5B_t *bt = NULL; /* Pointer to current B-tree node */ + H5B_t *bt = NULL; /* Pointer to current B-tree node */ H5UC_t *rc_shared; /* Ref-counted shared info */ H5B_shared_t *shared; /* Pointer to shared B-tree info */ H5B_cache_ud_t cache_udata; /* User-data for metadata cache callback */ - uint8_t *native = NULL; /* Array of keys in native format */ - haddr_t *child = NULL; /* Array of child pointers */ - herr_t ret_value; /* Return value */ + unsigned u; /* Local index variable */ + herr_t ret_value = H5_ITER_CONT; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -1155,7 +1156,7 @@ H5B_iterate_helper(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t add /* Get shared info for B-tree */ if(NULL == (rc_shared = (type->get_shared)(f, udata))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object") + HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object") shared = (H5B_shared_t *)H5UC_GET_OBJ(rc_shared); HDassert(shared); @@ -1164,99 +1165,21 @@ H5B_iterate_helper(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t add cache_udata.type = type; cache_udata.rc_shared = rc_shared; if(NULL == (bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, addr, &cache_udata, H5AC_READ))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, H5_ITER_ERROR, "unable to load B-tree node") - - if(bt->level > 0) { - haddr_t left_child = bt->child[0]; /* Address of left-most child in node */ - - /* Release current node */ - if(H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node") - bt = NULL; - - /* Keep following the left-most child until we reach a leaf node. */ - if((ret_value = H5B_iterate_helper(f, dxpl_id, type, left_child, op, udata)) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTLIST, H5_ITER_ERROR, "unable to list B-tree node") - } /* end if */ - else { - unsigned nchildren; /* Number of child pointers */ - haddr_t next_addr; /* Address of next node to the right */ - - /* Allocate space for a copy of the native records & child pointers */ - if(NULL == (native = H5FL_BLK_MALLOC(native_block, shared->sizeof_keys))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, H5_ITER_ERROR, "memory allocation failed for shared B-tree native records") - if(NULL == (child = H5FL_SEQ_MALLOC(haddr_t, (size_t)shared->two_k))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, H5_ITER_ERROR, "memory allocation failed for shared B-tree child addresses") - - /* Cache information from this node */ - nchildren = bt->nchildren; - next_addr = bt->right; + HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, H5_ITER_ERROR, "unable to load B-tree node") - /* Copy the native keys & child pointers into local arrays */ - HDmemcpy(native, bt->native, shared->sizeof_keys); - HDmemcpy(child, bt->child, (nchildren * sizeof(haddr_t))); - - /* Release current node */ - if(H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node") - bt = NULL; - - /* - * We've reached the left-most leaf. Now follow the right-sibling - * pointer from leaf to leaf until we've processed all leaves. - */ - ret_value = H5_ITER_CONT; - while(ret_value == H5_ITER_CONT) { - haddr_t *curr_child; /* Pointer to node's child addresses */ - uint8_t *curr_native; /* Pointer to node's native keys */ - unsigned u; /* Local index variable */ - - /* - * Perform the iteration operator, which might invoke an - * application callback. - */ - for(u = 0, curr_child = child, curr_native = native; u < nchildren && ret_value == H5_ITER_CONT; u++, curr_child++, curr_native += type->sizeof_nkey) { - ret_value = (*op)(f, dxpl_id, curr_native, *curr_child, curr_native + type->sizeof_nkey, udata); - if(ret_value < 0) - HERROR(H5E_BTREE, H5E_CANTLIST, "iterator function failed"); - } /* end for */ - - /* Check for continuing iteration */ - if(ret_value == H5_ITER_CONT) { - /* Check for another node */ - if(H5F_addr_defined(next_addr)) { - /* Protect the next node to the right */ - addr = next_addr; - if(NULL == (bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, addr, &cache_udata, H5AC_READ))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, H5_ITER_ERROR, "B-tree node") - - /* Cache information from this node */ - nchildren = bt->nchildren; - next_addr = bt->right; - - /* Copy the native keys & child pointers into local arrays */ - HDmemcpy(native, bt->native, shared->sizeof_keys); - HDmemcpy(child, bt->child, nchildren * sizeof(haddr_t)); - - /* Unprotect node */ - if(H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node") - bt = NULL; - } /* end if */ - else - /* Exit loop */ - break; - } /* end if */ - } /* end while */ - } /* end else */ + /* Iterate over node's children */ + for(u = 0; u < bt->nchildren && ret_value == H5_ITER_CONT; u++) { + if(bt->level > 0) + ret_value = H5B_iterate_helper(f, dxpl_id, type, bt->child[u], op, udata); + else + ret_value = (*op)(f, dxpl_id, H5B_NKEY(bt, shared, u), bt->child[u], H5B_NKEY(bt, shared, u + 1), udata); + if(ret_value < 0) + HERROR(H5E_BTREE, H5E_BADITER, "B-tree iteration failed"); + } /* end for */ done: if(bt && H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0) HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node") - if(native) - native = H5FL_BLK_FREE(native_block, native); - if(child) - child = H5FL_SEQ_FREE(haddr_t, child); FUNC_LEAVE_NOAPI(ret_value) } /* end H5B_iterate_helper() */ @@ -1715,7 +1638,7 @@ H5B_delete(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, void /* Get shared info for B-tree */ if(NULL == (rc_shared = (type->get_shared)(f, udata))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object") + HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object") shared = (H5B_shared_t *)H5UC_GET_OBJ(rc_shared); HDassert(shared); @@ -1724,7 +1647,7 @@ H5B_delete(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, void cache_udata.type = type; cache_udata.rc_shared = rc_shared; if(NULL == (bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, addr, &cache_udata, H5AC_WRITE))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load B-tree node") + HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load B-tree node") /* Iterate over all children in tree, deleting them */ if(bt->level > 0) { @@ -128,11 +128,11 @@ H5FL_DEFINE_STATIC(H5B2_t); H5B2_t * H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udata) { - H5B2_t *bt2 = NULL; /* Pointer to the B-tree */ - H5B2_hdr_t *hdr = NULL; /* Pointer to the B-tree header */ + H5B2_t *bt2 = NULL; /* Pointer to the B-tree */ + H5B2_hdr_t *hdr = NULL; /* Pointer to the B-tree header */ H5B2_hdr_cache_ud_t cache_udata; /* User-data for callback */ haddr_t hdr_addr; /* B-tree header address */ - H5B2_t *ret_value; /* Return value */ + H5B2_t *ret_value; /* Return value */ FUNC_ENTER_NOAPI(NULL) @@ -147,7 +147,7 @@ H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udat /* Create shared v2 B-tree header */ if(HADDR_UNDEF == (hdr_addr = H5B2_hdr_create(f, dxpl_id, cparam, ctx_udata))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't create v2 B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't create v2 B-tree header") /* Create v2 B-tree wrapper */ if(NULL == (bt2 = H5FL_MALLOC(H5B2_t))) @@ -157,7 +157,7 @@ H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udat cache_udata.f = f; cache_udata.ctx_udata = ctx_udata; if(NULL == (hdr = (H5B2_hdr_t *)H5AC_protect(f, dxpl_id, H5AC_BT2_HDR, hdr_addr, &cache_udata, H5AC_WRITE))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, NULL, "unable to load B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, NULL, "unable to load B-tree header") /* Point v2 B-tree wrapper at header and bump it's ref count */ bt2->hdr = hdr; @@ -166,7 +166,7 @@ H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udat /* Increment # of files using this v2 B-tree header */ if(H5B2_hdr_fuse_incr(bt2->hdr) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment file reference count on shared v2 B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment file reference count on shared v2 B-tree header") /* Set file pointer for this v2 B-tree open context */ bt2->f = f; @@ -299,11 +299,11 @@ H5B2_insert(H5B2_t *bt2, hid_t dxpl_id, void *udata) /* Attempt to insert record into B-tree */ if(hdr->depth > 0) { - if(H5B2_insert_internal(hdr, dxpl_id, hdr->depth, NULL, &hdr->root, udata) < 0) + if(H5B2_insert_internal(hdr, dxpl_id, hdr->depth, NULL, &hdr->root, H5B2_POS_ROOT, udata) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree internal node") } /* end if */ else { - if(H5B2_insert_leaf(hdr, dxpl_id, &hdr->root, udata) < 0) + if(H5B2_insert_leaf(hdr, dxpl_id, &hdr->root, H5B2_POS_ROOT, udata) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree leaf node") } /* end else */ @@ -420,12 +420,13 @@ htri_t H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op, void *op_data) { - H5B2_hdr_t *hdr; /* Pointer to the B-tree header */ + H5B2_hdr_t *hdr; /* Pointer to the B-tree header */ H5B2_node_ptr_t curr_node_ptr; /* Node pointer info for current node */ unsigned depth; /* Current depth of the tree */ int cmp; /* Comparison value of records */ unsigned idx; /* Location of record which matches key */ - htri_t ret_value = TRUE; /* Return value */ + H5B2_nodepos_t curr_pos; /* Position of the current node */ + htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -441,16 +442,39 @@ H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op, /* Make copy of the root node pointer to start search with */ curr_node_ptr = hdr->root; - /* Current depth of the tree */ - depth = hdr->depth; - /* Check for empty tree */ if(curr_node_ptr.node_nrec == 0) HGOTO_DONE(FALSE) + /* Check record against min & max records in tree, to attempt to quickly + * find candidates or avoid further searching. + */ + if(hdr->min_native_rec != NULL) { + if((cmp = (hdr->cls->compare)(udata, hdr->min_native_rec)) < 0) + HGOTO_DONE(FALSE) /* Less than the least record--not found */ + else if(cmp == 0) { /* Record is found */ + if(op && (op)(hdr->min_native_rec, op_data) < 0) + HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "'found' callback failed for B-tree find operation") + HGOTO_DONE(TRUE) + } /* end if */ + } /* end if */ + if(hdr->max_native_rec != NULL) { + if((cmp = (hdr->cls->compare)(udata, hdr->max_native_rec)) > 0) + HGOTO_DONE(FALSE) /* Greater than the greatest record--not found */ + else if(cmp == 0) { /* Record is found */ + if(op && (op)(hdr->max_native_rec, op_data) < 0) + HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "'found' callback failed for B-tree find operation") + HGOTO_DONE(TRUE) + } /* end if */ + } /* end if */ + + /* Current depth of the tree */ + depth = hdr->depth; + /* Walk down B-tree to find record or leaf node where record is located */ cmp = -1; - while(depth > 0 && cmp != 0) { + curr_pos = H5B2_POS_ROOT; + while(depth > 0) { H5B2_internal_t *internal; /* Pointer to internal node in B-tree */ H5B2_node_ptr_t next_node_ptr; /* Node pointer info for next node */ @@ -467,6 +491,24 @@ H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op, /* Get node pointer for next node to search */ next_node_ptr=internal->node_ptrs[idx]; + /* Set the position of the next node */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) + curr_pos = H5B2_POS_LEFT; + else + curr_pos = H5B2_POS_MIDDLE; + } /* end if */ + else if(idx == internal->nrec) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) + curr_pos = H5B2_POS_RIGHT; + else + curr_pos = H5B2_POS_MIDDLE; + } /* end if */ + else + curr_pos = H5B2_POS_MIDDLE; + } /* end if */ + /* Unlock current node */ if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") @@ -523,6 +565,27 @@ H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op, HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "'found' callback failed for B-tree find operation") } /* end if */ + + /* Check for record being the min or max for the tree */ + /* (Don't use 'else' for the idx check, to allow for root leaf node) */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->min_native_rec == NULL) + if(NULL == (hdr->min_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree min record info") + HDmemcpy(hdr->min_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size); + } /* end if */ + } /* end if */ + if(idx == (unsigned)(leaf->nrec - 1)) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->max_native_rec == NULL) + if(NULL == (hdr->max_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree max record info") + HDmemcpy(hdr->max_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size); + } /* end if */ + } /* end if */ + } /* end if */ } /* end else */ /* Unlock current node */ @@ -577,9 +640,6 @@ H5B2_index(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order, hsize_t idx, /* Make copy of the root node pointer to start search with */ curr_node_ptr = hdr->root; - /* Current depth of the tree */ - depth = hdr->depth; - /* Check for empty tree */ if(curr_node_ptr.node_nrec == 0) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree has no records") @@ -588,6 +648,9 @@ H5B2_index(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order, hsize_t idx, if(idx >= curr_node_ptr.all_nrec) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree doesn't have that many records") + /* Current depth of the tree */ + depth = hdr->depth; + /* Check for reverse indexing and map requested index to appropriate forward index */ if(order == H5_ITER_DEC) idx = curr_node_ptr.all_nrec - (idx + 1); @@ -736,7 +799,7 @@ H5B2_remove(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_remove_t op, hbool_t depth_decreased = FALSE; /* Flag to indicate whether the depth of the B-tree decreased */ if(H5B2_remove_internal(hdr, dxpl_id, &depth_decreased, NULL, hdr->depth, - &(hdr->cache_info), NULL, &hdr->root, udata, op, op_data) < 0) + &(hdr->cache_info), NULL, H5B2_POS_ROOT, &hdr->root, udata, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node") /* Check for decreasing the depth of the B-tree */ @@ -754,7 +817,7 @@ H5B2_remove(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_remove_t op, } /* end for */ } /* end if */ else { - if(H5B2_remove_leaf(hdr, dxpl_id, &hdr->root, udata, op, op_data) < 0) + if(H5B2_remove_leaf(hdr, dxpl_id, &hdr->root, H5B2_POS_ROOT, udata, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node") } /* end else */ @@ -818,7 +881,7 @@ H5B2_remove_by_idx(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order, hbool_t depth_decreased = FALSE; /* Flag to indicate whether the depth of the B-tree decreased */ if(H5B2_remove_internal_by_idx(hdr, dxpl_id, &depth_decreased, NULL, hdr->depth, - &(hdr->cache_info), NULL, &hdr->root, idx, op, op_data) < 0) + &(hdr->cache_info), NULL, &hdr->root, H5B2_POS_ROOT, idx, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node") /* Check for decreasing the depth of the B-tree */ @@ -836,7 +899,7 @@ H5B2_remove_by_idx(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order, } /* end for */ } /* end if */ else { - if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, &hdr->root, (unsigned)idx, op, op_data) < 0) + if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, &hdr->root, H5B2_POS_ROOT, (unsigned)idx, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node") } /* end else */ @@ -970,6 +1033,7 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op, { H5B2_hdr_t *hdr; /* Pointer to the B-tree header */ H5B2_node_ptr_t curr_node_ptr; /* Node pointer info for current node */ + H5B2_nodepos_t curr_pos; /* Position of current node */ unsigned depth; /* Current depth of the tree */ int cmp; /* Comparison value of records */ unsigned idx; /* Location of record which matches key */ @@ -990,16 +1054,17 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op, /* Make copy of the root node pointer to start search with */ curr_node_ptr = hdr->root; - /* Current depth of the tree */ - depth = hdr->depth; - /* Check for empty tree */ if(0 == curr_node_ptr.node_nrec) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree has no records") + /* Current depth of the tree */ + depth = hdr->depth; + /* Walk down B-tree to find record or leaf node where record is located */ cmp = -1; - while(depth > 0 && cmp != 0) { + curr_pos = H5B2_POS_ROOT; + while(depth > 0) { unsigned internal_flags = H5AC__NO_FLAGS_SET; H5B2_internal_t *internal; /* Pointer to internal node in B-tree */ H5B2_node_ptr_t next_node_ptr; /* Node pointer info for next node */ @@ -1017,6 +1082,24 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op, /* Get node pointer for next node to search */ next_node_ptr = internal->node_ptrs[idx]; + /* Set the position of the next node */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) + curr_pos = H5B2_POS_LEFT; + else + curr_pos = H5B2_POS_MIDDLE; + } /* end if */ + else if(idx == internal->nrec) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) + curr_pos = H5B2_POS_RIGHT; + else + curr_pos = H5B2_POS_MIDDLE; + } /* end if */ + else + curr_pos = H5B2_POS_MIDDLE; + } /* end if */ + /* Unlock current node */ if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") @@ -1092,6 +1175,27 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op, HGOTO_ERROR(H5E_BTREE, H5E_CANTMODIFY, FAIL, "'modify' callback failed for B-tree find operation") } /* end if */ + + /* Check for modified record being the min or max for the tree */ + /* (Don't use 'else' for the idx check, to allow for root leaf node) */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->min_native_rec == NULL) + if(NULL == (hdr->min_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree min record info") + HDmemcpy(hdr->min_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size); + } /* end if */ + } /* end if */ + if(idx == (unsigned)(leaf->nrec - 1)) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->max_native_rec == NULL) + if(NULL == (hdr->max_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree max record info") + HDmemcpy(hdr->max_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size); + } /* end if */ + } /* end if */ + } /* end if */ } /* end else */ /* Mark the node as dirty if it changed */ diff --git a/src/H5B2cache.c b/src/H5B2cache.c index 1554501..1e2a6a3 100644 --- a/src/H5B2cache.c +++ b/src/H5B2cache.c @@ -15,11 +15,11 @@ /*------------------------------------------------------------------------- * - * Created: H5B2cache.c - * Jan 31 2005 - * Quincey Koziol <koziol@ncsa.uiuc.edu> + * Created: H5B2cache.c + * Jan 31 2005 + * Quincey Koziol <koziol@hdfgroup.org> * - * Purpose: Implement v2 B-tree metadata cache methods. + * Purpose: Implement v2 B-tree metadata cache methods. * *------------------------------------------------------------------------- */ @@ -174,7 +174,7 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* Allocate new B-tree header and reset cache info */ if(NULL == (hdr = H5B2_hdr_alloc(udata->f))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "allocation failed for B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "allocation failed for B-tree header") /* Wrap the local buffer for serialized header info */ if(NULL == (wb = H5WB_wrap(hdr_buf, sizeof(hdr_buf)))) @@ -186,7 +186,7 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* Read header from disk */ if(H5F_block_read(f, H5FD_MEM_BTREE, addr, hdr->hdr_size, dxpl_id, buf) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree header") /* Get temporary pointer to serialized header */ p = buf; @@ -203,7 +203,7 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* B-tree class */ id = (H5B2_subid_t)*p++; if(id >= H5B2_NUM_BTREE_ID) - HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type") + HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type") /* Node size (in bytes) */ UINT32DECODE(p, cparam.node_size); @@ -234,12 +234,12 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* Verify checksum */ if(stored_chksum != computed_chksum) - HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 B-tree header") /* Initialize B-tree header info */ cparam.cls = H5B2_client_class_g[id]; if(H5B2_hdr_init(hdr, &cparam, udata->ctx_udata, depth) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't initialize B-tree header info") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't initialize B-tree header info") /* Set the B-tree header's address */ hdr->addr = addr; @@ -342,17 +342,17 @@ H5B2__cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, /* Metadata checksum */ UINT32ENCODE(p, metadata_chksum); - /* Write the B-tree header. */ + /* Write the B-tree header. */ HDassert((size_t)(p - buf) == hdr->hdr_size); - if(H5F_block_write(f, H5FD_MEM_BTREE, addr, hdr->hdr_size, dxpl_id, buf) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTFLUSH, FAIL, "unable to save B-tree header to disk") + if(H5F_block_write(f, H5FD_MEM_BTREE, addr, hdr->hdr_size, dxpl_id, buf) < 0) + HGOTO_ERROR(H5E_BTREE, H5E_CANTFLUSH, FAIL, "unable to save B-tree header to disk") - hdr->cache_info.is_dirty = FALSE; + hdr->cache_info.is_dirty = FALSE; } /* end if */ if(destroy) if(H5B2__cache_hdr_dest(f, hdr) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTFREE, FAIL, "unable to destroy B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTFREE, FAIL, "unable to destroy B-tree header") done: /* Release resources */ @@ -445,17 +445,17 @@ done: /*------------------------------------------------------------------------- - * Function: H5B2__cache_hdr_size + * Function: H5B2__cache_hdr_size * - * Purpose: Compute the size in bytes of a B-tree header - * on disk, and return it in *size_ptr. On failure, - * the value of *size_ptr is undefined. + * Purpose: Compute the size in bytes of a B-tree header + * on disk, and return it in *size_ptr. On failure, + * the value of *size_ptr is undefined. * - * Return: Non-negative on success/Negative on failure + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol - * koziol@ncsa.uiuc.edu - * Feb 1 2005 + * Programmer: Quincey Koziol + * koziol@hdfgroup.org + * Feb 1 2005 * *------------------------------------------------------------------------- */ @@ -466,6 +466,7 @@ H5B2__cache_hdr_size(const H5F_t UNUSED *f, const H5B2_hdr_t *hdr, size_t *size_ /* check arguments */ HDassert(f); + HDassert(hdr); HDassert(size_ptr); /* Set size value */ @@ -519,14 +520,14 @@ H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* Increment ref. count on B-tree header */ if(H5B2_hdr_incr(udata->hdr) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header") /* Share B-tree information */ internal->hdr = udata->hdr; /* Read header from disk */ if(H5F_block_read(f, H5FD_MEM_BTREE, addr, udata->hdr->node_size, dxpl_id, udata->hdr->page) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree internal node") + HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree internal node") p = udata->hdr->page; @@ -541,7 +542,7 @@ H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* B-tree type */ if(*p++ != (uint8_t)udata->hdr->cls->id) - HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type") + HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type") /* Allocate space for the native keys in memory */ if(NULL == (internal->int_native = (uint8_t *)H5FL_FAC_MALLOC(udata->hdr->node_info[udata->depth].nat_rec_fac))) @@ -593,7 +594,7 @@ H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) /* Verify checksum */ if(stored_chksum != computed_chksum) - HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 internal node") + HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 internal node") /* Set return value */ ret_value = internal; @@ -853,7 +854,7 @@ H5B2__cache_leaf_load(H5F_t UNUSED *f, hid_t dxpl_id, haddr_t addr, void *_udata /* Allocate new leaf node and reset cache info */ if(NULL == (leaf = H5FL_MALLOC(H5B2_leaf_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") HDmemset(&leaf->cache_info, 0, sizeof(H5AC_info_t)); /* Set the B-tree header's file context for this operation */ @@ -861,33 +862,33 @@ H5B2__cache_leaf_load(H5F_t UNUSED *f, hid_t dxpl_id, haddr_t addr, void *_udata /* Increment ref. count on B-tree header */ if(H5B2_hdr_incr(udata->hdr) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header") /* Share B-tree header information */ leaf->hdr = udata->hdr; /* Read header from disk */ if(H5F_block_read(udata->f, H5FD_MEM_BTREE, addr, udata->hdr->node_size, dxpl_id, udata->hdr->page) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree leaf node") + HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree leaf node") p = udata->hdr->page; /* Magic number */ if(HDmemcmp(p, H5B2_LEAF_MAGIC, (size_t)H5_SIZEOF_MAGIC)) - HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node signature") + HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node signature") p += H5_SIZEOF_MAGIC; /* Version */ if(*p++ != H5B2_LEAF_VERSION) - HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node version") + HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node version") /* B-tree type */ if(*p++ != (uint8_t)udata->hdr->cls->id) - HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type") + HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type") /* Allocate space for the native keys in memory */ if(NULL == (leaf->leaf_native = (uint8_t *)H5FL_FAC_MALLOC(udata->hdr->node_info[0].nat_rec_fac))) - HGOTO_ERROR(H5E_BTREE, H5E_NOSPACE, NULL, "memory allocation failed for B-tree leaf native keys") + HGOTO_ERROR(H5E_BTREE, H5E_NOSPACE, NULL, "memory allocation failed for B-tree leaf native keys") /* Set the number of records in the leaf */ leaf->nrec = udata->nrec; diff --git a/src/H5B2hdr.c b/src/H5B2hdr.c index 443a2e5..452a35d 100644 --- a/src/H5B2hdr.c +++ b/src/H5B2hdr.c @@ -166,7 +166,7 @@ HDmemset(hdr->page, 0, hdr->node_size); hdr->node_info[0].cum_max_nrec = hdr->node_info[0].max_nrec; hdr->node_info[0].cum_max_nrec_size = 0; if(NULL == (hdr->node_info[0].nat_rec_fac = H5FL_fac_init(hdr->cls->nrec_size * hdr->node_info[0].max_nrec))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "can't create node native key block factory") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "can't create node native key block factory") hdr->node_info[0].node_ptr_fac = NULL; /* Allocate array of pointers to internal node native keys */ @@ -250,7 +250,7 @@ H5B2_hdr_alloc(H5F_t *f) /* Allocate space for the shared information */ if(NULL == (hdr = H5FL_CALLOC(H5B2_hdr_t))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "memory allocation failed for B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "memory allocation failed for B-tree header") /* Assign non-zero information */ hdr->f = f; @@ -298,19 +298,19 @@ H5B2_hdr_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, /* Allocate v2 B-tree header */ if(NULL == (hdr = H5B2_hdr_alloc(f))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "allocation failed for B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "allocation failed for B-tree header") /* Initialize shared B-tree info */ if(H5B2_hdr_init(hdr, cparam, ctx_udata, (uint16_t)0) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, HADDR_UNDEF, "can't create shared B-tree info") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, HADDR_UNDEF, "can't create shared B-tree info") /* Allocate space for the header on disk */ if(HADDR_UNDEF == (hdr->addr = H5MF_alloc(f, H5FD_MEM_BTREE, dxpl_id, (hsize_t)hdr->hdr_size))) - HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "file allocation failed for B-tree header") + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "file allocation failed for B-tree header") /* Cache the new B-tree node */ if(H5AC_insert_entry(f, dxpl_id, H5AC_BT2_HDR, hdr->addr, hdr, H5AC__NO_FLAGS_SET) < 0) - HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, HADDR_UNDEF, "can't add B-tree header to cache") + HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, HADDR_UNDEF, "can't add B-tree header to cache") /* Set address of v2 B-tree header to return */ ret_value = hdr->addr; @@ -398,15 +398,15 @@ done: /*------------------------------------------------------------------------- - * Function: H5B2_hdr_fuse_incr + * Function: H5B2_hdr_fuse_incr * - * Purpose: Increment file reference count on shared v2 B-tree header + * Purpose: Increment file reference count on shared v2 B-tree header * - * Return: Non-negative on success/Negative on failure + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol - * koziol@hdfgroup.org - * Oct 27 2009 + * Programmer: Quincey Koziol + * koziol@hdfgroup.org + * Oct 27 2009 * *------------------------------------------------------------------------- */ @@ -426,15 +426,15 @@ H5B2_hdr_fuse_incr(H5B2_hdr_t *hdr) /*------------------------------------------------------------------------- - * Function: H5B2_hdr_fuse_decr + * Function: H5B2_hdr_fuse_decr * - * Purpose: Decrement file reference count on shared v2 B-tree header + * Purpose: Decrement file reference count on shared v2 B-tree header * - * Return: Non-negative on success/Negative on failure + * Return: The file's reference count after the decrement. (Can't fail) * - * Programmer: Quincey Koziol - * koziol@hdfgroup.org - * Oct 27 2009 + * Programmer: Quincey Koziol + * koziol@hdfgroup.org + * Oct 27 2009 * *------------------------------------------------------------------------- */ @@ -542,6 +542,16 @@ H5B2_hdr_free(H5B2_hdr_t *hdr) hdr->node_info = H5FL_SEQ_FREE(H5B2_node_info_t, hdr->node_info); } /* end if */ + /* Release the min & max record info, if set */ + if(hdr->min_native_rec) { + HDfree(hdr->min_native_rec); + hdr->min_native_rec = NULL; + } /* end if */ + if(hdr->max_native_rec) { + HDfree(hdr->max_native_rec); + hdr->max_native_rec = NULL; + } /* end if */ + /* Free B-tree header info */ hdr = H5FL_FREE(H5B2_hdr_t, hdr); diff --git a/src/H5B2int.c b/src/H5B2int.c index 630ff98..ef83e93 100644 --- a/src/H5B2int.c +++ b/src/H5B2int.c @@ -172,9 +172,9 @@ H5B2_locate_record(const H5B2_class_t *type, unsigned nrec, size_t *rec_off, *------------------------------------------------------------------------- */ static herr_t -H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *curr_node_ptr, - unsigned *parent_cache_info_flags_ptr, H5B2_internal_t *internal, - unsigned *internal_flags_ptr, unsigned idx) +H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, + H5B2_node_ptr_t *curr_node_ptr, unsigned *parent_cache_info_flags_ptr, + H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx) { const H5AC_class_t *child_class; /* Pointer to child node's class info */ haddr_t left_addr, right_addr; /* Addresses of left & right child nodes */ @@ -214,7 +214,7 @@ H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *cur left_addr = internal->node_ptrs[idx].addr; right_addr = internal->node_ptrs[idx + 1].addr; - /* Protect both leafs */ + /* Protect both leaves */ if(NULL == (left_int = H5B2_protect_internal(hdr, dxpl_id, left_addr, internal->node_ptrs[idx].node_nrec, (depth - 1), H5AC_WRITE))) HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree internal node") if(NULL == (right_int = H5B2_protect_internal(hdr, dxpl_id, right_addr, internal->node_ptrs[idx + 1].node_nrec, (depth - 1), H5AC_WRITE))) @@ -243,7 +243,7 @@ H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *cur left_addr = internal->node_ptrs[idx].addr; right_addr = internal->node_ptrs[idx + 1].addr; - /* Protect both leafs */ + /* Protect both leaves */ if(NULL == (left_leaf = H5B2_protect_leaf(hdr, dxpl_id, left_addr, internal->node_ptrs[idx].node_nrec, H5AC_WRITE))) HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree leaf node") if(NULL == (right_leaf = H5B2_protect_leaf(hdr, dxpl_id, right_addr, internal->node_ptrs[idx + 1].node_nrec, H5AC_WRITE))) @@ -341,7 +341,7 @@ done: HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree leaf node") FUNC_LEAVE_NOAPI(ret_value) -} /* end H5B2_split1 */ +} /* end H5B2_split1() */ /*------------------------------------------------------------------------- @@ -646,7 +646,7 @@ done: HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree child node") FUNC_LEAVE_NOAPI(ret_value) -} /* end H5B2_redistribute2 */ +} /* end H5B2_redistribute2() */ /*------------------------------------------------------------------------- @@ -1033,7 +1033,7 @@ done: HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree child node") FUNC_LEAVE_NOAPI(ret_value) -} /* end H5B2_redistribute3 */ +} /* end H5B2_redistribute3() */ /*------------------------------------------------------------------------- @@ -1505,7 +1505,7 @@ done: HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree child node") FUNC_LEAVE_NOAPI(ret_value) -} /* end H5B2_swap_leaf */ +} /* end H5B2_swap_leaf() */ /*------------------------------------------------------------------------- @@ -1523,7 +1523,7 @@ done: */ herr_t H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, - void *udata) + H5B2_nodepos_t curr_pos, void *udata) { H5B2_leaf_t *leaf; /* Pointer to leaf node */ int cmp; /* Comparison value of records */ @@ -1574,6 +1574,27 @@ H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, /* Update record count for current node */ leaf->nrec++; + /* Check for new record being the min or max for the tree */ + /* (Don't use 'else' for the idx check, to allow for root leaf node) */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->min_native_rec == NULL) + if(NULL == (hdr->min_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree min record info") + HDmemcpy(hdr->min_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size); + } /* end if */ + } /* end if */ + if(idx == (unsigned)(leaf->nrec - 1)) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->max_native_rec == NULL) + if(NULL == (hdr->max_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size))) + HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree max record info") + HDmemcpy(hdr->max_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size); + } /* end if */ + } /* end if */ + } /* end if */ + done: /* Release the B-tree leaf node (marked as dirty) */ if(leaf && H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_LEAF, curr_node_ptr->addr, leaf, H5AC__DIRTIED_FLAG) < 0) @@ -1599,11 +1620,12 @@ done: herr_t H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, - void *udata) + H5B2_nodepos_t curr_pos, void *udata) { - H5B2_internal_t *internal; /* Pointer to internal node */ + H5B2_internal_t *internal = NULL; /* Pointer to internal node */ unsigned internal_flags = H5AC__NO_FLAGS_SET; unsigned idx; /* Location of record which matches key */ + H5B2_nodepos_t next_pos = H5B2_POS_MIDDLE; /* Position of node */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -1618,7 +1640,7 @@ H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, if(NULL == (internal = H5B2_protect_internal(hdr, dxpl_id, curr_node_ptr->addr, curr_node_ptr->node_nrec, depth, H5AC_WRITE))) HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree internal node") -/* Split or redistribute child node pointers, if necessary */ + /* Split or redistribute child node pointers, if necessary */ { int cmp; /* Comparison value of records */ unsigned retries; /* Number of times to attempt redistribution */ @@ -1691,13 +1713,25 @@ H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, } /* end while */ } /* end block */ + /* Check if this node is left/right-most */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) + next_pos = H5B2_POS_LEFT; + } /* end if */ + else if(idx == internal->nrec) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) + next_pos = H5B2_POS_RIGHT; + } /* end else */ + } /* end if */ + /* Attempt to insert node */ if(depth > 1) { - if(H5B2_insert_internal(hdr, dxpl_id, (depth - 1), &internal_flags, &internal->node_ptrs[idx], udata) < 0) + if(H5B2_insert_internal(hdr, dxpl_id, (depth - 1), &internal_flags, &internal->node_ptrs[idx], next_pos, udata) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree internal node") } /* end if */ else { - if(H5B2_insert_leaf(hdr, dxpl_id, &internal->node_ptrs[idx], udata) < 0) + if(H5B2_insert_leaf(hdr, dxpl_id, &internal->node_ptrs[idx], next_pos, udata) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree leaf node") } /* end else */ @@ -2074,7 +2108,7 @@ done: */ herr_t H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, - void *udata, H5B2_remove_t op, void *op_data) + H5B2_nodepos_t curr_pos, void *udata, H5B2_remove_t op, void *op_data) { H5B2_leaf_t *leaf; /* Pointer to leaf node */ haddr_t leaf_addr = HADDR_UNDEF; /* Leaf address on disk */ @@ -2102,6 +2136,27 @@ H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, if(H5B2_locate_record(hdr->cls, leaf->nrec, hdr->nat_off, leaf->leaf_native, udata, &idx) != 0) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "record is not in B-tree") + /* Check for invalidating the min/max record for the tree */ + if(H5B2_POS_MIDDLE != curr_pos) { + /* (Don't use 'else' for the idx check, to allow for root leaf node) */ + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->min_native_rec) { + HDfree(hdr->min_native_rec); + hdr->min_native_rec = NULL; + } /* end if */ + } /* end if */ + } /* end if */ + if(idx == (unsigned)(leaf->nrec - 1)) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->max_native_rec) { + HDfree(hdr->max_native_rec); + hdr->max_native_rec = NULL; + } /* end if */ + } /* end if */ + } /* end if */ + } /* end if */ + /* Make 'remove' callback if there is one */ if(op) if((op)(H5B2_LEAF_NREC(leaf, hdr, idx), op_data) < 0) @@ -2154,13 +2209,14 @@ done: herr_t H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, - unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, - void *udata, H5B2_remove_t op, void *op_data) + unsigned *parent_cache_info_flags_ptr, H5B2_nodepos_t curr_pos, + H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, void *op_data) { H5AC_info_t *new_cache_info; /* Pointer to new cache info */ unsigned *new_cache_info_flags_ptr = NULL; H5B2_node_ptr_t *new_node_ptr; /* Pointer to new node pointer */ H5B2_internal_t *internal; /* Pointer to internal node */ + H5B2_nodepos_t next_pos = H5B2_POS_MIDDLE; /* Position of next node */ unsigned internal_flags = H5AC__NO_FLAGS_SET; haddr_t internal_addr; /* Address of internal node */ size_t merge_nrec; /* Number of records to merge node at */ @@ -2211,6 +2267,9 @@ H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, /* Set flag to indicate root was collapsed */ collapsed_root = TRUE; + + /* Indicate position of next node */ + next_pos = H5B2_POS_ROOT; } /* end if */ /* Merge or redistribute child node pointers, if necessary */ else { @@ -2306,16 +2365,28 @@ H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, new_cache_info_flags_ptr = &internal_flags; new_cache_info = &internal->cache_info; new_node_ptr = &internal->node_ptrs[idx]; + + /* Indicate position of next node */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) + next_pos = H5B2_POS_LEFT; + } /* end if */ + else if(idx == internal->nrec) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) + next_pos = H5B2_POS_RIGHT; + } /* end if */ + } /* end if */ } /* end else */ /* Attempt to remove record from child node */ if(depth > 1) { if(H5B2_remove_internal(hdr, dxpl_id, depth_decreased, swap_loc, depth - 1, - new_cache_info, new_cache_info_flags_ptr, new_node_ptr, udata, op, op_data) < 0) + new_cache_info, new_cache_info_flags_ptr, next_pos, new_node_ptr, udata, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node") } /* end if */ else { - if(H5B2_remove_leaf(hdr, dxpl_id, new_node_ptr, udata, op, op_data) < 0) + if(H5B2_remove_leaf(hdr, dxpl_id, new_node_ptr, next_pos, udata, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node") } /* end else */ @@ -2355,8 +2426,8 @@ done: */ herr_t H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, - H5B2_node_ptr_t *curr_node_ptr, unsigned idx, H5B2_remove_t op, - void *op_data) + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, + unsigned idx, H5B2_remove_t op, void *op_data) { H5B2_leaf_t *leaf; /* Pointer to leaf node */ haddr_t leaf_addr = HADDR_UNDEF; /* Leaf address on disk */ @@ -2380,6 +2451,27 @@ H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, HDassert(leaf->nrec == curr_node_ptr->node_nrec); HDassert(idx < leaf->nrec); + /* Check for invalidating the min/max record for the tree */ + if(H5B2_POS_MIDDLE != curr_pos) { + /* (Don't use 'else' for the idx check, to allow for root leaf node) */ + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->min_native_rec) { + HDfree(hdr->min_native_rec); + hdr->min_native_rec = NULL; + } /* end if */ + } /* end if */ + } /* end if */ + if(idx == (unsigned)(leaf->nrec - 1)) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) { + if(hdr->max_native_rec) { + HDfree(hdr->max_native_rec); + hdr->max_native_rec = NULL; + } /* end if */ + } /* end if */ + } /* end if */ + } /* end if */ + /* Make 'remove' callback if there is one */ if(op) if((op)(H5B2_LEAF_NREC(leaf, hdr, idx), op_data) < 0) @@ -2434,13 +2526,14 @@ herr_t H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, - H5B2_node_ptr_t *curr_node_ptr, hsize_t n, H5B2_remove_t op, - void *op_data) + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t n, + H5B2_remove_t op, void *op_data) { H5AC_info_t *new_cache_info; /* Pointer to new cache info */ unsigned *new_cache_info_flags_ptr = NULL; H5B2_node_ptr_t *new_node_ptr; /* Pointer to new node pointer */ H5B2_internal_t *internal; /* Pointer to internal node */ + H5B2_nodepos_t next_pos = H5B2_POS_MIDDLE; /* Position of next node */ unsigned internal_flags = H5AC__NO_FLAGS_SET; haddr_t internal_addr; /* Address of internal node */ size_t merge_nrec; /* Number of records to merge node at */ @@ -2494,6 +2587,9 @@ H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, /* Set flag to indicate root was collapsed */ collapsed_root = TRUE; + + /* Indicate position of next node */ + next_pos = H5B2_POS_ROOT; } /* end if */ /* Merge or redistribute child node pointers, if necessary */ else { @@ -2641,16 +2737,28 @@ H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, new_cache_info_flags_ptr = &internal_flags; new_cache_info = &internal->cache_info; new_node_ptr = &internal->node_ptrs[idx]; + + /* Indicate position of next node */ + if(H5B2_POS_MIDDLE != curr_pos) { + if(idx == 0) { + if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) + next_pos = H5B2_POS_LEFT; + } /* end if */ + else if(idx == internal->nrec) { + if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) + next_pos = H5B2_POS_RIGHT; + } /* end if */ + } /* end if */ } /* end else */ /* Attempt to remove record from child node */ if(depth > 1) { if(H5B2_remove_internal_by_idx(hdr, dxpl_id, depth_decreased, swap_loc, depth - 1, - new_cache_info, new_cache_info_flags_ptr, new_node_ptr, n, op, op_data) < 0) + new_cache_info, new_cache_info_flags_ptr, new_node_ptr, next_pos, n, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node") } /* end if */ else { - if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, new_node_ptr, (unsigned)n, op, op_data) < 0) + if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, new_node_ptr, next_pos, (unsigned)n, op, op_data) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node") } /* end else */ diff --git a/src/H5B2pkg.h b/src/H5B2pkg.h index b820853..7a538bd 100644 --- a/src/H5B2pkg.h +++ b/src/H5B2pkg.h @@ -172,6 +172,8 @@ typedef struct H5B2_hdr_t { uint8_t *page; /* Common disk page for I/O */ size_t *nat_off; /* Array of offsets of native records */ H5B2_node_info_t *node_info; /* Table of node info structs for current depth of B-tree */ + uint8_t *min_native_rec; /* Pointer to minimum native record */ + uint8_t *max_native_rec; /* Pointer to maximum native record */ /* Client information (not stored) */ const H5B2_class_t *cls; /* Class of B-tree client */ @@ -208,6 +210,14 @@ struct H5B2_t { H5F_t *f; /* Pointer to file for v2 B-tree */ }; +/* Node position, for min/max determination */ +typedef enum H5B2_nodepos_t { + H5B2_POS_ROOT, /* Node is root (i.e. both right & left-most in tree) */ + H5B2_POS_RIGHT, /* Node is right-most in tree, at a given depth */ + H5B2_POS_LEFT, /* Node is left-most in tree, at a given depth */ + H5B2_POS_MIDDLE /* Node is neither right or left-most in tree */ +} H5B2_nodepos_t; + /* Callback info for loading a free space header into the cache */ typedef struct H5B2_hdr_cache_ud_t { H5F_t *f; /* File that v2 b-tree header is within */ @@ -304,9 +314,9 @@ H5_DLL herr_t H5B2_internal_free(H5B2_internal_t *i); /* Routines for inserting records */ H5_DLL herr_t H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, unsigned *parent_cache_info_flags_ptr, - H5B2_node_ptr_t *curr_node_ptr, void *udata); + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata); H5_DLL herr_t H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, - H5B2_node_ptr_t *curr_node_ptr, void *udata); + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata); /* Routines for iterating over nodes/records */ H5_DLL herr_t H5B2_iterate_node(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, @@ -326,19 +336,21 @@ H5_DLL herr_t H5B2_neighbor_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, /* Routines for removing records */ H5_DLL herr_t H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, - hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, - hbool_t * parent_cache_info_dirtied_ptr, H5B2_node_ptr_t *curr_node_ptr, void *udata, + hbool_t *depth_decreased, void *swap_loc, unsigned depth, + H5AC_info_t *parent_cache_info, hbool_t * parent_cache_info_dirtied_ptr, + H5B2_nodepos_t curr_pos, H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, void *op_data); H5_DLL herr_t H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, - H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, - void *op_data); + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, + void *udata, H5B2_remove_t op, void *op_data); H5_DLL herr_t H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, - hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, - hbool_t * parent_cache_info_dirtied_ptr, H5B2_node_ptr_t *curr_node_ptr, hsize_t idx, + hbool_t *depth_decreased, void *swap_loc, unsigned depth, + H5AC_info_t *parent_cache_info, hbool_t * parent_cache_info_dirtied_ptr, + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t idx, H5B2_remove_t op, void *op_data); H5_DLL herr_t H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, - H5B2_node_ptr_t *curr_node_ptr, unsigned idx, H5B2_remove_t op, - void *op_data); + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, + unsigned idx, H5B2_remove_t op, void *op_data); /* Routines for deleting nodes */ H5_DLL herr_t H5B2_delete_node(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, diff --git a/src/H5B2stat.c b/src/H5B2stat.c index 5e48a6f..5d159ed 100644 --- a/src/H5B2stat.c +++ b/src/H5B2stat.c @@ -13,10 +13,10 @@ * access to either file, you may request a copy from help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* Programmer: Quincey Koziol <koziol@ncsa.uiuc.edu> +/* Programmer: Quincey Koziol <koziol@hdfgroup.org> * Monday, March 6, 2006 * - * Purpose: v2 B-tree metadata statistics functions. + * Purpose: v2 B-tree metadata statistics functions. * */ @@ -24,15 +24,15 @@ /* Module Setup */ /****************/ -#define H5B2_PACKAGE /*suppress error about including H5B2pkg */ +#define H5B2_PACKAGE /* Suppress error about including H5B2pkg */ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5B2pkg.h" /* v2 B-trees */ -#include "H5Eprivate.h" /* Error handling */ +#include "H5private.h" /* Generic Functions */ +#include "H5B2pkg.h" /* v2 B-trees */ +#include "H5Eprivate.h" /* Error handling */ /****************/ @@ -71,14 +71,13 @@ /*------------------------------------------------------------------------- - * Function: H5B2_stat_info + * Function: H5B2_stat_info * - * Purpose: Retrieve metadata statistics for a v2 B-tree + * Purpose: Retrieve metadata statistics for a v2 B-tree * - * Return: Success: non-negative - * Failure: negative + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Monday, March 6, 2006 * *------------------------------------------------------------------------- @@ -105,7 +104,7 @@ H5B2_stat_info(H5B2_t *bt2, H5B2_stat_t *info) * Purpose: Iterate over all the records in the B-tree, collecting * storage info. * - * Return: non-negative on success, negative on error + * Return: SUCCEED/FAIL * * Programmer: Vailin Choi * June 19 2007 @@ -115,7 +114,7 @@ H5B2_stat_info(H5B2_t *bt2, H5B2_stat_t *info) herr_t H5B2_size(H5B2_t *bt2, hid_t dxpl_id, hsize_t *btree_size) { - H5B2_hdr_t *hdr; /* Pointer to the B-tree header */ + H5B2_hdr_t *hdr; /* Pointer to the B-tree header */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index 039ebdc..35c2afa 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -195,7 +195,7 @@ H5B_class_t H5B_BTREE[1] = {{ H5D__btree_remove, /*remove */ H5D__btree_decode_key, /*decode */ H5D__btree_encode_key, /*encode */ - H5D__btree_debug_key, /*debug */ + H5D__btree_debug_key /*debug */ }}; @@ -228,7 +228,7 @@ H5D__btree_get_shared(const H5F_t UNUSED *f, const void *_udata) HDassert(udata); HDassert(udata->storage); - HDassert(udata->storage->idx_type == H5D_CHUNK_BTREE); + HDassert(udata->storage->idx_type == H5D_CHUNK_IDX_BTREE); HDassert(udata->storage->u.btree.shared); /* Return the pointer to the ref-count object */ @@ -868,7 +868,7 @@ done: static herr_t H5D__btree_idx_create(const H5D_chk_idx_info_t *idx_info) { - H5D_chunk_common_ud_t udata; /* User data for B-tree callback */ + H5D_chunk_common_ud_t udata; /* User data for B-tree callback */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -939,7 +939,7 @@ H5D__btree_idx_is_space_alloc(const H5O_storage_chunk_t *storage) static herr_t H5D__btree_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata) { - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -1111,7 +1111,7 @@ H5D__btree_idx_iterate(const H5D_chk_idx_info_t *idx_info, static herr_t H5D__btree_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *udata) { - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -1453,7 +1453,7 @@ H5D_btree_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent /* Reset "fake" storage info */ HDmemset(&storage, 0, sizeof(storage)); - storage.idx_type = H5D_CHUNK_BTREE; + storage.idx_type = H5D_CHUNK_IDX_BTREE; /* Allocate the shared structure */ if(H5D__btree_shared_create(f, &storage, ndims) < 0) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 46f0a4f..9f2a020 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -318,24 +318,22 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz uint32_t data_size, const void *buf) { const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset layout */ - H5D_chunk_ud_t udata; /* User data for querying chunk info */ + H5D_chunk_ud_t udata; /* User data for querying chunk info */ hsize_t chunk_idx; H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ const H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache */ int space_ndims; /* Dataset's space rank */ hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) /* Allocate data space and initialize it if it hasn't been. */ - if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) { + if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) /* Allocate storage */ if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage") - } /* end if */ - /* Retrieve the dataset dimensions */ if((space_ndims = H5S_get_simple_extent_dims(dset->shared->space, space_dim, NULL)) < 0) @@ -385,11 +383,9 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz /* Evict the entry from the cache if present, but do not flush * it to disk */ - if(UINT_MAX != udata.idx_hint) { - if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, - rdcc->slot[udata.idx_hint], FALSE) < 0) + if(UINT_MAX != udata.idx_hint) + if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[udata.idx_hint], FALSE) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk") - } /* end if */ /* Write the data to the file */ if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, data_size, dxpl_id, buf) < 0) @@ -1317,13 +1313,12 @@ H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t new_chunk_info->mspace_shared = FALSE; /* Copy the chunk's coordinates */ - for(u=0; u<fm->f_ndims; u++) - new_chunk_info->coords[u]=coords[u]; - new_chunk_info->coords[fm->f_ndims]=0; + HDmemcpy(new_chunk_info->coords, coords, sizeof(hsize_t) * fm->f_ndims); + new_chunk_info->coords[fm->f_ndims] = 0; /* Insert the new chunk into the skip list */ if(H5SL_insert(fm->sel_chunks, new_chunk_info, &new_chunk_info->index) < 0) { - H5D__free_chunk_info(new_chunk_info, NULL, NULL); + H5D__free_chunk_info(new_chunk_info, NULL, NULL); HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINSERT, FAIL, "can't insert chunk into skip list") } /* end if */ @@ -1508,7 +1503,7 @@ H5D__chunk_file_cb(void UNUSED *elem, hid_t UNUSED type_id, unsigned ndims, cons H5D_chunk_file_iter_ud_t *udata = (H5D_chunk_file_iter_ud_t *)_udata; /* User data for operation */ H5D_chunk_map_t *fm = udata->fm; /* File<->memory chunk mapping info */ H5D_chunk_info_t *chunk_info; /* Chunk information for current chunk */ - hsize_t coords_in_chunk[H5O_LAYOUT_NDIMS]; /* Coordinates of element in chunk */ + hsize_t coords_in_chunk[H5O_LAYOUT_NDIMS]; /* Coordinates of element in chunk */ hsize_t chunk_index; /* Chunk index */ unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ @@ -2238,8 +2233,6 @@ H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last) static herr_t H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *udata) { - unsigned u; /* Local index variable */ - FUNC_ENTER_STATIC_NOERR /* Sanity check */ @@ -2250,8 +2243,7 @@ H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *ud HDassert(udata->common.offset); /* Stored the information to cache */ - for(u = 0; u < udata->common.layout->ndims; u++) - last->offset[u] = udata->common.offset[u]; + HDmemcpy(last->offset, udata->common.offset, sizeof(hsize_t) * udata->common.layout->ndims); last->nbytes = udata->nbytes; last->filter_mask = udata->filter_mask; last->addr = udata->addr; @@ -2820,7 +2812,6 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, haddr_t chunk_addr = HADDR_UNDEF; /* Address of chunk on disk */ size_t chunk_size; /*size of a chunk */ void *chunk = NULL; /*the file chunk */ - unsigned u; /*counters */ void *ret_value; /*return value */ FUNC_ENTER_PACKAGE @@ -2846,9 +2837,13 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, ent = rdcc->slot[udata->idx_hint]; #ifndef NDEBUG +{ + unsigned u; /*counters */ + /* Make sure this is the right chunk */ for(u = 0; u < layout->u.chunk.ndims; u++) HDassert(io_info->store->chunk.offset[u] == ent->offset[u]); +} #endif /* NDEBUG */ /* @@ -2990,15 +2985,12 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, HGOTO_ERROR(H5E_IO, H5E_CANTINIT, NULL, "unable to preempt chunk(s) from cache") /* Create a new entry */ - if(NULL == (ent = H5FL_MALLOC(H5D_rdcc_ent_t))) + if(NULL == (ent = H5FL_CALLOC(H5D_rdcc_ent_t))) HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL, "can't allocate raw data chunk entry") - ent->locked = 0; - ent->dirty = FALSE; - ent->deleted = FALSE; + /* Initialize the new entry */ ent->chunk_addr = chunk_addr; - for(u = 0; u < layout->u.chunk.ndims; u++) - ent->offset[u] = io_info->store->chunk.offset[u]; + HDmemcpy(ent->offset, io_info->store->chunk.offset, sizeof(hsize_t) * layout->u.chunk.ndims); H5_ASSIGN_OVERFLOW(ent->rd_count, chunk_size, size_t, uint32_t); H5_ASSIGN_OVERFLOW(ent->wr_count, chunk_size, size_t, uint32_t); ent->chunk = (uint8_t *)chunk; @@ -3011,16 +3003,13 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, rdcc->nused++; /* Add it to the linked list */ - ent->next = NULL; if(rdcc->tail) { rdcc->tail->next = ent; ent->prev = rdcc->tail; rdcc->tail = ent; } /* end if */ - else { + else rdcc->head = rdcc->tail = ent; - ent->prev = NULL; - } /* end else */ } /* end if */ else /* We did not add the chunk to cache */ @@ -3413,8 +3402,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, continue; else { /* Reset the chunk offset indices */ - HDmemset(chunk_offset, 0, ((unsigned)space_ndims - * sizeof(chunk_offset[0]))); + HDmemset(chunk_offset, 0, ((unsigned)space_ndims * sizeof(chunk_offset[0]))); chunk_offset[op_dim] = min_unalloc[op_dim]; carry = FALSE; @@ -3444,10 +3432,12 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* Make sure the chunk is really in the dataset and outside the * original dimensions */ { + unsigned u; /* Local index variable */ hbool_t outside_orig = FALSE; - for(i=0; i<space_ndims; i++) { - HDassert(chunk_offset[i] < space_dim[i]); - if(chunk_offset[i] >= old_dim[i]) + + for(u = 0; u < (unsigned)space_ndims; u++) { + HDassert(chunk_offset[u] < space_dim[u]); + if(chunk_offset[u] >= old_dim[u]) outside_orig = TRUE; } /* end for */ HDassert(outside_orig); @@ -3546,13 +3536,14 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* Increment indices */ carry = TRUE; - for(i = (int)(space_ndims - 1); i >= 0; --i) { + for(i = ((int)space_ndims - 1); i >= 0; --i) { chunk_offset[i] += chunk_dim[i]; - if(chunk_offset[i] > max_unalloc[i]) + if(chunk_offset[i] > max_unalloc[i]) { if(i == op_dim) chunk_offset[i] = min_unalloc[i]; else chunk_offset[i] = 0; + } /* end if */ else { carry = FALSE; break; @@ -4006,7 +3997,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) hsize_t hyper_start[H5O_LAYOUT_NDIMS]; /* Starting location of hyperslab */ uint32_t elmts_per_chunk; /* Elements in chunk */ hbool_t carry; /* Flag to indicate that chunk increment carrys to higher dimension (sorta) */ - int i; /* Local index variable */ + unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -4043,15 +4034,14 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) /* (also copy the chunk dimensions into 'hsize_t' array for creating dataspace) */ /* (also compute the dimensions which have been shrunk) */ elmts_per_chunk = 1; - for(i = 0; i < space_ndims; i++) { - elmts_per_chunk *= layout->u.chunk.dim[i]; - chunk_dim[i] = layout->u.chunk.dim[i]; - shrunk_dim[i] = space_dim[i] < old_dim[i]; + for(u = 0; u < (unsigned)space_ndims; u++) { + elmts_per_chunk *= layout->u.chunk.dim[u]; + chunk_dim[u] = layout->u.chunk.dim[u]; + shrunk_dim[u] = space_dim[u] < old_dim[u]; } /* end for */ /* Create a dataspace for a chunk & set the extent */ - if(NULL == (chunk_space = H5S_create_simple((unsigned)space_ndims, - chunk_dim, NULL))) + if(NULL == (chunk_space = H5S_create_simple((unsigned)space_ndims, chunk_dim, NULL))) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "can't create simple dataspace") /* Reset hyperslab start array */ @@ -4118,8 +4108,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) / chunk_dim[op_dim]); /* Determine if we need to fill chunks in this dimension */ - if((hssize_t)min_mod_chunk_off[op_dim] - == max_fill_chunk_off[op_dim]) { + if((hssize_t)min_mod_chunk_off[op_dim] == max_fill_chunk_off[op_dim]) { fill_dim[op_dim] = TRUE; has_fill = TRUE; } /* end if */ @@ -4136,8 +4125,8 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) if(has_fill) for(ent = rdcc->head; ent; ent = ent->next) /* Check for chunk offset outside of new dimensions */ - for(i = 0; i<space_ndims; i++) - if((hsize_t)ent->offset[i] >= space_dim[i]) { + for(u = 0; u < (unsigned)space_ndims; u++) + if((hsize_t)ent->offset[u] >= space_dim[u]) { /* Mark the entry as "deleted" */ ent->deleted = TRUE; break; @@ -4149,28 +4138,28 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) if(!shrunk_dim[op_dim]) continue; else { - HDassert((hsize_t) max_mod_chunk_off[op_dim] - >= min_mod_chunk_off[op_dim]); + HDassert((hsize_t) max_mod_chunk_off[op_dim] >= min_mod_chunk_off[op_dim]); /* Reset the chunk offset indices */ - HDmemset(chunk_offset, 0, ((unsigned)space_ndims - * sizeof(chunk_offset[0]))); + HDmemset(chunk_offset, 0, ((unsigned)space_ndims * sizeof(chunk_offset[0]))); chunk_offset[op_dim] = min_mod_chunk_off[op_dim]; /* Initialize "dims_outside_fill" array */ ndims_outside_fill = 0; - for(i=0; i<space_ndims; i++) - if((hssize_t)chunk_offset[i] > max_fill_chunk_off[i]) { - dims_outside_fill[i] = TRUE; + for(u = 0; u < (unsigned)space_ndims; u++) + if((hssize_t)chunk_offset[u] > max_fill_chunk_off[u]) { + dims_outside_fill[u] = TRUE; ndims_outside_fill++; } /* end if */ else - dims_outside_fill[i] = FALSE; + dims_outside_fill[u] = FALSE; carry = FALSE; } /* end if */ while(!carry) { + int i; /* Local index variable */ + /* Calculate the index of this chunk */ if(H5VM_chunk_index((unsigned)space_ndims, chunk_offset, layout->u.chunk.dim, layout->u.chunk.down_chunks, @@ -4191,8 +4180,8 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) { hbool_t outside_dim = FALSE; - for(i=0; i<space_ndims; i++) - if(chunk_offset[i] >= space_dim[i]){ + for(u = 0; u < (unsigned)space_ndims; u++) + if(chunk_offset[u] >= space_dim[u]) { outside_dim = TRUE; break; } /* end if */ @@ -4206,11 +4195,9 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) /* Evict the entry from the cache if present, but do not flush * it to disk */ - if(UINT_MAX != chk_udata.idx_hint) { - if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, - rdcc->slot[chk_udata.idx_hint], FALSE) < 0) + if(UINT_MAX != chk_udata.idx_hint) + if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[chk_udata.idx_hint], FALSE) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk") - } /* end if */ /* Remove the chunk from disk, if present */ if(H5F_addr_defined(chk_udata.addr)) { @@ -4218,8 +4205,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) idx_udata.offset = chunk_offset; /* Remove the chunk from disk */ - if((layout->storage.u.chunk.ops->remove)(&idx_info, &idx_udata) - < 0) + if((layout->storage.u.chunk.ops->remove)(&idx_info, &idx_udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to remove chunk entry from index") } /* end if */ } /* end else */ @@ -4248,8 +4234,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) } /* end if */ else { /* Check if we just went outside the fill dimension */ - if(!dims_outside_fill[i] && (hssize_t)chunk_offset[i] - > max_fill_chunk_off[i]) { + if(!dims_outside_fill[i] && (hssize_t)chunk_offset[i] > max_fill_chunk_off[i]) { dims_outside_fill[i] = TRUE; ndims_outside_fill++; } /* end if */ @@ -4267,8 +4252,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) if(min_mod_chunk_off[op_dim] == 0) break; else - max_mod_chunk_off[op_dim] = min_mod_chunk_off[op_dim] - - chunk_dim[op_dim]; + max_mod_chunk_off[op_dim] = min_mod_chunk_off[op_dim] - chunk_dim[op_dim]; } /* end for(op_dim=0...) */ /* Reset any cached chunk info for this dataset */ @@ -4278,10 +4262,9 @@ done: /* Release resources */ if(chunk_space && H5S_close(chunk_space) < 0) HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace") - if(udata_init) { + if(udata_init) if(udata.fb_info_init && H5D__fill_term(&udata.fb_info) < 0) HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "Can't release fill buffer info") - } /* end if */ FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__chunk_prune_by_extent() */ @@ -4473,7 +4456,7 @@ H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id) H5D_rdcc_ent_t *old_ent; /* Old cache entry */ H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ - unsigned rank; /*current # of dimensions */ + unsigned rank; /* Current # of dimensions */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -5178,7 +5161,8 @@ H5D__chunk_dest(H5F_t *f, hid_t dxpl_id, H5D_t *dset) idx_info.storage = &dset->shared->layout.storage.u.chunk; /* Free any index structures */ - if((dset->shared->layout.storage.u.chunk.ops->dest)(&idx_info) < 0) + if(dset->shared->layout.storage.u.chunk.ops->dest && + (dset->shared->layout.storage.u.chunk.ops->dest)(&idx_info) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info") done: diff --git a/src/H5Dint.c b/src/H5Dint.c index c35804a..63c7549 100644 --- a/src/H5Dint.c +++ b/src/H5Dint.c @@ -478,7 +478,6 @@ done: herr_t H5D__get_space_status(H5D_t *dset, H5D_space_status_t *allocation, hid_t dxpl_id) { - H5S_t *space; /* Dataset's dataspace */ hsize_t space_allocated; /* The number of bytes allocated for chunks */ hssize_t snelmts; /* Temporary holder for number of elements in dataspace */ hsize_t nelmts; /* Number of elements in dataspace */ @@ -491,11 +490,10 @@ H5D__get_space_status(H5D_t *dset, H5D_space_status_t *allocation, hid_t dxpl_id HDassert(dset); /* Get the dataset's dataspace */ - space = dset->shared->space; - HDassert(space); + HDassert(dset->shared->space); /* Get the total number of elements in dataset's dataspace */ - if((snelmts = H5S_GET_EXTENT_NPOINTS(space)) < 0) + if((snelmts = H5S_GET_EXTENT_NPOINTS(dset->shared->space)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to retrieve number of elements in dataspace") nelmts = (hsize_t)snelmts; @@ -929,7 +927,8 @@ H5D_t * H5D__create(H5F_t *file, hid_t type_id, const H5S_t *space, hid_t dcpl_id, hid_t dapl_id, hid_t dxpl_id) { - const H5T_t *type, *dt; /* Datatype for dataset */ + const H5T_t *type; + H5T_t *dt; H5D_t *new_dset = NULL; H5P_genplist_t *dc_plist = NULL; /* New Property list */ hbool_t has_vl_type = FALSE; /* Flag to indicate a VL-type for dataset */ @@ -1187,6 +1186,7 @@ H5D_open(const H5G_loc_t *loc, hid_t dapl_id, hid_t dxpl_id) HGOTO_ERROR(H5E_DATASET, H5E_CANTINC, NULL, "can't increment object count") } /* end else */ + /* Set the dataset to return */ ret_value = dataset; done: @@ -1228,6 +1228,7 @@ H5D__open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id) H5O_fill_t *fill_prop; /* Pointer to dataset's fill value info */ unsigned alloc_time_state; /* Allocation time state */ htri_t msg_exists; /* Whether a particular type of message exists */ + hbool_t layout_init = FALSE; /* Flag to indicate that chunk information was initialized */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC_TAG(dxpl_id, dataset->oloc.addr, FAIL) @@ -1265,6 +1266,9 @@ H5D__open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id) if(H5D__layout_oh_read(dataset, dxpl_id, dapl_id, plist) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get layout/pline/efl info") + /* Indicate that the layout information was initialized */ + layout_init = TRUE; + /* Point at dataset's copy, to cache it for later */ fill_prop = &dataset->shared->dcpl_cache.fill; @@ -1340,6 +1344,9 @@ done: if(H5F_addr_defined(dataset->oloc.addr) && H5O_close(&(dataset->oloc)) < 0) HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release object header") if(dataset->shared) { + if(dataset->shared->layout.type == H5D_CHUNKED && layout_init) + if(H5D__chunk_dest(dataset->oloc.file, dxpl_id, dataset) < 0) + HDONE_ERROR(H5E_DATASET, H5E_CANTRELEASE, FAIL, "unable to destroy chunk cache") if(dataset->shared->space && H5S_close(dataset->shared->space) < 0) HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace") if(dataset->shared->type) { @@ -2221,6 +2228,7 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id) */ /* Update the index values for the cached chunks for this dataset */ if(H5D_CHUNKED == dset->shared->layout.type) { + /* Update the cached chunk info */ if(H5D__chunk_set_info(dset) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to update # of chunks") if(H5D__chunk_update_cache(dset, dxpl_id) < 0) @@ -2239,11 +2247,10 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id) *------------------------------------------------------------------------- */ if(shrink && H5D_CHUNKED == dset->shared->layout.type && - (*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) { + (*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) /* Remove excess chunks */ if(H5D__chunk_prune_by_extent(dset, dxpl_id, curr_dims) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to remove chunks") - } /* end if */ /* Mark the dataspace as dirty, for later writing to the file */ if(H5D__mark(dset, dxpl_id, H5D_MARK_SPACE) < 0) @@ -2676,16 +2683,14 @@ H5D_get_space(H5D_t *dset) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get data space") /* Create an atom */ - if((ret_value = H5I_register (H5I_DATASPACE, space, TRUE)) < 0) - HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register data space") + if((ret_value = H5I_register(H5I_DATASPACE, space, TRUE)) < 0) + HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace") done: - if(ret_value < 0) { - if(space!=NULL) { + if(ret_value < 0) + if(space != NULL) if(H5S_close(space) < 0) HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace") - } /* end if */ - } /* end if */ FUNC_LEAVE_NOAPI(ret_value) } /* end H5D_get_space() */ diff --git a/src/H5Dio.c b/src/H5Dio.c index fb3c5d3..ade7351 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -297,7 +297,7 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, int ndims = 0; hsize_t dims[H5O_LAYOUT_NDIMS]; hsize_t internal_offset[H5O_LAYOUT_NDIMS]; - int i; + unsigned u; /* Get the dataset transfer property list */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) @@ -319,16 +319,16 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dims, NULL)) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") - for(i = 0; i < ndims; i++) { + for(u = 0; u < ndims; u++) { /* Make sure the offset doesn't exceed the dataset's dimensions */ - if(direct_offset[i] > dims[i]) + if(direct_offset[u] > dims[u]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") /* Make sure the offset fall right on a chunk's boundary */ - if(direct_offset[i] % dset->shared->layout.u.chunk.dim[i]) + if(direct_offset[u] % dset->shared->layout.u.chunk.dim[u]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary") - internal_offset[i] = direct_offset[i]; + internal_offset[u] = direct_offset[u]; } /* end for */ /* Terminate the offset with a zero */ diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index ae37c98..daee34f 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -362,7 +362,7 @@ typedef struct H5D_chunk_map_t { } H5D_chunk_map_t; /* Cached information about a particular chunk */ -typedef struct H5D_chunk_cached_t{ +typedef struct H5D_chunk_cached_t { hbool_t valid; /*whether cache info is valid*/ hsize_t offset[H5O_LAYOUT_NDIMS]; /*logical offset to start*/ uint32_t nbytes; /*size of stored data */ diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h index e7ae3ae..1b5fed7 100644 --- a/src/H5Dpublic.h +++ b/src/H5Dpublic.h @@ -56,7 +56,8 @@ typedef enum H5D_layout_t { /* Types of chunk index data structures */ typedef enum H5D_chunk_index_t { - H5D_CHUNK_BTREE = 0 /* v1 B-tree index */ + H5D_CHUNK_IDX_BTREE = 0, /* v1 B-tree index */ + H5D_CHUNK_IDX_NTYPES /* this one must be last! */ } H5D_chunk_index_t; /* Values for the space allocation time property */ @@ -1397,17 +1397,7 @@ H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line, HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") /* If the description doesn't fit into the initial buffer size, allocate more space and try again */ - while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) -#ifdef H5_VSNPRINTF_WORKS - > -#else /* H5_VSNPRINTF_WORKS */ - >= -#endif /* H5_VSNPRINTF_WORKS */ - (tmp_len - 1) -#ifndef H5_VSNPRINTF_WORKS - || (desc_len < 0) -#endif /* H5_VSNPRINTF_WORKS */ - ) { + while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) > (tmp_len - 1)) { /* shutdown & restart the va_list */ va_end(ap); va_start(ap, fmt); @@ -1416,11 +1406,7 @@ H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line, H5MM_xfree(tmp); /* Allocate a description of the appropriate length */ -#ifdef H5_VSNPRINTF_WORKS tmp_len = desc_len + 1; -#else /* H5_VSNPRINTF_WORKS */ - tmp_len = 2 * tmp_len; -#endif /* H5_VSNPRINTF_WORKS */ if(NULL == (tmp = H5MM_malloc((size_t)tmp_len))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") } /* end while */ diff --git a/src/H5Edeprec.c b/src/H5Edeprec.c index 3e9444b..6a83745 100644 --- a/src/H5Edeprec.c +++ b/src/H5Edeprec.c @@ -152,6 +152,7 @@ H5Eget_major(H5E_major_t maj) char *ret_value; /* Return value */ FUNC_ENTER_API_NOCLEAR(NULL) + H5TRACE1("*s", "i", maj); /* Get the message object */ if(NULL == (msg = (H5E_msg_t *)H5I_object_verify(maj, H5I_ERROR_MSG))) @@ -204,6 +205,7 @@ H5Eget_minor(H5E_minor_t min) char *ret_value; /* Return value */ FUNC_ENTER_API_NOCLEAR(NULL) + H5TRACE1("*s", "i", min); /* Get the message object */ if(NULL == (msg = (H5E_msg_t *)H5I_object_verify(min, H5I_ERROR_MSG))) diff --git a/src/H5Eint.c b/src/H5Eint.c index 88dfdee..2092566 100644 --- a/src/H5Eint.c +++ b/src/H5Eint.c @@ -741,17 +741,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin HGOTO_DONE(FAIL) /* If the description doesn't fit into the initial buffer size, allocate more space and try again */ - while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) -#ifdef H5_VSNPRINTF_WORKS - > -#else /* H5_VSNPRINTF_WORKS */ - >= -#endif /* H5_VSNPRINTF_WORKS */ - (tmp_len - 1) -#ifndef H5_VSNPRINTF_WORKS - || (desc_len < 0) -#endif /* H5_VSNPRINTF_WORKS */ - ) { + while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) > (tmp_len - 1)) { /* shutdown & restart the va_list */ va_end(ap); va_start(ap, fmt); @@ -760,11 +750,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin H5MM_xfree(tmp); /* Allocate a description of the appropriate length */ -#ifdef H5_VSNPRINTF_WORKS tmp_len = desc_len + 1; -#else /* H5_VSNPRINTF_WORKS */ - tmp_len = 2 * tmp_len; -#endif /* H5_VSNPRINTF_WORKS */ if(NULL == (tmp = H5MM_malloc((size_t)tmp_len))) HGOTO_DONE(FAIL) } /* end while */ diff --git a/src/H5Eprivate.h b/src/H5Eprivate.h index 0e6def6..2065b08 100644 --- a/src/H5Eprivate.h +++ b/src/H5Eprivate.h @@ -186,7 +186,7 @@ H5_DLL herr_t H5E_init(void); H5_DLL herr_t H5E_push_stack(H5E_t *estack, const char *file, const char *func, unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *desc); H5_DLL herr_t H5E_printf_stack(H5E_t *estack, const char *file, const char *func, - unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *fmt, ...); + unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *fmt, ...)__attribute__((format (printf, 8, 9))); H5_DLL herr_t H5E_clear_stack(H5E_t *estack); H5_DLL herr_t H5E_dump_api_stack(hbool_t is_api); diff --git a/src/H5Epublic.h b/src/H5Epublic.h index 17a35d9..1639ab4 100644 --- a/src/H5Epublic.h +++ b/src/H5Epublic.h @@ -165,7 +165,7 @@ H5_DLL herr_t H5Eclose_stack(hid_t stack_id); H5_DLL ssize_t H5Eget_class_name(hid_t class_id, char *name, size_t size); H5_DLL herr_t H5Eset_current_stack(hid_t err_stack_id); H5_DLL herr_t H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line, - hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...); + hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...)__attribute__((format (printf, 8, 9))); H5_DLL herr_t H5Epop(hid_t err_stack, size_t count); H5_DLL herr_t H5Eprint2(hid_t err_stack, FILE *stream); H5_DLL herr_t H5Ewalk2(hid_t err_stack, H5E_direction_t direction, H5E_walk2_t func, @@ -886,6 +886,7 @@ H5FDopen(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) H5FD_t *ret_value=NULL; FUNC_ENTER_API(NULL) + H5TRACE4("*x", "*sIuia", name, flags, fapl_id, maxaddr); /* Check arguments */ if(H5P_DEFAULT == fapl_id) diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c index 70cf49a..d81509a 100644 --- a/src/H5FDmpio.c +++ b/src/H5FDmpio.c @@ -1049,8 +1049,7 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id, char debug_str[128]; int flag, i; if (MPI_INFO_NULL != info_dup) { - /*OKAY: CAST DISCARDS CONST*/ - MPI_Info_get(fa->info, (char *)H5F_MPIO_DEBUG_KEY, 127, debug_str, &flag); + MPI_Info_get(fa->info, H5F_MPIO_DEBUG_KEY, sizeof(debug_str)-1, debug_str, &flag); if (flag) { fprintf(stdout, "H5FD_mpio debug flags=%s\n", debug_str ); for (i=0; @@ -1063,8 +1062,7 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id, } #endif - /*OKAY: CAST DISCARDS CONST*/ - if(MPI_SUCCESS != (mpi_code = MPI_File_open(comm_dup, (char*)name, mpi_amode, info_dup, &fh))) + if(MPI_SUCCESS != (mpi_code = MPI_File_open(comm_dup, name, mpi_amode, info_dup, &fh))) HMPI_GOTO_ERROR(NULL, "MPI_File_open failed", mpi_code) file_opened=1; @@ -1460,12 +1458,13 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add MPI_Count bytes_read; /* Number of bytes read in */ MPI_Count type_size; /* MPI datatype used for I/O's size */ MPI_Count io_size; /* Actual number of bytes requested */ + MPI_Count n; #else int bytes_read; /* Number of bytes read in */ int type_size; /* MPI datatype used for I/O's size */ int io_size; /* Actual number of bytes requested */ -#endif int n; +#endif H5P_genplist_t *plist = NULL; /* Property list pointer */ hbool_t use_view_this_time = FALSE; herr_t ret_value = SUCCEED; @@ -1506,7 +1505,10 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add /* Obtain the data transfer properties */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list") - xfer_mode = (H5FD_mpio_xfer_t)H5P_peek_unsigned(plist, H5D_XFER_IO_XFER_MODE_NAME); + + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_IO_XFER_MODE_NAME, &xfer_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode") /* * Set up for a fancy xfer using complex types, or single byte block. We @@ -1521,15 +1523,14 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add use_view_this_time = TRUE; /* prepare for a full-blown xfer using btype, ftype, and disp */ - if(H5P_get(plist,H5FD_MPI_XFER_MEM_MPI_TYPE_NAME,&buf_type)<0) + if(H5P_get(plist, H5FD_MPI_XFER_MEM_MPI_TYPE_NAME, &buf_type)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O type property") - if(H5P_get(plist,H5FD_MPI_XFER_FILE_MPI_TYPE_NAME,&file_type)<0) + if(H5P_get(plist, H5FD_MPI_XFER_FILE_MPI_TYPE_NAME, &file_type)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O type property") /* * Set the file view when we are using MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if (MPI_SUCCESS != (mpi_code=MPI_File_set_view(file->f, mpi_off, MPI_BYTE, file_type, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) @@ -1548,9 +1549,12 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add if (H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_read: using MPIO collective mode\n"); #endif - /* Peek the collective_opt property to check whether the application wants to do IO individually. */ + /* Get the collective_opt property to check whether the application wants to do IO individually. */ HDassert(plist); - coll_opt_mode = (H5FD_mpio_collective_opt_t)H5P_peek_unsigned(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME); + + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, &coll_opt_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O collective_op property") if(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO) { #ifdef H5FDmpio_DEBUG @@ -1573,7 +1577,6 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add /* * Reset the file view when we used MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, (MPI_Offset)0, MPI_BYTE, MPI_BYTE, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) } else { @@ -1799,8 +1802,9 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list") - /* Obtain the data transfer properties */ - xfer_mode = (H5FD_mpio_xfer_t)H5P_peek_unsigned(plist, H5D_XFER_IO_XFER_MODE_NAME); + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_IO_XFER_MODE_NAME, &xfer_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode") /* * Set up for a fancy xfer using complex types, or single byte block. We @@ -1823,7 +1827,6 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, /* * Set the file view when we are using MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, mpi_off, MPI_BYTE, file_type, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) @@ -1853,17 +1856,18 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, if(H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_write: using MPIO collective mode\n"); #endif - /* Peek the collective_opt property to check whether the application wants to do IO individually. */ + /* Get the collective_opt property to check whether the application wants to do IO individually. */ HDassert(plist); - coll_opt_mode = (H5FD_mpio_collective_opt_t)H5P_peek_unsigned(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME); + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, &coll_opt_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O collective_op property") - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO) { #ifdef H5FDmpio_DEBUG if(H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_write: doing MPI collective IO\n"); #endif - if(MPI_SUCCESS != (mpi_code = MPI_File_write_at_all(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat))) + if(MPI_SUCCESS != (mpi_code = MPI_File_write_at_all(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat))) HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at_all failed", mpi_code) } /* end if */ else { @@ -1871,17 +1875,15 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, if(H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_write: doing MPI independent IO\n"); #endif - if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat))) + if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat))) HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at failed", mpi_code) } /* end else */ /* Reset the file view when we used MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, (MPI_Offset)0, MPI_BYTE, MPI_BYTE, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) } else { - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ - if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat))) + if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat))) HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at failed", mpi_code) } diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 5076712..20b840b 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -491,6 +491,8 @@ if it is changed, the code must compensate. -QAK */ +#define HDF5_BTREE_IK_MAX_ENTRIES 65536 /* 2^16 - 2 bytes for storing entries (children) */ + /* See format specification on version 1 B-trees */ /* Default file space handling strategy */ #define H5F_FILE_SPACE_STRATEGY_DEF H5F_FILE_SPACE_ALL diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c index c580f73..411fc94 100644 --- a/src/H5Gdeprec.c +++ b/src/H5Gdeprec.c @@ -258,7 +258,7 @@ H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info") /* Set the non-default local heap size hint */ - ginfo.lheap_size_hint = size_hint; + H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t); if(H5P_set(gc_plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set group info") } /* end if */ diff --git a/src/H5Gloc.c b/src/H5Gloc.c index 3786967..0559f3e 100644 --- a/src/H5Gloc.c +++ b/src/H5Gloc.c @@ -179,7 +179,7 @@ H5G_loc_real(void *obj, H5I_type_t type, H5G_loc_t *loc) H5T_t *dt = NULL; /* Get the actual datatype object if the VOL object is set */ - dt = (H5T_t *)H5T_get_actual_type((H5T_t *)obj); + dt = H5T_get_actual_type((H5T_t *)obj); if(NULL == (loc->oloc = H5T_oloc(dt))) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get object location of datatype") @@ -182,7 +182,7 @@ HDmemset(heap->chunk, 0, size); * which was always at least H5HG_ALIGNMENT aligned then we could just * align the pointer, but this might not be the case. */ - n = H5HG_ALIGN(p - heap->chunk) - (p - heap->chunk); + n = H5HG_ALIGN(p - heap->chunk) - (size_t)(p - heap->chunk); #ifdef OLD_WAY /* Don't bother zeroing out the rest of the info in the heap -QAK */ HDmemset(p, 0, n); @@ -776,7 +776,7 @@ H5HG_remove (H5F_t *f, hid_t dxpl_id, H5HG_t *hobj) else heap->obj[0].size += need; HDmemmove(obj_start, obj_start + need, - heap->size - ((obj_start + need) - heap->chunk)); + heap->size - (size_t)((obj_start + need) - heap->chunk)); if(heap->obj[0].size >= H5HG_SIZEOF_OBJHDR(f)) { p = heap->obj[0].begin; UINT16ENCODE(p, 0); /*id*/ diff --git a/src/H5HGpkg.h b/src/H5HGpkg.h index 5d4234f..f3546a2 100644 --- a/src/H5HGpkg.h +++ b/src/H5HGpkg.h @@ -77,8 +77,7 @@ H5FL_BLK_EXTERN(gheap_chunk); * largest data type is eight bytes. */ #define H5HG_ALIGNMENT 8 -#define H5HG_ALIGN(X) (H5HG_ALIGNMENT*(((X)+H5HG_ALIGNMENT-1)/ \ - H5HG_ALIGNMENT)) +#define H5HG_ALIGN(X) (H5HG_ALIGNMENT*(((X)+H5HG_ALIGNMENT-1)/H5HG_ALIGNMENT)) #define H5HG_ISALIGNED(X) ((X)==H5HG_ALIGN(X)) /* @@ -86,20 +85,20 @@ H5FL_BLK_EXTERN(gheap_chunk); * that the stuff that follows the header is aligned. */ #define H5HG_SIZEOF_HDR(f) \ - H5HG_ALIGN(4 + /*magic number */ \ - 1 + /*version number */ \ - 3 + /*reserved */ \ - H5F_SIZEOF_SIZE(f)) /*collection size */ + (size_t)H5HG_ALIGN(4 + /*magic number */ \ + 1 + /*version number */ \ + 3 + /*reserved */ \ + H5F_SIZEOF_SIZE(f)) /*collection size */ /* * The overhead associated with each object in the heap, always a multiple of * the alignment so that the stuff that follows the header is aligned. */ #define H5HG_SIZEOF_OBJHDR(f) \ - H5HG_ALIGN(2 + /*object id number */ \ - 2 + /*reference count */ \ - 4 + /*reserved */ \ - H5F_SIZEOF_SIZE(f)) /*object data size */ + (size_t)H5HG_ALIGN(2 + /*object id number */ \ + 2 + /*reference count */ \ + 4 + /*reserved */ \ + H5F_SIZEOF_SIZE(f)) /*object data size */ /* * The initial guess for the number of messages in a collection. We assume @@ -108,8 +107,8 @@ H5FL_BLK_EXTERN(gheap_chunk); * some overhead and each message has some overhead. The `+2' accounts for * rounding and for the free space object. */ -#define H5HG_NOBJS(f,z) (int)((((z)-H5HG_SIZEOF_HDR(f))/ \ - H5HG_SIZEOF_OBJHDR(f)+2)) +#define H5HG_NOBJS(f,z) ((((z)-H5HG_SIZEOF_HDR(f))/ \ + H5HG_SIZEOF_OBJHDR(f)+2)) /****************************/ @@ -901,6 +901,7 @@ H5Iobject_verify(hid_t id, H5I_type_t id_type) void * ret_value; /* Return value */ FUNC_ENTER_API(NULL) + H5TRACE2("*x", "iIt", id, id_type); if(H5I_IS_LIB_TYPE(id_type)) HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, NULL, "cannot call public function on library type") @@ -1041,6 +1042,7 @@ H5Iremove_verify(hid_t id, H5I_type_t id_type) void * ret_value; /* Return value */ FUNC_ENTER_API(NULL) + H5TRACE2("*x", "iIt", id, id_type); if(H5I_IS_LIB_TYPE(id_type)) HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, NULL, "cannot call public function on library type") @@ -1889,6 +1891,7 @@ H5Isearch(H5I_type_t type, H5I_search_func_t func, void *key) void *ret_value; /* Return value */ FUNC_ENTER_API(NULL) + H5TRACE3("*x", "Itx*x", type, func, key); /* Check arguments */ if(H5I_IS_LIB_TYPE(type)) diff --git a/src/H5MFaggr.c b/src/H5MFaggr.c index f015b19..29d21fd 100644 --- a/src/H5MFaggr.c +++ b/src/H5MFaggr.c @@ -46,7 +46,7 @@ /******************/ /* Local Typedefs */ /******************/ -#define EXTEND_THRESHOLD .10 +#define EXTEND_THRESHOLD 0.10F /********************/ @@ -31,93 +31,107 @@ #include "H5Eprivate.h" #include "H5MMprivate.h" -#ifndef NDEBUG /*------------------------------------------------------------------------- - * Function: H5MM_malloc + * Function: H5MM_malloc * - * Purpose: Just like the POSIX version of malloc(3). This routine - * specifically checks for allocations of 0 bytes and fails - * in that case. This routine is not called when NDEBUG is - * defined. + * Purpose: Similar to the C89 version of malloc(). * - * Return: Success: Ptr to new memory + * On size of 0, we return a NULL pointer instead of the + * standard-allowed 'special' pointer since that's more + * difficult to check as a return value. This is still + * considered an error condition since allocations of zero + * bytes usually indicate problems. + * + * Return: Success: Pointer new memory * - * Failure: NULL + * Failure: NULL * - * Programmer: Quincey Koziol - * koziol@ncsa.uiuc.edu - * Nov 8 2003 - * - * Modifications: + * Programmer: Quincey Koziol + * Nov 8 2003 * *------------------------------------------------------------------------- */ void * H5MM_malloc(size_t size) { + void *ret_value; + + HDassert(size); + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ FUNC_ENTER_NOAPI_NOINIT_NOERR - HDassert(size); + if(size) + ret_value = HDmalloc(size); + else + ret_value = NULL; - FUNC_LEAVE_NOAPI(HDmalloc(size)); + FUNC_LEAVE_NOAPI(ret_value); } /* end H5MM_malloc() */ /*------------------------------------------------------------------------- - * Function: H5MM_calloc + * Function: H5MM_calloc * - * Purpose: Similar to the POSIX version of calloc(3), except this routine - * just takes a 'size' parameter. This routine - * specifically checks for allocations of 0 bytes and fails - * in that case. This routine is not called when NDEBUG is - * defined. + * Purpose: Similar to the C89 version of calloc(), except this + * routine just takes a 'size' parameter. * - * Return: Success: Ptr to new memory + * On size of 0, we return a NULL pointer instead of the + * standard-allowed 'special' pointer since that's more + * difficult to check as a return value. This is still + * considered an error condition since allocations of zero + * bytes usually indicate problems. * - * Failure: NULL * - * Programmer: Quincey Koziol - * koziol@ncsa.uiuc.edu - * Nov 8 2003 + * Return: Success: Pointer new memory * - * Modifications: + * Failure: NULL + * + * Programmer: Quincey Koziol + * Nov 8 2003 * *------------------------------------------------------------------------- */ void * H5MM_calloc(size_t size) { + void *ret_value; + + HDassert(size); + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ FUNC_ENTER_NOAPI_NOINIT_NOERR - HDassert(size); + if(size) + ret_value = HDcalloc((size_t)1, size); + else + ret_value = NULL; - FUNC_LEAVE_NOAPI(HDcalloc(1,size)); + FUNC_LEAVE_NOAPI(ret_value); } /* end H5MM_calloc() */ -#endif /* NDEBUG */ /*------------------------------------------------------------------------- - * Function: H5MM_realloc + * Function: H5MM_realloc * - * Purpose: Just like the POSIX version of realloc(3). Specifically, the - * following calls are equivalent + * Purpose: Similar semantics as C89's realloc(). Specifically, the + * following calls are equivalent: * - * H5MM_realloc (NULL, size) <==> H5MM_malloc (size) - * H5MM_realloc (ptr, 0) <==> H5MM_xfree (ptr) - * H5MM_realloc (NULL, 0) <==> NULL + * H5MM_realloc(NULL, size) <==> H5MM_malloc(size) + * H5MM_realloc(ptr, 0) <==> H5MM_xfree(ptr) + * H5MM_realloc(NULL, 0) <==> NULL * - * Return: Success: Ptr to new memory or NULL if the memory - * was freed or HDrealloc couldn't allocate - * memory. + * Note that the (NULL, 0) combination is undefined behavior + * in the C standard. * - * Failure: NULL + * Return: Success: Ptr to new memory if size > 0 + * NULL if size is zero * - * Programmer: Robb Matzke - * matzke@llnl.gov - * Jul 10 1997 + * Failure: NULL (input buffer is unchanged on failure) + * + * Programmer: Robb Matzke + * Jul 10 1997 * *------------------------------------------------------------------------- */ @@ -129,16 +143,19 @@ H5MM_realloc(void *mem, size_t size) /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ FUNC_ENTER_NOAPI_NOINIT_NOERR - if(NULL == mem) { - if(0 == size) + HDassert(mem || size); + + if(NULL == mem && 0 == size) { + /* Not defined in the standard, return NULL */ + ret_value = NULL; + } + else { + ret_value = HDrealloc(mem, size); + + /* Some platforms do not return NULL if size is zero. */ + if(0 == size) ret_value = NULL; - else - ret_value = H5MM_malloc(size); - } /* end if */ - else if(0 == size) - ret_value = H5MM_xfree(mem); - else - ret_value = HDrealloc(mem, size); + } FUNC_LEAVE_NOAPI(ret_value) } /* end H5MM_realloc() */ diff --git a/src/H5MMprivate.h b/src/H5MMprivate.h index a3c39f0..0d608b2 100644 --- a/src/H5MMprivate.h +++ b/src/H5MMprivate.h @@ -33,19 +33,13 @@ /* Private headers needed by this file */ #include "H5private.h" -#ifdef NDEBUG -#define H5MM_malloc(Z) HDmalloc(Z) -#define H5MM_calloc(Z) HDcalloc((size_t)1,Z) -#endif /* NDEBUG */ #define H5MM_free(Z) HDfree(Z) /* * Library prototypes... */ -#ifndef NDEBUG H5_DLL void *H5MM_malloc(size_t size); H5_DLL void *H5MM_calloc(size_t size); -#endif /* NDEBUG */ H5_DLL void *H5MM_realloc(void *mem, size_t size); H5_DLL char *H5MM_xstrdup(const char *s); H5_DLL char *H5MM_strdup(const char *s); diff --git a/src/H5Oalloc.c b/src/H5Oalloc.c index 5c00fb2..76f392d 100644 --- a/src/H5Oalloc.c +++ b/src/H5Oalloc.c @@ -762,7 +762,7 @@ H5O_alloc_new_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh, size_t size, size_t *new size_t idx; /* Message number */ uint8_t *p = NULL; /*ptr into new chunk */ H5O_cont_t *cont = NULL; /*native continuation message */ - unsigned chunkno; /* Chunk allocated */ + size_t chunkno; /* Chunk allocated */ haddr_t new_chunk_addr; unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ diff --git a/src/H5Olayout.c b/src/H5Olayout.c index 4c43873..816242f 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -147,7 +147,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, /* Set the chunk operations */ /* (Only "btree" indexing type currently supported in this version) */ - mesg->storage.u.chunk.idx_type = H5D_CHUNK_BTREE; + mesg->storage.u.chunk.idx_type = H5D_CHUNK_IDX_BTREE; mesg->storage.u.chunk.ops = H5D_COPS_BTREE; } /* end if */ else { @@ -234,7 +234,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, /* Set the chunk operations */ /* (Only "btree" indexing type supported with v3 of message format) */ - mesg->storage.u.chunk.idx_type = H5D_CHUNK_BTREE; + mesg->storage.u.chunk.idx_type = H5D_CHUNK_IDX_BTREE; mesg->storage.u.chunk.ops = H5D_COPS_BTREE; /* Set the layout operations */ @@ -715,7 +715,7 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, /* Index information */ switch(mesg->storage.u.chunk.idx_type) { - case H5D_CHUNK_BTREE: + case H5D_CHUNK_IDX_BTREE: HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, "Index Type:", "v1 B-tree"); HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, diff --git a/src/H5Omtime.c b/src/H5Omtime.c index 612d656..c9375f9 100644 --- a/src/H5Omtime.c +++ b/src/H5Omtime.c @@ -200,8 +200,8 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, /* decode */ for(i = 0; i < 14; i++) - if(!HDisdigit(p[i])) - HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message") + if(!HDisdigit(p[i])) + HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message") /* * Convert YYYYMMDDhhmmss UTC to a time_t. This is a little problematic @@ -219,36 +219,14 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, tm.tm_sec = (p[12]-'0')*10 + (p[13]-'0'); tm.tm_isdst = -1; /*figure it out*/ if((time_t)-1 == (the_time = HDmktime(&tm))) - HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message") + HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message") #if defined(H5_HAVE_TM_GMTOFF) - /* FreeBSD, OSF 4.0 */ + /* BSD-like systems */ the_time += tm.tm_gmtoff; -#elif defined(H5_HAVE___TM_GMTOFF) - /* Linux libc-4 */ - the_time += tm.__tm_gmtoff; #elif defined(H5_HAVE_TIMEZONE) - /* Linux libc-5 */ - the_time -= timezone - (tm.tm_isdst?3600:0); -#elif defined(H5_HAVE_BSDGETTIMEOFDAY) && defined(H5_HAVE_STRUCT_TIMEZONE) - /* Irix5.3 */ - { - struct timezone tz; - - if(HDBSDgettimeofday(NULL, &tz) < 0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to obtain local timezone information") - the_time -= tz.tz_minuteswest * 60 - (tm.tm_isdst ? 3600 : 0); - } -#elif defined(H5_HAVE_GETTIMEOFDAY) && defined(H5_HAVE_STRUCT_TIMEZONE) && defined(H5_GETTIMEOFDAY_GIVES_TZ) - { - struct timezone tz; - struct timeval tv; /* Used as a placebo; some systems don't like NULL */ - - if(HDgettimeofday(&tv, &tz) < 0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to obtain local timezone information") - - the_time -= tz.tz_minuteswest * 60 - (tm.tm_isdst ? 3600 : 0); - } + /* GNU/Linux systems */ + the_time -= timezone - (tm.tm_isdst ? 3600 : 0); #else /* * The catch-all. If we can't convert a character string universal @@ -257,14 +235,12 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, * only way a user can get the modification time is from our internal * query routines, which can gracefully recover. */ - - /* Irix64 */ HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to obtain local timezone information") #endif /* The return value */ if(NULL == (mesg = H5FL_MALLOC(time_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") *mesg = the_time; /* Set return value */ diff --git a/src/H5Osdspace.c b/src/H5Osdspace.c index 9ca8436..875cd56 100644 --- a/src/H5Osdspace.c +++ b/src/H5Osdspace.c @@ -308,7 +308,7 @@ H5O_sdspace_copy(const void *_mesg, void *_dest) /* check args */ HDassert(mesg); - if(!dest && NULL == (dest = H5FL_MALLOC(H5S_extent_t))) + if(!dest && NULL == (dest = H5FL_CALLOC(H5S_extent_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* Copy extent information */ @@ -463,7 +463,7 @@ H5O_sdspace_pre_copy_file(H5F_t UNUSED *file_src, const void *mesg_src, */ if(udata) { /* Allocate copy of dataspace extent */ - if(NULL == (udata->src_space_extent = H5FL_MALLOC(H5S_extent_t))) + if(NULL == (udata->src_space_extent = H5FL_CALLOC(H5S_extent_t))) HGOTO_ERROR(H5E_DATASPACE, H5E_NOSPACE, FAIL, "dataspace extent allocation failed") /* Create a copy of the dataspace extent */ @@ -1596,6 +1596,7 @@ H5Pget_class_name(hid_t pclass_id) char *ret_value; /* return value */ FUNC_ENTER_API(NULL) + H5TRACE1("*s", "i", pclass_id); /* Check arguments. */ if(NULL == (pclass = (H5P_genclass_t *)H5I_object_verify(pclass_id, H5I_GENPROP_CLS))) @@ -23,12 +23,12 @@ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5PLprivate.h" /* Plugin */ -#include "H5VLprivate.h" /* VOL */ -#include "H5Zprivate.h" /* Filter pipeline */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5PLprivate.h" /* Plugin */ +#include "H5VLprivate.h" /* VOL */ +#include "H5Zprivate.h" /* Filter pipeline */ /****************/ @@ -41,7 +41,19 @@ /* Macros for supporting * both Windows and Unix */ /****************************/ -/* Windows support */ +/* Windows support + * + * SPECIAL WINDOWS NOTE + * + * Some of the Win32 API functions expand to fooA or fooW depending on + * whether UNICODE or _UNICODE are defined. You MUST explicitly use + * the A version of the functions to force char * behavior until we + * work out a scheme for proper Windows Unicode support. + * + * If you do not do this, people will be unable to incorporate our + * source code into their own CMake builds if they define UNICODE. + */ + #ifdef H5_HAVE_WIN32_API #define H5PL_PATH_SEPARATOR ";" @@ -50,7 +62,7 @@ #define H5PL_HANDLE HINSTANCE /* Get a handle to a plugin library. Windows: TEXT macro handles Unicode strings */ -#define H5PL_OPEN_DLIB(S) LoadLibraryEx(TEXT(S), NULL, LOAD_WITH_ALTERED_SEARCH_PATH) +#define H5PL_OPEN_DLIB(S) LoadLibraryExA(S, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) /* Get the address of a symbol in dynamic library */ #define H5PL_GET_LIB_FUNC(H,N) GetProcAddress(H,N) @@ -86,6 +98,7 @@ typedef const void *(__cdecl *H5PL_get_plugin_info_t)(void); typedef const void *(*H5PL_get_plugin_info_t)(void); #endif /* H5_HAVE_WIN32_API */ +/* Whether to preload pathnames for plugin libraries */ #define H5PL_DEFAULT_PATH H5_DEFAULT_PLUGINDIR /* Special symbol to indicate no plugin loading */ @@ -97,10 +110,10 @@ typedef const void *(*H5PL_get_plugin_info_t)(void); /* Type for the list of info for opened plugin libraries */ typedef struct H5PL_table_t { - H5PL_type_t pl_type; /* plugin type */ - int pl_id; /* ID for the plugin */ - const char *pl_name; /* name of the plugin */ - H5PL_HANDLE handle; /* plugin handle */ + H5PL_type_t pl_type; /* plugin type */ + int pl_id; /* ID for the plugin */ + const char *pl_name; /* name of the plugin */ + H5PL_HANDLE handle; /* plugin handle */ } H5PL_table_t; @@ -144,8 +157,8 @@ static char *H5PL_path_table_g[H5PL_MAX_PATH_NUM]; static size_t H5PL_num_paths_g = 0; static hbool_t H5PL_path_found_g = FALSE; -/* Whether to preload pathnames for plugin libraries */ -static hbool_t H5PL_no_plugin_g = FALSE; +/* Enable all plugin libraries */ +static unsigned int H5PL_plugin_g = H5PL_ALL_PLUGIN; /*-------------------------------------------------------------------------- @@ -172,7 +185,7 @@ H5PL__init_interface(void) if(NULL != (preload_path = HDgetenv("HDF5_PLUGIN_PRELOAD"))) { /* Special symbal "::" means no plugin during data reading. */ if(!HDstrcmp(preload_path, H5PL_NO_PLUGIN)) - H5PL_no_plugin_g = TRUE; + H5PL_plugin_g = 0; } /* end if */ FUNC_LEAVE_NOAPI(SUCCEED) @@ -180,46 +193,83 @@ H5PL__init_interface(void) /*------------------------------------------------------------------------- - * Function: H5PL_no_plugin + * Function: H5PLset_loading_state * - * Purpose: Quick way for filter module to query whether to load plugin + * Purpose: Control the loading of dynamic plugin types. * - * Return: TRUE: No plugin loading during data reading + * This function will not allow plugin types if the pathname from the HDF5_PLUGIN_PRELOAD + * environment variable is set to the special "::" string. * - * FALSE: Load plugin during data reading + * plugin bit = 0, will prevent the use of that dynamic plugin type. + * plugin bit = 1, will allow the use of that dynamic plugin type. * - * Programmer: Raymond Lu - * 20 February 2013 + * H5PL_TYPE_FILTER changes just dynamic filters + * A H5PL_ALL_PLUGIN will enable all dynamic plugin types + * A zero value will disable all dynamic plugin types + * + * Return: Non-negative or success * *------------------------------------------------------------------------- */ -htri_t -H5PL_no_plugin(void) +herr_t +H5PLset_loading_state(unsigned int plugin_type) { - htri_t ret_value; + char *preload_path; + herr_t ret_value = SUCCEED; /* Return value */ + FUNC_ENTER_API(FAIL) + H5TRACE1("e", "Iu", plugin_type); + /* change the bit value of the requested plugin type(s) */ + H5PL_plugin_g = plugin_type; + /* check if special ENV variable is set and disable all plugin types */ + if(NULL != (preload_path = HDgetenv("HDF5_PLUGIN_PRELOAD"))) { + /* Special symbol "::" means no plugin during data reading. */ + if(!HDstrcmp(preload_path, H5PL_NO_PLUGIN)) + H5PL_plugin_g = 0; + } +done: + FUNC_LEAVE_API(ret_value) +} /* end H5PLset_loading_state() */ - FUNC_ENTER_NOAPI(FAIL) - ret_value = (htri_t)H5PL_no_plugin_g; +/*------------------------------------------------------------------------- + * Function: H5PLget_loading_state + * + * Purpose: Query state of the loading of dynamic plugin types. + * + * This function will return the state of the global flag. + * + * Return: Zero if all plugin types are disabled, negative if all + * plugin types are enabled, positive if one or more of the plugin types are enabled. + * + *------------------------------------------------------------------------- + */ +herr_t +H5PLget_loading_state(unsigned int* plugin_type) +{ + herr_t ret_value = SUCCEED; /* Return value */ + FUNC_ENTER_API(FAIL) + + if(plugin_type) + *plugin_type = H5PL_plugin_g; + done: + FUNC_LEAVE_API(ret_value) +} /* end H5PLget_loading_state() */ -done: - FUNC_LEAVE_NOAPI(ret_value) -} /* end H5PL_no_plugin() */ /*------------------------------------------------------------------------- - * Function: H5PL_term_interface + * Function: H5PL_term_interface * - * Purpose: Terminate the H5PL interface: release all memory, reset all - * global variables to initial values. This only happens if all - * types have been destroyed from other interfaces. + * Purpose: Terminate the H5PL interface: release all memory, reset all + * global variables to initial values. This only happens if all + * types have been destroyed from other interfaces. * - * Return: Success: Positive if any action was taken that might - * affect some other interface; zero otherwise. + * Return: Success: Positive if any action was taken that might + * affect some other interface; zero otherwise. * - * Failure: Negative. + * Failure: Negative. * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 20 February 2013 * *------------------------------------------------------------------------- @@ -234,7 +284,7 @@ H5PL_term_interface(void) if(H5_interface_initialize_g) { size_t u; /* Local index variable */ - /* Close opened dynamic libraries */ + /* Close opened dynamic libraries */ for(u = 0; u < H5PL_filter_table_used_g; u++) H5PL__close((H5PL_filter_table_g[u]).handle); @@ -259,7 +309,7 @@ H5PL_term_interface(void) H5PL_num_paths_g = 0; H5PL_path_found_g = FALSE; - H5_interface_initialize_g = 0; + H5_interface_initialize_g = 0; i = 1; } /* end if */ @@ -268,15 +318,15 @@ H5PL_term_interface(void) /*------------------------------------------------------------------------- - * Function: H5PL_load + * Function: H5PL_load * * Purpose: Given the plugin type and identifier and/or name, this function * searches and/or loads a dynamic plugin library first among the * already opened libraries then in the designated location paths. * - * Return: Non-NULL on success/NULL on failure + * Return: Non-NULL on success/NULL on failure * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 13 February 2013 * *------------------------------------------------------------------------- @@ -290,9 +340,18 @@ H5PL_load(H5PL_type_t type, int id, const char *name) FUNC_ENTER_NOAPI(NULL) - /* Check for "no plugins" indicated" */ - if(H5PL_no_plugin_g) - HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin filter '%d' is not available", id) + switch (type) { + case H5PL_TYPE_FILTER: + if((H5PL_plugin_g & H5PL_FILTER_PLUGIN) == 0) + HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin filter '%d' is not available", id) + break; + case H5PL_TYPE_VOL: + if((H5PL_plugin_g & H5PL_VOL_PLUGIN) == 0) + HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin filter '%d' is not available", id) + break; + default: + HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin '%d' is not valid", id) + } /* Initialize the location paths for dynamic libraries, if they aren't * already set up. @@ -331,13 +390,13 @@ done: /*------------------------------------------------------------------------- - * Function: H5PL__init_path_table + * Function: H5PL__init_path_table * - * Purpose: Initialize the path table. + * Purpose: Initialize the path table. * - * Return: Non-negative on success/Negative on failure + * Return: Non-negative on success/Negative on failure * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * 18 March 2013 * *------------------------------------------------------------------------- @@ -386,18 +445,18 @@ done: /*------------------------------------------------------------------------- - * Function: H5PL__find + * Function: H5PL__find * * Purpose: Given a path, this function opens the directory and envokes * another function to go through all files to find the right * plugin library. Two function definitions are for Unix and * Windows. * - * Return: TRUE on success, + * Return: TRUE on success, * FALSE on not found, * negative on failure * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 13 February 2013 * *------------------------------------------------------------------------- @@ -474,17 +533,17 @@ done: static htri_t H5PL__find(H5PL_type_t plugin_type, int type_id, const char *plugin_name, char *dir, const void **info) { - WIN32_FIND_DATA fdFile; - HANDLE hFind; - char *pathname = NULL; - char service[2048]; - htri_t ret_value = FALSE; + WIN32_FIND_DATAA fdFile; + HANDLE hFind; + char *pathname = NULL; + char service[2048]; + htri_t ret_value = FALSE; FUNC_ENTER_STATIC /* Specify a file mask. *.* = We want everything! */ sprintf(service, "%s\\*.dll", dir); - if((hFind = FindFirstFile(service, &fdFile)) == INVALID_HANDLE_VALUE) + if((hFind = FindFirstFileA(service, &fdFile)) == INVALID_HANDLE_VALUE) HGOTO_ERROR(H5E_PLUGIN, H5E_OPENERROR, FAIL, "can't open directory") do { @@ -497,7 +556,7 @@ H5PL__find(H5PL_type_t plugin_type, int type_id, const char *plugin_name, char * /* Allocate & initialize the path name */ pathname_len = HDstrlen(dir) + HDstrlen(fdFile.cFileName) + 2; - if(NULL == (pathname = (char *)H5MM_malloc(pathname_len))) + if(NULL == (pathname = (char *)H5MM_malloc(pathname_len))) HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't allocate memory for path") HDsnprintf(pathname, pathname_len, "%s\\%s", dir, fdFile.cFileName); @@ -512,10 +571,10 @@ H5PL__find(H5PL_type_t plugin_type, int type_id, const char *plugin_name, char * HGOTO_DONE(TRUE) } /* end if */ else - HDassert(pathname); + HDassert(pathname); pathname = (char *)H5MM_xfree(pathname); } /* end if */ - } while(FindNextFile(hFind, &fdFile)); /* Find the next file. */ + } while(FindNextFileA(hFind, &fdFile)); /* Find the next file. */ done: if(hFind) @@ -529,17 +588,17 @@ done: /*------------------------------------------------------------------------- - * Function: H5PL__open + * Function: H5PL__open * * Purpose: Iterates through all files to find the right plugin library. * It loads the dynamic plugin library and keeps it on the list - * of loaded libraries. + * of loaded libraries. * - * Return: TRUE on success, + * Return: TRUE on success, * FALSE on not found, * negative on failure * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 13 February 2013 * *------------------------------------------------------------------------- @@ -680,16 +739,16 @@ done: /*------------------------------------------------------------------------- - * Function: H5PL__search_table + * Function: H5PL__search_table * * Purpose: Search in the list of already opened dynamic libraries * to see if the one we are looking for is already opened. * - * Return: TRUE on success, + * Return: TRUE on success, * FALSE on not found, * Negative on failure * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 13 February 2013 * *------------------------------------------------------------------------- @@ -711,12 +770,12 @@ H5PL__search_table(H5PL_type_t plugin_type, int type_id, const char *plugin_name const H5Z_class2_t *plugin_info; if(NULL == (get_plugin_info = (H5PL_get_plugin_info_t)H5PL_GET_LIB_FUNC((H5PL_filter_table_g[i]).handle, "H5PLget_plugin_info"))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get function for H5PLget_plugin_info") + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get function for H5PLget_plugin_info") - if(NULL == (plugin_info = (const H5Z_class2_t *)(*get_plugin_info)())) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get plugin info") + if(NULL == (plugin_info = (const H5Z_class2_t *)(*get_plugin_info)())) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get plugin info") - *info = plugin_info; + *info = plugin_info; HGOTO_DONE(TRUE) } /* end if */ } /* end for */ @@ -748,13 +807,13 @@ done: /*------------------------------------------------------------------------- - * Function: H5PL__close + * Function: H5PL__close * * Purpose: Closes the handle for dynamic library * - * Return: Non-negative on success/Negative on failure + * Return: Non-negative on success/Negative on failure * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 13 February 2013 * *------------------------------------------------------------------------- @@ -768,4 +827,3 @@ H5PL__close(H5PL_HANDLE handle) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5PL__close() */ - diff --git a/src/H5PLextern.h b/src/H5PLextern.h index d368cc0..3264435 100644 --- a/src/H5PLextern.h +++ b/src/H5PLextern.h @@ -22,19 +22,6 @@ /* Include HDF5 header */ #include "hdf5.h" -/*******************/ -/* Public Typedefs */ -/*******************/ - -/* Plugin type */ -typedef enum H5PL_type_t { - H5PL_TYPE_ERROR = -1, /*error */ - H5PL_TYPE_FILTER = 0, /*filter */ - H5PL_TYPE_VOL = 1, /*vol plugin */ - H5PL_TYPE_NONE = 2 /*this must be last! */ -} H5PL_type_t; - - /* plugins always export */ #if defined (_MSC_VER) /* MSVC Compiler Case */ #define H5PLUGIN_DLL __declspec(dllexport) diff --git a/src/H5PLprivate.h b/src/H5PLprivate.h index 76eb428..ca9b2ba 100644 --- a/src/H5PLprivate.h +++ b/src/H5PLprivate.h @@ -19,19 +19,8 @@ #ifndef _H5PLprivate_H #define _H5PLprivate_H -/* Keep the following in sync with the package's "external" header */ - -/*******************/ -/* Public Typedefs */ -/*******************/ - -/* Plugin type */ -typedef enum H5PL_type_t { - H5PL_TYPE_ERROR = -1, /*error */ - H5PL_TYPE_FILTER = 0, /*filter */ - H5PL_TYPE_VOL = 1, /*vol plugin */ - H5PL_TYPE_NONE = 2 /*this must be last! */ -} H5PL_type_t; +/* Include package's public header */ +#include "H5PLpublic.h" /* Private headers needed by this file */ #include "H5private.h" /* Generic Functions */ @@ -58,7 +47,6 @@ typedef enum H5PL_type_t { /* Internal API routines */ H5_DLL const void *H5PL_load(H5PL_type_t plugin_type, int type_id, const char *plugin_name); -H5_DLL htri_t H5PL_no_plugin(void); #endif /* _H5PLprivate_H */ diff --git a/src/H5PLpublic.h b/src/H5PLpublic.h new file mode 100644 index 0000000..f7cd0e1 --- /dev/null +++ b/src/H5PLpublic.h @@ -0,0 +1,55 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the 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 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. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Raymond Lu <songyulu@hdfgroup.org> + * 13 February 2013 + */ + +#ifndef _H5PLpublic_H +#define _H5PLpublic_H + +/* Public headers needed by this file */ +#include "H5public.h" /* Generic Functions */ + +/*******************/ +/* Public Typedefs */ +/*******************/ + +/* Plugin type used by the plugin library */ +typedef enum H5PL_type_t { + H5PL_TYPE_ERROR = -1, /*error */ + H5PL_TYPE_FILTER = 0, /*filter */ + H5PL_TYPE_VOL = 1, /*vol plugin */ + H5PL_TYPE_NONE = 2 /*this must be last! */ +} H5PL_type_t; + +/* Common dynamic plugin type flags used by the set/get_loading_state functions */ +#define H5PL_FILTER_PLUGIN 0x0001 +#define H5PL_VOL_PLUGIN 0x0002 +#define H5PL_ALL_PLUGIN 0xFFFF + +#ifdef __cplusplus +extern "C" { +#endif + +/* plugin state */ +H5_DLL herr_t H5PLset_loading_state(unsigned int plugin_type); +H5_DLL herr_t H5PLget_loading_state(unsigned int* plugin_type/*out*/); + +#ifdef __cplusplus +} +#endif + +#endif /* _H5PLpublic_H */ + diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c index 6e31af9..326db3a 100644 --- a/src/H5Pdcpl.c +++ b/src/H5Pdcpl.c @@ -53,7 +53,7 @@ /* Define default layout information */ #define H5D_DEF_STORAGE_COMPACT_INIT {(hbool_t)FALSE, (size_t)0, NULL} #define H5D_DEF_STORAGE_CONTIG_INIT {HADDR_UNDEF, (hsize_t)0} -#define H5D_DEF_STORAGE_CHUNK_INIT {H5D_CHUNK_BTREE, HADDR_UNDEF, NULL, {{HADDR_UNDEF, NULL}}} +#define H5D_DEF_STORAGE_CHUNK_INIT {H5D_CHUNK_IDX_BTREE, HADDR_UNDEF, NULL, {{HADDR_UNDEF, NULL}}} #define H5D_DEF_LAYOUT_CHUNK_INIT {(unsigned)0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, (uint32_t)0, (hsize_t)0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} #ifdef H5_HAVE_C99_DESIGNATED_INITIALIZER #define H5D_DEF_STORAGE_COMPACT {H5D_COMPACT, { .compact = H5D_DEF_STORAGE_COMPACT_INIT }} diff --git a/src/H5Pfapl.c b/src/H5Pfapl.c index c8ca821..ca8f398 100644 --- a/src/H5Pfapl.c +++ b/src/H5Pfapl.c @@ -995,6 +995,7 @@ H5Pget_driver_info(hid_t plist_id) void *ret_value; /* Return value */ FUNC_ENTER_API(NULL) + H5TRACE1("*x", "i", plist_id); if(NULL == (plist = (H5P_genplist_t *)H5I_object_verify(plist_id, H5I_GENPROP_LST))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a property list") diff --git a/src/H5Pfcpl.c b/src/H5Pfcpl.c index aca589c..5fc93fd 100644 --- a/src/H5Pfcpl.c +++ b/src/H5Pfcpl.c @@ -517,6 +517,9 @@ H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk) /* Set values */ if (ik > 0) { + if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries"); + if(H5P_get(plist, H5F_CRT_BTREE_RANK_NAME, btree_k) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get rank for btree interanl nodes"); btree_k[H5B_SNODE_ID] = ik; @@ -614,6 +617,9 @@ H5Pset_istore_k(hid_t plist_id, unsigned ik) if (ik == 0) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value must be positive"); + if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries"); + /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_CREATE))) HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); @@ -286,7 +286,7 @@ H5R_create(void *_ref, H5G_loc_t *loc, const char *name, H5R_type_t ref_type, H5 H5F_addr_encode(loc->oloc->file, &p, obj_loc.oloc->addr); /* Serialize the selection into heap buffer */ - if(H5S_SELECT_SERIALIZE(space, p) < 0) + if(H5S_SELECT_SERIALIZE(space, &p) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTCOPY, FAIL, "Unable to serialize selection") /* Save the serialized buffer for later */ @@ -411,6 +411,10 @@ done: 13 July 2011 I added the OAPL_ID parameter for the object being referenced. It only supports dataset access property list currently. + + M. Scot Breitenfeld + 3 March 2015 + Added a check for undefined reference pointer. --------------------------------------------------------------------------*/ hid_t H5R_dereference(H5F_t *file, hid_t oapl_id, hid_t dxpl_id, H5R_type_t ref_type, const void *_ref, hbool_t app_ref) @@ -435,8 +439,10 @@ H5R_dereference(H5F_t *file, hid_t oapl_id, hid_t dxpl_id, H5R_type_t ref_type, switch(ref_type) { case H5R_OBJECT: oloc.addr = *(const hobj_ref_t *)_ref; /* Only object references currently supported */ - break; - + if(!H5F_addr_defined(oloc.addr) || oloc.addr == 0) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Undefined reference pointer") + break; + case H5R_DATASET_REGION: { H5HG_t hobjid; /* Heap object ID */ @@ -448,6 +454,9 @@ H5R_dereference(H5F_t *file, hid_t oapl_id, hid_t dxpl_id, H5R_type_t ref_type, H5F_addr_decode(oloc.file, &p, &(hobjid.addr)); UINT32DECODE(p, hobjid.idx); + if(!H5F_addr_defined(hobjid.addr) || hobjid.addr == 0) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Undefined reference pointer") + /* Get the dataset region from the heap (allocate inside routine) */ if(NULL == (buf = (uint8_t *)H5HG_read(oloc.file, dxpl_id, &hobjid, NULL, NULL))) HGOTO_ERROR(H5E_REFERENCE, H5E_READERROR, FAIL, "Unable to read dataset region information") @@ -670,7 +679,7 @@ H5R_get_region(H5F_t *file, hid_t dxpl_id, const void *_ref) HGOTO_ERROR(H5E_DATASPACE, H5E_NOTFOUND, NULL, "not found") /* Unserialize the selection */ - if(H5S_select_deserialize(ret_value, p) < 0) + if(H5S_SELECT_DESERIALIZE(&ret_value, &p) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTDECODE, NULL, "can't deserialize selection") done: @@ -139,7 +139,7 @@ done: REVISION LOG --------------------------------------------------------------------------*/ H5RS_str_t * -H5RS_wrap(const char *s) +H5RS_wrap(char *s) { H5RS_str_t *ret_value; /* Return value */ @@ -150,7 +150,7 @@ H5RS_wrap(const char *s) HGOTO_ERROR(H5E_RS, H5E_NOSPACE, NULL, "memory allocation failed") /* Set the internal fields */ - ret_value->s = (char *)s; /* (Cast away const OK - QAK) */ + ret_value->s = s; ret_value->wrapped = 1; ret_value->n = 1; diff --git a/src/H5RSprivate.h b/src/H5RSprivate.h index c46f53c..757e0e4 100644 --- a/src/H5RSprivate.h +++ b/src/H5RSprivate.h @@ -46,7 +46,7 @@ typedef struct H5RS_str_t H5RS_str_t; /* Private routines */ /********************/ H5_DLL H5RS_str_t *H5RS_create(const char *s); -H5_DLL H5RS_str_t *H5RS_wrap(const char *s); +H5_DLL H5RS_str_t *H5RS_wrap(char *s); H5_DLL H5RS_str_t *H5RS_own(char *s); H5_DLL herr_t H5RS_decr(H5RS_str_t *rs); H5_DLL herr_t H5RS_incr(H5RS_str_t *rs); @@ -482,6 +482,12 @@ H5Sextent_copy(hid_t dst_id,hid_t src_id) if(H5S_extent_copy(&(dst->extent), &(src->extent), TRUE) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "can't copy extent") + /* If the selection is 'all', update the number of elements selected in the + * destination space */ + if(H5S_SEL_ALL == H5S_GET_SELECT_TYPE(dst)) + if(H5S_select_all(dst, FALSE) < 0) + HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection") + done: FUNC_LEAVE_API(ret_value) } /* end H5Sextent_copy() */ @@ -509,6 +515,10 @@ H5S_extent_copy(H5S_extent_t *dst, const H5S_extent_t *src, hbool_t copy_max) FUNC_ENTER_NOAPI(FAIL) + /* Release destination extent before we copy over it */ + if(H5S_extent_release(dst) < 0) + HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release dataspace extent") + /* Copy the regular fields */ dst->type = src->type; dst->version = src->version; @@ -583,7 +593,7 @@ H5S_copy(const H5S_t *src, hbool_t share_selection, hbool_t copy_max) FUNC_ENTER_NOAPI(NULL) - if(NULL == (dst = H5FL_MALLOC(H5S_t))) + if(NULL == (dst = H5FL_CALLOC(H5S_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* Copy the source dataspace's extent */ @@ -1536,7 +1546,7 @@ H5S_encode(H5S_t *obj, unsigned char *buf, size_t *nalloc) buf += extent_size; /* Encode the selection part of dataspace. */ - if(H5S_SELECT_SERIALIZE(obj, buf) < 0) + if(H5S_SELECT_SERIALIZE(obj, &buf) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTENCODE, FAIL, "can't encode select space") } /* end else */ @@ -1655,7 +1665,7 @@ H5S_decode(const unsigned char *buf) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSET, NULL, "unable to set all selection") /* Decode the select part of dataspace. I believe this part always exists. */ - if(H5S_SELECT_DESERIALIZE(ds, buf) < 0) + if(H5S_SELECT_DESERIALIZE(&ds, &buf) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDECODE, NULL, "can't decode space selection") /* Set return value */ diff --git a/src/H5Sall.c b/src/H5Sall.c index 24caad2..1105915 100644 --- a/src/H5Sall.c +++ b/src/H5Sall.c @@ -39,8 +39,8 @@ static herr_t H5S_all_get_seq_list(const H5S_t *space, unsigned flags, static herr_t H5S_all_release(H5S_t *space); static htri_t H5S_all_is_valid(const H5S_t *space); static hssize_t H5S_all_serial_size(const H5S_t *space); -static herr_t H5S_all_serialize(const H5S_t *space, uint8_t *buf); -static herr_t H5S_all_deserialize(H5S_t *space, const uint8_t *buf); +static herr_t H5S_all_serialize(const H5S_t *space, uint8_t **p); +static herr_t H5S_all_deserialize(H5S_t *space, const uint8_t **p); static herr_t H5S_all_bounds(const H5S_t *space, hsize_t *start, hsize_t *end); static herr_t H5S_all_offset(const H5S_t *space, hsize_t *off); static htri_t H5S_all_is_contiguous(const H5S_t *space); @@ -496,9 +496,11 @@ H5S_all_serial_size (const H5S_t UNUSED *space) PURPOSE Serialize the current selection into a user-provided buffer. USAGE - herr_t H5S_all_serialize(space, buf) - H5S_t *space; IN: Dataspace pointer of selection to serialize - uint8 *buf; OUT: Buffer to put serialized selection into + herr_t H5S_all_serialize(space, p) + const H5S_t *space; IN: Dataspace with selection to serialize + uint8_t **p; OUT: Pointer to buffer to put serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -510,17 +512,19 @@ H5S_all_serial_size (const H5S_t UNUSED *space) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_all_serialize (const H5S_t *space, uint8_t *buf) +H5S_all_serialize (const H5S_t *space, uint8_t **p) { FUNC_ENTER_NOAPI_NOINIT_NOERR HDassert(space); + HDassert(p); + HDassert(*p); /* Store the preamble information */ - UINT32ENCODE(buf, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ - UINT32ENCODE(buf, (uint32_t)1); /* Store the version number */ - UINT32ENCODE(buf, (uint32_t)0); /* Store the un-used padding */ - UINT32ENCODE(buf, (uint32_t)0); /* Store the additional information length */ + UINT32ENCODE(*p, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ + UINT32ENCODE(*p, (uint32_t)1); /* Store the version number */ + UINT32ENCODE(*p, (uint32_t)0); /* Store the un-used padding */ + UINT32ENCODE(*p, (uint32_t)0); /* Store the additional information length */ FUNC_LEAVE_NOAPI(SUCCEED) } /* H5S_all_serialize() */ @@ -532,9 +536,12 @@ H5S_all_serialize (const H5S_t *space, uint8_t *buf) PURPOSE Deserialize the current selection from a user-provided buffer. USAGE - herr_t H5S_all_deserialize(space, buf) - H5S_t *space; IN/OUT: Dataspace pointer to place selection into - uint8 *buf; IN: Buffer to retrieve serialized selection from + herr_t H5S_all_deserialize(space, p) + H5S_t *space; IN/OUT: Dataspace pointer to place + selection into + uint8 **p; OUT: Pointer to buffer holding serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -546,16 +553,18 @@ H5S_all_serialize (const H5S_t *space, uint8_t *buf) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_all_deserialize(H5S_t *space, const uint8_t UNUSED *buf) +H5S_all_deserialize(H5S_t *space, const uint8_t UNUSED **p) { - herr_t ret_value; /* return value */ + herr_t ret_value = SUCCEED; /* return value */ FUNC_ENTER_NOAPI(FAIL) HDassert(space); + HDassert(p); + HDassert(*p); /* Change to "all" selection */ - if((ret_value = H5S_select_all(space, TRUE)) < 0) + if(H5S_select_all(space, TRUE) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection") done: diff --git a/src/H5Sdbg.c b/src/H5Sdbg.c index df033da..0cbe4f2 100644 --- a/src/H5Sdbg.c +++ b/src/H5Sdbg.c @@ -113,6 +113,7 @@ H5S_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE *stream, int indent, indent + 3, MAX(0, fwidth - 3)); break; + case H5S_NO_CLASS: default: fprintf(stream, "%*s%-*s **UNKNOWN-%ld**\n", indent, "", fwidth, "Space class:", (long)(H5S_GET_EXTENT_TYPE(mesg))); diff --git a/src/H5Shyper.c b/src/H5Shyper.c index c97c9b6..9b1562f 100644 --- a/src/H5Shyper.c +++ b/src/H5Shyper.c @@ -54,8 +54,8 @@ static herr_t H5S_hyper_get_seq_list(const H5S_t *space, unsigned flags, static herr_t H5S_hyper_release(H5S_t *space); static htri_t H5S_hyper_is_valid(const H5S_t *space); static hssize_t H5S_hyper_serial_size(const H5S_t *space); -static herr_t H5S_hyper_serialize(const H5S_t *space, uint8_t *buf); -static herr_t H5S_hyper_deserialize(H5S_t *space, const uint8_t *buf); +static herr_t H5S_hyper_serialize(const H5S_t *space, uint8_t **p); +static herr_t H5S_hyper_deserialize(H5S_t *space, const uint8_t **p); static herr_t H5S_hyper_bounds(const H5S_t *space, hsize_t *start, hsize_t *end); static herr_t H5S_hyper_offset(const H5S_t *space, hsize_t *offset); static htri_t H5S_hyper_is_contiguous(const H5S_t *space); @@ -1994,7 +1994,7 @@ H5S_hyper_serial_size(const H5S_t *space) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_hyper_serialize_helper (const H5S_hyper_span_info_t *spans, hsize_t *start, hsize_t *end, hsize_t rank, uint8_t **buf) +H5S_hyper_serialize_helper (const H5S_hyper_span_info_t *spans, hsize_t *start, hsize_t *end, hsize_t rank, uint8_t **p) { H5S_hyper_span_t *curr; /* Pointer to current hyperslab span */ hsize_t u; /* Index variable */ @@ -2007,7 +2007,7 @@ H5S_hyper_serialize_helper (const H5S_hyper_span_info_t *spans, hsize_t *start, HDassert(start); HDassert(end); HDassert(rank < H5O_LAYOUT_NDIMS); - HDassert(buf && *buf); + HDassert(p && *p); /* Walk through the list of spans, recursing or outputing them */ curr=spans->head; @@ -2019,7 +2019,7 @@ H5S_hyper_serialize_helper (const H5S_hyper_span_info_t *spans, hsize_t *start, end[rank]=curr->high; /* Recurse down to the next dimension */ - if(H5S_hyper_serialize_helper(curr->down,start,end,rank+1,buf)<0) + if(H5S_hyper_serialize_helper(curr->down,start,end,rank+1,p)<0) HGOTO_ERROR(H5E_INTERNAL, H5E_CANTFREE, FAIL, "failed to release hyperslab spans") } /* end if */ else { @@ -2027,17 +2027,17 @@ H5S_hyper_serialize_helper (const H5S_hyper_span_info_t *spans, hsize_t *start, /* Encode previous starting points */ for(u=0; u<rank; u++) - UINT32ENCODE(*buf, (uint32_t)start[u]); + UINT32ENCODE(*p, (uint32_t)start[u]); /* Encode starting point for this span */ - UINT32ENCODE(*buf, (uint32_t)curr->low); + UINT32ENCODE(*p, (uint32_t)curr->low); /* Encode previous ending points */ for(u=0; u<rank; u++) - UINT32ENCODE(*buf, (uint32_t)end[u]); + UINT32ENCODE(*p, (uint32_t)end[u]); /* Encode starting point for this span */ - UINT32ENCODE(*buf, (uint32_t)curr->high); + UINT32ENCODE(*p, (uint32_t)curr->high); } /* end else */ /* Advance to next node */ @@ -2055,9 +2055,11 @@ done: PURPOSE Serialize the current selection into a user-provided buffer. USAGE - herr_t H5S_hyper_serialize(space, buf) - H5S_t *space; IN: Dataspace pointer of selection to serialize - uint8 *buf; OUT: Buffer to put serialized selection into + herr_t H5S_hyper_serialize(space, p) + const H5S_t *space; IN: Dataspace with selection to serialize + uint8_t **p; OUT: Pointer to buffer to put serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -2069,7 +2071,7 @@ done: REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) +H5S_hyper_serialize (const H5S_t *space, uint8_t **p) { const H5S_hyper_dim_t *diminfo; /* Alias for dataspace's diminfo information */ hsize_t tmp_count[H5O_LAYOUT_NDIMS]; /* Temporary hyperslab counts */ @@ -2089,14 +2091,14 @@ H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) HDassert(space); /* Store the preamble information */ - UINT32ENCODE(buf, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ - UINT32ENCODE(buf, (uint32_t)1); /* Store the version number */ - UINT32ENCODE(buf, (uint32_t)0); /* Store the un-used padding */ - lenp = buf; /* keep the pointer to the length location for later */ - buf += 4; /* skip over space for length */ + UINT32ENCODE(*p, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ + UINT32ENCODE(*p, (uint32_t)1); /* Store the version number */ + UINT32ENCODE(*p, (uint32_t)0); /* Store the un-used padding */ + lenp = *p; /* keep the pointer to the length location for later */ + *p += 4; /* skip over space for length */ /* Encode number of dimensions */ - UINT32ENCODE(buf, (uint32_t)space->extent.rank); + UINT32ENCODE(*p, (uint32_t)space->extent.rank); len += 4; /* Check for a "regular" hyperslab selection */ @@ -2114,7 +2116,7 @@ H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) /* Encode number of hyperslabs */ H5_CHECK_OVERFLOW(block_count, hsize_t, uint32_t); - UINT32ENCODE(buf, (uint32_t)block_count); + UINT32ENCODE(*p, (uint32_t)block_count); len+=4; /* Now serialize the information for the regular hyperslab */ @@ -2137,11 +2139,11 @@ H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) /* Encode hyperslab starting location */ for(u = 0; u < ndims; u++) - UINT32ENCODE(buf, (uint32_t)offset[u]); + UINT32ENCODE(*p, (uint32_t)offset[u]); /* Encode hyperslab ending location */ for(u = 0; u < ndims; u++) - UINT32ENCODE(buf, (uint32_t)(offset[u] + (diminfo[u].block - 1))); + UINT32ENCODE(*p, (uint32_t)(offset[u] + (diminfo[u].block - 1))); /* Move the offset to the next sequence to start */ offset[fast_dim]+=diminfo[fast_dim].stride; @@ -2192,15 +2194,15 @@ H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) /* Encode number of hyperslabs */ block_count = H5S_hyper_span_nblocks(space->select.sel_info.hslab->span_lst); H5_CHECK_OVERFLOW(block_count, hsize_t, uint32_t); - UINT32ENCODE(buf, (uint32_t)block_count); + UINT32ENCODE(*p, (uint32_t)block_count); len+=4; /* Add 8 bytes times the rank for each hyperslab selected */ H5_CHECK_OVERFLOW((8 * space->extent.rank * block_count), hsize_t, size_t); - len += (size_t)(8 * space->extent.rank * block_count); + len += (uint32_t)(8 * space->extent.rank * block_count); /* Encode each hyperslab in selection */ - H5S_hyper_serialize_helper(space->select.sel_info.hslab->span_lst, start, end, (hsize_t)0, &buf); + H5S_hyper_serialize_helper(space->select.sel_info.hslab->span_lst, start, end, (hsize_t)0, p); } /* end else */ /* Encode length */ @@ -2216,9 +2218,12 @@ H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) PURPOSE Deserialize the current selection from a user-provided buffer. USAGE - herr_t H5S_hyper_deserialize(space, buf) - H5S_t *space; IN/OUT: Dataspace pointer to place selection into - uint8 *buf; IN: Buffer to retrieve serialized selection from + herr_t H5S_hyper_deserialize(space, p) + H5S_t *space; IN/OUT: Dataspace pointer to place + selection into + uint8 **p; OUT: Pointer to buffer holding serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -2230,9 +2235,9 @@ H5S_hyper_serialize (const H5S_t *space, uint8_t *buf) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_hyper_deserialize (H5S_t *space, const uint8_t *buf) +H5S_hyper_deserialize (H5S_t *space, const uint8_t **p) { - uint32_t rank; /* rank of points */ + unsigned rank; /* rank of points */ size_t num_elem=0; /* number of elements in selection */ hsize_t start[H5O_LAYOUT_NDIMS]; /* hyperslab start information */ hsize_t end[H5O_LAYOUT_NDIMS]; /* hyperslab end information */ @@ -2251,14 +2256,13 @@ H5S_hyper_deserialize (H5S_t *space, const uint8_t *buf) /* Check args */ HDassert(space); - HDassert(buf); + HDassert(p); + HDassert(*p); /* Deserialize slabs to select */ - buf+=16; /* Skip over selection header */ - UINT32DECODE(buf,rank); /* decode the rank of the point selection */ - if(rank!=space->extent.rank) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "rank of pointer does not match dataspace") - UINT32DECODE(buf,num_elem); /* decode the number of points */ + /* (The header and rank have already beed decoded) */ + rank = space->extent.rank; /* Retrieve rank from space */ + UINT32DECODE(*p,num_elem); /* decode the number of points */ /* Set the count & stride for all blocks */ for(tcount=count,tstride=stride,j=0; j<rank; j++,tstride++,tcount++) { @@ -2270,14 +2274,14 @@ H5S_hyper_deserialize (H5S_t *space, const uint8_t *buf) for(i=0; i<num_elem; i++) { /* Decode the starting points */ for(tstart=start,j=0; j<rank; j++,tstart++) - UINT32DECODE(buf, *tstart); + UINT32DECODE(*p, *tstart); /* Decode the ending points */ for(tend=end,j=0; j<rank; j++,tend++) - UINT32DECODE(buf, *tend); + UINT32DECODE(*p, *tend); /* Change the ending points into blocks */ - for(tblock=block,tstart=start,tend=end,j=0; j<(unsigned)rank; j++,tstart++,tend++,tblock++) + for(tblock=block,tstart=start,tend=end,j=0; j<rank; j++,tstart++,tend++,tblock++) *tblock=(*tend-*tstart)+1; /* Select or add the hyperslab to the current selection */ @@ -8856,3 +8860,109 @@ H5S_hyper_get_seq_list(const H5S_t *space, unsigned UNUSED flags, H5S_sel_iter_t FUNC_LEAVE_NOAPI(ret_value) } /* end H5S_hyper_get_seq_list() */ + +/*-------------------------------------------------------------------------- + NAME + H5Sis_regular_hyperslab + PURPOSE + Determine if a hyperslab selection is regular + USAGE + htri_t H5Sis_regular_hyperslab(dsid) + hid_t dsid; IN: Dataspace ID of hyperslab selection to query + RETURNS + TRUE/FALSE for hyperslab selection, FAIL on error or when querying other + selection types. + DESCRIPTION + If a hyperslab can be represented as a single call to H5Sselect_hyperslab, + with the H5S_SELECT_SET option, it is regular. If the hyperslab selection + would require multiple calls to H5Sselect_hyperslab, it is irregular. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +htri_t +H5Sis_regular_hyperslab(hid_t spaceid) +{ + H5S_t *space; /* Dataspace to query */ + htri_t ret_value; /* Return value */ + + FUNC_ENTER_API(FAIL) + H5TRACE1("t", "i", spaceid); + + /* Check args */ + if(NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace") + if(H5S_GET_SELECT_TYPE(space) != H5S_SEL_HYPERSLABS) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a hyperslab selection") + + ret_value = H5S_hyper_is_regular(space); + +done: + FUNC_LEAVE_API(ret_value) +} /* H5Sis_regular_hyperslab() */ + + +/*-------------------------------------------------------------------------- + NAME + H5Sgetregular_hyperslab + PURPOSE + Retrieve a regular hyperslab selection + USAGE + herr_t H5Sget_regular_hyperslab(dsid, start, stride, block, count) + hid_t dsid; IN: Dataspace ID of hyperslab selection to query + hsize_t start[]; OUT: Offset of start of hyperslab + hsize_t stride[]; OUT: Hyperslab stride + hsize_t count[]; OUT: Number of blocks included in hyperslab + hsize_t block[]; OUT: Size of block in hyperslab + RETURNS + Non-negative on success/Negative on failure. (It is an error to query + the regular hyperslab selections for non-regular hyperslab selections) + DESCRIPTION + Retrieve the start/stride/count/block for a regular hyperslab selection. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + Note that if a hyperslab is originally regular, then becomes irregular + through selection operations, and then becomes regular again, the new + final regular selection may be equivalent but not identical to the + original regular selection. + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +herr_t +H5Sget_regular_hyperslab(hid_t spaceid, hsize_t start[], hsize_t stride[], + hsize_t count[], hsize_t block[]) +{ + H5S_t *space; /* Dataspace to query */ + unsigned u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_API(FAIL) + H5TRACE5("e", "i*h*h*h*h", spaceid, start, stride, count, block); + + /* Check args */ + if(NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace") + if(H5S_GET_SELECT_TYPE(space) != H5S_SEL_HYPERSLABS) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a hyperslab selection") + if(TRUE != H5S_hyper_is_regular(space)) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a regular hyperslab selection") + + /* Retrieve hyperslab parameters */ + if(start) + for(u = 0; u < space->extent.rank; u++) + start[u] = space->select.sel_info.hslab->app_diminfo[u].start; + if(stride) + for(u = 0; u < space->extent.rank; u++) + stride[u] = space->select.sel_info.hslab->app_diminfo[u].stride; + if(count) + for(u = 0; u < space->extent.rank; u++) + count[u] = space->select.sel_info.hslab->app_diminfo[u].count; + if(block) + for(u = 0; u < space->extent.rank; u++) + block[u] = space->select.sel_info.hslab->app_diminfo[u].block; + +done: + FUNC_LEAVE_API(ret_value) +} /* H5Sget_regular_hyperslab() */ + diff --git a/src/H5Snone.c b/src/H5Snone.c index 3c5eccc..c5ec2de 100644 --- a/src/H5Snone.c +++ b/src/H5Snone.c @@ -40,8 +40,8 @@ static herr_t H5S_none_get_seq_list(const H5S_t *space, unsigned flags, static herr_t H5S_none_release(H5S_t *space); static htri_t H5S_none_is_valid(const H5S_t *space); static hssize_t H5S_none_serial_size(const H5S_t *space); -static herr_t H5S_none_serialize(const H5S_t *space, uint8_t *buf); -static herr_t H5S_none_deserialize(H5S_t *space, const uint8_t *buf); +static herr_t H5S_none_serialize(const H5S_t *space, uint8_t **p); +static herr_t H5S_none_deserialize(H5S_t *space, const uint8_t **p); static herr_t H5S_none_bounds(const H5S_t *space, hsize_t *start, hsize_t *end); static herr_t H5S_none_offset(const H5S_t *space, hsize_t *off); static htri_t H5S_none_is_contiguous(const H5S_t *space); @@ -464,9 +464,11 @@ H5S_none_serial_size(const H5S_t UNUSED *space) PURPOSE Serialize the current selection into a user-provided buffer. USAGE - herr_t H5S_none_serialize(space, buf) - H5S_t *space; IN: Dataspace pointer of selection to serialize - uint8 *buf; OUT: Buffer to put serialized selection into + herr_t H5S_none_serialize(space, p) + const H5S_t *space; IN: Dataspace with selection to serialize + uint8_t **p; OUT: Pointer to buffer to put serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -478,17 +480,17 @@ H5S_none_serial_size(const H5S_t UNUSED *space) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_none_serialize(const H5S_t *space, uint8_t *buf) +H5S_none_serialize(const H5S_t *space, uint8_t **p) { FUNC_ENTER_NOAPI_NOINIT_NOERR HDassert(space); /* Store the preamble information */ - UINT32ENCODE(buf, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ - UINT32ENCODE(buf, (uint32_t)1); /* Store the version number */ - UINT32ENCODE(buf, (uint32_t)0); /* Store the un-used padding */ - UINT32ENCODE(buf, (uint32_t)0); /* Store the additional information length */ + UINT32ENCODE(*p, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ + UINT32ENCODE(*p, (uint32_t)1); /* Store the version number */ + UINT32ENCODE(*p, (uint32_t)0); /* Store the un-used padding */ + UINT32ENCODE(*p, (uint32_t)0); /* Store the additional information length */ FUNC_LEAVE_NOAPI(SUCCEED) } /* H5S_none_serialize() */ @@ -500,9 +502,12 @@ H5S_none_serialize(const H5S_t *space, uint8_t *buf) PURPOSE Deserialize the current selection from a user-provided buffer. USAGE - herr_t H5S_none_deserialize(space, buf) - H5S_t *space; IN/OUT: Dataspace pointer to place selection into - uint8 *buf; IN: Buffer to retrieve serialized selection from + herr_t H5S_none_deserialize(space, p) + H5S_t *space; IN/OUT: Dataspace pointer to place + selection into + uint8 **p; OUT: Pointer to buffer holding serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -514,13 +519,15 @@ H5S_none_serialize(const H5S_t *space, uint8_t *buf) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_none_deserialize(H5S_t *space, const uint8_t UNUSED *buf) +H5S_none_deserialize(H5S_t *space, const uint8_t UNUSED **p) { herr_t ret_value = SUCCEED; /* return value */ FUNC_ENTER_NOAPI_NOINIT HDassert(space); + HDassert(p); + HDassert(*p); /* Change to "none" selection */ if(H5S_select_none(space) < 0) diff --git a/src/H5Spkg.h b/src/H5Spkg.h index 0a9df69..5f84717 100644 --- a/src/H5Spkg.h +++ b/src/H5Spkg.h @@ -130,9 +130,9 @@ typedef htri_t (*H5S_sel_is_valid_func_t)(const H5S_t *space); /* Method to determine number of bytes required to store current selection */ typedef hssize_t (*H5S_sel_serial_size_func_t)(const H5S_t *space); /* Method to store current selection in "serialized" form (a byte sequence suitable for storing on disk) */ -typedef herr_t (*H5S_sel_serialize_func_t)(const H5S_t *space, uint8_t *buf); +typedef herr_t (*H5S_sel_serialize_func_t)(const H5S_t *space, uint8_t **p); /* Method to store create selection from "serialized" form (a byte sequence suitable for storing on disk) */ -typedef herr_t (*H5S_sel_deserialize_func_t)(H5S_t *space, const uint8_t *buf); +typedef herr_t (*H5S_sel_deserialize_func_t)(H5S_t *space, const uint8_t **p); /* Method to determine smallest n-D bounding box containing the current selection */ typedef herr_t (*H5S_sel_bounds_func_t)(const H5S_t *space, hsize_t *start, hsize_t *end); /* Method to determine linear offset of initial element in selection within dataspace */ diff --git a/src/H5Spoint.c b/src/H5Spoint.c index 70842df..44e0510 100644 --- a/src/H5Spoint.c +++ b/src/H5Spoint.c @@ -41,8 +41,8 @@ static herr_t H5S_point_get_seq_list(const H5S_t *space, unsigned flags, static herr_t H5S_point_release(H5S_t *space); static htri_t H5S_point_is_valid(const H5S_t *space); static hssize_t H5S_point_serial_size(const H5S_t *space); -static herr_t H5S_point_serialize(const H5S_t *space, uint8_t *buf); -static herr_t H5S_point_deserialize(H5S_t *space, const uint8_t *buf); +static herr_t H5S_point_serialize(const H5S_t *space, uint8_t **p); +static herr_t H5S_point_deserialize(H5S_t *space, const uint8_t **p); static herr_t H5S_point_bounds(const H5S_t *space, hsize_t *start, hsize_t *end); static herr_t H5S_point_offset(const H5S_t *space, hsize_t *off); static htri_t H5S_point_is_contiguous(const H5S_t *space); @@ -804,9 +804,11 @@ H5S_point_serial_size (const H5S_t *space) PURPOSE Serialize the current selection into a user-provided buffer. USAGE - herr_t H5S_point_serialize(space, buf) - H5S_t *space; IN: Dataspace pointer of selection to serialize - uint8 *buf; OUT: Buffer to put serialized selection into + herr_t H5S_point_serialize(space, p) + const H5S_t *space; IN: Dataspace with selection to serialize + uint8_t **p; OUT: Pointer to buffer to put serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -818,7 +820,7 @@ H5S_point_serial_size (const H5S_t *space) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_point_serialize (const H5S_t *space, uint8_t *buf) +H5S_point_serialize (const H5S_t *space, uint8_t **p) { H5S_pnt_node_t *curr; /* Point information nodes */ uint8_t *lenp; /* pointer to length location for later storage */ @@ -830,18 +832,18 @@ H5S_point_serialize (const H5S_t *space, uint8_t *buf) HDassert(space); /* Store the preamble information */ - UINT32ENCODE(buf, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ - UINT32ENCODE(buf, (uint32_t)1); /* Store the version number */ - UINT32ENCODE(buf, (uint32_t)0); /* Store the un-used padding */ - lenp=buf; /* keep the pointer to the length location for later */ - buf+=4; /* skip over space for length */ + UINT32ENCODE(*p, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */ + UINT32ENCODE(*p, (uint32_t)1); /* Store the version number */ + UINT32ENCODE(*p, (uint32_t)0); /* Store the un-used padding */ + lenp=*p; /* keep the pointer to the length location for later */ + *p+=4; /* skip over space for length */ /* Encode number of dimensions */ - UINT32ENCODE(buf, (uint32_t)space->extent.rank); + UINT32ENCODE(*p, (uint32_t)space->extent.rank); len+=4; /* Encode number of elements */ - UINT32ENCODE(buf, (uint32_t)space->select.num_elem); + UINT32ENCODE(*p, (uint32_t)space->select.num_elem); len+=4; /* Encode each point in selection */ @@ -852,7 +854,7 @@ H5S_point_serialize (const H5S_t *space, uint8_t *buf) /* Encode each point */ for(u=0; u<space->extent.rank; u++) - UINT32ENCODE(buf, (uint32_t)curr->pnt[u]); + UINT32ENCODE(*p, (uint32_t)curr->pnt[u]); curr=curr->next; } /* end while */ @@ -870,9 +872,12 @@ H5S_point_serialize (const H5S_t *space, uint8_t *buf) PURPOSE Deserialize the current selection from a user-provided buffer. USAGE - herr_t H5S_point_deserialize(space, buf) - H5S_t *space; IN/OUT: Dataspace pointer to place selection into - uint8 *buf; IN: Buffer to retrieve serialized selection from + herr_t H5S_point_deserialize(space, p) + H5S_t *space; IN/OUT: Dataspace pointer to place + selection into + uint8 **p; OUT: Pointer to buffer holding serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -884,10 +889,10 @@ H5S_point_serialize (const H5S_t *space, uint8_t *buf) REVISION LOG --------------------------------------------------------------------------*/ static herr_t -H5S_point_deserialize (H5S_t *space, const uint8_t *buf) +H5S_point_deserialize (H5S_t *space, const uint8_t **p) { H5S_seloper_t op=H5S_SELECT_SET; /* Selection operation */ - uint32_t rank; /* Rank of points */ + unsigned rank; /* Rank of points */ size_t num_elem=0; /* Number of elements in selection */ hsize_t *coord=NULL, *tcoord; /* Pointer to array of elements */ unsigned i, j; /* local counting variables */ @@ -897,14 +902,13 @@ H5S_point_deserialize (H5S_t *space, const uint8_t *buf) /* Check args */ HDassert(space); - HDassert(buf); + HDassert(p); + HDassert(*p); /* Deserialize points to select */ - buf += 16; /* Skip over selection header */ - UINT32DECODE(buf, rank); /* decode the rank of the point selection */ - if(rank != space->extent.rank) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "rank of pointer does not match dataspace") - UINT32DECODE(buf, num_elem); /* decode the number of points */ + /* (The header and rank have already beed decoded) */ + rank = space->extent.rank; /* Retrieve rank from space */ + UINT32DECODE(*p, num_elem); /* decode the number of points */ /* Allocate space for the coordinates */ if(NULL == (coord = (hsize_t *)H5MM_malloc(num_elem * rank * sizeof(hsize_t)))) @@ -913,7 +917,7 @@ H5S_point_deserialize (H5S_t *space, const uint8_t *buf) /* Retrieve the coordinates from the buffer */ for(tcoord = coord, i = 0; i < num_elem; i++) for(j = 0; j < (unsigned)rank; j++, tcoord++) - UINT32DECODE(buf, *tcoord); + UINT32DECODE(*p, *tcoord); /* Select points */ if(H5S_select_elements(space, op, num_elem, (const hsize_t *)coord) < 0) diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h index 44cd6c3..7b7b8c6 100644 --- a/src/H5Sprivate.h +++ b/src/H5Sprivate.h @@ -206,7 +206,7 @@ H5_DLL int H5S_extent_get_dims(const H5S_extent_t *ext, hsize_t dims[], hsize_t H5_DLL htri_t H5S_extent_equal(const H5S_t *ds1, const H5S_t *ds2); /* Operations on selections */ -H5_DLL herr_t H5S_select_deserialize(H5S_t *space, const uint8_t *buf); +H5_DLL herr_t H5S_select_deserialize(H5S_t **space, const uint8_t **p); H5_DLL H5S_sel_type H5S_get_select_type(const H5S_t *space); H5_DLL herr_t H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t op, void *operator_data); @@ -227,7 +227,7 @@ H5_DLL herr_t H5S_select_get_seq_list(const H5S_t *space, unsigned flags, H5S_sel_iter_t *iter, size_t maxseq, size_t maxbytes, size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len); H5_DLL hssize_t H5S_select_serial_size(const H5S_t *space); -H5_DLL herr_t H5S_select_serialize(const H5S_t *space, uint8_t *buf); +H5_DLL herr_t H5S_select_serialize(const H5S_t *space, uint8_t **p); H5_DLL htri_t H5S_select_is_contiguous(const H5S_t *space); H5_DLL htri_t H5S_select_is_single(const H5S_t *space); H5_DLL htri_t H5S_select_is_regular(const H5S_t *space); diff --git a/src/H5Spublic.h b/src/H5Spublic.h index 0a39ce1..37d3866 100644 --- a/src/H5Spublic.h +++ b/src/H5Spublic.h @@ -137,6 +137,9 @@ H5_DLL herr_t H5Sselect_all(hid_t spaceid); H5_DLL herr_t H5Sselect_none(hid_t spaceid); H5_DLL herr_t H5Soffset_simple(hid_t space_id, const hssize_t *offset); H5_DLL htri_t H5Sselect_valid(hid_t spaceid); +H5_DLL htri_t H5Sis_regular_hyperslab(hid_t spaceid); +H5_DLL htri_t H5Sget_regular_hyperslab(hid_t spaceid, hsize_t start[], + hsize_t stride[], hsize_t count[], hsize_t block[]); H5_DLL hssize_t H5Sget_select_hyper_nblocks(hid_t spaceid); H5_DLL hssize_t H5Sget_select_elem_npoints(hid_t spaceid); H5_DLL herr_t H5Sget_select_hyper_blocklist(hid_t spaceid, hsize_t startblock, diff --git a/src/H5Sselect.c b/src/H5Sselect.c index 2cb4b38..a4f13d7 100644 --- a/src/H5Sselect.c +++ b/src/H5Sselect.c @@ -239,9 +239,11 @@ H5S_select_serial_size(const H5S_t *space) PURPOSE Serialize the selection for a dataspace into a buffer USAGE - herr_t H5S_select_serialize(space, buf) + herr_t H5S_select_serialize(space, p) const H5S_t *space; IN: Dataspace with selection to serialize - uint8_t *buf; OUT: Buffer to put serialized selection + uint8_t **p; OUT: Pointer to buffer to put serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -256,17 +258,17 @@ H5S_select_serial_size(const H5S_t *space) REVISION LOG --------------------------------------------------------------------------*/ herr_t -H5S_select_serialize(const H5S_t *space, uint8_t *buf) +H5S_select_serialize(const H5S_t *space, uint8_t **p) { herr_t ret_value=SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT_NOERR HDassert(space); - HDassert(buf); + HDassert(p); /* Call the selection type's serialize function */ - ret_value=(*space->select.type->serialize)(space,buf); + ret_value=(*space->select.type->serialize)(space,p); FUNC_LEAVE_NOAPI(ret_value) } /* end H5S_select_serialize() */ @@ -428,9 +430,13 @@ H5S_select_valid(const H5S_t *space) Deserialize the current selection from a user-provided buffer into a real selection in the dataspace. USAGE - herr_t H5S_select_deserialize(space, buf) - H5S_t *space; IN/OUT: Dataspace pointer to place selection into - uint8 *buf; IN: Buffer to retrieve serialized selection from + herr_t H5S_select_deserialize(space, p) + H5S_t **space; IN/OUT: Dataspace pointer to place + selection into. Will be allocated if not + provided. + uint8 **p; OUT: Pointer to buffer holding serialized + selection. Will be advanced to end of + serialized selection. RETURNS Non-negative on success/Negative on failure DESCRIPTION @@ -444,42 +450,81 @@ H5S_select_valid(const H5S_t *space) REVISION LOG --------------------------------------------------------------------------*/ herr_t -H5S_select_deserialize (H5S_t *space, const uint8_t *buf) +H5S_select_deserialize (H5S_t **space, const uint8_t **p) { - const uint8_t *tbuf; /* Temporary pointer to the selection type */ - uint32_t sel_type; /* Pointer to the selection type */ + H5S_t *tmp_space; /* Pointer to actual dataspace to use, either + *space or a newly allocated one */ + uint32_t sel_type; /* Pointer to the selection type */ herr_t ret_value=FAIL; /* return value */ FUNC_ENTER_NOAPI(FAIL) HDassert(space); - tbuf=buf; - UINT32DECODE(tbuf, sel_type); + /* Allocate space if not provided */ + if(!*space) { + if(NULL == (tmp_space = H5S_create(H5S_SIMPLE))) + HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "can't create dataspace") + } /* end if */ + else + tmp_space = *space; + + /* Decode selection type */ + UINT32DECODE(*p, sel_type); + + /* Skip over the remainder of the header */ + *p += 12; + + /* Decode and check or patch rank for point and hyperslab selections */ + if((sel_type == H5S_SEL_POINTS) || (sel_type == H5S_SEL_HYPERSLABS)) { + uint32_t rank; /* Rank of dataspace */ + + /* Decode the rank of the point selection */ + UINT32DECODE(*p,rank); + + if(!*space) + /* Patch the rank of the allocated dataspace */ + tmp_space->extent.rank = rank; + else + /* Verify the rank of the provided dataspace */ + if(rank != tmp_space->extent.rank) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "rank of serialized selection does not match dataspace") + } /* end if */ + + /* Make routine for selection type */ switch(sel_type) { case H5S_SEL_POINTS: /* Sequence of points selected */ - ret_value=(*H5S_sel_point->deserialize)(space,buf); + ret_value = (*H5S_sel_point->deserialize)(tmp_space, p); break; case H5S_SEL_HYPERSLABS: /* Hyperslab selection defined */ - ret_value=(*H5S_sel_hyper->deserialize)(space,buf); + ret_value = (*H5S_sel_hyper->deserialize)(tmp_space, p); break; case H5S_SEL_ALL: /* Entire extent selected */ - ret_value=(*H5S_sel_all->deserialize)(space,buf); + ret_value = (*H5S_sel_all->deserialize)(tmp_space, p); break; case H5S_SEL_NONE: /* Nothing selected */ - ret_value=(*H5S_sel_none->deserialize)(space,buf); + ret_value = (*H5S_sel_none->deserialize)(tmp_space, p); break; default: break; } - if(ret_value<0) + if(ret_value < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTLOAD, FAIL, "can't deserialize selection") + /* Return space to the caller if allocated */ + if(!*space) + *space = tmp_space; + done: + /* Free temporary space if not passed to caller (only happens on error) */ + if(!*space && tmp_space) + if(H5S_close(tmp_space) < 0) + HDONE_ERROR(H5E_DATASPACE, H5E_CANTFREE, FAIL, "can't close dataspace") + FUNC_LEAVE_NOAPI(ret_value) } /* H5S_select_deserialize() */ @@ -1074,16 +1074,14 @@ H5T_init_interface(void) */ /* floating point */ -#if H5T_CONV_INTERNAL_FP_FP status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_dxpl_id, FALSE); -#endif /*H5T_CONV_INTERNAL_FP_FP*/ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_dxpl_id, FALSE); -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /* from long long */ status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_dxpl_id, FALSE); @@ -1188,151 +1186,101 @@ H5T_init_interface(void) /* From char to floats */ status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From unsigned char to floats */ status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From short to floats */ status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From unsigned short to floats */ status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From int to floats */ status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From unsigned int to floats */ status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From long to floats */ status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From unsigned long to floats */ -#if H5T_CONV_INTERNAL_ULONG_FLT status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_FLT */ -#if H5T_CONV_INTERNAL_ULONG_DBL status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_DBL */ -#if H5T_CONV_INTERNAL_ULONG_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */ /* From long long to floats */ status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_dxpl_id, FALSE); -#ifdef H5T_CONV_INTERNAL_LLONG_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */ /* From unsigned long long to floats */ -#if H5T_CONV_INTERNAL_ULLONG_FP status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULLONG_FP */ -#ifdef H5T_CONV_INTERNAL_ULLONG_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULLONG_LDOUBLE */ /* From floats to char */ status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to unsigned char */ status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to short */ status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to unsigned short */ status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to int */ status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to unsigned int */ status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_UINT status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_UINT */ status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to unsigned long */ status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /* From floats to long long */ -#if H5T_CONV_INTERNAL_FP_LLONG status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_FP_LLONG */ -#ifdef H5T_CONV_INTERNAL_LDOUBLE_LLONG status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_LLONG */ /* From floats to unsigned long long */ -#if H5T_CONV_INTERNAL_FP_ULLONG status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_FP_ULLONG */ -#if H5T_CONV_INTERNAL_LDOUBLE_ULLONG status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_ULLONG */ /* * The special no-op conversion is the fastest, so we list it last. The @@ -489,7 +489,7 @@ H5TS_win32_thread_exit(void) *-------------------------------------------------------------------------- */ H5TS_thread_t -H5TS_create_thread(void *func, H5TS_attr_t *attr, void *udata) +H5TS_create_thread(void *(*func)(void *), H5TS_attr_t *attr, void *udata) { H5TS_thread_t ret_value; diff --git a/src/H5TSprivate.h b/src/H5TSprivate.h index cc22f96..5394b77 100644 --- a/src/H5TSprivate.h +++ b/src/H5TSprivate.h @@ -122,7 +122,7 @@ H5_DLL herr_t H5TS_mutex_lock(H5TS_mutex_t *mutex); H5_DLL herr_t H5TS_mutex_unlock(H5TS_mutex_t *mutex); H5_DLL herr_t H5TS_cancel_count_inc(void); H5_DLL herr_t H5TS_cancel_count_dec(void); -H5_DLL H5TS_thread_t H5TS_create_thread(void * func, H5TS_attr_t * attr, void *udata); +H5_DLL H5TS_thread_t H5TS_create_thread(void *(*func)(void *), H5TS_attr_t * attr, void *udata); #if defined c_plusplus || defined __cplusplus } diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c index 315920e..bd1260e 100644 --- a/src/H5Tcommit.c +++ b/src/H5Tcommit.c @@ -717,7 +717,7 @@ H5T_open(const H5G_loc_t *loc, hid_t dxpl_id) else { if(NULL == (dt = H5FL_MALLOC(H5T_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "can't allocate space for datatype") - + dt->vol_obj = NULL; #if defined(H5_USING_MEMCHECKER) || !defined(NDEBUG) /* Clear object location */ if(H5O_loc_reset(&(dt->oloc)) < 0) @@ -912,7 +912,7 @@ H5T_get_named_type(const H5T_t *dt) *------------------------------------------------------------------------- */ H5T_t * -H5T_get_actual_type(const H5T_t *dt) +H5T_get_actual_type(H5T_t *dt) { H5T_t *ret_value = NULL; /* Return value */ diff --git a/src/H5Tconv.c b/src/H5Tconv.c index 58b0b46..df85553 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -7086,7 +7086,6 @@ H5T__conv_ullong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * destination values are packed. *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_FP herr_t H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7095,7 +7094,6 @@ H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_fF(FLOAT, DOUBLE, float, double, -, -); } -#endif /* H5T_CONV_INTERNAL_FP_FP */ /*------------------------------------------------------------------------- @@ -7113,7 +7111,7 @@ H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7122,7 +7120,7 @@ H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_fF(FLOAT, LDOUBLE, float, long double, -, -); } -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7147,7 +7145,6 @@ H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * destination values are packed. *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_FP herr_t H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7156,7 +7153,6 @@ H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Ff(DOUBLE, FLOAT, double, float, -FLT_MAX, FLT_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_FP*/ /*------------------------------------------------------------------------- @@ -7174,7 +7170,7 @@ H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7183,7 +7179,7 @@ H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_fF(DOUBLE, LDOUBLE, double, long double, -, -); } -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7201,7 +7197,7 @@ H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7210,7 +7206,7 @@ H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Ff(LDOUBLE, FLOAT, long double, float, -FLT_MAX, FLT_MAX); } -#endif /* H5T_CONV_INTERNAL_FP_LDOUBLE */ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7228,7 +7224,7 @@ H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7237,7 +7233,7 @@ H5T__conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Ff(LDOUBLE, DOUBLE, long double, double, -DBL_MAX, DBL_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7305,7 +7301,6 @@ H5T__conv_schar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7314,7 +7309,6 @@ H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(SCHAR, LDOUBLE, signed char, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7382,7 +7376,6 @@ H5T__conv_uchar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7391,7 +7384,6 @@ H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(UCHAR, LDOUBLE, unsigned char, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7459,7 +7451,6 @@ H5T__conv_short_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7468,7 +7459,6 @@ H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(SHORT, LDOUBLE, short, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7536,7 +7526,6 @@ H5T__conv_ushort_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7545,7 +7534,6 @@ H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(USHORT, LDOUBLE, unsigned short, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7613,7 +7601,6 @@ H5T__conv_int_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7622,7 +7609,6 @@ H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(INT, LDOUBLE, int, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7690,7 +7676,6 @@ H5T__conv_uint_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7699,7 +7684,6 @@ H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(UINT, LDOUBLE, unsigned int, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7767,7 +7751,6 @@ H5T__conv_long_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7776,7 +7759,6 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(LONG, LDOUBLE, long, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7794,7 +7776,6 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_FLT herr_t H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7803,7 +7784,6 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULONG, FLOAT, unsigned long, float, -, -); } -#endif /* H5T_CONV_INTERNAL_ULONG_FLT */ /*------------------------------------------------------------------------- @@ -7821,7 +7801,6 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_DBL herr_t H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7830,7 +7809,6 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULONG, DOUBLE, unsigned long, double, -, -); } -#endif /* H5T_CONV_INTERNAL_ULONG_DBL */ /*------------------------------------------------------------------------- @@ -7848,7 +7826,6 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_LDOUBLE herr_t H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7857,7 +7834,6 @@ H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULONG, LDOUBLE, unsigned long, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7925,7 +7901,6 @@ H5T__conv_llong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LLONG_LDOUBLE herr_t H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7934,7 +7909,6 @@ H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(LLONG, LDOUBLE, long long, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7952,7 +7926,6 @@ H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULLONG_FP herr_t H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7961,7 +7934,6 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULLONG, FLOAT, unsigned long long, float, -, -); } -#endif /*H5T_CONV_INTERNAL_ULLONG_FP*/ /*------------------------------------------------------------------------- @@ -7979,7 +7951,6 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULLONG_FP herr_t H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7988,7 +7959,6 @@ H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULLONG, DOUBLE, unsigned long long, double, -, -); } -#endif /*H5T_CONV_INTERNAL_ULLONG_FP*/ /*------------------------------------------------------------------------- @@ -8006,7 +7976,6 @@ H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULLONG_LDOUBLE herr_t H5T__conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8015,7 +7984,6 @@ H5T__conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULLONG, LDOUBLE, unsigned long long, long double, -, -); } -#endif /*H5T_CONV_INTERNAL_ULLONG_LDOUBLE*/ /*------------------------------------------------------------------------- @@ -8141,7 +8109,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8152,7 +8119,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8170,7 +8136,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8181,7 +8146,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8307,7 +8271,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8318,7 +8281,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_INTEGER*/ /*------------------------------------------------------------------------- @@ -8336,7 +8298,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8347,7 +8308,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8473,7 +8433,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8484,7 +8443,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8502,7 +8460,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_UINT herr_t H5T__conv_ldouble_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8513,7 +8470,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_UINT */ /*------------------------------------------------------------------------- @@ -8639,7 +8595,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8650,7 +8605,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_INTEGER*/ /*------------------------------------------------------------------------- @@ -8668,7 +8622,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8679,7 +8632,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8697,7 +8649,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LLONG herr_t H5T__conv_float_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8708,7 +8659,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(FLOAT, LLONG, float, long long, LLONG_MIN, LLONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_FP_LLONG */ /*------------------------------------------------------------------------- @@ -8726,7 +8676,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_ULLONG herr_t H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8735,7 +8684,6 @@ H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Fx(FLOAT, ULLONG, float, unsigned long long, 0, ULLONG_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_ULLONG*/ /*------------------------------------------------------------------------- @@ -8753,7 +8701,6 @@ H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LLONG herr_t H5T__conv_double_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8764,7 +8711,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(DOUBLE, LLONG, double, long long, LLONG_MIN, LLONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_FP_LLONG*/ /*------------------------------------------------------------------------- @@ -8782,7 +8728,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_ULLONG herr_t H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8791,7 +8736,6 @@ H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Fx(DOUBLE, ULLONG, double, unsigned long long, 0, ULLONG_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_ULLONG*/ /*------------------------------------------------------------------------- @@ -8809,7 +8753,6 @@ H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_LLONG herr_t H5T__conv_ldouble_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8820,7 +8763,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, LLONG, long double, long long, LLONG_MIN, LLONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_LLONG*/ /*------------------------------------------------------------------------- @@ -8838,7 +8780,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_ULLONG herr_t H5T__conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8847,7 +8788,6 @@ H5T__conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Fx(LDOUBLE, ULLONG, long double, unsigned long long, 0, ULLONG_MAX); } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_ULLONG*/ /*------------------------------------------------------------------------- diff --git a/src/H5Tfields.c b/src/H5Tfields.c index 0e0d4e7..fb186fb 100644 --- a/src/H5Tfields.c +++ b/src/H5Tfields.c @@ -163,6 +163,7 @@ H5Tget_member_name(hid_t type_id, unsigned membno) char *ret_value; FUNC_ENTER_API(NULL) + H5TRACE2("*s", "iIu", type_id, membno); /* Check args */ if (NULL == (dt = (H5T_t *)H5I_object_verify(type_id,H5I_DATATYPE))) diff --git a/src/H5Tnative.c b/src/H5Tnative.c index 1a97f39..960a811 100644 --- a/src/H5Tnative.c +++ b/src/H5Tnative.c @@ -396,7 +396,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member value") HDmemcpy(memb_value, tmp_memb_value, H5T_get_size(super_type)); - if(H5T_convert(tpath, super_type_id, nat_super_type_id, (size_t)1, (size_t)0, (size_t)0, memb_value, NULL, H5P_DEFAULT) < 0) + if(H5T_convert(tpath, super_type_id, nat_super_type_id, (size_t)1, (size_t)0, (size_t)0, memb_value, NULL, H5P_DATASET_XFER_DEFAULT) < 0) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member value") if(H5T__enum_insert(new_type, memb_name, memb_value) < 0) diff --git a/src/H5Toh.c b/src/H5Toh.c index 096e655..ea1de21 100644 --- a/src/H5Toh.c +++ b/src/H5Toh.c @@ -142,7 +142,8 @@ H5O_dtype_open(const H5G_loc_t *obj_loc, hid_t UNUSED lapl_id, hid_t dxpl_id, hb /* Open the datatype */ if(NULL == (type = H5T_open(obj_loc, dxpl_id))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTOPENOBJ, FAIL, "unable to open datatype") - + if(type->vol_obj != NULL) + printf("TRIGERRED\n"); /* Register an ID for the datatype */ if((ret_value = H5I_register(H5I_DATATYPE, type, app_ref)) < 0) HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register datatype") @@ -225,7 +226,7 @@ H5O_dtype_get_oloc(hid_t obj_id) if(NULL == (dt = (H5T_t *)H5I_object(obj_id))) HGOTO_ERROR(H5E_OHDR, H5E_BADATOM, NULL, "couldn't get object from ID") /* If this is a named datatype, get the plugin pointer to the datatype */ - type = (const H5T_t *)H5T_get_actual_type(dt); + type = (H5T_t *)H5T_get_actual_type(dt); /* Get the datatype's object header location */ if(NULL == (ret_value = H5T_oloc(type))) diff --git a/src/H5Topaque.c b/src/H5Topaque.c index d68e659..e93bf65 100644 --- a/src/H5Topaque.c +++ b/src/H5Topaque.c @@ -121,6 +121,7 @@ H5Tget_tag(hid_t type_id) char *ret_value; FUNC_ENTER_API(NULL) + H5TRACE1("*s", "i", type_id); /* Check args */ if (NULL == (dt = H5I_object_verify(type_id,H5I_DATATYPE))) diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index 11e3de1..6fade2a 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -111,123 +111,6 @@ /* (_not_ setting H5T_VISIT_SIMPLE and setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting all nodes _except_ "simple" "leafs" in the "tree" */ -/* Define an internal macro for converting between floating number(float and double) and floating number. - * All Cray compilers don't support denormalized floating values generating exception(?). */ -#if H5_CONVERT_DENORMAL_FLOAT -#define H5T_CONV_INTERNAL_FP_FP 1 -#endif /*H5_CONVERT_DENORMAL_FLOAT*/ - -/* Define an internal macro for converting between floating number(float and double) and long double. - * All Cray compilers don't support denormalized floating values generating exception(?). NEC doesn't - * support long double. */ -#if H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT -#define H5T_CONV_INTERNAL_FP_LDOUBLE 1 -#endif /*H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT*/ - -/* Define an internal macro for converting all integers to long double. SGI compilers give some - * incorrect conversions. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1 -#endif - -/* Define an internal macro for converting unsigned long to float. - * Pathscale compiler on Sandia's Linux machine has some problem. - * 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_FLT 1 -#endif - -/* Define an internal macro for converting unsigned (long) long to double. - * 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_DBL 1 -#endif - -/* Define an internal macro for converting unsigned long to long double. SGI compilers give some - * incorrect conversions. 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting long long to long double. Mac OS 10.4 gives some - * incorrect conversions. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_LLONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting unsigned long long to floating numbers. SGI compilers give - * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does - * not support unsigned long long. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS) -#define H5T_CONV_INTERNAL_ULLONG_FP 1 -#endif - -/* Define an internal macro for converting unsigned long long to long double. SGI compilers give - * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does - * not support unsigned long long. For FreeBSD(sleipnir), the last 2 bytes of mantissa are lost when - * compiler tries to do the conversion. For Cygwin, compiler doesn't do rounding correctly. - * Mac OS 10.4 gives some incorrect result. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE && \ - defined(H5_ULLONG_TO_LDOUBLE_PRECISION) && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY && \ - H5_ULLONG_TO_FP_CAST_WORKS) -#define H5T_CONV_INTERNAL_ULLONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting long double to all integers. SGI compilers give some incorrect - * conversions. HP-UX 11.00 compiler generates floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \ - (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_INTEGER 1 -#endif - -/* Define an internal macro for converting long double to unsigned int. SGI compilers give some incorrect - * conversions. HP-UX 11.00 compiler generates floating exception. Some Intel compilers on some Linux - * give incorrect values. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \ - H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_UINT 1 -#endif - -/* Define an internal macro for converting floating numbers to long long. The hard conversion on Windows - * .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS)) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_FP_LLONG 1 -#endif - -/* Define an internal macro for converting long double to long long. SGI compilers give some incorrect - * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception. - * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \ - H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ - (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_LLONG 1 -#endif - -/* Define an internal macro for converting floating numbers to unsigned long long. PGI compiler does - * roundup when the source fraction part is greater than 0.5. HP-UX compilers set the maximal number - * for unsigned long long as 0x7fffffffffffffff during conversion. */ -#if (H5_WANT_DATA_ACCURACY && H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM)) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_FP_ULLONG 1 -#else -#define H5T_CONV_INTERNAL_FP_ULLONG 0 -#endif - -/* Define an internal macro for converting long double to unsigned long long. SGI compilers give some - * incorrect conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates - * floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \ - H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ - (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 1 -#else -#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 0 -#endif - /* Statistics about a conversion function */ struct H5T_stats_t { unsigned ncalls; /*num calls to conversion function */ diff --git a/src/H5Tprivate.h b/src/H5Tprivate.h index 21179d1..d39ae36 100644 --- a/src/H5Tprivate.h +++ b/src/H5Tprivate.h @@ -143,7 +143,7 @@ H5_DLL herr_t H5T_patch_file(H5T_t *dt, H5F_t *f); H5_DLL htri_t H5T_is_variable_str(const H5T_t *dt); H5_DLL H5T_t *H5T_construct_datatype(H5VL_object_t *dt_obj); H5_DLL H5VL_object_t *H5T_get_named_type(const H5T_t *dt); -H5_DLL H5T_t *H5T_get_actual_type(const H5T_t *dt); +H5_DLL H5T_t *H5T_get_actual_type(H5T_t *dt); /* Reference specific functions */ H5_DLL H5R_type_t H5T_get_ref_type(const H5T_t *dt); diff --git a/src/H5VLnative.c b/src/H5VLnative.c index 0d164a8..70515ab 100644 --- a/src/H5VLnative.c +++ b/src/H5VLnative.c @@ -512,7 +512,7 @@ H5VL_native_attr_create(void *obj, H5VL_loc_params_t loc_params, const char *att if(NULL == (dt = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a datatype") /* If this is a named datatype, get the plugin pointer to the datatype */ - type = (H5T_t *)H5T_get_actual_type(dt); + type = H5T_get_actual_type(dt); if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a data space") @@ -1089,7 +1089,7 @@ H5VM_array_offset_pre(unsigned n, const hsize_t *acc, const hsize_t *offset) HDassert(offset); /* Compute offset in array */ - for (i=(int)(n-1), ret_value=0; i>=0; --i) + for(i = (int)(n - 1), ret_value = 0; i >= 0; --i) ret_value += acc[i] * offset[i]; FUNC_LEAVE_NOAPI(ret_value) diff --git a/src/H5VMprivate.h b/src/H5VMprivate.h index 4706b5f..20821b2 100644 --- a/src/H5VMprivate.h +++ b/src/H5VMprivate.h @@ -357,26 +357,17 @@ H5VM_log2_gen(uint64_t n) unsigned r; /* r will be log2(n) */ register unsigned int t, tt, ttt; /* temporaries */ -#ifdef H5_BAD_LOG2_CODE_GENERATED - if(n > (uint64_t)0x7fffffffffffffff) - r = 63; - else { - n &= (uint64_t)0x7fffffffffffffff; -#endif /* H5_BAD_LOG2_CODE_GENERATED */ - if((ttt = (unsigned)(n >> 32))) - if((tt = (unsigned)(n >> 48))) - r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF]; - else - r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF]; + if((ttt = (unsigned)(n >> 32))) + if((tt = (unsigned)(n >> 48))) + r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF]; else - if((tt = (unsigned)(n >> 16))) - r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF]; - else - /* Added 'uint8_t' cast to pacify PGCC compiler */ - r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n]; -#ifdef H5_BAD_LOG2_CODE_GENERATED - } /* end else */ -#endif /* H5_BAD_LOG2_CODE_GENERATED */ + r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF]; + else + if((tt = (unsigned)(n >> 16))) + r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF]; + else + /* Added 'uint8_t' cast to pacify PGCC compiler */ + r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n]; return(r); } /* H5VM_log2_gen() */ @@ -93,35 +93,28 @@ H5Z_init_interface (void) FUNC_ENTER_NOAPI_NOINIT + /* Internal filters */ + if (H5Z_register (H5Z_SHUFFLE)<0) + HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register shuffle filter") + if (H5Z_register (H5Z_FLETCHER32)<0) + HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register fletcher32 filter") + if (H5Z_register (H5Z_NBIT)<0) + HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register nbit filter") + if (H5Z_register (H5Z_SCALEOFFSET)<0) + HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register scaleoffset filter") + + /* External filters */ #ifdef H5_HAVE_FILTER_DEFLATE if (H5Z_register (H5Z_DEFLATE)<0) - HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register deflate filter") + HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register deflate filter") #endif /* H5_HAVE_FILTER_DEFLATE */ -#ifdef H5_HAVE_FILTER_SHUFFLE - if (H5Z_register (H5Z_SHUFFLE)<0) - HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register shuffle filter") -#endif /* H5_HAVE_FILTER_SHUFFLE */ -#ifdef H5_HAVE_FILTER_FLETCHER32 - if (H5Z_register (H5Z_FLETCHER32)<0) - HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register fletcher32 filter") -#endif /* H5_HAVE_FILTER_FLETCHER32 */ #ifdef H5_HAVE_FILTER_SZIP H5Z_SZIP->encoder_present = SZ_encoder_enabled(); if (H5Z_register (H5Z_SZIP)<0) - HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register szip filter") + HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register szip filter") #endif /* H5_HAVE_FILTER_SZIP */ -#ifdef H5_HAVE_FILTER_NBIT - if (H5Z_register (H5Z_NBIT)<0) - HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register nbit filter") -#endif /* H5_HAVE_FILTER_NBIT */ -#ifdef H5_HAVE_FILTER_SCALEOFFSET - if (H5Z_register (H5Z_SCALEOFFSET)<0) - HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register scaleoffset filter") -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ -#if (defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_FLETCHER32 | defined H5_HAVE_FILTER_SHUFFLE | defined H5_HAVE_FILTER_SZIP | defined H5_HAVE_FILTER_NBIT | defined H5_HAVE_FILTER_SCALEOFFSET) done: -#endif /* (defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_FLETCHER32 | defined H5_HAVE_FILTER_SHUFFLE | defined H5_HAVE_FILTER_SZIP | defined H5_HAVE_FILTER_NBIT | defined H5_HAVE_FILTER_SCALEOFFSET) */ FUNC_LEAVE_NOAPI(ret_value) } diff --git a/src/H5Zfletcher32.c b/src/H5Zfletcher32.c index 8d2643d..2ee69d1 100644 --- a/src/H5Zfletcher32.c +++ b/src/H5Zfletcher32.c @@ -27,8 +27,6 @@ #include "H5MMprivate.h" /* Memory management */ #include "H5Zpkg.h" /* Data filters */ -#ifdef H5_HAVE_FILTER_FLETCHER32 - /* Local function prototypes */ static size_t H5Z_filter_fletcher32 (unsigned flags, size_t cd_nelmts, const unsigned cd_values[], size_t nbytes, size_t *buf_size, void **buf); @@ -139,9 +137,11 @@ H5Z_filter_fletcher32 (unsigned flags, size_t UNUSED cd_nelmts, const unsigned U /* Compute checksum (can't fail) */ fletcher = H5_checksum_fletcher32(src, nbytes); - if (NULL==(dst=outbuf=H5MM_malloc(nbytes+FLETCHER_LEN))) + if (NULL == (outbuf = H5MM_malloc(nbytes + FLETCHER_LEN))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, 0, "unable to allocate Fletcher32 checksum destination buffer") + dst = (unsigned char *) outbuf; + /* Copy raw data */ HDmemcpy((void*)dst, (void*)(*buf), nbytes); @@ -164,5 +164,4 @@ done: H5MM_xfree(outbuf); FUNC_LEAVE_NOAPI(ret_value) } -#endif /* H5_HAVE_FILTER_FLETCHER32 */ diff --git a/src/H5Znbit.c b/src/H5Znbit.c index ebb534b..9506ace 100644 --- a/src/H5Znbit.c +++ b/src/H5Znbit.c @@ -25,8 +25,6 @@ #include "H5Tprivate.h" /* Datatypes */ #include "H5Zpkg.h" /* Data filters */ -#ifdef H5_HAVE_FILTER_NBIT - /* Struct of parameters needed for compressing/decompressing * one nbit atomic datatype: integer or floating-point */ @@ -1424,4 +1422,4 @@ static void H5Z_nbit_compress(unsigned char *data, unsigned d_nelmts, unsigned c * the last byte, increment the value by 1. */ *buffer_size = new_size + 1; } -#endif /* H5_HAVE_FILTER_NBIT */ + diff --git a/src/H5Zpkg.h b/src/H5Zpkg.h index b0df856..e2cec89 100644 --- a/src/H5Zpkg.h +++ b/src/H5Zpkg.h @@ -23,48 +23,35 @@ /* Include private header file */ #include "H5Zprivate.h" /* Filter functions */ +/********************/ +/* Internal filters */ +/********************/ -#ifdef H5_HAVE_FILTER_DEFLATE -/* - * Deflate filter - */ -H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1]; -#endif /* H5_HAVE_FILTER_DEFLATE */ - -#ifdef H5_HAVE_FILTER_SHUFFLE -/* - * Shuffle filter - */ +/* Shuffle filter */ H5_DLLVAR const H5Z_class2_t H5Z_SHUFFLE[1]; -#endif /* H5_HAVE_FILTER_SHUFFLE */ -#ifdef H5_HAVE_FILTER_FLETCHER32 -/* - * Fletcher32 filter - */ +/* Fletcher32 filter */ H5_DLLVAR const H5Z_class2_t H5Z_FLETCHER32[1]; -#endif /* H5_HAVE_FILTER_FLETCHER32 */ -#ifdef H5_HAVE_FILTER_SZIP -/* - * szip filter - */ -H5_DLLVAR H5Z_class2_t H5Z_SZIP[1]; -#endif /* H5_HAVE_FILTER_SZIP */ - -#ifdef H5_HAVE_FILTER_NBIT -/* - * nbit filter - */ +/* n-bit filter */ H5_DLLVAR H5Z_class2_t H5Z_NBIT[1]; -#endif /* H5_HAVE_FILTER_NBIT */ -#ifdef H5_HAVE_FILTER_SCALEOFFSET -/* - * scaleoffset filter - */ +/* Scale/offset filter */ H5_DLLVAR H5Z_class2_t H5Z_SCALEOFFSET[1]; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ + +/********************/ +/* External filters */ +/********************/ + +/* Deflate filter */ +#ifdef H5_HAVE_FILTER_DEFLATE +H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1]; +#endif /* H5_HAVE_FILTER_DEFLATE */ + +/* szip filter */ +#ifdef H5_HAVE_FILTER_SZIP +H5_DLLVAR H5Z_class2_t H5Z_SZIP[1]; +#endif /* H5_HAVE_FILTER_SZIP */ #endif /* _H5Zpkg_H */ diff --git a/src/H5Zscaleoffset.c b/src/H5Zscaleoffset.c index 83864b9..38e2986 100644 --- a/src/H5Zscaleoffset.c +++ b/src/H5Zscaleoffset.c @@ -26,8 +26,6 @@ #include "H5Tprivate.h" /* Datatypes */ #include "H5Zpkg.h" /* Data filters */ -#ifdef H5_HAVE_FILTER_SCALEOFFSET - /* Struct of parameters needed for compressing/decompressing one atomic datatype */ typedef struct { size_t size; /* datatype size */ @@ -1722,5 +1720,4 @@ H5Z_scaleoffset_compress(unsigned char *data, unsigned d_nelmts, for(i = 0; i < d_nelmts; i++) H5Z_scaleoffset_compress_one_atomic(data, i * p.size, buffer, &j, &buf_len, p); } -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ diff --git a/src/H5Zshuffle.c b/src/H5Zshuffle.c index 4a67839..4138bf1 100644 --- a/src/H5Zshuffle.c +++ b/src/H5Zshuffle.c @@ -24,8 +24,6 @@ #include "H5Tprivate.h" /* Datatypes */ #include "H5Zpkg.h" /* Data filters */ -#ifdef H5_HAVE_FILTER_SHUFFLE - /* Local function prototypes */ static herr_t H5Z_set_local_shuffle(hid_t dcpl_id, hid_t type_id, hid_t space_id); static size_t H5Z_filter_shuffle(unsigned flags, size_t cd_nelmts, @@ -291,5 +289,4 @@ H5Z_filter_shuffle(unsigned flags, size_t cd_nelmts, const unsigned cd_values[], done: FUNC_LEAVE_NOAPI(ret_value) } -#endif /*H5_HAVE_FILTER_SHUFFLE */ diff --git a/src/H5Ztrans.c b/src/H5Ztrans.c index 1b8c096..7a94487 100644 --- a/src/H5Ztrans.c +++ b/src/H5Ztrans.c @@ -160,35 +160,6 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Unexpected type conversion operation") \ } -/* Due to the undefined nature of embedding macros/conditionals within macros, we employ - * this clever little hack. We always compile in the code for the type conversion, even if - * it isn't supported in the compiler. To avoid errors, we define ULLONG_TO_FP_XFORM_TYPE_OP_ERROR on - * unsupported compilers, which will cause the code to execute HGOTO_ERROR and skip the code - * that does the actual conversion */ - - -#ifndef H5_ULLONG_TO_FP_CAST_WORKS -#define H5Z_XFORM_ULL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ -{ \ - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from unsigned long long to double: required for data transform") \ -} -#else -#define H5Z_XFORM_ULL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ - H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE) -#endif - -/* Windows Intel 8.1 compiler has error converting long long to double. - * Hard code it in. - */ -#ifndef H5_LLONG_TO_FP_CAST_WORKS -#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ -{ \ - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from long long to double: required for data transform") \ -} -#else -#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ - H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE) -#endif #if H5_SIZEOF_LONG_DOUBLE !=0 #define H5Z_XFORM_TYPE_OP(RESL,RESR,TYPE,OP,SIZE) \ { \ @@ -211,9 +182,9 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); else if((TYPE) == H5T_NATIVE_ULONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_LLONG) \ - H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_ULLONG) \ - H5Z_XFORM_ULL_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_FLOAT) \ H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_DOUBLE) \ @@ -243,9 +214,9 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); else if((TYPE) == H5T_NATIVE_ULONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_LLONG) \ - H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_ULLONG) \ - H5Z_XFORM_ULL_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_FLOAT) \ H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_DOUBLE) \ diff --git a/src/H5api_adpt.h b/src/H5api_adpt.h index 845a9a0..7602310 100644 --- a/src/H5api_adpt.h +++ b/src/H5api_adpt.h @@ -21,59 +21,16 @@ #ifndef H5API_ADPT_H #define H5API_ADPT_H +#ifdef __cplusplus +#define __attribute__(X) /*void*/ +#endif /* __cplusplus */ +#ifndef H5_HAVE_ATTRIBUTE +#define __attribute__(X) /*void*/ +#endif /* H5_HAVE_ATTRIBUTE */ + /* This will only be defined if HDF5 was built with CMake */ #ifdef H5_BUILT_AS_DYNAMIC_LIB -#if defined (hdf5_EXPORTS) - #define _HDF5DLL_ -#else - #define _HDF5USEDLL_ -#endif - -#if defined (hdf5_test_EXPORTS) - #define _HDF5TESTDLL_ -#else - #define _HDF5TESTUSEDLL_ -#endif - -#if defined (hdf5_tools_EXPORTS) - #define _HDF5TOOLSDLL_ -#else - #define _HDF5TOOLSUSEDLL_ -#endif - -#if defined (hdf5_cpp_EXPORTS) - #define HDF5_CPPDLL_EXPORTS -#else - #define HDF5CPP_USEDLL -#endif - -#if defined (hdf5_hl_EXPORTS) - #define _HDF5_HLDLL_EXPORTS_ -#else - #define _HDF5USEHLDLL_ -#endif - -#if defined (hdf5_hl_cpp_EXPORTS) - #define HDF5_HL_CPPDLL_EXPORTS -#else - #define HDF5USE_HLCPPDLL -#endif - -#if defined (hdf5_f90cstub_EXPORTS) - #define HDF5FORT_CSTUB_DLL_EXPORTS -#else - #define HDF5FORT_CSTUB_USEDLL -#endif - -#if defined (hdf5_test_f90cstub_EXPORTS) - #define HDF5FORTTEST_CSTUB_DLL_EXPORTS -#endif - -#if defined (hdf5_hl_f90cstub_EXPORTS) - #define HDF5_HL_F90CSTUBDLL_EXPORTS -#endif - #if defined(hdf5_EXPORTS) #if defined (_MSC_VER) /* MSVC Compiler Case */ #define H5_DLL __declspec(dllexport) @@ -281,144 +238,25 @@ #define HDF5_HL_F90CSTUBDLLVAR extern #endif /* HDF5_HL_F90CSTUBDLL */ -#elif defined(H5_BUILT_AS_STATIC_LIB) +#else #define H5_DLL - #define H5_HLDLL - #define H5_HLCPPDLL - #define HDF5_HL_F90CSTUBDLL #define H5_DLLVAR extern - #define H5_DLLCPP #define H5TEST_DLL #define H5TEST_DLLVAR extern #define H5TOOLS_DLL #define H5TOOLS_DLLVAR extern + #define H5_DLLCPP + #define H5_DLLCPPVAR extern + #define H5_HLDLL + #define H5_HLDLLVAR extern + #define H5_HLCPPDLL + #define H5_HLCPPDLLVAR extern #define H5_FCDLL #define H5_FCDLLVAR extern #define H5_FCTESTDLL #define H5_FCTESTDLLVAR extern - -#else -/* This is the original HDFGroup defined preprocessor code which should still work - * with the VS projects that are maintained by "The HDF Group" - * The Visual Studio project files will not be supported in the next major release of 1.10. - */ - -#if defined(H5_HAVE_WIN32_API) - -#if defined(_HDF5DLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_DLL __declspec(dllexport) -#define H5_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5USEDLL_) -#define H5_DLL __declspec(dllimport) -#define H5_DLLVAR __declspec(dllimport) -#else -#define H5_DLL -#define H5_DLLVAR extern -#endif /* _HDF5DLL_ */ - -#if defined(_HDF5TESTDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TEST_DLL __declspec(dllexport) -#define H5TEST_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TESTUSEDLL_) -#define H5TEST_DLL __declspec(dllimport) -#define H5TEST_DLLVAR __declspec(dllimport) -#else -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#endif /* _HDF5TESTDLL_ */ - -#if defined(_HDF5TOOLSDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TOOLS_DLL __declspec(dllexport) -#define H5TOOLS_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TOOLSUSEDLL_) -#define H5TOOLS_DLL __declspec(dllimport) -#define H5TOOLS_DLLVAR __declspec(dllimport) -#else -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#endif /* _HDF5TOOLSDLL_ */ - -#if defined(_HDF5_HLDLL_EXPORTS_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLDLL __declspec(dllexport) -#elif defined(_HDF5USEHLDLL_) -#define H5_HLDLL __declspec(dllimport) -#else -#define H5_HLDLL -#endif /* _HDF5_HLDLL_EXPORTS */ - -#if defined(HDF5_HL_CPPDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLCPPDLL __declspec(dllexport) -#elif defined(HDF5USE_HLCPPDLL) -#define H5_HLCPPDLL __declspec(dllimport) -#else -#define H5_HLCPPDLL -#endif /*HDF5_HL_CPPDLL_EXPORTS*/ - -#if defined(HDF5_HL_F90CSTUBDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define HDF5_HL_F90CSTUBDLL __declspec(dllexport) -#elif defined(HDF5USE_HLF90CSTUBDLL) -#define HDF5_HL_F90CSTUBDLL __declspec(dllimport) -#else -#define HDF5_HL_F90CSTUBDLL -#endif /*HDF5_HL_F90CSTUBDLL_EXPORTS*/ - - -#if defined(HDF5FORT_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCDLL __declspec(dllexport) -#define H5_FCDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORT_CSTUB_USEDLL) -#define H5_FCDLL __declspec(dllimport) -#define H5_FCDLLVAR __declspec(dllimport) -#else -#define H5_FCDLL -#define H5_FCDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -#if defined(HDF5FORTTEST_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCTESTDLL __declspec(dllexport) -#define H5_FCTESTDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORTTEST_CSTUB_USEDLL) -#define H5_FCTESTDLL __declspec(dllimport) -#define H5_FCTESTDLLVAR __declspec(dllimport) -#else -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -/* Added to export or to import C++ APIs - BMR (02-15-2002) */ -#if defined(HDF5_CPPDLL_EXPORTS) /* this name is generated at creation */ -#define H5_DLLCPP __declspec(dllexport) -#elif defined(HDF5CPP_USEDLL) -#define H5_DLLCPP __declspec(dllimport) -#else -#define H5_DLLCPP -#endif /* HDF5_CPPDLL_EXPORTS */ - -#else /*H5_HAVE_WIN32_API*/ -#define H5_DLL -#define H5_HLDLL -#define H5_HLCPPDLL -#define HDF5_HL_F90CSTUBDLL -#define H5_DLLVAR extern -#define H5_DLLCPP -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#define H5_FCDLL -#define H5_FCDLLVAR extern -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /*H5_HAVE_WIN32_API*/ + #define HDF5_HL_F90CSTUBDLL + #define HDF5_HL_F90CSTUBDLLVAR extern +#endif /* H5_BUILT_AS_DYNAMIC_LIB */ #endif /* H5API_ADPT_H */ - -#endif /* */ diff --git a/src/H5config.h.in b/src/H5config.h.in index cc8a59c..c089cd3 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -3,26 +3,16 @@ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD -/* Define if your system generates wrong code for log2 routine. */ -#undef BAD_LOG2_CODE_GENERATED - /* Define if the memory buffers being written to disk should be cleared before writing. */ #undef CLEAR_MEMORY -/* Define if your system can handle converting denormalized floating-point - values. */ -#undef CONVERT_DENORMAL_FLOAT - /* Define if C++ compiler recognizes offsetof */ #undef CXX_HAVE_OFFSETOF /* Define the default plugins path to compile */ #undef DEFAULT_PLUGINDIR -/* Define the default virtual file driver to compile */ -#undef DEFAULT_VFD - /* Define if `dev_t' is a scalar */ #undef DEV_T_IS_SCALAR @@ -40,21 +30,6 @@ /* As FC_FUNC, but for C identifiers containing underscores. */ #undef FC_FUNC_ -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#undef FP_TO_INTEGER_OVERFLOW_WORKS - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#undef FP_TO_ULLONG_ACCURATE - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -#undef FP_TO_ULLONG_RIGHT_MAXIMUM - -/* Define if gettimeofday() populates the tz pointer passed in */ -#undef GETTIMEOFDAY_GIVES_TZ - /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM @@ -64,9 +39,6 @@ /* Define if the __attribute__(()) extension is present */ #undef HAVE_ATTRIBUTE -/* Define to 1 if you have the `BSDgettimeofday' function. */ -#undef HAVE_BSDGETTIMEOFDAY - /* Define if the compiler understands C99 designated initialization of structs and unions */ #undef HAVE_C99_DESIGNATED_INITIALIZER @@ -83,14 +55,10 @@ /* Define if Darwin or Mac OS X */ #undef HAVE_DARWIN -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#undef HAVE_DECL_TZNAME - /* Define to 1 if you have the `difftime' function. */ #undef HAVE_DIFFTIME -/* Define if the direct I/O virtual file driver should be compiled */ +/* Define if the direct I/O virtual file driver (VFD) should be compiled */ #undef HAVE_DIRECT /* Define to 1 if you have the <dirent.h> header file. */ @@ -111,18 +79,6 @@ /* Define if support for deflate (zlib) filter is enabled */ #undef HAVE_FILTER_DEFLATE -/* Define if support for Fletcher32 checksum is enabled */ -#undef HAVE_FILTER_FLETCHER32 - -/* Define if support for nbit filter is enabled */ -#undef HAVE_FILTER_NBIT - -/* Define if support for scaleoffset filter is enabled */ -#undef HAVE_FILTER_SCALEOFFSET - -/* Define if support for shuffle filter is enabled */ -#undef HAVE_FILTER_SHUFFLE - /* Define if support for szip filter is enabled */ #undef HAVE_FILTER_SZIP @@ -313,12 +269,6 @@ /* Define if `struct text_info' is defined */ #undef HAVE_STRUCT_TEXT_INFO -/* Define if `struct timezone' is defined */ -#undef HAVE_STRUCT_TIMEZONE - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -#undef HAVE_STRUCT_TM_TM_ZONE - /* Define if `struct videoconfig' is defined */ #undef HAVE_STRUCT_VIDEOCONFIG @@ -379,14 +329,6 @@ /* Define if `tm_gmtoff' is a member of `struct tm' */ #undef HAVE_TM_GMTOFF -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#undef HAVE_TM_ZONE - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#undef HAVE_TZNAME - /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H @@ -414,45 +356,13 @@ /* Define to 1 if you have the `_scrsize' function. */ #undef HAVE__SCRSIZE -/* Define if `__tm_gmtoff' is a member of `struct tm' */ -#undef HAVE___TM_GMTOFF - -/* Define if your system can't handle converting floating-point values to long - long. */ -#undef HW_FP_TO_LLONG_NOT_WORKS - /* Define if HDF5's high-level library headers should be included in hdf5.h */ #undef INCLUDE_HL -/* Define if your system can accurately convert from integers to long double - values. */ -#undef INTEGER_TO_LDOUBLE_ACCURATE - -/* Define if your system can convert long double to integers accurately. */ -#undef LDOUBLE_TO_INTEGER_ACCURATE - -/* Define if your system can convert from long double to integer values. */ -#undef LDOUBLE_TO_INTEGER_WORKS - -/* Define if your system can convert long double to (unsigned) long long - values correctly. */ -#undef LDOUBLE_TO_LLONG_ACCURATE - /* Define if your system converts long double to (unsigned) long values with special algorithm. */ #undef LDOUBLE_TO_LONG_SPECIAL -/* Define if your system can convert long double to unsigned int values - correctly. */ -#undef LDOUBLE_TO_UINT_ACCURATE - -/* Define if your system can compile long long to floating-point casts. */ -#undef LLONG_TO_FP_CAST_WORKS - -/* Define if your system can convert (unsigned) long long to long double - values correctly. */ -#undef LLONG_TO_LDOUBLE_CORRECT - /* Define if your system can convert (unsigned) long to long double values with special algorithm. */ #undef LONG_TO_LDOUBLE_SPECIAL @@ -470,9 +380,6 @@ /* Define if deprecated public API symbols are disabled */ #undef NO_DEPRECATED_SYMBOLS -/* Define if shared writing must be disabled (CodeWarrior only) */ -#undef NO_SHARED_WRITING - /* Name of package */ #undef PACKAGE @@ -627,25 +534,6 @@ /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ #undef TIME_WITH_SYS_TIME -/* Define to 1 if your <sys/time.h> declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#undef ULLONG_TO_FP_CAST_WORKS - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -#undef ULLONG_TO_LDOUBLE_PRECISION - -/* Define if your system accurately converting unsigned long to float values. - */ -#undef ULONG_TO_FLOAT_ACCURATE - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -#undef ULONG_TO_FP_BOTTOM_BIT_ACCURATE - /* Define using v1.6 public API symbols by default */ #undef USE_16_API_DEFAULT @@ -657,13 +545,6 @@ /* Version number of package */ #undef VERSION -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -#undef VSNPRINTF_WORKS - -/* Data accuracy is prefered to speed during data conversions */ -#undef WANT_DATA_ACCURACY - /* Check exception handling functions during data conversions */ #undef WANT_DCONV_EXCEPTION diff --git a/src/H5detect.c b/src/H5detect.c index aed7514..fc0570c 100644 --- a/src/H5detect.c +++ b/src/H5detect.c @@ -323,7 +323,7 @@ precision (detected_t *d) * steps). This is necessary because padding bits can change arbitrarily \ * and interfere with detection of the various properties below unless we \ * know to ignore them. */ \ - _v1 = 4.0; \ + _v1 = (TYPE)4.0L; \ HDmemcpy(_buf1, (const void *)&_v1, sizeof(TYPE)); \ for(_i = 0; _i < (int)sizeof(TYPE); _i++) \ for(_byte_mask = (unsigned char)1; _byte_mask; _byte_mask <<= 1) { \ @@ -335,10 +335,10 @@ precision (detected_t *d) } /* end for */ \ \ /* Byte Order */ \ - for(_i = 0, _v1 = 0.0, _v2 = 1.0; _i < (int)sizeof(TYPE); _i++) { \ + for(_i = 0, _v1 = (TYPE)0.0L, _v2 = (TYPE)1.0L; _i < (int)sizeof(TYPE); _i++) { \ _v3 = _v1; \ _v1 += _v2; \ - _v2 /= 256.0; \ + _v2 /= (TYPE)256.0L; \ HDmemcpy(_buf1, (const void *)&_v1, sizeof(TYPE)); \ HDmemcpy(_buf3, (const void *)&_v3, sizeof(TYPE)); \ _j = byte_cmp(sizeof(TYPE), _buf3, _buf1, _pad_mask); \ @@ -353,20 +353,20 @@ precision (detected_t *d) INFO.is_vax = TRUE; \ \ /* Implicit mantissa bit */ \ - _v1 = 0.5; \ - _v2 = 1.0; \ + _v1 = (TYPE)0.5L; \ + _v2 = (TYPE)1.0L; \ INFO.imp = imp_bit (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask); \ \ /* Sign bit */ \ - _v1 = 1.0; \ - _v2 = -1.0; \ + _v1 = (TYPE)1.0L; \ + _v2 = (TYPE)-1.0L; \ INFO.sign = bit_cmp (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask); \ \ /* Mantissa */ \ INFO.mpos = 0; \ \ - _v1 = 1.0; \ - _v2 = 1.5; \ + _v1 = (TYPE)1.0L; \ + _v2 = (TYPE)1.5L; \ INFO.msize = bit_cmp (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask); \ INFO.msize += 1 + (INFO.imp?0:1) - INFO.mpos; \ \ @@ -375,7 +375,7 @@ precision (detected_t *d) \ INFO.esize = INFO.sign - INFO.epos; \ \ - _v1 = 1.0; \ + _v1 = (TYPE)1.0L; \ INFO.bias = find_bias (INFO.epos, INFO.esize, INFO.perm, &_v1); \ precision (&(INFO)); \ ALIGNMENT(TYPE, INFO); \ @@ -858,6 +858,7 @@ done:\n\ printf("/* signal_handlers tested: %d times */\n", signal_handler_tested_g); printf("/* sigbus_handler called: %d times */\n", sigbus_handler_called_g); printf("/* sigsegv_handler called: %d times */\n", sigsegv_handler_called_g); + printf("/* sigill_handler called: %d times */\n", sigill_handler_called_g); } /* end print_results() */ @@ -1381,8 +1382,8 @@ detect_C89_integers(void) static void detect_C89_floats(void) { - DETECT_F(float, FLOAT, d_g[nd_g]); nd_g++; - DETECT_F(double, DOUBLE, d_g[nd_g]); nd_g++; + DETECT_F(float, FLOAT, d_g[nd_g]); nd_g++; + DETECT_F(double, DOUBLE, d_g[nd_g]); nd_g++; } @@ -1750,13 +1751,17 @@ main(void) #if defined(H5SETJMP) && defined(H5_HAVE_SIGNAL) /* verify the SIGBUS and SIGSEGV handlers work properly */ - if (verify_signal_handlers (SIGBUS, sigbus_handler) != 0){ - fprintf(stderr, "Signal handler %s for signal %d failed\n", - "sigbus_handler", SIGBUS); + if (verify_signal_handlers(SIGBUS, sigbus_handler) != 0) { + fprintf(stderr, "Signal handler %s for signal %d failed\n", + "sigbus_handler", SIGBUS); } - if (verify_signal_handlers (SIGSEGV, sigsegv_handler) != 0){ - fprintf(stderr, "Signal handler %s for signal %d failed\n", - "sigsegv_handler", SIGSEGV); + if (verify_signal_handlers(SIGSEGV, sigsegv_handler) != 0) { + fprintf(stderr, "Signal handler %s for signal %d failed\n", + "sigsegv_handler", SIGSEGV); + } + if (verify_signal_handlers(SIGILL, sigill_handler) != 0) { + fprintf(stderr, "Signal handler %s for signal %d failed\n", + "sigill_handler", SIGILL); } #else align_status_g |= STA_NoHandlerVerify; diff --git a/src/H5private.h b/src/H5private.h index 63cc0cc..2ca82e4 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -160,6 +160,10 @@ #include <dirent.h> #endif +/* Define the default VFD for this platform. + * Since the removal of the Windows VFD, this is sec2 for all platforms. + */ +#define H5_DEFAULT_VFD H5FD_SEC2 #ifdef H5_HAVE_WIN32_API /* The following two defines must be before any windows headers are included */ @@ -213,7 +217,7 @@ #define MPE_LOG_VARS \ static int eventa(FUNC) = -1; \ static int eventb(FUNC) = -1; \ - char p_event_start[100]; + char p_event_start[128]; /* Hardwire the color to "red", since that's what all the routines are using * now. In the future, if we want to change that color for a given routine, @@ -271,12 +275,10 @@ #endif /* - * Does the compiler support the __attribute__(()) syntax? This is how gcc - * suppresses warnings about unused function arguments. It's no big deal if - * we don't. + * Does the compiler support the __attribute__(()) syntax? It's no + * big deal if we don't. */ #ifdef __cplusplus -# define __attribute__(X) /*void*/ # define UNUSED /*void*/ # define NORETURN /*void*/ #else /* __cplusplus */ @@ -284,7 +286,6 @@ # define UNUSED __attribute__((unused)) # define NORETURN __attribute__((noreturn)) #else -# define __attribute__(X) /*void*/ # define UNUSED /*void*/ # define NORETURN /*void*/ #endif @@ -476,6 +477,48 @@ # define H5_DEC_ENUM(TYPE,VAR) (VAR)=((TYPE)((VAR)-1)) #endif +/* Double constant wrapper + * + * Quiets gcc warnings from -Wunsuffixed-float-constants. + * + * This is a really annoying warning since the standard specifies that + * constants of type double do NOT get a suffix so there's no way + * to specify a constant of type double. To quiet gcc, we specify floating + * point constants as type long double and cast to double. + * + * Note that this macro only needs to be used where using a double + * is important. For most code, suffixing constants with F will quiet the + * compiler and not produce erroneous code. + */ +#define H5_DOUBLE(S) ((double) S ## L) + +/* + * Methods to compare the equality of floating-point values: + * + * 1. H5_XXX_ABS_EQUAL - check if the difference is smaller than the + * Epsilon value. The Epsilon values, FLT_EPSILON, DBL_EPSILON, + * and LDBL_EPSILON, are defined by compiler in float.h. + * + * 2. H5_XXX_REL_EQUAL - check if the relative difference is smaller than a + * predefined value M. See if two values are relatively equal. + * It's the developer's responsibility not to pass in the value 0, which + * may cause the equation to fail. + */ +#define H5_FLT_ABS_EQUAL(X,Y) (HDfabsf(X-Y) < FLT_EPSILON) +#define H5_DBL_ABS_EQUAL(X,Y) (HDfabs (X-Y) < DBL_EPSILON) +#define H5_LDBL_ABS_EQUAL(X,Y) (HDfabsl(X-Y) < LDBL_EPSILON) + +#define H5_FLT_REL_EQUAL(X,Y,M) (HDfabsf((Y-X) / X) < M) +#define H5_DBL_REL_EQUAL(X,Y,M) (HDfabs ((Y-X) / X) < M) +#define H5_LDBL_REL_EQUAL(X,Y,M) (HDfabsl((Y-X) / X) < M) + +/* KiB, MiB, GiB, TiB, EiB - Used in profiling and timing code */ +#define H5_KB (1024.0F) +#define H5_MB (1024.0F * 1024.0F) +#define H5_GB (1024.0F * 1024.0F * 1024.0F) +#define H5_TB (1024.0F * 1024.0F * 1024.0F * 1024.0F) +#define H5_EB (1024.0F * 1024.0F * 1024.0F * 1024.0F * 1024.0F) + /* * Data types and functions for timing certain parts of the library. */ @@ -567,9 +610,6 @@ typedef struct { #ifndef HDatol #define HDatol(S) atol(S) #endif /* HDatol */ -#ifndef HDBSDgettimeofday - #define HDBSDgettimeofday(S,P) BSDgettimeofday(S,P) -#endif /* HDBSDgettimeofday */ #ifndef HDbsearch #define HDbsearch(K,B,N,Z,F) bsearch(K,B,N,Z,F) #endif /* HDbsearch */ diff --git a/src/H5public.h b/src/H5public.h index 673aa6f..7bacb3d 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -94,10 +94,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 215 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 216 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.215" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.216" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) @@ -332,6 +332,8 @@ H5_DLL herr_t H5get_libversion(unsigned *majnum, unsigned *minnum, H5_DLL herr_t H5check_version(unsigned majnum, unsigned minnum, unsigned relnum); H5_DLL herr_t H5free_memory(void *mem); +H5_DLL void *H5allocate_memory(size_t size, hbool_t clear); +H5_DLL void *H5resize_memory(void *mem, size_t size); #ifdef __cplusplus } diff --git a/src/H5system.c b/src/H5system.c index 437a004..56db380 100644 --- a/src/H5system.c +++ b/src/H5system.c @@ -313,7 +313,7 @@ HDfprintf(FILE *stream, const char *fmt, ...) case 'G': if(!HDstrcmp(modifier, "h")) { float x = (float)va_arg(ap, double); - n = fprintf(stream, format_templ, x); + n = fprintf(stream, format_templ, (double)x); } else if(!*modifier || !HDstrcmp(modifier, "l")) { double x = va_arg(ap, double); n = fprintf(stream, format_templ, x); diff --git a/src/H5timer.c b/src/H5timer.c index 301d98b..94f2883 100644 --- a/src/H5timer.c +++ b/src/H5timer.c @@ -90,8 +90,6 @@ * Programmer: Robb Matzke * Thursday, April 16, 1998 * - * Modifications: - * *------------------------------------------------------------------------- */ void @@ -112,8 +110,6 @@ H5_timer_reset (H5_timer_t *timer) * Programmer: Robb Matzke * Thursday, April 16, 1998 * - * Modifications: - * *------------------------------------------------------------------------- */ void @@ -131,18 +127,18 @@ H5_timer_begin (H5_timer_t *timer) #ifdef H5_HAVE_GETRUSAGE HDgetrusage (RUSAGE_SELF, &rusage); timer->utime = (double)rusage.ru_utime.tv_sec + - ((double)rusage.ru_utime.tv_usec / 1e6); + ((double)rusage.ru_utime.tv_usec / 1e6F); timer->stime = (double)rusage.ru_stime.tv_sec + - ((double)rusage.ru_stime.tv_usec / 1e6); + ((double)rusage.ru_stime.tv_usec / 1e6F); #else - timer->utime = 0.0; - timer->stime = 0.0; + timer->utime = 0.0F; + timer->stime = 0.0F; #endif #ifdef H5_HAVE_GETTIMEOFDAY HDgettimeofday (&etime, NULL); - timer->etime = (double)etime.tv_sec + ((double)etime.tv_usec / 1e6); + timer->etime = (double)etime.tv_sec + ((double)etime.tv_usec / 1e6F); #else - timer->etime = 0.0; + timer->etime = 0.0F; #endif } /* end H5_timer_begin() */ @@ -160,8 +156,6 @@ H5_timer_begin (H5_timer_t *timer) * Programmer: Robb Matzke * Thursday, April 16, 1998 * - * Modifications: - * *------------------------------------------------------------------------- */ void @@ -170,16 +164,16 @@ H5_timer_end (H5_timer_t *sum/*in,out*/, H5_timer_t *timer/*in,out*/) H5_timer_t now; HDassert(timer); - H5_timer_begin (&now); + H5_timer_begin(&now); - timer->utime = MAX(0.0, now.utime - timer->utime); - timer->stime = MAX(0.0, now.stime - timer->stime); - timer->etime = MAX(0.0, now.etime - timer->etime); + timer->utime = MAX(0.0F, now.utime - timer->utime); + timer->stime = MAX(0.0F, now.stime - timer->stime); + timer->etime = MAX(0.0F, now.etime - timer->etime); if (sum) { - sum->utime += timer->utime; - sum->stime += timer->stime; - sum->etime += timer->etime; + sum->utime += timer->utime; + sum->stime += timer->stime; + sum->etime += timer->etime; } } /* end H5_timer_end() */ @@ -207,8 +201,6 @@ H5_timer_end (H5_timer_t *sum/*in,out*/, H5_timer_t *timer/*in,out*/) * Programmer: Robb Matzke * Wednesday, August 5, 1998 * - * Modifications: - * *------------------------------------------------------------------------- */ void @@ -216,35 +208,34 @@ H5_bandwidth(char *buf/*out*/, double nbytes, double nseconds) { double bw; - if(nseconds <= 0.0) - HDstrcpy(buf, " NaN"); + if(nseconds <= 0.0F) + HDstrcpy(buf, " NaN"); else { - bw = nbytes/nseconds; - if(HDfabs(bw) < 0.0000000001) - /* That is == 0.0, but direct comparison between floats is bad */ - HDstrcpy(buf, "0.000 B/s"); - else if(bw < 1.0) - sprintf(buf, "%10.4e", bw); - else if(bw < 1024.0) { - sprintf(buf, "%05.4f", bw); - HDstrcpy(buf+5, " B/s"); - } else if(bw < (1024.0 * 1024.0)) { - sprintf(buf, "%05.4f", bw / 1024.0); - HDstrcpy(buf+5, " kB/s"); - } else if(bw < (1024.0 * 1024.0 * 1024.0)) { - sprintf(buf, "%05.4f", bw / (1024.0 * 1024.0)); - HDstrcpy(buf+5, " MB/s"); - } else if(bw < (1024.0 * 1024.0 * 1024.0 * 1024.0)) { - sprintf(buf, "%05.4f", bw / (1024.0 * 1024.0 * 1024.0)); - HDstrcpy(buf+5, " GB/s"); - } else if(bw < (1024.0 * 1024.0 * 1024.0 * 1024.0 * 1024.0)) { - sprintf(buf, "%05.4f", bw / (1024.0 * 1024.0 * 1024.0 * 1024.0)); - HDstrcpy(buf+5, " TB/s"); - } else { - sprintf(buf, "%10.4e", bw); - if(HDstrlen(buf) > 10) - sprintf(buf, "%10.3e", bw); - } + bw = nbytes/nseconds; + if(H5_DBL_ABS_EQUAL(bw, 0.0F)) + HDstrcpy(buf, "0.000 B/s"); + else if(bw < 1.0F) + sprintf(buf, "%10.4e", bw); + else if(bw < H5_KB) { + sprintf(buf, "%05.4f", bw); + HDstrcpy(buf+5, " B/s"); + } else if(bw < H5_MB) { + sprintf(buf, "%05.4f", bw / H5_KB); + HDstrcpy(buf+5, " kB/s"); + } else if(bw < H5_GB) { + sprintf(buf, "%05.4f", bw / H5_MB); + HDstrcpy(buf+5, " MB/s"); + } else if(bw < H5_TB) { + sprintf(buf, "%05.4f", bw / H5_GB); + HDstrcpy(buf+5, " GB/s"); + } else if(bw < H5_EB) { + sprintf(buf, "%05.4f", bw / H5_TB); + HDstrcpy(buf+5, " TB/s"); + } else { + sprintf(buf, "%10.4e", bw); + if(HDstrlen(buf) > 10) + sprintf(buf, "%10.3e", bw); + } } } /* end H5_bandwidth() */ diff --git a/src/H5trace.c b/src/H5trace.c index dfa5dce..6d07e8a 100644 --- a/src/H5trace.c +++ b/src/H5trace.c @@ -110,7 +110,7 @@ * SO MAY CAUSE H5_trace() TO BE INVOKED RECURSIVELY OR MAY * CAUSE LIBRARY INITIALIZATIONS THAT ARE NOT DESIRED. * - * Return: void + * Return: Execution time for an API call * * Programmer: Robb Matzke * Tuesday, June 16, 1998 @@ -129,34 +129,34 @@ H5_trace(const double *returning, const char *func, const char *type, ...) void *vp = NULL; FILE *out = H5_debug_g.trace; H5_timer_t event_time; - static H5_timer_t first_time = {0.0, 0.0, 0.0}; + static H5_timer_t first_time = {0.0F, 0.0F, 0.0F}; static int current_depth = 0; static int last_call_depth = 0; /* FUNC_ENTER() should not be called */ if(!out) - return 0.0; /*tracing is off*/ + return 0.0F; /*tracing is off*/ va_start(ap, type); if(H5_debug_g.ttop) { if(returning) { if(current_depth > 1) { --current_depth; - return 0.0; + return 0.0F; } /* end if */ } /* end if */ else { if(current_depth > 0) { /*do not update last_call_depth*/ current_depth++; - return 0.0; + return 0.0F; } /* end if */ } /* end else */ } /* end if */ - /* Get tim for event */ - if(HDfabs(first_time.etime) < 0.0000000001) + /* Get time for event */ + if(HDfabs(first_time.etime) < 0.0000000001F) /* That is == 0.0, but direct comparison between floats is bad */ H5_timer_begin(&first_time); if(H5_debug_g.ttimes) diff --git a/src/Makefile.am b/src/Makefile.am index 11525fb..e538635 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -121,7 +121,7 @@ include_HEADERS = hdf5.h H5api_adpt.h H5overflow.h H5pubconf.h H5public.h H5vers H5VLpublic.h H5VLnative.h \ H5Gpublic.h H5Ipublic.h H5Lpublic.h \ H5MMpublic.h H5Opublic.h H5Ppublic.h \ - H5PLextern.h \ + H5PLextern.h H5PLpublic.h \ H5Rpublic.h H5Spublic.h \ H5Tpublic.h H5Zpublic.h diff --git a/src/Makefile.in b/src/Makefile.in index 84b5c21..bee19e9 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -109,7 +109,8 @@ noinst_PROGRAMS = H5detect$(EXEEXT) H5make_libsettings$(EXEEXT) TESTS = subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -469,7 +470,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -501,7 +501,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -520,17 +519,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -593,7 +589,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -608,10 +603,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -725,15 +716,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 # Our main target, the HDF5 library @@ -829,7 +820,7 @@ include_HEADERS = hdf5.h H5api_adpt.h H5overflow.h H5pubconf.h H5public.h H5vers H5VLpublic.h H5VLnative.h \ H5Gpublic.h H5Ipublic.h H5Lpublic.h \ H5MMpublic.h H5Opublic.h H5Ppublic.h \ - H5PLextern.h \ + H5PLextern.h H5PLpublic.h \ H5Rpublic.h H5Spublic.h \ H5Tpublic.h H5Zpublic.h @@ -33,7 +33,8 @@ #include "H5Lpublic.h" /* Links */ #include "H5MMpublic.h" /* Memory management */ #include "H5Opublic.h" /* Object headers */ -#include "H5Ppublic.h" /* Property lists */ +#include "H5Ppublic.h" /* Property lists */ +#include "H5PLpublic.h" /* Plugins */ #include "H5Rpublic.h" /* References */ #include "H5Spublic.h" /* Dataspaces */ #include "H5Tpublic.h" /* Datatypes */ diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in index 424334d..1b1ae96 100644 --- a/src/libhdf5.settings.in +++ b/src/libhdf5.settings.in @@ -62,7 +62,6 @@ Features: Default API Mapping: @DEFAULT_API_VERSION@ With Deprecated Public Symbols: @DEPRECATED_SYMBOLS@ I/O filters (external): @EXTERNAL_FILTERS@ - I/O filters (internal): @FILTERS@ MPE: @MPE@ Direct VFD: @DIRECT_VFD@ dmalloc: @HAVE_DMALLOC@ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 61a43cf..8144441 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TEST) #----------------------------------------------------------------------------- @@ -27,7 +27,7 @@ set (TEST_LIB_HEADERS ) add_library (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} " " " ") if (MSVC) target_link_libraries (${HDF5_TEST_LIB_TARGET} "ws2_32.lib") endif (MSVC) @@ -68,7 +68,7 @@ if (BUILD_SHARED_LIBS) INCLUDE_DIRECTORIES (${HDF5_SRC_DIR}) add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c) - TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} " " " ") + TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) H5_SET_LIB_OPTIONS ( ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME} @@ -99,7 +99,7 @@ if (BUILD_SHARED_LIBS) INCLUDE_DIRECTORIES (${HDF5_SRC_DIR}) add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c) - TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} " " " ") + TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) H5_SET_LIB_OPTIONS ( ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME} @@ -196,14 +196,14 @@ set (testhdf5_SRCS #-- Adding test for testhdf5 add_executable (testhdf5 ${testhdf5_SRCS}) TARGET_NAMING (testhdf5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (testhdf5 " " " ") +TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ") target_link_libraries (testhdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (testhdf5 PROPERTIES FOLDER test) MACRO (ADD_H5_EXE file) add_executable (${file} ${HDF5_TEST_SOURCE_DIR}/${file}.c) TARGET_NAMING (${file} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${file} " " " ") + TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ") target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (${file} PROPERTIES FOLDER test) ENDMACRO (ADD_H5_EXE file) @@ -279,21 +279,21 @@ endforeach (test ${H5_TESTS}) #-- Adding test for cache add_executable (cache ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) TARGET_NAMING (cache ${LIB_TYPE}) -TARGET_C_PROPERTIES (cache " " " ") +TARGET_C_PROPERTIES (cache ${LIB_TYPE} " " " ") target_link_libraries (cache ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (cache PROPERTIES FOLDER test) #-- Adding test for cache_api add_executable (cache_api ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) TARGET_NAMING (cache_api ${LIB_TYPE}) -TARGET_C_PROPERTIES (cache_api " " " ") +TARGET_C_PROPERTIES (cache_api ${LIB_TYPE} " " " ") target_link_libraries (cache_api ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (cache_api PROPERTIES FOLDER test) #-- Adding test for cache_tagging add_executable (cache_tagging ${HDF5_TEST_SOURCE_DIR}/cache_tagging.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) TARGET_NAMING (cache_tagging ${LIB_TYPE}) -TARGET_C_PROPERTIES (cache_tagging " " " ") +TARGET_C_PROPERTIES (cache_tagging ${LIB_TYPE} " " " ") target_link_libraries (cache_tagging ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (cache_tagging PROPERTIES FOLDER test) @@ -306,7 +306,7 @@ add_executable (ttsafe ${HDF5_TEST_SOURCE_DIR}/ttsafe_acreate.c ) TARGET_NAMING (ttsafe ${LIB_TYPE}) -TARGET_C_PROPERTIES (ttsafe " " " ") +TARGET_C_PROPERTIES (ttsafe ${LIB_TYPE} " " " ") target_link_libraries (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (ttsafe PROPERTIES FOLDER test) @@ -314,7 +314,7 @@ set_target_properties (ttsafe PROPERTIES FOLDER test) if (HDF5_ENABLE_DEPRECATED_SYMBOLS) add_executable (err_compat ${HDF5_TEST_SOURCE_DIR}/err_compat.c) TARGET_NAMING (err_compat ${LIB_TYPE}) - TARGET_C_PROPERTIES (err_compat " " " ") + TARGET_C_PROPERTIES (err_compat ${LIB_TYPE} " " " ") target_link_libraries (err_compat ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (err_compat PROPERTIES FOLDER test) endif (HDF5_ENABLE_DEPRECATED_SYMBOLS) @@ -322,14 +322,14 @@ endif (HDF5_ENABLE_DEPRECATED_SYMBOLS) #-- Adding test for error_test add_executable (error_test ${HDF5_TEST_SOURCE_DIR}/error_test.c) TARGET_NAMING (error_test ${LIB_TYPE}) -TARGET_C_PROPERTIES (error_test " " " ") +TARGET_C_PROPERTIES (error_test ${LIB_TYPE} " " " ") target_link_libraries (error_test ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (error_test PROPERTIES FOLDER test) #-- Adding test for links_env add_executable (links_env ${HDF5_TEST_SOURCE_DIR}/links_env.c) TARGET_NAMING (links_env ${LIB_TYPE}) -TARGET_C_PROPERTIES (links_env " " " ") +TARGET_C_PROPERTIES (links_env ${LIB_TYPE} " " " ") target_link_libraries (links_env ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (links_env PROPERTIES FOLDER test) @@ -350,8 +350,8 @@ endif (\${TEST_RESULT} STREQUAL \"0\") ############################################################################## if (BUILD_SHARED_LIBS) add_executable (plugin ${HDF5_TEST_SOURCE_DIR}/plugin.c) - TARGET_NAMING (plugin ${LIB_TYPE}) - TARGET_C_PROPERTIES (plugin " " " ") + TARGET_NAMING (plugin SHARED) + TARGET_C_PROPERTIES (plugin SHARED " " " ") target_link_libraries (plugin ${HDF5_TEST_PLUGIN_LIB_TARGET}) set_target_properties (plugin PROPERTIES FOLDER test) endif (BUILD_SHARED_LIBS) diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake index f609b7a..92e4574 100644 --- a/test/CMakeTests.cmake +++ b/test/CMakeTests.cmake @@ -727,8 +727,8 @@ 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) - TARGET_NAMING (${genfile} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${genfile} " " " ") + TARGET_NAMING (${genfile} STATIC) + TARGET_C_PROPERTIES (${genfile} STATIC " " " ") target_link_libraries (${genfile} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (${genfile} PROPERTIES FOLDER generator/test) ENDMACRO (ADD_H5_GENERATOR genfile) diff --git a/test/Makefile.in b/test/Makefile.in index 016544e..027d96a 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -117,7 +117,8 @@ check_PROGRAMS = $(am__EXEEXT_1) error_test$(EXEEXT) \ TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -836,7 +837,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -868,7 +868,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -887,17 +886,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -960,7 +956,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -975,10 +970,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -1092,15 +1083,15 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. These files are the ones created by setting the # HDF5_NOCLEANUP environment variable and running `make test' without # specifying a file prefix or low-level driver. Changing the file # prefix or low-level driver with environment variables will influence # the temporary file name in ways that the makefile is not aware of. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog accum.h5 cmpd_dset.h5 \ - compact_dataset.h5 dataset.h5 dset_offset.h5 \ +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 accum.h5 \ + cmpd_dset.h5 compact_dataset.h5 dataset.h5 dset_offset.h5 \ max_compact_dataset.h5 simple.h5 set_local.h5 random_chunks.h5 \ huge_chunks.h5 chunk_cache.h5 big_chunk.h5 chunk_expand.h5 \ copy_dcpl_newfile.h5 extend.h5 istore.h5 extlinks*.h5 \ diff --git a/test/cache.c b/test/cache.c index 5ad1314..8725b31 100644 --- a/test/cache.c +++ b/test/cache.c @@ -20340,7 +20340,10 @@ check_auto_cache_resize(void) auto_size_ctl.decr_mode = H5C_decr__age_out_with_threshold; - auto_size_ctl.upper_hr_threshold = 0.999; /* for ease of testing */ + /* NOTE: upper_hr_threshold MUST be type double (not float) + * or the cache test will fail on 64-bit systems. + */ + auto_size_ctl.upper_hr_threshold = H5_DOUBLE(0.999); /* for ease of testing */ auto_size_ctl.decrement = 0.5f; @@ -28353,7 +28356,7 @@ check_auto_cache_resize_aux_fcns(void) pass = FALSE; failure_mssg = "H5C_get_cache_hit_rate failed.\n"; - } else if ( ! DBL_REL_EQUAL(hit_rate, 0.5, FP_EPSILON) ) { /* i.e. hit_rate != 0.5 */ + } else if ( ! DBL_REL_EQUAL(hit_rate, 0.5F, FP_EPSILON) ) { /* i.e. hit_rate != 0.5 */ pass = FALSE; failure_mssg = diff --git a/test/cache_api.c b/test/cache_api.c index 34a3cbc..d317d8f 100644 --- a/test/cache_api.c +++ b/test/cache_api.c @@ -2173,7 +2173,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] = /* long int epoch_length = */ 50000, /* enum H5C_cache_incr_mode incr_mode = */ H5C_incr__threshold, /* double lower_hr_threshold = */ 0.9f, - /* double increment = */ 0.999999999999, + /* double increment = */ H5_DOUBLE(0.999999999999), /* hbool_t apply_max_increment = */ TRUE, /* size_t max_increment = */ (4 * 1024 * 1024), /* enum H5C_cache_flash_incr_mode */ @@ -2532,7 +2532,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] = /* double flash_threshold = */ 0.5f, /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__threshold, /* double upper_hr_threshold = */ 0.999f, - /* double decrement = */ 1.0000000001, + /* double decrement = */ H5_DOUBLE(1.0000000001), /* hbool_t apply_max_decrement = */ TRUE, /* size_t max_decrement = */ (1 * 1024 * 1024), /* int epochs_before_eviction = */ 3, @@ -2712,7 +2712,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] = /* size_t max_decrement = */ (1 * 1024 * 1024), /* int epochs_before_eviction = */ 3, /* hbool_t apply_empty_reserve = */ TRUE, - /* double empty_reserve = */ 1.00000000001, + /* double empty_reserve = */ H5_DOUBLE(1.00000000001), /* int dirty_bytes_threshold = */ (256 * 1024), /* int metadata_write_strategy = */ H5AC__DEFAULT_METADATA_WRITE_STRATEGY @@ -2776,7 +2776,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] = /* double flash_multiple = */ 2.0f, /* double flash_threshold = */ 0.5f, /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__age_out_with_threshold, - /* double upper_hr_threshold = */ 1.00000001, + /* double upper_hr_threshold = */ H5_DOUBLE(1.00000001), /* double decrement = */ 0.9f, /* hbool_t apply_max_decrement = */ TRUE, /* size_t max_decrement = */ (1 * 1024 * 1024), diff --git a/test/cache_common.c b/test/cache_common.c index 90c640b..8c8b03d 100644 --- a/test/cache_common.c +++ b/test/cache_common.c @@ -5161,7 +5161,7 @@ check_and_validate_cache_hit_rate(hid_t file_id, } else { - expected_hit_rate = 0.0; + expected_hit_rate = 0.0F; } result = H5Fget_mdc_hit_rate(file_id, &hit_rate); @@ -5171,7 +5171,7 @@ check_and_validate_cache_hit_rate(hid_t file_id, pass = FALSE; failure_mssg = "H5Fget_mdc_hit_rate() failed."; - } else if ( ! DBL_REL_EQUAL(hit_rate, expected_hit_rate, 0.00001) ) { + } else if ( ! DBL_REL_EQUAL(hit_rate, expected_hit_rate, 0.00001F) ) { pass = FALSE; failure_mssg = "unexpected hit rate."; diff --git a/test/cmpd_dset.c b/test/cmpd_dset.c index a782fb0..d81b7fc 100644 --- a/test/cmpd_dset.c +++ b/test/cmpd_dset.c @@ -1301,17 +1301,17 @@ compare_data(void *src_data, void *dst_data, hbool_t src_subset) printf(" src={a=%d, b=%d, c=[%d,%d,%d,%d,%d,%d,%d,%d], d=%d, e=%d, f=%f, g=%f, h=[%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f], i=%f, j=%f, k=%f, l=%f, m=%f, n=%f}\n", s_ptr->a, s_ptr->b, s_ptr->c[0], s_ptr->c[1], s_ptr->c[2], s_ptr->c[3], s_ptr->c[4], s_ptr->c[5], s_ptr->c[6], s_ptr->c[7], - s_ptr->d, s_ptr->e, s_ptr->f, s_ptr->g,s_ptr->h[0],s_ptr->h[1],s_ptr->h[2], - s_ptr->h[3],s_ptr->h[4],s_ptr->h[5],s_ptr->h[6],s_ptr->h[7],s_ptr->h[8], - s_ptr->h[9],s_ptr->h[10],s_ptr->h[11],s_ptr->h[12],s_ptr->h[13],s_ptr->h[14], - s_ptr->h[15], s_ptr->i,s_ptr->j,s_ptr->k,s_ptr->l,s_ptr->m,s_ptr->n); + s_ptr->d, s_ptr->e, (double)s_ptr->f, (double)s_ptr->g,(double)s_ptr->h[0],(double)s_ptr->h[1],(double)s_ptr->h[2], + (double)s_ptr->h[3],(double)s_ptr->h[4],(double)s_ptr->h[5],(double)s_ptr->h[6],(double)s_ptr->h[7],(double)s_ptr->h[8], + (double)s_ptr->h[9],(double)s_ptr->h[10],(double)s_ptr->h[11],(double)s_ptr->h[12],(double)s_ptr->h[13],(double)s_ptr->h[14], + (double)s_ptr->h[15], (double)s_ptr->i,(double)s_ptr->j,s_ptr->k,s_ptr->l,s_ptr->m,s_ptr->n); printf(" dst={a=%d, b=%d, c=[%d,%d,%d,%d,%d,%d,%d,%d], d=%d, e=%d, f=%f, g=%f, h=[%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f], i=%f, j=%f, k=%f, l=%f, m=%f, n=%f}\n", d_ptr->a, d_ptr->b, d_ptr->c[0], d_ptr->c[1], d_ptr->c[2], d_ptr->c[3], d_ptr->c[4], d_ptr->c[5], d_ptr->c[6], d_ptr->c[7], - d_ptr->d, d_ptr->e, d_ptr->f, d_ptr->g,d_ptr->h[0],d_ptr->h[1],d_ptr->h[2], - d_ptr->h[3],d_ptr->h[4],d_ptr->h[5],d_ptr->h[6],d_ptr->h[7],d_ptr->h[8], - d_ptr->h[9],d_ptr->h[10],d_ptr->h[11],d_ptr->h[12],d_ptr->h[13], - d_ptr->h[14], d_ptr->h[15], d_ptr->i,d_ptr->j,d_ptr->k,d_ptr->l, + d_ptr->d, d_ptr->e, (double)d_ptr->f, (double)d_ptr->g,(double)d_ptr->h[0],(double)d_ptr->h[1],(double)d_ptr->h[2], + (double)d_ptr->h[3],(double)d_ptr->h[4],(double)d_ptr->h[5],(double)d_ptr->h[6],(double)d_ptr->h[7],(double)d_ptr->h[8], + (double)d_ptr->h[9],(double)d_ptr->h[10],(double)d_ptr->h[11],(double)d_ptr->h[12],(double)d_ptr->h[13], + (double)d_ptr->h[14],(double)d_ptr->h[15],(double)d_ptr->i,(double)d_ptr->j,d_ptr->k,d_ptr->l, d_ptr->m,d_ptr->n); goto error; } diff --git a/test/cross_read.c b/test/cross_read.c index ba99c9e..35dd2ce 100644 --- a/test/cross_read.c +++ b/test/cross_read.c @@ -100,15 +100,15 @@ static int check_data(const char *dsetname, hid_t fid, hbool_t floating_number) for (j = 0; j < NX; j++) { for (i = 0; i < NY; i++) { data_in[j][i] = ((double)(i + j + 1))/3; - data_out[j][i] = 0; + data_out[j][i] = 0.0F; int_data_in[j][i] = i + j; int_data_out[j][i] = 0; } } for (i = 0; i < NY; i++) { - data_in[NX][i] = -2.2; - data_out[NX][i] = 0; + data_in[NX][i] = -2.2F; + data_out[NX][i] = 0.0F; int_data_in[NX][i] = -2; int_data_out[NX][i] = 0; @@ -126,7 +126,7 @@ static int check_data(const char *dsetname, hid_t fid, hbool_t floating_number) /* Check results */ for (j=0; j<(NX+1); j++) { for (i=0; i<NY; i++) { - if (!DBL_REL_EQUAL(data_out[j][i], data_in[j][i], 0.001)) { + if (!DBL_REL_EQUAL(data_out[j][i], data_in[j][i], 0.001F)) { if (!nerrors++) { H5_FAILED(); printf("element [%d][%d] is %g but should have been %g\n", @@ -213,116 +213,46 @@ static int open_dataset(char *fname) nerrors += check_data(DATASETNAME1, file, TRUE); TESTING("dataset of LE FLOAT with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME2, file, TRUE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of BE FLOAT with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME3, file, TRUE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of LE DOUBLE with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME4, file, TRUE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of BE DOUBLE with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME5, file, TRUE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of LE CHAR with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME6, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of BE CHAR with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME7, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of LE SHORT with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME8, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of BE SHORT with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME9, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of LE INT with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME10, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of BE INT with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME11, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of LE LONG LONG with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME12, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of BE LONG LONG with scale-offset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET nerrors += check_data(DATASETNAME13, file, FALSE); -#else /*H5_HAVE_FILTER_SCALEOFFSET*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SCALEOFFSET*/ TESTING("dataset of LE FLOAT with Fletcher32 filter"); -#ifdef H5_HAVE_FILTER_FLETCHER32 nerrors += check_data(DATASETNAME14, file, TRUE); -#else /*H5_HAVE_FILTER_FLETCHER32*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_FLETCHER32*/ TESTING("dataset of BE FLOAT with Fletcher32 filter"); -#ifdef H5_HAVE_FILTER_FLETCHER32 nerrors += check_data(DATASETNAME15, file, TRUE); -#else /*H5_HAVE_FILTER_FLETCHER32*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_FLETCHER32*/ TESTING("dataset of LE FLOAT with Deflate filter"); #ifdef H5_HAVE_FILTER_DEFLATE @@ -357,36 +287,16 @@ static int open_dataset(char *fname) #endif /*H5_HAVE_FILTER_SZIP*/ TESTING("dataset of LE FLOAT with Shuffle filter"); -#ifdef H5_HAVE_FILTER_SHUFFLE nerrors += check_data(DATASETNAME20, file, TRUE); -#else /*H5_HAVE_FILTER_SHUFFLE*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SHUFFLE*/ TESTING("dataset of BE FLOAT with Shuffle filter"); -#ifdef H5_HAVE_FILTER_SHUFFLE nerrors += check_data(DATASETNAME21, file, TRUE); -#else /*H5_HAVE_FILTER_SHUFFLE*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_SHUFFLE*/ TESTING("dataset of LE FLOAT with Nbit filter"); -#ifdef H5_HAVE_FILTER_NBIT nerrors += check_data(DATASETNAME22, file, TRUE); -#else /*H5_HAVE_FILTER_NBIT*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_NBIT*/ TESTING("dataset of BE FLOAT with Nbit filter"); -#ifdef H5_HAVE_FILTER_NBIT nerrors += check_data(DATASETNAME23, file, TRUE); -#else /*H5_HAVE_FILTER_NBIT*/ - SKIPPED(); - puts(not_supported); -#endif /*H5_HAVE_FILTER_NBIT*/ if(H5Fclose(file)) TEST_ERROR diff --git a/test/dsets.c b/test/dsets.c index 3055943..3244bd6 100644 --- a/test/dsets.c +++ b/test/dsets.c @@ -70,19 +70,17 @@ const char *FILENAME[] = { #define DSET_CONV_BUF_NAME "conv_buf" #define DSET_TCONV_NAME "tconv" #define DSET_DEFLATE_NAME "deflate" -#ifdef H5_HAVE_FILTER_SZIP -#define DSET_SZIP_NAME "szip" -#endif /* H5_HAVE_FILTER_SZIP */ #define DSET_SHUFFLE_NAME "shuffle" #define DSET_FLETCHER32_NAME "fletcher32" #define DSET_FLETCHER32_NAME_2 "fletcher32_2" #define DSET_FLETCHER32_NAME_3 "fletcher32_3" #define DSET_SHUF_DEF_FLET_NAME "shuffle+deflate+fletcher32" #define DSET_SHUF_DEF_FLET_NAME_2 "shuffle+deflate+fletcher32_2" -#if defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 +#ifdef H5_HAVE_FILTER_SZIP +#define DSET_SZIP_NAME "szip" #define DSET_SHUF_SZIP_FLET_NAME "shuffle+szip+fletcher32" #define DSET_SHUF_SZIP_FLET_NAME_2 "shuffle+szip+fletcher32_2" -#endif /* defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 */ +#endif /* H5_HAVE_FILTER_SZIP */ #define DSET_BOGUS_NAME "bogus" #define DSET_MISSING_NAME "missing" @@ -2006,21 +2004,17 @@ test_get_filter_info(void) /* Verify that each filter is reported as having the right combination * of encoder and decoder. */ -#ifdef H5_HAVE_FILTER_FLETCHER32 if(H5Zget_filter_info(H5Z_FILTER_FLETCHER32, &flags) < 0) TEST_ERROR if(((flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED) == 0) || ((flags & H5Z_FILTER_CONFIG_DECODE_ENABLED) == 0)) TEST_ERROR -#endif -#ifdef H5_HAVE_FILTER_SHUFFLE if(H5Zget_filter_info(H5Z_FILTER_SHUFFLE, &flags) < 0) TEST_ERROR if(((flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED) == 0) || ((flags & H5Z_FILTER_CONFIG_DECODE_ENABLED) == 0)) TEST_ERROR -#endif #ifdef H5_HAVE_FILTER_DEFLATE if(H5Zget_filter_info(H5Z_FILTER_DEFLATE, &flags) < 0) TEST_ERROR @@ -2083,10 +2077,8 @@ UNUSED const hsize_t chunk_size[2] = {FILTER_CHUNK_DIM1, FILTER_CHUNK_DIM2}; /* Chunk dimensions */ hsize_t null_size; /* Size of dataset with null filter */ -#ifdef H5_HAVE_FILTER_FLETCHER32 hsize_t fletcher32_size; /* Size of dataset with Fletcher32 checksum */ unsigned data_corrupt[3]; /* position and length of data to be corrupted */ -#endif /* H5_HAVE_FILTER_FLETCHER32 */ #ifdef H5_HAVE_FILTER_DEFLATE hsize_t deflate_size; /* Size of dataset with deflate filter */ @@ -2098,13 +2090,11 @@ UNUSED unsigned szip_pixels_per_block=4; #endif /* H5_HAVE_FILTER_SZIP */ -#ifdef H5_HAVE_FILTER_SHUFFLE hsize_t shuffle_size; /* Size of dataset with shuffle filter */ -#endif /* H5_HAVE_FILTER_SHUFFLE */ -#if(defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP) && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 - hsize_t combo_size; /* Size of dataset with shuffle+deflate filter */ -#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ +#if(defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP) + hsize_t combo_size; /* Size of dataset with multiple filters */ +#endif /* defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP */ /* test the H5Zget_filter_info function */ if(test_get_filter_info() < 0) goto error; @@ -2128,7 +2118,6 @@ UNUSED * STEP 1: Test Fletcher32 Checksum by itself. *---------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_FLETCHER32 puts("Testing Fletcher32 checksum(enabled for read)"); if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; if(H5Pset_chunk (dc, 2, chunk_size) < 0) goto error; @@ -2169,11 +2158,6 @@ UNUSED /* Clean up objects used for this test */ if(H5Pclose (dc) < 0) goto error; -#else /* H5_HAVE_FILTER_FLETCHER32 */ - TESTING("fletcher32 checksum"); - SKIPPED(); - puts(" Fletcher32 checksum not enabled"); -#endif /* H5_HAVE_FILTER_FLETCHER32 */ /*---------------------------------------------------------- * STEP 2: Test deflation by itself. @@ -2231,7 +2215,6 @@ UNUSED * STEP 4: Test shuffling by itself. *---------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_SHUFFLE puts("Testing shuffle filter"); if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; if(H5Pset_chunk (dc, 2, chunk_size) < 0) goto error; @@ -2246,17 +2229,12 @@ UNUSED /* Clean up objects used for this test */ if(H5Pclose (dc) < 0) goto error; -#else /* H5_HAVE_FILTER_SHUFFLE */ - TESTING("shuffle filter"); - SKIPPED(); - puts(" Shuffle filter not enabled"); -#endif /* H5_HAVE_FILTER_SHUFFLE */ /*---------------------------------------------------------- * STEP 5: Test shuffle + deflate + checksum in any order. *---------------------------------------------------------- */ -#if defined H5_HAVE_FILTER_DEFLATE && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 +#ifdef H5_HAVE_FILTER_DEFLATE puts("Testing shuffle+deflate+checksum filters(checksum first)"); if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; if(H5Pset_chunk (dc, 2, chunk_size) < 0) goto error; @@ -2280,17 +2258,17 @@ UNUSED /* Clean up objects used for this test */ if(H5Pclose (dc) < 0) goto error; -#else /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ +#else /* H5_HAVE_FILTER_DEFLATE */ TESTING("shuffle+deflate+fletcher32 filters"); SKIPPED(); - puts(" Deflate, shuffle, or fletcher32 checksum filter not enabled"); -#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ + puts(" Deflate filter not enabled"); +#endif /* H5_HAVE_FILTER_DEFLATE */ /*---------------------------------------------------------- * STEP 6: Test shuffle + szip + checksum in any order. *---------------------------------------------------------- */ -#if defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 +#ifdef H5_HAVE_FILTER_SZIP TESTING("shuffle+szip+checksum filters(checksum first, with encoder)"); if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; @@ -2339,11 +2317,11 @@ UNUSED SKIPPED(); } -#else /* H5_HAVE_FILTER_SZIP && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ +#else /* H5_HAVE_FILTER_SZIP */ TESTING("shuffle+szip+fletcher32 filters"); SKIPPED(); - puts(" Szip, shuffle, or fletcher32 checksum filter not enabled"); -#endif /* H5_HAVE_FILTER_SZIP && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ + puts(" szip filter not enabled"); +#endif /* H5_HAVE_FILTER_SZIP */ return 0; error: @@ -2610,20 +2588,15 @@ error: static herr_t test_onebyte_shuffle(hid_t file) { -#ifdef H5_HAVE_FILTER_SHUFFLE hid_t dataset, space,dc; const hsize_t size[2] = {10, 20}; const hsize_t chunk_size[2] = {10, 20}; unsigned char orig_data[10][20]; unsigned char new_data[10][20]; size_t i, j; -#else /* H5_HAVE_FILTER_SHUFFLE */ - const char *not_supported= " Data shuffling is not enabled."; -#endif /* H5_HAVE_FILTER_SHUFFLE */ TESTING("8-bit shuffling (setup)"); -#ifdef H5_HAVE_FILTER_SHUFFLE /* Create the data space */ if((space = H5Screate_simple(2, size, NULL)) < 0) goto error; @@ -2641,10 +2614,6 @@ test_onebyte_shuffle(hid_t file) orig_data[i][j] = (unsigned char)HDrandom(); PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test shuffling by setting up a chunked dataset and writing @@ -2653,16 +2622,11 @@ test_onebyte_shuffle(hid_t file) */ TESTING("8-bit shuffling (write)"); -#ifdef H5_HAVE_FILTER_SHUFFLE if(H5Dwrite(dataset, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -2670,7 +2634,6 @@ test_onebyte_shuffle(hid_t file) */ TESTING("8-bit shuffling (read)"); -#ifdef H5_HAVE_FILTER_SHUFFLE /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -2697,10 +2660,6 @@ test_onebyte_shuffle(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif return 0; @@ -2726,7 +2685,6 @@ error: static herr_t test_nbit_int(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT hid_t dataset, datatype, mem_datatype, space, dc; hsize_t size[2] = {2, 5}; hsize_t chunk_size[2] = {2,5}; @@ -2735,13 +2693,10 @@ test_nbit_int(hid_t file) unsigned int mask; size_t precision, offset; size_t i, j; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ puts("Testing nbit filter"); TESTING(" nbit int (setup)"); -#ifdef H5_HAVE_FILTER_NBIT + /* Define dataset datatype (integer), and set precision, offset */ datatype = H5Tcopy(H5T_NATIVE_INT); precision = 17; /* precision includes sign bit */ @@ -2779,10 +2734,6 @@ test_nbit_int(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -2791,15 +2742,10 @@ test_nbit_int(hid_t file) */ TESTING(" nbit int (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, mem_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -2807,7 +2753,6 @@ test_nbit_int(hid_t file) */ TESTING(" nbit int (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, mem_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -2839,10 +2784,7 @@ test_nbit_int(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -2866,24 +2808,20 @@ error: static herr_t test_nbit_float(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT hid_t dataset, datatype, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2, 5}; /* orig_data[] are initialized to be within the range that can be represented by * dataset datatype (no precision loss during datatype conversion) */ - float orig_data[2][5] = {{(float)188384.00f, (float)19.103516f, (float)-1.0831790e9f, (float)-84.242188f, - (float)5.2045898f}, {(float)-49140.000f, (float)2350.2500f, (float)-3.2110596e-1f, (float)6.4998865e-5f, (float)-0.0000000f}}; + float orig_data[2][5] = {{188384.0f, 19.103516f, -1.0831790e9f, -84.242188f, 5.2045898f}, + {-49140.0f, 2350.25f, -3.2110596e-1f, 6.4998865e-5f, -0.0f}}; float new_data[2][5]; size_t precision, offset; size_t i, j; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit float (setup)"); -#ifdef H5_HAVE_FILTER_NBIT + /* Define user-defined single-precision floating-point type for dataset */ datatype = H5Tcopy(H5T_IEEE_F32BE); if(H5Tset_fields(datatype, (size_t)26, (size_t)20, (size_t)6, (size_t)7, (size_t)13) < 0) goto error; @@ -2906,10 +2844,6 @@ test_nbit_float(hid_t file) if((dataset = H5Dcreate2(file, DSET_NBIT_FLOAT_NAME, datatype, space, H5P_DEFAULT, dc, H5P_DEFAULT)) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -2918,16 +2852,11 @@ test_nbit_float(hid_t file) */ TESTING(" nbit float (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -2935,7 +2864,6 @@ test_nbit_float(hid_t file) */ TESTING(" nbit float (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -2966,10 +2894,6 @@ test_nbit_float(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif return 0; @@ -2996,25 +2920,33 @@ static herr_t test_nbit_double(hid_t file) { /* assume unsigned int and float has the same number of bytes */ -#ifdef H5_HAVE_FILTER_NBIT hid_t dataset, datatype, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2, 5}; /* orig_data[] are initialized to be within the range that can be represented by * dataset datatype (no precision loss during datatype conversion) */ - double orig_data[2][5] = {{1.6081706885101836e+60, -255.32099170994480, - 1.2677579992621376e-61, 64568.289448797700, -1.0619721778839084e-75}, {2.1499497833454840e+56, - 6.6562295504670740e-3, -1.5747263393432150, 1.0711093225222612, -9.8971679387636870e-1}}; + double orig_data[2][5] = { + { + H5_DOUBLE(1.6081706885101836e+60), + H5_DOUBLE(-255.32099170994480), + H5_DOUBLE(1.2677579992621376e-61), + H5_DOUBLE(64568.289448797700), + H5_DOUBLE(-1.0619721778839084e-75) + }, + { + H5_DOUBLE(2.1499497833454840e+56), + H5_DOUBLE(6.6562295504670740e-3), + H5_DOUBLE(-1.5747263393432150), + H5_DOUBLE(1.0711093225222612), + H5_DOUBLE(-9.8971679387636870e-1) + }}; double new_data[2][5]; size_t precision, offset; size_t i, j; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit double (setup)"); -#ifdef H5_HAVE_FILTER_NBIT + /* Define user-defined doule-precision floating-point type for dataset */ datatype = H5Tcopy(H5T_IEEE_F64BE); if(H5Tset_fields(datatype, (size_t)55, (size_t)46, (size_t)9, (size_t)5, (size_t)41) < 0) goto error; @@ -3038,10 +2970,6 @@ test_nbit_double(hid_t file) space, H5P_DEFAULT, dc, H5P_DEFAULT)) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -3050,15 +2978,10 @@ test_nbit_double(hid_t file) */ TESTING(" nbit double (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -3066,7 +2989,6 @@ test_nbit_double(hid_t file) */ TESTING(" nbit double (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -3097,10 +3019,6 @@ test_nbit_double(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif return 0; @@ -3126,7 +3044,6 @@ error: static herr_t test_nbit_array(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT hid_t dataset, base_datatype, array_datatype, space, dc; hid_t mem_base_datatype, mem_array_datatype; const hsize_t size[2] = {2, 5}; @@ -3136,12 +3053,9 @@ test_nbit_array(hid_t file) unsigned int new_data[2][5][3][2]; size_t precision, offset; size_t i, j, m, n; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit array (setup)"); -#ifdef H5_HAVE_FILTER_NBIT + /* Define dataset array datatype's base datatype and set precision, offset */ base_datatype = H5Tcopy(H5T_NATIVE_UINT); precision = 22; @@ -3179,12 +3093,8 @@ test_nbit_array(hid_t file) for(m = 0; m < (size_t)adims[0]; m++) for(n = 0; n < (size_t)adims[1]; n++) orig_data[i][j][m][n] = (unsigned int)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)precision)) << offset); + (long long)HDpow(2.0F, (double)precision)) << offset); PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -3193,16 +3103,11 @@ test_nbit_array(hid_t file) */ TESTING(" nbit array (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, mem_array_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -3210,7 +3115,6 @@ test_nbit_array(hid_t file) */ TESTING(" nbit array (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, mem_array_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -3244,10 +3148,7 @@ test_nbit_array(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: @@ -3272,7 +3173,6 @@ error: static herr_t test_nbit_compound(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT typedef struct { /* Struct with atomic fields */ int i; char c; @@ -3287,19 +3187,16 @@ test_nbit_compound(hid_t file) hid_t dataset, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2, 5}; - const float float_val[2][5] = {{(float)188384.00, (float)19.103516, (float)-1.0831790e9, (float)-84.242188, - (float)5.2045898}, {(float)-49140.000, (float)2350.2500, (float)-3.2110596e-1, (float)6.4998865e-5, (float)-0.0000000}}; + const float float_val[2][5] = {{188384.0F, 19.103516F, -1.0831790e9F, -84.242188F, 5.2045898F}, + {-49140.0F, 2350.25F, -3.2110596e-1F, 6.4998865e-5F, -0.0F}}; atomic orig_data[2][5]; atomic new_data[2][5]; unsigned int i_mask, s_mask, c_mask; size_t i, j; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit compound (setup)"); -#ifdef H5_HAVE_FILTER_NBIT + /* Define datatypes of members of compound datatype */ i_tid=H5Tcopy(H5T_NATIVE_INT); c_tid=H5Tcopy(H5T_NATIVE_CHAR); @@ -3355,11 +3252,11 @@ test_nbit_compound(hid_t file) for(i= 0;i< (size_t)size[0]; i++) for(j = 0; j < (size_t)size[1]; j++) { orig_data[i][j].i = (int)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[0]-1))) << offset[0]); + (long long)HDpow(2.0F, (double)(precision[0]-1))) << offset[0]); orig_data[i][j].c = (char)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[1]-1))) << offset[1]); + (long long)HDpow(2.0F, (double)(precision[1]-1))) << offset[1]); orig_data[i][j].s = (short)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[2]-1))) << offset[2]); + (long long)HDpow(2.0F, (double)(precision[2]-1))) << offset[2]); orig_data[i][j].f = float_val[i][j]; /* some even-numbered integer values are negtive */ @@ -3370,10 +3267,6 @@ test_nbit_compound(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -3382,15 +3275,10 @@ test_nbit_compound(hid_t file) */ TESTING(" nbit compound (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, mem_cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -3398,7 +3286,6 @@ test_nbit_compound(hid_t file) */ TESTING(" nbit compound (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, mem_cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -3440,10 +3327,7 @@ test_nbit_compound(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: @@ -3468,7 +3352,6 @@ error: static herr_t test_nbit_compound_2(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT typedef struct { /* Struct with atomic fields */ int i; char c; @@ -3498,19 +3381,16 @@ test_nbit_compound_2(hid_t file) hid_t dataset, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2, 5}; - const float float_val[2][5] = {{(float)188384.00, (float)19.103516, (float)-1.0831790e9, (float)-84.242188, - (float)5.2045898}, {(float)-49140.000, (float)2350.2500, (float)-3.2110596e-1, (float)6.4998865e-5, (float)-0.0000000}}; + const float float_val[2][5] = {{188384.0F, 19.103516F, -1.0831790e9F, -84.242188F, 5.2045898F}, + {-49140.0F, 2350.25F, -3.2110596e-1F, 6.4998865e-5F, -0.0F}}; complex orig_data[2][5]; complex new_data[2][5]; unsigned int i_mask, s_mask, c_mask, b_mask; size_t i, j, m, n, b_failed, d_failed; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit compound complex (setup)"); -#ifdef H5_HAVE_FILTER_NBIT + /* Define datatypes of members of compound datatype */ i_tid=H5Tcopy(H5T_NATIVE_INT); c_tid=H5Tcopy(H5T_NATIVE_CHAR); @@ -3598,38 +3478,34 @@ test_nbit_compound_2(hid_t file) for(i= 0;i< (size_t)size[0]; i++) for(j = 0; j < (size_t)size[1]; j++) { orig_data[i][j].a.i = (int)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[0]-1))) << offset[0]); + (long long)HDpow(2.0F, (double)(precision[0]-1))) << offset[0]); orig_data[i][j].a.c = (char)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[1]-1))) << offset[1]); + (long long)HDpow(2.0F, (double)(precision[1]-1))) << offset[1]); orig_data[i][j].a.s = (short)(-((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[2]-1))) << offset[2]); + (long long)HDpow(2.0F, (double)(precision[2]-1))) << offset[2]); orig_data[i][j].a.f = float_val[i][j]; orig_data[i][j].v = (unsigned int)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)precision[3])) << offset[3]); + (long long)HDpow(2.0F, (double)precision[3])) << offset[3]); for(m = 0; m < (size_t)array_dims[0]; m++) for(n = 0; n < (size_t)array_dims[1]; n++) orig_data[i][j].b[m][n] = (char)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[4]-1))) << offset[4]); + (long long)HDpow(2.0F, (double)(precision[4]-1))) << offset[4]); for(m = 0; m < (size_t)array_dims[0]; m++) for(n = 0; n < (size_t)array_dims[1]; n++) { orig_data[i][j].d[m][n].i = (int)(-((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[0]-1))) << offset[0]); + (long long)HDpow(2.0F, (double)(precision[0]-1))) << offset[0]); orig_data[i][j].d[m][n].c = (char)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[1]-1))) << offset[1]); + (long long)HDpow(2.0F, (double)(precision[1]-1))) << offset[1]); orig_data[i][j].d[m][n].s = (short)(((long long)HDrandom() % - (long long)HDpow(2.0, (double)(precision[2]-1))) << offset[2]); + (long long)HDpow(2.0F, (double)(precision[2]-1))) << offset[2]); orig_data[i][j].d[m][n].f = float_val[i][j]; } } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -3638,15 +3514,10 @@ test_nbit_compound_2(hid_t file) */ TESTING(" nbit compound complex (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, mem_cmpd_tid2, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -3654,7 +3525,6 @@ test_nbit_compound_2(hid_t file) */ TESTING(" nbit compound complex (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, mem_cmpd_tid2, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -3738,10 +3608,7 @@ test_nbit_compound_2(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: @@ -3766,7 +3633,6 @@ error: static herr_t test_nbit_compound_3(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT typedef struct { /* Struct with some no-op type fields */ int i; /* integer field, NOT a no-op type */ char str[30]; /* fixed-length string, no-op type */ @@ -3784,12 +3650,8 @@ test_nbit_compound_3(hid_t file) atomic new_data[5]; size_t i, k, j; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit compound with no-op type (setup)"); -#ifdef H5_HAVE_FILTER_NBIT /* Define datatypes of members of compound datatype */ i_tid=H5Tcopy(H5T_NATIVE_INT); @@ -3834,7 +3696,7 @@ test_nbit_compound_3(hid_t file) /* Initialize data */ for(i = 0; i < (size_t)size[0]; i++) { HDmemset(&orig_data[i], 0, sizeof(orig_data[i])); - orig_data[i].i = HDrandom() % (long)HDpow(2.0, 17.0 - 1.0); + orig_data[i].i = HDrandom() % (long)HDpow(2.0F, 17.0F - 1.0F); HDstrcpy(orig_data[i].str, "fixed-length C string"); orig_data[i].vl_str = HDstrdup("variable-length C string"); @@ -3849,10 +3711,6 @@ test_nbit_compound_3(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test nbit by setting up a chunked dataset and writing @@ -3861,15 +3719,10 @@ test_nbit_compound_3(hid_t file) */ TESTING(" nbit compound with no-op type (write)"); -#ifdef H5_HAVE_FILTER_NBIT if(H5Dwrite(dataset, cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -3877,7 +3730,6 @@ test_nbit_compound_3(hid_t file) */ TESTING(" nbit compound with no-op type (read)"); -#ifdef H5_HAVE_FILTER_NBIT /* Read the dataset back */ if(H5Dread(dataset, cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) @@ -3934,10 +3786,7 @@ test_nbit_compound_3(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: @@ -3962,19 +3811,14 @@ error: static herr_t test_nbit_int_size(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT hid_t dataspace, dataset, datatype, mem_datatype, dset_create_props; hsize_t dims[2], chunk_size[2]; hsize_t dset_size = 0; int orig_data[DSET_DIM1][DSET_DIM2]; int i, j; size_t precision, offset; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit integer dataset size"); -#ifdef H5_HAVE_FILTER_NBIT /* Define dataset datatype (integer), and set precision, offset */ if((datatype = H5Tcopy(H5T_NATIVE_INT)) < 0) { @@ -4107,10 +3951,6 @@ test_nbit_int_size(hid_t file) H5Pclose (dset_create_props); PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif return 0; error: @@ -4136,7 +3976,6 @@ error: static herr_t test_nbit_flt_size(hid_t file) { -#ifdef H5_HAVE_FILTER_NBIT hid_t dataspace, dataset, datatype, dset_create_props; hsize_t dims[2], chunk_size[2]; hsize_t dset_size = 0; @@ -4144,12 +3983,8 @@ test_nbit_flt_size(hid_t file) int i, j; size_t precision, offset; size_t spos, epos, esize, mpos, msize; -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= " Nbit is not enabled."; -#endif /* H5_HAVE_FILTER_NBIT */ TESTING(" nbit floating-number dataset size"); -#ifdef H5_HAVE_FILTER_NBIT /* Define floating-point type for dataset *------------------------------------------------------------------- @@ -4313,10 +4148,6 @@ test_nbit_flt_size(hid_t file) H5Pclose (dset_create_props); PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif return 0; error: @@ -4341,20 +4172,16 @@ error: static herr_t test_scaleoffset_int(hid_t file) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset, datatype, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2,5}; int orig_data[2][5]; int new_data[2][5]; size_t i, j; -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= " Scaleoffset is not enabled."; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ puts("Testing scaleoffset filter"); TESTING(" scaleoffset int without fill value (setup)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET + datatype = H5Tcopy(H5T_NATIVE_INT); /* Set order of dataset datatype */ @@ -4388,10 +4215,6 @@ test_scaleoffset_int(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test scaleoffset by setting up a chunked dataset and writing @@ -4400,14 +4223,9 @@ test_scaleoffset_int(hid_t file) */ TESTING(" scaleoffset int without fill value (write)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET if(H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -4415,7 +4233,6 @@ test_scaleoffset_int(hid_t file) */ TESTING(" scaleoffset int without fill value (read)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) goto error; @@ -4442,10 +4259,7 @@ test_scaleoffset_int(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -4470,7 +4284,6 @@ error: static herr_t test_scaleoffset_int_2(hid_t file) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset, datatype, space, mspace, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2,5}; @@ -4482,12 +4295,9 @@ test_scaleoffset_int_2(hid_t file) hsize_t block[2]; /* Block sizes */ int fillval; size_t j; -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= " Scaleoffset is not enabled."; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ TESTING(" scaleoffset int with fill value (setup)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET + datatype = H5Tcopy(H5T_NATIVE_INT); /* Set order of dataset datatype */ @@ -4534,10 +4344,6 @@ test_scaleoffset_int_2(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test scaleoffset by setting up a chunked dataset and writing @@ -4546,15 +4352,10 @@ test_scaleoffset_int_2(hid_t file) */ TESTING(" scaleoffset int with fill value (write)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* only data in the hyperslab will be written, other value should be fill value */ if(H5Dwrite(dataset, H5T_NATIVE_INT, mspace, mspace, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -4562,7 +4363,6 @@ test_scaleoffset_int_2(hid_t file) */ TESTING(" scaleoffset int with fill value (read)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_INT, mspace, mspace, H5P_DEFAULT, new_data) < 0) goto error; @@ -4587,10 +4387,7 @@ test_scaleoffset_int_2(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -4615,19 +4412,15 @@ error: static herr_t test_scaleoffset_float(hid_t file) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset, datatype, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2,5}; float orig_data[2][5]; float new_data[2][5]; size_t i, j; -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= " Scaleoffset is not enabled."; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ TESTING(" scaleoffset float without fill value, D-scaling (setup)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET + datatype = H5Tcopy(H5T_NATIVE_FLOAT); /* Set order of dataset datatype */ @@ -4655,7 +4448,7 @@ test_scaleoffset_float(hid_t file) /* Initialize data */ for(i= 0;i< (size_t)size[0]; i++) for(j = 0; j < (size_t)size[1]; j++) { - orig_data[i][j] = (float)((HDrandom() % 100000) / (float)1000.0); + orig_data[i][j] = (float)((HDrandom() % 100000) / 1000.0F); /* even-numbered values are negtive */ if((i*size[1]+j+1)%2 == 0) @@ -4663,10 +4456,6 @@ test_scaleoffset_float(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test scaleoffset by setting up a chunked dataset and writing @@ -4675,14 +4464,9 @@ test_scaleoffset_float(hid_t file) */ TESTING(" scaleoffset float without fill value, D-scaling (write)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET if(H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -4690,7 +4474,6 @@ test_scaleoffset_float(hid_t file) */ TESTING(" scaleoffset float without fill value, D-scaling (read)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) goto error; @@ -4698,7 +4481,7 @@ test_scaleoffset_float(hid_t file) /* Check that the values read are the same as the values written */ for(i=0; i<(size_t)size[0]; i++) { for(j=0; j<(size_t)size[1]; j++) { - if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0, -3.0)) { + if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0F, -3.0F)) { H5_FAILED(); printf(" Read different values than written.\n"); printf(" At index %lu,%lu\n", (unsigned long)i, (unsigned long)j); @@ -4717,10 +4500,7 @@ test_scaleoffset_float(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -4745,7 +4525,6 @@ error: static herr_t test_scaleoffset_float_2(hid_t file) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset, datatype, space, mspace, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2,5}; @@ -4757,12 +4536,9 @@ test_scaleoffset_float_2(hid_t file) hsize_t count[2]; /* Block count */ hsize_t block[2]; /* Block sizes */ size_t j; -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= " Scaleoffset is not enabled."; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ TESTING(" scaleoffset float with fill value, D-scaling (setup)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET + datatype = H5Tcopy(H5T_NATIVE_FLOAT); /* Set order of dataset datatype */ @@ -4775,7 +4551,7 @@ test_scaleoffset_float_2(hid_t file) if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; /* Set fill value */ - fillval = 10000.0; + fillval = 10000.0F; if(H5Pset_fill_value(dc, H5T_NATIVE_FLOAT, &fillval) < 0) goto error; /* Set up to use scaleoffset filter, decimal scale factor is 3, @@ -4803,7 +4579,7 @@ test_scaleoffset_float_2(hid_t file) /* Initialize data of hyperslab */ for(j = 0; j < (size_t)size[1]; j++) { - orig_data[0][j] = (float)((HDrandom() % 100000) / (float)1000.0); + orig_data[0][j] = (float)((HDrandom() % 100000) / 1000.0F); /* even-numbered values are negtive */ if((j+1)%2 == 0) @@ -4811,10 +4587,6 @@ test_scaleoffset_float_2(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test scaleoffset by setting up a chunked dataset and writing @@ -4823,15 +4595,10 @@ test_scaleoffset_float_2(hid_t file) */ TESTING(" scaleoffset float with fill value, D-scaling (write)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* only data in the hyperslab will be written, other value should be fill value */ if(H5Dwrite(dataset, H5T_NATIVE_FLOAT, mspace, mspace, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -4839,14 +4606,13 @@ test_scaleoffset_float_2(hid_t file) */ TESTING(" scaleoffset float with fill value, D-scaling (read)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_FLOAT, mspace, mspace, H5P_DEFAULT, new_data) < 0) goto error; /* Check that the values read are the same as the values written */ for(j=0; j<(size_t)size[1]; j++) { - if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0, -3.0)) { + if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0F, -3.0F)) { H5_FAILED(); printf(" Read different values than written.\n"); printf(" At index %lu,%lu\n", (unsigned long)0, (unsigned long)j); @@ -4863,10 +4629,7 @@ test_scaleoffset_float_2(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -4891,19 +4654,15 @@ error: static herr_t test_scaleoffset_double(hid_t file) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset, datatype, space, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2,5}; double orig_data[2][5]; double new_data[2][5]; size_t i, j; -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= " Scaleoffset is not enabled."; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ TESTING(" scaleoffset double without fill value, D-scaling (setup)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET + datatype = H5Tcopy(H5T_NATIVE_DOUBLE); /* Set order of dataset datatype */ @@ -4931,7 +4690,7 @@ test_scaleoffset_double(hid_t file) /* Initialize data */ for(i= 0;i< (size_t)size[0]; i++) for(j = 0; j < (size_t)size[1]; j++) { - orig_data[i][j] = (HDrandom() % 10000000) / 10000000.0; + orig_data[i][j] = (HDrandom() % 10000000) / 10000000.0F; /* even-numbered values are negtive */ if((i*size[1]+j+1)%2 == 0) @@ -4939,10 +4698,6 @@ test_scaleoffset_double(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test scaleoffset by setting up a chunked dataset and writing @@ -4951,14 +4706,9 @@ test_scaleoffset_double(hid_t file) */ TESTING(" scaleoffset double without fill value, D-scaling (write)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET if(H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -4966,7 +4716,6 @@ test_scaleoffset_double(hid_t file) */ TESTING(" scaleoffset double without fill value, D-scaling (read)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, new_data) < 0) goto error; @@ -4974,7 +4723,7 @@ test_scaleoffset_double(hid_t file) /* Check that the values read are the same as the values written */ for(i=0; i<(size_t)size[0]; i++) { for(j=0; j<(size_t)size[1]; j++) { - if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0, -7.0)) { + if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0F, -7.0F)) { H5_FAILED(); printf(" Read different values than written.\n"); printf(" At index %lu,%lu\n", (unsigned long)i, (unsigned long)j); @@ -4993,10 +4742,7 @@ test_scaleoffset_double(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -5021,7 +4767,6 @@ error: static herr_t test_scaleoffset_double_2(hid_t file) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset, datatype, space, mspace, dc; const hsize_t size[2] = {2, 5}; const hsize_t chunk_size[2] = {2,5}; @@ -5033,12 +4778,9 @@ test_scaleoffset_double_2(hid_t file) hsize_t count[2]; /* Block count */ hsize_t block[2]; /* Block sizes */ size_t j; -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= " Scaleoffset is not enabled."; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ TESTING(" scaleoffset double with fill value, D-scaling (setup)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET + datatype = H5Tcopy(H5T_NATIVE_DOUBLE); /* Set order of dataset datatype */ @@ -5051,7 +4793,7 @@ test_scaleoffset_double_2(hid_t file) if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; /* Set fill value */ - fillval = 10000.0; + fillval = 10000.0F; if(H5Pset_fill_value(dc, H5T_NATIVE_DOUBLE, &fillval) < 0) goto error; /* Set up to use scaleoffset filter, decimal scale factor is 7, @@ -5079,7 +4821,7 @@ test_scaleoffset_double_2(hid_t file) /* Initialize data of hyperslab */ for(j = 0; j < (size_t)size[1]; j++) { - orig_data[0][j] = (HDrandom() % 10000000) / 10000000.0; + orig_data[0][j] = (HDrandom() % 10000000) / 10000000.0F; /* even-numbered values are negtive */ if((j+1)%2 == 0) @@ -5087,10 +4829,6 @@ test_scaleoffset_double_2(hid_t file) } PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 1: Test scaleoffset by setting up a chunked dataset and writing @@ -5099,15 +4837,10 @@ test_scaleoffset_double_2(hid_t file) */ TESTING(" scaleoffset double with fill value, D-scaling (write)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* only data in the hyperslab will be written, other value should be fill value */ if(H5Dwrite(dataset, H5T_NATIVE_DOUBLE, mspace, mspace, H5P_DEFAULT, orig_data) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif /*---------------------------------------------------------------------- * STEP 2: Try to read the data we just wrote. @@ -5115,14 +4848,13 @@ test_scaleoffset_double_2(hid_t file) */ TESTING(" scaleoffset double with fill value, D-scaling (read)"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET /* Read the dataset back */ if(H5Dread(dataset, H5T_NATIVE_DOUBLE, mspace, mspace, H5P_DEFAULT, new_data) < 0) goto error; /* Check that the values read are the same as the values written */ for(j=0; j<(size_t)size[1]; j++) { - if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0, -7.0)) { + if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0F, -7.0F)) { H5_FAILED(); printf(" Read different values than written.\n"); printf(" At index %lu,%lu\n", (unsigned long)0, (unsigned long)j); @@ -5140,10 +4872,7 @@ test_scaleoffset_double_2(hid_t file) if(H5Dclose(dataset) < 0) goto error; PASSED(); -#else - SKIPPED(); - puts(not_supported); -#endif + return 0; error: return -1; @@ -5892,11 +5621,11 @@ test_set_local(hid_t fapl) h5_fixname(FILENAME[5], fapl, filename, sizeof filename); /* Initialize the integer & floating-point dataset */ - n=1.0; + n=1.0F; for(i = 0; i < DSET_DIM1; i++) for(j = 0; j < DSET_DIM2; j++) { points[i][j] = (int)n++; - points_dbl[i][j] = (double)1.5*n++; + points_dbl[i][j] = (double)1.5F*n++; } /* Open file */ @@ -6090,7 +5819,7 @@ test_set_local(hid_t fapl) for(j=0; j<dims[1]; j++) { /* If the difference between two values is greater than 0.001%, they're * considered not equal. */ - if(!DBL_REL_EQUAL(points_dbl[i][j],check_dbl[i][j],0.00001)) { + if(!DBL_REL_EQUAL(points_dbl[i][j],check_dbl[i][j],0.00001F)) { H5_FAILED(); printf(" Line %d: Read different values than written.\n",__LINE__); printf(" At index %lu,%lu\n", (unsigned long)(i), (unsigned long)(j)); @@ -6371,7 +6100,7 @@ test_filter_delete(hid_t file) TESTING("filter deletion"); -#if defined H5_HAVE_FILTER_DEFLATE && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 +#ifdef H5_HAVE_FILTER_DEFLATE /* create the data space */ if((sid = H5Screate_simple(2, dims, NULL)) < 0) goto error; @@ -6576,7 +6305,6 @@ test_filters_endianess(void) TESTING("filters with big-endian/little-endian data"); -#if defined H5_HAVE_FILTER_FLETCHER32 /*------------------------------------------------------------------------- * step 1: open a file written on a little-endian machine *------------------------------------------------------------------------- @@ -6609,9 +6337,7 @@ test_filters_endianess(void) if(H5Fclose(fid) < 0) FAIL_STACK_ERROR PASSED(); -#else - SKIPPED(); -#endif + return 0; error: @@ -7416,7 +7142,7 @@ test_chunk_cache(hid_t fapl) /* Set new rdcc settings on fapl */ nslots_2 = nslots_1 * 2; nbytes_2 = nbytes_1 * 2; - w0_2 = w0_1 / 2.; + w0_2 = w0_1 / 2.0F; if (H5Pset_cache(fapl_local, 0, nslots_2, nbytes_2, w0_2) < 0) FAIL_STACK_ERROR h5_fixname(FILENAME[8], fapl, filename, sizeof filename); @@ -7611,7 +7337,7 @@ test_big_chunks_bypass_cache(hid_t fapl) /* Define cache size to be smaller than chunk size */ rdcc_nelmts = BYPASS_CHUNK_DIM/5; rdcc_nbytes = sizeof(int)*BYPASS_CHUNK_DIM/5; - if(H5Pset_cache(fapl_local, 0, rdcc_nelmts, rdcc_nbytes, (double)0.0) < 0) FAIL_STACK_ERROR + if(H5Pset_cache(fapl_local, 0, rdcc_nelmts, rdcc_nbytes, 0.0F) < 0) FAIL_STACK_ERROR /* Create file */ if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_local)) < 0) FAIL_STACK_ERROR diff --git a/test/dt_arith.c b/test/dt_arith.c index a93d1b8..c5b72d4 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -28,7 +28,7 @@ #define NTESTELEM 10000 /* Epsilon for floating-point comparisons */ -#define FP_EPSILON 0.000001 +#define FP_EPSILON 0.000001F /* * Offset from alinged memory returned by malloc(). This can be used to test @@ -538,7 +538,7 @@ some_dummy_func(float x) { char s[128]; - HDsnprintf(s, sizeof(s), "%g", x); + HDsnprintf(s, sizeof(s), "%g", (double)x); } @@ -832,7 +832,7 @@ static int test_particular_fp_integer(void) printf(" %02x", saved_buf2[ENDIAN(src_size2, j, endian)]); HDmemcpy(&x, saved_buf2, src_size2); - printf(" %29.20e\n", x); + printf(" %29.20e\n", (double)x); printf(" dst = "); for (j=0; j<dst_size2; j++) @@ -2720,7 +2720,7 @@ my_isnan(dtype_t type, void *val) float x; HDmemcpy(&x, val, sizeof(float)); - HDsnprintf(s, sizeof(s), "%g", x); + HDsnprintf(s, sizeof(s), "%g", (double)x); } else if (FLT_DOUBLE==type) { double x; @@ -3294,12 +3294,11 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) check_mant[1] = HDfrexpl(hw_ld, check_expo+1); #endif } -#ifdef H5_CONVERT_DENORMAL_FLOAT /* Special check for denormalized values */ if(check_expo[0]<(-(int)dst_ebias) || check_expo[1]<(-(int)dst_ebias)) { int expo_diff=check_expo[0]-check_expo[1]; int valid_bits=(int)((dst_ebias+dst_msize)+MIN(check_expo[0],check_expo[1]))-1; - double epsilon=1.0; + double epsilon=1.0F; /* Re-scale the mantissas based on any exponent difference */ if(expo_diff!=0) @@ -3317,58 +3316,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) HDfabs(check_mant[0]-check_mant[1])<FP_EPSILON) continue; } /* end else */ -#else /* H5_CONVERT_DENORMAL_FLOAT */ - { - hssize_t expo; /*exponent */ - uint8_t tmp[32]; - - assert(src_size<=sizeof(tmp)); - if(sendian==H5T_ORDER_LE) - HDmemcpy(tmp,&saved[j*src_size],src_size); - else if(sendian==H5T_ORDER_BE) - for (k=0; k<src_size; k++) - tmp[k]=saved[j*src_size+(src_size-(k+1))]; - else { - for (k = 0; k < src_size; k += 4) { - tmp[k] = saved[j*src_size+(src_size-2)-k]; - tmp[k+1] = saved[j*src_size+(src_size-1)-k]; - - tmp[(src_size-2)-k] = saved[j*src_size+k]; - tmp[(src_size-1)-k] = saved[j*src_size+k+1]; - } - } - - expo = H5T__bit_get_d(tmp, src_epos, src_esize); - if(expo==0) - continue; /* Denormalized floating-point value detected */ - else { - assert(dst_size<=sizeof(tmp)); - if(sendian==H5T_ORDER_LE) - HDmemcpy(tmp,&buf[j*dst_size],dst_size); - else if(sendian==H5T_ORDER_BE) - for (k=0; k<dst_size; k++) - tmp[k]=buf[j*dst_size+(dst_size-(k+1))]; - else { - for (k = 0; k < src_size; k += 4) { - tmp[k] = buf[j*dst_size+(dst_size-2)-k]; - tmp[k+1] = buf[j*dst_size+(dst_size-1)-k]; - - tmp[(dst_size-2)-k] = buf[j*dst_size+k]; - tmp[(dst_size-1)-k] = buf[j*dst_size+k+1]; - } - } - - expo = H5T__bit_get_d(tmp, dst_epos, dst_esize); - if(expo==0) - continue; /* Denormalized floating-point value detected */ - else { - if (check_expo[0]==check_expo[1] && - HDfabs(check_mant[0]-check_mant[1])<FP_EPSILON) - continue; - } /* end else */ - } /* end else */ - } -#endif /* H5_CONVERT_DENORMAL_FLOAT */ } if (0==fails_this_test++) { @@ -3387,7 +3334,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) if (FLT_FLOAT==src_type) { float x; HDmemcpy(&x, &saved[j*src_size], sizeof(float)); - printf(" %29.20e\n", x); + printf(" %29.20e\n", (double)x); } else if (FLT_DOUBLE==src_type) { double x; HDmemcpy(&x, &saved[j*src_size], sizeof(double)); @@ -3407,7 +3354,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) if (FLT_FLOAT==dst_type) { float x; HDmemcpy(&x, &buf[j*dst_size], sizeof(float)); - printf(" %29.20e\n", x); + printf(" %29.20e\n", (double)x); } else if (FLT_DOUBLE==dst_type) { double x; HDmemcpy(&x, &buf[j*dst_size], sizeof(double)); @@ -3425,7 +3372,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) printf(" %02x", hw[ENDIAN(dst_size,k,dendian)]); printf("%*s", (int)(3*MAX(0, (ssize_t)src_size-(ssize_t)dst_size)), ""); if (FLT_FLOAT==dst_type) - printf(" %29.20e\n", hw_f); + printf(" %29.20e\n", (double)hw_f); else if (FLT_DOUBLE==dst_type) printf(" %29.20e\n", hw_d); #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE @@ -3877,12 +3824,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) HDmemcpy(aligned, saved+j*sizeof(long long), sizeof(long long)); hw_float = (float)(*((long long*)aligned)); break; -#ifdef H5_ULLONG_TO_FP_CAST_WORKS case INT_ULLONG: HDmemcpy(aligned, saved+j*sizeof(unsigned long long), sizeof(unsigned long long)); hw_float = (float)(*((unsigned long long*)aligned)); break; -#endif /* H5_ULLONG_TO_FP_CAST_WORKS */ case FLT_FLOAT: case FLT_DOUBLE: case FLT_LDOUBLE: @@ -3930,12 +3875,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) HDmemcpy(aligned, saved+j*sizeof(long long), sizeof(long long)); hw_double = (double)(*((long long*)aligned)); break; -#ifdef H5_ULLONG_TO_FP_CAST_WORKS case INT_ULLONG: HDmemcpy(aligned, saved+j*sizeof(unsigned long long), sizeof(unsigned long long)); hw_double = (double)(*((unsigned long long*)aligned)); break; -#endif /* H5_ULLONG_TO_FP_CAST_WORKS */ case FLT_FLOAT: case FLT_DOUBLE: case FLT_LDOUBLE: @@ -3984,12 +3927,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) HDmemcpy(aligned, saved+j*sizeof(long long), sizeof(long long)); hw_ldouble = (long double)(*((long long*)aligned)); break; -#ifdef H5_ULLONG_TO_FP_CAST_WORKS case INT_ULLONG: HDmemcpy(aligned, saved+j*sizeof(unsigned long long), sizeof(unsigned long long)); hw_ldouble = (long double)(*((unsigned long long*)aligned)); break; -#endif /* H5_ULLONG_TO_FP_CAST_WORKS */ case FLT_FLOAT: case FLT_DOUBLE: case FLT_LDOUBLE: @@ -4451,67 +4392,6 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) } } } -/* On some machines (notably the SGI and Solaris 64-bit machines) unsigned long -* values are not converted to float or double values correctly, they are -* consistently off by the lowest bit being rounded oppositely to our -* software conversion routines output. So, on those machines, we allow -* the converted value to be +/- 1 from the machine's value. -QAK -*/ -#ifndef H5_SW_ULONG_TO_FP_BOTTOM_BIT_WORKS - if(dst_size==sizeof(unsigned)) { - unsigned tmp_s, tmp_h; - HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned)); - HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned)); - if((tmp_s+1)==tmp_h || (tmp_s-1)==tmp_h) - continue; /*no error*/ - } /* end if */ - else if (dst_size==sizeof(unsigned long)) { - unsigned long tmp_s, tmp_h; - HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned long)); - HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned long)); - if((tmp_s+1)==tmp_h || (tmp_s-1)==tmp_h) - continue; /*no error*/ - } /* end if */ - else if (dst_size==sizeof(unsigned long long)) { - unsigned long long tmp_s, tmp_h; - HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned long long)); - HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned long long)); - if((tmp_s+1)==tmp_h || (tmp_s-1)==tmp_h) - continue; /*no error*/ - } /* end if */ -#endif /* end H5_ULONG_FP_BOTTOM_BIT_WORKS */ - -/* For PGI compiler on Linux, during conversion from 'float' or 'double' to -* 'unsigned long long', round-up happens when the fraction of float-point -* value is greater than 0.5. So we allow the converted value to be off by 1. -*/ -#ifndef H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS - if((src_type==FLT_FLOAT || src_type==FLT_DOUBLE) && dst_type==INT_ULLONG) { - unsigned long long tmp_s, tmp_h; - HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned long long)); - HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned long long)); - if((tmp_s+1)==tmp_h) - continue; /*no error*/ - } -#endif /*end H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS*/ - -/* For GNU compilers on FreeBSD(sleipnir), during conversion from 'unsigned long long' -* to 'long double', the last 2 bytes of mantissa are lost. But this loss seems -* acceptable. We allow it to go through instead of fail it. Sometimes, there's roundup -* to the 3rd last byte of mantissa. So we only try to compare all but the last 3 bytes. -*/ -#ifndef H5_ULLONG_TO_LDOUBLE_PRECISION -#if H5_SIZEOF_LONG_DOUBLE !=0 - if(src_type==INT_ULLONG && dst_type==FLT_LDOUBLE) { - long double tmp_s, tmp_h; - HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(long double)); - HDmemcpy(&tmp_h,&hw[0],sizeof(long double)); - /*Don't compare the last 3 bytes of mantissa*/ - if(!HDmemcmp(&tmp_s+4, &tmp_h+4, sizeof(long double)-4)) - continue; /*no error*/ - } -#endif -#endif /*end H5_ULLONG_TO_LDOUBLE_PRECISION*/ /* Print errors */ if (0==fails_this_test++) { @@ -4570,7 +4450,7 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) break; case FLT_FLOAT: HDmemcpy(aligned, saved+j*sizeof(float), sizeof(float)); - printf(" %29f\n", *((float*)aligned)); + printf(" %29f\n", (double)*((float*)aligned)); break; case FLT_DOUBLE: HDmemcpy(aligned, saved+j*sizeof(double), sizeof(double)); @@ -4635,7 +4515,7 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) break; case FLT_FLOAT: HDmemcpy(aligned, buf+j*sizeof(float), sizeof(float)); - printf(" %29f\n", *((float*)aligned)); + printf(" %29f\n", (double)*((float*)aligned)); break; case FLT_DOUBLE: HDmemcpy(aligned, buf+j*sizeof(double), sizeof(double)); @@ -4689,7 +4569,7 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) printf(" %29"H5_PRINTF_LL_WIDTH"u\n", *((unsigned long long*)hw)); break; case FLT_FLOAT: - printf(" %29f\n", *((float*)hw)); + printf(" %29f\n", (double)*((float*)hw)); break; case FLT_DOUBLE: printf(" %29f\n", *((double*)hw)); @@ -5112,9 +4992,7 @@ run_int_fp_conv(const char *name) nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LONG, H5T_NATIVE_FLOAT); nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LONG, H5T_NATIVE_DOUBLE); -#if H5_ULONG_TO_FLOAT_ACCURATE nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULONG, H5T_NATIVE_FLOAT); -#endif nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULONG, H5T_NATIVE_DOUBLE); #endif @@ -5122,29 +5000,10 @@ run_int_fp_conv(const char *name) nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LLONG, H5T_NATIVE_FLOAT); nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LLONG, H5T_NATIVE_DOUBLE); -#ifdef H5_ULLONG_TO_FP_CAST_WORKS nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_FLOAT); nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_DOUBLE); -#else /* H5_ULLONG_TO_FP_CAST_WORKS */ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "unsigned long long", "float"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler not handling conversion."); - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "unsigned long long", "double"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler not handling conversion."); - } -#endif /* H5_ULLONG_TO_FP_CAST_WORKS */ #endif -#if H5_INTEGER_TO_LDOUBLE_ACCURATE #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_SCHAR, H5T_NATIVE_LDOUBLE); nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_UCHAR, H5T_NATIVE_LDOUBLE); @@ -5173,51 +5032,11 @@ run_int_fp_conv(const char *name) #endif #endif /* H5_SIZEOF_LONG!=H5_SIZEOF_INT */ #if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG -#if H5_LLONG_TO_LDOUBLE_CORRECT nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LLONG, H5T_NATIVE_LDOUBLE); -#else /* H5_LLONG_TO_LDOUBLE_CORRECT */ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long long", "long double"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler error in handling conversion."); - } -#endif /* H5_LLONG_TO_LDOUBLE_CORRECT */ -#if H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_LDOUBLE); -#else /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "unsigned long long", "long double"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler not handling conversion."); - } -#endif /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ -#endif #endif -#else /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "all integers", "long double"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE !=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); #endif - } -#endif /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/ - return nerrors; } @@ -5240,7 +5059,6 @@ static int run_fp_int_conv(const char *name) { int nerrors = 0; -#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS int test_values; #ifdef H5_VMS @@ -5277,62 +5095,23 @@ run_fp_int_conv(const char *name) #if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG if(!strcmp(name, "hw")) { /* Hardware conversion */ - /* Windows .NET 2003 doesn't work for hardware conversion of this case. - * .NET should define this macro H5_HW_FP_TO_LLONG_NOT_WORKS. */ -#ifndef H5_HW_FP_TO_LLONG_NOT_WORKS nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG); -#endif /*H5_HW_FP_TO_LLONG_NOT_WORKS*/ } else { /* Software conversion */ nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG); } -#ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_ULLONG); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_ULLONG); -#else /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "float", "unsigned long long"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to hardware conversion error."); - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "double", "unsigned long long"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to hardware conversion error."); - } -#endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/ #endif -#if H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SCHAR); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UCHAR); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SHORT); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_USHORT); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_INT); -#if H5_LDOUBLE_TO_UINT_ACCURATE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UINT); -#else /*H5_LDOUBLE_TO_UINT_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "unsigned int"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - } -#endif /*H5_LDOUBLE_TO_UINT_ACCURATE*/ #if H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0 #ifndef H5_LDOUBLE_TO_LONG_SPECIAL nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LONG); @@ -5355,77 +5134,13 @@ run_fp_int_conv(const char *name) #endif /*H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0 */ #if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG && H5_SIZEOF_LONG_DOUBLE!=0 -#ifdef H5_LDOUBLE_TO_LLONG_ACCURATE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LLONG); -#else /*H5_LDOUBLE_TO_LLONG_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "long long"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - } -#endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/ -#if defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE) nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_ULLONG); -#else /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "unsigned long long"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); #endif - } -#endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/ -#endif -#endif -#else /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "all integers"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); #endif - } -#endif /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ #ifndef H5_VMS } /* end for */ #endif /* H5_VMS */ -#else /* H5_FP_TO_INTEGER_OVERFLOW_WORKS */ -/* For Cray X1, the compiler generates floating exception when the - * conversion overflows. So disable all of the conversions from - * floating-point numbers to integers. - */ - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "all floating-point numbers", "all integers"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disbaled long double."); -#endif -#endif /* H5_FP_TO_INTEGER_OVERFLOW_WORKS */ return nerrors; } diff --git a/test/dtransform.c b/test/dtransform.c index 9c78043..4adbaf5 100644 --- a/test/dtransform.c +++ b/test/dtransform.c @@ -17,7 +17,7 @@ #define ROWS 12 #define COLS 18 -#define FLOAT_TOL 0.0001 +#define FLOAT_TOL 0.0001F static int init_test(hid_t file_id); static int test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy); @@ -297,20 +297,8 @@ int main(void) TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0); TEST_TYPE_CONTIG(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1); TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0); - -#ifdef H5_LLONG_TO_FP_CAST_WORKS TEST_TYPE_CONTIG(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1); -#else - TESTING("contiguous, with type conversion (float->llong)") - SKIPPED() -#endif - -#ifdef H5_ULLONG_TO_FP_CAST_WORKS TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0); -#else - TESTING("contiguous, with type conversion (float->ullong)") - SKIPPED() -#endif TEST_TYPE_CONTIG(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1); TEST_TYPE_CONTIG(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1); #if H5_SIZEOF_LONG_DOUBLE!=0 @@ -326,19 +314,8 @@ int main(void) TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0); TEST_TYPE_CHUNK(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1); TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0); -#ifdef H5_LLONG_TO_FP_CAST_WORKS TEST_TYPE_CHUNK(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1); -#else - TESTING("chunked, with type conversion (float->llong)") - SKIPPED() -#endif - -#ifdef H5_ULLONG_TO_FP_CAST_WORKS TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0); -#else - TESTING("chunked, with type conversion (float->ullong)") - SKIPPED() -#endif TEST_TYPE_CHUNK(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1); TEST_TYPE_CHUNK(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1); #if H5_SIZEOF_LONG_DOUBLE!=0 diff --git a/test/fheap.c b/test/fheap.c index 32c8f05..6284449 100644 --- a/test/fheap.c +++ b/test/fheap.c @@ -16061,9 +16061,9 @@ test_write(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tparam) /* Change size of data to write */ if(u < 20) - obj_size = (size_t)(obj_size * 1.3); + obj_size = (size_t)(obj_size * 1.3F); else - obj_size = (size_t)(obj_size / 1.3); + obj_size = (size_t)(obj_size / 1.3F); } /* end for */ /* Close the fractal heap */ @@ -16110,9 +16110,9 @@ test_write(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tparam) /* Change size of data to write */ if(u < 20) - obj_size = (size_t)(obj_size * 1.3); + obj_size = (size_t)(obj_size * 1.3F); else - obj_size = (size_t)(obj_size / 1.3); + obj_size = (size_t)(obj_size / 1.3F); } /* end for */ /* Close the fractal heap */ diff --git a/test/fillval.c b/test/fillval.c index 459620d..e7ad521 100644 --- a/test/fillval.c +++ b/test/fillval.c @@ -627,7 +627,7 @@ test_create(hid_t fapl, const char *base_name, H5D_layout_t layout) H5_FAILED(); puts(" Got wrong fill value"); printf(" Got rd_c.a=%f, rd_c.y=%f and rd_c.x=%d, rd_c.z=%c\n", - rd_c.a, rd_c.y, rd_c.x, rd_c.z); + (double)rd_c.a, rd_c.y, rd_c.x, rd_c.z); } if(H5Dclose(dset9) < 0) goto error; if(H5Pclose(dcpl) < 0) goto error; @@ -700,7 +700,7 @@ test_create(hid_t fapl, const char *base_name, H5D_layout_t layout) H5_FAILED(); puts(" Got wrong fill value"); printf(" Got rd_c.a=%f, rd_c.y=%f and rd_c.x=%d, rd_c.z=%c\n", - rd_c.a, rd_c.y, rd_c.x, rd_c.z); + (double)rd_c.a, rd_c.y, rd_c.x, rd_c.z); } if(H5Dclose(dset8) < 0) goto error; if(H5Pclose(dcpl) < 0) goto error; @@ -820,8 +820,8 @@ test_rdwr_cases(hid_t file, hid_t dcpl, const char *dname, void *_fillval, "Fill value: %f, %d, %f, %c\n", hs_offset[0], hs_offset[1], hs_offset[2], hs_offset[3], - hs_offset[4], rd_c.a, rd_c.x, rd_c.y, rd_c.z, - fill_c.a, fill_c.x, fill_c.y, fill_c.z); + hs_offset[4], (double)rd_c.a, rd_c.x, rd_c.y, rd_c.z, + (double)fill_c.a, fill_c.x, fill_c.y, fill_c.z); goto error; } } @@ -888,8 +888,8 @@ test_rdwr_cases(hid_t file, hid_t dcpl, const char *dname, void *_fillval, hs_offset[0], hs_offset[1], hs_offset[2], hs_offset[3], hs_offset[4], - buf_c[u].a, buf_c[u].x, buf_c[u].y, buf_c[u].z, - fill_c.a, fill_c.x, fill_c.y, fill_c.z); + (double)buf_c[u].a, buf_c[u].x, buf_c[u].y, buf_c[u].z, + (double)fill_c.a, fill_c.x, fill_c.y, fill_c.z); goto error; } /* end if */ } /* end for */ @@ -909,9 +909,9 @@ test_rdwr_cases(hid_t file, hid_t dcpl, const char *dname, void *_fillval, else if(datatype == H5T_COMPOUND) { HDmemset(buf_c, 0, ((size_t)nelmts * sizeof(comp_datatype))); for(u = 0; u < nelmts; u++) { - buf_c[u].a = (float)1111.11; + buf_c[u].a = 1111.11F; buf_c[u].x = 2222; - buf_c[u].y = 3333.3333; + buf_c[u].y = 3333.3333F; buf_c[u].z = 'd'; } if(H5Dwrite(dset2, ctype_id, mspace, fspace, H5P_DEFAULT, buf_c) < 0) @@ -1002,7 +1002,7 @@ test_rdwr_cases(hid_t file, hid_t dcpl, const char *dname, void *_fillval, (long)hs_offset[0], (long)hs_offset[1], (long)hs_offset[2], (long)hs_offset[3], (long)hs_offset[4], - rd_c.a, rd_c.x, rd_c.y, rd_c.z, should_be_c.a, + (double)rd_c.a, rd_c.x, rd_c.y, rd_c.z, (double)should_be_c.a, should_be_c.x,should_be_c.y,should_be_c.z); goto error; } @@ -1021,7 +1021,7 @@ test_rdwr_cases(hid_t file, hid_t dcpl, const char *dname, void *_fillval, (long)hs_offset[0], (long)hs_offset[1], (long)hs_offset[2], (long)hs_offset[3], (long)hs_offset[4], - rd_c.a, rd_c.x, rd_c.y, rd_c.z, should_be_c.a, + (double)rd_c.a, rd_c.x, rd_c.y, rd_c.z, (double)should_be_c.a, should_be_c.x,should_be_c.y,should_be_c.z); goto error; } @@ -1144,7 +1144,7 @@ test_rdwr(hid_t fapl, const char *base_name, H5D_layout_t layout) * as compound type */ if(H5Pset_fill_time(dcpl, H5D_FILL_TIME_ALLOC) < 0) goto error; HDmemset(&fill_ctype, 0, sizeof(fill_ctype)); - fill_ctype.y = 4444.4444; + fill_ctype.y = 4444.4444F; if(H5Pset_fill_value(dcpl, ctype_id, &fill_ctype) < 0) goto error; nerrors += test_rdwr_cases(file, dcpl, "dset11", &fill_ctype, H5D_FILL_TIME_ALLOC, layout, H5T_COMPOUND, ctype_id); @@ -1197,7 +1197,7 @@ test_rdwr(hid_t fapl, const char *base_name, H5D_layout_t layout) * as compound type */ if(H5Pset_fill_time(dcpl, H5D_FILL_TIME_ALLOC) < 0) goto error; HDmemset(&fill_ctype, 0, sizeof(fill_ctype)); - fill_ctype.y = 4444.4444; + fill_ctype.y = 4444.4444F; if(H5Pset_fill_value(dcpl, ctype_id, &fill_ctype) < 0) goto error; nerrors += test_rdwr_cases(file, dcpl, "dset12", &fill_ctype, H5D_FILL_TIME_ALLOC, layout, H5T_COMPOUND, ctype_id); diff --git a/test/flush2.c b/test/flush2.c index 06dd086..28ce41e 100644 --- a/test/flush2.c +++ b/test/flush2.c @@ -73,13 +73,13 @@ check_dset(hid_t file, const char* name) * 1998-11-06 ptl */ error = fabs(the_data[i][j] - (double)(hssize_t)i / ((hssize_t)j + 1)); - if(error > 0.0001) { - H5_FAILED(); - printf(" dset[%lu][%lu] = %g\n", - (unsigned long)i, (unsigned long)j, the_data[i][j]); - printf(" should be %g\n", - (double)(hssize_t)i/(hssize_t)(j+1)); - goto error; + if(error > 0.0001F) { + H5_FAILED(); + printf(" dset[%lu][%lu] = %g\n", + (unsigned long)i, (unsigned long)j, the_data[i][j]); + printf(" should be %g\n", + (double)(hssize_t)i/(hssize_t)(j+1)); + goto error; } } if(H5Dclose(dset) < 0) goto error; @@ -186,7 +186,7 @@ main(void) PASSED() else { -#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_ +#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS) SKIPPED(); puts(" DLL will flush the file even when calling _exit, skip this test temporarily"); #elif defined H5_VMS @@ -209,7 +209,7 @@ main(void) PASSED() else { -#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_ +#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS) SKIPPED(); puts(" DLL will flush the file even when calling _exit, skip this test temporarily"); #elif defined H5_VMS diff --git a/test/gen_cross.c b/test/gen_cross.c index 3b0a56f..1c73016 100644 --- a/test/gen_cross.c +++ b/test/gen_cross.c @@ -175,7 +175,6 @@ create_normal_dset(hid_t fid, hid_t fsid, hid_t msid) return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -183,7 +182,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -205,7 +203,6 @@ error: int create_scale_offset_dsets_float(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset; /* dataset handles */ hid_t dcpl; float data[NX][NY]; /* data to write */ @@ -267,15 +264,8 @@ create_scale_offset_dsets_float(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -283,7 +273,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -305,7 +294,6 @@ error: int create_scale_offset_dsets_double(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset; /* dataset handles */ hid_t dcpl; double data[NX][NY]; /* data to write */ @@ -367,15 +355,8 @@ create_scale_offset_dsets_double(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -383,7 +364,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -405,7 +385,6 @@ error: int create_scale_offset_dsets_char(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset; /* dataset handles */ hid_t dcpl; char data[NX][NY]; /* data to write */ @@ -475,15 +454,8 @@ create_scale_offset_dsets_char(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -491,7 +463,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -513,7 +484,6 @@ error: int create_scale_offset_dsets_short(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset; /* dataset handles */ hid_t dcpl; short data[NX][NY]; /* data to write */ @@ -583,15 +553,8 @@ create_scale_offset_dsets_short(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -599,7 +562,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -621,7 +583,6 @@ error: int create_scale_offset_dsets_int(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset; /* dataset handles */ hid_t dcpl; int data[NX][NY]; /* data to write */ @@ -691,15 +652,8 @@ create_scale_offset_dsets_int(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -707,7 +661,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -730,7 +683,6 @@ error: int create_scale_offset_dsets_long_long(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SCALEOFFSET hid_t dataset; /* dataset handles */ hid_t dcpl; long long data[NX][NY]; /* data to write */ @@ -800,15 +752,8 @@ create_scale_offset_dsets_long_long(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SCALEOFFSET */ - const char *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - return 0; -#ifdef H5_HAVE_FILTER_SCALEOFFSET error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -816,7 +761,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ } @@ -838,7 +782,6 @@ error: int create_fletcher_dsets_float(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_FLETCHER32 hid_t dataset; /* dataset handles */ hid_t dcpl; float data[NX][NY]; /* data to write */ @@ -900,15 +843,8 @@ create_fletcher_dsets_float(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_FLETCHER32 */ - const char *not_supported= "Fletcher filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_FLETCHER32 */ - return 0; -#ifdef H5_HAVE_FILTER_FLETCHER32 error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -916,7 +852,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_FLETCHER32 */ } @@ -1131,7 +1066,6 @@ error: int create_shuffle_dsets_float(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_SHUFFLE hid_t dataset; /* dataset handles */ hid_t dcpl; float data[NX][NY]; /* data to write */ @@ -1193,15 +1127,8 @@ create_shuffle_dsets_float(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_SHUFFLE */ - const char *not_supported= "Shuffle filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_SHUFFLE */ - return 0; -#ifdef H5_HAVE_FILTER_SHUFFLE error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -1209,7 +1136,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_SHUFFLE */ } @@ -1231,7 +1157,6 @@ error: int create_nbit_dsets_float(hid_t fid, hid_t fsid, hid_t msid) { -#ifdef H5_HAVE_FILTER_NBIT hid_t dataset; /* dataset handles */ hid_t datatype; hid_t dcpl; @@ -1314,15 +1239,8 @@ create_nbit_dsets_float(hid_t fid, hid_t fsid, hid_t msid) if(H5Pclose(dcpl) < 0) TEST_ERROR -#else /* H5_HAVE_FILTER_NBIT */ - const char *not_supported= "Nbit filter is not enabled. Can't create the dataset."; - - puts(not_supported); -#endif /* H5_HAVE_FILTER_NBIT */ - return 0; -#ifdef H5_HAVE_FILTER_NBIT error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -1330,7 +1248,6 @@ error: } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_NBIT */ } @@ -1451,3 +1368,4 @@ main (void) return 0; } + diff --git a/test/gen_filespace.c b/test/gen_filespace.c index 7ee2a7a..e0c42e8 100644 --- a/test/gen_filespace.c +++ b/test/gen_filespace.c @@ -42,7 +42,8 @@ static void gen_file(void) hid_t dataset, space; hsize_t dim[1]; int data[NUM_ELMTS]; - unsigned i, j; /* Local index variable */ + size_t j; /* Local index variable */ + int i; /* Local index variable */ H5F_file_space_type_t fs_type; /* File space handling strategy */ for(j = 0, fs_type = H5F_FILE_SPACE_ALL_PERSIST; j < NELMTS(FILENAMES); j++, fs_type = (H5F_file_space_type_t)(fs_type + 1)) { diff --git a/test/gen_filters.c b/test/gen_filters.c index 58400d5..b44339d 100644 --- a/test/gen_filters.c +++ b/test/gen_filters.c @@ -48,7 +48,6 @@ static size_t filter_bogus(unsigned int flags, size_t cd_nelmts, static herr_t test_filters_endianess(void) { -#if defined H5_HAVE_FILTER_FLETCHER32 hid_t fid = -1; /* file ID */ hid_t dsid = -1; /* dataset ID */ hid_t sid = -1; /* dataspace ID */ @@ -85,10 +84,8 @@ test_filters_endianess(void) if(H5Sclose(sid) < 0) goto error; if(H5Fclose(fid) < 0) goto error; -#endif /* H5_HAVE_FILTER_FLETCHER32 */ return 0; -#if defined H5_HAVE_FILTER_FLETCHER32 error: H5E_BEGIN_TRY { H5Pclose(dcpl); @@ -97,7 +94,6 @@ error: H5Fclose(fid); } H5E_END_TRY; return -1; -#endif /* H5_HAVE_FILTER_FLETCHER32 */ } /* end test_filters_endianess() */ /* This message derives from H5Z */ diff --git a/test/gen_plist.c b/test/gen_plist.c index acc5f3e..e77af73 100644 --- a/test/gen_plist.c +++ b/test/gen_plist.c @@ -280,8 +280,8 @@ main(void) assert(ret > 0); /* Create FAPL for the elink FAPL */ - if((fapl1 = ret = H5Pcreate(ret = H5P_FILE_ACCESS)) < 0) - assert(ret > 0); + if((fapl1 = H5Pcreate(H5P_FILE_ACCESS)) < 0) + assert(fapl1 > 0); if((ret = H5Pset_alignment(fapl1, 2, 1024)) < 0) assert(ret > 0); diff --git a/test/hyperslab.c b/test/hyperslab.c index 5e2c109..9bc085c 100644 --- a/test/hyperslab.c +++ b/test/hyperslab.c @@ -609,10 +609,10 @@ test_multifill(size_t nx) for(i = 0; i < nx; i++) { src[i].left = 1111111; - src[i].mid = 12345.6789; + src[i].mid = 12345.6789F; src[i].right = 2222222; dst[i].left = 3333333; - dst[i].mid = 98765.4321; + dst[i].mid = 98765.4321F; dst[i].right = 4444444; } /* end for */ @@ -621,7 +621,7 @@ test_multifill(size_t nx) * over and over again. */ fill.left = 55555555; - fill.mid = 3.1415927; + fill.mid = 3.1415927F; fill.right = 66666666; src_stride = 0; diff --git a/test/links.c b/test/links.c index 6119bb3..891b5e4 100644 --- a/test/links.c +++ b/test/links.c @@ -141,7 +141,7 @@ const char *FILENAME[] = { #define H5L_DIM1 100 #define H5L_DIM2 100 -#define FILTER_FILESIZE_MAX_FRACTION .9 +#define FILTER_FILESIZE_MAX_FRACTION 0.9F /* Creation order macros */ #define CORDER_GROUP_NAME "corder_group" diff --git a/test/mtime.c b/test/mtime.c index 6e00fe0..0c0c923 100644 --- a/test/mtime.c +++ b/test/mtime.c @@ -114,7 +114,7 @@ main(void) puts(" Modification times will be mantained in the file but"); puts(" cannot be queried on this system. See H5O_mtime_decode()."); return 0; - } else if(HDfabs(HDdifftime(now, oi1.ctime)) > 60.0) { + } else if(HDfabs(HDdifftime(now, oi1.ctime)) > 60.0F) { H5_FAILED(); tm = HDlocaltime(&(oi1.ctime)); HDstrftime((char*)buf1, sizeof buf1, "%Y-%m-%d %H:%M:%S", tm); diff --git a/test/objcopy.c b/test/objcopy.c index 0a1d7a0..71a7236 100644 --- a/test/objcopy.c +++ b/test/objcopy.c @@ -2315,7 +2315,7 @@ test_copy_dataset_compound(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid_t #endif /* H5_CLEAR_MEMORY */ for(i = 0; i < DIM_SIZE_1; i++) { buf[i].a = i; - buf[i].d = 1. / (i + 1); + buf[i].d = 1.0F / (i + 1); } /* end for */ /* Initialize the filenames */ @@ -2447,9 +2447,9 @@ test_copy_dataset_chunked(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid_t /* set initial data values */ for(i = 0; i < DIM_SIZE_1; i++) { - buf1d[i] = (float)(i / 2.0); + buf1d[i] = (float)(i / 2.0F); for(j = 0; j < DIM_SIZE_2; j++) - buf2d[i][j] = (float)(i + (j / 100.0)); + buf2d[i][j] = (float)(i + (j / 100.0F)); } /* end for */ /* Initialize the filenames */ @@ -2790,9 +2790,9 @@ test_copy_dataset_chunked_sparse(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, /* set initial data values */ for(i = 0; i < DIM_SIZE_1; i++) { - buf1d[i] = (float)(i / 10.0); + buf1d[i] = (float)(i / 10.0F); for(j = 0; j < DIM_SIZE_2; j++) - buf2d[i][j] = (float)(i + (j / 100.0)); + buf2d[i][j] = (float)(i + (j / 100.0F)); } /* end for */ /* Initialize the filenames */ @@ -2985,7 +2985,7 @@ test_copy_dataset_compressed(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid /* set initial data values */ for (i=0; i<DIM_SIZE_1; i++) for (j=0; j<DIM_SIZE_2; j++) - buf[i][j] = (float)(100.0); /* Something easy to compress */ + buf[i][j] = 100.0F; /* Something easy to compress */ /* Initialize the filenames */ h5_fixname(FILENAME[0], src_fapl, src_filename, sizeof src_filename); @@ -3114,7 +3114,7 @@ test_copy_dataset_compact(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid_t /* set initial data values */ for (i=0; i<DIM_SIZE_1; i++) for (j=0; j<DIM_SIZE_2; j++) - buf[i][j] = (float)(i+j/100.0); + buf[i][j] = (float)(i+j/100.0F); /* Initialize the filenames */ h5_fixname(FILENAME[0], src_fapl, src_filename, sizeof src_filename); @@ -7591,7 +7591,7 @@ test_copy_dataset_contig_cmpd_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, buf[i].b.p = (int *)HDmalloc(buf[i].b.len * sizeof(int)); for(j = 0; j < buf[i].b.len; j++) ((int *)buf[i].b.p)[j] = (int)(i * 10 + j); - buf[i].c = 1. / (i + 1.); + buf[i].c = 1.0F / (i + 1.0F); } /* end for */ /* Initialize the filenames */ @@ -7730,7 +7730,7 @@ test_copy_dataset_chunked_cmpd_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl buf[i].b.p = (int *)HDmalloc(buf[i].b.len * sizeof(int)); for(j = 0; j < buf[i].b.len; j++) ((int *)buf[i].b.p)[j] = (int)(i * 10 + j); - buf[i].c = 1. / (i + 1.); + buf[i].c = 1.0F / (i + 1.0F); } /* end for */ /* Initialize the filenames */ @@ -7875,7 +7875,7 @@ test_copy_dataset_compact_cmpd_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl buf[i].b.p = (int *)HDmalloc(buf[i].b.len * sizeof(int)); for(j = 0; j < buf[i].b.len; j++) ((int *)buf[i].b.p)[j] = (int)(i * 10 + j); - buf[i].c = 1. / (i + 1.); + buf[i].c = 1.0F / (i + 1.0F); } /* end for */ /* Initialize the filenames */ diff --git a/test/plugin.c b/test/plugin.c index 86bc952..74a8f4b 100644 --- a/test/plugin.c +++ b/test/plugin.c @@ -456,14 +456,14 @@ error: } /*------------------------------------------------------------------------- - * Function: test_read_with_filters + * Function: test_read_with_filters * - * Purpose: Tests reading dataset created with dynamically loaded filters + * Purpose: Tests reading dataset created with dynamically loaded filters * - * Return: Success: 0 - * Failure: -1 + * Return: Success: 0 + * Failure: -1 * - * Programmer: Raymond Lu + * Programmer: Raymond Lu * 14 March 2013 * *------------------------------------------------------------------------- @@ -471,7 +471,7 @@ error: static herr_t test_read_with_filters(hid_t file) { - hid_t dset; /* Dataset ID */ + hid_t dset; /* Dataset ID */ /*---------------------------------------------------------- * STEP 1: Test deflation by itself. @@ -526,6 +526,77 @@ error: } /*------------------------------------------------------------------------- + * Function: test_noread_data + * + * Purpose: Tests not reading data + * + * Return: Success: 0 + * Failure: -1 + * + *------------------------------------------------------------------------- + */ +static herr_t +test_noread_data(hid_t dataset) +{ + int check[DSET_DIM1][DSET_DIM2]; + herr_t ret; + + /* Read the dataset back */ + H5E_BEGIN_TRY { + ret = H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, check); + } H5E_END_TRY + if(ret >= 0) + TEST_ERROR + + PASSED(); + return 0; + +error: + return -1; +} + +/*------------------------------------------------------------------------- + * Function: test_noread_with_filters + * + * Purpose: Tests reading dataset created with dynamically loaded filters disabled + * + * Return: Success: 0 + * Failure: -1 + * + *------------------------------------------------------------------------- + */ +static herr_t +test_noread_with_filters(hid_t file) +{ + hid_t dset; /* Dataset ID */ + unsigned plugin_state; /* status of plugins */ + TESTING("Testing DYNLIB1 filter with plugins disabled"); + + /* disable filter plugin */ + if(H5PLget_loading_state(&plugin_state) < 0) TEST_ERROR + plugin_state = plugin_state & ~H5PL_FILTER_PLUGIN; + if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR + + if((dset = H5Dopen2(file,DSET_DYNLIB1_NAME,H5P_DEFAULT)) < 0) TEST_ERROR + + if(test_noread_data(dset) < 0) TEST_ERROR + + if(H5Dclose(dset) < 0) TEST_ERROR + + /* re-enable filter plugin */ + plugin_state = plugin_state | H5PL_FILTER_PLUGIN; + if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR + + return 0; + +error: + /* re-enable filter plugin */ + plugin_state = plugin_state | H5PL_FILTER_PLUGIN; + if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR + return -1; +} + +/*------------------------------------------------------------------------- * Function: test_filters_for_groups * * Purpose: Tests creating group with dynamically loaded filters @@ -713,6 +784,17 @@ main(void) /* Open the groups with filters */ nerrors += (test_groups_with_filters(file) < 0 ? 1 : 0); + /* Close the library so that all loaded plugin libraries are unloaded */ + h5_reset(); + fapl = h5_fileaccess(); + + /* Reopen the file for testing data reading */ + if((file = H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0) + TEST_ERROR + + /* Read the data with disabled filters */ + nerrors += (test_noread_with_filters(file) < 0 ? 1 : 0); + if(H5Fclose(file) < 0) TEST_ERROR diff --git a/test/set_extent.c b/test/set_extent.c index aaa6516..f6c3766 100644 --- a/test/set_extent.c +++ b/test/set_extent.c @@ -130,10 +130,10 @@ int main( void ) if((fapl2 = H5Pcopy(fapl)) < 0) TEST_ERROR /* Set chunk cache so only part of the chunks can be cached on fapl */ - if(H5Pset_cache(fapl, 0, (size_t)8, 256 * sizeof(int), 0.75) < 0) TEST_ERROR + if(H5Pset_cache(fapl, 0, (size_t)8, 256 * sizeof(int), 0.75F) < 0) TEST_ERROR /* Disable chunk caching on fapl2 */ - if(H5Pset_cache(fapl2, 0, (size_t)0, (size_t)0, 0.) < 0) TEST_ERROR + if(H5Pset_cache(fapl2, 0, (size_t)0, (size_t)0, 0.0F) < 0) TEST_ERROR /* Set the "use the latest version of the format" bounds for creating objects in the file */ if(H5Pset_libver_bounds(fapl2, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0) TEST_ERROR diff --git a/test/tarray.c b/test/tarray.c index 1a53336..0923625 100644 --- a/test/tarray.c +++ b/test/tarray.c @@ -541,7 +541,7 @@ test_array_compound_atomic(void) for(i = 0; i < SPACE1_DIM1; i++) for(j = 0; j < ARRAY1_DIM1; j++) { wdata[i][j].i = i * 10 + j; - wdata[i][j].f = (float)(i * 2.5 + j); + wdata[i][j].f = (float)(i * 2.5F + j); } /* end for */ /* Create file */ @@ -686,7 +686,7 @@ test_array_compound_atomic(void) continue; } /* end if */ if(!FLT_ABS_EQUAL(wdata[i][j].f, rdata[i][j].f)) { - TestErrPrintf("Array data information doesn't match!, wdata[%d][%d].f=%f, rdata[%d][%d].f=%f\n", (int)i, (int)j, wdata[i][j].f, (int)i, (int)j, rdata[i][j].f); + TestErrPrintf("Array data information doesn't match!, wdata[%d][%d].f=%f, rdata[%d][%d].f=%f\n", (int)i, (int)j, (double)wdata[i][j].f, (int)i, (int)j, (double)rdata[i][j].f); continue; } /* end if */ } /* end for */ @@ -745,7 +745,7 @@ test_array_compound_array(void) for(j=0; j<ARRAY1_DIM1; j++) { wdata[i][j].i=i*10+j; for(k=0; k<ARRAY1_DIM1; k++) - wdata[i][j].f[k]=(float)(i*10+j*2.5+k); + wdata[i][j].f[k]=(float)(i * 10.0F + j * 2.5F + k); } /* end for */ /* Create file */ @@ -929,7 +929,7 @@ test_array_compound_array(void) } /* end if */ for(k=0; k<ARRAY1_DIM1; k++) if(!FLT_ABS_EQUAL(wdata[i][j].f[k],rdata[i][j].f[k])) { - TestErrPrintf("Array data information doesn't match!, wdata[%d][%d].f[%d]=%f, rdata[%d][%d].f[%d]=%f\n",(int)i,(int)j,(int)k,wdata[i][j].f[k],(int)i,(int)j,(int)k,rdata[i][j].f[k]); + TestErrPrintf("Array data information doesn't match!, wdata[%d][%d].f[%d]=%f, rdata[%d][%d].f[%d]=%f\n",(int)i,(int)j,(int)k,(double)wdata[i][j].f[k],(int)i,(int)j,(int)k,(double)rdata[i][j].f[k]); continue; } /* end if */ } /* end for */ @@ -1534,8 +1534,8 @@ test_array_bkg(void) for (j = 0; j < ALEN; j++) { cf[i].a[j] = 100*(i+1) + j; - cf[i].b[j] = (float)(100.*(i+1) + 0.01*j); - cf[i].c[j] = 100.*(i+1) + 0.02*j; + cf[i].b[j] = (float)(100.0F*(i+1) + 0.01F*j); + cf[i].c[j] = (double)(100.0F*(i+1) + 0.02F*j); } } @@ -1619,11 +1619,11 @@ test_array_bkg(void) continue; } if(!FLT_ABS_EQUAL(cf[i].b[j],cfr[i].b[j])) { - TestErrPrintf("Field b data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(float)cf[i].b[j],(int)i,(int)j,(float)cfr[i].b[j]); + TestErrPrintf("Field b data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(double)cf[i].b[j],(int)i,(int)j,(double)cfr[i].b[j]); continue; } if(!DBL_ABS_EQUAL(cf[i].c[j],cfr[i].c[j])) { - TestErrPrintf("Field c data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(float)cf[i].c[j],(int)i,(int)j,(float)cfr[i].c[j]); + TestErrPrintf("Field c data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(double)cf[i].c[j],(int)i,(int)j,(double)cfr[i].c[j]); continue; } } @@ -1674,7 +1674,7 @@ test_array_bkg(void) /* -------------------------------- */ for (i=0; i< LENGTH; i++) for (j = 0; j < ALEN; j++) - cf[i].b[j]=fld[i].b[j] = (float)1.313; + cf[i].b[j]=fld[i].b[j] = 1.313F; status = H5Dwrite (dataset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, fld); CHECK(status, FAIL, "H5Dwrite"); @@ -1686,7 +1686,7 @@ test_array_bkg(void) for (i=0; i< LENGTH; i++) for (j = 0; j < ALEN; j++) if(!FLT_ABS_EQUAL(fld[i].b[j],fldr[i].b[j])) { - TestErrPrintf("Field data doesn't match, fld[%d].b[%d]=%f, fldr[%d].b[%d]=%f\n",(int)i,(int)j,(float)fld[i].b[j],(int)i,(int)j,(float)fldr[i].b[j]); + TestErrPrintf("Field data doesn't match, fld[%d].b[%d]=%f, fldr[%d].b[%d]=%f\n",(int)i,(int)j,(double)fld[i].b[j],(int)i,(int)j,(double)fldr[i].b[j]); continue; } @@ -1712,11 +1712,11 @@ test_array_bkg(void) continue; } if(!FLT_ABS_EQUAL(cf[i].b[j],cfr[i].b[j])) { - TestErrPrintf("Field b data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(float)cf[i].b[j],(int)i,(int)j,(float)cfr[i].b[j]); + TestErrPrintf("Field b data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(double)cf[i].b[j],(int)i,(int)j,(double)cfr[i].b[j]); continue; } if(!DBL_ABS_EQUAL(cf[i].c[j],cfr[i].c[j])) { - TestErrPrintf("Field c data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(float)cf[i].c[j],(int)i,(int)j,(float)cfr[i].c[j]); + TestErrPrintf("Field c data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(double)cf[i].c[j],(int)i,(int)j,(double)cfr[i].c[j]); continue; } } @@ -1761,11 +1761,11 @@ test_array_bkg(void) continue; } if(!FLT_ABS_EQUAL(cf[i].b[j],cfr[i].b[j])) { - TestErrPrintf("Field b data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(float)cf[i].b[j],(int)i,(int)j,(float)cfr[i].b[j]); + TestErrPrintf("Field b data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(double)cf[i].b[j],(int)i,(int)j,(double)cfr[i].b[j]); continue; } if(!DBL_ABS_EQUAL(cf[i].c[j],cfr[i].c[j])) { - TestErrPrintf("Field c data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(float)cf[i].c[j],(int)i,(int)j,(float)cfr[i].c[j]); + TestErrPrintf("Field c data doesn't match, cf[%d].b[%d]=%f, cfr[%d].b[%d]=%f\n",(int)i,(int)j,(double)cf[i].c[j],(int)i,(int)j,(double)cfr[i].c[j]); continue; } } diff --git a/test/tattr.c b/test/tattr.c index 2885124..31a3844 100644 --- a/test/tattr.c +++ b/test/tattr.c @@ -97,7 +97,7 @@ int attr_data2[ATTR2_DIM1][ATTR2_DIM2]={{7614,-416},{197814,-3}}; /* Test data f #define ATTR3_DIM1 2 #define ATTR3_DIM2 2 #define ATTR3_DIM3 2 -double attr_data3[ATTR3_DIM1][ATTR3_DIM2][ATTR3_DIM3]={{{2.3,-26.1},{0.123,-10.0}},{{973.23,-0.91827},{2.0,23.0}}}; /* Test data for 3rd attribute */ +double attr_data3[ATTR3_DIM1][ATTR3_DIM2][ATTR3_DIM3]={{{2.3F,-26.1F}, {0.123F,-10.0F}},{{973.23F,-0.91827F},{2.0F,23.0F}}}; /* Test data for 3rd attribute */ #define ATTR4_NAME "Attr4" #define ATTR4_RANK 2 @@ -113,12 +113,12 @@ struct attr4_struct { int i; double d; char c; - } attr_data4[ATTR4_DIM1][ATTR4_DIM2]={{{3,-26.1,'d'},{-100000, 0.123,'3'}}, - {{-23,981724.2,'Q'},{0,2.0,'\n'}}}; /* Test data for 4th attribute */ + } attr_data4[ATTR4_DIM1][ATTR4_DIM2]={{{3,-26.1F,'d'},{-100000, 0.123F,'3'}}, + {{-23,981724.2F,'Q'},{0,2.0F,'\n'}}}; /* Test data for 4th attribute */ #define ATTR5_NAME "Attr5" #define ATTR5_RANK 0 -float attr_data5=(float)-5.123; /* Test data for 5th attribute */ +float attr_data5=-5.123F; /* Test data for 5th attribute */ #define ATTR6_RANK 3 #define ATTR6_DIM1 100 @@ -500,7 +500,7 @@ test_attr_flush(hid_t fapl) att, /* Attribute ID */ spc, /* Dataspace ID */ set; /* Dataset ID */ - double wdata=3.14159; /* Data to write */ + double wdata=3.14159F; /* Data to write */ double rdata; /* Data read in */ herr_t ret; /* Generic return value */ @@ -522,8 +522,8 @@ test_attr_flush(hid_t fapl) ret=H5Aread(att, H5T_NATIVE_DOUBLE, &rdata); CHECK(ret, FAIL, "H5Awrite"); - if(!DBL_ABS_EQUAL(rdata,0.0)) - TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,0.0); + if(!DBL_ABS_EQUAL(rdata,0.0F)) + TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,(double)0.0F); ret=H5Fflush(fil, H5F_SCOPE_GLOBAL); CHECK(ret, FAIL, "H5Fflush"); @@ -531,8 +531,8 @@ test_attr_flush(hid_t fapl) ret=H5Aread(att, H5T_NATIVE_DOUBLE, &rdata); CHECK(ret, FAIL, "H5Awrite"); - if(!DBL_ABS_EQUAL(rdata,0.0)) - TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,0.0); + if(!DBL_ABS_EQUAL(rdata,0.0F)) + TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,(double)0.0F); ret=H5Awrite(att, H5T_NATIVE_DOUBLE, &wdata); CHECK(ret, FAIL, "H5Awrite"); @@ -985,7 +985,7 @@ test_attr_scalar_read(hid_t fapl) hid_t sid; /* Dataspace ID */ hid_t attr; /* Attribute ID */ H5S_class_t stype; /* Dataspace class */ - float rdata = 0.0; /* Buffer for reading 1st attribute */ + float rdata = 0.0F; /* Buffer for reading 1st attribute */ H5O_info_t oinfo; /* Object info */ herr_t ret; /* Generic return value */ @@ -1016,7 +1016,7 @@ test_attr_scalar_read(hid_t fapl) /* Verify the floating-poing value in this way to avoid compiler warning. */ if(!FLT_ABS_EQUAL(rdata, attr_data5)) printf("*** UNEXPECTED VALUE from %s should be %f, but is %f at line %4d in %s\n", - "H5Aread", attr_data5, rdata, (int)__LINE__, __FILE__); + "H5Aread", (double)attr_data5, (double)rdata, (int)__LINE__, __FILE__); /* Get the attribute's dataspace */ sid = H5Aget_space(attr); diff --git a/test/testhdf5.h b/test/testhdf5.h index 907fce9..62dadde 100644 --- a/test/testhdf5.h +++ b/test/testhdf5.h @@ -68,6 +68,18 @@ } \ } +#define CHECK_PTR_NULL(ret,where) { \ + if (VERBOSE_HI) { \ + print_func(" Call to routine: %15s at line %4d in %s returned %p\n", \ + (where), (int)__LINE__, __FILE__, (ret)); \ + } \ + if (ret) { \ + TestErrPrintf ("*** UNEXPECTED RETURN from %s is not NULL line %4d in %s\n", \ + (where), (int)__LINE__, __FILE__); \ + H5Eprint2(H5E_DEFAULT, stdout); \ + } \ +} + /* Used to make certain a return value _is_ a value */ #define VERIFY(_x, _val, where) do { \ long __x = (long)_x, __val = (long)_val; \ diff --git a/test/tfile.c b/test/tfile.c index 3a942c0..4d3903c 100644 --- a/test/tfile.c +++ b/test/tfile.c @@ -2388,7 +2388,7 @@ test_rw_noupdate(void) diff = HDdifftime(sb2.st_mtime, sb1.st_mtime); /* Check That Timestamps Are Equal */ - if(diff > 0.0) { + if(diff > 0.0F) { /* Output message about test being performed */ MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time (We know OpenVMS behaves in this way).\n")); } /* end if */ @@ -2421,7 +2421,7 @@ test_rw_noupdate(void) /* Ensure That Timestamps Are Equal */ diff = HDdifftime(sb2.st_mtime, sb1.st_mtime); - ret = (diff > 0.0); + ret = (diff > 0.0F); VERIFY(ret, 0, "Timestamp"); } /* end else */ } /* end test_rw_noupdate() */ @@ -3678,9 +3678,7 @@ test_file(void) test_file_create(); /* Test file creation(also creation templates)*/ test_file_open(); /* Test file opening */ -#ifndef H5_NO_SHARED_WRITING test_file_close(); /* Test file close behavior */ -#endif /* H5_NO_SHARED_WRITING */ test_get_file_id(); /* Test H5Iget_file_id */ test_get_obj_ids(); /* Test H5Fget_obj_ids for Jira Issue 8528 */ test_file_perm(); /* Test file access permissions */ diff --git a/test/tgenprop.c b/test/tgenprop.c index 004e346..a3f1752 100644 --- a/test/tgenprop.c +++ b/test/tgenprop.c @@ -47,7 +47,7 @@ int prop1_def=10; /* Property 1 default value */ #define PROP1_DEF_VALUE (&prop1_def) #define PROP2_NAME "Property 2" -float prop2_def=(float)3.14; /* Property 2 default value */ +float prop2_def=3.14F; /* Property 2 default value */ #define PROP2_SIZE sizeof(prop2_def) #define PROP2_DEF_VALUE (&prop2_def) @@ -57,7 +57,7 @@ char prop3_def[10]="Ten chars"; /* Property 3 default value */ #define PROP3_DEF_VALUE (&prop3_def) #define PROP4_NAME "Property 4" -double prop4_def=1.41; /* Property 4 default value */ +double prop4_def=1.41F; /* Property 4 default value */ #define PROP4_SIZE sizeof(prop4_def) #define PROP4_DEF_VALUE (&prop4_def) @@ -683,7 +683,7 @@ test_genprop_basic_list(void) /* Verify the floating-poing value in this way to avoid compiler warning. */ if(!FLT_ABS_EQUAL(prop2_value,*PROP2_DEF_VALUE)) printf("*** UNEXPECTED VALUE from %s should be %f, but is %f at line %4d in %s\n", - "H5Pget", *PROP2_DEF_VALUE, prop2_value, (int)__LINE__, __FILE__); + "H5Pget", (double)*PROP2_DEF_VALUE, (double)prop2_value, (int)__LINE__, __FILE__); /* Close list */ @@ -775,7 +775,7 @@ test_genprop_basic_list_prop(void) /* Verify the floating-poing value in this way to avoid compiler warning. */ if(!FLT_ABS_EQUAL(prop2_value,*PROP2_DEF_VALUE)) printf("*** UNEXPECTED VALUE from %s should be %f, but is %f at line %4d in %s\n", - "H5Pget", *PROP2_DEF_VALUE, prop2_value, (int)__LINE__, __FILE__); + "H5Pget", (double)*PROP2_DEF_VALUE, (double)prop2_value, (int)__LINE__, __FILE__); /* Check values of temporary properties (set with regular values) */ @@ -1239,7 +1239,7 @@ test_genprop_list_callback(void) /* Verify the floating-poing value in this way to avoid compiler warning. */ if(!FLT_ABS_EQUAL(prop2_value,*PROP2_DEF_VALUE)) printf("*** UNEXPECTED VALUE from %s should be %f, but is %f at line %4d in %s\n", - "H5Pget", *PROP2_DEF_VALUE, prop2_value, (int)__LINE__, __FILE__); + "H5Pget", (double)*PROP2_DEF_VALUE, (double)prop2_value, (int)__LINE__, __FILE__); /* Check values of temporary properties (set with regular values) */ ret = H5Pget(lid1, PROP3_NAME,&prop3_value); diff --git a/test/th5s.c b/test/th5s.c index 43ad1bb..7c1c46e 100644 --- a/test/th5s.c +++ b/test/th5s.c @@ -79,7 +79,7 @@ struct space4_struct { unsigned u; float f; char c2; - } space4_data={'v',987123,(float)-3.14,'g'}; /* Test data for 4th dataspace */ + } space4_data={'v',987123,-3.14F,'g'}; /* Test data for 4th dataspace */ /**************************************************************** ** @@ -1581,7 +1581,7 @@ test_h5s_compound_scalar_read(void) if(HDmemcmp(&space4_data,&rdata,sizeof(struct space4_struct))) { printf("scalar data different: space4_data.c1=%c, read_data4.c1=%c\n",space4_data.c1,rdata.c1); printf("scalar data different: space4_data.u=%u, read_data4.u=%u\n",space4_data.u,rdata.u); - printf("scalar data different: space4_data.f=%f, read_data4.f=%f\n",space4_data.f,rdata.f); + printf("scalar data different: space4_data.f=%f, read_data4.f=%f\n",(double)space4_data.f,(double)rdata.f); TestErrPrintf("scalar data different: space4_data.c1=%c, read_data4.c1=%c\n",space4_data.c1,rdata.c2); } /* end if */ @@ -1647,7 +1647,7 @@ test_h5s_chunk(void) /* Initialize float array */ for(i = 0; i < 50000; i++) for(j = 0; j < 3; j++) - chunk_data_flt[i][j] = (float)((i + 1) * 2.5 - j * 100.3); + chunk_data_flt[i][j] = (float)((i + 1) * 2.5F - j * 100.3F); status = H5Dwrite(dsetID, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_flt); CHECK(status, FAIL, "H5Dwrite"); @@ -1683,8 +1683,8 @@ test_h5s_chunk(void) for(i=0; i<50000; i++) { for(j=0; j<3; j++) { /* Check if the two values are within 0.001% range. */ - if(!DBL_REL_EQUAL(chunk_data_dbl[i][j], chunk_data_flt[i][j], 0.00001)) - TestErrPrintf("%u: chunk_data_dbl[%d][%d]=%e, chunk_data_flt[%d][%d]=%e\n", (unsigned)__LINE__, i, j, chunk_data_dbl[i][j], i, j, chunk_data_flt[i][j]); + if(!DBL_REL_EQUAL(chunk_data_dbl[i][j], chunk_data_flt[i][j], 0.00001F)) + TestErrPrintf("%u: chunk_data_dbl[%d][%d]=%e, chunk_data_flt[%d][%d]=%e\n", (unsigned)__LINE__, i, j, chunk_data_dbl[i][j], i, j, (double)chunk_data_flt[i][j]); } /* end for */ } /* end for */ } /* test_h5s_chunk() */ @@ -2207,6 +2207,125 @@ test_h5s_extent_equal(void) /**************************************************************** ** +** test_h5s_extent_copy(): Exercise extent copy code +** +****************************************************************/ +static void +test_h5s_extent_copy(void) +{ + hid_t spaces[14] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; /* Array of all dataspaces */ + hid_t tmp_space = -1; + hsize_t d1_dims1[1] = {10}, /* 1-D dimensions */ + d1_dims2[1] = {20}, + d1_dims3[1] = {H5S_UNLIMITED}; + hsize_t d2_dims1[2] = {10, 10}, /* 2-D dimensions */ + d2_dims2[2] = {20, 20}, + d2_dims3[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t d3_dims1[3] = {10, 10, 10}, /* 3-D dimensions */ + d3_dims2[3] = {20, 20, 20}, + d3_dims3[3] = {H5S_UNLIMITED, H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t npoints[14]; /* Expected number of points in selection for each element in spaces */ + hssize_t npoints_ret; /* Number of points returned by H5Sget_select_npoints() */ + htri_t ext_equal; /* Whether two dataspace extents are equal */ + const unsigned num_spaces = sizeof(spaces) / sizeof(spaces[0]); + unsigned i, j; + herr_t ret; /* Generic error return */ + + /* Create dataspaces */ + spaces[0] = H5Screate(H5S_NULL); + CHECK(spaces[0], FAIL, "H5Screate"); + npoints[0] = (hsize_t)0; + + spaces[1] = H5Screate(H5S_SCALAR); + CHECK(spaces[1], FAIL, "H5Screate"); + npoints[1] = (hsize_t)1; + + spaces[2] = H5Screate_simple(1, d1_dims1, NULL); + CHECK(spaces[2], FAIL, "H5Screate"); + npoints[2] = d1_dims1[0]; + spaces[3] = H5Screate_simple(1, d1_dims2, NULL); + CHECK(spaces[3], FAIL, "H5Screate"); + npoints[3] = d1_dims2[0]; + spaces[4] = H5Screate_simple(1, d1_dims1, d1_dims2); + CHECK(spaces[4], FAIL, "H5Screate"); + npoints[4] = d1_dims1[0]; + spaces[5] = H5Screate_simple(1, d1_dims1, d1_dims3); + CHECK(spaces[5], FAIL, "H5Screate"); + npoints[5] = d1_dims1[0]; + + spaces[6] = H5Screate_simple(2, d2_dims1, NULL); + CHECK(spaces[6], FAIL, "H5Screate"); + npoints[6] = d2_dims1[0] * d2_dims1[1]; + spaces[7] = H5Screate_simple(2, d2_dims2, NULL); + CHECK(spaces[7], FAIL, "H5Screate"); + npoints[7] = d2_dims2[0] * d2_dims2[1]; + spaces[8] = H5Screate_simple(2, d2_dims1, d2_dims2); + CHECK(spaces[8], FAIL, "H5Screate"); + npoints[8] = d2_dims1[0] * d2_dims1[1]; + spaces[9] = H5Screate_simple(2, d2_dims1, d2_dims3); + CHECK(spaces[9], FAIL, "H5Screate"); + npoints[9] = d2_dims1[0] * d2_dims1[1]; + + spaces[10] = H5Screate_simple(3, d3_dims1, NULL); + CHECK(spaces[10], FAIL, "H5Screate"); + npoints[10] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2]; + spaces[11] = H5Screate_simple(3, d3_dims2, NULL); + CHECK(spaces[11], FAIL, "H5Screate"); + npoints[11] = d3_dims2[0] * d3_dims2[1] * d3_dims2[2]; + spaces[12] = H5Screate_simple(3, d3_dims1, d3_dims2); + CHECK(spaces[12], FAIL, "H5Screate"); + npoints[12] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2]; + spaces[13] = H5Screate_simple(3, d3_dims1, d3_dims3); + CHECK(spaces[13], FAIL, "H5Screate"); + npoints[13] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2]; + + tmp_space = H5Screate(H5S_NULL); + CHECK(tmp_space, FAIL, "H5Screate"); + + /* Copy between all dataspace combinations. Note there are a few + * duplicates. */ + for(i = 0; i < num_spaces; i++) + for(j = i; j < num_spaces; j++) { + /* Copy from i to j, unless the inner loop just restarted, in which + * case i and j are the same, so the second call to H5Sextent_copy() + * will test copying from i/j to i/j */ + ret = H5Sextent_copy(tmp_space, spaces[j]); + CHECK(ret, FAIL, "H5Sextent_copy"); + + /* Verify that the extents are equal */ + ext_equal = H5Sextent_equal(tmp_space, spaces[j]); + VERIFY(ext_equal, TRUE, "H5Sextent_equal"); + + /* Verify that the correct number of elements is selected */ + npoints_ret = H5Sget_select_npoints(tmp_space); + VERIFY((hsize_t)npoints_ret, npoints[j], "H5Sget_select_npoints"); + + /* Copy from j to i */ + ret = H5Sextent_copy(tmp_space, spaces[i]); + CHECK(ret, FAIL, "H5Sextent_copy"); + + /* Verify that the extents are equal */ + ext_equal = H5Sextent_equal(tmp_space, spaces[i]); + VERIFY(ext_equal, TRUE, "H5Sextent_equal"); + + /* Verify that the correct number of elements is selected */ + npoints_ret = H5Sget_select_npoints(tmp_space); + VERIFY((hsize_t)npoints_ret, npoints[i], "H5Sget_select_npoints"); + } /* end for */ + + /* Close dataspaces */ + for(i = 0; i < num_spaces; i++) { + ret = H5Sclose(spaces[i]); + CHECK(ret, FAIL, "H5Sclose"); + spaces[i] = -1; + } /* end for */ + + ret = H5Sclose(tmp_space); + CHECK(ret, FAIL, "H5Sclose"); +} /* test_h5s_extent_copy() */ + +/**************************************************************** +** ** test_h5s(): Main H5S (dataspace) testing routine. ** ****************************************************************/ @@ -2230,6 +2349,7 @@ test_h5s(void) test_h5s_chunk(); /* Exercise bug fix for chunked I/O */ test_h5s_extent_equal(); /* Test extent comparison code */ + test_h5s_extent_copy(); /* Test extent copy code */ } /* test_h5s() */ diff --git a/test/tmisc.c b/test/tmisc.c index 725a720..76b2745 100644 --- a/test/tmisc.c +++ b/test/tmisc.c @@ -1847,9 +1847,21 @@ test_misc11(void) ret = H5Pset_sizes(fcpl, (size_t)MISC11_SIZEOF_OFF, (size_t)MISC11_SIZEOF_LEN); CHECK(ret, FAIL, "H5Pset_sizes"); + /* This should fail as (32770*2) will exceed ^16 - 2 bytes for storing btree entries */ + H5E_BEGIN_TRY { + ret=H5Pset_sym_k(fcpl, 32770, 0); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Pset_sym_k"); + ret=H5Pset_sym_k(fcpl,MISC11_SYM_IK,MISC11_SYM_LK); CHECK(ret, FAIL, "H5Pset_sym_k"); + /* This should fail as (32770*2) will exceed ^16 - 2 bytes for storing btree entries */ + H5E_BEGIN_TRY { + ret=H5Pset_istore_k(fcpl, 32770); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Pset_istore_k"); + ret=H5Pset_istore_k(fcpl,MISC11_ISTORE_IK); CHECK(ret, FAIL, "H5Pset_istore_k"); @@ -2427,17 +2439,17 @@ test_misc13(void) static void test_misc14(void) { - hid_t file_id; /* File ID */ - hid_t fapl; /* File access property list ID */ - hid_t DataSpace; /* Dataspace ID */ - hid_t Dataset1; /* Dataset ID #1 */ - hid_t Dataset2; /* Dataset ID #2 */ - hid_t Dataset3; /* Dataset ID #3 */ - double data1 = 5.0; /* Data to write for dataset #1 */ - double data2 = 10.0; /* Data to write for dataset #2 */ - double data3 = 15.0; /* Data to write for dataset #3 */ - double rdata; /* Data read in */ - herr_t ret; /* Generic return value */ + hid_t file_id; /* File ID */ + hid_t fapl; /* File access property list ID */ + hid_t DataSpace; /* Dataspace ID */ + hid_t Dataset1; /* Dataset ID #1 */ + hid_t Dataset2; /* Dataset ID #2 */ + hid_t Dataset3; /* Dataset ID #3 */ + double data1 = 5.0F; /* Data to write for dataset #1 */ + double data2 = 10.0F; /* Data to write for dataset #2 */ + double data3 = 15.0F; /* Data to write for dataset #3 */ + double rdata; /* Data read in */ + herr_t ret; /* Generic return value */ /* Test creating two datasets and deleting the second */ @@ -4949,7 +4961,7 @@ test_misc28(void) * bytes). */ fapl = H5Pcreate(H5P_FILE_ACCESS); CHECK(fapl, FAIL, "H5Pcreate"); - ret = H5Pset_cache(fapl, MISC28_NSLOTS, MISC28_NSLOTS, MISC28_SIZE, 0.75); + ret = H5Pset_cache(fapl, MISC28_NSLOTS, MISC28_NSLOTS, MISC28_SIZE, 0.75F); CHECK(ret, FAIL, "H5Pset_cache"); /* Create the dcpl and set the chunk size */ @@ -5304,6 +5316,73 @@ test_misc31(void) /**************************************************************** + * + * test_misc32(): Simple test of filter memory allocation + * functions. + * + ***************************************************************/ +static void +test_misc32(void) +{ + void *buffer; + void *resized; + size_t size; + + /* Output message about test being performed */ + MESSAGE(5, ("Edge case test of filter memory allocation functions\n")); + + /* Test that the filter memory allocation functions behave correctly + * at edge cases. + */ + + /* FREE */ + + /* Test freeing a NULL pointer. + * No real confirmation check here, but Valgrind will confirm no + * shenanigans. + */ + buffer = NULL; + H5free_memory(buffer); + + /* ALLOCATE */ + + /* Size zero returns NULL. + * Also checks that a size of zero and setting the buffer clear flag + * to TRUE can be used together. + * + * Note that we have asserts in the code, so only check when NDEBUG + * is defined. + */ +#ifdef NDEBUG + buffer = H5allocate_memory(0, FALSE); + CHECK_PTR_NULL(buffer, "H5allocate_memory"); /*BAD*/ + buffer = H5allocate_memory(0, TRUE); + CHECK_PTR_NULL(buffer, "H5allocate_memory"); /*BAD*/ +#endif /* NDEBUG */ + + /* RESIZE */ + + /* Size zero returns NULL. Valgrind will confirm buffer is freed. */ + size = 1024; + buffer = H5allocate_memory(size, TRUE); + resized = H5resize_memory(buffer, 0); + CHECK_PTR_NULL(resized, "H5resize_memory"); + + /* NULL input pointer returns new buffer */ + resized = H5resize_memory(NULL, 1024); + CHECK_PTR(resized, "H5resize_memory"); + H5free_memory(resized); + + /* NULL input pointer and size zero returns NULL */ +#ifdef NDEBUG + resized = H5resize_memory(NULL, 0); + CHECK_PTR_NULL(resized, "H5resize_memory"); /*BAD*/ +#endif /* NDEBUG */ + +} /* end test_misc32() */ + + +/**************************************************************** ** ** test_misc(): Main misc. test routine. ** @@ -5349,6 +5428,7 @@ test_misc(void) test_misc29(); /* Test that speculative metadata reads are handled correctly */ test_misc30(); /* Exercise local heap loading bug where free lists were getting dropped */ test_misc31(); /* Test Reentering library through deprecated routines after H5close() */ + test_misc32(); /* Test filter memory allocation functions */ } /* test_misc() */ diff --git a/test/trefer.c b/test/trefer.c index 9cb7f26..6d72aee 100644 --- a/test/trefer.c +++ b/test/trefer.c @@ -522,6 +522,12 @@ test_reference_region(void) H5O_type_t obj_type; /* Type of object */ int i, j; /* counting variables */ herr_t ret; /* Generic return value */ + haddr_t addr = HADDR_UNDEF; /* test for undefined reference */ + hid_t dset_NA; /* Dataset id for undefined reference */ + hid_t space_NA; /* Dataspace id for undefined reference */ + hsize_t dims_NA[1] = {1}; /* Dims array for undefined reference */ + hdset_reg_ref_t wdata_NA[1], /* Write buffer */ + rdata_NA[1]; /* Read buffer */ /* Output message about test being performed */ MESSAGE(5, ("Testing Dataset Region Reference Functions\n")); @@ -612,6 +618,31 @@ test_reference_region(void) ret = H5Dwrite(dset1, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, wbuf); CHECK(ret, FAIL, "H5Dwrite"); + /* + * Store a dataset region reference which will not get written to disk + */ + + /* Create reference to an element in dset1 */ + ret = H5Sselect_elements(sid2, H5S_SELECT_SET, (size_t)1, (const hsize_t *)coord1); + CHECK(ret, FAIL, "H5Sselect_elements"); + ret = H5Rcreate(&wdata_NA[0], fid1, "/Dataset1", H5R_DATASET_REGION, sid2); + CHECK(ret, FAIL, "H5Rcreate"); + + /* Create the dataspace of the region references */ + space_NA = H5Screate_simple(1, dims_NA, NULL); + CHECK(space_NA, FAIL, "H5Screate_simple"); + + /* Create the dataset and write the region references to it */ + dset_NA = H5Dcreate2(fid1, "DS_NA", H5T_STD_REF_DSETREG, space_NA, H5P_DEFAULT, + H5P_DEFAULT, H5P_DEFAULT); + CHECK(dset_NA, FAIL, "H5Dcreate"); + + /* Close and release resources for undefined region reference tests */ + ret = H5Dclose(dset_NA); + CHECK(ret, FAIL, "H5Dclose"); + ret = H5Sclose(space_NA); + CHECK(ret, FAIL, "H5Sclose"); + /* Close disk dataspace */ ret = H5Sclose(sid1); CHECK(ret, FAIL, "H5Sclose"); @@ -632,6 +663,41 @@ test_reference_region(void) fid1 = H5Fopen(FILE2, H5F_ACC_RDWR, H5P_DEFAULT); CHECK(fid1, FAIL, "H5Fopen"); + /* + * Start the test of an undefined reference + */ + + /* Open the dataset of the undefined references */ + dset_NA = H5Dopen2(fid1, "DS_NA", H5P_DEFAULT); + CHECK(dset_NA, FAIL, "H5Dopen2"); + + /* Read the data */ + ret = H5Dread(dset_NA, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata_NA); + CHECK(ret, FAIL, "H5Dread"); + + /* + * Dereference an undefined reference (should fail) + */ + H5E_BEGIN_TRY { + dset2 = H5Rdereference2(dset_NA, H5P_DEFAULT, H5R_DATASET_REGION, &rdata_NA[0]); + } H5E_END_TRY; + VERIFY(dset2, FAIL, "H5Rdereference2"); + + /* Close and release resources. */ + ret = H5Dclose(dset_NA); + CHECK(ret, FAIL, "H5Dclose"); + + /* This close should fail since H5Rdereference2 never created + * the id of the referenced object. */ + H5E_BEGIN_TRY { + ret = H5Dclose(dset2); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Dclose"); + + /* + * End the test of an undefined reference + */ + /* Open the dataset */ dset1 = H5Dopen2(fid1, "/Dataset1", H5P_DEFAULT); CHECK(dset1, FAIL, "H5Dopen2"); @@ -640,6 +706,10 @@ test_reference_region(void) ret = H5Dread(dset1, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, rbuf); CHECK(ret, FAIL, "H5Dread"); + /* Try to read an unaddressed dataset */ + dset2 = H5Rdereference2(dset1, dapl_id, H5R_DATASET_REGION, &addr); + VERIFY(dset2, FAIL, "H5Rdereference2 haddr_undef"); + /* Try to open objects */ dset2 = H5Rdereference2(dset1, dapl_id, H5R_DATASET_REGION, &rbuf[0]); CHECK(dset2, FAIL, "H5Rdereference2"); @@ -1070,6 +1140,7 @@ test_reference_obj_deleted(void) hid_t sid1; /* Dataspace ID */ hobj_ref_t oref; /* Object Reference to test */ H5O_type_t obj_type; /* Object type */ + haddr_t addr = HADDR_UNDEF; /* test for undefined reference */ herr_t ret; /* Generic return value */ /* Create file */ @@ -1127,6 +1198,10 @@ test_reference_obj_deleted(void) dataset = H5Dopen2(fid1, "/Dataset2", H5P_DEFAULT); CHECK(ret, FAIL, "H5Dopen2"); + /* Open undefined reference */ + dset2 = H5Rdereference2(dataset, H5P_DEFAULT, H5R_OBJECT, &addr); + VERIFY(dset2, FAIL, "H5Rdereference2"); + /* Read selection from disk */ HDmemset(&oref, 0, sizeof(hobj_ref_t)); ret = H5Dread(dataset, H5T_STD_REF_OBJ, H5S_ALL, H5S_ALL, H5P_DEFAULT, &oref); diff --git a/test/tselect.c b/test/tselect.c index d5a1f4c..b34d095 100644 --- a/test/tselect.c +++ b/test/tselect.c @@ -162,6 +162,12 @@ /* #defines for shape same / different rank tests */ #define SS_DR_MAX_RANK 5 +/* Information for regular hyperslab query test */ +#define SPACE13_RANK 3 +#define SPACE13_DIM1 50 +#define SPACE13_DIM2 50 +#define SPACE13_DIM3 50 +#define SPACE13_NPOINTS 4 /* Location comparison function */ @@ -13069,6 +13075,161 @@ test_select_bounds(void) /**************************************************************** ** +** test_hyper_regular(): Tests query operations on regular hyperslabs +** +****************************************************************/ +static void +test_hyper_regular(void) +{ + hid_t sid; /* Dataspace ID */ + const hsize_t dims[SPACE13_RANK] = {SPACE13_DIM1, SPACE13_DIM2, SPACE13_DIM3}; /* Dataspace dimensions */ + hsize_t coord[SPACE13_NPOINTS][SPACE13_RANK]; /* Coordinates for point selection */ + hsize_t start[SPACE13_RANK]; /* The start of the hyperslab */ + hsize_t stride[SPACE13_RANK]; /* The stride between block starts for the hyperslab */ + hsize_t count[SPACE13_RANK]; /* The number of blocks for the hyperslab */ + hsize_t block[SPACE13_RANK]; /* The size of each block for the hyperslab */ + hsize_t t_start[SPACE13_RANK]; /* Temporary start of the hyperslab */ + hsize_t t_count[SPACE13_RANK]; /* Temporary number of blocks for the hyperslab */ + hsize_t q_start[SPACE13_RANK]; /* The queried start of the hyperslab */ + hsize_t q_stride[SPACE13_RANK]; /* The queried stride between block starts for the hyperslab */ + hsize_t q_count[SPACE13_RANK]; /* The queried number of blocks for the hyperslab */ + hsize_t q_block[SPACE13_RANK]; /* The queried size of each block for the hyperslab */ + htri_t is_regular; /* Whether a hyperslab selection is regular */ + unsigned u; /* Local index variable */ + herr_t ret; /* Generic return value */ + + /* Output message about test being performed */ + MESSAGE(6, ("Testing queries on regular hyperslabs\n")); + + /* Create dataspace */ + sid = H5Screate_simple(SPACE13_RANK, dims, NULL); + CHECK(sid, FAIL, "H5Screate_simple"); + + /* Query if 'all' selection is regular hyperslab (should fail) */ + H5E_BEGIN_TRY { + is_regular = H5Sis_regular_hyperslab(sid); + } H5E_END_TRY; + VERIFY(is_regular, FAIL, "H5Sis_regular_hyperslab"); + + /* Query regular hyperslab selection info (should fail) */ + H5E_BEGIN_TRY { + ret = H5Sget_regular_hyperslab(sid, q_start, q_stride, q_count, q_block); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Sget_regular_hyperslab"); + + /* Set 'none' selection */ + ret = H5Sselect_none(sid); + CHECK(ret, FAIL, "H5Sselect_none"); + + /* Query if 'none' selection is regular hyperslab (should fail) */ + H5E_BEGIN_TRY { + is_regular = H5Sis_regular_hyperslab(sid); + } H5E_END_TRY; + VERIFY(is_regular, FAIL, "H5Sis_regular_hyperslab"); + + /* Query regular hyperslab selection info (should fail) */ + H5E_BEGIN_TRY { + ret = H5Sget_regular_hyperslab(sid, q_start, q_stride, q_count, q_block); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Sget_regular_hyperslab"); + + /* Set point selection */ + coord[0][0] = 3; coord[0][1] = 3; coord[0][2] = 3; + coord[1][0] = 3; coord[1][1] = 48; coord[1][2] = 48; + coord[2][0] = 48; coord[2][1] = 3; coord[2][2] = 3; + coord[3][0] = 48; coord[3][1] = 48; coord[3][2] = 48; + ret = H5Sselect_elements(sid, H5S_SELECT_SET, (size_t)SPACE13_NPOINTS, (const hsize_t *)coord); + CHECK(ret, FAIL, "H5Sselect_elements"); + + /* Query if 'point' selection is regular hyperslab (should fail) */ + H5E_BEGIN_TRY { + is_regular = H5Sis_regular_hyperslab(sid); + } H5E_END_TRY; + VERIFY(is_regular, FAIL, "H5Sis_regular_hyperslab"); + + /* Query regular hyperslab selection info (should fail) */ + H5E_BEGIN_TRY { + ret = H5Sget_regular_hyperslab(sid, q_start, q_stride, q_count, q_block); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Sget_regular_hyperslab"); + + /* Set "regular" hyperslab selection */ + start[0] = 2; start[1] = 2; start[2] = 2; + stride[0] = 5; stride[1] = 5; stride[2] = 5; + count[0] = 3; count[1] = 3; count[2] = 3; + block[0] = 4; block[1] = 4; block[2] = 4; + ret = H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, stride, count, block); + CHECK(ret, FAIL, "H5Sselect_hyperslab"); + + /* Query if 'hyperslab' selection is regular hyperslab (should be TRUE) */ + is_regular = H5Sis_regular_hyperslab(sid); + VERIFY(is_regular, TRUE, "H5Sis_regular_hyperslab"); + + /* Retrieve the hyperslab parameters */ + ret = H5Sget_regular_hyperslab(sid, q_start, q_stride, q_count, q_block); + CHECK(ret, FAIL, "H5Sget_regular_hyperslab"); + + /* Verify the hyperslab parameters */ + for(u = 0; u < SPACE13_RANK; u++) { + if(start[u] != q_start[u]) + ERROR("H5Sget_regular_hyperslab, start"); + if(stride[u] != q_stride[u]) + ERROR("H5Sget_regular_hyperslab, stride"); + if(count[u] != q_count[u]) + ERROR("H5Sget_regular_hyperslab, count"); + if(block[u] != q_block[u]) + ERROR("H5Sget_regular_hyperslab, block"); + } /* end for */ + + /* 'OR' in another point */ + t_start[0] = 0; t_start[1] = 0; t_start[2] = 0; + t_count[0] = 1; t_count[1] = 1; t_count[2] = 1; + ret = H5Sselect_hyperslab(sid, H5S_SELECT_OR, t_start, NULL, t_count, NULL); + CHECK(ret, FAIL, "H5Sselect_hyperslab"); + + /* Query if 'hyperslab' selection is regular hyperslab (should be FALSE) */ + is_regular = H5Sis_regular_hyperslab(sid); + VERIFY(is_regular, FALSE, "H5Sis_regular_hyperslab"); + + /* Query regular hyperslab selection info (should fail) */ + H5E_BEGIN_TRY { + ret = H5Sget_regular_hyperslab(sid, q_start, q_stride, q_count, q_block); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Sget_regular_hyperslab"); + + /* 'XOR' in the point again, to remove it, which should make it regular again */ + t_start[0] = 0; t_start[1] = 0; t_start[2] = 0; + t_count[0] = 1; t_count[1] = 1; t_count[2] = 1; + ret = H5Sselect_hyperslab(sid, H5S_SELECT_XOR, t_start, NULL, t_count, NULL); + CHECK(ret, FAIL, "H5Sselect_hyperslab"); + + /* Query if 'hyperslab' selection is regular hyperslab (should be TRUE) */ + is_regular = H5Sis_regular_hyperslab(sid); + VERIFY(is_regular, TRUE, "H5Sis_regular_hyperslab"); + + /* Retrieve the hyperslab parameters */ + ret = H5Sget_regular_hyperslab(sid, q_start, q_stride, q_count, q_block); + CHECK(ret, FAIL, "H5Sget_regular_hyperslab"); + + /* Verify the hyperslab parameters */ + for(u = 0; u < SPACE13_RANK; u++) { + if(start[u] != q_start[u]) + ERROR("H5Sget_regular_hyperslab, start"); + if(stride[u] != q_stride[u]) + ERROR("H5Sget_regular_hyperslab, stride"); + if(count[u] != q_count[u]) + ERROR("H5Sget_regular_hyperslab, count"); + if(block[u] != q_block[u]) + ERROR("H5Sget_regular_hyperslab, block"); + } /* end for */ + + /* Close the dataspace */ + ret = H5Sclose(sid); + CHECK(ret, FAIL, "H5Sclose"); +} /* test_hyper_regular() */ + +/**************************************************************** +** ** test_select(): Main H5S selection testing routine. ** ****************************************************************/ @@ -13228,6 +13389,9 @@ test_select(void) /* Test selection bounds with & without offsets */ test_select_bounds(); + /* Test 'regular' hyperslab query routines */ + test_hyper_regular(); + } /* test_select() */ diff --git a/test/tsohm.c b/test/tsohm.c index 8ebfd52..9da655e 100644 --- a/test/tsohm.c +++ b/test/tsohm.c @@ -57,7 +57,7 @@ const unsigned test_minsizes[H5O_SHMESG_MAX_NINDEXES] = {0, 2, 40, 100, 3, 1000} #define NAME_BUF_SIZE 512 /* How much overhead counts as "not much" when converting B-trees, etc. */ -#define OVERHEAD_ALLOWED 1.15 +#define OVERHEAD_ALLOWED 1.15F #define NUM_DATASETS 10 #define NUM_ATTRIBUTES 100 @@ -600,7 +600,7 @@ size1_helper(hid_t file, const char* filename, hid_t fapl_id, int test_file_clos wdata.i6 = 66; wdata.i7 = 77; wdata.i8 = 88; - wdata.f1 = 0.0; + wdata.f1 = 0.0F; /* Intialize rdata */ HDmemset(&rdata, 0, sizeof(rdata)); diff --git a/test/ttsafe_cancel.c b/test/ttsafe_cancel.c index 56f431e..d8ed462 100644 --- a/test/ttsafe_cancel.c +++ b/test/ttsafe_cancel.c @@ -123,7 +123,7 @@ void tts_cancel(void) void *tts_cancel_thread(void UNUSED *arg) { int datavalue; - int *buffer; + int buffer; hid_t dataspace, datatype, dataset; hsize_t dimsf[1]; /* dataset dimensions */ cancel_cleanup_t *cleanup_structure; @@ -156,10 +156,9 @@ void *tts_cancel_thread(void UNUSED *arg) ret=H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &datavalue); assert(ret>=0); - buffer = HDmalloc(sizeof(int)); - ret=H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); + ret=H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &buffer); assert(ret>=0); - ret=H5Diterate(buffer, H5T_NATIVE_INT, dataspace, tts_cancel_callback, &dataset); + ret=H5Diterate(&buffer, H5T_NATIVE_INT, dataspace, tts_cancel_callback, &dataset); assert(ret>=0); sleep(3); diff --git a/test/tunicode.c b/test/tunicode.c index 7dc3391..82dc429 100644 --- a/test/tunicode.c +++ b/test/tunicode.c @@ -39,8 +39,8 @@ #define RANK 1 #define COMP_INT_VAL 7 -#define COMP_FLOAT_VAL -42.0 -#define COMP_DOUBLE_VAL 42.0 +#define COMP_FLOAT_VAL -42.0F +#define COMP_DOUBLE_VAL 42.0F /* Test function prototypes */ void test_fl_string(hid_t fid, const char *string); diff --git a/test/tvltypes.c b/test/tvltypes.c index 516974e..19e8252 100644 --- a/test/tvltypes.c +++ b/test/tvltypes.c @@ -731,7 +731,7 @@ test_vltypes_vlen_compound(void) wdata[i].len=i+1; for(j=0; j<(i+1); j++) { ((s1 *)wdata[i].p)[j].i=i*10+j; - ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0); + ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0F); } /* end for */ } /* end for */ @@ -877,7 +877,7 @@ rewrite_vltypes_vlen_compound(void) wdata[i].len = i + increment; for(j = 0; j < (i + increment); j++) { ((s1 *)wdata[i].p)[j].i = i * 40 + j; - ((s1 *)wdata[i].p)[j].f = (float)((i * 60 + j) / 3.0); + ((s1 *)wdata[i].p)[j].f = (float)((i * 60 + j) / 3.0F); } /* end for */ } /* end for */ @@ -1018,7 +1018,7 @@ test_vltypes_compound_vlen_vlen(void) /* Allocate and initialize VL data to write */ for(i=0; i<SPACE3_DIM1; i++) { wdata[i].i=i*10; - wdata[i].f=(float)((i*20)/3.0); + wdata[i].f=(float)((i*20)/3.0F); wdata[i].v.p=HDmalloc((i+L1_INCM)*sizeof(hvl_t)); wdata[i].v.len=i+L1_INCM; for(t1=(wdata[i].v).p,j=0; j<(i+L1_INCM); j++, t1++) { @@ -1479,7 +1479,7 @@ test_vltypes_compound_vlen_atomic(void) /* Allocate and initialize VL data to write */ for(i=0; i<SPACE1_DIM1; i++) { wdata[i].i=i*10; - wdata[i].f=(float)((i*20)/3.0); + wdata[i].f=(float)((i*20)/3.0F); wdata[i].v.p=HDmalloc((i+1)*sizeof(unsigned int)); wdata[i].v.len=i+1; for(j=0; j<(i+1); j++) @@ -1595,8 +1595,8 @@ test_vltypes_compound_vlen_atomic(void) /* Check data read in */ for(i = 0; i < SPACE1_DIM1; i++) - if(rdata[i].i != 0 || !FLT_ABS_EQUAL(rdata[i].f, 0.0) || rdata[i].v.len != 0 || rdata[i].v.p != NULL) - TestErrPrintf("VL doesn't match!, rdata[%d].i=%d, rdata[%d].f=%f, rdata[%d].v.len=%u, rdata[%d].v.p=%p\n",(int)i,rdata[i].i,(int)i,rdata[i].f,(int)i,(unsigned)rdata[i].v.len,(int)i,rdata[i].v.p); + if(rdata[i].i != 0 || !FLT_ABS_EQUAL(rdata[i].f, 0.0F) || rdata[i].v.len != 0 || rdata[i].v.p != NULL) + TestErrPrintf("VL doesn't match!, rdata[%d].i=%d, rdata[%d].f=%f, rdata[%d].v.len=%u, rdata[%d].v.p=%p\n",(int)i,rdata[i].i,(int)i,(double)rdata[i].f,(int)i,(unsigned)rdata[i].v.len,(int)i,rdata[i].v.p); /* Write dataset to disk */ ret = H5Dwrite(dataset, tid2, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata); @@ -1697,7 +1697,7 @@ rewrite_vltypes_compound_vlen_atomic(void) /* Allocate and initialize VL data to write */ for(i = 0; i < SPACE1_DIM1; i++) { wdata[i].i = i * 40; - wdata[i].f = (float)((i * 50) / 3.0); + wdata[i].f = (float)((i * 50) / 3.0F); wdata[i].v.p = HDmalloc((i + increment) * sizeof(unsigned int)); wdata[i].v.len = i + increment; for(j = 0; j < (i + increment); j++) @@ -2430,8 +2430,8 @@ test_vltypes_fill_value(void) hsize_t small_dims[] = {SPACE4_DIM_SMALL}; hsize_t large_dims[] = {SPACE4_DIM_LARGE}; size_t dset_elmts; /* Number of elements in a particular dataset */ - const dtype1_struct fill1 = {1, 2, "foobar", "", NULL, "\0", "dead", 3, 4.0, 100.0, 1.0, "liquid", "meter"}; - const dtype1_struct wdata = {3, 4, "", NULL, "\0", "foo", "two", 6, 8.0, 200.0, 2.0, "solid", "yard"}; + const dtype1_struct fill1 = {1, 2, "foobar", "", NULL, "\0", "dead", 3, 4.0F, 100.0F, 1.0F, "liquid", "meter"}; + const dtype1_struct wdata = {3, 4, "", NULL, "\0", "foo", "two", 6, 8.0F, 200.0F, 2.0F, "solid", "yard"}; dtype1_struct *rbuf = NULL; /* Buffer for reading data */ size_t mem_used = 0; /* Memory used during allocation */ H5D_layout_t layout; /* Dataset storage layout */ diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt index 8c631a3..70e0246 100644 --- a/testpar/CMakeLists.txt +++ b/testpar/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TEST_PAR) #----------------------------------------------------------------------------- @@ -29,14 +29,14 @@ set (testphdf5_SRCS #-- Adding test for testhdf5 add_executable (testphdf5 ${testphdf5_SRCS}) TARGET_NAMING (testphdf5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (testphdf5 " " " ") +TARGET_C_PROPERTIES (testphdf5 ${LIB_TYPE} " " " ") target_link_libraries (testphdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS}) set_target_properties (testphdf5 PROPERTIES FOLDER test/par) MACRO (ADD_H5P_EXE file) add_executable (${file} ${HDF5_TEST_PAR_SOURCE_DIR}/${file}.c) TARGET_NAMING (${file} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${file} " " " ") + TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ") target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS}) set_target_properties (${file} PROPERTIES FOLDER test/par) ENDMACRO (ADD_H5P_EXE file) @@ -46,6 +46,8 @@ set (H5P_TESTS t_cache t_pflush1 t_pflush2 + t_pshutdown + t_prestart t_shapesame ) diff --git a/testpar/Makefile.am b/testpar/Makefile.am index 448f745..1eae439 100644 --- a/testpar/Makefile.am +++ b/testpar/Makefile.am @@ -25,7 +25,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test # Test programs. These are our main targets. # -TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame +TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_shapesame check_PROGRAMS = $(TEST_PROG_PARA) @@ -39,7 +39,8 @@ LDADD = $(LIBH5TEST) $(LIBHDF5) # Temporary files # MPItest.h5 is from t_mpi # Para*.h5 are from testphdf +# shutdown.h5 is from t_pshutdown # go is used for debugging. See testphdf5.c. -CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 go +CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 shutdown.h5 go include $(top_srcdir)/config/conclude.am diff --git a/testpar/Makefile.in b/testpar/Makefile.in index fef13bd..7787a65 100644 --- a/testpar/Makefile.in +++ b/testpar/Makefile.in @@ -103,7 +103,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = subdir = testpar ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -111,7 +112,8 @@ CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = t_mpi$(EXEEXT) testphdf5$(EXEEXT) t_cache$(EXEEXT) \ - t_pflush1$(EXEEXT) t_pflush2$(EXEEXT) t_shapesame$(EXEEXT) + t_pflush1$(EXEEXT) t_pflush2$(EXEEXT) t_pshutdown$(EXEEXT) \ + t_prestart$(EXEEXT) t_shapesame$(EXEEXT) t_cache_SOURCES = t_cache.c t_cache_OBJECTS = t_cache.$(OBJEXT) t_cache_LDADD = $(LDADD) @@ -132,6 +134,14 @@ t_pflush2_SOURCES = t_pflush2.c t_pflush2_OBJECTS = t_pflush2.$(OBJEXT) t_pflush2_LDADD = $(LDADD) t_pflush2_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) +t_prestart_SOURCES = t_prestart.c +t_prestart_OBJECTS = t_prestart.$(OBJEXT) +t_prestart_LDADD = $(LDADD) +t_prestart_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) +t_pshutdown_SOURCES = t_pshutdown.c +t_pshutdown_OBJECTS = t_pshutdown.$(OBJEXT) +t_pshutdown_LDADD = $(LDADD) +t_pshutdown_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) t_shapesame_SOURCES = t_shapesame.c t_shapesame_OBJECTS = t_shapesame.$(OBJEXT) t_shapesame_LDADD = $(LDADD) @@ -178,10 +188,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_shapesame.c \ - $(testphdf5_SOURCES) -DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_shapesame.c \ - $(testphdf5_SOURCES) +SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_prestart.c \ + t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES) +DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_prestart.c \ + t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -425,7 +435,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -457,7 +466,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -476,17 +484,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -549,7 +554,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -564,10 +568,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -681,18 +681,19 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files # MPItest.h5 is from t_mpi # Para*.h5 are from testphdf +# shutdown.h5 is from t_pshutdown # go is used for debugging. See testphdf5.c. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog MPItest.h5 Para*.h5 \ - CacheTestDummy.h5 go +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 MPItest.h5 \ + Para*.h5 CacheTestDummy.h5 shutdown.h5 go # Test programs. These are our main targets. # -TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame +TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_shapesame testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \ t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c \ t_prop.c @@ -781,6 +782,14 @@ t_pflush2$(EXEEXT): $(t_pflush2_OBJECTS) $(t_pflush2_DEPENDENCIES) $(EXTRA_t_pfl @rm -f t_pflush2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(t_pflush2_OBJECTS) $(t_pflush2_LDADD) $(LIBS) +t_prestart$(EXEEXT): $(t_prestart_OBJECTS) $(t_prestart_DEPENDENCIES) $(EXTRA_t_prestart_DEPENDENCIES) + @rm -f t_prestart$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(t_prestart_OBJECTS) $(t_prestart_LDADD) $(LIBS) + +t_pshutdown$(EXEEXT): $(t_pshutdown_OBJECTS) $(t_pshutdown_DEPENDENCIES) $(EXTRA_t_pshutdown_DEPENDENCIES) + @rm -f t_pshutdown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(t_pshutdown_OBJECTS) $(t_pshutdown_LDADD) $(LIBS) + t_shapesame$(EXEEXT): $(t_shapesame_OBJECTS) $(t_shapesame_DEPENDENCIES) $(EXTRA_t_shapesame_DEPENDENCIES) @rm -f t_shapesame$(EXEEXT) $(AM_V_CCLD)$(LINK) $(t_shapesame_OBJECTS) $(t_shapesame_LDADD) $(LIBS) @@ -807,7 +816,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_pflush1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_pflush2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_ph5basic.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_prestart.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_prop.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_pshutdown.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_shapesame.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_span_tree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testphdf5.Po@am__quote@ diff --git a/testpar/t_cache.c b/testpar/t_cache.c index cffe832..f875a76 100644 --- a/testpar/t_cache.c +++ b/testpar/t_cache.c @@ -4245,7 +4245,6 @@ setup_rand(void) unsigned predefined_seeds[3] = {33402, 33505, 33422}; unsigned seed; struct timeval tv; - struct timezone tz; if ( ( use_predefined_seeds ) && ( world_mpi_size == num_predefined_seeds ) ) { @@ -4261,7 +4260,7 @@ setup_rand(void) } else { - if ( HDgettimeofday(&tv, &tz) != 0 ) { + if ( HDgettimeofday(&tv, NULL) != 0 ) { nerrors++; if ( verbose ) { diff --git a/testpar/t_dset.c b/testpar/t_dset.c index e27cddc..ae022fb 100644 --- a/testpar/t_dset.c +++ b/testpar/t_dset.c @@ -2502,7 +2502,6 @@ extend_readAll(void) * Example of using the parallel HDF5 library to read a compressed * dataset in an HDF5 file with collective parallel access support. */ - #ifdef H5_HAVE_FILTER_DEFLATE void compress_readAll(void) @@ -3451,7 +3450,6 @@ actual_io_mode_tests(void) { #define DSET_NOCOLCAUSE "nocolcause" #define NELM 2 #define FILE_EXTERNAL "nocolcause_extern.data" -#undef H5_HAVE_FILTER_FLETCHER32 static void test_no_collective_cause_mode(int selection_mode) { @@ -3487,9 +3485,9 @@ test_no_collective_cause_mode(int selection_mode) hid_t file_space = -1; hsize_t chunk_dims[RANK]; herr_t ret; -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ H5Z_filter_t filter_info; -#endif +#endif /* LATER */ /* set to global value as default */ int l_facc_type = facc_type; char message[256]; @@ -3521,7 +3519,7 @@ test_no_collective_cause_mode(int selection_mode) is_chunked = 0; } -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ if (selection_mode & TEST_FILTERS) { ret = H5Zfilter_avail(H5Z_FILTER_FLETCHER32); VRFY ((ret >=0 ), "Fletcher32 filter is available.\n"); @@ -3532,7 +3530,7 @@ test_no_collective_cause_mode(int selection_mode) ret = H5Pset_fletcher32(dcpl); VRFY((ret >= 0),"set filter (flecher32) succeeded"); } -#endif /* H5_HAVE_FILTER_FLETCHER32 */ +#endif /* LATER */ if (selection_mode & TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES) { sid = H5Screate(H5S_NULL); @@ -3613,13 +3611,13 @@ test_no_collective_cause_mode(int selection_mode) no_collective_cause_global_expected |= H5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET; } -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ if (selection_mode & TEST_FILTERS) { test_name = "Broken Collective I/O - Filter is required"; no_collective_cause_local_expected |= H5D_MPIO_FILTERS; no_collective_cause_global_expected |= H5D_MPIO_FILTERS; } -#endif /* H5_HAVE_FILTER_FLETCHER32 */ +#endif /* LATER */ if (selection_mode & TEST_COLLECTIVE) { test_name = "Broken Collective I/O - Not Broken"; @@ -3808,9 +3806,9 @@ test_no_collective_cause_mode_filter(int selection_mode) hid_t file_space = -1; hsize_t chunk_dims[RANK]; herr_t ret; -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ H5Z_filter_t filter_info; -#endif +#endif /* LATER */ char message[256]; /* Set up MPI parameters */ @@ -3829,7 +3827,7 @@ test_no_collective_cause_mode_filter(int selection_mode) VRFY((dcpl >= 0), "dataset creation plist created successfully"); if (selection_mode == TEST_FILTERS_READ ) { -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ ret = H5Zfilter_avail(H5Z_FILTER_FLETCHER32); VRFY ((ret >=0 ), "Fletcher32 filter is available.\n"); @@ -3838,7 +3836,7 @@ test_no_collective_cause_mode_filter(int selection_mode) ret = H5Pset_fletcher32(dcpl); VRFY((ret >= 0),"set filter (flecher32) succeeded"); -#endif /* H5_HAVE_FILTER_FLETCHER32 */ +#endif /* LATER */ } else { VRFY(0, "Unexpected mode, only test for TEST_FILTERS_READ."); @@ -3876,12 +3874,12 @@ test_no_collective_cause_mode_filter(int selection_mode) dcpl, H5P_DEFAULT); VRFY((dataset >= 0), "H5Dcreate2() dataset succeeded"); -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ /* Set expected cause */ test_name = "Broken Collective I/O - Filter is required"; no_collective_cause_local_expected = H5D_MPIO_FILTERS; no_collective_cause_global_expected = H5D_MPIO_FILTERS; -#endif +#endif /* LATER */ /* Get the file dataspace */ file_space = H5Dget_space(dataset); @@ -4010,13 +4008,13 @@ no_collective_cause_tests(void) test_no_collective_cause_mode (TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES); test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT); test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL); -#ifdef H5_HAVE_FILTER_FLETCHER32 +#ifdef LATER /* fletcher32 */ /* TODO: use this instead of below TEST_FILTERS_READ when H5Dcreate and * H5Dwrite is ready for mpio + filter feature. */ /* test_no_collective_cause_mode (TEST_FILTERS); */ test_no_collective_cause_mode_filter (TEST_FILTERS_READ); -#endif +#endif /* LATER */ /* * Test combined causes diff --git a/testpar/t_filter_read.c b/testpar/t_filter_read.c index 7e782ce..5e1cd04 100644 --- a/testpar/t_filter_read.c +++ b/testpar/t_filter_read.c @@ -215,9 +215,7 @@ test_filter_read(void) hsize_t null_size; /* Size of dataset without filters */ herr_t hrc; const char *filename; -#ifdef H5_HAVE_FILTER_FLETCHER32 hsize_t fletcher32_size; /* Size of dataset with Fletcher32 checksum */ -#endif /* H5_HAVE_FILTER_FLETCHER32 */ #ifdef H5_HAVE_FILTER_DEFLATE hsize_t deflate_size; /* Size of dataset with deflate filter */ @@ -229,13 +227,11 @@ test_filter_read(void) unsigned szip_pixels_per_block=4; #endif /* H5_HAVE_FILTER_SZIP */ -#ifdef H5_HAVE_FILTER_SHUFFLE hsize_t shuffle_size; /* Size of dataset with shuffle filter */ -#endif /* H5_HAVE_FILTER_SHUFFLE */ -#if(defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP) && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 - hsize_t combo_size; /* Size of dataset with shuffle+deflate filter */ -#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ +#if(defined H5_HAVE_FILTER_DEFLATE || defined H5_HAVE_FILTER_SZIP) + hsize_t combo_size; /* Size of dataset with multiple filters */ +#endif /* H5_HAVE_FILTER_DEFLATE || H5_HAVE_FILTER_SZIP */ filename = GetTestParameters(); @@ -262,7 +258,6 @@ test_filter_read(void) * STEP 1: Test Fletcher32 Checksum by itself. *---------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_FLETCHER32 dc = H5Pcreate(H5P_DATASET_CREATE); VRFY(dc>=0,"H5Pset_filter"); @@ -280,7 +275,6 @@ test_filter_read(void) hrc = H5Pclose (dc); VRFY(hrc>=0, "H5Pclose"); -#endif /* H5_HAVE_FILTER_FLETCHER32 */ /*---------------------------------------------------------- * STEP 2: Test deflation by itself. @@ -305,6 +299,7 @@ test_filter_read(void) #endif /* H5_HAVE_FILTER_DEFLATE */ + /*---------------------------------------------------------- * STEP 3: Test szip compression by itself. *---------------------------------------------------------- @@ -328,11 +323,12 @@ test_filter_read(void) } #endif /* H5_HAVE_FILTER_SZIP */ + /*---------------------------------------------------------- * STEP 4: Test shuffling by itself. *---------------------------------------------------------- */ -#ifdef H5_HAVE_FILTER_SHUFFLE + dc = H5Pcreate(H5P_DATASET_CREATE); VRFY(dc>=0, "H5Pcreate"); @@ -349,13 +345,12 @@ test_filter_read(void) hrc = H5Pclose (dc); VRFY(hrc>=0, "H5Pclose"); -#endif /* H5_HAVE_FILTER_SHUFFLE */ /*---------------------------------------------------------- * STEP 5: Test shuffle + deflate + checksum in any order. *---------------------------------------------------------- */ -#if defined H5_HAVE_FILTER_DEFLATE && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 +#ifdef H5_HAVE_FILTER_DEFLATE /* Testing shuffle+deflate+checksum filters (checksum first) */ dc = H5Pcreate(H5P_DATASET_CREATE); VRFY(dc>=0, "H5Pcreate"); @@ -400,13 +395,13 @@ test_filter_read(void) hrc = H5Pclose (dc); VRFY(hrc>=0, "H5Pclose"); -#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ +#endif /* H5_HAVE_FILTER_DEFLATE */ /*---------------------------------------------------------- * STEP 6: Test shuffle + szip + checksum in any order. *---------------------------------------------------------- */ -#if defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 +#ifdef H5_HAVE_FILTER_SZIP /* Testing shuffle+szip(with encoder)+checksum filters(checksum first) */ dc = H5Pcreate(H5P_DATASET_CREATE); @@ -458,6 +453,6 @@ test_filter_read(void) VRFY(hrc>=0, "H5Pclose"); } -#endif /* H5_HAVE_FILTER_SZIP && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */ +#endif /* H5_HAVE_FILTER_SZIP */ } diff --git a/testpar/t_pflush1.c b/testpar/t_pflush1.c index ebe5c38..1bcfeb8 100644 --- a/testpar/t_pflush1.c +++ b/testpar/t_pflush1.c @@ -164,12 +164,9 @@ main(int argc, char* argv[]) } /* end else */ /* - * Some systems like Linux with mpich, if you just _exit without MPI_Finalize - * called, it would terminate but left the launching process waiting forever. - * OTHO, some systems like AIX do not like files not closed when MPI_Finalize - * is called. So, we need to get the MPI file handles, close them by hand, - * then MPI_Finalize. Then the _exit is still needed to stop at_exit from - * happening in some systems. + * Some systems like AIX do not like files not closed when MPI_Finalize + * is called. So, we need to get the MPI file handles, close them by hand. + * Then the _exit is still needed to stop at_exit from happening in some systems. * Note that MPIO VFD returns the address of the file-handle in the VFD struct * because MPI_File_close wants to modify the file-handle variable. */ @@ -195,13 +192,11 @@ main(int argc, char* argv[]) fflush(stdout); fflush(stderr); - MPI_Finalize(); HD_exit(0); error: fflush(stdout); fflush(stderr); - MPI_Finalize(); HD_exit(1); } diff --git a/testpar/t_pflush2.c b/testpar/t_pflush2.c index 743a3d3..03f7c82 100644 --- a/testpar/t_pflush2.c +++ b/testpar/t_pflush2.c @@ -101,13 +101,17 @@ check_file(char* name, hid_t fapl) if(H5Dclose(dset) < 0) goto error; if(H5Fclose(file) < 0) goto error; if(H5Pclose(plist) < 0) goto error; + if(H5Sclose(space) < 0) goto error; return 0; error: H5E_BEGIN_TRY { - H5Fclose(file); H5Pclose(plist); + H5Gclose(groups); + H5Dclose(dset); + H5Fclose(file); + H5Sclose(space); } H5E_END_TRY; return 1; } diff --git a/testpar/t_prestart.c b/testpar/t_prestart.c new file mode 100644 index 0000000..fab4a7c --- /dev/null +++ b/testpar/t_prestart.c @@ -0,0 +1,138 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Programmer: Mohamad Chaarawi + * February 2015 + * + * Purpose: This test opens a file created by the t_pshutdown program + * and makes sure the objects created are there. + */ + +#include "testphdf5.h" + +int nerrors = 0; /* errors count */ + +const char *FILENAME[] = { + "shutdown", + NULL +}; + +int +main (int argc, char **argv) +{ + hid_t file_id, dset_id, grp_id; + hid_t fapl, sid, mem_dataspace; + herr_t ret; + char filename[1024]; + int mpi_size, mpi_rank, ndims, i, j; + MPI_Comm comm = MPI_COMM_WORLD; + MPI_Info info = MPI_INFO_NULL; + hsize_t dims[RANK]; + hsize_t start[RANK]; + hsize_t count[RANK]; + hsize_t stride[RANK]; + hsize_t block[RANK]; + DATATYPE *data_array = NULL, *dataptr; /* data buffer */ + + MPI_Init(&argc, &argv); + MPI_Comm_size(comm, &mpi_size); + MPI_Comm_rank(comm, &mpi_rank); + + if(MAINPROCESS) + TESTING("proper shutdown of HDF5 library"); + + /* Set up file access property list with parallel I/O access */ + fapl = H5Pcreate(H5P_FILE_ACCESS); + VRFY((fapl >= 0), "H5Pcreate succeeded"); + ret = H5Pset_fapl_mpio(fapl, comm, info); + VRFY((ret >= 0), ""); + + h5_fixname(FILENAME[0], fapl, filename, sizeof filename); + file_id = H5Fopen(filename, H5F_ACC_RDONLY, fapl); + VRFY((file_id >= 0), "H5Fopen succeeded"); + + grp_id = H5Gopen2(file_id, "Group", H5P_DEFAULT); + VRFY((grp_id >= 0), "H5Gopen succeeded"); + + dset_id = H5Dopen2(grp_id, "Dataset", H5P_DEFAULT); + VRFY((dset_id >= 0), "H5Dopen succeeded"); + + sid = H5Dget_space(dset_id); + VRFY((dset_id >= 0), "H5Dget_space succeeded"); + + ndims = H5Sget_simple_extent_dims(sid, dims, NULL); + VRFY((ndims == 2), "H5Sget_simple_extent_dims succeeded"); + VRFY(dims[0] == ROW_FACTOR*mpi_size, "Wrong dataset dimensions"); + VRFY(dims[1] == COL_FACTOR*mpi_size, "Wrong dataset dimensions"); + + /* allocate memory for data buffer */ + data_array = (DATATYPE *)HDmalloc(dims[0]*dims[1]*sizeof(DATATYPE)); + VRFY((data_array != NULL), "data_array HDmalloc succeeded"); + + /* Each process takes a slabs of rows. */ + block[0] = dims[0]/mpi_size; + block[1] = dims[1]; + stride[0] = block[0]; + stride[1] = block[1]; + count[0] = 1; + count[1] = 1; + start[0] = mpi_rank*block[0]; + start[1] = 0; + + ret = H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, stride, count, block); + VRFY((ret >= 0), "H5Sset_hyperslab succeeded"); + + /* create a memory dataspace independently */ + mem_dataspace = H5Screate_simple (RANK, block, NULL); + VRFY((mem_dataspace >= 0), ""); + + /* write data independently */ + ret = H5Dread(dset_id, H5T_NATIVE_INT, mem_dataspace, sid, + H5P_DEFAULT, data_array); + VRFY((ret >= 0), "H5Dwrite succeeded"); + + dataptr = data_array; + + for (i=0; i < block[0]; i++){ + for (j=0; j < block[1]; j++){ + if(*dataptr != mpi_rank+1) { + printf("Dataset Verify failed at [%lu][%lu](row %lu, col %lu): expect %d, got %d\n", + (unsigned long)i, (unsigned long)j, + (unsigned long)(i+start[0]), (unsigned long)(j+start[1]), + mpi_rank+1, *(dataptr)); + nerrors ++; + } + dataptr++; + } + } + MPI_Finalize(); + HDremove(filename); + + /* release data buffers */ + if(data_array) + HDfree(data_array); + + nerrors += GetTestNumErrs(); + + if(MAINPROCESS) { + if(0 == nerrors) + PASSED() + else + H5_FAILED() + } + + return (nerrors!=0); +} diff --git a/testpar/t_pshutdown.c b/testpar/t_pshutdown.c new file mode 100644 index 0000000..be9734f --- /dev/null +++ b/testpar/t_pshutdown.c @@ -0,0 +1,127 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Programmer: Mohamad Chaarawi + * February 2015 + * + * Purpose: This test creates a file and a bunch of objects in the + * file and then calls MPI_Finalize without closing anything. The + * library should exercise the attribute callback destroy attached to + * MPI_COMM_SELF and terminate the HDF5 library closing all open + * objects. The t_prestart test will read back the file and make sure + * all created objects are there. + */ + +#include "testphdf5.h" + +int nerrors = 0; /* errors count */ + +const char *FILENAME[] = { + "shutdown", + NULL +}; + +int +main (int argc, char **argv) +{ + hid_t file_id, dset_id, grp_id; + hid_t fapl, sid, mem_dataspace; + hsize_t dims[RANK], i; + herr_t ret; + char filename[1024]; + int mpi_size, mpi_rank; + MPI_Comm comm = MPI_COMM_WORLD; + MPI_Info info = MPI_INFO_NULL; + hsize_t start[RANK]; + hsize_t count[RANK]; + hsize_t stride[RANK]; + hsize_t block[RANK]; + DATATYPE *data_array = NULL; /* data buffer */ + + MPI_Init(&argc, &argv); + MPI_Comm_size(comm, &mpi_size); + MPI_Comm_rank(comm, &mpi_rank); + + if(MAINPROCESS) + TESTING("proper shutdown of HDF5 library"); + + /* Set up file access property list with parallel I/O access */ + fapl = H5Pcreate(H5P_FILE_ACCESS); + VRFY((fapl >= 0), "H5Pcreate succeeded"); + ret = H5Pset_fapl_mpio(fapl, comm, info); + VRFY((ret >= 0), ""); + + h5_fixname(FILENAME[0], fapl, filename, sizeof filename); + file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); + VRFY((file_id >= 0), "H5Fcreate succeeded"); + grp_id = H5Gcreate2(file_id, "Group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + VRFY((grp_id >= 0), "H5Gcreate succeeded"); + + dims[0] = ROW_FACTOR*mpi_size; + dims[1] = COL_FACTOR*mpi_size; + sid = H5Screate_simple (RANK, dims, NULL); + VRFY((sid >= 0), "H5Screate_simple succeeded"); + + dset_id = H5Dcreate2(grp_id, "Dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + VRFY((dset_id >= 0), "H5Dcreate succeeded"); + + /* allocate memory for data buffer */ + data_array = (DATATYPE *)HDmalloc(dims[0]*dims[1]*sizeof(DATATYPE)); + VRFY((data_array != NULL), "data_array HDmalloc succeeded"); + + /* Each process takes a slabs of rows. */ + block[0] = dims[0]/mpi_size; + block[1] = dims[1]; + stride[0] = block[0]; + stride[1] = block[1]; + count[0] = 1; + count[1] = 1; + start[0] = mpi_rank*block[0]; + start[1] = 0; + + /* put some trivial data in the data_array */ + for(i=0 ; i<dims[0]*dims[1]; i++) + data_array[i] = mpi_rank + 1; + + ret = H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, stride, count, block); + VRFY((ret >= 0), "H5Sset_hyperslab succeeded"); + + /* create a memory dataspace independently */ + mem_dataspace = H5Screate_simple (RANK, block, NULL); + VRFY((mem_dataspace >= 0), ""); + + /* write data independently */ + ret = H5Dwrite(dset_id, H5T_NATIVE_INT, mem_dataspace, sid, + H5P_DEFAULT, data_array); + VRFY((ret >= 0), "H5Dwrite succeeded"); + + /* release data buffers */ + if(data_array) + HDfree(data_array); + + MPI_Finalize(); + + nerrors += GetTestNumErrs(); + + if(MAINPROCESS) { + if(0 == nerrors) + PASSED() + else + H5_FAILED() + } + + return (nerrors!=0); +} diff --git a/testpar/t_shapesame.c b/testpar/t_shapesame.c index d167687..9088470 100644 --- a/testpar/t_shapesame.c +++ b/testpar/t_shapesame.c @@ -5142,10 +5142,7 @@ int main(int argc, char **argv) printf("Shape Same tests finished with no errors\n"); printf("===================================\n"); } - /* close HDF5 library */ - H5close(); - /* MPI_Finalize must be called AFTER H5close which may use MPI calls */ MPI_Finalize(); /* cannot just return (nerrors) because exit code is limited to 1byte */ diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 2365326..fd47379 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS) #----------------------------------------------------------------------------- diff --git a/tools/Makefile.in b/tools/Makefile.in index 466294c..974e6b4 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = tools ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -405,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -437,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -456,17 +455,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -529,7 +525,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -544,10 +539,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -661,8 +652,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 CONFIG = ordered # All subdirectories diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt index 267d92b..7291197 100644 --- a/tools/h5copy/CMakeLists.txt +++ b/tools/h5copy/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5COPY) #----------------------------------------------------------------------------- @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c) TARGET_NAMING (h5copy ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5copy " " " ") +TARGET_C_PROPERTIES (h5copy ${LIB_TYPE} " " " ") target_link_libraries (h5copy ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5copy PROPERTIES FOLDER tools) @@ -20,8 +20,8 @@ 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) - TARGET_NAMING (h5copygentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5copygentest " " " ") + TARGET_NAMING (h5copygentest STATIC) + TARGET_C_PROPERTIES (h5copygentest STATIC " " " ") target_link_libraries (h5copygentest ${HDF5_LIB_TARGET}) set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5copy/Makefile.in b/tools/h5copy/Makefile.in index 6248394..e128cfe 100644 --- a/tools/h5copy/Makefile.in +++ b/tools/h5copy/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5copy ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -413,7 +414,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -445,7 +445,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -464,17 +463,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -537,7 +533,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -552,10 +547,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -669,11 +660,11 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by h5dumpgentest. They should # copied to the testfiles/ directory if update is required. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 # Test programs and scripts TEST_PROG = h5copygentest diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt index 35c55a4..39095a5 100644 --- a/tools/h5diff/CMakeLists.txt +++ b/tools/h5diff/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5DIFF) #----------------------------------------------------------------------------- @@ -14,7 +14,7 @@ add_executable (h5diff ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c ) TARGET_NAMING (h5diff ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5diff " " " ") +TARGET_C_PROPERTIES (h5diff ${LIB_TYPE} " " " ") target_link_libraries (h5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5diff PROPERTIES FOLDER tools) @@ -26,7 +26,7 @@ if (H5_HAVE_PARALLEL) ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/ph5diff_main.c ) TARGET_NAMING (ph5diff ${LIB_TYPE}) - TARGET_C_PROPERTIES (ph5diff " " " ") + TARGET_C_PROPERTIES (ph5diff ${LIB_TYPE} " " " ") target_link_libraries (ph5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (ph5diff PROPERTIES FOLDER tools) endif (H5_HAVE_PARALLEL) @@ -37,8 +37,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5diffgentest ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diffgentest.c) - TARGET_NAMING (h5diffgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5diffgentest " " " ") + TARGET_NAMING (h5diffgentest STATIC) + TARGET_C_PROPERTIES (h5diffgentest STATIC " " " ") target_link_libraries (h5diffgentest ${HDF5_LIB_TARGET}) set_target_properties (h5diffgentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5diff/Makefile.in b/tools/h5diff/Makefile.in index 4ec41af..c95967d 100644 --- a/tools/h5diff/Makefile.in +++ b/tools/h5diff/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_2) TESTS = $(am__EXEEXT_2) $(TEST_SCRIPT) subdir = tools/h5diff ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -420,7 +421,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -452,7 +452,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -471,17 +470,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -544,7 +540,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -559,10 +554,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -676,11 +667,11 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by h5diff. They should # be copied to the testfiles/ directory if update is required -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 expect_sorted \ +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 expect_sorted \ actual_sorted # Always build and test h5diff but build and test ph5diff only if parallel diff --git a/tools/h5diff/h5diffgentest.c b/tools/h5diff/h5diffgentest.c index 80405e9..1b80317 100644 --- a/tools/h5diff/h5diffgentest.c +++ b/tools/h5diff/h5diffgentest.c @@ -317,10 +317,10 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) */ { - double data1[3][2] = {{1,1}, {1,1}, {0,0}}; - double data2[3][2] = {{0,1.1},{1.01,1.001},{0,1}}; - double data3[3][2] = {{100,100},{100,100},{100,100}}; - double data4[3][2] = {{105,120},{160,95},{80,40}}; + double data1[3][2] = {{ 1.0F, 1.0F}, { 1.00F, 1.000F}, { 0.0F, 0.0F}}; + double data2[3][2] = {{ 0.0F, 1.1F}, { 1.01F, 1.001F}, { 0.0F, 1.0F}}; + double data3[3][2] = {{100.0F, 100.0F}, {100.00F, 100.000F}, {100.0F, 100.0F}}; + double data4[3][2] = {{105.0F, 120.0F}, {160.00F, 95.000F}, { 80.0F, 40.0F}}; write_dset(gid1,2,dims2,"dset1",H5T_NATIVE_DOUBLE,data1); write_dset(gid2,2,dims2,"dset2",H5T_NATIVE_DOUBLE,data2); @@ -371,8 +371,8 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) *------------------------------------------------------------------------- */ { - double data9[3][2] = {{100,100},{100,0},{0,100}}; - double data10[3][2] ={{120,80}, {0,100},{0,50}}; + double data9[3][2] = {{100.0F, 100.0F}, {100.0F, 0.0F}, {0.0F, 100.0F}}; + double data10[3][2] ={{120.0F, 80.0F}, { 0.0F, 100.0F}, {0.0F, 50.0F}}; write_dset(gid1,2,dims2,"dset9",H5T_NATIVE_DOUBLE,data9); write_dset(gid1,2,dims2,"dset10",H5T_NATIVE_DOUBLE,data10); @@ -393,8 +393,14 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) /* epsilon = 0.0000000000000001 = 1e-16 * system epsilon for double : DBL_EPSILON = 2.22045E-16 */ - double data13[3][2] ={{0.0000000000000000, 0.0000000000000001},{0.0000000000000001, 0.0000000000000000},{0.00000000000000033, 0.0000000000000001}}; - double data14[3][2] ={{0.0000000000000000, 0.0000000000000004},{0.0000000000000002, 0.0000000000000001},{0.0000000000000001, 0.00000000000000000}}; + double data13[3][2] ={ + {H5_DOUBLE(0.0000000000000000), H5_DOUBLE(0.0000000000000001)}, + {H5_DOUBLE(0.0000000000000001), H5_DOUBLE(0.0000000000000000)}, + {H5_DOUBLE(0.00000000000000033), H5_DOUBLE(0.0000000000000001)}}; + double data14[3][2] ={ + {H5_DOUBLE(0.0000000000000000), H5_DOUBLE(0.0000000000000004)}, + {H5_DOUBLE(0.0000000000000002), H5_DOUBLE(0.0000000000000001)}, + {H5_DOUBLE(0.0000000000000001), H5_DOUBLE(0.00000000000000000)}}; write_dset(gid1,2,dims2,"fp1",H5T_NATIVE_FLOAT,data11); write_dset(gid1,2,dims2,"fp2",H5T_NATIVE_FLOAT,data12); @@ -412,7 +418,7 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) *------------------------------------------------------------------------- */ - long double data15[3][2] ={{1,1},{1,1},{1,1}}; + long double data15[3][2] ={{1.0L,1.0L},{1.0L,1.0L},{1.0L,1.0L}}; write_dset(gid1,2,dims2,"ld",H5T_NATIVE_LDOUBLE,data15); @@ -430,19 +436,19 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) float data15[6]; float data16[6]; - data15[0] = (float) sqrt( (double)-1 ); - data15[1] = 1; - data15[2] = (float) sqrt( (double)-1 ); - data15[3] = 1; - data15[4] = 1; - data15[5] = 1; + data15[0] = (float)HDsqrt(-1.0F); + data15[1] = 1.0F; + data15[2] = (float)HDsqrt(-1.0F); + data15[3] = 1.0F; + data15[4] = 1.0F; + data15[5] = 1.0F; - data16[0] = (float) sqrt( (double)-1 ); - data16[1] = (float) sqrt( (double)-1 ); - data16[2] = 1; - data16[3] = 1; - data16[4] = 1; - data16[5] = 1; + data16[0] = (float)HDsqrt(-1.0F); + data16[1] = (float)HDsqrt(-1.0F); + data16[2] = 1.0F; + data16[3] = 1.0F; + data16[4] = 1.0F; + data16[5] = 1.0F; write_dset(gid1,1,dims1,"fp15",H5T_NATIVE_FLOAT,data15); write_dset(gid1,1,dims1,"fp16",H5T_NATIVE_FLOAT,data16); @@ -458,19 +464,19 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) double data17[6]; double data18[6]; - data17[0] = sqrt( (double)-1 ); - data17[1] = 1; - data17[2] = sqrt( (double)-1 ); - data17[3] = 1; - data17[4] = 1; - data17[5] = 1; + data17[0] = HDsqrt(-1.0F); + data17[1] = 1.0F; + data17[2] = HDsqrt(-1.0F); + data17[3] = 1.0F; + data17[4] = 1.0F; + data17[5] = 1.0F; - data18[0] = (float) sqrt( (double)-1 ); - data18[1] = (float) sqrt( (double)-10000 ); - data18[2] = 1; - data18[3] = 1; - data18[4] = 1; - data18[5] = 1; + data18[0] = HDsqrt(-1.0F); + data18[1] = HDsqrt(-10000.0F); + data18[2] = 1.0F; + data18[3] = 1.0F; + data18[4] = 1.0F; + data18[5] = 1.0F; write_dset(gid1,1,dims1,"fp17",H5T_NATIVE_DOUBLE,data17); write_dset(gid1,1,dims1,"fp18",H5T_NATIVE_DOUBLE,data18); @@ -485,11 +491,11 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) float data19[6]; double data20[6]; - data19[0] = data19[1] = data19[2] = log(0); - data19[3] = data19[4] = data19[5] = -log(0); + data19[0] = data19[1] = data19[2] = (float)HDlog(0.0F); + data19[3] = data19[4] = data19[5] = (float)-HDlog(0.0F); - data20[0] = data20[1] = data20[2] = log(0); - data20[3] = data20[4] = data20[5] = -log(0); + data20[0] = data20[1] = data20[2] = HDlog(0.0F); + data20[3] = data20[4] = data20[5] = -HDlog(0.0F); write_dset(gid1,1,dims1,"fp19",H5T_NATIVE_FLOAT,data19); write_dset(gid1,1,dims1,"fp19_COPY",H5T_NATIVE_FLOAT,data19); @@ -514,15 +520,15 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) size_t type_size; hid_t tid; - buf1[0].d = sqrt( (double)-1 ); - buf1[0].f = (float) sqrt( (double)-1 ); - buf2[0].d = sqrt( (double)-1 ); - buf2[0].f = (float) sqrt( (double)-1 ); + buf1[0].d = HDsqrt(-1.0F); + buf1[0].f = (float)HDsqrt(-1.0F); + buf2[0].d = HDsqrt(-1.0F); + buf2[0].f = (float)HDsqrt(-1.0F); - buf1[1].d = sqrt( (double)-1 ); - buf1[1].f = (float) sqrt( (double)-1 ); - buf2[1].d = 0; - buf2[1].f = 0; + buf1[1].d = HDsqrt(-1.0F); + buf1[1].f = (float)HDsqrt(-1.0F); + buf2[1].d = 0.0F; + buf2[1].f = 0.0F; type_size = sizeof( cmp1_t ); tid = H5Tcreate (H5T_COMPOUND, type_size ); @@ -555,7 +561,7 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3) int i; } cmp3_t; - double data2[6] = {0,0,0,0,0,0}; + double data2[6] = {0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F}; int data3[6] = {0,0,0,0,0,0}; int data4[3][2] = {{0,0},{0,0},{0,0}}; int data5[2][2] = {{0,0},{0,0}}; @@ -770,10 +776,10 @@ int test_datatypes(const char *fname) int buf3b[3][2] = {{1,1},{3,4},{5,6}}; long buf4a[3][2] = {{1,1},{1,1},{1,1}}; long buf4b[3][2] = {{1,1},{3,4},{5,6}}; - float buf5a[3][2] = {{1,1},{1,1},{1,1}}; - float buf5b[3][2] = {{1,1},{3,4},{5,6}}; - double buf6a[3][2] = {{1,1},{1,1},{1,1}}; - double buf6b[3][2] = {{1,1},{3,4},{5,6}}; + float buf5a[3][2] = {{1.0F, 1.0F}, {1.0F, 1.0F}, {1.0F, 1.0F}}; + float buf5b[3][2] = {{1.0F, 1.0F}, {3.0F, 4.0F}, {5.0F, 6.0F}}; + double buf6a[3][2] = {{1.0F, 1.0F}, {1.0F, 1.0F}, {1.0F, 1.0F}}; + double buf6b[3][2] = {{1.0F, 1.0F}, {3.0F, 4.0F}, {5.0F, 6.0F}}; /*unsigned/signed test signed char -128 to 127 @@ -1025,10 +1031,10 @@ static int test_attributes_verbose_level(const char *fname1, const char *fname2) /* file1 attr */ int f1_attr_idata[2]= {1,2}; /* integer */ - float f1_attr_fdata[2]= {1.1,2.2}; /* float */ + float f1_attr_fdata[2]= {1.1F,2.2F}; /* float */ /* file2 attr */ int f2_attr_idata[2]= {2,3}; /* integer */ - float f2_attr_fdata[2]= {2.1,3.2}; /* float */ + float f2_attr_fdata[2]= {2.1F,3.2F}; /* float */ /*---------------------------------------------------------------------- @@ -4363,7 +4369,7 @@ static void test_comps_array (const char *fname, const char *dset, const char *a for(j=0; j < SDIM_CMPD_ARRAY; j++) { wdata[i].cmpd2[j].i2 = i*10 + diff; - wdata[i].cmpd2[j].f2 = (float)(i*10.5) + diff; + wdata[i].cmpd2[j].f2 = (float)(i*10.5F) + diff; } /* end for */ } @@ -4480,7 +4486,7 @@ static void test_comps_vlen (const char * fname, const char *dset, const char *a for(j=0; j<(i+1); j++) { ((cmpd2_t *)wdata[i].vl.p)[j].i2 = i*10 + diff; - ((cmpd2_t *)wdata[i].vl.p)[j].f2 = (float)(i*10.5) + diff; + ((cmpd2_t *)wdata[i].vl.p)[j].f2 = (float)(i*10.5F) + diff; } /* end for */ } /* end for */ @@ -4606,7 +4612,7 @@ static void test_comps_array_vlen (const char * fname, const char *dset,const ch { /* Initialize data of compound3 */ ((cmpd3_t *)wdata[i].cmpd2[j].vl.p)[k].i3 = j*10 + diff; - ((cmpd3_t *)wdata[i].cmpd2[j].vl.p)[k].f3 = (float)(j*10.5) + diff; + ((cmpd3_t *)wdata[i].cmpd2[j].vl.p)[k].f3 = (float)(j*10.5F) + diff; } /* end for */ } /* end for */ } @@ -4753,8 +4759,8 @@ static void test_comps_vlen_arry (const char * fname, const char *dset, const ch for (k=0; k < SDIM_CMPD_ARRAY; k++) { /* compound 3 data */ - ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].i3 = k*10.5 + diff; - ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].f3 = (float)(k*10.5) + diff; + ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].i3 = k*10.5F + diff; + ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].f3 = (float)(k*10.5F) + diff; } } /* end for */ } /* end for */ @@ -5246,27 +5252,27 @@ void write_attr_in(hid_t loc_id, char buf1[2][STR_SIZE]= {"ab","de"}; /* string */ char *buf1a[2]; /* VL string */ char buf2[2]= {1,2}; /* bitfield, opaque */ - s_t buf3[2]= {{1,2},{3,4}}; /* compound */ + s_t buf3[2]= {{1,2.0F},{3,4.0F}}; /* compound */ hobj_ref_t buf4[2]; /* reference */ e_t buf45[2]= {RED,RED}; /* enum */ hvl_t buf5[2]; /* vlen */ hsize_t dimarray[1]={3}; /* array dimension */ int buf6[2][3]= {{1,2,3},{4,5,6}}; /* array */ int buf7[2]= {1,2}; /* integer */ - float buf8[2]= {1,2}; /* float */ + float buf8[2]= {1.0F, 2.0F}; /* float */ /* create 2D attributes with dimension [3][2], 6 elements */ hsize_t dims2[2]={3,2}; - char buf12[3][2][STR_SIZE]= {{"ab","cd"},{"ef","gh"},{"ij","kl"}}; /* string */ - char *buf12a[3][2]; /* VL string */ - char buf22[3][2]= {{1,2},{3,4},{5,6}}; /* bitfield, opaque */ - s_t buf32[6]= {{1,2},{3,4},{5,6},{7,8},{9,10},{11,12}}; /* compound */ - hobj_ref_t buf42[3][2]; /* reference */ - e_t buf452[3][2]; /* enum */ - hvl_t buf52[3][2]; /* vlen */ - int buf62[6][3]= {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15},{16,17,18}}; /* array */ - int buf72[3][2]= {{1,2},{3,4},{5,6}}; /* integer */ - float buf82[3][2]= {{1,2},{3,4},{5,6}}; /* float */ + char buf12[3][2][STR_SIZE]= {{"ab","cd"},{"ef","gh"},{"ij","kl"}}; /* string */ + char *buf12a[3][2]; /* VL string */ + char buf22[3][2]= {{1,2},{3,4},{5,6}}; /* bitfield, opaque */ + s_t buf32[6]= {{1,2.0F},{3,4.0F},{5,6.0F},{7,8.0F},{9,10.0F},{11,12.0F}}; /* compound */ + hobj_ref_t buf42[3][2]; /* reference */ + e_t buf452[3][2]; /* enum */ + hvl_t buf52[3][2]; /* vlen */ + int buf62[6][3]= {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15},{16,17,18}}; /* array */ + int buf72[3][2]= {{1,2},{3,4},{5,6}}; /* integer */ + float buf82[3][2]= {{1.0F,2.0F},{3.0F,4.0F},{5.0F,6.0F}}; /* float */ /* create 3D attributes with dimension [4][3][2], 24 elements */ hsize_t dims3[3]={4,3,2}; @@ -6017,7 +6023,7 @@ void write_attr_in(hid_t loc_id, for (k = 0; k < 2; k++) { if (make_diffs) { buf33[i][j][k].a=0; - buf33[i][j][k].b=0; + buf33[i][j][k].b=0.0F; } else { buf33[i][j][k].a=n++; @@ -6231,7 +6237,7 @@ void write_attr_in(hid_t loc_id, for (k = 0; k < 2; k++) { if (make_diffs) { buf73[i][j][k]=0; - buf83[i][j][k]=0; + buf83[i][j][k]=0.0F; } else { buf73[i][j][k]=n++; @@ -6303,26 +6309,26 @@ void write_dset_in(hid_t loc_id, char buf1[2][STR_SIZE]= {"ab","de"}; /* string */ char *buf1a[2]; /* VL string */ char buf2[2]= {1,2}; /* bitfield, opaque */ - s_t buf3[2]= {{1,2},{3,4}}; /* compound */ + s_t buf3[2]= {{1,2.0F},{3,4.0F}}; /* compound */ hobj_ref_t buf4[2]; /* reference */ e_t buf45[2]= {RED,GREEN}; /* enum */ hvl_t buf5[2]; /* vlen */ hsize_t dimarray[1]={3}; /* array dimension */ int buf6[2][3]= {{1,2,3},{4,5,6}}; /* array */ int buf7[2]= {1,2}; /* integer */ - float buf8[2]= {1,2}; /* float */ + float buf8[2]= {1.0F,2.0F}; /* float */ /* create 2D attributes with dimension [3][2], 6 elements */ hsize_t dims2[2]={3,2}; char buf12[3][2][STR_SIZE]= {{"ab","cd"},{"ef","gh"},{"ij","kl"}}; /* string */ char *buf12a[3][2]; /* VL string */ char buf22[3][2]= {{1,2},{3,4},{5,6}}; /* bitfield, opaque */ - s_t buf32[6]= {{1,2},{3,4},{5,6},{7,8},{9,10},{11,12}}; /* compound */ + s_t buf32[6]= {{1,2.0F},{3,4.0F},{5,6.0F},{7,8.0F},{9,10.0F},{11,12.0F}}; /* compound */ hobj_ref_t buf42[3][2]; /* reference */ hvl_t buf52[3][2]; /* vlen */ int buf62[6][3]= {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15},{16,17,18}}; /* array */ int buf72[3][2]= {{1,2},{3,4},{5,6}}; /* integer */ - float buf82[3][2]= {{1,2},{3,4},{5,6}}; /* float */ + float buf82[3][2]= {{1.0F,2.0F},{3.0F,4.0F},{5.0F,6.0F}}; /* float */ /* create 3D attributes with dimension [4][3][2], 24 elements */ hsize_t dims3[3]={4,3,2}; @@ -6859,7 +6865,7 @@ void write_dset_in(hid_t loc_id, if (make_diffs) { buf33[i][j][k].a=0; - buf33[i][j][k].b=0; + buf33[i][j][k].b=0.0F; } else { buf33[i][j][k].a=n++; @@ -6968,7 +6974,7 @@ void write_dset_in(hid_t loc_id, for (k = 0; k < 2; k++) { if (make_diffs) { buf73[i][j][k]=0; - buf83[i][j][k]=0; + buf83[i][j][k]=0.0F; } else { buf73[i][j][k]=n++; diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index 584222e..7658c04 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5DUMP) #----------------------------------------------------------------------------- @@ -15,7 +15,7 @@ add_executable (h5dump ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_xml.c ) TARGET_NAMING (h5dump ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5dump " " " ") +TARGET_C_PROPERTIES (h5dump ${LIB_TYPE} " " " ") target_link_libraries (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5dump PROPERTIES FOLDER tools) @@ -27,8 +27,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c) - TARGET_NAMING (h5dumpgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5dumpgentest " " " ") + TARGET_NAMING (h5dumpgentest STATIC) + TARGET_C_PROPERTIES (h5dumpgentest STATIC " " " ") target_link_libraries (h5dumpgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5dumpgentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5dump/CMakeTests.cmake b/tools/h5dump/CMakeTests.cmake index afb482e..3565b0f 100644 --- a/tools/h5dump/CMakeTests.cmake +++ b/tools/h5dump/CMakeTests.cmake @@ -66,6 +66,7 @@ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcomp-3.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcomp-4.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompact.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_enum.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcontents.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcontiguos.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tdatareg.ddl @@ -215,6 +216,7 @@ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcmpdintsize.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_complex.h5 + ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_enum.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tdatareg.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tdset.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tempty.h5 @@ -1157,6 +1159,7 @@ #test for the nested compound type ADD_H5_TEST (tnestcomp-1 0 --enable-error-stack tnestedcomp.h5) ADD_H5_TEST (tnestedcmpddt 0 --enable-error-stack tnestedcmpddt.h5) + #ADD_H5_TEST (tcompound_enum 0 --enable-error-stack tcompound_enum.h5) # test for options ADD_H5ERR_MASK_TEST (tall-1 0 --enable-error-stack tall.h5) @@ -1340,30 +1343,14 @@ set (USE_FILTER_SZIP "true") endif (H5_HAVE_FILTER_SZIP) - if (H5_HAVE_FILTER_SHUFFLE) - set (USE_FILTER_SHUFFLE "true") - endif (H5_HAVE_FILTER_SHUFFLE) - - if (H5_HAVE_FILTER_FLETCHER32) - set (USE_FILTER_FLETCHER32 "true") - endif (H5_HAVE_FILTER_FLETCHER32) - - if (H5_HAVE_FILTER_NBIT) - set (USE_FILTER_NBIT "true") - endif (H5_HAVE_FILTER_NBIT) - - if (H5_HAVE_FILTER_SCALEOFFSET) - set (USE_FILTER_SCALEOFFSET "true") - endif (H5_HAVE_FILTER_SCALEOFFSET) - - if (USE_FILTER_DEFLATE AND USE_FILTER_SHUFFLE AND USE_FILTER_FLETCHER32 AND USE_FILTER_NBIT AND USE_FILTER_SCALEOFFSET) + if (USE_FILTER_DEFLATE) # data read internal filters ADD_H5_TEST (treadintfilter 0 --enable-error-stack -d deflate -d shuffle -d fletcher32 -d nbit -d scaleoffset tfilters.h5) if (HDF5_ENABLE_SZIP_SUPPORT) # data read all filters ADD_H5_TEST (treadfilter 0 --enable-error-stack -d all -d szip tfilters.h5) endif (HDF5_ENABLE_SZIP_SUPPORT) - endif (USE_FILTER_DEFLATE AND USE_FILTER_SHUFFLE AND USE_FILTER_FLETCHER32 AND USE_FILTER_NBIT AND USE_FILTER_SCALEOFFSET) + endif (USE_FILTER_DEFLATE) # test for displaying objects with very long names ADD_H5_TEST (tlonglinks 0 --enable-error-stack tlonglinks.h5) diff --git a/tools/h5dump/CMakeTestsXML.cmake b/tools/h5dump/CMakeTestsXML.cmake index a939d78..0a667c4 100644 --- a/tools/h5dump/CMakeTestsXML.cmake +++ b/tools/h5dump/CMakeTestsXML.cmake @@ -411,14 +411,6 @@ ADD_XML_H5_TEST (tempty-dtd.h5 0 --use-dtd tempty.h5) ADD_XML_H5_TEST (tempty-dtd-2.h5 0 -u tempty.h5) - # The lone colon here confuses some systems (Cray X1). Skip - # it if configure detects that this is a problem. - set (TESTTYPE "TEST") - if (NOT ${H5_LONE_COLON}) - set (TESTTYPE "SKIP") - endif (NOT ${H5_LONE_COLON}) - ADD_XML_SKIP_H5_TEST (tempty-nons.h5 0 ${TESTTYPE} -X : tempty.h5) - ADD_XML_H5_TEST (tempty-nons-2.h5 0 --xml-ns=: tempty.h5) ## Some of these combinations are syntactically correct but diff --git a/tools/h5dump/Makefile.in b/tools/h5dump/Makefile.in index 365230d..fdafacf 100644 --- a/tools/h5dump/Makefile.in +++ b/tools/h5dump/Makefile.in @@ -106,7 +106,8 @@ bin_PROGRAMS = h5dump$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5dump ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -419,7 +420,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -451,7 +451,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -470,17 +469,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -543,7 +539,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -558,10 +553,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -675,11 +666,11 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by h5dumpgentest. They should # copied to the testfiles/ directory if update is required. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.bin +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.bin # Test programs and scripts TEST_PROG = h5dumpgentest diff --git a/tools/h5dump/binread.c b/tools/h5dump/binread.c index 5abb9af..74db92c 100644 --- a/tools/h5dump/binread.c +++ b/tools/h5dump/binread.c @@ -49,8 +49,7 @@ static void usage (void) { - fprintf(stderr, "\ - usage: binread FILE_NAME\n"); + fprintf(stderr, "usage: binread FILE_NAME\n"); } /*------------------------------------------------------------------------- @@ -64,38 +63,35 @@ usage (void) int main (int argc, const char *argv[]) { - FILE *stream; - int numread; - TYPE buf[NELMTS]; - size_t i, nelmts = NELMTS; - char *fname=NULL; - - if (argc != 2) - { - usage(); - exit(1); - } - - fname = strdup(argv[1]); - - if( (stream = fopen(fname, "rb" )) != NULL ) - { - numread = fread( buf, sizeof( TYPE ), nelmts, stream ); - printf( "Number of items read = %d\n", numread ); - - for (i = 0; i < nelmts; i++) - { - printf(FORMAT,buf[i]); - } - printf("\n"); - - fclose( stream ); - } - else - printf( "File %s could not be opened\n",fname ); - - free(fname); - - return 0; + FILE *stream; + size_t numread; + TYPE buf[NELMTS]; + size_t i, nelmts = NELMTS; + char *fname=NULL; + + if (argc != 2) { + usage(); + exit(1); + } + + fname = strdup(argv[1]); + + if((stream = fopen(fname, "rb")) != NULL) { + numread = fread(buf, sizeof( TYPE ), nelmts, stream); + printf("Number of items read = %llu\n", (unsigned long long)numread); + + for (i = 0; i < nelmts; i++) { + printf(FORMAT,buf[i]); + } + printf("\n"); + + fclose(stream); + } + else + printf("File %s could not be opened\n", fname); + + free(fname); + + return 0; } diff --git a/tools/h5dump/errfiles/tarray1_big.err b/tools/h5dump/errfiles/tarray1_big.err index 5b11b7b..0691f0b 100644 --- a/tools/h5dump/errfiles/tarray1_big.err +++ b/tools/h5dump/errfiles/tarray1_big.err @@ -8,21 +8,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #000: (file name) line (number) in H5Rdereference2(): unable to dereference object major: References @@ -33,21 +21,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #000: (file name) line (number) in H5Rdereference2(): unable to dereference object major: References @@ -58,21 +34,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs): #000: (file name) line (number) in h5tools_dump_simple_data(): H5Rdereference failed major: Failure in tools library diff --git a/tools/h5dump/errfiles/tattrregR.err b/tools/h5dump/errfiles/tattrregR.err index 65e38a1..e57fef1 100644 --- a/tools/h5dump/errfiles/tattrregR.err +++ b/tools/h5dump/errfiles/tattrregR.err @@ -8,21 +8,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #000: (file name) line (number) in H5Rdereference2(): unable to dereference object major: References @@ -33,21 +21,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs): #000: (file name) line (number) in h5tools_dump_simple_data(): H5Rdereference failed major: Failure in tools library diff --git a/tools/h5dump/errfiles/tdataregR.err b/tools/h5dump/errfiles/tdataregR.err index 65e38a1..e57fef1 100644 --- a/tools/h5dump/errfiles/tdataregR.err +++ b/tools/h5dump/errfiles/tdataregR.err @@ -8,21 +8,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #000: (file name) line (number) in H5Rdereference2(): unable to dereference object major: References @@ -33,21 +21,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #002: (file name) line (number) in H5VL_native_object_open(): unable to dereference object major: References minor: Unable to initialize object - #003: (file name) line (number) in H5R_dereference(): Unable to read dataset region information - major: References - minor: Read failed - #004: (file name) line (number) in H5HG_read(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #005: (file name) line (number) in H5HG_protect(): unable to protect global heap - major: Heap - minor: Unable to protect metadata - #006: (file name) line (number) in H5AC_protect(): H5C_protect() failed. - major: Object cache - minor: Unable to protect metadata - #007: (file name) line (number) in H5C_protect(): incorrect cache entry type - major: Object cache - minor: Inappropriate type + #003: (file name) line (number) in H5R_dereference(): Undefined reference pointer + major: Invalid arguments to routine + minor: Bad value H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs): #000: (file name) line (number) in h5tools_dump_simple_data(): H5Rdereference failed major: Failure in tools library diff --git a/tools/h5dump/h5dump_xml.c b/tools/h5dump/h5dump_xml.c index 64667cb..6ccbc8c 100644 --- a/tools/h5dump/h5dump_xml.c +++ b/tools/h5dump/h5dump_xml.c @@ -3563,7 +3563,7 @@ xml_dump_fill_value(hid_t dcpl, hid_t type) /* Render the element */ h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "\"%f\"", *(float *) buf); + h5tools_str_append(&buffer, "\"%f\"", (double)*(float *)buf); h5tools_render_element(rawoutstream, outputformat, &ctx, &buffer, &curr_pos, (size_t)outputformat->line_ncols, (hsize_t)0, (hsize_t)0); ctx.need_prefix = TRUE; diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index 82273a3..c04afe9 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -429,7 +429,7 @@ gent_dataset(void) for(i = 0; i < 30; i++) for(j = 0; j < 20; j++) - dset2[i][j] = 0.0001 * j + i; + dset2[i][j] = 0.0001F * j + i; H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2); @@ -524,7 +524,7 @@ gent_attribute(void) space = H5Screate_simple(1, dims, NULL); attr = H5Acreate2(root, "attr3", H5T_IEEE_F64BE, space, H5P_DEFAULT, H5P_DEFAULT); - for(i = 0; i < 10; i++) d[i] = 0.1 * i; + for(i = 0; i < 10; i++) d[i] = 0.1F * i; H5Awrite(attr, H5T_NATIVE_DOUBLE, d); H5Sclose(space); @@ -952,16 +952,16 @@ static void gent_compound_dt(void) { /* test compound data type */ for(i = 0; i < (int)sdim; i++) { dset1[i].a = i; dset1[i].b = (float)(i*i); - dset1[i].c = (float)(1./(i+1)); + dset1[i].c = (float)(1.0F/(i+1)); dset2[i].a = i; - dset2[i].b = (float)(i+ i*0.1); + dset2[i].b = (float)(i+ i*0.1F); dset4[i].a = i; dset4[i].b = (float)(i+3); dset5[i].a = i; - dset5[i].b = (float)(i*0.1); + dset5[i].b = (float)(i*0.1F); } @@ -1137,16 +1137,16 @@ static void gent_compound_dt2(void) { /* test compound data type */ for(i = 0; i < (int)sdim; i++) { dset1[i].a = i; dset1[i].b = (float)(i*i); - dset1[i].c = (float)(1./(i+1)); + dset1[i].c = (float)(1.0F/(i+1)); dset2[i].a = i; - dset2[i].b = (float)(i+ i*0.1); + dset2[i].b = (float)(i+ i*0.1F); dset4[i].a = i; - dset4[i].b = (float)(i*1.0); + dset4[i].b = (float)(i*1.0F); dset5[i].a = i; - dset5[i].b = (float)(i*1.0); + dset5[i].b = (float)(i*1.0F); } fid = H5Fcreate(FILE9, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); @@ -1386,7 +1386,7 @@ static void gent_all(void) space = H5Screate_simple(1, dims, NULL); dataset = H5Dcreate2(group, "dset2.1", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); for(i = 0; i < 10; i++) - dset2_1[i] = (float)(i * 0.1 + 1); + dset2_1[i] = (float)(i * 0.1F + 1); H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_1); H5Sclose(space); H5Dclose(dataset); @@ -1397,7 +1397,7 @@ static void gent_all(void) dataset = H5Dcreate2(group, "dset2.2", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); for(i = 0; i < 3; i++) for(j = 0; j < 5; j++) - dset2_2[i][j] = (float)((i + 1) * j * 0.1); + dset2_2[i][j] = (float)((i + 1) * j * 0.1F); H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_2); H5Sclose(space); H5Dclose(dataset); @@ -1565,7 +1565,7 @@ gent_many(void) space2 = H5Screate_simple(1, dims, NULL); attr = H5Acreate2(dataset, "attr3", H5T_IEEE_F64BE, space2, H5P_DEFAULT, H5P_DEFAULT); for(i = 0; i < 10; i++) - d[i] = 0.1 * i; + d[i] = 0.1F * i; H5Awrite(attr, H5T_NATIVE_DOUBLE, d); H5Sclose(space2); H5Aclose(attr); @@ -2378,10 +2378,10 @@ static void gent_nestcomp(void) for(i = 0; i< 10; i++) { s1[i].a = i; s1[i].b = (float)(i*i); - s1[i].c = 1./(i+1); + s1[i].c = 1.0F/(i+1); s1[i].d.a = 65 + i; - s1[i].d.b[0] = -100.; - s1[i].d.b[1] = 100.; + s1[i].d.b[0] = -100.0F; + s1[i].d.b[1] = 100.0F; } /* @@ -2582,7 +2582,7 @@ static void gent_vldatatypes(void) wdata[i].len = i + 1; for(j = 0; j < i + 1; j++) - ((float *)wdata[i].p)[j] = (float)(i * 10 + ((float)j) / 10.0); + ((float *)wdata[i].p)[j] = (float)(i * 10 + ((float)j) / 10.0F); } /* write out the floats in little-endian format */ @@ -2716,7 +2716,7 @@ static void gent_vldatatypes3(void) /* Allocate and initialize VL data to write */ for(i=0; i<SPACE1_DIM1; i++) { wdata[i].i=i*10; - wdata[i].f=(float)((i*20)/3.0); + wdata[i].f=(float)((i*20)/3.0F); wdata[i].v.p=HDmalloc((i+1)*sizeof(unsigned int)); wdata[i].v.len=i+1; for(j=0; j<(i+1); j++) @@ -2788,7 +2788,7 @@ static void gent_vldatatypes4(void) wdata[i].len=i+1; for(j=0; j<(i+1); j++) { ((s1 *)wdata[i].p)[j].i=i*10+j; - ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0); + ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0F); } /* end for */ } /* end for */ @@ -3159,7 +3159,7 @@ static void gent_array4(void) for(i=0; i<SPACE1_DIM1; i++) for(j=0; j<ARRAY1_DIM1; j++) { wdata[i][j].i=i*10+j; - wdata[i][j].f=(float)(i*2.5+j); + wdata[i][j].f=(float)(i*2.5F+j); } /* end for */ /* Create file */ @@ -3227,7 +3227,7 @@ static void gent_array5(void) for(j=0; j<ARRAY1_DIM1; j++) { wdata[i][j].i=i*10+j; for(k=0; k<ARRAY1_DIM1; k++) - wdata[i][j].f[k]=(float)(i*10+j*2.5+k); + wdata[i][j].f[k]=(float)(i*10+j*2.5F+k); } /* end for */ /* Create file */ @@ -4933,10 +4933,10 @@ static void gent_compound_complex(void) } } - Array1[m].e = (float)( m * .96 ); + Array1[m].e = (float)( m * 0.96F ); for(n = 0; n < F41_ARRAY_DIMf; n++) { - Array1[m].f[n] = ( m * 1024.9637 ); + Array1[m].f[n] = ( m * 1024.9637F ); } Array1[m].g = 'm'; @@ -5433,7 +5433,7 @@ static void gent_filters(void) * shuffle *------------------------------------------------------------------------- */ -#if defined (H5_HAVE_FILTER_SHUFFLE) + /* remove the filters from the dcpl */ ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL); HDassert(ret >= 0); @@ -5444,14 +5444,13 @@ static void gent_filters(void) ret=make_dset(fid,"shuffle",sid,H5T_NATIVE_INT,dcpl,buf1); HDassert(ret >= 0); -#endif /*------------------------------------------------------------------------- * checksum *------------------------------------------------------------------------- */ -#if defined (H5_HAVE_FILTER_FLETCHER32) + /* remove the filters from the dcpl */ ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL); HDassert(ret >= 0); @@ -5462,13 +5461,12 @@ static void gent_filters(void) ret=make_dset(fid,"fletcher32",sid,H5T_NATIVE_INT,dcpl,buf1); HDassert(ret >= 0); -#endif /*------------------------------------------------------------------------- * nbit *------------------------------------------------------------------------- */ -#if defined (H5_HAVE_FILTER_NBIT) + /* remove the filters from the dcpl */ ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL); HDassert(ret >= 0); @@ -5481,13 +5479,12 @@ static void gent_filters(void) H5Tset_precision(tid,H5Tget_size(tid)-1); ret=make_dset(fid,"nbit",sid,tid,dcpl,buf1); HDassert(ret >= 0); -#endif /*------------------------------------------------------------------------- * scaleoffset *------------------------------------------------------------------------- */ -#if defined (H5_HAVE_FILTER_SCALEOFFSET) + /* remove the filters from the dcpl */ ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL); HDassert(ret >= 0); @@ -5498,7 +5495,6 @@ static void gent_filters(void) ret=make_dset(fid,"scaleoffset",sid,H5T_NATIVE_INT,dcpl,buf1); HDassert(ret >= 0); -#endif /*------------------------------------------------------------------------- * all filters @@ -5508,11 +5504,9 @@ static void gent_filters(void) ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL); HDassert(ret >= 0); -#if defined (H5_HAVE_FILTER_SHUFFLE) /* set the shuffle filter */ ret = H5Pset_shuffle(dcpl); HDassert(ret >= 0); -#endif #ifdef H5_HAVE_FILTER_SZIP if(h5tools_can_encode(H5Z_FILTER_SZIP) == 1) { @@ -5529,17 +5523,13 @@ static void gent_filters(void) HDassert(ret >= 0); #endif -#if defined (H5_HAVE_FILTER_FLETCHER32) /* set the checksum filter */ ret = H5Pset_fletcher32(dcpl); HDassert(ret >= 0); -#endif -#if defined (H5_HAVE_FILTER_NBIT) /* set the nbit filter */ ret = H5Pset_nbit(dcpl); HDassert(ret >= 0); -#endif ret=make_dset(fid,"all",sid,H5T_NATIVE_INT,dcpl,buf1); HDassert(ret >= 0); @@ -6883,7 +6873,7 @@ gent_fpformat(void) { hid_t fid, sid, did; hsize_t dims[1] = {6}; - double dbuf[6] = {-0.1234567, 0.1234567, 0, 0, 0, 0}; + double dbuf[6] = {-0.1234567f, 0.1234567f, 0, 0, 0, 0}; float fbuf[6] = {-0.1234567f, 0.1234567f, 0, 0, 0, 0}; fid = H5Fcreate(FILE60, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); @@ -7203,7 +7193,7 @@ gent_packedbits(void) for(i = 0; i < dims[0]; i++) for(j = 0; j < dims[1]; j++) - dsetdbl[i][j] = 0.0001 * j + i; + dsetdbl[i][j] = 0.0001F * j + i; H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl); @@ -7393,7 +7383,7 @@ gent_attr_intsize(void) for(i = 0; i < dims[0]; i++) for(j = 0; j < dims[1]; j++) - dsetdbl[i][j] = 0.0001 * j + i; + dsetdbl[i][j] = 0.0001F * j + i; H5Awrite(attr, H5T_NATIVE_DOUBLE, dsetdbl); @@ -7601,7 +7591,7 @@ static void gent_compound_intsizes(void) { for(n = 0; n < dims[0]; n++) for(o = 0; o < dims[1]; o++) - Array1[m].dsetdbl[n][o] = 0.0001 * o + n; + Array1[m].dsetdbl[n][o] = 0.0001F * o + n; } /* Create the array data type for the 8 bits signed int array */ @@ -7876,7 +7866,7 @@ static void gent_compound_attr_intsizes(void) { for(n = 0; n < dims[0]; n++) for(o = 0; o < dims[1]; o++) - Array1[m].dsetdbl[n][o] = 0.0001 * o + n; + Array1[m].dsetdbl[n][o] = 0.0001F * o + n; } /* Create the array data type for the 8 bits signed int array */ @@ -8044,17 +8034,17 @@ static void gent_nested_compound_dt(void) { /* test nested data type */ dset1[i].b = (float)(i*i); dset2[i].a = i; - dset2[i].b = (float)(i+i*0.1); + dset2[i].b = (float)(i+i*0.1F); dset2[i].c = GREEN; for(j = 0; j < 5; j++) { dset3[i].a[j] = i*j; for(k = 0; k < 6; k++) { - dset3[i].b[j][k] = (float)(i*j*k*1.0); + dset3[i].b[j][k] = (float)(i*j*k*1.0F); } } dset3[i].c.a = i; - dset3[i].c.b = (float)(i*1.0); + dset3[i].c.b = (float)(i*1.0F); } fid = H5Fcreate(FILE72, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); @@ -8342,7 +8332,7 @@ gent_intscalars(void) for(i = 0; i < dims[0]; i++) for(j = 0; j < dims[1]; j++) - dsetdbl[i][j] = 0.0001 * j + i; + dsetdbl[i][j] = 0.0001F * j + i; H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl); @@ -8541,7 +8531,7 @@ gent_attr_intscalars(void) for(i = 0; i < dims[0]; i++) for(j = 0; j < dims[1]; j++) - dsetdbl[i][j] = 0.0001 * j + i; + dsetdbl[i][j] = 0.0001F * j + i; H5Awrite(attr, tid, dsetdbl); @@ -8727,7 +8717,7 @@ static void gent_compound_int_array(void) { dims[0] = F76_DIM8; for(n = 0; n < dims[0]; n++) - Cmpd1[m].dsetdbl[n] = 0.0001 + n; + Cmpd1[m].dsetdbl[n] = 0.0001F + n; } /* Create the array data type for the 8 bits signed int array */ @@ -8958,8 +8948,8 @@ static void gent_compound_ints(void) { val64bits <<= 1; /* Double Dummy set for failure tests */ - Cmpd1[m].dsetdbl = 0.0001 + m; - Cmpd2[m].dsetdbl = 0.0001 + m; + Cmpd1[m].dsetdbl = 0.0001F + m; + Cmpd2[m].dsetdbl = 0.0001F + m; } /* Create the dataspace */ @@ -9296,7 +9286,7 @@ gent_intattrscalars(void) for(i = 0; i < dims[0]; i++) for(j = 0; j < dims[1]; j++) - dsetdbl[i][j] = 0.0001 * j + i; + dsetdbl[i][j] = 0.0001F * j + i; H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl); /* Attribute of double */ @@ -9561,7 +9551,7 @@ gent_intsattrs(void) for(i = 0; i < dims[0]; i++) for(j = 0; j < dims[1]; j++) { - dsetdbl[i][j] = 0.0001 * j + i; + dsetdbl[i][j] = 0.0001F * j + i; asetdbl[i*dims[1]+j] = dsetdbl[i][j]; } diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 0c72a8d..2fc09da 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -19,10 +19,6 @@ srcdir=@srcdir@ USE_FILTER_SZIP="@USE_FILTER_SZIP@" USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@" -USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@" -USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@" -USE_FILTER_NBIT="@USE_FILTER_NBIT@" -USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@" TESTNAME=h5dump EXIT_SUCCESS=0 @@ -108,6 +104,7 @@ $SRC_H5DUMP_TESTFILES/tcmpdattrintsize.h5 $SRC_H5DUMP_TESTFILES/tcmpdintsize.h5 $SRC_H5DUMP_TESTFILES/tcompound.h5 $SRC_H5DUMP_TESTFILES/tcompound_complex.h5 +$SRC_H5DUMP_TESTFILES/tcompound_enum.h5 $SRC_H5DUMP_TESTFILES/tdatareg.h5 $SRC_H5DUMP_TESTFILES/tdset.h5 $SRC_H5DUMP_TESTFILES/tempty.h5 @@ -231,6 +228,7 @@ $SRC_H5DUMP_TESTFILES/tcomp-1.ddl $SRC_H5DUMP_TESTFILES/tcomp-2.ddl $SRC_H5DUMP_TESTFILES/tcomp-3.ddl $SRC_H5DUMP_TESTFILES/tcomp-4.ddl +$SRC_H5DUMP_TESTFILES/tcompound_enum.ddl $SRC_H5DUMP_TESTFILES/tcompact.ddl $SRC_H5DUMP_TESTFILES/tcontents.ddl $SRC_H5DUMP_TESTFILES/tcontiguos.ddl @@ -440,8 +438,21 @@ TESTING() { # the actual output file is calculated by replacing the `.ddl' with # `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a # non-zero value. +# If $1 == ignorecase then do caseless CMP and DIFF. # ADD_H5_TEST TOOLTEST() { + # check if caseless compare and diff requested + if [ "$1" = ignorecase ]; then + caseless="-i" + # replace cmp with diff which runs much longer. + xCMP="$DIFF -i" + shift + else + caseless="" + # stick with faster cmp if ignorecase is not requested. + xCMP="$CMP" + fi + expect="$TESTDIR/$1" actual="$TESTDIR/`basename $1 .ddl`.out" actual_err="$TESTDIR/`basename $1 .ddl`.err" @@ -467,13 +478,13 @@ TOOLTEST() { # Create the expect file if it doesn't yet exist. echo " CREATED" cp $actual $expect - elif $CMP $expect $actual; then + elif $xCMP $expect $actual > /dev/null 2>&1 ; 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/^/ /' + test yes = "$verbose" && $DIFF $caseless $expect $actual |sed 's/^/ /' fi # Clean up output file @@ -1020,6 +1031,7 @@ TOOLTEST tcomp-4.ddl --enable-error-stack tcompound_complex.h5 #test for the nested compound type TOOLTEST tnestcomp-1.ddl --enable-error-stack tnestedcomp.h5 TOOLTEST tnestedcmpddt.ddl --enable-error-stack tnestedcmpddt.h5 +TOOLTEST ignorecase tcompound_enum.ddl --enable-error-stack tcompound_enum.h5 # test for options TOOLTEST4 tall-1.ddl --enable-error-stack tall.h5 @@ -1184,7 +1196,7 @@ TOOLTEST tallfilters.ddl --enable-error-stack -H -p -d all tfilters.h5 # user defined TOOLTEST tuserfilter.ddl --enable-error-stack -H -p -d myfilter tfilters.h5 -if test $USE_FILTER_DEFLATE = "yes" -a $USE_FILTER_SHUFFLE = "yes" -a $USE_FILTER_FLETCHER32 = "yes" -a $USE_FILTER_NBIT = "yes" -a $USE_FILTER_SCALEOFFSET = "yes" ; then +if test $USE_FILTER_DEFLATE = "yes" ; then # data read internal filters TOOLTEST treadintfilter.ddl --enable-error-stack -d deflate -d shuffle -d fletcher32 -d nbit -d scaleoffset tfilters.h5 if test $USE_FILTER_SZIP = "yes"; then diff --git a/tools/h5dump/testh5dumppbits.sh.in b/tools/h5dump/testh5dumppbits.sh.in index 0f6503d..6556ff5 100644 --- a/tools/h5dump/testh5dumppbits.sh.in +++ b/tools/h5dump/testh5dumppbits.sh.in @@ -20,10 +20,6 @@ srcdir=@srcdir@ # Determine which filters are available USE_FILTER_SZIP="@USE_FILTER_SZIP@" USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@" -USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@" -USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@" -USE_FILTER_NBIT="@USE_FILTER_NBIT@" -USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@" TESTNAME=h5dump EXIT_SUCCESS=0 diff --git a/tools/h5dump/testh5dumpxml.sh.in b/tools/h5dump/testh5dumpxml.sh.in index 4dad9cd..1efde85 100644 --- a/tools/h5dump/testh5dumpxml.sh.in +++ b/tools/h5dump/testh5dumpxml.sh.in @@ -21,8 +21,6 @@ TESTNAME=h5dumpxml EXIT_SUCCESS=0 EXIT_FAILURE=1 -H5_LONE_COLON="@H5_LONE_COLON@" - DUMPER=h5dump # The tool name DUMPER_BIN=`pwd`/$DUMPER # The path of the tool binary @@ -356,15 +354,7 @@ TOOLTEST tnamed_dtype_attr.h5.xml --xml tnamed_dtype_attr.h5 TOOLTEST tempty-dtd.h5.xml --xml --use-dtd tempty.h5 TOOLTEST tempty-dtd-2.h5.xml --xml -u tempty.h5 - -# The lone colon here confuses some systems (Cray X1). Skip -# it if configure detects that this is a problem. -if test "X$H5_LONE_COLON" != "Xno"; then - TOOLTEST tempty-nons.h5.xml --xml -X ":" tempty.h5 -else - SKIP tempty-nons.h5.xml --xml -X ":" tempty.h5 -fi - +TOOLTEST tempty-nons.h5.xml --xml -X ":" tempty.h5 TOOLTEST tempty-nons-2.h5.xml --xml --xml-ns=":" tempty.h5 ## Some of these combinations are syntactically correct but diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt index a18133f..bf1515e 100644 --- a/tools/h5import/CMakeLists.txt +++ b/tools/h5import/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5IMPORT) #----------------------------------------------------------------------------- @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c) TARGET_NAMING (h5import ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5import " " " ") +TARGET_C_PROPERTIES (h5import ${LIB_TYPE} " " " ") target_link_libraries (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) #set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT) set_target_properties (h5import PROPERTIES FOLDER tools) @@ -24,7 +24,7 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- add_executable (h5importtest ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5importtest.c) TARGET_NAMING (h5importtest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5importtest " " " ") + TARGET_C_PROPERTIES (h5importtest ${LIB_TYPE} " " " ") target_link_libraries (h5importtest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5importtest PROPERTIES FOLDER tools) diff --git a/tools/h5import/Makefile.in b/tools/h5import/Makefile.in index a611304..0778fc2 100644 --- a/tools/h5import/Makefile.in +++ b/tools/h5import/Makefile.in @@ -105,7 +105,8 @@ bin_PROGRAMS = h5import$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5import ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -413,7 +414,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -445,7 +445,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -464,17 +463,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -537,7 +533,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -552,10 +547,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -669,10 +660,10 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files from h5importtest -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.bin +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.bin # Test programs and scripts TEST_PROG = h5importtest diff --git a/tools/h5import/h5importtest.c b/tools/h5import/h5importtest.c index 49f977c..ac839fb 100644 --- a/tools/h5import/h5importtest.c +++ b/tools/h5import/h5importtest.c @@ -40,13 +40,13 @@ main(void) FILE *sp; float row4[3], col4[4], pln4[5]; - float rowo4 = (float)11.0e0, colo4 = (float)21.0e0, plno4 = (float)51.0e0; - float rowi4 = (float)1.0e0, coli4 = (float)2.0e0, plni4 = (float)5.0e0; + float rowo4 = 11.0F, colo4 = 21.0F, plno4 = 51.0F; + float rowi4 = 1.0F, coli4 = 2.0F, plni4 = 5.0F; int b32i3[5][3][4]; int row4i[3], col4i[4], pln4i[5]; - int rowo4i = (int)11 , colo4i = (int)21 , plno4i = (int)51 ; - int rowi4i = (int)1 , coli4i = (int)2 , plni4i = (int)5 ; + int rowo4i = 11 , colo4i = 21 , plno4i = 51 ; + int rowi4i = 1 , coli4i = 2 , plni4i = 5 ; #ifdef H5_SIZEOF_LONG_LONG long long row4i64[3], col4i64[4], pln4i64[5]; @@ -66,8 +66,8 @@ main(void) double b64r3[5][3][4]; double row8[3], col8[4], pln8[5]; - double rowo8 = 11.0e0, colo8 = 21.0e0, plno8 = 51.0e0; - double rowi8 = 1.0e0, coli8 = 2.0e0, plni8 = 5.0e0; + double rowo8 = 11.0F, colo8 = 21.0F, plno8 = 51.0F; + double rowi8 = 1.0F, coli8 = 2.0F, plni8 = 5.0F; /* diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt index a8e3a7c..4498132 100644 --- a/tools/h5jam/CMakeLists.txt +++ b/tools/h5jam/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5JAM) #----------------------------------------------------------------------------- @@ -11,25 +11,25 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c) TARGET_NAMING (h5jam ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5jam " " " ") +TARGET_C_PROPERTIES (h5jam ${LIB_TYPE} " " " ") target_link_libraries (h5jam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5jam PROPERTIES FOLDER tools) add_executable (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c) TARGET_NAMING (getub ${LIB_TYPE}) -TARGET_C_PROPERTIES (getub " " " ") +TARGET_C_PROPERTIES (getub ${LIB_TYPE} " " " ") target_link_libraries (getub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (getub PROPERTIES FOLDER tools) add_executable (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c) TARGET_NAMING (tellub ${LIB_TYPE}) -TARGET_C_PROPERTIES (tellub " " " ") +TARGET_C_PROPERTIES (tellub ${LIB_TYPE} " " " ") target_link_libraries (tellub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (tellub PROPERTIES FOLDER tools) add_executable (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c) TARGET_NAMING (h5unjam ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5unjam " " " ") +TARGET_C_PROPERTIES (h5unjam ${LIB_TYPE} " " " ") target_link_libraries (h5unjam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5unjam PROPERTIES FOLDER tools) @@ -47,7 +47,7 @@ if (BUILD_TESTING) if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5jamgentest ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jamgentest.c) TARGET_NAMING (h5jamgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (testhdf5 " " " ") + TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ") target_link_libraries (h5jamgentest ${HDF5_LIB_TARGET}) set_target_properties (h5jamgentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5jam/Makefile.in b/tools/h5jam/Makefile.in index 5aa68c6..ed8151f 100644 --- a/tools/h5jam/Makefile.in +++ b/tools/h5jam/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = tellub$(EXEEXT) h5jamgentest$(EXEEXT) getub$(EXEEXT) TESTS = $(TEST_SCRIPT) subdir = tools/h5jam ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -425,7 +426,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -457,7 +457,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -476,17 +475,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -549,7 +545,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -564,10 +559,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -681,12 +672,12 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by jamgentest. They should # copied to the testfiles/ directory if update is required. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 testfiles/h5jam-*-sav \ - testfiles/h5unjam-*-sav +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 \ + testfiles/h5jam-*-sav testfiles/h5unjam-*-sav TEST_SCRIPT = testh5jam.sh # Add h5jam and h5unjam specific linker flags here diff --git a/tools/h5jam/h5jamgentest.c b/tools/h5jam/h5jamgentest.c index 9636597..5a93c13 100644 --- a/tools/h5jam/h5jamgentest.c +++ b/tools/h5jam/h5jamgentest.c @@ -254,7 +254,7 @@ gent_ub(const char * filename, size_t ub_size, size_t ub_fill) space = H5Screate_simple(1, dims, NULL); dataset = H5Dcreate2(group, "dset2.1", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); for (i = 0; i < 10; i++) - dset2_1[i] = (float)(i*0.1+1); + dset2_1[i] = (float)(i*0.1F+1); H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_1); H5Sclose(space); H5Dclose(dataset); @@ -265,7 +265,7 @@ gent_ub(const char * filename, size_t ub_size, size_t ub_fill) dataset = H5Dcreate2(group, "dset2.2", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); for (i = 0; i < 3; i++) for (j = 0; j < 5; j++) - dset2_2[i][j] = (float)((i+1)*j*0.1); + dset2_2[i][j] = (float)((i+1)*j*0.1F); H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_2); H5Sclose(space); H5Dclose(dataset); diff --git a/tools/h5jam/testh5jam.sh.in b/tools/h5jam/testh5jam.sh.in index 36f0657..1664d6b 100644 --- a/tools/h5jam/testh5jam.sh.in +++ b/tools/h5jam/testh5jam.sh.in @@ -20,8 +20,6 @@ srcdir=@srcdir@ # Determine which filters are available USE_FILTER_SZIP="@USE_FILTER_SZIP@" USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@" -USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@" -USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@" TESTNAME=h5jam/h5unjam EXIT_SUCCESS=0 diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt index f3749e3..984b36b 100644 --- a/tools/h5ls/CMakeLists.txt +++ b/tools/h5ls/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5LS) #----------------------------------------------------------------------------- @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) #----------------------------------------------------------------------------- add_executable (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c) TARGET_NAMING (h5ls ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5ls " " " ") +TARGET_C_PROPERTIES (h5ls ${LIB_TYPE} " " " ") target_link_libraries (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5ls PROPERTIES FOLDER tools) diff --git a/tools/h5ls/Makefile.in b/tools/h5ls/Makefile.in index f3be33e..c77784e 100644 --- a/tools/h5ls/Makefile.in +++ b/tools/h5ls/Makefile.in @@ -104,7 +104,8 @@ bin_PROGRAMS = h5ls$(EXEEXT) TESTS = $(TEST_SCRIPT) subdir = tools/h5ls ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -405,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -437,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -456,17 +455,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -529,7 +525,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -544,10 +539,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -661,8 +652,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Test programs and scripts TEST_SCRIPT = testh5ls.sh diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt index cb8720e..42d9f3d 100644 --- a/tools/h5repack/CMakeLists.txt +++ b/tools/h5repack/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5REPACK) #----------------------------------------------------------------------------- @@ -22,7 +22,7 @@ set (REPACK_COMMON_SRCS add_executable (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c) TARGET_NAMING (h5repack ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5repack " " " ") +TARGET_C_PROPERTIES (h5repack ${LIB_TYPE} " " " ") target_link_libraries (h5repack ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5repack PROPERTIES FOLDER tools) @@ -34,13 +34,13 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- add_executable (testh5repack_detect_szip ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c) TARGET_NAMING (testh5repack_detect_szip ${LIB_TYPE}) - TARGET_C_PROPERTIES (testh5repack_detect_szip " " " ") + TARGET_C_PROPERTIES (testh5repack_detect_szip ${LIB_TYPE} " " " ") target_link_libraries (testh5repack_detect_szip ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (testh5repack_detect_szip PROPERTIES FOLDER tools) add_executable (h5repacktest ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repacktst.c) TARGET_NAMING (h5repacktest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5repacktest " " " ") + TARGET_C_PROPERTIES (h5repacktest ${LIB_TYPE} " " " ") target_link_libraries (h5repacktest ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5repacktest PROPERTIES FOLDER tools) @@ -54,12 +54,12 @@ if (BUILD_TESTING) add_definitions (${HDF_EXTRA_C_FLAGS}) INCLUDE_DIRECTORIES (${HDF5_SRC_DIR}) - add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${LIB_TYPE} dynlib_rpk.c) - TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} " " " ") + add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_rpk.c) + TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ") target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) H5_SET_LIB_OPTIONS ( ${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME} - ${LIB_TYPE} + SHARED HDF5_TOOL_PLUGIN_LIB_NAME_RELEASE HDF5_TOOL_PLUGIN_LIB_NAME_DEBUG ) diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake index 220c871..3391c3f 100644 --- a/tools/h5repack/CMakeTests.cmake +++ b/tools/h5repack/CMakeTests.cmake @@ -649,22 +649,6 @@ set (USE_FILTER_SZIP "true") endif (H5_HAVE_FILTER_SZIP) - if (H5_HAVE_FILTER_SHUFFLE) - set (USE_FILTER_SHUFFLE "true") - endif (H5_HAVE_FILTER_SHUFFLE) - - if (H5_HAVE_FILTER_FLETCHER32) - set (USE_FILTER_FLETCHER32 "true") - endif (H5_HAVE_FILTER_FLETCHER32) - - if (H5_HAVE_FILTER_NBIT) - set (USE_FILTER_NBIT "true") - endif (H5_HAVE_FILTER_NBIT) - - if (H5_HAVE_FILTER_SCALEOFFSET) - set (USE_FILTER_SCALEOFFSET "true") - endif (H5_HAVE_FILTER_SCALEOFFSET) - # copy files (these files have no filters) ADD_H5_TEST (fill "TEST" ${FILE0}) ADD_H5_TEST (objs "TEST" ${FILE1}) @@ -709,42 +693,26 @@ # shuffle with individual object set (arg ${FILE4} -f dset2:SHUF -l dset2:CHUNK=20x10) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_individual ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_individual "TEST" ${arg}) # shuffle for all set (arg ${FILE4} -f SHUF) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_all ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_all "TEST" ${arg}) # fletcher32 with individual object set (arg ${FILE4} -f dset2:FLET -l dset2:CHUNK=20x10) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_individual ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_individual "TEST" ${arg}) # fletcher32 for all set (arg ${FILE4} -f FLET) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_all ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_all "TEST" ${arg}) # all filters set (arg ${FILE4} -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10) set (TESTTYPE "TEST") - if (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE) + if (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_DEFLATE) set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE) + endif (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_DEFLATE) ADD_H5_TEST (all_filters ${TESTTYPE} ${arg}) # verbose gzip with individual object @@ -793,90 +761,50 @@ # shuffle copy set (arg ${FILE9}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_copy "TEST" ${arg}) # shuffle remove set (arg ${FILE9} -f dset_shuffle:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_remove "TEST" ${arg}) # fletcher32 copy set (arg ${FILE10}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_copy "TEST" ${arg}) # fletcher32 remove set (arg ${FILE10} -f dset_fletcher32:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_remove "TEST" ${arg}) # nbit copy set (arg ${FILE12}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_NBIT) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_NBIT) - ADD_H5_TEST (nbit_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (nbit_copy "TEST" ${arg}) # nbit remove set (arg ${FILE12} -f dset_nbit:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_NBIT) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_NBIT) - ADD_H5_TEST (nbit_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (nbit_remove "TEST" ${arg}) # nbit add set (arg ${FILE12} -f dset_int31:NBIT) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_NBIT) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_NBIT) - ADD_H5_TEST (nbit_add ${TESTTYPE} ${arg}) + ADD_H5_TEST (nbit_add "TEST" ${arg}) # scaleoffset copy set (arg ${FILE13}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SCALEOFFSET) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SCALEOFFSET) - ADD_H5_TEST (scale_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (scale_copy "TEST" ${arg}) # scaleoffset add set (arg ${FILE13} -f dset_none:SOFF=31,IN) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SCALEOFFSET) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SCALEOFFSET) - ADD_H5_TEST (scale_add ${TESTTYPE} ${arg}) + ADD_H5_TEST (scale_add "TEST" ${arg}) # scaleoffset remove set (arg ${FILE13} -f dset_scaleoffset:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SCALEOFFSET) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SCALEOFFSET) - ADD_H5_TEST (scale_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (scale_remove "TEST" ${arg}) # remove all filters set (arg ${FILE11} -f NONE) set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_NBIT OR NOT USE_FILTER_SCALEOFFSET) + if (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER) set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_NBIT OR NOT USE_FILTER_SCALEOFFSET) + endif (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER) ADD_H5_TEST (remove_all ${TESTTYPE} ${arg}) #filter conversions @@ -943,14 +871,14 @@ # Use first dset to test. #--------------------------------------------------------------------------- # chunk to chunk - specify chunk dim bigger than any current dim -ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300) + ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300) # chunk to contiguous -ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI) + ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI) # chunk to compact - convert big dataset (should be > 64k) for this purpose, # should remain as original layout (chunk) -ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA) + ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA) #-------------------------------------------------------------------------- # Test -f for some specific cases. Chunked dataset with unlimited max dims. @@ -960,16 +888,16 @@ ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUN # - should not change max dims from unlimit # chunk dim is bigger than dataset dim. ( dset size < 64k ) -ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE) + ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE) # chunk dim is bigger than dataset dim. ( dset size > 64k ) -ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE) + ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE) # chunk dims are smaller than dataset dims. ( dset size < 64k ) -ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE) + ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE) # file input - should not fail -ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) + ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) #-------------------------------------------------------------------------- # Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset @@ -977,9 +905,9 @@ ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) # (HDFFV-8214) #-------------------------------------------------------------------------- # chunk dim is bigger than dataset dim. should succeed. -ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI) + ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI) # chunk dim is smaller than dataset dim. should succeed. -ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI) + ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI) @@ -1008,9 +936,9 @@ ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CO # several global filters set (arg ${FILE4} --filter GZIP=1 --filter SHUF) set (TESTTYPE "TEST") - if (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SHUFFLE) + if (NOT USE_FILTER_DEFLATE) set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SHUFFLE) + endif (NOT USE_FILTER_DEFLATE) ADD_H5_TEST (global_filters ${TESTTYPE} ${arg}) # syntax of -i infile -o outfile diff --git a/tools/h5repack/Makefile.in b/tools/h5repack/Makefile.in index 441df41..6d1bfd6 100644 --- a/tools/h5repack/Makefile.in +++ b/tools/h5repack/Makefile.in @@ -108,7 +108,8 @@ bin_PROGRAMS = h5repack$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5repack ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -437,7 +438,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -469,7 +469,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -488,17 +487,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -561,7 +557,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -576,10 +571,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -693,11 +684,11 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by h5repack. They should # copied to the testfiles/ directory if update is required. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.bin \ +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.bin \ testfiles/h5diff_attr1.h5 testfiles/tfamily*.h5 # Test programs and scripts diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in index a4d12bd..e3bb939 100644 --- a/tools/h5repack/h5repack.sh.in +++ b/tools/h5repack/h5repack.sh.in @@ -24,10 +24,6 @@ srcdir=@srcdir@ USE_FILTER_SZIP="@USE_FILTER_SZIP@" USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@" -USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@" -USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@" -USE_FILTER_NBIT="@USE_FILTER_NBIT@" -USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@" TESTNAME=h5repack EXIT_SUCCESS=0 @@ -742,40 +738,24 @@ fi # shuffle with individual object arg="h5repack_layout.h5 -f dset2:SHUF -l dset2:CHUNK=20x10" -if test $USE_FILTER_SHUFFLE != "yes" ; then - SKIP $arg -else - TOOLTEST shuffle_individual $arg -fi +TOOLTEST shuffle_individual $arg # shuffle for all arg="h5repack_layout.h5 -f SHUF" -if test $USE_FILTER_SHUFFLE != "yes" ; then - SKIP $arg -else - TOOLTEST shuffle_all $arg -fi +TOOLTEST shuffle_all $arg # fletcher32 with individual object arg="h5repack_layout.h5 -f dset2:FLET -l dset2:CHUNK=20x10" -if test $USE_FILTER_FLETCHER32 != "yes" ; then - SKIP $arg -else - TOOLTEST fletcher_individual $arg -fi +TOOLTEST fletcher_individual $arg # fletcher32 for all arg="h5repack_layout.h5 -f FLET" -if test $USE_FILTER_FLETCHER32 != "yes" ; then - SKIP $arg -else - TOOLTEST fletcher_all $arg -fi +TOOLTEST fletcher_all $arg # all filters arg="h5repack_layout.h5 -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10" -if test $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_SHUFFLE != "yes" -o $USE_FILTER_FLETCHER32 != "yes" -o $USE_FILTER_DEFLATE != "yes" ; then +if test $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_DEFLATE != "yes" ; then SKIP $arg else TOOLTEST all_filters $arg @@ -828,87 +808,47 @@ fi # shuffle copy arg="h5repack_shuffle.h5" -if test $USE_FILTER_SHUFFLE != "yes" ; then - SKIP $arg -else - TOOLTEST shuffle_copy $arg -fi +TOOLTEST shuffle_copy $arg # shuffle remove arg="h5repack_shuffle.h5 -f dset_shuffle:NONE" -if test $USE_FILTER_SHUFFLE != "yes" ; then - SKIP $arg -else - TOOLTEST shuffle_remove $arg -fi +TOOLTEST shuffle_remove $arg # fletcher32 copy arg="h5repack_fletcher.h5" -if test $USE_FILTER_FLETCHER32 != "yes" ; then - SKIP $arg -else - TOOLTEST fletcher_copy $arg -fi +TOOLTEST fletcher_copy $arg # fletcher32 remove arg="h5repack_fletcher.h5 -f dset_fletcher32:NONE" -if test $USE_FILTER_FLETCHER32 != "yes" ; then - SKIP $arg -else - TOOLTEST fletcher_remove $arg -fi +TOOLTEST fletcher_remove $arg # nbit copy arg="h5repack_nbit.h5" -if test $USE_FILTER_NBIT != "yes" ; then - SKIP $arg -else - TOOLTEST nbit_copy $arg -fi +TOOLTEST nbit_copy $arg # nbit remove arg="h5repack_nbit.h5 -f dset_nbit:NONE" -if test $USE_FILTER_NBIT != "yes" ; then - SKIP $arg -else - TOOLTEST nbit_remove $arg -fi +TOOLTEST nbit_remove $arg # nbit add arg="h5repack_nbit.h5 -f dset_int31:NBIT" -if test $USE_FILTER_NBIT != "yes" ; then - SKIP $arg -else - TOOLTEST nbit_add $arg -fi +TOOLTEST nbit_add $arg # scaleoffset copy arg="h5repack_soffset.h5" -if test $USE_FILTER_SCALEOFFSET != "yes" ; then - SKIP $arg -else - TOOLTEST scale_copy $arg -fi +TOOLTEST scale_copy $arg # scaleoffset add arg="h5repack_soffset.h5 -f dset_none:SOFF=31,IN" -if test $USE_FILTER_SCALEOFFSET != "yes" ; then - SKIP $arg -else - TOOLTEST scale_add $arg -fi +TOOLTEST scale_add $arg # scaleoffset remove arg="h5repack_soffset.h5 -f dset_scaleoffset:NONE" -if test $USE_FILTER_SCALEOFFSET != "yes" ; then - SKIP $arg -else - TOOLTEST scale_remove $arg -fi +TOOLTEST scale_remove $arg # remove all filters arg="h5repack_filters.h5 -f NONE" -if test $USE_FILTER_FLETCHER32 != "yes" -o $USE_FILTER_DEFLATE != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SHUFFLE != "yes" -o $USE_FILTER_NBIT != "yes" -o $USE_FILTER_SCALEOFFSET != "yes" ; then +if test $USE_FILTER_DEFLATE != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_SZIP_ENCODER != "yes" ; then SKIP $arg else TOOLTEST remove_all $arg @@ -1061,7 +1001,7 @@ fi # several global filters arg="h5repack_layout.h5 --filter GZIP=1 --filter SHUF" -if test $USE_FILTER_DEFLATE != "yes" -o $USE_FILTER_SHUFFLE != "yes" ; then +if test $USE_FILTER_DEFLATE != "yes" ; then SKIP $arg else TOOLTEST global_filters $arg diff --git a/tools/h5repack/h5repacktst.c b/tools/h5repack/h5repacktst.c index 5ec9a8d..46d895c 100644 --- a/tools/h5repack/h5repacktst.c +++ b/tools/h5repack/h5repacktst.c @@ -445,8 +445,6 @@ int main (void) TESTING(" addding shuffle filter"); -#ifdef H5_HAVE_FILTER_SHUFFLE - /*------------------------------------------------------------------------- * test an individual object option *------------------------------------------------------------------------- @@ -468,9 +466,6 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif /*------------------------------------------------------------------------- * test all objects option @@ -479,8 +474,6 @@ int main (void) TESTING(" addding shuffle filter to all"); -#ifdef H5_HAVE_FILTER_SHUFFLE - /* fs_type = H5F_FILE_SPACE_ALL_PERSIST; fs_size = 1 */ if (h5repack_init (&pack_options, 0, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0) GOERROR; @@ -498,13 +491,9 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif - TESTING(" adding checksum filter"); -#ifdef H5_HAVE_FILTER_FLETCHER32 + TESTING(" adding checksum filter"); /*------------------------------------------------------------------------- * test an individual object option @@ -527,9 +516,6 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif /*------------------------------------------------------------------------- * test all objects option @@ -539,8 +525,6 @@ int main (void) TESTING(" adding checksum filter to all"); -#ifdef H5_HAVE_FILTER_FLETCHER32 - if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("FLET",&pack_options) < 0) @@ -557,9 +541,6 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif TESTING(" filter queue fletcher, shuffle, deflate, szip"); @@ -573,16 +554,10 @@ int main (void) GOERROR; if (h5repack_addlayout("dset1:CHUNK 20x10",&pack_options) < 0) GOERROR; - -#if defined (H5_HAVE_FILTER_FLETCHER32) if (h5repack_addfilter("dset1:FLET",&pack_options) < 0) GOERROR; -#endif - -#ifdef H5_HAVE_FILTER_SHUFFLE if (h5repack_addfilter("dset1:SHUF",&pack_options) < 0) GOERROR; -#endif #if defined (H5_HAVE_FILTER_SZIP) if (szip_can_encode) { @@ -1039,7 +1014,6 @@ int main (void) TESTING(" copy of shuffle filter"); -#ifdef H5_HAVE_FILTER_SHUFFLE if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack(FNAME9,FNAME9OUT,&pack_options) < 0) @@ -1052,13 +1026,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif + TESTING(" removing shuffle filter"); -#ifdef H5_HAVE_FILTER_SHUFFLE if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("dset_shuffle:NONE",&pack_options) < 0) @@ -1073,13 +1044,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif + TESTING(" copy of fletcher filter"); -#ifdef H5_HAVE_FILTER_FLETCHER32 if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack(FNAME10,FNAME10OUT,&pack_options) < 0) @@ -1092,13 +1060,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif + TESTING(" removing fletcher filter"); -#ifdef H5_HAVE_FILTER_FLETCHER32 if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("dset_fletcher32:NONE",&pack_options) < 0) @@ -1113,14 +1078,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif TESTING(" copy of nbit filter"); -#ifdef H5_HAVE_FILTER_NBIT if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack(FNAME12,FNAME12OUT,&pack_options) < 0) @@ -1133,13 +1094,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif + TESTING(" removing nbit filter"); -#ifdef H5_HAVE_FILTER_NBIT if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("dset_nbit:NONE",&pack_options) < 0) @@ -1154,14 +1112,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif TESTING(" adding nbit filter"); -#ifdef H5_HAVE_FILTER_NBIT if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("dset_int31:NBIT",&pack_options) < 0) @@ -1176,14 +1130,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif TESTING(" copy of scaleoffset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack(FNAME13,FNAME13OUT,&pack_options) < 0) @@ -1196,13 +1146,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif + TESTING(" removing scaleoffset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("dset_scaleoffset:NONE",&pack_options) < 0) @@ -1217,14 +1164,10 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif TESTING(" adding scaleoffset filter"); -#ifdef H5_HAVE_FILTER_SCALEOFFSET if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; if (h5repack_addfilter("dset_none:SOFF=31,IN",&pack_options) < 0) @@ -1239,10 +1182,6 @@ int main (void) GOERROR; PASSED(); -#else - SKIPPED(); -#endif - /*------------------------------------------------------------------------- @@ -1258,9 +1197,7 @@ int main (void) TESTING(" filter conversion from deflate to szip"); -#if defined (H5_HAVE_FILTER_SZIP) \ - && defined (H5_HAVE_FILTER_DEFLATE) \ - && defined (H5_HAVE_FILTER_FLETCHER32) && defined (H5_HAVE_FILTER_SHUFFLE) +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE) if (szip_can_encode) { /* fs_type = H5F_FILE_SPACE_VFD; fs_size = 4 */ @@ -1287,9 +1224,7 @@ int main (void) TESTING(" filter conversion from szip to deflate"); -#if defined (H5_HAVE_FILTER_SZIP) \ - && defined (H5_HAVE_FILTER_DEFLATE) \ - && defined (H5_HAVE_FILTER_FLETCHER32) && defined (H5_HAVE_FILTER_SHUFFLE) +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE) if (szip_can_encode) { if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) @@ -1321,8 +1256,7 @@ int main (void) TESTING(" removing all filters"); -#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE) \ - && defined (H5_HAVE_FILTER_FLETCHER32) && defined (H5_HAVE_FILTER_SHUFFLE) +#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE) if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; @@ -1429,7 +1363,7 @@ int main (void) TESTING(" several global filters"); -#if defined (H5_HAVE_FILTER_DEFLATE) && defined (H5_HAVE_FILTER_SHUFFLE) +#if defined (H5_HAVE_FILTER_DEFLATE) if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0) GOERROR; @@ -2347,13 +2281,12 @@ int make_shuffle(hid_t loc_id) * shuffle *------------------------------------------------------------------------- */ -#if defined (H5_HAVE_FILTER_SHUFFLE) + /* set the shuffle filter */ if (H5Pset_shuffle(dcpl) < 0) goto out; if (make_dset(loc_id,"dset_shuffle",sid,dcpl,buf) < 0) goto out; -#endif /*------------------------------------------------------------------------- @@ -2414,7 +2347,7 @@ int make_fletcher32(hid_t loc_id) * fletcher32 *------------------------------------------------------------------------- */ -#if defined (H5_HAVE_FILTER_FLETCHER32) + /* remove the filters from the dcpl */ if (H5Premove_filter(dcpl,H5Z_FILTER_ALL) < 0) goto out; @@ -2423,7 +2356,6 @@ int make_fletcher32(hid_t loc_id) goto out; if (make_dset(loc_id,"dset_fletcher32",sid,dcpl,buf) < 0) goto out; -#endif /*------------------------------------------------------------------------- * close space and dcpl @@ -2488,7 +2420,6 @@ int make_nbit(hid_t loc_id) goto out; } -#if defined H5_HAVE_FILTER_NBIT /* remove the filters from the dcpl */ if(H5Premove_filter(dcpl, H5Z_FILTER_ALL) < 0) { @@ -2522,7 +2453,6 @@ int make_nbit(hid_t loc_id) goto out; } H5Dclose(dsid); -#endif /*------------------------------------------------------------------------- * close @@ -2584,7 +2514,6 @@ int make_scaleoffset(hid_t loc_id) dtid = H5Tcopy(H5T_NATIVE_INT); -#if defined (H5_HAVE_FILTER_SCALEOFFSET) /* remove the filters from the dcpl */ if(H5Premove_filter(dcpl, H5Z_FILTER_ALL) < 0) { H5Tclose(dtid); @@ -2613,7 +2542,6 @@ int make_scaleoffset(hid_t loc_id) } H5Tclose(dtid); H5Dclose(dsid); -#endif /*------------------------------------------------------------------------- * close space and dcpl @@ -2647,10 +2575,8 @@ int make_all_filters(hid_t loc_id) { hid_t dcpl; /* dataset creation property list */ hid_t sid; /* dataspace ID */ -#if defined (H5_HAVE_FILTER_NBIT) hid_t dtid; hid_t dsid; -#endif /* H5_HAVE_FILTER_NBIT */ #if defined (H5_HAVE_FILTER_SZIP) unsigned szip_options_mask=H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK; unsigned szip_pixels_per_block=8; @@ -2680,17 +2606,13 @@ int make_all_filters(hid_t loc_id) if (H5Pset_chunk(dcpl, RANK, chunk_dims) < 0) goto out; -#if defined (H5_HAVE_FILTER_SHUFFLE) /* set the shuffle filter */ if (H5Pset_shuffle(dcpl) < 0) goto out; -#endif -#if defined (H5_HAVE_FILTER_FLETCHER32) /* set the checksum filter */ if (H5Pset_fletcher32(dcpl) < 0) goto out; -#endif #if defined (H5_HAVE_FILTER_SZIP) if (h5tools_can_encode(H5Z_FILTER_SZIP) == 1) @@ -2716,7 +2638,6 @@ int make_all_filters(hid_t loc_id) if (make_dset(loc_id,"dset_all",sid,dcpl,buf) < 0) goto out; -#if defined (H5_HAVE_FILTER_FLETCHER32) /* remove the filters from the dcpl */ if (H5Premove_filter(dcpl,H5Z_FILTER_ALL) < 0) goto out; @@ -2725,7 +2646,6 @@ int make_all_filters(hid_t loc_id) goto out; if (make_dset(loc_id,"dset_fletcher32",sid,dcpl,buf) < 0) goto out; -#endif /* Make sure encoding is enabled */ @@ -2747,7 +2667,6 @@ int make_all_filters(hid_t loc_id) #endif -#if defined (H5_HAVE_FILTER_SHUFFLE) /* remove the filters from the dcpl */ if (H5Premove_filter(dcpl,H5Z_FILTER_ALL) < 0) goto out; @@ -2756,7 +2675,6 @@ int make_all_filters(hid_t loc_id) goto out; if (make_dset(loc_id,"dset_shuffle",sid,dcpl,buf) < 0) goto out; -#endif #if defined (H5_HAVE_FILTER_DEFLATE) @@ -2772,7 +2690,6 @@ int make_all_filters(hid_t loc_id) -#if defined (H5_HAVE_FILTER_NBIT) /* remove the filters from the dcpl */ if (H5Premove_filter(dcpl, H5Z_FILTER_ALL) < 0) goto out; @@ -2793,8 +2710,6 @@ int make_all_filters(hid_t loc_id) return -1; if(H5Dclose(dsid) < 0) return -1; -#endif - if(H5Sclose(sid) < 0) goto out; diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt index 0658216..5230693 100644 --- a/tools/h5stat/CMakeLists.txt +++ b/tools/h5stat/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_H5STAT) #----------------------------------------------------------------------------- @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c) TARGET_NAMING (h5stat ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5stat " " " ") +TARGET_C_PROPERTIES (h5stat ${LIB_TYPE} " " " ") target_link_libraries (h5stat ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5stat PROPERTIES FOLDER tools) @@ -23,8 +23,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5stat_gentest ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat_gentest.c) - TARGET_NAMING (h5stat_gentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5stat_gentest " " " ") + TARGET_NAMING (h5stat_gentest STATIC) + TARGET_C_PROPERTIES (h5stat_gentest STATIC " " " ") target_link_libraries (h5stat_gentest ${HDF5_LIB_TARGET}) set_target_properties (h5stat_gentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5stat/Makefile.in b/tools/h5stat/Makefile.in index c78e95b..1bbefe9 100644 --- a/tools/h5stat/Makefile.in +++ b/tools/h5stat/Makefile.in @@ -106,7 +106,8 @@ bin_PROGRAMS = h5stat$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5stat ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -415,7 +416,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -447,7 +447,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -466,17 +465,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -539,7 +535,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -554,10 +549,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -671,12 +662,12 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by h5repart_gentest. They should # copied to the testfiles/ directory if update is required. fst_family*.h5 # and scd_family*.h5 were created by setting the HDF5_NOCLEANUP variable. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 \ +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 \ ../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5 #test script and program diff --git a/tools/h5stat/testh5stat.sh.in b/tools/h5stat/testh5stat.sh.in index cb0446b..4d698da 100644 --- a/tools/h5stat/testh5stat.sh.in +++ b/tools/h5stat/testh5stat.sh.in @@ -25,10 +25,6 @@ srcdir=@srcdir@ # Determine which filters are available USE_FILTER_SZIP="@USE_FILTER_SZIP@" USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@" -USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@" -USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@" -USE_FILTER_NBIT="@USE_FILTER_NBIT@" -USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@" TESTNAME=h5stat EXIT_SUCCESS=0 diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt index ce29208..dbd72cd 100644 --- a/tools/lib/CMakeLists.txt +++ b/tools/lib/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_LIB) #----------------------------------------------------------------------------- @@ -38,14 +38,14 @@ set (H5_TOOLS_LIB_HDRS ) add_library (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS}) -TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}") H5_SET_LIB_OPTIONS ( ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME} ${LIB_TYPE} HDF5_TOOLS_LIB_NAME_RELEASE - HDF5_TOOLS_LIB_NAME_DEBUG + HDF5_TOOLS_LIB_NAME_DEBUG ) #set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES COMPILE_DEFINITIONS H5DIFF_DEBUG) set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES diff --git a/tools/lib/Makefile.in b/tools/lib/Makefile.in index bfc73ec..0b531b3 100644 --- a/tools/lib/Makefile.in +++ b/tools/lib/Makefile.in @@ -103,7 +103,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = tools/lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -402,7 +403,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -434,7 +434,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -453,17 +452,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -526,7 +522,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -541,10 +536,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -658,8 +649,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # This is our main target, the h5tools library. noinst_LTLIBRARIES = libh5tools.la diff --git a/tools/lib/h5tools_dump.c b/tools/lib/h5tools_dump.c index ba1af19..26cac47 100644 --- a/tools/lib/h5tools_dump.c +++ b/tools/lib/h5tools_dump.c @@ -2468,7 +2468,7 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ /* Close array base type */ if(H5Tclose(super) < 0) HERROR(H5E_tools_g, H5E_tools_min_id_g, "H5Tclose failed"); - } + } else HERROR(H5E_tools_g, H5E_tools_min_id_g, "H5Tget_super failed"); @@ -2842,17 +2842,13 @@ h5tools_dump_oid(FILE *stream, const h5tool_format_t *info, } + /*------------------------------------------------------------------------- * Function: dump_fill_value * * Purpose: prints the fill value * * Return: void - * - * Programmer: pvn - * - * Modifications: - * *------------------------------------------------------------------------- */ void @@ -2883,15 +2879,11 @@ h5tools_print_fill_value(h5tools_str_t *buffer/*in,out*/, const h5tool_format_t * Purpose: prints several dataset create property list properties * * Return: void - * - * Modifications: pvn, March 28, 2008 - * Add a COMPRESSION ratio information for cases when filters are present - * *------------------------------------------------------------------------- */ void h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, - h5tools_context_t *ctx, hid_t dcpl_id,hid_t type_id, hid_t obj_id) + h5tools_context_t *ctx, hid_t dcpl_id, hid_t type_id, hid_t obj_id) { int nfilters; /* number of filters */ int rank; /* rank */ @@ -2905,16 +2897,18 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, H5D_fill_value_t fvstatus; H5D_alloc_time_t at; H5D_fill_time_t ft; - size_t ncols = 80; /* available output width */ + H5D_layout_t stl; + size_t ncols = 80; /* available output width */ size_t cd_nelmts; /* filter client number of values */ off_t offset; /* offset of external file */ char f_name[256]; /* filter name */ - char name[256]; /* external file name */ + char name[256]; /* external or virtual file name */ + char dsetname[256]; /* virtual datset name */ hsize_t chsize[64]; /* chunk size in elements */ hsize_t size; /* size of external file */ hsize_t storage_size; - hsize_t curr_pos = 0; /* total data element position */ - h5tools_str_t buffer; /* string into which to render */ + hsize_t curr_pos = 0; /* total data element position */ + h5tools_str_t buffer; /* string into which to render */ /* setup */ HDmemset(&buffer, 0, sizeof(h5tools_str_t)); @@ -2936,216 +2930,172 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, h5tools_str_append(&buffer, "%s %s", STORAGE_LAYOUT, BEGIN); h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - if(H5D_CHUNKED == H5Pget_layout(dcpl_id)) { - ctx->indent_level++; + ctx->indent_level++; - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s ", CHUNKED); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - rank = H5Pget_chunk(dcpl_id,(int)NELMTS(chsize),chsize); - h5tools_str_append(&buffer, "%s " HSIZE_T_FORMAT, h5tools_dump_header_format->dataspacedimbegin, chsize[0]); - for(i = 1; i < rank; i++) - h5tools_str_append(&buffer, ", " HSIZE_T_FORMAT, chsize[i]); - h5tools_str_append(&buffer, " %s", h5tools_dump_header_format->dataspacedimend); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + stl = H5Pget_layout(dcpl_id); + switch (stl) { + case H5D_CHUNKED: + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s ", CHUNKED); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); + rank = H5Pget_chunk(dcpl_id, (int) NELMTS(chsize), chsize); + h5tools_str_append(&buffer, "%s " HSIZE_T_FORMAT, h5tools_dump_header_format->dataspacedimbegin, chsize[0]); + for(i = 1; i < rank; i++) + h5tools_str_append(&buffer, ", " HSIZE_T_FORMAT, chsize[i]); + h5tools_str_append(&buffer, " %s", h5tools_dump_header_format->dataspacedimend); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); - /* if there are filters, print a compression ratio */ - if(nfilters) { - hsize_t dims[H5S_MAX_RANK]; - hsize_t nelmts = 1; - double ratio = 0; - int ok = 0; - - hid_t tid = H5Dget_type(obj_id); - hid_t sid = H5Dget_space(obj_id); - size_t datum_size = H5Tget_size(tid); - int ndims = H5Sget_simple_extent_dims(sid, dims, NULL); - - /* only print the compression ratio for these filters */ - for(i = 0; i < nfilters && !ok; i++) { - cd_nelmts = NELMTS(cd_values); - filtn = H5Pget_filter2(dcpl_id, (unsigned)i, &filt_flags, &cd_nelmts, - cd_values, sizeof(f_name), f_name, NULL); - ok = (filtn>=0); - - /* this following code will not show compression ratio for - user defined filter. For example, see HDFFV-8344 --xcao@hdfgroup.org - switch(filtn) { - case H5Z_FILTER_DEFLATE: - case H5Z_FILTER_SZIP: - case H5Z_FILTER_NBIT: - case H5Z_FILTER_SCALEOFFSET: - ok = 1; - break; - } - */ - } + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - if(ndims && ok) { - hsize_t uncomp_size; + h5tools_str_reset(&buffer); - for(i = 0; i < ndims; i++) { - nelmts *= dims[i]; + /* if there are filters, print a compression ratio */ + if (nfilters) { + hsize_t dims[H5S_MAX_RANK]; + hsize_t nelmts = 1; + double ratio = 0; + int ok = 0; + + hid_t tid = H5Dget_type(obj_id); + hid_t sid = H5Dget_space(obj_id); + size_t datum_size = H5Tget_size(tid); + int ndims = H5Sget_simple_extent_dims(sid, dims, NULL); + + /* only print the compression ratio for these filters */ + for (i = 0; i < nfilters && !ok; i++) { + cd_nelmts = NELMTS(cd_values); + filtn = H5Pget_filter2(dcpl_id, (unsigned) i, &filt_flags, &cd_nelmts, cd_values, sizeof(f_name), + f_name, NULL); + ok = (filtn >= 0); } - uncomp_size = nelmts * datum_size; - /* compression ratio = uncompressed size / compressed size */ + if(ndims && ok) { + hsize_t uncomp_size; - if(storage_size != 0) - ratio = (double) uncomp_size / (double) storage_size; + for(i = 0; i < ndims; i++) { + nelmts *= dims[i]; + } + uncomp_size = nelmts * datum_size; - h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT" (%.3f:1 COMPRESSION)", storage_size, ratio); + /* compression ratio = uncompressed size / compressed size */ - } - else - h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT, storage_size); + if(storage_size != 0) + ratio = (double) uncomp_size / (double) storage_size; - H5Sclose(sid); - H5Tclose(tid); + h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT" (%.3f:1 COMPRESSION)", storage_size, ratio); - } - else { - h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT, storage_size); - } - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + } + else + h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT, storage_size); - ctx->indent_level--; + H5Sclose(sid); + H5Tclose(tid); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s",END); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - } - else if(H5D_COMPACT == H5Pget_layout(dcpl_id)) { - ctx->indent_level++; + } + else { + h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT, storage_size); + } + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); + break; + case H5D_COMPACT: + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s", COMPACT); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s", COMPACT); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT, storage_size); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "SIZE " HSIZE_T_FORMAT, storage_size); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); + break; + case H5D_CONTIGUOUS: + { + int next; - ctx->indent_level--; + next = H5Pget_external_count(dcpl_id); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s",END); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - } - else if(H5D_CONTIGUOUS == H5Pget_layout(dcpl_id)) { - int next; + /*------------------------------------------------------------------------- + * EXTERNAL_FILE + *------------------------------------------------------------------------- + */ + if (next) { + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s", CONTIGUOUS); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); - next = H5Pget_external_count(dcpl_id); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - /*------------------------------------------------------------------------- - * EXTERNAL_FILE - *------------------------------------------------------------------------- - */ - if(next) { - ctx->indent_level++; + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s %s", EXTERNAL, BEGIN); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s", CONTIGUOUS); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->indent_level++; + for (j = 0; j < (unsigned) next; j++) { + H5Pget_external(dcpl_id, j, sizeof(name), name, &offset, &size); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s %s", EXTERNAL, BEGIN); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->indent_level++; - for(j = 0; j < (unsigned)next; j++) { - H5Pget_external(dcpl_id, j, sizeof(name), name, &offset, &size); + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "FILENAME %s SIZE " HSIZE_T_FORMAT, name, size); + h5tools_str_append(&buffer, " OFFSET %ld", offset); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); + } + ctx->indent_level--; - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "FILENAME %s SIZE " HSIZE_T_FORMAT, name, size); - h5tools_str_append(&buffer, " OFFSET %ld", offset); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - } - ctx->indent_level--; + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s",END); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s", END); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); + } + else { + haddr_t ioffset; - ctx->indent_level--; + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s", CONTIGUOUS); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s",END); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - } - else { - haddr_t ioffset; + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->indent_level++; + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer,"SIZE " HSIZE_T_FORMAT, storage_size); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s", CONTIGUOUS); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - + h5tools_str_reset(&buffer); + ioffset = H5Dget_offset(obj_id); + h5tools_str_append(&buffer, "OFFSET "H5_PRINTF_HADDR_FMT, ioffset); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); + } + } + break; + default: h5tools_str_reset(&buffer); - h5tools_str_append(&buffer,"SIZE " HSIZE_T_FORMAT, storage_size); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + h5tools_str_append(&buffer, "%s", "Unknown layout"); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t) ncols, (hsize_t) 0, (hsize_t) 0); + }/*switch*/ - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - ioffset = H5Dget_offset(obj_id); - h5tools_str_append(&buffer,"OFFSET "H5_PRINTF_HADDR_FMT, ioffset); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->indent_level--; - ctx->indent_level--; + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s",END); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - } - } - /*------------------------------------------------------------------------- + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s", END); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + + /*------------------------------------------------------------------------- * FILTERS *------------------------------------------------------------------------- */ @@ -3165,7 +3115,7 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, filtn = H5Pget_filter2(dcpl_id, (unsigned)i, &filt_flags, &cd_nelmts, cd_values, sizeof(f_name), f_name, NULL); - if (filtn<0) + if (filtn < 0) continue; /* nothing to print for invalid filter */ ctx->need_prefix = TRUE; @@ -3186,70 +3136,68 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); break; case H5Z_FILTER_SZIP: - { - szip_options_mask = cd_values[0];; - szip_pixels_per_block = cd_values[1]; + szip_options_mask = cd_values[0];; + szip_pixels_per_block = cd_values[1]; - h5tools_str_append(&buffer, "%s %s",SZIP, BEGIN); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + h5tools_str_append(&buffer, "%s %s", SZIP, BEGIN); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - ctx->indent_level++; + ctx->indent_level++; - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "PIXELS_PER_BLOCK %d", szip_pixels_per_block); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - if(szip_options_mask & H5_SZIP_CHIP_OPTION_MASK) - h5tools_str_append(&buffer, "MODE %s", "HARDWARE"); - else if(szip_options_mask & H5_SZIP_ALLOW_K13_OPTION_MASK) - h5tools_str_append(&buffer, "MODE %s", "K13"); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "PIXELS_PER_BLOCK %d", szip_pixels_per_block); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - if(szip_options_mask & H5_SZIP_EC_OPTION_MASK) - h5tools_str_append(&buffer, "CODING %s", "ENTROPY"); - else if(szip_options_mask & H5_SZIP_NN_OPTION_MASK) - h5tools_str_append(&buffer, "CODING %s", "NEAREST NEIGHBOUR"); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - if(szip_options_mask & H5_SZIP_LSB_OPTION_MASK) - h5tools_str_append(&buffer, "BYTE_ORDER %s", "LSB"); - else if(szip_options_mask & H5_SZIP_MSB_OPTION_MASK) - h5tools_str_append(&buffer, "BYTE_ORDER %s", "MSB"); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + h5tools_str_reset(&buffer); + if(szip_options_mask & H5_SZIP_CHIP_OPTION_MASK) + h5tools_str_append(&buffer, "MODE %s", "HARDWARE"); + else if(szip_options_mask & H5_SZIP_ALLOW_K13_OPTION_MASK) + h5tools_str_append(&buffer, "MODE %s", "K13"); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - if(szip_options_mask & H5_SZIP_RAW_OPTION_MASK) { - ctx->need_prefix = TRUE; - h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); - - h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "HEADER %s", "RAW"); - h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - } + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); + + h5tools_str_reset(&buffer); + if(szip_options_mask & H5_SZIP_EC_OPTION_MASK) + h5tools_str_append(&buffer, "CODING %s", "ENTROPY"); + else if(szip_options_mask & H5_SZIP_NN_OPTION_MASK) + h5tools_str_append(&buffer, "CODING %s", "NEAREST NEIGHBOUR"); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); - ctx->indent_level--; + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); + h5tools_str_reset(&buffer); + if(szip_options_mask & H5_SZIP_LSB_OPTION_MASK) + h5tools_str_append(&buffer, "BYTE_ORDER %s", "LSB"); + else if(szip_options_mask & H5_SZIP_MSB_OPTION_MASK) + h5tools_str_append(&buffer, "BYTE_ORDER %s", "MSB"); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); + + if(szip_options_mask & H5_SZIP_RAW_OPTION_MASK) { ctx->need_prefix = TRUE; h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); h5tools_str_reset(&buffer); - h5tools_str_append(&buffer, "%s",END); + h5tools_str_append(&buffer, "HEADER %s", "RAW"); h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); } + + ctx->indent_level--; + + ctx->need_prefix = TRUE; + h5tools_simple_prefix(stream, info, ctx, curr_pos, 0); + + h5tools_str_reset(&buffer); + h5tools_str_append(&buffer, "%s", END); + h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); break; case H5Z_FILTER_NBIT: h5tools_str_append(&buffer, "%s", NBIT); @@ -3260,7 +3208,7 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0); break; default: - /* filter do not have to be avaiable for showing registered filter info. + /* filters do not have to be available for showing registered filter info. see HDFFV-8346 for details. --xcao@hdfgroup.org if(H5Zfilter_avail(filtn)) h5tools_str_append(&buffer, "%s %s", "USER_REGISTERED_FILTER", BEGIN); diff --git a/tools/lib/h5tools_filters.c b/tools/lib/h5tools_filters.c index 79cf253..ccdba26 100644 --- a/tools/lib/h5tools_filters.c +++ b/tools/lib/h5tools_filters.c @@ -107,44 +107,24 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr *------------------------------------------------------------------------- */ case H5Z_FILTER_SHUFFLE: -#ifndef H5_HAVE_FILTER_SHUFFLE - if (name) - print_warning(name,"shuffle"); - return 0; -#endif break; /*------------------------------------------------------------------------- * H5Z_FILTER_FLETCHER32 3 , fletcher32 checksum of EDC *------------------------------------------------------------------------- */ case H5Z_FILTER_FLETCHER32: -#ifndef H5_HAVE_FILTER_FLETCHER32 - if (name) - print_warning(name,"fletcher32"); - return 0; -#endif break; /*------------------------------------------------------------------------- * H5Z_FILTER_NBIT *------------------------------------------------------------------------- */ case H5Z_FILTER_NBIT: -#ifndef H5_HAVE_FILTER_NBIT - if (name) - print_warning(name,"nbit"); - return 0; -#endif break; /*------------------------------------------------------------------------- * H5Z_FILTER_SCALEOFFSET *------------------------------------------------------------------------- */ case H5Z_FILTER_SCALEOFFSET: -#ifndef H5_HAVE_FILTER_SCALEOFFSET - if (name) - print_warning(name,"scaleoffset"); - return 0; -#endif break; }/*switch*/ }/*for*/ @@ -211,24 +191,12 @@ int h5tools_can_encode(H5Z_filter_t filtn) { #endif break; case H5Z_FILTER_SHUFFLE: -#ifndef H5_HAVE_FILTER_SHUFFLE - return 0; -#endif break; case H5Z_FILTER_FLETCHER32: -#ifndef H5_HAVE_FILTER_FLETCHER32 - return 0; -#endif break; case H5Z_FILTER_NBIT: -#ifndef H5_HAVE_FILTER_NBIT - return 0; -#endif break; case H5Z_FILTER_SCALEOFFSET: -#ifndef H5_HAVE_FILTER_SCALEOFFSET - return 0; -#endif break; }/*switch*/ diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c index 3160cfa..2603984 100644 --- a/tools/lib/h5tools_str.c +++ b/tools/lib/h5tools_str.c @@ -155,11 +155,7 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...) * to lack of buffer size, so try one more time after realloc more * buffer size before return NULL. */ - if (nchars < 0 -#ifndef H5_VSNPRINTF_WORKS - && (HDstrlen(str->s) < str->nalloc) -#endif - ) { + if (nchars < 0) { /* failure, such as bad format */ return NULL; } @@ -740,7 +736,7 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai float tempfloat; HDmemcpy(&tempfloat, vp, sizeof(float)); - h5tools_str_append(str, OPT(info->fmt_float, "%g"), tempfloat); + h5tools_str_append(str, OPT(info->fmt_float, "%g"), (double)tempfloat); } else if (sizeof(double) == nsize) { /* if (H5Tequal(type, H5T_NATIVE_DOUBLE)) */ diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c index d7c5adb..fc8cf1d 100644 --- a/tools/lib/h5tools_utils.c +++ b/tools/lib/h5tools_utils.c @@ -89,28 +89,11 @@ void parallel_print(const char* format, ...) HDvprintf(format, ap); else { if(overflow_file == NULL) /*no overflow has occurred yet */ { -#if 0 - printf("calling HDvsnprintf: OUTBUFF_SIZE=%ld, outBuffOffset=%ld, ", (long)OUTBUFF_SIZE, (long)outBuffOffset); -#endif bytes_written = HDvsnprintf(outBuff+outBuffOffset, OUTBUFF_SIZE-outBuffOffset, format, ap); -#if 0 - printf("bytes_written=%ld\n", (long)bytes_written); -#endif HDva_end(ap); HDva_start(ap, format); -#if 0 - printf("Result: bytes_written=%ld, OUTBUFF_SIZE-outBuffOffset=%ld\n", (long)bytes_written, (long)OUTBUFF_SIZE-outBuffOffset); -#endif - - if ((bytes_written < 0) || -#ifdef H5_VSNPRINTF_WORKS - (bytes_written >= (OUTBUFF_SIZE-outBuffOffset)) -#else - ((bytes_written+1) == (OUTBUFF_SIZE-outBuffOffset)) -#endif - ) - { + if((bytes_written < 0) || (bytes_written >= (OUTBUFF_SIZE - outBuffOffset))) { /* Terminate the outbuff at the end of the previous output */ outBuff[outBuffOffset] = '\0'; diff --git a/tools/lib/h5tools_utils.h b/tools/lib/h5tools_utils.h index 3285278..fd588b9 100644 --- a/tools/lib/h5tools_utils.h +++ b/tools/lib/h5tools_utils.h @@ -124,9 +124,9 @@ H5TOOLS_DLLVAR int h5tools_nCols; /*max number of columns for /* Definitions of useful routines */ H5TOOLS_DLL void indentation(int); H5TOOLS_DLL void print_version(const char *progname); -H5TOOLS_DLL void parallel_print(const char* format, ... ); -H5TOOLS_DLL void error_msg(const char *fmt, ...); -H5TOOLS_DLL void warn_msg(const char *fmt, ...); +H5TOOLS_DLL void parallel_print(const char* format, ... )__attribute__((format (printf, 1, 2))); +H5TOOLS_DLL void error_msg(const char *fmt, ...)__attribute__((format (printf, 1, 2))); +H5TOOLS_DLL void warn_msg(const char *fmt, ...)__attribute__((format (printf, 1, 2))); H5TOOLS_DLL void help_ref_msg(FILE *output); H5TOOLS_DLL void free_table(table_t *table); #ifdef H5DUMP_DEBUG diff --git a/tools/lib/h5trav.c b/tools/lib/h5trav.c index d0a4a76..90e6d3d 100644 --- a/tools/lib/h5trav.c +++ b/tools/lib/h5trav.c @@ -50,6 +50,10 @@ typedef struct { hid_t fid; /* File ID being traversed */ } trav_print_udata_t; +typedef struct trav_path_op_data_t { + const char *path; +} trav_path_op_data_t; + /* format for hsize_t */ #ifdef H5TRAV_PRINT_SPACE #define HSIZE_T_FORMAT "%" H5_PRINTF_LL_WIDTH "u" @@ -899,11 +903,11 @@ trav_attr(hid_t #ifndef H5TRAV_PRINT_SPACE UNUSED #endif /* H5TRAV_PRINT_SPACE */ -obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *op_data) +obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *_op_data) { - char *buf; + trav_path_op_data_t *op_data = (trav_path_op_data_t *)_op_data; + const char *buf = op_data->path; - buf = (char*)op_data; if((strlen(buf)==1) && (*buf=='/')) printf(" %-10s %s%s", "attribute", buf, attr_name); else @@ -1009,10 +1013,14 @@ trav_print_visit_obj(const char *path, const H5O_info_t *oinfo, /* Check if we've already seen this object */ if(NULL == already_visited) { + trav_path_op_data_t op_data; + + op_data.path = path; /* Finish printing line about object */ printf("\n"); if(trav_verbosity > 0) - H5Aiterate_by_name(print_udata->fid, path, trav_index_by, trav_index_order, NULL, trav_attr, (void *)path, H5P_DEFAULT); + H5Aiterate_by_name(print_udata->fid, path, trav_index_by, trav_index_order, + NULL, trav_attr, &op_data, H5P_DEFAULT); } else /* Print the link's original name */ diff --git a/tools/lib/io_timer.c b/tools/lib/io_timer.c index 78e7fe9..b8d44de 100644 --- a/tools/lib/io_timer.c +++ b/tools/lib/io_timer.c @@ -40,7 +40,7 @@ * The number to divide the tv_usec field with to get a nice decimal to add to * the number of seconds. */ -#define MICROSECOND 1000000.0 +#define MICROSECOND 1000000.0F /* global variables */ io_time_t *timer_g; /* timer: global for stub functions */ diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt index 8af05b4..e0f94d0 100644 --- a/tools/misc/CMakeLists.txt +++ b/tools/misc/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_TOOLS_MISC) #----------------------------------------------------------------------------- @@ -12,19 +12,19 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) #-- Misc Executables add_executable (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c) TARGET_NAMING (h5debug ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5debug " " " ") +TARGET_C_PROPERTIES (h5debug ${LIB_TYPE} " " " ") target_link_libraries (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5debug PROPERTIES FOLDER tools) add_executable (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c) TARGET_NAMING (h5repart ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5repart " " " ") +TARGET_C_PROPERTIES (h5repart ${LIB_TYPE} " " " ") target_link_libraries (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5repart PROPERTIES FOLDER tools) add_executable (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c) TARGET_NAMING (h5mkgrp ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5mkgrp " " " ") +TARGET_C_PROPERTIES (h5mkgrp ${LIB_TYPE} " " " ") target_link_libraries (h5mkgrp ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5mkgrp PROPERTIES FOLDER tools) @@ -47,8 +47,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5repart_gentest ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart_gentest.c) - TARGET_NAMING (h5repart_gentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5repart_gentest " " " ") + TARGET_NAMING (h5repart_gentest STATIC) + TARGET_C_PROPERTIES (h5repart_gentest STATIC " " " ") target_link_libraries (h5repart_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5repart_gentest PROPERTIES FOLDER generator/tools) #add_test (NAME h5repart_gentest COMMAND $<TARGET_FILE:h5repart_gentest>) @@ -56,7 +56,7 @@ if (BUILD_TESTING) add_executable (h5repart_test ${HDF5_TOOLS_MISC_SOURCE_DIR}/repart_test.c) TARGET_NAMING (h5repart_test ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5repart_test " " " ") + TARGET_C_PROPERTIES (h5repart_test ${LIB_TYPE} " " " ") target_link_libraries (h5repart_test ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5repart_test PROPERTIES FOLDER tools) diff --git a/tools/misc/Makefile.in b/tools/misc/Makefile.in index 99da78f..1b8e0eb 100644 --- a/tools/misc/Makefile.in +++ b/tools/misc/Makefile.in @@ -107,7 +107,8 @@ bin_PROGRAMS = h5debug$(EXEEXT) h5repart$(EXEEXT) h5mkgrp$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/misc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -440,7 +441,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -472,7 +472,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -491,17 +490,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -564,7 +560,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -579,10 +574,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -696,12 +687,12 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. +# *.clog and *.clog2 are from the MPE option. # Temporary files. *.h5 are generated by h5repart_gentest. They should # copied to the testfiles/ directory if update is required. fst_family*.h5 # and scd_family*.h5 were created by setting the HDF5_NOCLEANUP variable. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 \ +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 \ ../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5 #test script and program diff --git a/tools/misc/h5cc.in b/tools/misc/h5cc.in index da1a26d..cabd83f 100644 --- a/tools/misc/h5cc.in +++ b/tools/misc/h5cc.in @@ -347,7 +347,7 @@ if test "x$do_link" = "xyes"; then hpux*) flag="-Wl,+b -Wl," ;; freebsd*|solaris*) flag="-R" ;; rs6000*|aix*) flag="-L" ;; - irix*|sgi) flag="-rpath " ;; + sgi) flag="-rpath " ;; *) flag="" ;; esac diff --git a/tools/perform/CMakeLists.txt b/tools/perform/CMakeLists.txt index 0713661..17b40fa 100644 --- a/tools/perform/CMakeLists.txt +++ b/tools/perform/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.1.0) PROJECT (HDF5_PERFORM ) #----------------------------------------------------------------------------- @@ -22,7 +22,7 @@ set (h5perf_serial_SRCS ) add_executable (h5perf_serial ${h5perf_serial_SRCS}) TARGET_NAMING (h5perf_serial ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5perf_serial " " " ") +TARGET_C_PROPERTIES (h5perf_serial ${LIB_TYPE} " " " ") target_link_libraries (h5perf_serial ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5perf_serial PROPERTIES FOLDER perform) @@ -33,13 +33,13 @@ if (HDF5_BUILD_PERFORM_STANDALONE) ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c ) add_executable (h5perf_serial_alone ${h5perf_serial_alone_SRCS}) - set_property (TARGET h5perf_serial_alone - APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE - ) TARGET_NAMING (h5perf_serial_alone ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5perf_serial_alone " " " ") + TARGET_C_PROPERTIES (h5perf_serial_alone ${LIB_TYPE} " " " ") target_link_libraries (h5perf_serial_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5perf_serial_alone PROPERTIES FOLDER perform) + set_property (TARGET h5perf_serial_alone + APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE + ) endif (HDF5_BUILD_PERFORM_STANDALONE) #-- Adding test for chunk @@ -48,7 +48,7 @@ set (chunk_SRCS ) ADD_EXECUTABLE(chunk ${chunk_SRCS}) TARGET_NAMING (chunk ${LIB_TYPE}) -TARGET_C_PROPERTIES (chunk " " " ") +TARGET_C_PROPERTIES (chunk ${LIB_TYPE} " " " ") TARGET_LINK_LIBRARIES(chunk ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (chunk PROPERTIES FOLDER perform) @@ -58,7 +58,7 @@ set (iopipe_SRCS ) add_executable (iopipe ${iopipe_SRCS}) TARGET_NAMING (iopipe ${LIB_TYPE}) -TARGET_C_PROPERTIES (iopipe " " " ") +TARGET_C_PROPERTIES (iopipe ${LIB_TYPE} " " " ") target_link_libraries (iopipe ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (iopipe PROPERTIES FOLDER perform) @@ -68,7 +68,7 @@ set (overhead_SRCS ) add_executable (overhead ${overhead_SRCS}) TARGET_NAMING (overhead ${LIB_TYPE}) -TARGET_C_PROPERTIES (overhead " " " ") +TARGET_C_PROPERTIES (overhead ${LIB_TYPE} " " " ") target_link_libraries (overhead ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (overhead PROPERTIES FOLDER perform) @@ -79,7 +79,7 @@ if (BUILD_TESTING) ) add_executable (perf_meta ${perf_meta_SRCS}) TARGET_NAMING (perf_meta ${LIB_TYPE}) - TARGET_C_PROPERTIES (perf_meta " " " ") + TARGET_C_PROPERTIES (perf_meta ${LIB_TYPE} " " " ") target_link_libraries (perf_meta ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (perf_meta PROPERTIES FOLDER perform) endif (BUILD_TESTING) @@ -90,7 +90,7 @@ set (zip_perf_SRCS ) add_executable (zip_perf ${zip_perf_SRCS}) TARGET_NAMING (zip_perf ${LIB_TYPE}) -TARGET_C_PROPERTIES (zip_perf " " " ") +TARGET_C_PROPERTIES (zip_perf ${LIB_TYPE} " " " ") target_link_libraries (zip_perf ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (zip_perf PROPERTIES FOLDER perform) @@ -102,7 +102,7 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING) ) add_executable (h5perf ${h5perf_SRCS}) TARGET_NAMING (h5perf ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5perf " " " ") + TARGET_C_PROPERTIES (h5perf ${LIB_TYPE} " " " ") target_link_libraries (h5perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5perf PROPERTIES FOLDER perform) @@ -113,13 +113,13 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING) ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c ) add_executable (h5perf_alone ${h5perf_alone_SRCS}) - set_property (TARGET h5perf_alone - APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE - ) TARGET_NAMING (h5perf_alone ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5perf_alone " " " ") + TARGET_C_PROPERTIES (h5perf_alone ${LIB_TYPE} " " " ") target_link_libraries (h5perf_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5perf_alone PROPERTIES FOLDER perform) + set_property (TARGET h5perf_alone + APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE + ) endif (HDF5_BUILD_PERFORM_STANDALONE) endif (H5_HAVE_PARALLEL AND BUILD_TESTING) diff --git a/tools/perform/Makefile.in b/tools/perform/Makefile.in index 50930e0..325bc4d 100644 --- a/tools/perform/Makefile.in +++ b/tools/perform/Makefile.in @@ -111,7 +111,8 @@ check_PROGRAMS = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ TESTS = $(am__EXEEXT_3) subdir = tools/perform ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -444,7 +445,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -476,7 +476,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -495,17 +494,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -568,7 +564,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -583,10 +578,6 @@ TR = @TR@ TRACE_API = @TRACE_API@ UNAME_INFO = @UNAME_INFO@ USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@ -USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@ -USE_FILTER_NBIT = @USE_FILTER_NBIT@ -USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@ -USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@ USE_FILTER_SZIP = @USE_FILTER_SZIP@ USINGMEMCHECKER = @USINGMEMCHECKER@ VERSION = @VERSION@ @@ -700,8 +691,8 @@ TRACE = perl $(top_srcdir)/bin/trace # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. -# *.clog are from the MPE option. -CHECK_CLEANFILES = *.chkexe *.chklog *.clog +# *.clog and *.clog2 are from the MPE option. +CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # Add h5perf and h5perf_serial specific linker flags here h5perf_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) diff --git a/tools/perform/chunk.c b/tools/perform/chunk.c index a3c11c1..6825a4c 100644 --- a/tools/perform/chunk.c +++ b/tools/perform/chunk.c @@ -57,20 +57,20 @@ #define RM_CACHE_STRT 25 #define RM_CACHE_END 25 #define RM_CACHE_DELT 5 -#define RM_START 0.50 -#define RM_END 5.00 -#define RM_DELTA 0.50 -#define RM_W0 0.0 +#define RM_START 0.50F +#define RM_END 5.00F +#define RM_DELTA 0.50F +#define RM_W0 0.0F #define RM_NRDCC 521 /* Diagonal test */ #define DIAG_CACHE_STRT 25 #define DIAG_CACHE_END 25 #define DIAG_CACHE_DELT 5 -#define DIAG_START 0.50 -#define DIAG_END 5.00 -#define DIAG_DELTA 0.50 -/* #define DIAG_W0 0.65 */ +#define DIAG_START 0.50F +#define DIAG_END 5.00F +#define DIAG_DELTA 0.50F +/* #define DIAG_W0 0.65F */ /* #define DIAG_NRDCC 521 */ static size_t nio_g; diff --git a/tools/perform/iopipe.c b/tools/perform/iopipe.c index 85063fa..a04ef82 100644 --- a/tools/perform/iopipe.c +++ b/tools/perform/iopipe.c @@ -81,25 +81,25 @@ print_stats (const char *prefix, double u_time, s_time; u_time = ((double)(r_stop->ru_utime.tv_sec)+ - (double)(r_stop->ru_utime.tv_usec)/1000000.0) - + (double)(r_stop->ru_utime.tv_usec)/1000000.0F) - ((double)(r_start->ru_utime.tv_sec)+ - (double)(r_start->ru_utime.tv_usec)/1000000.0); + (double)(r_start->ru_utime.tv_usec)/1000000.0F); s_time = ((double)(r_stop->ru_stime.tv_sec)+ - (double)(r_stop->ru_stime.tv_usec)/1000000.0) - + (double)(r_stop->ru_stime.tv_usec)/1000000.0F) - ((double)(r_start->ru_stime.tv_sec)+ - (double)(r_start->ru_stime.tv_usec)/1000000.0); + (double)(r_start->ru_stime.tv_usec)/1000000.0F); #endif #ifndef H5_HAVE_SYS_TIMEB e_time = ((double)(t_stop->tv_sec)+ - (double)(t_stop->tv_usec)/1000000.0) - + (double)(t_stop->tv_usec)/1000000.0F) - ((double)(t_start->tv_sec)+ - (double)(t_start->tv_usec)/1000000.0); + (double)(t_start->tv_usec)/1000000.0F); #else e_time = ((double)(t_stop->tv_sec)+ - (double)(t_stop->tv_usec)/1000.0) - + (double)(t_stop->tv_usec)/1000.0F) - ((double)(t_start->tv_sec)+ - (double)(t_start->tv_usec)/1000.0); + (double)(t_start->tv_usec)/1000.0F); #endif bw = (double)nbytes / e_time; @@ -191,7 +191,7 @@ main (void) * 1998-11-06 ptl */ printf ("I/O request size is %1.1fMB\n", - (double)(hssize_t)(size[0]*size[1])/1024.0*1024); + (double)(hssize_t)(size[0]*size[1])/1024.0F*1024); /* Open the files */ file = H5Fcreate (HDF5_FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); diff --git a/tools/perform/overhead.c b/tools/perform/overhead.c index 9341e64..046668f 100644 --- a/tools/perform/overhead.c +++ b/tools/perform/overhead.c @@ -209,7 +209,7 @@ test(fill_t fill_style, const double splits[], if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0) goto error; if(!use_rdcc) { if(H5Pget_cache(fapl, &mdc_nelmts, NULL, NULL, NULL) < 0) goto error; - if(H5Pset_cache(fapl, mdc_nelmts, 0, 0, 0.0) < 0) goto error; + if(H5Pset_cache(fapl, mdc_nelmts, 0, 0, 0.0F) < 0) goto error; } if((file = H5Fcreate(FILE_NAME_1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) goto error; if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error; diff --git a/tools/perform/perf.c b/tools/perform/perf.c index 7d329f0..1bd33b6 100644 --- a/tools/perform/perf.c +++ b/tools/perform/perf.c @@ -390,7 +390,7 @@ die_jar_jar_die: free(tmp); if (opt_correct) free(tmp2); - + MPI_Finalize(); return(0); diff --git a/tools/perform/sio_perf.c b/tools/perform/sio_perf.c index 1828d6f..7d75a2d 100644 --- a/tools/perform/sio_perf.c +++ b/tools/perform/sio_perf.c @@ -68,7 +68,7 @@ #define SIO_HDF5 0x4 /* report 0.0 in case t is zero too */ -#define MB_PER_SEC(bytes,t) (((t)==0.0) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) +#define MB_PER_SEC(bytes,t) (((t)==0.0F) ? 0.0F : ((((double)bytes) / ONE_MB) / (t))) #ifndef TRUE #define TRUE 1 @@ -451,14 +451,14 @@ run_test(iotype iot, parameters parms, struct options *opts) minmax *read_mm_table=NULL; minmax *read_gross_mm_table=NULL; minmax *read_raw_mm_table=NULL; - minmax write_sys_mm = {0.0, 0.0, 0.0, 0}; - minmax write_mm = {0.0, 0.0, 0.0, 0}; - minmax write_gross_mm = {0.0, 0.0, 0.0, 0}; - minmax write_raw_mm = {0.0, 0.0, 0.0, 0}; - minmax read_sys_mm = {0.0, 0.0, 0.0, 0}; - minmax read_mm = {0.0, 0.0, 0.0, 0}; - minmax read_gross_mm = {0.0, 0.0, 0.0, 0}; - minmax read_raw_mm = {0.0, 0.0, 0.0, 0}; + minmax write_sys_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax write_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax write_gross_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax write_raw_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax read_sys_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax read_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax read_gross_mm = {0.0F, 0.0F, 0.0F, 0}; + minmax read_raw_mm = {0.0F, 0.0F, 0.0F, 0}; raw_size = (off_t)parms.num_bytes; parms.io_type = iot; @@ -717,7 +717,7 @@ accumulate_minmax_stuff(minmax *mm, int count) int i; minmax total_mm; - total_mm.sum = 0.0; + total_mm.sum = 0.0F; total_mm.max = -DBL_MAX; total_mm.min = DBL_MAX; total_mm.num = count; diff --git a/tools/perform/sio_standalone.h b/tools/perform/sio_standalone.h index b2f8220..4eb1ded 100644 --- a/tools/perform/sio_standalone.h +++ b/tools/perform/sio_standalone.h @@ -87,7 +87,6 @@ #define HDatof(S) atof(S) #define HDatoi(S) atoi(S) #define HDatol(S) atol(S) -#define HDBSDgettimeofday(S,P) BSDgettimeofday(S,P) #define HDbsearch(K,B,N,Z,F) bsearch(K,B,N,Z,F) #define HDcalloc(N,Z) calloc(N,Z) #define HDceil(X) ceil(X) diff --git a/tools/perform/zip_perf.c b/tools/perform/zip_perf.c index edd5b0f..f73ba40 100644 --- a/tools/perform/zip_perf.c +++ b/tools/perform/zip_perf.c @@ -43,10 +43,10 @@ #define ONE_MB (ONE_KB * ONE_KB) #define ONE_GB (ONE_MB * ONE_KB) -#define MICROSECOND 1000000.0 +#define MICROSECOND 1000000.0F /* report 0.0 in case t is zero too */ -#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) +#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001F) ? 0.0F : ((((double)bytes) / ONE_MB) / (t))) #ifndef TRUE #define TRUE 1 @@ -182,7 +182,7 @@ write_file(Bytef *source, uLongf sourceLen) /* destination buffer needs to be at least 0.1% larger than sourceLen * plus 12 bytes */ - destLen = (uLongf)((double)sourceLen + ((double)sourceLen * 0.1)) + 12; + destLen = (uLongf)((double)sourceLen + ((double)sourceLen * 0.1F)) + 12; dest = (Bytef *)HDmalloc(destLen); if (!dest) @@ -464,7 +464,7 @@ do_write_test(unsigned long file_size, unsigned long min_buf_size, error("out of memory"); } - compression_time = 0.0; + compression_time = 0.0F; if (random_test) fill_with_random_data(src, src_len); diff --git a/tools/testfiles/README b/tools/testfiles/README new file mode 100644 index 0000000..65d807f --- /dev/null +++ b/tools/testfiles/README @@ -0,0 +1,4 @@ +tcompound_enum.h5 + enuberated 8bit type nested in compount type. Original file provided + by a user (HDFFV-8667) as a test file. Used h5copy to extract only the + Compound type dataset. diff --git a/tools/testfiles/tcompound_enum.ddl b/tools/testfiles/tcompound_enum.ddl new file mode 100644 index 0000000..2088c33 --- /dev/null +++ b/tools/testfiles/tcompound_enum.ddl @@ -0,0 +1,25749 @@ +HDF5 "tcompound_enum.h5" { +GROUP "/" { + DATATYPE "#117838" H5T_COMPOUND { + H5T_STD_U32LE "evaluation_number"; + H5T_ARRAY { [12] H5T_IEEE_F64LE } "Xest"; + H5T_IEEE_F64LE "tcpa_sec"; + H5T_IEEE_F64LE "dcpa_m"; + H5T_IEEE_F64LE "range_m"; + H5T_IEEE_F64LE "range_var_m2"; + H5T_IEEE_F64LE "range_dot_mps"; + H5T_IEEE_F64LE "range_dot_var_m2s2"; + H5T_IEEE_F64LE "dt"; + H5T_ARRAY { [3] H5T_IEEE_F64LE } "inertial_ownship_position"; + H5T_ARRAY { [3] H5T_IEEE_F64LE } "inertial_ownship_velocity"; + H5T_ARRAY { [2] H5T_IEEE_F64LE } "bearingAnglesBodyCue"; + H5T_ARRAY { [4] H5T_IEEE_F64LE } "bearingAnglesInertial"; + H5T_ARRAY { [4] H5T_STD_I32LE } "roiEndpoints"; + H5T_ARRAY { [4] H5T_STD_I32LE } "endpoints"; + H5T_ARRAY { [4] H5T_IEEE_F64LE } "ideal_endpoints"; + H5T_ARRAY { [2] H5T_IEEE_F64LE } "delta_angle_tolerance"; + H5T_ARRAY { [2] H5T_STD_I32LE } "cuePixel"; + H5T_ENUM { + 8-bit unsigned integer; + "ok" 0; + "failed_not_found" 1; + "failed_distance_check" 2; + "failed_border_proximity_check" 3; + "failed_large_blob_suppression" 4; + "invalid" 5; + } "silhouette_result_info"; + H5T_STD_U16LE "vision_threshold"; + H5T_STD_U32LE "silhouetteArea"; + 8-bit unsigned integer "sensorId"; + H5T_STD_U16LE "integrity_votes"; + 8-bit unsigned integer "new_track"; + 8-bit unsigned integer "camera_available"; + 8-bit unsigned integer "roi_in_camera"; + 8-bit unsigned integer "roi_overlaps_osd"; + 8-bit unsigned integer "use_camera"; + 8-bit unsigned integer "endpoints_found"; + 8-bit unsigned integer "integrity_pass"; + 8-bit unsigned integer "good_measurement"; + 8-bit unsigned integer "data_association_pass"; + 8-bit unsigned integer "filter_valid"; + 8-bit unsigned integer "filter_flag_initialize"; + 8-bit unsigned integer "filter_flag_update"; + 8-bit unsigned integer "suppress"; + 8-bit unsigned integer "has_silhouette"; + 8-bit unsigned integer "classification"; + } + GROUP "tracks" { + GROUP "1" { + ATTRIBUTE "key" { + DATATYPE H5T_STD_U32LE + DATASPACE SCALAR + DATA { + (0): 1 + } + } + DATASET "trace" { + DATATYPE "/#117838" + DATASPACE SIMPLE { ( 642 ) / ( H5S_UNLIMITED ) } + DATA { + (0): { + 233, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 68249.8, + [ 0, 0, -0 ], + [ 7.6333, 74.5514, -1.93846 ], + [ 0.0163928, 0.00646356 ], + [ inf, inf, inf, inf ], + [ 1001, 779, 1120, 898 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 839 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (1): { + 234, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 0.380573, 0.292033, -0.0966965 ], + [ 7.64372, 74.5441, -1.93269 ], + [ 0.0164014, 0.00645606 ], + [ inf, inf, inf, inf ], + [ 1001, 779, 1120, 898 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 839 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (2): { + 235, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 0.74104, 0.568638, 0.0164649 ], + [ 7.65361, 74.5367, -1.9282 ], + [ 0.0164048, 0.00644608 ], + [ inf, inf, inf, inf ], + [ 1000, 780, 1119, 899 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1060, 840 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (3): { + 236, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 1.07982, 0.828598, 0.351905 ], + [ 7.66292, 74.5292, -1.92505 ], + [ 0.0164132, 0.00644095 ], + [ inf, inf, inf, inf ], + [ 999, 780, 1118, 899 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 840 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (4): { + 237, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 1.51313, 1.1611, 0.561197 ], + [ 7.67612, 74.5198, -1.91584 ], + [ 0.0164162, 0.00643223 ], + [ inf, inf, inf, inf ], + [ 999, 781, 1118, 900 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 841 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (5): { + 238, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 2.18117, 1.67372, 0.457232 ], + [ 7.69896, 74.506, -1.8916 ], + [ 0.0164243, 0.00642145 ], + [ inf, inf, inf, inf ], + [ 998, 781, 1117, 900 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 841 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (6): { + 239, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 2.71105, 2.08032, 0.358723 ], + [ 7.71449, 74.4947, -1.87617 ], + [ 0.0164275, 0.00641002 ], + [ inf, inf, inf, inf ], + [ 997, 782, 1116, 901 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1057, 842 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (7): { + 240, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 3.08828, 2.36979, 0.266261 ], + [ 7.72195, 74.4862, -1.87048 ], + [ 0.0164356, 0.00639804 ], + [ inf, inf, inf, inf ], + [ 996, 782, 1115, 901 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 842 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (8): { + 241, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 3.43623, 2.63679, 0.182006 ], + [ 7.72946, 74.479, -1.86549 ], + [ 0.0164393, 0.00639229 ], + [ inf, inf, inf, inf ], + [ 995, 783, 1114, 902 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 843 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (9): { + 242, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 3.74884, 2.87667, 0.107664 ], + [ 7.73704, 74.4733, -1.86134 ], + [ 0.0164477, 0.0063834 ], + [ inf, inf, inf, inf ], + [ 994, 783, 1113, 902 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 843 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (10): { + 243, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049855, + [ 4.06151, 3.1166, 0.0333097 ], + [ 7.74462, 74.4676, -1.85719 ], + [ 0.0164518, 0.00637682 ], + [ inf, inf, inf, inf ], + [ 994, 784, 1113, 903 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 844 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (11): { + 244, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 4.56167, 3.5004, -0.0876864 ], + [ 7.75663, 74.4585, -1.84763 ], + [ 0.0164592, 0.00635073 ], + [ inf, inf, inf, inf ], + [ 992, 784, 1111, 903 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 844 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (12): { + 245, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 5.00459, 3.84028, -0.194631 ], + [ 7.76723, 74.4509, -1.83947 ], + [ 0.0164699, 0.00633782 ], + [ inf, inf, inf, inf ], + [ 990, 785, 1109, 904 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 845 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (13): { + 246, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049876, + [ 5.3664, 4.11791, -0.281619 ], + [ 7.77584, 74.4451, -1.83334 ], + [ 0.0164747, 0.00632545 ], + [ inf, inf, inf, inf ], + [ 989, 786, 1108, 905 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1049, 846 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (14): { + 247, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049819, + [ 5.74824, 4.41091, -0.37157 ], + [ 7.78391, 74.4388, -1.82674 ], + [ 0.0164839, 0.0063135 ], + [ inf, inf, inf, inf ], + [ 988, 786, 1107, 905 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1048, 846 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (15): { + 248, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 6.16964, 4.73427, -0.467459 ], + [ 7.79096, 74.4317, -1.81925 ], + [ 0.0164947, 0.00630161 ], + [ inf, inf, inf, inf ], + [ 987, 787, 1106, 906 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1047, 847 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (16): { + 249, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049852, + [ 6.57308, 5.04385, -0.560864 ], + [ 7.79928, 74.4246, -1.8127 ], + [ 0.0165066, 0.00628951 ], + [ inf, inf, inf, inf ], + [ 986, 788, 1105, 907 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1046, 848 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (17): { + 250, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 6.95352, 5.33578, -0.651055 ], + [ 7.80919, 74.4174, -1.80733 ], + [ 0.0165117, 0.00627785 ], + [ inf, inf, inf, inf ], + [ 985, 789, 1104, 908 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1045, 849 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (18): { + 251, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049848, + [ 7.3382, 5.63096, -0.740978 ], + [ 7.81721, 74.4101, -1.8005 ], + [ 0.016521, 0.00626622 ], + [ inf, inf, inf, inf ], + [ 984, 790, 1103, 909 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1044, 850 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (19): { + 252, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 7.72817, 5.93021, -0.830505 ], + [ 7.82278, 74.4029, -1.79176 ], + [ 0.0165321, 0.00625484 ], + [ inf, inf, inf, inf ], + [ 983, 790, 1102, 909 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1043, 850 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (20): { + 253, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 8.11804, 6.22937, -0.919652 ], + [ 7.82774, 74.3965, -1.78438 ], + [ 0.016544, 0.00624364 ], + [ inf, inf, inf, inf ], + [ 982, 791, 1101, 910 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1042, 851 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (21): { + 254, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 8.50796, 6.52858, -1.00834 ], + [ 7.8319, 74.3913, -1.7788 ], + [ 0.0165563, 0.00623212 ], + [ inf, inf, inf, inf ], + [ 981, 792, 1100, 911 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1041, 852 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (22): { + 255, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049875, + [ 8.88755, 6.81985, -0.985304 ], + [ 7.83646, 74.3865, -1.77352 ], + [ 0.0165684, 0.00622056 ], + [ inf, inf, inf, inf ], + [ 980, 794, 1099, 913 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1040, 854 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (23): { + 256, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04975, + [ 9.25184, 7.0994, -0.810944 ], + [ 7.84157, 74.3822, -1.76869 ], + [ 0.0165808, 0.00620895 ], + [ inf, inf, inf, inf ], + [ 979, 795, 1098, 914 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1039, 855 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (24): { + 257, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 9.66442, 7.41598, -0.698033 ], + [ 7.84777, 74.3771, -1.7602 ], + [ 0.0165932, 0.00619758 ], + [ inf, inf, inf, inf ], + [ 979, 796, 1098, 915 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1039, 856 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (25): { + 258, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049923, + [ 10.2385, 7.85649, -0.793665 ], + [ 7.85764, 74.3693, -1.73936 ], + [ 0.0166057, 0.00618616 ], + [ inf, inf, inf, inf ], + [ 978, 797, 1097, 916 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1038, 857 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (26): { + 259, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 10.7352, 8.23765, -0.88489 ], + [ 7.86354, 74.3628, -1.72409 ], + [ 0.0166176, 0.00616838 ], + [ inf, inf, inf, inf ], + [ 976, 798, 1095, 917 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1036, 858 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (27): { + 260, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 11.1223, 8.53471, -0.970009 ], + [ 7.86378, 74.3584, -1.71676 ], + [ 0.0166297, 0.00615353 ], + [ inf, inf, inf, inf ], + [ 975, 799, 1094, 918 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1035, 859 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (28): { + 261, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049884, + [ 11.4805, 8.80952, -1.04852 ], + [ 7.86469, 74.3548, -1.71013 ], + [ 0.0166416, 0.00614026 ], + [ inf, inf, inf, inf ], + [ 974, 800, 1093, 919 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1034, 860 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (29): { + 262, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049805, + [ 11.7923, 9.04884, -1.1165 ], + [ 7.86664, 74.3523, -1.70462 ], + [ 0.0166532, 0.00612836 ], + [ inf, inf, inf, inf ], + [ 973, 801, 1092, 920 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 861 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (30): { + 263, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049868, + [ 12.1046, 9.28846, -1.18456 ], + [ 7.86859, 74.3497, -1.69911 ], + [ 0.0166628, 0.00612747 ], + [ inf, inf, inf, inf ], + [ 973, 801, 1092, 920 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 861 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (31): { + 264, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049805, + [ 12.6157, 9.68061, -1.29288 ], + [ 7.86836, 74.3432, -1.69204 ], + [ 0.0166862, 0.00610271 ], + [ inf, inf, inf, inf ], + [ 970, 803, 1089, 922 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 863 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (32): { + 265, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04979, + [ 13.0905, 10.045, -1.39461 ], + [ 7.86705, 74.338, -1.68474 ], + [ 0.0167002, 0.00609124 ], + [ inf, inf, inf, inf ], + [ 969, 804, 1088, 923 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 864 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (33): { + 266, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049925, + [ 13.4712, 10.3371, -1.47843 ], + [ 7.8645, 74.3355, -1.67736 ], + [ 0.0167131, 0.00607948 ], + [ inf, inf, inf, inf ], + [ 968, 806, 1087, 925 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 866 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (34): { + 267, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 13.8586, 10.6344, -1.56181 ], + [ 7.86184, 74.3333, -1.6695 ], + [ 0.0167256, 0.00606786 ], + [ inf, inf, inf, inf ], + [ 968, 807, 1087, 926 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 867 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (35): { + 268, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 14.2579, 10.9408, -1.64477 ], + [ 7.85899, 74.3317, -1.66082 ], + [ 0.0167377, 0.00605624 ], + [ inf, inf, inf, inf ], + [ 967, 808, 1086, 927 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 868 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (36): { + 269, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 14.6535, 11.2443, -1.72741 ], + [ 7.85735, 74.3289, -1.65279 ], + [ 0.01675, 0.00604461 ], + [ inf, inf, inf, inf ], + [ 966, 809, 1085, 928 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1026, 869 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (37): { + 270, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04989, + [ 15.0434, 11.5436, -1.80962 ], + [ 7.8577, 74.3245, -1.64582 ], + [ 0.0167623, 0.00603332 ], + [ inf, inf, inf, inf ], + [ 965, 810, 1084, 929 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1025, 870 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (38): { + 271, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049738, + [ 15.4324, 11.842, -1.89131 ], + [ 7.85626, 74.3213, -1.63746 ], + [ 0.0167747, 0.0060286 ], + [ inf, inf, inf, inf ], + [ 964, 811, 1083, 930 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 871 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (39): { + 272, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049933, + [ 15.823, 12.1418, -1.97287 ], + [ 7.85179, 74.3202, -1.62667 ], + [ 0.0167868, 0.00602027 ], + [ inf, inf, inf, inf ], + [ 964, 812, 1083, 931 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 872 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (40): { + 273, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049808, + [ 16.2127, 12.4408, -2.05392 ], + [ 7.84864, 74.3188, -1.61872 ], + [ 0.016799, 0.00601687 ], + [ inf, inf, inf, inf ], + [ 963, 813, 1082, 932 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 873 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (41): { + 274, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 16.6028, 12.7401, -2.13454 ], + [ 7.84776, 74.3168, -1.61562 ], + [ 0.016818, 0.00600916 ], + [ inf, inf, inf, inf ], + [ 963, 814, 1082, 933 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 874 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (42): { + 275, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 16.9837, 13.0324, -2.19452 ], + [ 7.84629, 74.3144, -1.61114 ], + [ 0.0168338, 0.00600613 ], + [ inf, inf, inf, inf ], + [ 962, 815, 1081, 934 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 875 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (43): { + 276, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 17.349, 13.3127, -2.21818 ], + [ 7.84379, 74.3113, -1.60425 ], + [ 0.0168481, 0.00600501 ], + [ inf, inf, inf, inf ], + [ 962, 816, 1081, 935 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 876 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (44): { + 277, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 17.7234, 13.6, -2.25269 ], + [ 7.8406, 74.3085, -1.59788 ], + [ 0.0168612, 0.00599853 ], + [ inf, inf, inf, inf ], + [ 962, 818, 1081, 937 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 878 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (45): { + 278, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 18.1427, 13.9217, -2.34026 ], + [ 7.83405, 74.3074, -1.59407 ], + [ 0.0168742, 0.00599571 ], + [ inf, inf, inf, inf ], + [ 962, 819, 1081, 938 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 879 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (46): { + 279, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 18.5508, 14.2349, -2.42467 ], + [ 7.82846, 74.3057, -1.59013 ], + [ 0.016887, 0.00599455 ], + [ inf, inf, inf, inf ], + [ 962, 820, 1081, 939 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 880 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (47): { + 280, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049872, + [ 18.9384, 14.5324, -2.50321 ], + [ 7.82467, 74.3027, -1.58594 ], + [ 0.0168996, 0.0059942 ], + [ inf, inf, inf, inf ], + [ 962, 821, 1081, 940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 881 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (48): { + 281, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 19.301, 14.8106, -2.57656 ], + [ 7.82101, 74.3004, -1.5811 ], + [ 0.0169122, 0.00599409 ], + [ inf, inf, inf, inf ], + [ 962, 822, 1081, 941 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 882 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (49): { + 282, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 19.6134, 15.0503, -2.6395 ], + [ 7.81762, 74.2996, -1.5749 ], + [ 0.0169247, 0.00599429 ], + [ inf, inf, inf, inf ], + [ 962, 823, 1081, 942 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 883 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (50): { + 283, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 19.926, 15.2902, -2.70246 ], + [ 7.81422, 74.2987, -1.56871 ], + [ 0.0169351, 0.00599487 ], + [ inf, inf, inf, inf ], + [ 962, 823, 1081, 942 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 883 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (51): { + 284, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 20.4132, 15.664, -2.79984 ], + [ 7.80999, 74.2967, -1.55936 ], + [ 0.0169509, 0.00599393 ], + [ inf, inf, inf, inf ], + [ 962, 825, 1081, 944 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 885 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (52): { + 285, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049854, + [ 20.8922, 16.0316, -2.89538 ], + [ 7.80591, 74.295, -1.55208 ], + [ 0.0169625, 0.00599415 ], + [ inf, inf, inf, inf ], + [ 962, 826, 1081, 945 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 886 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (53): { + 286, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04977, + [ 21.2813, 16.3301, -2.9727 ], + [ 7.80248, 74.2948, -1.55023 ], + [ 0.0169746, 0.0059942 ], + [ inf, inf, inf, inf ], + [ 962, 826, 1081, 945 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 886 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (54): { + 287, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049907, + [ 21.6713, 16.6294, -3.05005 ], + [ 7.79895, 74.2936, -1.54726 ], + [ 0.0169867, 0.00599437 ], + [ inf, inf, inf, inf ], + [ 962, 827, 1081, 946 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 887 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (55): { + 288, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 22.0606, 16.9282, -3.1269 ], + [ 7.79524, 74.2907, -1.54197 ], + [ 0.0169993, 0.00599411 ], + [ inf, inf, inf, inf ], + [ 962, 828, 1081, 947 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 888 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (56): { + 289, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 22.4502, 17.2271, -3.20369 ], + [ 7.79113, 74.2884, -1.53783 ], + [ 0.0170118, 0.00599387 ], + [ inf, inf, inf, inf ], + [ 962, 829, 1081, 948 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 889 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (57): { + 290, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 22.84, 17.5262, -3.2803 ], + [ 7.78619, 74.2874, -1.53615 ], + [ 0.0170243, 0.00599335 ], + [ inf, inf, inf, inf ], + [ 962, 830, 1081, 949 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 890 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (58): { + 291, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 23.2299, 17.8254, -3.35685 ], + [ 7.7815, 74.2861, -1.53454 ], + [ 0.0170369, 0.00599288 ], + [ inf, inf, inf, inf ], + [ 962, 831, 1081, 950 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 891 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (59): { + 292, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 23.6199, 18.1247, -3.43326 ], + [ 7.77739, 74.2842, -1.53309 ], + [ 0.0170498, 0.00599901 ], + [ inf, inf, inf, inf ], + [ 962, 832, 1081, 951 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 892 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (60): { + 293, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04988, + [ 24.0101, 18.4241, -3.50959 ], + [ 7.7733, 74.2823, -1.52988 ], + [ 0.0170556, 0.00600188 ], + [ inf, inf, inf, inf ], + [ 962, 833, 1081, 952 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 893 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (61): { + 294, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049808, + [ 24.3994, 18.7228, -3.5855 ], + [ 7.7693, 74.2805, -1.52267 ], + [ 0.0170653, 0.00600963 ], + [ inf, inf, inf, inf ], + [ 963, 834, 1082, 953 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 894 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (62): { + 295, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049805, + [ 24.7763, 19.012, -3.64804 ], + [ 7.76548, 74.279, -1.51721 ], + [ 0.0170695, 0.00601336 ], + [ inf, inf, inf, inf ], + [ 964, 834, 1083, 953 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 894 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (63): { + 296, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049884, + [ 25.1249, 19.2795, -3.67914 ], + [ 7.76207, 74.2782, -1.51585 ], + [ 0.0170786, 0.00602156 ], + [ inf, inf, inf, inf ], + [ 964, 835, 1083, 954 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 895 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (64): { + 297, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049808, + [ 25.4794, 19.5515, -3.71567 ], + [ 7.75868, 74.277, -1.51392 ], + [ 0.0170822, 0.00602549 ], + [ inf, inf, inf, inf ], + [ 965, 835, 1084, 954 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1025, 895 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (65): { + 298, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 25.8888, 19.8657, -3.79841 ], + [ 7.75531, 74.273, -1.50706 ], + [ 0.0170908, 0.00603389 ], + [ inf, inf, inf, inf ], + [ 965, 835, 1084, 954 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1025, 895 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (66): { + 299, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049872, + [ 26.2947, 20.1771, -3.87881 ], + [ 7.75245, 74.2693, -1.50108 ], + [ 0.0170941, 0.006038 ], + [ inf, inf, inf, inf ], + [ 966, 836, 1085, 955 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1026, 896 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (67): { + 300, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 26.6914, 20.4815, -3.95332 ], + [ 7.75089, 74.2662, -1.49724 ], + [ 0.0171027, 0.00604616 ], + [ inf, inf, inf, inf ], + [ 966, 836, 1085, 955 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1026, 896 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (68): { + 301, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 27.0635, 20.7671, -4.02386 ], + [ 7.74904, 74.2636, -1.49385 ], + [ 0.0171061, 0.00604997 ], + [ inf, inf, inf, inf ], + [ 967, 837, 1086, 956 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 897 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (69): { + 302, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049865, + [ 27.3689, 21.0014, -4.0836 ], + [ 7.74638, 74.2625, -1.49164 ], + [ 0.0171078, 0.00605772 ], + [ inf, inf, inf, inf ], + [ 967, 837, 1086, 956 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 897 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (70): { + 303, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 27.6739, 21.2355, -4.1433 ], + [ 7.74373, 74.2613, -1.48944 ], + [ 0.0171161, 0.00605986 ], + [ inf, inf, inf, inf ], + [ 968, 837, 1087, 956 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 897 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (71): { + 304, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 28.146, 21.5977, -4.23351 ], + [ 7.73978, 74.2592, -1.48817 ], + [ 0.0171184, 0.00606963 ], + [ inf, inf, inf, inf ], + [ 968, 837, 1087, 956 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 897 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (72): { + 305, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049876, + [ 28.6297, 21.9689, -4.32598 ], + [ 7.73612, 74.2567, -1.48642 ], + [ 0.0171202, 0.00607281 ], + [ inf, inf, inf, inf ], + [ 969, 838, 1088, 957 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 898 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (73): { + 306, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049835, + [ 29.0074, 22.2587, -4.39937 ], + [ 7.73429, 74.2538, -1.48262 ], + [ 0.0171212, 0.00608071 ], + [ inf, inf, inf, inf ], + [ 969, 838, 1088, 957 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 898 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (74): { + 307, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 29.3888, 22.5514, -4.473 ], + [ 7.73254, 74.2512, -1.47979 ], + [ 0.0171285, 0.0060838 ], + [ inf, inf, inf, inf ], + [ 970, 838, 1089, 957 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 898 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (75): { + 308, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049834, + [ 29.7814, 22.8527, -4.54734 ], + [ 7.731, 74.2497, -1.47985 ], + [ 0.0171321, 0.00609149 ], + [ inf, inf, inf, inf ], + [ 970, 838, 1089, 957 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 898 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (76): { + 309, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04985, + [ 30.1735, 23.1535, -4.62153 ], + [ 7.72962, 74.2482, -1.479 ], + [ 0.0171335, 0.00609476 ], + [ inf, inf, inf, inf ], + [ 971, 839, 1090, 958 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 899 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (77): { + 310, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 30.5633, 23.4526, -4.69518 ], + [ 7.72866, 74.2468, -1.47551 ], + [ 0.0171346, 0.0061026 ], + [ inf, inf, inf, inf ], + [ 971, 839, 1090, 958 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 899 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (78): { + 311, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 30.9485, 23.7482, -4.76877 ], + [ 7.72803, 74.2451, -1.47262 ], + [ 0.017142, 0.00610596 ], + [ inf, inf, inf, inf ], + [ 972, 839, 1091, 958 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 899 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (79): { + 312, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 31.3198, 24.0331, -4.84217 ], + [ 7.72836, 74.2421, -1.47151 ], + [ 0.0171455, 0.00610717 ], + [ inf, inf, inf, inf ], + [ 972, 839, 1091, 958 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 899 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (80): { + 313, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 31.6957, 24.3215, -4.91553 ], + [ 7.72802, 74.2392, -1.47012 ], + [ 0.0171474, 0.00611431 ], + [ inf, inf, inf, inf ], + [ 972, 840, 1091, 959 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 900 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (81): { + 314, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049866, + [ 32.0856, 24.6208, -4.98882 ], + [ 7.72562, 74.2364, -1.46788 ], + [ 0.0171483, 0.006117 ], + [ inf, inf, inf, inf ], + [ 973, 840, 1092, 959 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 900 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (82): { + 315, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049765, + [ 32.4668, 24.9133, -5.05872 ], + [ 7.72355, 74.2341, -1.4666 ], + [ 0.0171488, 0.00611815 ], + [ inf, inf, inf, inf ], + [ 973, 840, 1092, 959 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 900 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (83): { + 316, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049908, + [ 32.8236, 25.187, -5.11842 ], + [ 7.7225, 74.2336, -1.46834 ], + [ 0.017149, 0.00611815 ], + [ inf, inf, inf, inf ], + [ 973, 840, 1092, 959 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 900 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (84): { + 317, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 33.1827, 25.4626, -5.179 ], + [ 7.72156, 74.2328, -1.46989 ], + [ 0.0171564, 0.00611827 ], + [ inf, inf, inf, inf ], + [ 973, 840, 1092, 959 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 900 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (85): { + 318, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049866, + [ 33.6033, 25.7854, -5.25977 ], + [ 7.72279, 74.2259, -1.4672 ], + [ 0.0171593, 0.00611743 ], + [ inf, inf, inf, inf ], + [ 973, 840, 1092, 959 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 900 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (86): { + 319, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04981, + [ 34.0157, 26.1018, -5.33854 ], + [ 7.72365, 74.2199, -1.46407 ], + [ 0.0171609, 0.00611684 ], + [ inf, inf, inf, inf ], + [ 973, 841, 1092, 960 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 901 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (87): { + 320, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049865, + [ 34.4026, 26.3987, -5.41087 ], + [ 7.72328, 74.2172, -1.45942 ], + [ 0.0171615, 0.00611619 ], + [ inf, inf, inf, inf ], + [ 973, 841, 1092, 960 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 901 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (88): { + 321, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 34.7726, 26.6826, -5.48025 ], + [ 7.72282, 74.2148, -1.45561 ], + [ 0.0171618, 0.00611555 ], + [ inf, inf, inf, inf ], + [ 972, 841, 1091, 960 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 901 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (89): { + 322, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04982, + [ 35.0776, 26.9166, -5.53829 ], + [ 7.72204, 74.2138, -1.45499 ], + [ 0.0171689, 0.00611491 ], + [ inf, inf, inf, inf ], + [ 972, 841, 1091, 960 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 901 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (90): { + 323, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 35.3826, 27.1507, -5.59636 ], + [ 7.72126, 74.2128, -1.45438 ], + [ 0.0171736, 0.00611532 ], + [ inf, inf, inf, inf ], + [ 972, 842, 1091, 961 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 902 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (91): { + 324, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 35.8415, 27.5028, -5.68201 ], + [ 7.72114, 74.2105, -1.45397 ], + [ 0.0171734, 0.00611359 ], + [ inf, inf, inf, inf ], + [ 972, 842, 1091, 961 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 902 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (92): { + 325, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 36.3348, 27.8813, -5.77397 ], + [ 7.72087, 74.2075, -1.45294 ], + [ 0.0171817, 0.00611361 ], + [ inf, inf, inf, inf ], + [ 972, 842, 1091, 961 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 902 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (93): { + 326, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 36.7153, 28.1733, -5.84625 ], + [ 7.71894, 74.2044, -1.44925 ], + [ 0.0171855, 0.00611349 ], + [ inf, inf, inf, inf ], + [ 972, 843, 1091, 962 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 903 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (94): { + 327, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 37.0977, 28.4667, -5.91851 ], + [ 7.7171, 74.2019, -1.44652 ], + [ 0.0171873, 0.00611353 ], + [ inf, inf, inf, inf ], + [ 972, 843, 1091, 962 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 903 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (95): { + 328, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 37.4876, 28.7659, -5.9907 ], + [ 7.71565, 74.2012, -1.44758 ], + [ 0.0171949, 0.00610694 ], + [ inf, inf, inf, inf ], + [ 972, 843, 1091, 962 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 903 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (96): { + 329, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 37.8754, 29.0636, -6.06285 ], + [ 7.7142, 74.2, -1.44803 ], + [ 0.0171984, 0.00610406 ], + [ inf, inf, inf, inf ], + [ 972, 844, 1091, 963 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 904 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (97): { + 330, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 38.2561, 29.3557, -6.13505 ], + [ 7.71278, 74.1968, -1.446 ], + [ 0.0172073, 0.00610243 ], + [ inf, inf, inf, inf ], + [ 971, 844, 1090, 963 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 904 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (98): { + 331, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 38.6365, 29.6476, -6.20717 ], + [ 7.71132, 74.1938, -1.44418 ], + [ 0.0172114, 0.00610166 ], + [ inf, inf, inf, inf ], + [ 971, 845, 1090, 964 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 905 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (99): { + 332, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049854, + [ 39.0171, 29.9396, -6.27916 ], + [ 7.70971, 74.1922, -1.44328 ], + [ 0.0172205, 0.00610109 ], + [ inf, inf, inf, inf ], + [ 971, 845, 1090, 964 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 905 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + }, + (100): { + 333, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049855, + [ 39.3995, 30.233, -6.35112 ], + [ 7.70823, 74.1904, -1.44215 ], + [ 0.0172243, 0.00609434 ], + [ inf, inf, inf, inf ], + [ 971, 846, 1090, 965 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 906 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (101): { + 334, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049825, + [ 39.7892, 30.5321, -6.42289 ], + [ 7.70729, 74.1885, -1.44001 ], + [ 0.0172334, 0.00609107 ], + [ inf, inf, inf, inf ], + [ 971, 846, 1090, 965 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 906 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (102): { + 335, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 40.1716, 30.8255, -6.4882 ], + [ 7.70643, 74.1866, -1.4377 ], + [ 0.0172376, 0.00608975 ], + [ inf, inf, inf, inf ], + [ 970, 847, 1089, 966 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 907 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (103): { + 336, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 40.5194, 31.0924, -6.52358 ], + [ 7.70596, 74.1852, -1.43459 ], + [ 0.0172467, 0.00608866 ], + [ inf, inf, inf, inf ], + [ 970, 847, 1089, 966 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 907 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (104): { + 337, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 40.8672, 31.3592, -6.55896 ], + [ 7.70548, 74.1838, -1.43147 ], + [ 0.0172577, 0.00608223 ], + [ inf, inf, inf, inf ], + [ 970, 848, 1089, 967 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 908 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (105): { + 338, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 41.2761, 31.6731, -6.63675 ], + [ 7.70025, 74.1812, -1.4303 ], + [ 0.0172629, 0.00607798 ], + [ inf, inf, inf, inf ], + [ 969, 849, 1088, 968 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 909 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (106): { + 339, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049854, + [ 41.6824, 31.9848, -6.714 ], + [ 7.69531, 74.1787, -1.42968 ], + [ 0.0172723, 0.00607682 ], + [ inf, inf, inf, inf ], + [ 969, 849, 1088, 968 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 909 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (107): { + 340, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04977, + [ 42.0686, 32.2811, -6.7846 ], + [ 7.69231, 74.1774, -1.43169 ], + [ 0.0172838, 0.00607626 ], + [ inf, inf, inf, inf ], + [ 969, 850, 1088, 969 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 910 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (108): { + 341, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049949, + [ 42.4443, 32.5694, -6.8535 ], + [ 7.68922, 74.1762, -1.43319 ], + [ 0.0172958, 0.00606937 ], + [ inf, inf, inf, inf ], + [ 969, 851, 1088, 970 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 911 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (109): { + 342, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049797, + [ 42.7494, 32.8035, -6.91063 ], + [ 7.68563, 74.1754, -1.43159 ], + [ 0.0173084, 0.00606618 ], + [ inf, inf, inf, inf ], + [ 969, 852, 1088, 971 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 912 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (110): { + 343, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 43.0547, 33.0378, -6.96781 ], + [ 7.68204, 74.1746, -1.42999 ], + [ 0.0173131, 0.00606589 ], + [ inf, inf, inf, inf ], + [ 969, 853, 1088, 972 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 913 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (111): { + 344, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049789, + [ 43.4914, 33.3729, -7.04945 ], + [ 7.6783, 74.1736, -1.4273 ], + [ 0.0173245, 0.00606361 ], + [ inf, inf, inf, inf ], + [ 968, 854, 1087, 973 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 914 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (112): { + 345, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049938, + [ 43.9835, 33.7505, -7.14137 ], + [ 7.67472, 74.1726, -1.42404 ], + [ 0.0173358, 0.00606354 ], + [ inf, inf, inf, inf ], + [ 968, 855, 1087, 974 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 915 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (113): { + 346, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049807, + [ 44.3636, 34.0422, -7.2121 ], + [ 7.67259, 74.1725, -1.42109 ], + [ 0.017348, 0.00606333 ], + [ inf, inf, inf, inf ], + [ 968, 855, 1087, 974 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 915 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (114): { + 347, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 44.7453, 34.335, -7.28288 ], + [ 7.6704, 74.1721, -1.41828 ], + [ 0.0173604, 0.00606342 ], + [ inf, inf, inf, inf ], + [ 968, 856, 1087, 975 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 916 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (115): { + 348, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049875, + [ 45.1355, 34.6345, -7.3537 ], + [ 7.66777, 74.1698, -1.41639 ], + [ 0.0173732, 0.00606343 ], + [ inf, inf, inf, inf ], + [ 969, 857, 1088, 976 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 917 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (116): { + 349, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049814, + [ 45.524, 34.9326, -7.42441 ], + [ 7.66499, 74.1674, -1.41483 ], + [ 0.017386, 0.00606329 ], + [ inf, inf, inf, inf ], + [ 969, 858, 1088, 977 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 918 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (117): { + 350, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 45.9044, 35.2245, -7.49501 ], + [ 7.66117, 74.1648, -1.41538 ], + [ 0.0173987, 0.00606324 ], + [ inf, inf, inf, inf ], + [ 969, 859, 1088, 978 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 919 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (118): { + 351, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049782, + [ 46.2843, 35.516, -7.56553 ], + [ 7.65709, 74.1627, -1.41592 ], + [ 0.0174113, 0.00606315 ], + [ inf, inf, inf, inf ], + [ 969, 860, 1088, 979 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 920 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (119): { + 352, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049902, + [ 46.6653, 35.8084, -7.63625 ], + [ 7.65121, 74.1634, -1.41648 ], + [ 0.0174242, 0.006063 ], + [ inf, inf, inf, inf ], + [ 969, 861, 1088, 980 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 921 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (120): { + 353, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049862, + [ 47.046, 36.1005, -7.70692 ], + [ 7.64578, 74.1637, -1.41685 ], + [ 0.017437, 0.006063 ], + [ inf, inf, inf, inf ], + [ 969, 862, 1088, 981 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 922 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (121): { + 354, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 47.4265, 36.3924, -7.77747 ], + [ 7.64361, 74.1616, -1.41587 ], + [ 0.0174501, 0.00606276 ], + [ inf, inf, inf, inf ], + [ 969, 863, 1088, 982 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 923 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (122): { + 355, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04988, + [ 47.8035, 36.6818, -7.83861 ], + [ 7.64113, 74.1596, -1.41494 ], + [ 0.0174627, 0.00606258 ], + [ inf, inf, inf, inf ], + [ 969, 864, 1088, 983 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 924 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (123): { + 356, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 48.1512, 36.9485, -7.82746 ], + [ 7.63639, 74.1581, -1.41442 ], + [ 0.0174757, 0.00606854 ], + [ inf, inf, inf, inf ], + [ 969, 865, 1088, 984 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 925 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (124): { + 357, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049788, + [ 48.4984, 37.215, -7.81634 ], + [ 7.63166, 74.1565, -1.4139 ], + [ 0.0174879, 0.00607062 ], + [ inf, inf, inf, inf ], + [ 969, 866, 1088, 985 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 926 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (125): { + 358, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049876, + [ 48.9224, 37.5403, -7.88754 ], + [ 7.62487, 74.1599, -1.42077 ], + [ 0.0175019, 0.00607886 ], + [ inf, inf, inf, inf ], + [ 970, 867, 1089, 986 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 927 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (126): { + 359, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049794, + [ 49.347, 37.8662, -7.96511 ], + [ 7.61832, 74.1633, -1.42747 ], + [ 0.0175147, 0.00608214 ], + [ inf, inf, inf, inf ], + [ 971, 868, 1090, 987 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 928 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (127): { + 360, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049882, + [ 49.7252, 38.1564, -8.0358 ], + [ 7.61543, 74.1626, -1.42706 ], + [ 0.0175278, 0.00609022 ], + [ inf, inf, inf, inf ], + [ 971, 869, 1090, 988 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 929 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (128): { + 361, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049874, + [ 50.0967, 38.4414, -8.10537 ], + [ 7.61253, 74.1618, -1.42675 ], + [ 0.0175336, 0.0060942 ], + [ inf, inf, inf, inf ], + [ 972, 870, 1091, 989 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 930 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (129): { + 362, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049732, + [ 50.3935, 38.6692, -8.1623 ], + [ 7.60959, 74.1593, -1.42744 ], + [ 0.0175433, 0.00610237 ], + [ inf, inf, inf, inf ], + [ 972, 871, 1091, 990 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 931 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (130): { + 363, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049931, + [ 50.6915, 38.8978, -8.21946 ], + [ 7.60664, 74.1568, -1.42814 ], + [ 0.0175532, 0.00610481 ], + [ inf, inf, inf, inf ], + [ 973, 871, 1092, 990 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 931 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (131): { + 364, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049869, + [ 51.1126, 39.2209, -8.29897 ], + [ 7.60084, 74.1561, -1.43161 ], + [ 0.017567, 0.00611497 ], + [ inf, inf, inf, inf ], + [ 973, 872, 1092, 991 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 932 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (132): { + 365, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049835, + [ 51.6126, 39.6046, -8.39277 ], + [ 7.59334, 74.1565, -1.43685 ], + [ 0.0175789, 0.00611808 ], + [ inf, inf, inf, inf ], + [ 974, 873, 1093, 992 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1034, 933 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (133): { + 366, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 51.9939, 39.8972, -8.4646 ], + [ 7.58996, 74.155, -1.43945 ], + [ 0.0175846, 0.00612609 ], + [ inf, inf, inf, inf ], + [ 975, 874, 1094, 993 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1035, 934 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (134): { + 367, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 52.3751, 40.1897, -8.53644 ], + [ 7.58667, 74.1535, -1.44201 ], + [ 0.0175944, 0.00613568 ], + [ inf, inf, inf, inf ], + [ 975, 874, 1094, 993 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1035, 934 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (135): { + 368, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049864, + [ 52.7553, 40.4815, -8.60834 ], + [ 7.58439, 74.1506, -1.44423 ], + [ 0.0176055, 0.00613997 ], + [ inf, inf, inf, inf ], + [ 976, 875, 1095, 994 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1036, 935 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (136): { + 369, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049824, + [ 53.1346, 40.7725, -8.68022 ], + [ 7.58205, 74.1478, -1.44659 ], + [ 0.0176106, 0.00614804 ], + [ inf, inf, inf, inf ], + [ 976, 876, 1095, 995 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1036, 936 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (137): { + 370, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049864, + [ 53.5061, 41.0576, -8.75255 ], + [ 7.57896, 74.1461, -1.45083 ], + [ 0.0176201, 0.00615815 ], + [ inf, inf, inf, inf ], + [ 977, 876, 1096, 995 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1037, 936 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (138): { + 371, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 53.878, 41.3429, -8.82485 ], + [ 7.57587, 74.1445, -1.4547 ], + [ 0.0176243, 0.00616236 ], + [ inf, inf, inf, inf ], + [ 978, 877, 1097, 996 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1038, 937 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (139): { + 372, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 54.2585, 41.6349, -8.89732 ], + [ 7.57287, 74.1447, -1.45333 ], + [ 0.0176334, 0.00617083 ], + [ inf, inf, inf, inf ], + [ 978, 877, 1097, 996 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1038, 937 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (140): { + 373, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04985, + [ 54.639, 41.9269, -8.9698 ], + [ 7.56999, 74.1446, -1.45227 ], + [ 0.0176376, 0.00618082 ], + [ inf, inf, inf, inf ], + [ 979, 878, 1098, 997 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1039, 938 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (141): { + 374, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 55.0194, 42.2188, -9.04242 ], + [ 7.56901, 74.1407, -1.45597 ], + [ 0.0176462, 0.00618534 ], + [ inf, inf, inf, inf ], + [ 980, 878, 1099, 997 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1040, 938 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (142): { + 375, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 55.3978, 42.5091, -9.11025 ], + [ 7.56796, 74.1369, -1.45947 ], + [ 0.0176502, 0.00619337 ], + [ inf, inf, inf, inf ], + [ 980, 879, 1099, 998 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1040, 939 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (143): { + 376, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 55.7374, 42.7697, -9.09386 ], + [ 7.56574, 74.1356, -1.4593 ], + [ 0.017652, 0.00620363 ], + [ inf, inf, inf, inf ], + [ 981, 879, 1100, 998 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1041, 939 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (144): { + 377, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 56.0769, 43.0302, -9.07749 ], + [ 7.56353, 74.1343, -1.45914 ], + [ 0.0176599, 0.00620727 ], + [ inf, inf, inf, inf ], + [ 982, 879, 1101, 998 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1042, 939 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (145): { + 378, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 56.5298, 43.3778, -9.14416 ], + [ 7.56216, 74.1291, -1.45855 ], + [ 0.0176633, 0.00621616 ], + [ inf, inf, inf, inf ], + [ 982, 880, 1101, 999 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1042, 940 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (146): { + 379, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 56.997, 43.7362, -9.22392 ], + [ 7.56093, 74.1235, -1.45792 ], + [ 0.0176654, 0.00622587 ], + [ inf, inf, inf, inf ], + [ 983, 880, 1102, 999 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1043, 940 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (147): { + 380, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 57.3745, 44.0259, -9.29602 ], + [ 7.55978, 74.1214, -1.45802 ], + [ 0.0176729, 0.00623004 ], + [ inf, inf, inf, inf ], + [ 984, 880, 1103, 999 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1044, 940 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (148): { + 381, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 57.7504, 44.3144, -9.36784 ], + [ 7.55866, 74.1193, -1.4582 ], + [ 0.0176767, 0.00623794 ], + [ inf, inf, inf, inf ], + [ 984, 880, 1103, 999 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1044, 940 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (149): { + 382, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049877, + [ 58.0482, 44.5429, -9.4265 ], + [ 7.55882, 74.1171, -1.46212 ], + [ 0.0176782, 0.00624188 ], + [ inf, inf, inf, inf ], + [ 985, 881, 1104, 1000 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1045, 941 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (150): { + 383, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049821, + [ 58.3457, 44.7712, -9.4851 ], + [ 7.55897, 74.1148, -1.46604 ], + [ 0.0176803, 0.00624858 ], + [ inf, inf, inf, inf ], + [ 985, 881, 1104, 1000 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1045, 941 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (151): { + 384, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 58.7537, 45.0842, -9.56444 ], + [ 7.56032, 74.1119, -1.47158 ], + [ 0.0176795, 0.00626034 ], + [ inf, inf, inf, inf ], + [ 986, 881, 1105, 1000 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1046, 941 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (152): { + 385, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049775, + [ 59.2609, 45.4734, -9.66238 ], + [ 7.56274, 74.1083, -1.47845 ], + [ 0.0176874, 0.00626395 ], + [ inf, inf, inf, inf ], + [ 987, 881, 1106, 1000 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1047, 941 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (153): { + 386, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049914, + [ 59.6425, 45.7662, -9.73633 ], + [ 7.56344, 74.1054, -1.47836 ], + [ 0.0176978, 0.00626545 ], + [ inf, inf, inf, inf ], + [ 987, 882, 1106, 1001 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1047, 942 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (154): { + 387, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 60.0233, 46.0584, -9.81015 ], + [ 7.56412, 74.1026, -1.4783 ], + [ 0.0177032, 0.00627221 ], + [ inf, inf, inf, inf ], + [ 987, 882, 1106, 1001 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1047, 942 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (155): { + 388, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 60.3942, 46.343, -9.88383 ], + [ 7.56399, 74.0999, -1.47916 ], + [ 0.0177057, 0.00627518 ], + [ inf, inf, inf, inf ], + [ 988, 883, 1107, 1002 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1048, 943 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (156): { + 389, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049765, + [ 60.7645, 46.6272, -9.95738 ], + [ 7.56386, 74.0973, -1.48004 ], + [ 0.0177076, 0.00628252 ], + [ inf, inf, inf, inf ], + [ 988, 883, 1107, 1002 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1048, 943 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (157): { + 390, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049874, + [ 61.1453, 46.9194, -10.0314 ], + [ 7.56477, 74.0944, -1.48388 ], + [ 0.0177153, 0.00628567 ], + [ inf, inf, inf, inf ], + [ 989, 883, 1108, 1002 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1049, 943 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (158): { + 391, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 61.5257, 47.2113, -10.1054 ], + [ 7.56568, 74.0915, -1.4877 ], + [ 0.0177191, 0.00628679 ], + [ inf, inf, inf, inf ], + [ 989, 884, 1108, 1003 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1049, 944 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (159): { + 392, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049909, + [ 61.9068, 47.5037, -10.1796 ], + [ 7.56741, 74.0876, -1.48647 ], + [ 0.0177211, 0.0062937 ], + [ inf, inf, inf, inf ], + [ 989, 884, 1108, 1003 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1049, 944 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (160): { + 393, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 62.2873, 47.7957, -10.2537 ], + [ 7.56914, 74.0838, -1.48525 ], + [ 0.0177293, 0.00629599 ], + [ inf, inf, inf, inf ], + [ 990, 884, 1109, 1003 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 944 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (161): { + 394, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 62.6587, 48.0807, -10.328 ], + [ 7.57118, 74.0809, -1.4884 ], + [ 0.0177328, 0.00629737 ], + [ inf, inf, inf, inf ], + [ 990, 885, 1109, 1004 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 945 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (162): { + 395, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 63.0299, 48.3655, -10.4021 ], + [ 7.57323, 74.078, -1.49157 ], + [ 0.0177417, 0.00629741 ], + [ inf, inf, inf, inf ], + [ 990, 885, 1109, 1004 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 945 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (163): { + 396, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 63.3785, 48.633, -10.3842 ], + [ 7.57583, 74.0755, -1.49374 ], + [ 0.0177457, 0.00630379 ], + [ inf, inf, inf, inf ], + [ 990, 886, 1109, 1005 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 946 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (164): { + 397, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049894, + [ 63.727, 48.9005, -10.3655 ], + [ 7.57844, 74.073, -1.49591 ], + [ 0.0177549, 0.00630611 ], + [ inf, inf, inf, inf ], + [ 991, 886, 1110, 1005 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1051, 946 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (165): { + 398, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049782, + [ 64.1485, 49.2238, -10.4274 ], + [ 7.58198, 74.0664, -1.49459 ], + [ 0.0177593, 0.00630765 ], + [ inf, inf, inf, inf ], + [ 991, 887, 1110, 1006 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1051, 947 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (166): { + 399, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 64.5887, 49.5616, -10.5094 ], + [ 7.58576, 74.0588, -1.4924 ], + [ 0.0177682, 0.00630721 ], + [ inf, inf, inf, inf ], + [ 991, 887, 1110, 1006 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1051, 947 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (167): { + 400, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 64.9676, 49.8524, -10.5836 ], + [ 7.5846, 74.0552, -1.49442 ], + [ 0.0177729, 0.00631343 ], + [ inf, inf, inf, inf ], + [ 991, 888, 1110, 1007 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1051, 948 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (168): { + 401, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 65.3453, 50.1422, -10.6576 ], + [ 7.58334, 74.0517, -1.49653 ], + [ 0.0177822, 0.00631576 ], + [ inf, inf, inf, inf ], + [ 991, 888, 1110, 1007 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1051, 948 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (169): { + 402, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049864, + [ 65.6537, 50.3788, -10.7183 ], + [ 7.58472, 74.0498, -1.49992 ], + [ 0.0177862, 0.00631701 ], + [ inf, inf, inf, inf ], + [ 992, 889, 1111, 1008 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 949 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (170): { + 403, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049821, + [ 65.9589, 50.613, -10.7784 ], + [ 7.58621, 74.048, -1.50336 ], + [ 0.0177952, 0.00631688 ], + [ inf, inf, inf, inf ], + [ 992, 889, 1111, 1008 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 949 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (171): { + 404, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 66.3529, 50.9154, -10.8572 ], + [ 7.58734, 74.0441, -1.50563 ], + [ 0.0177992, 0.006324 ], + [ inf, inf, inf, inf ], + [ 992, 890, 1111, 1009 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 950 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (172): { + 405, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049786, + [ 66.8509, 51.2975, -10.9579 ], + [ 7.58802, 74.0378, -1.5065 ], + [ 0.0178083, 0.00632651 ], + [ inf, inf, inf, inf ], + [ 992, 890, 1111, 1009 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 950 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (173): { + 406, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049922, + [ 67.2363, 51.5932, -11.0342 ], + [ 7.58989, 74.0335, -1.50867 ], + [ 0.0178126, 0.00632779 ], + [ inf, inf, inf, inf ], + [ 993, 891, 1112, 1010 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1053, 951 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (174): { + 407, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 67.6168, 51.8852, -11.1094 ], + [ 7.5918, 74.0292, -1.51088 ], + [ 0.0178214, 0.00632811 ], + [ inf, inf, inf, inf ], + [ 993, 891, 1112, 1010 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1053, 951 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (175): { + 408, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049822, + [ 67.9966, 52.1766, -11.1847 ], + [ 7.59452, 74.0265, -1.51264 ], + [ 0.017826, 0.00633479 ], + [ inf, inf, inf, inf ], + [ 993, 892, 1112, 1011 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1053, 952 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (176): { + 409, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 68.3766, 52.4682, -11.26 ], + [ 7.59728, 74.0237, -1.51439 ], + [ 0.017835, 0.00633764 ], + [ inf, inf, inf, inf ], + [ 994, 892, 1113, 1011 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 952 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (177): { + 410, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 68.7572, 52.7602, -11.3356 ], + [ 7.59974, 74.0207, -1.51579 ], + [ 0.0178461, 0.00633859 ], + [ inf, inf, inf, inf ], + [ 994, 893, 1113, 1012 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 953 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (178): { + 411, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 69.1378, 53.0523, -11.4111 ], + [ 7.60217, 74.0177, -1.51718 ], + [ 0.017851, 0.00633883 ], + [ inf, inf, inf, inf ], + [ 994, 894, 1113, 1013 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 954 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (179): { + 412, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 69.5183, 53.3443, -11.4868 ], + [ 7.60363, 74.0129, -1.51766 ], + [ 0.0178609, 0.0063452 ], + [ inf, inf, inf, inf ], + [ 994, 894, 1113, 1013 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 954 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (180): { + 413, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049785, + [ 69.8984, 53.6359, -11.5624 ], + [ 7.60502, 74.0079, -1.51809 ], + [ 0.0178724, 0.00634756 ], + [ inf, inf, inf, inf ], + [ 994, 895, 1113, 1014 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 955 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (181): { + 414, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049899, + [ 70.2794, 53.9283, -11.6383 ], + [ 7.60446, 74.006, -1.52235 ], + [ 0.0178779, 0.00634879 ], + [ inf, inf, inf, inf ], + [ 995, 896, 1114, 1015 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 956 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (182): { + 415, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 70.6599, 54.2203, -11.7142 ], + [ 7.60377, 74.0042, -1.52688 ], + [ 0.0178875, 0.00634914 ], + [ inf, inf, inf, inf ], + [ 995, 896, 1114, 1015 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 956 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (183): { + 416, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049782, + [ 71.002, 54.4828, -11.7114 ], + [ 7.60551, 74.0012, -1.52888 ], + [ 0.0178989, 0.00634907 ], + [ inf, inf, inf, inf ], + [ 995, 897, 1114, 1016 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 957 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (184): { + 417, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049903, + [ 71.3421, 54.7438, -11.7027 ], + [ 7.60743, 73.9982, -1.53071 ], + [ 0.0179115, 0.00635486 ], + [ inf, inf, inf, inf ], + [ 995, 898, 1114, 1017 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 958 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (185): { + 418, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 71.756, 55.0613, -11.7624 ], + [ 7.60951, 73.9923, -1.52796 ], + [ 0.0179173, 0.0063574 ], + [ inf, inf, inf, inf ], + [ 995, 899, 1114, 1018 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 959 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (186): { + 419, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 72.1961, 55.399, -11.8464 ], + [ 7.61165, 73.9854, -1.5236 ], + [ 0.0179269, 0.00635834 ], + [ inf, inf, inf, inf ], + [ 996, 900, 1115, 1019 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 960 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (187): { + 420, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 72.5817, 55.6949, -11.9232 ], + [ 7.61373, 73.9815, -1.52563 ], + [ 0.0179383, 0.00635862 ], + [ inf, inf, inf, inf ], + [ 996, 900, 1115, 1019 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 960 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (188): { + 421, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04987, + [ 72.9627, 55.9873, -11.9995 ], + [ 7.61581, 73.9779, -1.52823 ], + [ 0.0179435, 0.00635867 ], + [ inf, inf, inf, inf ], + [ 996, 901, 1115, 1020 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 961 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (189): { + 422, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049757, + [ 73.2721, 56.2247, -12.0616 ], + [ 7.61725, 73.9755, -1.53159 ], + [ 0.0179533, 0.00636462 ], + [ inf, inf, inf, inf ], + [ 996, 902, 1115, 1021 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 962 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (190): { + 423, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 73.5754, 56.4574, -12.1224 ], + [ 7.61864, 73.9732, -1.53504 ], + [ 0.017964, 0.00636687 ], + [ inf, inf, inf, inf ], + [ 996, 902, 1115, 1021 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 962 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (191): { + 424, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049864, + [ 73.9608, 56.7532, -12.1998 ], + [ 7.62013, 73.9692, -1.53759 ], + [ 0.0179771, 0.00636811 ], + [ inf, inf, inf, inf ], + [ 997, 903, 1116, 1022 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1057, 963 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (192): { + 425, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.0499, + [ 74.4721, 57.1455, -12.3026 ], + [ 7.62179, 73.9628, -1.53878 ], + [ 0.0179825, 0.00637481 ], + [ inf, inf, inf, inf ], + [ 997, 904, 1116, 1023 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1057, 964 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (193): { + 426, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049779, + [ 74.862, 57.4447, -12.3812 ], + [ 7.62329, 73.9596, -1.5402 ], + [ 0.0179922, 0.00637804 ], + [ inf, inf, inf, inf ], + [ 998, 905, 1117, 1024 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 965 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (194): { + 427, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049924, + [ 75.2399, 57.7347, -12.4575 ], + [ 7.62477, 73.9567, -1.54165 ], + [ 0.0180035, 0.00637869 ], + [ inf, inf, inf, inf ], + [ 998, 905, 1117, 1024 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 965 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (195): { + 428, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049779, + [ 75.6223, 58.028, -12.5348 ], + [ 7.62504, 73.9535, -1.54489 ], + [ 0.0180158, 0.00637911 ], + [ inf, inf, inf, inf ], + [ 998, 906, 1117, 1025 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 966 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (196): { + 429, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049894, + [ 76.0062, 58.3227, -12.6125 ], + [ 7.62514, 73.9503, -1.54838 ], + [ 0.0180216, 0.00638549 ], + [ inf, inf, inf, inf ], + [ 998, 907, 1117, 1026 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 967 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (197): { + 430, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 76.387, 58.6148, -12.6895 ], + [ 7.62692, 73.9472, -1.54592 ], + [ 0.0180312, 0.00638812 ], + [ inf, inf, inf, inf ], + [ 999, 908, 1118, 1027 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 968 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (198): { + 431, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 76.7674, 58.9067, -12.7665 ], + [ 7.62892, 73.944, -1.54271 ], + [ 0.0180425, 0.00638904 ], + [ inf, inf, inf, inf ], + [ 999, 908, 1118, 1027 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 968 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (199): { + 432, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 77.1479, 59.1987, -12.8434 ], + [ 7.63063, 73.9405, -1.54207 ], + [ 0.0180546, 0.00638914 ], + [ inf, inf, inf, inf ], + [ 999, 909, 1118, 1028 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 969 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (200): { + 433, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 77.5285, 59.4907, -12.9203 ], + [ 7.6323, 73.9369, -1.54177 ], + [ 0.0180674, 0.00639519 ], + [ inf, inf, inf, inf ], + [ 999, 910, 1118, 1029 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 970 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (201): { + 434, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049857, + [ 77.9093, 59.7829, -12.9973 ], + [ 7.63592, 73.9338, -1.54261 ], + [ 0.0180733, 0.00639803 ], + [ inf, inf, inf, inf ], + [ 1000, 911, 1119, 1030 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1060, 971 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (202): { + 435, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 78.2899, 60.075, -13.0742 ], + [ 7.63981, 73.9307, -1.54361 ], + [ 0.0180832, 0.00640505 ], + [ inf, inf, inf, inf ], + [ 1000, 912, 1119, 1031 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1060, 972 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (203): { + 436, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049852, + [ 78.6425, 60.3456, -13.1011 ], + [ 7.64041, 73.9276, -1.54339 ], + [ 0.0180947, 0.00640833 ], + [ inf, inf, inf, inf ], + [ 1001, 912, 1120, 1031 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 972 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (204): { + 437, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 78.9908, 60.6128, -13.1203 ], + [ 7.64052, 73.9246, -1.54299 ], + [ 0.0180995, 0.00640974 ], + [ inf, inf, inf, inf ], + [ 1001, 913, 1120, 1032 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 973 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (205): { + 438, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04985, + [ 79.3802, 60.9116, -13.1837 ], + [ 7.64065, 73.9219, -1.53946 ], + [ 0.0181089, 0.00641009 ], + [ inf, inf, inf, inf ], + [ 1001, 913, 1120, 1032 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 973 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (206): { + 439, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 79.7891, 61.2254, -13.2681 ], + [ 7.64079, 73.9195, -1.53443 ], + [ 0.0181204, 0.00641644 ], + [ inf, inf, inf, inf ], + [ 1001, 914, 1120, 1033 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 974 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (207): { + 440, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049866, + [ 80.1744, 61.5211, -13.3459 ], + [ 7.64146, 73.9167, -1.5344 ], + [ 0.0181256, 0.00641927 ], + [ inf, inf, inf, inf ], + [ 1002, 915, 1121, 1034 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1062, 975 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (208): { + 441, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 80.5555, 61.8135, -13.4224 ], + [ 7.64222, 73.9139, -1.53521 ], + [ 0.0181348, 0.00642007 ], + [ inf, inf, inf, inf ], + [ 1002, 915, 1121, 1034 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1062, 975 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (209): { + 442, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 80.8638, 62.0501, -13.4857 ], + [ 7.64435, 73.9102, -1.53557 ], + [ 0.0181462, 0.00642646 ], + [ inf, inf, inf, inf ], + [ 1002, 916, 1121, 1035 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1062, 976 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (210): { + 443, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 81.1595, 62.2769, -13.5466 ], + [ 7.64671, 73.9064, -1.53586 ], + [ 0.018151, 0.00642897 ], + [ inf, inf, inf, inf ], + [ 1003, 917, 1122, 1036 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1063, 977 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (211): { + 444, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 81.5313, 62.5622, -13.6215 ], + [ 7.64927, 73.9027, -1.53456 ], + [ 0.0181606, 0.0064304 ], + [ inf, inf, inf, inf ], + [ 1003, 917, 1122, 1036 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1063, 977 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (212): { + 445, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 82.0549, 62.964, -13.7243 ], + [ 7.65224, 73.8994, -1.53008 ], + [ 0.0181722, 0.00643682 ], + [ inf, inf, inf, inf ], + [ 1003, 918, 1122, 1037 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1063, 978 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (213): { + 446, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049823, + [ 82.4581, 63.2734, -13.8049 ], + [ 7.6554, 73.8959, -1.52998 ], + [ 0.0181773, 0.00643991 ], + [ inf, inf, inf, inf ], + [ 1004, 919, 1123, 1038 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1064, 979 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (214): { + 447, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 82.8387, 63.5654, -13.8813 ], + [ 7.65858, 73.8923, -1.53071 ], + [ 0.0181867, 0.0064409 ], + [ inf, inf, inf, inf ], + [ 1004, 919, 1123, 1038 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1064, 979 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (215): { + 448, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 83.2193, 63.8575, -13.9578 ], + [ 7.661, 73.888, -1.53183 ], + [ 0.0181984, 0.00644729 ], + [ inf, inf, inf, inf ], + [ 1004, 920, 1123, 1039 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1064, 980 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (216): { + 449, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 83.5998, 64.1495, -14.0343 ], + [ 7.66326, 73.8835, -1.53302 ], + [ 0.0182035, 0.00645001 ], + [ inf, inf, inf, inf ], + [ 1005, 921, 1124, 1040 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1065, 981 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (217): { + 450, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 83.9804, 64.4415, -14.1108 ], + [ 7.664, 73.8797, -1.53304 ], + [ 0.018213, 0.00645111 ], + [ inf, inf, inf, inf ], + [ 1005, 921, 1124, 1040 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1065, 981 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (218): { + 451, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 84.3611, 64.7336, -14.1873 ], + [ 7.66442, 73.8761, -1.53282 ], + [ 0.0182175, 0.00645799 ], + [ inf, inf, inf, inf ], + [ 1005, 922, 1124, 1041 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1065, 982 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (219): { + 452, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049873, + [ 84.742, 65.0258, -14.2639 ], + [ 7.66708, 73.8725, -1.53339 ], + [ 0.0182265, 0.00646085 ], + [ inf, inf, inf, inf ], + [ 1006, 922, 1125, 1041 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1066, 982 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (220): { + 453, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049809, + [ 85.1223, 65.3177, -14.3403 ], + [ 7.67022, 73.869, -1.53412 ], + [ 0.0182376, 0.00646158 ], + [ inf, inf, inf, inf ], + [ 1006, 923, 1125, 1042 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1066, 983 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (221): { + 454, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049867, + [ 85.503, 65.6099, -14.4168 ], + [ 7.67377, 73.8644, -1.5344 ], + [ 0.0182429, 0.00646836 ], + [ inf, inf, inf, inf ], + [ 1006, 924, 1125, 1043 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1066, 984 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (222): { + 455, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049827, + [ 85.8835, 65.9018, -14.4932 ], + [ 7.67741, 73.8597, -1.53458 ], + [ 0.0182523, 0.00647079 ], + [ inf, inf, inf, inf ], + [ 1007, 924, 1126, 1043 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1067, 984 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (223): { + 456, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049807, + [ 86.244, 66.1784, -14.4995 ], + [ 7.68033, 73.8559, -1.53327 ], + [ 0.0182635, 0.00647163 ], + [ inf, inf, inf, inf ], + [ 1007, 925, 1126, 1044 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1067, 985 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (224): { + 457, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04989, + [ 86.6004, 66.4519, -14.4893 ], + [ 7.6831, 73.8525, -1.53162 ], + [ 0.0182691, 0.00647842 ], + [ inf, inf, inf, inf ], + [ 1007, 926, 1126, 1045 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1067, 986 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (225): { + 458, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049831, + [ 86.9832, 66.7456, -14.5369 ], + [ 7.68305, 73.8502, -1.52879 ], + [ 0.0182787, 0.00648109 ], + [ inf, inf, inf, inf ], + [ 1008, 926, 1127, 1045 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1068, 986 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (226): { + 459, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049883, + [ 87.3835, 67.0528, -14.6209 ], + [ 7.68123, 73.8487, -1.52521 ], + [ 0.0182831, 0.00648251 ], + [ inf, inf, inf, inf ], + [ 1008, 927, 1127, 1046 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1068, 987 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (227): { + 460, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04976, + [ 87.7673, 67.3473, -14.6984 ], + [ 7.68548, 73.8448, -1.52453 ], + [ 0.018292, 0.0064826 ], + [ inf, inf, inf, inf ], + [ 1008, 927, 1127, 1046 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1068, 987 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (228): { + 461, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049901, + [ 88.1483, 67.6397, -14.7746 ], + [ 7.69127, 73.8404, -1.52458 ], + [ 0.0183033, 0.00648837 ], + [ inf, inf, inf, inf ], + [ 1008, 928, 1127, 1047 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1068, 988 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (229): { + 462, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049775, + [ 88.4673, 67.8844, -14.8384 ], + [ 7.69373, 73.8362, -1.52468 ], + [ 0.0183084, 0.00649102 ], + [ inf, inf, inf, inf ], + [ 1009, 929, 1128, 1048 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1069, 989 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (230): { + 463, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049917, + [ 88.7709, 68.1174, -14.8991 ], + [ 7.69531, 73.8321, -1.52478 ], + [ 0.0183178, 0.00649185 ], + [ inf, inf, inf, inf ], + [ 1009, 929, 1128, 1048 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1069, 989 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (231): { + 464, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 89.1343, 68.3962, -14.971 ], + [ 7.69666, 73.828, -1.52501 ], + [ 0.0183294, 0.0064983 ], + [ inf, inf, inf, inf ], + [ 1009, 930, 1128, 1049 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1069, 990 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (232): { + 465, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 89.6576, 68.7977, -15.0731 ], + [ 7.69738, 73.8239, -1.52557 ], + [ 0.0183347, 0.00650116 ], + [ inf, inf, inf, inf ], + [ 1010, 931, 1129, 1050 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 991 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (233): { + 466, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 90.0696, 69.1139, -15.155 ], + [ 7.70064, 73.8196, -1.52579 ], + [ 0.0183441, 0.00650212 ], + [ inf, inf, inf, inf ], + [ 1010, 931, 1129, 1050 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 991 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (234): { + 467, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049882, + [ 90.4505, 69.4062, -15.2311 ], + [ 7.70464, 73.8152, -1.52591 ], + [ 0.0183484, 0.00650221 ], + [ inf, inf, inf, inf ], + [ 1010, 932, 1129, 1051 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 992 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (235): { + 468, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049804, + [ 90.8307, 69.6979, -15.3071 ], + [ 7.70796, 73.8111, -1.52572 ], + [ 0.0183573, 0.00650195 ], + [ inf, inf, inf, inf ], + [ 1010, 932, 1129, 1051 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 992 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (236): { + 469, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 91.2111, 69.9898, -15.3832 ], + [ 7.71108, 73.8071, -1.52544 ], + [ 0.0183617, 0.00650798 ], + [ inf, inf, inf, inf ], + [ 1010, 933, 1129, 1052 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 993 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (237): { + 470, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 91.599, 70.2874, -15.4594 ], + [ 7.71464, 73.8039, -1.52545 ], + [ 0.0183707, 0.00651044 ], + [ inf, inf, inf, inf ], + [ 1010, 933, 1129, 1052 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 993 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (238): { + 471, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049861, + [ 91.9894, 70.587, -15.5356 ], + [ 7.71833, 73.8009, -1.52556 ], + [ 0.0183819, 0.00651121 ], + [ inf, inf, inf, inf ], + [ 1011, 934, 1130, 1053 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1071, 994 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (239): { + 472, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 92.3792, 70.8861, -15.6117 ], + [ 7.72334, 73.7979, -1.52455 ], + [ 0.0183872, 0.00651806 ], + [ inf, inf, inf, inf ], + [ 1011, 935, 1130, 1054 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1071, 995 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (240): { + 473, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049883, + [ 92.7694, 71.1855, -15.6878 ], + [ 7.72878, 73.795, -1.52319 ], + [ 0.0183966, 0.00652074 ], + [ inf, inf, inf, inf ], + [ 1011, 935, 1130, 1054 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1071, 995 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (241): { + 474, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049816, + [ 93.1519, 71.479, -15.7637 ], + [ 7.73282, 73.79, -1.52359 ], + [ 0.0184079, 0.00652144 ], + [ inf, inf, inf, inf ], + [ 1012, 936, 1131, 1055 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 996 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (242): { + 475, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049799, + [ 93.532, 71.7707, -15.8394 ], + [ 7.7364, 73.7844, -1.52455 ], + [ 0.018413, 0.00652198 ], + [ inf, inf, inf, inf ], + [ 1012, 937, 1131, 1056 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 997 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (243): { + 476, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049913, + [ 93.8886, 72.0444, -15.8717 ], + [ 7.73862, 73.7806, -1.52336 ], + [ 0.0184225, 0.00652197 ], + [ inf, inf, inf, inf ], + [ 1012, 937, 1131, 1056 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 997 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (244): { + 477, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 94.2366, 72.3114, -15.8891 ], + [ 7.74037, 73.7774, -1.52145 ], + [ 0.018434, 0.00652154 ], + [ inf, inf, inf, inf ], + [ 1012, 938, 1131, 1057 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 998 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (245): { + 478, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 94.613, 72.6002, -15.943 ], + [ 7.74021, 73.7734, -1.51696 ], + [ 0.0184462, 0.00652095 ], + [ inf, inf, inf, inf ], + [ 1012, 939, 1131, 1058 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 999 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (246): { + 479, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049818, + [ 95.0121, 72.9064, -16.026 ], + [ 7.73853, 73.7688, -1.5104 ], + [ 0.0184589, 0.00651988 ], + [ inf, inf, inf, inf ], + [ 1012, 940, 1131, 1059 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1000 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (247): { + 480, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 95.4043, 73.2074, -16.1033 ], + [ 7.74056, 73.7642, -1.50974 ], + [ 0.0184643, 0.00651928 ], + [ inf, inf, inf, inf ], + [ 1012, 941, 1131, 1060 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1001 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (248): { + 481, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04987, + [ 95.7942, 73.5066, -16.1786 ], + [ 7.74392, 73.7596, -1.5112 ], + [ 0.0184742, 0.00651834 ], + [ inf, inf, inf, inf ], + [ 1012, 941, 1131, 1060 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1001 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (249): { + 482, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049821, + [ 96.1262, 73.7613, -16.2427 ], + [ 7.7466, 73.7562, -1.51077 ], + [ 0.0184862, 0.00652369 ], + [ inf, inf, inf, inf ], + [ 1012, 942, 1131, 1061 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1002 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (250): { + 483, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049861, + [ 96.437, 73.9998, -16.3027 ], + [ 7.74903, 73.7531, -1.50962 ], + [ 0.0184916, 0.00652618 ], + [ inf, inf, inf, inf ], + [ 1012, 943, 1131, 1062 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1003 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (251): { + 484, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049809, + [ 96.7896, 74.2703, -16.3713 ], + [ 7.75197, 73.7497, -1.50887 ], + [ 0.0185013, 0.00652681 ], + [ inf, inf, inf, inf ], + [ 1012, 944, 1131, 1063 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1004 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (252): { + 485, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 97.3005, 74.6624, -16.4723 ], + [ 7.75682, 73.7446, -1.50956 ], + [ 0.0185125, 0.00652695 ], + [ inf, inf, inf, inf ], + [ 1013, 944, 1132, 1063 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1004 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (253): { + 486, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 97.7246, 74.9878, -16.5547 ], + [ 7.76157, 73.7401, -1.5083 ], + [ 0.0185245, 0.00652681 ], + [ inf, inf, inf, inf ], + [ 1013, 945, 1132, 1064 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1005 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (254): { + 487, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049835, + [ 98.1142, 75.2867, -16.6298 ], + [ 7.76629, 73.7359, -1.50625 ], + [ 0.0185369, 0.00652653 ], + [ inf, inf, inf, inf ], + [ 1013, 946, 1132, 1065 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1006 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (255): { + 488, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049815, + [ 98.4974, 75.5808, -16.7046 ], + [ 7.76904, 73.7331, -1.50297 ], + [ 0.0185426, 0.00652666 ], + [ inf, inf, inf, inf ], + [ 1013, 947, 1132, 1066 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1007 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (256): { + 489, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049874, + [ 98.8784, 75.8731, -16.7795 ], + [ 7.771, 73.7307, -1.49917 ], + [ 0.0185524, 0.00652629 ], + [ inf, inf, inf, inf ], + [ 1013, 948, 1132, 1067 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1008 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (257): { + 490, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 99.2655, 76.1702, -16.8542 ], + [ 7.77334, 73.7272, -1.49757 ], + [ 0.0185637, 0.00652584 ], + [ inf, inf, inf, inf ], + [ 1013, 948, 1132, 1067 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1008 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (258): { + 491, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04979, + [ 99.6549, 76.4689, -16.9289 ], + [ 7.77585, 73.7232, -1.49688 ], + [ 0.0185763, 0.00653148 ], + [ inf, inf, inf, inf ], + [ 1013, 949, 1132, 1068 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1009 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (259): { + 492, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 100.044, 76.7678, -17.0035 ], + [ 7.77855, 73.7191, -1.49634 ], + [ 0.0185891, 0.00653346 ], + [ inf, inf, inf, inf ], + [ 1013, 950, 1132, 1069 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1010 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (260): { + 493, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04992, + [ 100.435, 77.0672, -17.0782 ], + [ 7.78136, 73.715, -1.49585 ], + [ 0.0185949, 0.00653464 ], + [ inf, inf, inf, inf ], + [ 1014, 951, 1133, 1070 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1011 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (261): { + 494, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049855, + [ 100.825, 77.3666, -17.1529 ], + [ 7.78372, 73.7112, -1.49549 ], + [ 0.0186045, 0.00653511 ], + [ inf, inf, inf, inf ], + [ 1014, 952, 1133, 1071 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1012 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (262): { + 495, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04983, + [ 101.215, 77.666, -17.2276 ], + [ 7.78589, 73.7074, -1.4952 ], + [ 0.0186159, 0.00653505 ], + [ inf, inf, inf, inf ], + [ 1014, 952, 1133, 1071 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1012 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (263): { + 496, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049867, + [ 101.582, 77.9479, -17.2795 ], + [ 7.78935, 73.705, -1.49442 ], + [ 0.018628, 0.00653458 ], + [ inf, inf, inf, inf ], + [ 1014, 953, 1133, 1072 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1013 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (264): { + 497, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04982, + [ 101.939, 78.2213, -17.3209 ], + [ 7.79341, 73.7031, -1.49343 ], + [ 0.0186409, 0.00654027 ], + [ inf, inf, inf, inf ], + [ 1014, 954, 1133, 1073 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1014 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (265): { + 498, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 102.321, 78.5147, -17.3823 ], + [ 7.79602, 73.698, -1.49235 ], + [ 0.0186539, 0.00654234 ], + [ inf, inf, inf, inf ], + [ 1014, 955, 1133, 1074 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1015 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (266): { + 499, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049893, + [ 102.73, 78.8287, -17.4642 ], + [ 7.79716, 73.6894, -1.4912 ], + [ 0.01866, 0.00654976 ], + [ inf, inf, inf, inf ], + [ 1015, 956, 1134, 1075 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1075, 1016 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (267): { + 500, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049796, + [ 103.133, 79.1377, -17.5411 ], + [ 7.79948, 73.684, -1.49164 ], + [ 0.0186697, 0.00655296 ], + [ inf, inf, inf, inf ], + [ 1015, 957, 1134, 1076 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1075, 1017 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (268): { + 501, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 103.533, 79.4448, -17.6158 ], + [ 7.8024, 73.6801, -1.49286 ], + [ 0.0186811, 0.00655409 ], + [ inf, inf, inf, inf ], + [ 1016, 957, 1135, 1076 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1076, 1017 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (269): { + 502, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049797, + [ 103.873, 79.7054, -17.6799 ], + [ 7.80403, 73.6769, -1.49236 ], + [ 0.0186932, 0.00655424 ], + [ inf, inf, inf, inf ], + [ 1016, 958, 1135, 1077 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1076, 1018 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (270): { + 503, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 104.183, 79.9434, -17.739 ], + [ 7.80503, 73.674, -1.491 ], + [ 0.0187051, 0.00655393 ], + [ inf, inf, inf, inf ], + [ 1016, 959, 1135, 1078 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1076, 1019 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (271): { + 504, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049907, + [ 104.525, 80.206, -17.8042 ], + [ 7.80636, 73.6708, -1.48914 ], + [ 0.0187189, 0.0065599 ], + [ inf, inf, inf, inf ], + [ 1016, 960, 1135, 1079 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1076, 1020 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (272): { + 505, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 105.048, 80.6075, -17.9038 ], + [ 7.80961, 73.6659, -1.48444 ], + [ 0.0187316, 0.00656186 ], + [ inf, inf, inf, inf ], + [ 1017, 961, 1136, 1080 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1021 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (273): { + 506, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049781, + [ 105.478, 80.9373, -17.9866 ], + [ 7.81383, 73.6608, -1.48341 ], + [ 0.0187372, 0.0065629 ], + [ inf, inf, inf, inf ], + [ 1017, 962, 1136, 1081 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1022 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (274): { + 507, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 105.859, 81.2296, -18.0607 ], + [ 7.81859, 73.6556, -1.48434 ], + [ 0.0187468, 0.00656268 ], + [ inf, inf, inf, inf ], + [ 1017, 963, 1136, 1082 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1023 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (275): { + 508, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 106.246, 81.5261, -18.1347 ], + [ 7.82074, 73.6526, -1.48458 ], + [ 0.0187581, 0.00656231 ], + [ inf, inf, inf, inf ], + [ 1017, 963, 1136, 1082 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1023 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (276): { + 509, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04991, + [ 106.635, 81.8252, -18.2088 ], + [ 7.82149, 73.6508, -1.48444 ], + [ 0.0187702, 0.00656128 ], + [ inf, inf, inf, inf ], + [ 1017, 964, 1136, 1083 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1024 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (277): { + 510, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049857, + [ 107.031, 82.1289, -18.2829 ], + [ 7.82489, 73.6467, -1.48572 ], + [ 0.0187757, 0.00656079 ], + [ inf, inf, inf, inf ], + [ 1017, 965, 1136, 1084 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1025 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (278): { + 511, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049771, + [ 107.43, 82.4348, -18.3569 ], + [ 7.82978, 73.6414, -1.48777 ], + [ 0.0187852, 0.00656635 ], + [ inf, inf, inf, inf ], + [ 1017, 966, 1136, 1085 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1026 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (279): { + 512, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 107.817, 82.732, -18.4309 ], + [ 7.83246, 73.6371, -1.48681 ], + [ 0.0187963, 0.00656856 ], + [ inf, inf, inf, inf ], + [ 1017, 966, 1136, 1085 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1026 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (280): { + 513, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 108.198, 83.024, -18.505 ], + [ 7.83387, 73.6333, -1.48411 ], + [ 0.0188013, 0.00656963 ], + [ inf, inf, inf, inf ], + [ 1018, 967, 1137, 1086 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1027 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (281): { + 514, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 108.59, 83.3249, -18.579 ], + [ 7.83501, 73.6299, -1.48403 ], + [ 0.0188104, 0.00656975 ], + [ inf, inf, inf, inf ], + [ 1018, 967, 1137, 1086 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1027 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (282): { + 515, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049909, + [ 108.989, 83.6316, -18.653 ], + [ 7.83598, 73.6266, -1.48549 ], + [ 0.0188216, 0.00656934 ], + [ inf, inf, inf, inf ], + [ 1018, 968, 1137, 1087 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1028 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (283): { + 516, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 109.362, 83.9175, -18.7311 ], + [ 7.83825, 73.6236, -1.48324 ], + [ 0.0188268, 0.00657559 ], + [ inf, inf, inf, inf ], + [ 1018, 969, 1137, 1088 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1029 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (284): { + 517, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 109.719, 84.1911, -18.8115 ], + [ 7.84131, 73.6209, -1.47874 ], + [ 0.0188362, 0.00657785 ], + [ inf, inf, inf, inf ], + [ 1018, 969, 1137, 1088 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1029 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (285): { + 518, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 110.102, 84.4856, -18.8925 ], + [ 7.84429, 73.6177, -1.47762 ], + [ 0.0188471, 0.00657869 ], + [ inf, inf, inf, inf ], + [ 1019, 970, 1138, 1089 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1079, 1030 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (286): { + 519, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 110.523, 84.808, -18.9741 ], + [ 7.84719, 73.6138, -1.48097 ], + [ 0.018852, 0.00657906 ], + [ inf, inf, inf, inf ], + [ 1019, 971, 1138, 1090 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1079, 1031 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (287): { + 520, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049854, + [ 110.924, 85.1163, -19.051 ], + [ 7.85028, 73.6106, -1.47984 ], + [ 0.018862, 0.00658525 ], + [ inf, inf, inf, inf ], + [ 1019, 971, 1138, 1090 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1079, 1031 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (288): { + 521, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 111.314, 85.4156, -19.1248 ], + [ 7.8535, 73.6077, -1.47587 ], + [ 0.0188733, 0.00658752 ], + [ inf, inf, inf, inf ], + [ 1019, 972, 1138, 1091 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1079, 1032 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (289): { + 522, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04981, + [ 111.66, 85.681, -19.1893 ], + [ 7.85626, 73.6052, -1.47505 ], + [ 0.0188783, 0.00658865 ], + [ inf, inf, inf, inf ], + [ 1020, 973, 1139, 1092 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1033 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (290): { + 523, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 111.978, 85.9247, -19.2479 ], + [ 7.85873, 73.603, -1.47625 ], + [ 0.0188877, 0.00658862 ], + [ inf, inf, inf, inf ], + [ 1020, 973, 1139, 1092 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1033 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (291): { + 524, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049866, + [ 112.313, 86.1821, -19.31 ], + [ 7.86135, 73.6004, -1.47722 ], + [ 0.018899, 0.0065884 ], + [ inf, inf, inf, inf ], + [ 1020, 974, 1139, 1093 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1034 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (292): { + 525, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049834, + [ 112.837, 86.5839, -19.4089 ], + [ 7.86566, 73.5944, -1.47564 ], + [ 0.0189042, 0.00658814 ], + [ inf, inf, inf, inf ], + [ 1020, 975, 1139, 1094 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1035 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (293): { + 526, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049874, + [ 113.282, 86.9255, -19.4929 ], + [ 7.86887, 73.5895, -1.47515 ], + [ 0.0189136, 0.00658751 ], + [ inf, inf, inf, inf ], + [ 1020, 975, 1139, 1094 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1035 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (294): { + 527, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049807, + [ 113.672, 87.225, -19.5666 ], + [ 7.87133, 73.5855, -1.4754 ], + [ 0.0189253, 0.00659295 ], + [ inf, inf, inf, inf ], + [ 1020, 976, 1139, 1095 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1036 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (295): { + 528, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049878, + [ 114.068, 87.5285, -19.6402 ], + [ 7.87355, 73.5819, -1.47485 ], + [ 0.0189306, 0.00659548 ], + [ inf, inf, inf, inf ], + [ 1020, 977, 1139, 1096 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1037 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (296): { + 529, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049831, + [ 114.467, 87.8343, -19.7136 ], + [ 7.87562, 73.5784, -1.47374 ], + [ 0.0189401, 0.00659599 ], + [ inf, inf, inf, inf ], + [ 1021, 977, 1140, 1096 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1037 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (297): { + 530, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049825, + [ 114.86, 88.136, -19.7869 ], + [ 7.87826, 73.5753, -1.47248 ], + [ 0.0189513, 0.00659568 ], + [ inf, inf, inf, inf ], + [ 1021, 978, 1140, 1097 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1038 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (298): { + 531, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 115.249, 88.4349, -19.8603 ], + [ 7.88133, 73.5722, -1.47111 ], + [ 0.0189561, 0.00659569 ], + [ inf, inf, inf, inf ], + [ 1021, 979, 1140, 1098 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1039 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (299): { + 532, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 115.639, 88.734, -19.9335 ], + [ 7.88436, 73.5685, -1.46781 ], + [ 0.0189656, 0.00659521 ], + [ inf, inf, inf, inf ], + [ 1021, 979, 1140, 1098 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1039 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (300): { + 533, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 116.029, 89.0333, -20.0067 ], + [ 7.88737, 73.5642, -1.46307 ], + [ 0.0189698, 0.00659522 ], + [ inf, inf, inf, inf ], + [ 1021, 980, 1140, 1099 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1040 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (301): { + 534, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049879, + [ 116.419, 89.3325, -20.0798 ], + [ 7.89071, 73.5607, -1.46032 ], + [ 0.0189786, 0.00659467 ], + [ inf, inf, inf, inf ], + [ 1021, 980, 1140, 1099 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1040 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (302): { + 535, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 116.809, 89.6314, -20.1526 ], + [ 7.8943, 73.5577, -1.45907 ], + [ 0.0189897, 0.00659389 ], + [ inf, inf, inf, inf ], + [ 1021, 981, 1140, 1100 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1041 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (303): { + 536, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049819, + [ 117.184, 89.9197, -20.219 ], + [ 7.89708, 73.5539, -1.45893 ], + [ 0.0189945, 0.00659328 ], + [ inf, inf, inf, inf ], + [ 1021, 982, 1140, 1101 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1042 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (304): { + 537, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04987, + [ 117.55, 90.2, -20.2807 ], + [ 7.89922, 73.5495, -1.45968 ], + [ 0.0190037, 0.00659236 ], + [ inf, inf, inf, inf ], + [ 1021, 982, 1140, 1101 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1042 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (305): { + 538, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049814, + [ 117.942, 90.5012, -20.3491 ], + [ 7.90113, 73.5456, -1.45946 ], + [ 0.0190148, 0.00659127 ], + [ inf, inf, inf, inf ], + [ 1021, 983, 1140, 1102 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1043 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (306): { + 539, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 118.383, 90.8392, -20.4294 ], + [ 7.90265, 73.5426, -1.45761 ], + [ 0.01902, 0.00659089 ], + [ inf, inf, inf, inf ], + [ 1020, 984, 1139, 1103 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1044 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (307): { + 540, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 118.795, 91.1559, -20.5054 ], + [ 7.90471, 73.5399, -1.45545 ], + [ 0.0190292, 0.0065903 ], + [ inf, inf, inf, inf ], + [ 1020, 984, 1139, 1103 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1044 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (308): { + 541, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049882, + [ 119.186, 91.4554, -20.5781 ], + [ 7.90723, 73.5373, -1.45303 ], + [ 0.0190411, 0.00659599 ], + [ inf, inf, inf, inf ], + [ 1021, 985, 1140, 1104 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1045 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (309): { + 542, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049751, + [ 119.532, 91.7209, -20.6424 ], + [ 7.90925, 73.5349, -1.45123 ], + [ 0.0190534, 0.00659804 ], + [ inf, inf, inf, inf ], + [ 1021, 986, 1140, 1105 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1046 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (310): { + 543, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 119.842, 91.959, -20.7 ], + [ 7.91088, 73.5325, -1.44993 ], + [ 0.0190589, 0.00659935 ], + [ inf, inf, inf, inf ], + [ 1021, 987, 1140, 1106 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1047 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (311): { + 544, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049899, + [ 120.158, 92.2015, -20.7587 ], + [ 7.91255, 73.53, -1.44869 ], + [ 0.0190688, 0.00659948 ], + [ inf, inf, inf, inf ], + [ 1021, 987, 1140, 1106 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1047 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (312): { + 545, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049774, + [ 120.693, 92.6121, -20.8556 ], + [ 7.91598, 73.5244, -1.44968 ], + [ 0.0190731, 0.00659992 ], + [ inf, inf, inf, inf ], + [ 1022, 988, 1141, 1107 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1048 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (313): { + 546, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049857, + [ 121.157, 92.9681, -20.9397 ], + [ 7.91942, 73.5202, -1.44971 ], + [ 0.0190821, 0.00660006 ], + [ inf, inf, inf, inf ], + [ 1022, 989, 1141, 1108 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1049 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (314): { + 547, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 121.557, 93.2747, -21.0121 ], + [ 7.92287, 73.5174, -1.44887 ], + [ 0.0190933, 0.00659955 ], + [ inf, inf, inf, inf ], + [ 1022, 989, 1141, 1108 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1049 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (315): { + 548, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049905, + [ 121.951, 93.5776, -21.0844 ], + [ 7.92569, 73.5146, -1.44777 ], + [ 0.0191052, 0.00659875 ], + [ inf, inf, inf, inf ], + [ 1022, 990, 1141, 1109 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1050 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (316): { + 549, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049781, + [ 122.34, 93.876, -21.1564 ], + [ 7.92793, 73.5119, -1.44644 ], + [ 0.0191178, 0.00659821 ], + [ inf, inf, inf, inf ], + [ 1022, 991, 1141, 1110 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1051 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (317): { + 550, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 122.735, 94.1787, -21.2285 ], + [ 7.92981, 73.5095, -1.44312 ], + [ 0.0191304, 0.00659734 ], + [ inf, inf, inf, inf ], + [ 1022, 992, 1141, 1111 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1052 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (318): { + 551, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 123.134, 94.4849, -21.3005 ], + [ 7.93135, 73.5073, -1.43794 ], + [ 0.0191362, 0.00659683 ], + [ inf, inf, inf, inf ], + [ 1022, 993, 1141, 1112 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1053 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (319): { + 552, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 123.528, 94.7876, -21.3724 ], + [ 7.9331, 73.5044, -1.43588 ], + [ 0.0191459, 0.00659582 ], + [ inf, inf, inf, inf ], + [ 1022, 994, 1141, 1113 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1054 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (320): { + 553, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049905, + [ 123.919, 95.0872, -21.4443 ], + [ 7.93506, 73.5009, -1.43682 ], + [ 0.0191573, 0.00659466 ], + [ inf, inf, inf, inf ], + [ 1022, 994, 1141, 1113 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1054 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (321): { + 554, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 124.314, 95.39, -21.5161 ], + [ 7.93652, 73.4981, -1.43594 ], + [ 0.0191625, 0.00659412 ], + [ inf, inf, inf, inf ], + [ 1022, 995, 1141, 1114 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1055 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (322): { + 555, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 124.713, 95.6963, -21.5877 ], + [ 7.9375, 73.4962, -1.43329 ], + [ 0.0191718, 0.00659327 ], + [ inf, inf, inf, inf ], + [ 1022, 996, 1141, 1115 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1056 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (323): { + 556, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049777, + [ 125.094, 95.9891, -21.6397 ], + [ 7.93917, 73.4935, -1.432 ], + [ 0.0191828, 0.00659259 ], + [ inf, inf, inf, inf ], + [ 1022, 996, 1141, 1115 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1056 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (324): { + 557, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049909, + [ 125.46, 96.2696, -21.6721 ], + [ 7.94154, 73.4901, -1.43206 ], + [ 0.0191947, 0.00659207 ], + [ inf, inf, inf, inf ], + [ 1022, 997, 1141, 1116 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1057 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (325): { + 558, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049807, + [ 125.835, 96.5576, -21.7185 ], + [ 7.94323, 73.4868, -1.43016 ], + [ 0.0192071, 0.00659127 ], + [ inf, inf, inf, inf ], + [ 1022, 998, 1141, 1117 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1058 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (326): { + 559, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049887, + [ 126.235, 96.8645, -21.7969 ], + [ 7.94342, 73.4837, -1.42383 ], + [ 0.0192125, 0.00659107 ], + [ inf, inf, inf, inf ], + [ 1022, 999, 1141, 1118 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1059 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (327): { + 560, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 126.633, 97.1699, -21.8713 ], + [ 7.94461, 73.4809, -1.41961 ], + [ 0.0192222, 0.00659019 ], + [ inf, inf, inf, inf ], + [ 1022, 1000, 1141, 1119 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1060 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (328): { + 561, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 127.03, 97.4742, -21.9415 ], + [ 7.94685, 73.4783, -1.41761 ], + [ 0.0192339, 0.00659554 ], + [ inf, inf, inf, inf ], + [ 1022, 1000, 1141, 1119 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1060 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (329): { + 562, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04978, + [ 127.39, 97.7506, -22.0053 ], + [ 7.94816, 73.4758, -1.4159 ], + [ 0.019239, 0.00659844 ], + [ inf, inf, inf, inf ], + [ 1022, 1001, 1141, 1120 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1061 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (330): { + 563, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04991, + [ 127.71, 97.9965, -22.062 ], + [ 7.94843, 73.4734, -1.41453 ], + [ 0.0192485, 0.00659947 ], + [ inf, inf, inf, inf ], + [ 1022, 1002, 1141, 1121 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1062 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (331): { + 564, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 128.03, 98.2421, -22.1186 ], + [ 7.9487, 73.4709, -1.41315 ], + [ 0.0192592, 0.00660006 ], + [ inf, inf, inf, inf ], + [ 1023, 1002, 1142, 1121 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1062 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (332): { + 565, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 128.558, 98.6469, -22.2116 ], + [ 7.95115, 73.4679, -1.41054 ], + [ 0.019265, 0.00659959 ], + [ inf, inf, inf, inf ], + [ 1023, 1003, 1142, 1122 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1063 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (333): { + 566, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 129.024, 99.0041, -22.2944 ], + [ 7.95311, 73.4656, -1.40822 ], + [ 0.0192739, 0.0065992 ], + [ inf, inf, inf, inf ], + [ 1023, 1004, 1142, 1123 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1064 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (334): { + 567, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 129.411, 99.3012, -22.3641 ], + [ 7.95442, 73.4641, -1.40631 ], + [ 0.019285, 0.00659851 ], + [ inf, inf, inf, inf ], + [ 1023, 1004, 1142, 1123 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1064 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (335): { + 568, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 129.804, 99.6033, -22.4343 ], + [ 7.95606, 73.4618, -1.40638 ], + [ 0.0192967, 0.00659761 ], + [ inf, inf, inf, inf ], + [ 1023, 1005, 1142, 1124 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1065 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (336): { + 569, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 130.206, 99.9113, -22.505 ], + [ 7.9581, 73.4585, -1.40887 ], + [ 0.0193021, 0.0065973 ], + [ inf, inf, inf, inf ], + [ 1023, 1006, 1142, 1125 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1066 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (337): { + 570, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049875, + [ 130.606, 100.219, -22.5756 ], + [ 7.96002, 73.4549, -1.40915 ], + [ 0.0193117, 0.00659669 ], + [ inf, inf, inf, inf ], + [ 1023, 1006, 1142, 1125 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1066 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (338): { + 571, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 131.006, 100.525, -22.6458 ], + [ 7.9618, 73.4512, -1.40677 ], + [ 0.0193231, 0.00659589 ], + [ inf, inf, inf, inf ], + [ 1023, 1007, 1142, 1126 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1067 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (339): { + 572, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04982, + [ 131.4, 100.828, -22.7159 ], + [ 7.96412, 73.4486, -1.40403 ], + [ 0.0193352, 0.00659477 ], + [ inf, inf, inf, inf ], + [ 1023, 1008, 1142, 1127 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1068 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (340): { + 573, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 131.79, 101.127, -22.7858 ], + [ 7.96711, 73.4474, -1.40083 ], + [ 0.0193479, 0.00659364 ], + [ inf, inf, inf, inf ], + [ 1023, 1009, 1142, 1128 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1069 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (341): { + 574, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 132.184, 101.429, -22.8556 ], + [ 7.96899, 73.4451, -1.39852 ], + [ 0.0193536, 0.006593 ], + [ inf, inf, inf, inf ], + [ 1023, 1010, 1142, 1129 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1070 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (342): { + 575, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049852, + [ 132.583, 101.735, -22.9253 ], + [ 7.96948, 73.4416, -1.39732 ], + [ 0.0193633, 0.0065923 ], + [ inf, inf, inf, inf ], + [ 1022, 1011, 1141, 1130 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1071 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (343): { + 576, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 132.967, 102.03, -22.997 ], + [ 7.96934, 73.439, -1.39592 ], + [ 0.0193747, 0.00659159 ], + [ inf, inf, inf, inf ], + [ 1023, 1011, 1142, 1130 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1071 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (344): { + 577, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049848, + [ 133.333, 102.311, -23.0711 ], + [ 7.96839, 73.4376, -1.39424 ], + [ 0.019387, 0.00659095 ], + [ inf, inf, inf, inf ], + [ 1023, 1012, 1142, 1131 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1072 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (345): { + 578, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 133.706, 102.597, -23.1459 ], + [ 7.96689, 73.4361, -1.39296 ], + [ 0.0193925, 0.00659067 ], + [ inf, inf, inf, inf ], + [ 1023, 1013, 1142, 1132 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1073 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (346): { + 579, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 134.106, 102.904, -23.2227 ], + [ 7.96369, 73.4345, -1.39291 ], + [ 0.0194021, 0.00658979 ], + [ inf, inf, inf, inf ], + [ 1023, 1014, 1142, 1133 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1074 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (347): { + 580, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 134.506, 103.211, -23.2963 ], + [ 7.9623, 73.4325, -1.39312 ], + [ 0.0194131, 0.00658905 ], + [ inf, inf, inf, inf ], + [ 1023, 1014, 1142, 1133 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1074 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (348): { + 581, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 134.904, 103.517, -23.3656 ], + [ 7.96333, 73.4298, -1.39367 ], + [ 0.019425, 0.00658816 ], + [ inf, inf, inf, inf ], + [ 1022, 1015, 1141, 1134 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1075 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (349): { + 582, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049875, + [ 135.266, 103.794, -23.4291 ], + [ 7.96429, 73.4277, -1.39311 ], + [ 0.0194304, 0.00658797 ], + [ inf, inf, inf, inf ], + [ 1023, 1016, 1142, 1135 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1076 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (350): { + 583, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049827, + [ 135.577, 104.033, -23.4844 ], + [ 7.96518, 73.4262, -1.39103 ], + [ 0.0194399, 0.00658774 ], + [ inf, inf, inf, inf ], + [ 1023, 1017, 1142, 1136 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1077 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (351): { + 584, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04977, + [ 135.887, 104.271, -23.5396 ], + [ 7.96606, 73.4248, -1.38895 ], + [ 0.0194505, 0.00658761 ], + [ inf, inf, inf, inf ], + [ 1023, 1017, 1142, 1136 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1077 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (352): { + 585, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.0499, + [ 136.402, 104.666, -23.629 ], + [ 7.9682, 73.4221, -1.38716 ], + [ 0.0194635, 0.00658556 ], + [ inf, inf, inf, inf ], + [ 1022, 1018, 1141, 1137 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1078 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (353): { + 586, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 136.886, 105.037, -23.712 ], + [ 7.97003, 73.4197, -1.38324 ], + [ 0.0194686, 0.00658545 ], + [ inf, inf, inf, inf ], + [ 1023, 1019, 1142, 1138 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1079 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (354): { + 587, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 137.294, 105.35, -23.7809 ], + [ 7.97122, 73.418, -1.37617 ], + [ 0.0194778, 0.00658485 ], + [ inf, inf, inf, inf ], + [ 1023, 1020, 1142, 1139 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1080 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (355): { + 588, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 137.695, 105.658, -23.8494 ], + [ 7.97161, 73.4158, -1.37019 ], + [ 0.0194888, 0.00658416 ], + [ inf, inf, inf, inf ], + [ 1023, 1020, 1142, 1139 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1080 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (356): { + 589, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 138.085, 105.957, -23.9176 ], + [ 7.97084, 73.413, -1.36581 ], + [ 0.0194936, 0.00658399 ], + [ inf, inf, inf, inf ], + [ 1023, 1021, 1142, 1140 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1081 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (357): { + 590, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04986, + [ 138.478, 106.259, -23.9856 ], + [ 7.97003, 73.4107, -1.35875 ], + [ 0.0195025, 0.00658335 ], + [ inf, inf, inf, inf ], + [ 1023, 1021, 1142, 1140 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1081 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (358): { + 591, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049872, + [ 138.878, 106.565, -24.0532 ], + [ 7.96917, 73.4094, -1.34763 ], + [ 0.0195133, 0.00658262 ], + [ inf, inf, inf, inf ], + [ 1023, 1022, 1142, 1141 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1083, 1082 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (359): { + 592, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049799, + [ 139.277, 106.871, -24.1203 ], + [ 7.96831, 73.4085, -1.33759 ], + [ 0.0195179, 0.00658184 ], + [ inf, inf, inf, inf ], + [ 1022, 1023, 1141, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (360): { + 593, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049881, + [ 139.676, 107.178, -24.1868 ], + [ 7.96746, 73.4083, -1.32921 ], + [ 0.0195195, 0.00658143 ], + [ inf, inf, inf, inf ], + [ 1022, 1023, 1141, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (361): { + 594, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049795, + [ 140.071, 107.481, -24.2527 ], + [ 7.96765, 73.4072, -1.31742 ], + [ 0.0195267, 0.00658067 ], + [ inf, inf, inf, inf ], + [ 1022, 1023, 1141, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (362): { + 595, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049871, + [ 140.461, 107.78, -24.318 ], + [ 7.96953, 73.4047, -1.30015 ], + [ 0.0195297, 0.00658009 ], + [ inf, inf, inf, inf ], + [ 1022, 1024, 1141, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (363): { + 596, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 140.842, 108.072, -24.3821 ], + [ 7.9704, 73.4036, -1.284 ], + [ 0.0195377, 0.00657926 ], + [ inf, inf, inf, inf ], + [ 1022, 1024, 1141, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (364): { + 597, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 141.207, 108.352, -24.4444 ], + [ 7.96963, 73.4044, -1.26969 ], + [ 0.019541, 0.00657871 ], + [ inf, inf, inf, inf ], + [ 1022, 1024, 1141, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (365): { + 598, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 141.581, 108.64, -24.5079 ], + [ 7.96884, 73.4049, -1.25575 ], + [ 0.0195418, 0.00657217 ], + [ inf, inf, inf, inf ], + [ 1022, 1025, 1141, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (366): { + 599, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04987, + [ 142.002, 108.962, -24.5767 ], + [ 7.96797, 73.4036, -1.24339 ], + [ 0.0195417, 0.00656917 ], + [ inf, inf, inf, inf ], + [ 1022, 1025, 1141, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1082, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (367): { + 600, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049815, + [ 142.414, 109.279, -24.6426 ], + [ 7.96668, 73.4028, -1.22984 ], + [ 0.0195417, 0.00656773 ], + [ inf, inf, inf, inf ], + [ 1021, 1025, 1140, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (368): { + 601, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049816, + [ 142.813, 109.585, -24.7034 ], + [ 7.96465, 73.4026, -1.21418 ], + [ 0.019541, 0.00656074 ], + [ inf, inf, inf, inf ], + [ 1021, 1025, 1140, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (369): { + 602, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049811, + [ 143.183, 109.868, -24.7592 ], + [ 7.96337, 73.4031, -1.19707 ], + [ 0.0195406, 0.00655734 ], + [ inf, inf, inf, inf ], + [ 1020, 1025, 1139, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (370): { + 603, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049905, + [ 143.501, 110.113, -24.8063 ], + [ 7.96339, 73.4045, -1.17733 ], + [ 0.01954, 0.00654928 ], + [ inf, inf, inf, inf ], + [ 1020, 1025, 1139, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (371): { + 604, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 143.82, 110.357, -24.8534 ], + [ 7.96342, 73.406, -1.15761 ], + [ 0.0195425, 0.00654791 ], + [ inf, inf, inf, inf ], + [ 1020, 1025, 1139, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1080, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (372): { + 605, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 144.31, 110.734, -24.9246 ], + [ 7.96428, 73.4068, -1.12626 ], + [ 0.0195357, 0.00653458 ], + [ inf, inf, inf, inf ], + [ 1018, 1024, 1137, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (373): { + 606, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 144.793, 111.105, -24.9927 ], + [ 7.96507, 73.4075, -1.09436 ], + [ 0.0195355, 0.00652509 ], + [ inf, inf, inf, inf ], + [ 1018, 1024, 1137, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (374): { + 607, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 145.202, 111.418, -25.0464 ], + [ 7.96545, 73.4087, -1.06548 ], + [ 0.019535, 0.00651388 ], + [ inf, inf, inf, inf ], + [ 1017, 1024, 1136, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1077, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (375): { + 608, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049871, + [ 145.604, 111.726, -25.0991 ], + [ 7.9659, 73.4105, -1.03684 ], + [ 0.0195342, 0.00650219 ], + [ inf, inf, inf, inf ], + [ 1016, 1024, 1135, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1076, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (376): { + 609, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04975, + [ 145.993, 112.025, -25.1499 ], + [ 7.96647, 73.4138, -1.00877 ], + [ 0.0195336, 0.00649 ], + [ inf, inf, inf, inf ], + [ 1015, 1024, 1134, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1075, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (377): { + 610, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049935, + [ 146.387, 112.327, -25.1997 ], + [ 7.96824, 73.4167, -0.977853 ], + [ 0.0195334, 0.00648425 ], + [ inf, inf, inf, inf ], + [ 1014, 1024, 1133, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1074, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (378): { + 611, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049856, + [ 146.786, 112.633, -25.2473 ], + [ 7.97238, 73.4189, -0.941537 ], + [ 0.0195261, 0.00647577 ], + [ inf, inf, inf, inf ], + [ 1013, 1024, 1132, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1073, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (379): { + 612, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049817, + [ 147.185, 112.94, -25.2937 ], + [ 7.97513, 73.4218, -0.905121 ], + [ 0.0195227, 0.00646558 ], + [ inf, inf, inf, inf ], + [ 1012, 1024, 1131, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (380): { + 613, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049768, + [ 147.583, 113.245, -25.3375 ], + [ 7.97503, 73.4262, -0.868478 ], + [ 0.019521, 0.00645487 ], + [ inf, inf, inf, inf ], + [ 1011, 1024, 1130, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1071, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (381): { + 614, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 147.982, 113.552, -25.3802 ], + [ 7.97543, 73.4308, -0.830631 ], + [ 0.0195201, 0.00644374 ], + [ inf, inf, inf, inf ], + [ 1010, 1024, 1129, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1070, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (382): { + 615, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049894, + [ 148.382, 113.858, -25.4204 ], + [ 7.97688, 73.4362, -0.790323 ], + [ 0.0195193, 0.0064322 ], + [ inf, inf, inf, inf ], + [ 1009, 1023, 1128, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1069, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (383): { + 616, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049801, + [ 148.77, 114.156, -25.4656 ], + [ 7.97845, 73.4416, -0.751014 ], + [ 0.0195187, 0.00642059 ], + [ inf, inf, inf, inf ], + [ 1008, 1024, 1127, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1068, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (384): { + 617, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049886, + [ 149.136, 114.437, -25.5216 ], + [ 7.98031, 73.4472, -0.713648 ], + [ 0.0195181, 0.00640919 ], + [ inf, inf, inf, inf ], + [ 1007, 1024, 1126, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1067, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (385): { + 618, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 149.508, 114.722, -25.5749 ], + [ 7.98216, 73.4528, -0.674951 ], + [ 0.0195105, 0.00639851 ], + [ inf, inf, inf, inf ], + [ 1007, 1023, 1126, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1067, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (386): { + 619, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 149.927, 115.044, -25.6097 ], + [ 7.98396, 73.4586, -0.626709 ], + [ 0.0195139, 0.00638671 ], + [ inf, inf, inf, inf ], + [ 1006, 1023, 1125, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1066, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (387): { + 620, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 150.338, 115.359, -25.6422 ], + [ 7.985, 73.4651, -0.57895 ], + [ 0.0195152, 0.00637508 ], + [ inf, inf, inf, inf ], + [ 1004, 1023, 1123, 1142 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1064, 1083 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (388): { + 621, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049854, + [ 150.727, 115.658, -25.6695 ], + [ 7.98426, 73.4734, -0.532255 ], + [ 0.0195155, 0.00636346 ], + [ inf, inf, inf, inf ], + [ 1003, 1024, 1122, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1063, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (389): { + 622, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049852, + [ 151.096, 115.941, -25.694 ], + [ 7.9843, 73.4812, -0.489377 ], + [ 0.0195154, 0.00635189 ], + [ inf, inf, inf, inf ], + [ 1002, 1024, 1121, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1062, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (390): { + 623, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 151.415, 116.185, -25.7122 ], + [ 7.98617, 73.488, -0.455514 ], + [ 0.0195149, 0.00634033 ], + [ inf, inf, inf, inf ], + [ 1001, 1024, 1120, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (391): { + 624, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049814, + [ 151.733, 116.429, -25.7304 ], + [ 7.98803, 73.4949, -0.421673 ], + [ 0.0195171, 0.00633437 ], + [ inf, inf, inf, inf ], + [ 1001, 1024, 1120, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (392): { + 625, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049893, + [ 152.221, 116.804, -25.7535 ], + [ 7.98843, 73.5063, -0.361914 ], + [ 0.0195119, 0.00630819 ], + [ inf, inf, inf, inf ], + [ 999, 1024, 1118, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (393): { + 626, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049827, + [ 152.716, 117.184, -25.7748 ], + [ 7.98791, 73.5181, -0.300997 ], + [ 0.0195119, 0.00629561 ], + [ inf, inf, inf, inf ], + [ 998, 1024, 1117, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (394): { + 627, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049787, + [ 153.115, 117.49, -25.7882 ], + [ 7.98609, 73.5276, -0.255109 ], + [ 0.0195187, 0.00628313 ], + [ inf, inf, inf, inf ], + [ 997, 1024, 1116, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1057, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (395): { + 628, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.0499, + [ 153.515, 117.797, -25.8004 ], + [ 7.98488, 73.5381, -0.208048 ], + [ 0.0195214, 0.00627078 ], + [ inf, inf, inf, inf ], + [ 996, 1024, 1115, 1143 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 1084 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (396): { + 629, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 153.914, 118.103, -25.8091 ], + [ 7.98523, 73.5507, -0.158285 ], + [ 0.0195223, 0.00625861 ], + [ inf, inf, inf, inf ], + [ 994, 1025, 1113, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1054, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (397): { + 630, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049848, + [ 154.314, 118.41, -25.8165 ], + [ 7.98547, 73.5628, -0.109216 ], + [ 0.0195292, 0.00624651 ], + [ inf, inf, inf, inf ], + [ 993, 1025, 1112, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1053, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (398): { + 631, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 154.713, 118.716, -25.8204 ], + [ 7.98541, 73.5736, -0.0620129 ], + [ 0.0195323, 0.00623486 ], + [ inf, inf, inf, inf ], + [ 992, 1025, 1111, 1144 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 1085 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (399): { + 632, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 155.112, 119.022, -25.8229 ], + [ 7.98572, 73.5846, -0.013998 ], + [ 0.0195336, 0.00622371 ], + [ inf, inf, inf, inf ], + [ 992, 1026, 1111, 1145 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 1086 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (400): { + 633, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 155.511, 119.328, -25.8218 ], + [ 7.98699, 73.5963, 0.0362627 ], + [ 0.0195341, 0.00621243 ], + [ inf, inf, inf, inf ], + [ 991, 1026, 1110, 1145 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1051, 1086 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (401): { + 634, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 155.91, 119.634, -25.8194 ], + [ 7.98721, 73.6091, 0.0862602 ], + [ 0.019541, 0.0062006 ], + [ inf, inf, inf, inf ], + [ 990, 1026, 1109, 1145 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 1086 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (402): { + 635, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049852, + [ 156.309, 119.941, -25.8134 ], + [ 7.98446, 73.6248, 0.135539 ], + [ 0.0195438, 0.00618891 ], + [ inf, inf, inf, inf ], + [ 989, 1027, 1108, 1146 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1049, 1087 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (403): { + 636, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049835, + [ 156.697, 120.238, -25.8008 ], + [ 7.98246, 73.6394, 0.183778 ], + [ 0.0195448, 0.00618372 ], + [ inf, inf, inf, inf ], + [ 988, 1027, 1107, 1146 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1048, 1087 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (404): { + 637, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 157.054, 120.512, -25.7692 ], + [ 7.9827, 73.6508, 0.22903 ], + [ 0.0195448, 0.00617518 ], + [ inf, inf, inf, inf ], + [ 987, 1027, 1106, 1146 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1047, 1087 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (405): { + 638, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049848, + [ 157.413, 120.788, -25.7384 ], + [ 7.98261, 73.6628, 0.275046 ], + [ 0.0195517, 0.00616514 ], + [ inf, inf, inf, inf ], + [ 987, 1027, 1106, 1146 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1047, 1087 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (406): { + 639, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049869, + [ 157.823, 121.103, -25.7206 ], + [ 7.97742, 73.6829, 0.332998 ], + [ 0.019554, 0.00615375 ], + [ inf, inf, inf, inf ], + [ 986, 1028, 1105, 1147 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1046, 1088 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (407): { + 640, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049753, + [ 158.23, 121.414, -25.702 ], + [ 7.97269, 73.7021, 0.388662 ], + [ 0.019555, 0.00614906 ], + [ inf, inf, inf, inf ], + [ 985, 1028, 1104, 1147 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1045, 1088 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (408): { + 641, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049923, + [ 158.63, 121.721, -25.6808 ], + [ 7.96932, 73.7189, 0.437742 ], + [ 0.019562, 0.00614002 ], + [ inf, inf, inf, inf ], + [ 984, 1028, 1103, 1147 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1044, 1088 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (409): { + 642, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.0499, + [ 159.01, 122.013, -25.6597 ], + [ 7.96668, 73.7349, 0.484846 ], + [ 0.0195647, 0.00612971 ], + [ inf, inf, inf, inf ], + [ 984, 1029, 1103, 1148 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1044, 1089 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (410): { + 643, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049788, + [ 159.327, 122.257, -25.6389 ], + [ 7.96633, 73.7484, 0.525585 ], + [ 0.019566, 0.00612521 ], + [ inf, inf, inf, inf ], + [ 983, 1029, 1102, 1148 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1043, 1089 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (411): { + 644, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 159.645, 122.5, -25.618 ], + [ 7.96598, 73.7618, 0.566372 ], + [ 0.0195752, 0.00612046 ], + [ inf, inf, inf, inf ], + [ 983, 1029, 1102, 1148 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1043, 1089 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (412): { + 645, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 160.12, 122.864, -25.5819 ], + [ 7.96549, 73.7806, 0.627506 ], + [ 0.019575, 0.00610406 ], + [ inf, inf, inf, inf ], + [ 981, 1029, 1100, 1148 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1041, 1089 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (413): { + 646, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 160.623, 123.251, -25.5411 ], + [ 7.96506, 73.8012, 0.692432 ], + [ 0.0195766, 0.0060942 ], + [ inf, inf, inf, inf ], + [ 981, 1030, 1100, 1149 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1041, 1090 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (414): { + 647, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049807, + [ 161.013, 123.55, -25.5048 ], + [ 7.96509, 73.8205, 0.742657 ], + [ 0.0195769, 0.00608288 ], + [ inf, inf, inf, inf ], + [ 980, 1030, 1099, 1149 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1040, 1090 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (415): { + 648, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04988, + [ 161.405, 123.851, -25.4673 ], + [ 7.96462, 73.8397, 0.79251 ], + [ 0.0195834, 0.00607117 ], + [ inf, inf, inf, inf ], + [ 979, 1030, 1098, 1149 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1039, 1090 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (416): { + 649, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049898, + [ 161.805, 124.157, -25.4259 ], + [ 7.96234, 73.8585, 0.840783 ], + [ 0.019586, 0.00605919 ], + [ inf, inf, inf, inf ], + [ 978, 1031, 1097, 1150 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1038, 1091 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (417): { + 650, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049785, + [ 162.203, 124.463, -25.3836 ], + [ 7.9601, 73.8771, 0.889702 ], + [ 0.0195943, 0.00605347 ], + [ inf, inf, inf, inf ], + [ 977, 1031, 1096, 1150 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1037, 1091 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (418): { + 651, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 162.602, 124.769, -25.3372 ], + [ 7.95804, 73.8949, 0.941487 ], + [ 0.0195976, 0.00604426 ], + [ inf, inf, inf, inf ], + [ 976, 1031, 1095, 1150 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1036, 1091 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (419): { + 652, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 163, 125.074, -25.2897 ], + [ 7.95619, 73.9133, 0.993474 ], + [ 0.0195989, 0.00603387 ], + [ inf, inf, inf, inf ], + [ 976, 1032, 1095, 1151 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1036, 1092 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (420): { + 653, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 163.389, 125.373, -25.2381 ], + [ 7.95514, 73.9337, 1.04617 ], + [ 0.0195989, 0.00602256 ], + [ inf, inf, inf, inf ], + [ 975, 1032, 1094, 1151 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1035, 1092 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (421): { + 654, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 163.783, 125.675, -25.1854 ], + [ 7.95405, 73.9545, 1.09844 ], + [ 0.0195986, 0.00601123 ], + [ inf, inf, inf, inf ], + [ 974, 1032, 1093, 1151 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1034, 1092 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (422): { + 655, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049817, + [ 164.191, 125.988, -25.1287 ], + [ 7.95282, 73.9767, 1.14899 ], + [ 0.0196051, 0.00599925 ], + [ inf, inf, inf, inf ], + [ 973, 1032, 1092, 1151 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1033, 1092 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (423): { + 656, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049916, + [ 164.59, 126.294, -25.0664 ], + [ 7.95166, 73.9982, 1.19896 ], + [ 0.019608, 0.00599397 ], + [ inf, inf, inf, inf ], + [ 972, 1033, 1091, 1152 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 1093 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (424): { + 657, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049814, + [ 164.946, 126.568, -24.9813 ], + [ 7.95084, 74.0168, 1.24598 ], + [ 0.0196088, 0.00598516 ], + [ inf, inf, inf, inf ], + [ 971, 1033, 1090, 1152 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 1093 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (425): { + 658, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04986, + [ 165.302, 126.841, -24.8961 ], + [ 7.95002, 74.0354, 1.29305 ], + [ 0.0196162, 0.00597554 ], + [ inf, inf, inf, inf ], + [ 971, 1033, 1090, 1152 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1031, 1093 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (426): { + 659, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049804, + [ 165.732, 127.171, -24.8223 ], + [ 7.94885, 74.0663, 1.34994 ], + [ 0.0196177, 0.00596223 ], + [ inf, inf, inf, inf ], + [ 970, 1033, 1089, 1152 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 1093 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (427): { + 660, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049825, + [ 166.155, 127.495, -24.7489 ], + [ 7.94735, 74.0958, 1.40605 ], + [ 0.0196186, 0.00595107 ], + [ inf, inf, inf, inf ], + [ 969, 1034, 1088, 1153 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 1094 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (428): { + 661, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049929, + [ 166.545, 127.795, -24.6765 ], + [ 7.9443, 74.119, 1.45851 ], + [ 0.0196191, 0.00594619 ], + [ inf, inf, inf, inf ], + [ 968, 1034, 1087, 1153 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1028, 1094 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (429): { + 662, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049779, + [ 166.922, 128.084, -24.6062 ], + [ 7.94173, 74.1412, 1.50908 ], + [ 0.019619, 0.00593783 ], + [ inf, inf, inf, inf ], + [ 967, 1034, 1086, 1153 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 1094 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (430): { + 663, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049888, + [ 167.241, 128.329, -24.5444 ], + [ 7.94135, 74.1596, 1.55164 ], + [ 0.0196256, 0.00592709 ], + [ inf, inf, inf, inf ], + [ 967, 1034, 1086, 1153 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 1094 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (431): { + 664, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049793, + [ 167.559, 128.572, -24.4827 ], + [ 7.94098, 74.1779, 1.59411 ], + [ 0.0196305, 0.00592594 ], + [ inf, inf, inf, inf ], + [ 967, 1035, 1086, 1154 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 1095 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (432): { + 665, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049844, + [ 168.012, 128.92, -24.3886 ], + [ 7.93934, 74.2064, 1.65447 ], + [ 0.0196281, 0.00591223 ], + [ inf, inf, inf, inf ], + [ 965, 1035, 1084, 1154 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1025, 1095 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (433): { + 666, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 168.515, 129.306, -24.2813 ], + [ 7.93722, 74.2388, 1.72195 ], + [ 0.0196286, 0.00590342 ], + [ inf, inf, inf, inf ], + [ 965, 1035, 1084, 1154 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1025, 1095 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (434): { + 667, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049825, + [ 168.91, 129.61, -24.1938 ], + [ 7.93598, 74.2635, 1.77799 ], + [ 0.0196288, 0.00589954 ], + [ inf, inf, inf, inf ], + [ 964, 1035, 1083, 1154 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1095 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (435): { + 668, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049834, + [ 169.307, 129.914, -24.1054 ], + [ 7.93483, 74.2883, 1.83369 ], + [ 0.0196355, 0.00589113 ], + [ inf, inf, inf, inf ], + [ 964, 1035, 1083, 1154 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1095 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (436): { + 669, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04986, + [ 169.709, 130.223, -24.0111 ], + [ 7.93419, 74.3139, 1.88727 ], + [ 0.0196385, 0.00588759 ], + [ inf, inf, inf, inf ], + [ 963, 1035, 1082, 1154 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1095 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (437): { + 670, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 170.109, 130.53, -23.9161 ], + [ 7.93358, 74.3398, 1.94114 ], + [ 0.0196395, 0.00587971 ], + [ inf, inf, inf, inf ], + [ 963, 1036, 1082, 1155 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1096 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (438): { + 671, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 170.499, 130.829, -23.8172 ], + [ 7.93313, 74.3669, 1.99685 ], + [ 0.0196395, 0.00586984 ], + [ inf, inf, inf, inf ], + [ 962, 1036, 1081, 1155 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1096 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (439): { + 672, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 170.89, 131.129, -23.7175 ], + [ 7.93245, 74.394, 2.05196 ], + [ 0.0196396, 0.00586541 ], + [ inf, inf, inf, inf ], + [ 961, 1036, 1080, 1155 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1096 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (440): { + 673, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049816, + [ 171.289, 131.435, -23.6131 ], + [ 7.93041, 74.4214, 2.10342 ], + [ 0.0196461, 0.00585651 ], + [ inf, inf, inf, inf ], + [ 961, 1036, 1080, 1155 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1096 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (441): { + 674, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049918, + [ 171.688, 131.741, -23.5078 ], + [ 7.92856, 74.4491, 2.15487 ], + [ 0.019649, 0.00585267 ], + [ inf, inf, inf, inf ], + [ 960, 1036, 1079, 1155 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1096 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (442): { + 675, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 172.078, 132.04, -23.3982 ], + [ 7.92788, 74.4787, 2.20548 ], + [ 0.01965, 0.00584416 ], + [ inf, inf, inf, inf ], + [ 960, 1037, 1079, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (443): { + 676, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049804, + [ 172.464, 132.336, -23.2931 ], + [ 7.9273, 74.5077, 2.25613 ], + [ 0.0196506, 0.00584071 ], + [ inf, inf, inf, inf ], + [ 959, 1037, 1078, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (444): { + 677, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 172.828, 132.616, -23.2173 ], + [ 7.92745, 74.5327, 2.30742 ], + [ 0.0196504, 0.0058328 ], + [ inf, inf, inf, inf ], + [ 959, 1037, 1078, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (445): { + 678, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049862, + [ 173.193, 132.896, -23.1415 ], + [ 7.92759, 74.5577, 2.35871 ], + [ 0.0196511, 0.00583026 ], + [ inf, inf, inf, inf ], + [ 958, 1037, 1077, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (446): { + 679, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049777, + [ 173.6, 133.208, -23.0135 ], + [ 7.92433, 74.596, 2.40622 ], + [ 0.0196561, 0.00582068 ], + [ inf, inf, inf, inf ], + [ 958, 1037, 1077, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (447): { + 680, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04989, + [ 174.008, 133.521, -22.8824 ], + [ 7.92119, 74.6341, 2.45399 ], + [ 0.0196595, 0.00581751 ], + [ inf, inf, inf, inf ], + [ 957, 1037, 1076, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1017, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (448): { + 681, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049835, + [ 174.398, 133.821, -22.7577 ], + [ 7.92081, 74.6641, 2.5048 ], + [ 0.0196609, 0.00581647 ], + [ inf, inf, inf, inf ], + [ 957, 1038, 1076, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1017, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (449): { + 682, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049877, + [ 174.78, 134.114, -22.6354 ], + [ 7.92056, 74.6937, 2.55488 ], + [ 0.0196616, 0.00581662 ], + [ inf, inf, inf, inf ], + [ 957, 1038, 1076, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1017, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (450): { + 683, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049778, + [ 175.098, 134.357, -22.5322 ], + [ 7.92131, 74.7194, 2.59888 ], + [ 0.0196616, 0.00581707 ], + [ inf, inf, inf, inf ], + [ 957, 1038, 1076, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1017, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (451): { + 684, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049799, + [ 175.415, 134.601, -22.4289 ], + [ 7.92205, 74.7451, 2.64289 ], + [ 0.0196638, 0.0058181 ], + [ inf, inf, inf, inf ], + [ 958, 1038, 1077, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (452): { + 685, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 175.862, 134.944, -22.2796 ], + [ 7.9194, 74.7801, 2.69872 ], + [ 0.01966, 0.00581814 ], + [ inf, inf, inf, inf ], + [ 958, 1037, 1077, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (453): { + 686, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049993, + [ 176.385, 135.345, -22.1022 ], + [ 7.91501, 74.8208, 2.76155 ], + [ 0.0196604, 0.00581875 ], + [ inf, inf, inf, inf ], + [ 958, 1037, 1077, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (454): { + 687, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049788, + [ 176.775, 135.644, -21.9623 ], + [ 7.91622, 74.8526, 2.81263 ], + [ 0.0196607, 0.00581948 ], + [ inf, inf, inf, inf ], + [ 958, 1038, 1077, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (455): { + 688, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 177.166, 135.944, -21.8217 ], + [ 7.91744, 74.8845, 2.86354 ], + [ 0.0196611, 0.00582261 ], + [ inf, inf, inf, inf ], + [ 958, 1038, 1077, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (456): { + 689, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049787, + [ 177.564, 136.25, -21.6772 ], + [ 7.9188, 74.9161, 2.91226 ], + [ 0.0196611, 0.00582885 ], + [ inf, inf, inf, inf ], + [ 958, 1038, 1077, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (457): { + 690, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049887, + [ 177.963, 136.556, -21.5319 ], + [ 7.92018, 74.9479, 2.96115 ], + [ 0.019661, 0.00583102 ], + [ inf, inf, inf, inf ], + [ 959, 1037, 1078, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (458): { + 691, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 178.363, 136.863, -21.382 ], + [ 7.92178, 74.9807, 3.01076 ], + [ 0.0196608, 0.00583184 ], + [ inf, inf, inf, inf ], + [ 959, 1037, 1078, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (459): { + 692, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049795, + [ 178.761, 137.168, -21.2319 ], + [ 7.92352, 75.0137, 3.05995 ], + [ 0.0196614, 0.00583909 ], + [ inf, inf, inf, inf ], + [ 959, 1037, 1078, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (460): { + 693, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 179.15, 137.467, -21.0776 ], + [ 7.92687, 75.0477, 3.10504 ], + [ 0.0196616, 0.00584245 ], + [ inf, inf, inf, inf ], + [ 960, 1037, 1079, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (461): { + 694, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 179.541, 137.766, -20.923 ], + [ 7.93028, 75.0815, 3.1502 ], + [ 0.0196622, 0.00584415 ], + [ inf, inf, inf, inf ], + [ 960, 1038, 1079, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (462): { + 695, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 179.94, 138.073, -20.7639 ], + [ 7.93433, 75.1138, 3.19606 ], + [ 0.0196624, 0.00585154 ], + [ inf, inf, inf, inf ], + [ 960, 1037, 1079, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (463): { + 696, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049887, + [ 180.337, 138.377, -20.609 ], + [ 7.93807, 75.1461, 3.24143 ], + [ 0.0196627, 0.00585459 ], + [ inf, inf, inf, inf ], + [ 961, 1038, 1080, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (464): { + 697, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 180.693, 138.651, -20.5129 ], + [ 7.93766, 75.1777, 3.27979 ], + [ 0.0196631, 0.00586259 ], + [ inf, inf, inf, inf ], + [ 961, 1037, 1080, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (465): { + 698, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 181.05, 138.925, -20.4168 ], + [ 7.93725, 75.2093, 3.31813 ], + [ 0.0196643, 0.00586574 ], + [ inf, inf, inf, inf ], + [ 962, 1038, 1081, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (466): { + 699, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 181.45, 139.232, -20.252 ], + [ 7.93892, 75.2415, 3.3583 ], + [ 0.0196631, 0.00586753 ], + [ inf, inf, inf, inf ], + [ 962, 1037, 1081, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (467): { + 700, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 181.857, 139.544, -20.0777 ], + [ 7.94088, 75.2737, 3.39872 ], + [ 0.0196646, 0.00587435 ], + [ inf, inf, inf, inf ], + [ 962, 1038, 1081, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (468): { + 701, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 182.268, 139.859, -19.8969 ], + [ 7.94458, 75.3094, 3.44198 ], + [ 0.0196635, 0.0058774 ], + [ inf, inf, inf, inf ], + [ 963, 1037, 1082, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (469): { + 702, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 182.675, 140.171, -19.7181 ], + [ 7.94835, 75.3448, 3.48489 ], + [ 0.0196639, 0.0058784 ], + [ inf, inf, inf, inf ], + [ 963, 1037, 1082, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (470): { + 703, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 182.993, 140.415, -19.5782 ], + [ 7.95193, 75.3725, 3.51902 ], + [ 0.0196639, 0.00588514 ], + [ inf, inf, inf, inf ], + [ 963, 1037, 1082, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (471): { + 704, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049817, + [ 183.311, 140.659, -19.4385 ], + [ 7.95551, 75.4002, 3.55314 ], + [ 0.0196743, 0.00588762 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (472): { + 705, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04988, + [ 183.745, 140.992, -19.2445 ], + [ 7.96046, 75.4383, 3.59689 ], + [ 0.0196661, 0.00588899 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (473): { + 706, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049835, + [ 184.275, 141.399, -19.0058 ], + [ 7.96661, 75.4849, 3.64831 ], + [ 0.0196658, 0.00588953 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (474): { + 707, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049823, + [ 184.674, 141.706, -18.8223 ], + [ 7.97282, 75.5177, 3.68344 ], + [ 0.019665, 0.00588948 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (475): { + 708, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049863, + [ 185.074, 142.012, -18.6384 ], + [ 7.97895, 75.5506, 3.71848 ], + [ 0.0196652, 0.00588912 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (476): { + 709, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049936, + [ 185.474, 142.319, -18.4514 ], + [ 7.98287, 75.5867, 3.75055 ], + [ 0.0196647, 0.00588901 ], + [ inf, inf, inf, inf ], + [ 964, 1037, 1083, 1156 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1097 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (477): { + 710, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049663, + [ 185.871, 142.623, -18.2653 ], + [ 7.98675, 75.6225, 3.78257 ], + [ 0.0196655, 0.00588864 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (478): { + 711, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04989, + [ 186.261, 142.923, -18.0748 ], + [ 7.99003, 75.658, 3.82027 ], + [ 0.019665, 0.00588861 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (479): { + 712, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049883, + [ 186.651, 143.222, -17.8842 ], + [ 7.99338, 75.6934, 3.85778 ], + [ 0.0196656, 0.00588844 ], + [ inf, inf, inf, inf ], + [ 964, 1038, 1083, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (480): { + 713, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 187.06, 143.536, -17.6905 ], + [ 7.99996, 75.7279, 3.8869 ], + [ 0.0196651, 0.00588793 ], + [ inf, inf, inf, inf ], + [ 963, 1038, 1082, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (481): { + 714, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049876, + [ 187.468, 143.849, -17.4966 ], + [ 8.00654, 75.7624, 3.91604 ], + [ 0.0196727, 0.00588716 ], + [ inf, inf, inf, inf ], + [ 963, 1038, 1082, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (482): { + 715, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 187.858, 144.148, -17.2999 ], + [ 8.01299, 75.798, 3.94687 ], + [ 0.0196757, 0.00588674 ], + [ inf, inf, inf, inf ], + [ 963, 1038, 1082, 1157 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1098 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (483): { + 716, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049757, + [ 188.247, 144.447, -17.1042 ], + [ 8.01942, 75.8335, 3.97764 ], + [ 0.0196781, 0.00588666 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (484): { + 717, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049896, + [ 188.612, 144.727, -16.9979 ], + [ 8.02478, 75.8656, 4.007 ], + [ 0.0196786, 0.0058864 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (485): { + 718, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04981, + [ 188.977, 145.007, -16.8917 ], + [ 8.03014, 75.8977, 4.03631 ], + [ 0.0196798, 0.00588657 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (486): { + 719, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 189.37, 145.309, -16.6901 ], + [ 8.03157, 75.9367, 4.0669 ], + [ 0.0196793, 0.00588595 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (487): { + 720, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049885, + [ 189.77, 145.615, -16.4664 ], + [ 8.03209, 75.9773, 4.0978 ], + [ 0.0196798, 0.00588633 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (488): { + 721, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049824, + [ 190.178, 145.928, -16.2606 ], + [ 8.03454, 76.0142, 4.12758 ], + [ 0.0196788, 0.0058863 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (489): { + 722, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 190.587, 146.242, -16.0549 ], + [ 8.03699, 76.051, 4.15736 ], + [ 0.0196865, 0.00588594 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (490): { + 723, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049876, + [ 190.906, 146.487, -15.888 ], + [ 8.04029, 76.0802, 4.18214 ], + [ 0.0196889, 0.00588574 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (491): { + 724, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049822, + [ 191.224, 146.731, -15.7217 ], + [ 8.0436, 76.1092, 4.20684 ], + [ 0.0196923, 0.00588647 ], + [ inf, inf, inf, inf ], + [ 964, 1040, 1083, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (492): { + 725, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 191.645, 147.054, -15.4997 ], + [ 8.04674, 76.1469, 4.23759 ], + [ 0.01969, 0.00588532 ], + [ inf, inf, inf, inf ], + [ 963, 1039, 1082, 1158 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1099 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (493): { + 726, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 192.181, 147.465, -15.2155 ], + [ 8.04969, 76.1941, 4.27511 ], + [ 0.0196911, 0.00588587 ], + [ inf, inf, inf, inf ], + [ 963, 1040, 1082, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (494): { + 727, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 192.583, 147.774, -14.9994 ], + [ 8.05518, 76.2311, 4.3038 ], + [ 0.019691, 0.00588579 ], + [ inf, inf, inf, inf ], + [ 963, 1040, 1082, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (495): { + 728, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049862, + [ 192.983, 148.081, -14.7848 ], + [ 8.06073, 76.2679, 4.33231 ], + [ 0.0196915, 0.00588622 ], + [ inf, inf, inf, inf ], + [ 964, 1040, 1083, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (496): { + 729, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049827, + [ 193.381, 148.386, -14.568 ], + [ 8.06589, 76.3038, 4.35841 ], + [ 0.0196907, 0.00587938 ], + [ inf, inf, inf, inf ], + [ 963, 1040, 1082, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (497): { + 730, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 193.78, 148.692, -14.3511 ], + [ 8.07104, 76.3397, 4.38446 ], + [ 0.0196979, 0.0058759 ], + [ inf, inf, inf, inf ], + [ 963, 1040, 1082, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (498): { + 731, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 194.188, 149.005, -14.1315 ], + [ 8.07352, 76.3763, 4.41193 ], + [ 0.0197004, 0.00587386 ], + [ inf, inf, inf, inf ], + [ 963, 1040, 1082, 1159 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1023, 1100 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (499): { + 732, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04978, + [ 194.595, 149.318, -13.912 ], + [ 8.07591, 76.4129, 4.43941 ], + [ 0.0197021, 0.00587315 ], + [ inf, inf, inf, inf ], + [ 962, 1041, 1081, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (500): { + 733, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049891, + [ 194.995, 149.625, -13.6892 ], + [ 8.07958, 76.4501, 4.46602 ], + [ 0.0197023, 0.00587237 ], + [ inf, inf, inf, inf ], + [ 962, 1041, 1081, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (501): { + 734, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049886, + [ 195.395, 149.931, -13.4664 ], + [ 8.08331, 76.4874, 4.49258 ], + [ 0.0197033, 0.00587243 ], + [ inf, inf, inf, inf ], + [ 962, 1041, 1081, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (502): { + 735, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 195.803, 150.244, -13.2414 ], + [ 8.08659, 76.5243, 4.51922 ], + [ 0.0197027, 0.00586543 ], + [ inf, inf, inf, inf ], + [ 962, 1041, 1081, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (503): { + 736, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04986, + [ 196.211, 150.557, -13.0161 ], + [ 8.08984, 76.5612, 4.54588 ], + [ 0.0197032, 0.00586248 ], + [ inf, inf, inf, inf ], + [ 962, 1041, 1081, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (504): { + 737, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 196.579, 150.84, -12.8423 ], + [ 8.09148, 76.5957, 4.56682 ], + [ 0.0197099, 0.0058601 ], + [ inf, inf, inf, inf ], + [ 961, 1041, 1080, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (505): { + 738, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049834, + [ 196.945, 151.121, -12.6715 ], + [ 8.09302, 76.63, 4.58743 ], + [ 0.0197134, 0.00585318 ], + [ inf, inf, inf, inf ], + [ 961, 1041, 1080, 1160 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1101 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (506): { + 739, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 197.359, 151.438, -12.4383 ], + [ 8.09938, 76.6691, 4.6136 ], + [ 0.019714, 0.00584953 ], + [ inf, inf, inf, inf ], + [ 961, 1042, 1080, 1161 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1102 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (507): { + 740, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 197.788, 151.767, -12.1851 ], + [ 8.10728, 76.7097, 4.64157 ], + [ 0.019715, 0.00584816 ], + [ inf, inf, inf, inf ], + [ 960, 1042, 1079, 1161 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1102 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (508): { + 741, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 198.198, 152.082, -11.9511 ], + [ 8.11059, 76.7477, 4.66492 ], + [ 0.0197153, 0.00584716 ], + [ inf, inf, inf, inf ], + [ 960, 1042, 1079, 1161 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1102 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (509): { + 742, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049856, + [ 198.607, 152.396, -11.7183 ], + [ 8.11358, 76.7856, 4.68795 ], + [ 0.0197221, 0.00583991 ], + [ inf, inf, inf, inf ], + [ 960, 1042, 1079, 1161 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1020, 1102 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (510): { + 743, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 198.931, 152.645, -11.528 ], + [ 8.11555, 76.8165, 4.70617 ], + [ 0.0197247, 0.00583608 ], + [ inf, inf, inf, inf ], + [ 959, 1042, 1078, 1161 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1102 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (511): { + 744, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049806, + [ 199.249, 152.889, -11.3411 ], + [ 8.11744, 76.8469, 4.72401 ], + [ 0.0197277, 0.0058297 ], + [ inf, inf, inf, inf ], + [ 959, 1043, 1078, 1162 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1103 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (512): { + 745, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049886, + [ 199.662, 153.205, -11.1002 ], + [ 8.1205, 76.8863, 4.74347 ], + [ 0.0197256, 0.00582364 ], + [ inf, inf, inf, inf ], + [ 958, 1043, 1077, 1162 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1103 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (513): { + 746, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049898, + [ 200.209, 153.625, -10.783 ], + [ 8.12523, 76.9384, 4.76518 ], + [ 0.0197338, 0.00582228 ], + [ inf, inf, inf, inf ], + [ 958, 1043, 1077, 1162 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1103 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (514): { + 747, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 200.621, 153.941, -10.5377 ], + [ 8.12573, 76.9785, 4.78246 ], + [ 0.0197368, 0.00581468 ], + [ inf, inf, inf, inf ], + [ 958, 1044, 1077, 1163 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1104 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (515): { + 748, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049804, + [ 201.02, 154.248, -10.2992 ], + [ 8.12584, 77.0175, 4.79932 ], + [ 0.0197411, 0.00580962 ], + [ inf, inf, inf, inf ], + [ 957, 1044, 1076, 1163 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1017, 1104 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (516): { + 749, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049825, + [ 201.427, 154.56, -10.0596 ], + [ 8.12697, 77.0558, 4.81474 ], + [ 0.0197477, 0.00580114 ], + [ inf, inf, inf, inf ], + [ 957, 1044, 1076, 1163 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1017, 1104 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (517): { + 750, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049848, + [ 201.835, 154.873, -9.81983 ], + [ 8.12819, 77.094, 4.83001 ], + [ 0.0197508, 0.00579805 ], + [ inf, inf, inf, inf ], + [ 956, 1045, 1075, 1164 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1016, 1105 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (518): { + 751, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049833, + [ 202.244, 155.187, -9.57843 ], + [ 8.1295, 77.1339, 4.84313 ], + [ 0.0197586, 0.00578957 ], + [ inf, inf, inf, inf ], + [ 956, 1045, 1075, 1164 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1016, 1105 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (519): { + 752, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049789, + [ 202.652, 155.5, -9.33706 ], + [ 8.13083, 77.174, 4.85601 ], + [ 0.0197626, 0.00578632 ], + [ inf, inf, inf, inf ], + [ 955, 1046, 1074, 1165 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1015, 1106 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (520): { + 753, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049902, + [ 203.061, 155.814, -9.09417 ], + [ 8.1312, 77.2132, 4.86863 ], + [ 0.0197711, 0.00578374 ], + [ inf, inf, inf, inf ], + [ 955, 1046, 1074, 1165 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1015, 1106 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (521): { + 754, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049878, + [ 203.47, 156.127, -8.85127 ], + [ 8.13145, 77.2523, 4.88122 ], + [ 0.0197749, 0.00577669 ], + [ inf, inf, inf, inf ], + [ 955, 1047, 1074, 1166 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1015, 1107 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (522): { + 755, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04982, + [ 203.87, 156.434, -8.60763 ], + [ 8.1311, 77.2912, 4.89313 ], + [ 0.0197832, 0.00577255 ], + [ inf, inf, inf, inf ], + [ 954, 1047, 1073, 1166 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1014, 1107 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (523): { + 756, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049775, + [ 204.269, 156.74, -8.36407 ], + [ 8.13068, 77.3301, 4.90495 ], + [ 0.0197867, 0.00576476 ], + [ inf, inf, inf, inf ], + [ 954, 1048, 1073, 1167 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1014, 1108 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (524): { + 757, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049941, + [ 204.646, 157.03, -8.14469 ], + [ 8.1295, 77.3667, 4.91314 ], + [ 0.0197881, 0.0057611 ], + [ inf, inf, inf, inf ], + [ 953, 1048, 1072, 1167 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1013, 1108 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (525): { + 758, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049809, + [ 205.019, 157.316, -7.92915 ], + [ 8.12821, 77.4029, 4.92083 ], + [ 0.0197959, 0.00575956 ], + [ inf, inf, inf, inf ], + [ 953, 1048, 1072, 1167 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1013, 1108 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (526): { + 759, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 205.432, 157.633, -7.67498 ], + [ 8.12491, 77.4459, 4.93042 ], + [ 0.0197982, 0.00575181 ], + [ inf, inf, inf, inf ], + [ 953, 1049, 1072, 1168 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1013, 1109 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (527): { + 760, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 205.862, 157.963, -7.40374 ], + [ 8.12071, 77.492, 4.94085 ], + [ 0.0198063, 0.00574801 ], + [ inf, inf, inf, inf ], + [ 952, 1049, 1071, 1168 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1012, 1109 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (528): { + 761, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04988, + [ 206.273, 158.278, -7.15396 ], + [ 8.11665, 77.5318, 4.94211 ], + [ 0.0198091, 0.005746 ], + [ inf, inf, inf, inf ], + [ 952, 1050, 1071, 1169 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1012, 1110 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (529): { + 762, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049809, + [ 206.682, 158.592, -6.90768 ], + [ 8.11262, 77.5707, 4.94204 ], + [ 0.0198106, 0.00573902 ], + [ inf, inf, inf, inf ], + [ 952, 1050, 1071, 1169 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1012, 1110 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (530): { + 763, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 207.012, 158.845, -6.70491 ], + [ 8.1105, 77.6047, 4.94252 ], + [ 0.0198105, 0.00573577 ], + [ inf, inf, inf, inf ], + [ 951, 1050, 1070, 1169 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1011, 1110 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (531): { + 764, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049785, + [ 207.329, 159.089, -6.50895 ], + [ 8.10867, 77.6381, 4.94308 ], + [ 0.019819, 0.00573539 ], + [ inf, inf, inf, inf ], + [ 951, 1050, 1070, 1169 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1011, 1110 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (532): { + 765, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049931, + [ 207.724, 159.391, -6.26531 ], + [ 8.1052, 77.6783, 4.94462 ], + [ 0.0198194, 0.00572613 ], + [ inf, inf, inf, inf ], + [ 951, 1050, 1070, 1169 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1011, 1110 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (533): { + 766, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049815, + [ 208.259, 159.802, -5.93492 ], + [ 8.09873, 77.731, 4.94797 ], + [ 0.0198212, 0.00572342 ], + [ inf, inf, inf, inf ], + [ 950, 1051, 1069, 1170 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1010, 1111 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (534): { + 767, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049878, + [ 208.687, 160.13, -5.67607 ], + [ 8.0935, 77.7728, 4.94335 ], + [ 0.0198216, 0.00572203 ], + [ inf, inf, inf, inf ], + [ 950, 1051, 1069, 1170 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1010, 1111 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (535): { + 768, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049808, + [ 209.095, 160.444, -5.42981 ], + [ 8.0885, 77.8127, 4.93737 ], + [ 0.0198291, 0.0057213 ], + [ inf, inf, inf, inf ], + [ 950, 1051, 1069, 1170 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1010, 1111 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (536): { + 769, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04986, + [ 209.503, 160.757, -5.18389 ], + [ 8.08197, 77.8534, 4.93466 ], + [ 0.0198317, 0.00571434 ], + [ inf, inf, inf, inf ], + [ 950, 1051, 1069, 1170 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1010, 1111 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (537): { + 770, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049761, + [ 209.911, 161.069, -4.93857 ], + [ 8.07518, 77.8941, 4.93253 ], + [ 0.0198334, 0.00571163 ], + [ inf, inf, inf, inf ], + [ 950, 1052, 1069, 1171 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1010, 1112 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (538): { + 771, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049927, + [ 210.312, 161.377, -4.6924 ], + [ 8.07076, 77.9335, 4.92957 ], + [ 0.0198336, 0.00570987 ], + [ inf, inf, inf, inf ], + [ 949, 1052, 1068, 1171 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1009, 1112 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (539): { + 772, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 210.711, 161.684, -4.44668 ], + [ 8.06681, 77.9725, 4.92646 ], + [ 0.0198338, 0.00570294 ], + [ inf, inf, inf, inf ], + [ 949, 1052, 1068, 1171 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1009, 1112 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (540): { + 773, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049874, + [ 211.111, 161.99, -4.20114 ], + [ 8.06052, 78.0128, 4.92088 ], + [ 0.0198406, 0.005699 ], + [ inf, inf, inf, inf ], + [ 948, 1052, 1067, 1171 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1008, 1112 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (541): { + 774, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 211.51, 162.296, -3.95591 ], + [ 8.05379, 78.0535, 4.91483 ], + [ 0.0198441, 0.00569751 ], + [ inf, inf, inf, inf ], + [ 948, 1053, 1067, 1172 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1008, 1113 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (542): { + 775, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 211.909, 162.602, -3.71132 ], + [ 8.04843, 78.0928, 4.90817 ], + [ 0.019845, 0.00569004 ], + [ inf, inf, inf, inf ], + [ 948, 1053, 1067, 1172 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1008, 1113 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (543): { + 776, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049825, + [ 212.307, 162.908, -3.46693 ], + [ 8.04336, 78.1318, 4.9014 ], + [ 0.0198455, 0.00568024 ], + [ inf, inf, inf, inf ], + [ 947, 1053, 1066, 1172 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1007, 1113 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (544): { + 777, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 212.679, 163.193, -3.26797 ], + [ 8.03766, 78.1689, 4.89356 ], + [ 0.0198453, 0.00567546 ], + [ inf, inf, inf, inf ], + [ 947, 1053, 1066, 1172 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1007, 1113 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (545): { + 778, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049864, + [ 213.044, 163.474, -3.0787 ], + [ 8.03184, 78.2056, 4.8855 ], + [ 0.0198526, 0.00567303 ], + [ inf, inf, inf, inf ], + [ 946, 1053, 1065, 1172 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1006, 1113 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (546): { + 779, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049862, + [ 213.431, 163.77, -2.84005 ], + [ 8.02396, 78.2478, 4.87268 ], + [ 0.0198552, 0.00566496 ], + [ inf, inf, inf, inf ], + [ 946, 1054, 1065, 1173 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1006, 1114 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (547): { + 780, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 213.83, 164.077, -2.57273 ], + [ 8.01488, 78.2931, 4.85709 ], + [ 0.0198569, 0.00566189 ], + [ inf, inf, inf, inf ], + [ 945, 1054, 1064, 1173 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1005, 1114 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (548): { + 781, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04981, + [ 214.237, 164.389, -2.32642 ], + [ 8.00694, 78.3331, 4.84589 ], + [ 0.0198643, 0.00565313 ], + [ inf, inf, inf, inf ], + [ 945, 1054, 1064, 1173 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1005, 1114 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (549): { + 782, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 214.645, 164.702, -2.08477 ], + [ 7.99926, 78.372, 4.8357 ], + [ 0.019875, 0.00564918 ], + [ inf, inf, inf, inf ], + [ 944, 1055, 1063, 1174 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1115 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (550): { + 783, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 214.981, 164.959, -1.88384 ], + [ 7.99307, 78.405, 4.82598 ], + [ 0.0198799, 0.00564747 ], + [ inf, inf, inf, inf ], + [ 944, 1056, 1063, 1175 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1116 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (551): { + 784, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 215.298, 165.203, -1.69257 ], + [ 7.98724, 78.4365, 4.81637 ], + [ 0.0198903, 0.00564709 ], + [ inf, inf, inf, inf ], + [ 944, 1056, 1063, 1175 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1116 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (552): { + 785, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049839, + [ 215.675, 165.492, -1.464 ], + [ 7.97973, 78.4745, 4.80415 ], + [ 0.0198944, 0.00564597 ], + [ inf, inf, inf, inf ], + [ 944, 1057, 1063, 1176 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1117 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (553): { + 786, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049863, + [ 216.199, 165.895, -1.14261 ], + [ 7.96808, 78.5286, 4.78544 ], + [ 0.0199042, 0.00564603 ], + [ inf, inf, inf, inf ], + [ 944, 1057, 1063, 1176 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1117 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (554): { + 787, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049863, + [ 216.625, 166.221, -0.887575 ], + [ 7.95954, 78.5701, 4.77363 ], + [ 0.019916, 0.00564583 ], + [ inf, inf, inf, inf ], + [ 944, 1058, 1063, 1177 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1118 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (555): { + 788, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049808, + [ 217.024, 166.527, -0.649918 ], + [ 7.95181, 78.6084, 4.76362 ], + [ 0.0199282, 0.00563922 ], + [ inf, inf, inf, inf ], + [ 944, 1059, 1063, 1178 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1119 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (556): { + 789, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049872, + [ 217.423, 166.833, -0.413441 ], + [ 7.94519, 78.6462, 4.74992 ], + [ 0.0199415, 0.00564245 ], + [ inf, inf, inf, inf ], + [ 944, 1060, 1063, 1179 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1004, 1120 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (557): { + 790, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049818, + [ 217.821, 167.139, -0.177614 ], + [ 7.93888, 78.684, 4.73527 ], + [ 0.0199549, 0.00564374 ], + [ inf, inf, inf, inf ], + [ 945, 1061, 1064, 1180 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1005, 1121 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (558): { + 791, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 218.22, 167.445, 0.0575502 ], + [ 7.93018, 78.7214, 4.71693 ], + [ 0.0199681, 0.00564407 ], + [ inf, inf, inf, inf ], + [ 945, 1063, 1064, 1182 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1005, 1123 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (559): { + 792, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 218.619, 167.751, 0.292497 ], + [ 7.92081, 78.7587, 4.69755 ], + [ 0.0199742, 0.00564464 ], + [ inf, inf, inf, inf ], + [ 945, 1063, 1064, 1182 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1005, 1123 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (560): { + 793, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049881, + [ 219.011, 168.052, 0.526246 ], + [ 7.90919, 78.798, 4.68108 ], + [ 0.0199846, 0.00565093 ], + [ inf, inf, inf, inf ], + [ 945, 1064, 1064, 1183 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1005, 1124 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (561): { + 794, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049806, + [ 219.401, 168.351, 0.759241 ], + [ 7.89694, 78.8378, 4.66548 ], + [ 0.0199961, 0.00565358 ], + [ inf, inf, inf, inf ], + [ 946, 1065, 1065, 1184 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1006, 1125 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (562): { + 795, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049872, + [ 219.791, 168.65, 0.99134 ], + [ 7.88824, 78.8759, 4.64903 ], + [ 0.0200087, 0.00566106 ], + [ inf, inf, inf, inf ], + [ 946, 1066, 1065, 1185 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1006, 1126 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (563): { + 796, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049807, + [ 220.181, 168.949, 1.22277 ], + [ 7.88063, 78.9133, 4.63234 ], + [ 0.020021, 0.00566409 ], + [ inf, inf, inf, inf ], + [ 947, 1067, 1066, 1186 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1007, 1127 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (564): { + 797, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04989, + [ 220.545, 169.229, 1.40273 ], + [ 7.87015, 78.9486, 4.61419 ], + [ 0.0200337, 0.00567196 ], + [ inf, inf, inf, inf ], + [ 947, 1068, 1066, 1187 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1007, 1128 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (565): { + 798, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049806, + [ 220.901, 169.502, 1.56627 ], + [ 7.85881, 78.9831, 4.59563 ], + [ 0.0200535, 0.00568163 ], + [ inf, inf, inf, inf ], + [ 948, 1069, 1067, 1188 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1008, 1129 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (566): { + 799, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049874, + [ 221.3, 169.808, 1.77957 ], + [ 7.84791, 79.0211, 4.57323 ], + [ 0.0200624, 0.00568631 ], + [ inf, inf, inf, inf ], + [ 949, 1070, 1068, 1189 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1009, 1130 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (567): { + 800, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049861, + [ 221.731, 170.139, 2.03051 ], + [ 7.83737, 79.0615, 4.54795 ], + [ 0.0200737, 0.00569444 ], + [ inf, inf, inf, inf ], + [ 950, 1071, 1069, 1190 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1010, 1131 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (568): { + 801, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049806, + [ 222.13, 170.445, 2.26202 ], + [ 7.82722, 79.0985, 4.52589 ], + [ 0.0200859, 0.0057045 ], + [ inf, inf, inf, inf ], + [ 951, 1071, 1070, 1190 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1011, 1131 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (569): { + 802, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04984, + [ 222.521, 170.745, 2.48735 ], + [ 7.81721, 79.1344, 4.50487 ], + [ 0.0200992, 0.00571495 ], + [ inf, inf, inf, inf ], + [ 952, 1072, 1071, 1191 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1012, 1132 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (570): { + 803, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 222.851, 170.998, 2.67712 ], + [ 7.80829, 79.1662, 4.48746 ], + [ 0.0201126, 0.00572619 ], + [ inf, inf, inf, inf ], + [ 953, 1073, 1072, 1192 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1013, 1133 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (571): { + 804, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 223.161, 171.236, 2.85483 ], + [ 7.79974, 79.1967, 4.47127 ], + [ 0.0201252, 0.00573525 ], + [ inf, inf, inf, inf ], + [ 953, 1074, 1072, 1193 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1013, 1134 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (572): { + 805, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049876, + [ 223.52, 171.512, 3.05963 ], + [ 7.79052, 79.2308, 4.45251 ], + [ 0.0201399, 0.00575571 ], + [ inf, inf, inf, inf ], + [ 955, 1075, 1074, 1194 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1015, 1135 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (573): { + 806, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049794, + [ 224.043, 171.913, 3.35643 ], + [ 7.77901, 79.277, 4.42498 ], + [ 0.020153, 0.00576913 ], + [ inf, inf, inf, inf ], + [ 956, 1076, 1075, 1195 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1016, 1136 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (574): { + 807, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 224.463, 172.235, 3.59642 ], + [ 7.76956, 79.3156, 4.40087 ], + [ 0.0201662, 0.00578188 ], + [ inf, inf, inf, inf ], + [ 958, 1077, 1077, 1196 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1018, 1137 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (575): { + 808, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049834, + [ 224.844, 172.527, 3.81547 ], + [ 7.76087, 79.3514, 4.37802 ], + [ 0.0201797, 0.00580023 ], + [ inf, inf, inf, inf ], + [ 959, 1078, 1078, 1197 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1019, 1138 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (576): { + 809, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 225.23, 172.824, 4.03253 ], + [ 7.75158, 79.3873, 4.35525 ], + [ 0.0201933, 0.00581504 ], + [ inf, inf, inf, inf ], + [ 961, 1079, 1080, 1198 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1021, 1139 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (577): { + 810, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049847, + [ 225.619, 173.122, 4.24886 ], + [ 7.74206, 79.4233, 4.3325 ], + [ 0.0202068, 0.00583398 ], + [ inf, inf, inf, inf ], + [ 962, 1080, 1081, 1199 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1022, 1140 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (578): { + 811, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049867, + [ 226.009, 173.422, 4.46402 ], + [ 7.73575, 79.4561, 4.30886 ], + [ 0.0202201, 0.00584888 ], + [ inf, inf, inf, inf ], + [ 964, 1081, 1083, 1200 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1024, 1141 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (579): { + 812, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049836, + [ 226.399, 173.721, 4.67857 ], + [ 7.73071, 79.4878, 4.2849 ], + [ 0.020227, 0.00586849 ], + [ inf, inf, inf, inf ], + [ 965, 1082, 1084, 1201 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1025, 1142 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (580): { + 813, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049828, + [ 226.789, 174.02, 4.89147 ], + [ 7.72198, 79.5225, 4.26333 ], + [ 0.0202373, 0.00588349 ], + [ inf, inf, inf, inf ], + [ 967, 1083, 1086, 1202 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1027, 1143 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (581): { + 814, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 227.179, 174.319, 5.10375 ], + [ 7.71175, 79.5586, 4.24272 ], + [ 0.0202426, 0.00590271 ], + [ inf, inf, inf, inf ], + [ 969, 1083, 1088, 1202 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1029, 1143 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (582): { + 815, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049793, + [ 227.555, 174.608, 5.31393 ], + [ 7.70482, 79.5914, 4.21929 ], + [ 0.0202522, 0.00592365 ], + [ inf, inf, inf, inf ], + [ 970, 1084, 1089, 1203 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1030, 1144 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (583): { + 816, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049837, + [ 227.926, 174.892, 5.5235 ], + [ 7.69926, 79.623, 4.19467 ], + [ 0.0202639, 0.00594525 ], + [ inf, inf, inf, inf ], + [ 972, 1084, 1091, 1203 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1032, 1144 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (584): { + 817, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049902, + [ 228.288, 175.17, 5.68892 ], + [ 7.69466, 79.6534, 4.1698 ], + [ 0.0202692, 0.00596172 ], + [ inf, inf, inf, inf ], + [ 974, 1085, 1093, 1204 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1034, 1145 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (585): { + 818, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049791, + [ 228.644, 175.443, 5.83476 ], + [ 7.69049, 79.6832, 4.14489 ], + [ 0.020279, 0.00598108 ], + [ inf, inf, inf, inf ], + [ 975, 1085, 1094, 1204 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1035, 1145 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (586): { + 819, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049857, + [ 229.021, 175.733, 6.0199 ], + [ 7.68557, 79.717, 4.11389 ], + [ 0.020284, 0.0060027 ], + [ inf, inf, inf, inf ], + [ 977, 1086, 1096, 1205 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1037, 1146 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (587): { + 820, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049912, + [ 229.418, 176.037, 6.24338 ], + [ 7.67992, 79.7547, 4.07696 ], + [ 0.0202866, 0.00602532 ], + [ inf, inf, inf, inf ], + [ 979, 1086, 1098, 1205 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1039, 1146 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (588): { + 821, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049763, + [ 229.805, 176.334, 6.45238 ], + [ 7.67621, 79.7875, 4.04877 ], + [ 0.0202952, 0.00604142 ], + [ inf, inf, inf, inf ], + [ 981, 1086, 1100, 1205 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1041, 1146 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (589): { + 822, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 230.188, 176.628, 6.65505 ], + [ 7.67341, 79.8181, 4.0247 ], + [ 0.0202997, 0.00606106 ], + [ inf, inf, inf, inf ], + [ 983, 1087, 1102, 1206 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1043, 1147 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (590): { + 823, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049897, + [ 230.517, 176.88, 6.82758 ], + [ 7.67167, 79.844, 4.00297 ], + [ 0.0203024, 0.0060826 ], + [ inf, inf, inf, inf ], + [ 984, 1087, 1103, 1206 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1044, 1147 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (591): { + 824, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 230.82, 177.113, 6.98583 ], + [ 7.67043, 79.8675, 3.98235 ], + [ 0.0203115, 0.00609547 ], + [ inf, inf, inf, inf ], + [ 986, 1087, 1105, 1206 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1046, 1147 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (592): { + 825, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 231.159, 177.373, 7.16118 ], + [ 7.66911, 79.8935, 3.95895 ], + [ 0.020315, 0.00611872 ], + [ inf, inf, inf, inf ], + [ 988, 1088, 1107, 1207 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1048, 1148 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (593): { + 826, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049841, + [ 231.682, 177.774, 7.42437 ], + [ 7.66744, 79.9316, 3.92126 ], + [ 0.0203175, 0.00613283 ], + [ inf, inf, inf, inf ], + [ 989, 1088, 1108, 1207 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1049, 1148 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (594): { + 827, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 232.11, 178.103, 7.6412 ], + [ 7.66696, 79.963, 3.89005 ], + [ 0.0203261, 0.00615093 ], + [ inf, inf, inf, inf ], + [ 990, 1088, 1109, 1207 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1050, 1148 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (595): { + 828, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049782, + [ 232.491, 178.395, 7.83468 ], + [ 7.66706, 79.9911, 3.86212 ], + [ 0.0203304, 0.0061651 ], + [ inf, inf, inf, inf ], + [ 992, 1088, 1111, 1207 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1052, 1148 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (596): { + 829, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 232.871, 178.687, 8.02593 ], + [ 7.667, 80.0194, 3.83396 ], + [ 0.0203332, 0.00618377 ], + [ inf, inf, inf, inf ], + [ 993, 1089, 1112, 1208 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1053, 1149 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (597): { + 830, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 233.251, 178.978, 8.21605 ], + [ 7.66685, 80.0479, 3.80569 ], + [ 0.0203349, 0.00619864 ], + [ inf, inf, inf, inf ], + [ 995, 1089, 1114, 1208 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1055, 1149 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (598): { + 831, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049907, + [ 233.632, 179.271, 8.40507 ], + [ 7.66769, 80.0762, 3.77698 ], + [ 0.0203437, 0.00621727 ], + [ inf, inf, inf, inf ], + [ 996, 1089, 1115, 1208 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1056, 1149 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (599): { + 832, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049779, + [ 234.013, 179.563, 8.59292 ], + [ 7.66905, 80.1043, 3.74813 ], + [ 0.0203478, 0.00623151 ], + [ inf, inf, inf, inf ], + [ 998, 1090, 1117, 1209 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1058, 1150 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (600): { + 833, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049908, + [ 234.394, 179.855, 8.77892 ], + [ 7.67093, 80.1304, 3.71919 ], + [ 0.0203503, 0.00624384 ], + [ inf, inf, inf, inf ], + [ 999, 1090, 1118, 1209 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1059, 1150 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (601): { + 834, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049834, + [ 234.774, 180.147, 8.96337 ], + [ 7.67308, 80.1552, 3.69028 ], + [ 0.0203588, 0.00625521 ], + [ inf, inf, inf, inf ], + [ 1000, 1090, 1119, 1209 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1060, 1150 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (602): { + 835, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049859, + [ 235.16, 180.443, 9.14625 ], + [ 7.67317, 80.1818, 3.6616 ], + [ 0.0203632, 0.00626662 ], + [ inf, inf, inf, inf ], + [ 1001, 1091, 1120, 1210 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1061, 1151 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (603): { + 836, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049829, + [ 235.55, 180.742, 9.3281 ], + [ 7.67211, 80.2093, 3.63308 ], + [ 0.0203661, 0.0062844 ], + [ inf, inf, inf, inf ], + [ 1002, 1091, 1121, 1210 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1062, 1151 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (604): { + 837, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 235.913, 181.021, 9.46631 ], + [ 7.67398, 80.2344, 3.60587 ], + [ 0.0203744, 0.00629835 ], + [ inf, inf, inf, inf ], + [ 1004, 1091, 1123, 1210 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1064, 1151 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (605): { + 838, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049852, + [ 236.262, 181.288, 9.57954 ], + [ 7.67751, 80.2581, 3.57941 ], + [ 0.0203791, 0.00631799 ], + [ inf, inf, inf, inf ], + [ 1005, 1092, 1124, 1211 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1065, 1152 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (606): { + 839, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 236.632, 181.572, 9.72801 ], + [ 7.68108, 80.2832, 3.54879 ], + [ 0.020382, 0.00634042 ], + [ inf, inf, inf, inf ], + [ 1007, 1092, 1126, 1211 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1067, 1152 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (607): { + 840, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 237.028, 181.876, 9.92055 ], + [ 7.6847, 80.3098, 3.51295 ], + [ 0.0203914, 0.00636452 ], + [ inf, inf, inf, inf ], + [ 1009, 1092, 1128, 1211 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1069, 1152 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (608): { + 841, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049858, + [ 237.422, 182.179, 10.1017 ], + [ 7.69001, 80.3353, 3.48081 ], + [ 0.0203968, 0.00639585 ], + [ inf, inf, inf, inf ], + [ 1012, 1093, 1131, 1212 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1072, 1153 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (609): { + 842, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049784, + [ 237.814, 182.479, 10.2753 ], + [ 7.69636, 80.36, 3.45105 ], + [ 0.0204075, 0.00642332 ], + [ inf, inf, inf, inf ], + [ 1015, 1093, 1134, 1212 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1075, 1153 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (610): { + 843, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049887, + [ 238.151, 182.738, 10.4256 ], + [ 7.70226, 80.3808, 3.42499 ], + [ 0.0204142, 0.00646267 ], + [ inf, inf, inf, inf ], + [ 1018, 1094, 1137, 1213 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1078, 1154 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (611): { + 844, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049846, + [ 238.455, 182.971, 10.5611 ], + [ 7.70788, 80.3991, 3.40128 ], + [ 0.0204261, 0.00649572 ], + [ inf, inf, inf, inf ], + [ 1021, 1094, 1140, 1213 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1081, 1154 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (612): { + 845, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049873, + [ 238.781, 183.221, 10.7059 ], + [ 7.71363, 80.4188, 3.37542 ], + [ 0.0204329, 0.00654561 ], + [ inf, inf, inf, inf ], + [ 1026, 1095, 1145, 1214 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1086, 1155 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (613): { + 846, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049851, + [ 239.291, 183.613, 10.9296 ], + [ 7.72052, 80.4502, 3.33139 ], + [ 0.0204448, 0.00658324 ], + [ inf, inf, inf, inf ], + [ 1029, 1095, 1148, 1214 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1089, 1155 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (614): { + 847, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.0498, + [ 239.728, 183.948, 11.1165 ], + [ 7.72966, 80.4752, 3.29588 ], + [ 0.0204519, 0.0066261 ], + [ inf, inf, inf, inf ], + [ 1033, 1096, 1152, 1215 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1093, 1156 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (615): { + 848, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049849, + [ 240.118, 184.247, 11.2801 ], + [ 7.74026, 80.4962, 3.26578 ], + [ 0.0204639, 0.00667045 ], + [ inf, inf, inf, inf ], + [ 1037, 1096, 1156, 1215 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1097, 1156 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (616): { + 849, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049856, + [ 240.502, 184.542, 11.4417 ], + [ 7.75294, 80.5169, 3.23426 ], + [ 0.0204714, 0.00672208 ], + [ inf, inf, inf, inf ], + [ 1041, 1097, 1160, 1216 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1101, 1157 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (617): { + 850, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049826, + [ 240.882, 184.833, 11.6019 ], + [ 7.76697, 80.5374, 3.20182 ], + [ 0.0204834, 0.00677002 ], + [ inf, inf, inf, inf ], + [ 1046, 1097, 1165, 1216 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1106, 1157 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (618): { + 851, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049861, + [ 241.268, 185.13, 11.7606 ], + [ 7.78131, 80.5571, 3.16956 ], + [ 0.0204978, 0.00682275 ], + [ inf, inf, inf, inf ], + [ 1050, 1098, 1169, 1217 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1110, 1158 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (619): { + 852, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049864, + [ 241.658, 185.429, 11.9181 ], + [ 7.79586, 80.5762, 3.13744 ], + [ 0.0205064, 0.00687777 ], + [ inf, inf, inf, inf ], + [ 1055, 1099, 1174, 1218 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1115, 1159 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (620): { + 853, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049755, + [ 242.048, 185.728, 12.0732 ], + [ 7.8138, 80.5943, 3.10327 ], + [ 0.0205194, 0.00693352 ], + [ inf, inf, inf, inf ], + [ 1060, 1099, 1179, 1218 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1120, 1159 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (621): { + 854, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049924, + [ 242.439, 186.028, 12.2274 ], + [ 7.83417, 80.6116, 3.06751 ], + [ 0.0205274, 0.00698983 ], + [ inf, inf, inf, inf ], + [ 1065, 1100, 1184, 1219 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1125, 1160 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (622): { + 855, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049827, + [ 242.828, 186.327, 12.3793 ], + [ 7.85417, 80.6288, 3.0334 ], + [ 0.0205401, 0.00704585 ], + [ inf, inf, inf, inf ], + [ 1071, 1101, 1190, 1220 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1131, 1161 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (623): { + 856, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049882, + [ 243.218, 186.626, 12.5299 ], + [ 7.87395, 80.6458, 3.00038 ], + [ 0.0205548, 0.0071017 ], + [ inf, inf, inf, inf ], + [ 1076, 1101, 1195, 1220 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1136, 1161 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (624): { + 857, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049821, + [ 243.594, 186.914, 12.6342 ], + [ 7.89557, 80.6612, 2.96722 ], + [ 0.0205707, 0.00715727 ], + [ inf, inf, inf, inf ], + [ 1081, 1102, 1200, 1221 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1141, 1162 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (625): { + 858, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049853, + [ 243.958, 187.194, 12.7051 ], + [ 7.91856, 80.6753, 2.9339 ], + [ 0.0205876, 0.00721857 ], + [ inf, inf, inf, inf ], + [ 1086, 1103, 1205, 1222 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1146, 1163 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (626): { + 859, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 244.339, 187.486, 12.8088 ], + [ 7.94419, 80.6908, 2.89742 ], + [ 0.0205974, 0.00727675 ], + [ inf, inf, inf, inf ], + [ 1092, 1104, 1211, 1223 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1152, 1164 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (627): { + 860, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049822, + [ 244.746, 187.798, 12.9653 ], + [ 7.97404, 80.7086, 2.85584 ], + [ 0.0206119, 0.00733731 ], + [ inf, inf, inf, inf ], + [ 1097, 1105, 1216, 1224 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ 1157, 1165 ], + invalid, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (628): { + 861, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049865, + [ 245.15, 188.108, 13.1131 ], + [ 8.00584, 80.7235, 2.81819 ], + [ 0.0206257, 0.00739835 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (629): { + 862, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049832, + [ 245.552, 188.417, 13.2536 ], + [ 8.03919, 80.7359, 2.78377 ], + [ 0.0206413, 0.00746085 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (630): { + 863, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049827, + [ 245.907, 188.689, 13.3759 ], + [ 8.0698, 80.7468, 2.75061 ], + [ 0.0206572, 0.00752355 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (631): { + 864, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049843, + [ 246.225, 188.933, 13.4841 ], + [ 8.09828, 80.7565, 2.71843 ], + [ 0.0206721, 0.00757338 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (632): { + 865, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049845, + [ 246.553, 189.185, 13.5953 ], + [ 8.12776, 80.7663, 2.68564 ], + [ 0.0206898, 0.00765036 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (633): { + 866, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049842, + [ 247.101, 189.605, 13.7726 ], + [ 8.1797, 80.778, 2.63939 ], + [ 0.020706, 0.00771621 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (634): { + 867, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.04988, + [ 247.573, 189.967, 13.9234 ], + [ 8.22501, 80.7878, 2.59809 ], + [ 0.0207225, 0.00778219 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (635): { + 868, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049814, + [ 247.981, 190.28, 14.0519 ], + [ 8.26478, 80.7958, 2.56096 ], + [ 0.0207391, 0.0078484 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (636): { + 869, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049838, + [ 248.394, 190.597, 14.1785 ], + [ 8.3085, 80.8035, 2.52308 ], + [ 0.0207559, 0.00791509 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (637): { + 870, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049788, + [ 248.812, 190.918, 14.3033 ], + [ 8.3555, 80.8107, 2.48461 ], + [ 0.0207725, 0.00798108 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (638): { + 871, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049898, + [ 249.23, 191.239, 14.4263 ], + [ 8.40405, 80.8168, 2.44698 ], + [ 0.0207892, 0.00804987 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (639): { + 872, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049871, + [ 249.648, 191.559, 14.5474 ], + [ 8.45383, 80.8217, 2.41017 ], + [ 0.0208059, 0.00811775 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (640): { + 873, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049742, + [ 250.069, 191.883, 14.6661 ], + [ 8.50574, 80.8262, 2.37154 ], + [ 0.0208227, 0.00818595 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + }, + (641): { + 874, + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + 0, + 0, + 0, + 0, + 0, + 0, + 0.049902, + [ 250.497, 192.211, 14.7834 ], + [ 8.55983, 80.8303, 2.33107 ], + [ 0.0208397, 0.00825495 ], + [ inf, inf, inf, inf ], + [ -10059, -10059, -9940, -9940 ], + [ -1, -1, -1, -1 ], + [ -1, -1, -1, -1 ], + [ 0, 0 ], + [ -9999, -9999 ], + invalid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 2 + } + } + } + } + } +} +} diff --git a/tools/testfiles/tcompound_enum.h5 b/tools/testfiles/tcompound_enum.h5 Binary files differnew file mode 100644 index 0000000..2e66da2 --- /dev/null +++ b/tools/testfiles/tcompound_enum.h5 diff --git a/vms/COPYING b/vms/COPYING deleted file mode 100644 index 6903daf..0000000 --- a/vms/COPYING +++ /dev/null @@ -1,16 +0,0 @@ - - Copyright by The HDF Group and - The Board of Trustees of the University of Illinois. - All rights reserved. - - The files and subdirectories in this directory are 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://www.hdfgroup.org/HDF5/doc/Copyright.html. If you do not - have access to either file, you may request a copy from - help@hdfgroup.org. - diff --git a/vms/build.com b/vms/build.com deleted file mode 100644 index c6b972a..0000000 --- a/vms/build.com +++ /dev/null @@ -1,65 +0,0 @@ -$!# -$!# 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. -$!# -$! -$! -$! This file builds C, Fortran, C++ HDF5 libraries and runs the tests -$! Specify location of the top HDF5 source directory -$ -$ hdf5top == "disk$user:[hdfgroup.hdf5]" -$ len = F$LENGTH(hdf5top) -$ tmp = F$EXTRACT(0, len-1, hdf5top) -$ hdf5vms = tmp + ".VMS]" -$ hdf5ctest = tmp + ".TEST]" -$ hdf5f90test = tmp + ".FORTRAN.TEST]" -$ hdf5cxxtest = tmp + ".C__.TEST]" -$ hdf5toolstest = tmp + ".TOOLS.TESTFILES]" -$ hdf5toolstest_h5diff = tmp + ".TOOLS.H5DIFF.TESTFILES]" -$ hdf5toolstest_h5repack = tmp + ".TOOLS.H5REPACK.TESTFILES]" -$ hdf5toolstest_h5copy = tmp + ".TOOLS.H5COPY.TESTFILES]" -$ hdf5toolstest_h5import = tmp + ".TOOLS.H5IMPORT.TESTFILES]" -$ hdf5toolstest_h5jam = tmp + ".TOOLS.H5JAM.TESTFILES]" -$ set def 'hdf5vms' -$@make -$ set def 'hdf5ctest' -$@check -$ set def 'hdf5f90test' -$@check -$ set def 'hdf5cxxtest' -$@check -$ set def 'hdf5toolstest' -$ copy [-.h5dump]check_h5dump.com check_h5dump.com -$ copy [-.h5ls]check_h5ls.com check_h5ls.com -$@check_h5dump.com -$@check_h5ls.com -$ set def 'hdf5toolstest_h5diff' -$ copy [-]check_h5diff.com check_h5diff.com -$@check_h5diff.com -$ set def 'hdf5toolstest_h5repack' -$ copy [-]check_h5repack.com check_h5repack.com -$@check_h5repack.com -$! -$ set def 'hdf5toolstest_h5copy' -$ copy [-]check_h5copy.com check_h5copy.com -$@check_h5copy.com -$! -$ set def 'hdf5toolstest_h5import' -$ copy [.-]check_h5import.com check_h5import.com -$@check_h5import.com -$! -$ set def 'hdf5toolstest_h5jam' -$ copy [.-]check_h5jam.com check_h5jam.com -$@check_h5jam.com -$ -$ exit diff --git a/vms/c++/examples/check.com b/vms/c++/examples/check.com deleted file mode 100644 index 0149819..0000000 --- a/vms/c++/examples/check.com +++ /dev/null @@ -1,53 +0,0 @@ -$!# -$!# 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. -$!# -$! -$! Command file to run C++ examples -$! -$! -$ type sys$input - - Running create -$ run create -$! -$ type sys$input - - Running readdata -$ run readdata -$! -$ type sys$input - - Running writedata -$ run writedata -$! -$ type sys$input - - Running compound -$ run compound -$! -$ type sys$input - - Running extend_ds -$ run extend_ds -$! -$ type sys$input - - Running chunks -$ run chunks -$! -$ type sys$input - - Running h5group -$ run h5group -$ exit diff --git a/vms/c++/examples/make.com b/vms/c++/examples/make.com deleted file mode 100644 index 45d74ce..0000000 --- a/vms/c++/examples/make.com +++ /dev/null @@ -1,79 +0,0 @@ -$!# -$!# 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. -$!# -$! -$! Make HDF5 C++ examples -$! -$ 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]) -$! -$! -$ cxxobj= "chunks.cxx, compound.cxx, create.cxx, extend_ds.cxx, h5group.cxx, "+- - "readdata.cxx, writedata.cxx" -$! -$! -$ ccc 'cxxobj -$ type sys$input - - Creating chunks -$ cxxlink chunks, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - - Creating compound -$ cxxlink compound, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - - Creating create -$ cxxlink create, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - - Creating extend_ds -$ cxxlink extend_ds, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - - Creating h5group -$ cxxlink h5group, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - - Creating readdata -$ cxxlink readdata, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - - Creating writedata -$ cxxlink writedata, - - [-.-.lib]hdf5_cplus.olb/lib, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input -$! -$ exit diff --git a/vms/c++/src/make.com b/vms/c++/src/make.com deleted file mode 100644 index 37525bc..0000000 --- a/vms/c++/src/make.com +++ /dev/null @@ -1,85 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 C++ library -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! cxxopt = "/float=ieee_float/standard=strict_ansi/define=H5_VMS" -$ ccc := cxx 'cxxopt /include=([-.-.src]) -$! -$! type sys$input -$! Creating HDF5 C++ library -$! -$ lib/create/object hdf5_cplus.olb -$ ccc H5AbstractDs.cxx -$ lib/insert/object hdf5_cplus H5AbstractDs -$ ccc H5ArrayType.cxx -$ lib/insert/object hdf5_cplus H5ArrayType -$ ccc H5AtomType.cxx -$ lib/insert/object hdf5_cplus H5AtomType -$ ccc H5Attribute.cxx -$ lib/insert/object hdf5_cplus H5Attribute -$ ccc H5CommonFG.cxx -$ lib/insert/object hdf5_cplus H5CommonFG -$ ccc H5CompType.cxx -$ lib/insert/object hdf5_cplus H5CompType -$ ccc H5DataSet.cxx -$ lib/insert/object hdf5_cplus H5DataSet -$ ccc H5DataSpace.cxx -$ lib/insert/object hdf5_cplus H5DataSpace -$ ccc H5DataType.cxx -$ lib/insert/object hdf5_cplus H5DataType -$ ccc H5DcreatProp.cxx -$ lib/insert/object hdf5_cplus H5DcreatProp -$ ccc H5DxferProp.cxx -$ lib/insert/object hdf5_cplus H5DxferProp -$ ccc H5EnumType.cxx -$ lib/insert/object hdf5_cplus H5EnumType -$ ccc H5Exception.cxx -$ lib/insert/object hdf5_cplus H5Exception -$ ccc H5FaccProp.cxx -$ lib/insert/object hdf5_cplus H5FaccProp -$ ccc H5FcreatProp.cxx -$ lib/insert/object hdf5_cplus H5FcreatProp -$ ccc H5File.cxx -$ lib/insert/object hdf5_cplus H5File -$ ccc H5FloatType.cxx -$ lib/insert/object hdf5_cplus H5FloatType -$ ccc H5Group.cxx -$ lib/insert/object hdf5_cplus H5Group -$ ccc H5IdComponent.cxx -$ lib/insert/object hdf5_cplus H5IdComponent -$ ccc H5IntType.cxx -$ lib/insert/object hdf5_cplus H5IntType -$ ccc H5Library.cxx -$ lib/insert/object hdf5_cplus H5Library -$ ccc H5Object.cxx -$ lib/insert/object hdf5_cplus H5Object -$ ccc H5PredType.cxx -$ lib/insert/object hdf5_cplus H5PredType -$ ccc H5PropList.cxx -$ lib/insert/object hdf5_cplus H5PropList -$ ccc H5StrType.cxx -$ lib/insert/object hdf5_cplus H5StrType -$ ccc H5VarLenType.cxx -$ lib/insert/object hdf5_cplus H5VarLenType -$! -$ type sys$input - Done -$ exit diff --git a/vms/c++/test/check.com b/vms/c++/test/check.com deleted file mode 100644 index cd523c3..0000000 --- a/vms/c++/test/check.com +++ /dev/null @@ -1,23 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Command file to run C++ tests -$! -$ type sys$input - Running C++ tests -$! -$ run testhdf5 -$ exit diff --git a/vms/c++/test/make.com b/vms/c++/test/make.com deleted file mode 100644 index 7016a18..0000000 --- a/vms/c++/test/make.com +++ /dev/null @@ -1,49 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 C++ library tests -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! cxxopt = "/float=ieee_float/standard=strict_ansi/define=H5_VMS" -$ -$ ccc := cxx 'cxxopt /include=([-.-.src], [-.-.test], [-.src]) -$! -$! -$! -$ ccc h5cpputil -$ ccc dsets -$ ccc tattr -$ ccc tcompound -$ ccc testhdf5 -$ ccc tfile -$ ccc tfilter -$ ccc th5s -$ ccc tlinks -$ ccc trefer -$ ccc ttypes -$ ccc tvlstr -$ type sys$input - Creating testhdf5 -$ cxxlink testhdf5, dsets, h5cpputil, tattr, tcompound, tfile, tfilter, th5s, - - tlinks, trefer, ttypes, tvlstr, - - [-.src]hdf5_cplus.olb/lib, [-.-.test]libh5test.olb/lib, - - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Done -$ exit diff --git a/vms/examples/check.com b/vms/examples/check.com deleted file mode 100644 index e78dcf5..0000000 --- a/vms/examples/check.com +++ /dev/null @@ -1,31 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$ type sys$input - Running examples -$ run h5_write -$ run h5_read -$ run h5_extend_write -$ run h5_chunk_read -$ run h5_compound -$ run h5_group -$ run h5_select -$ run h5_attribute -$ run h5_mount -$ run h5_reference -$ run h5_ref2reg -$ run h5_drivers -$ exit diff --git a/vms/examples/make.com b/vms/examples/make.com deleted file mode 100644 index 2de398e..0000000 --- a/vms/examples/make.com +++ /dev/null @@ -1,79 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 C examples -$! -$ 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 -$! -$ cobj= "h5_write.c, h5_read.c, h5_extend_write.c, h5_chunk_read.c, "+- - "h5_compound.c, h5_group.c, h5_select.c, h5_attribute.c, "+- - "h5_mount.c, h5_ref2reg.c, h5_reference.c, h5_drivers.c " -$! -$ ccc 'cobj -$ -$ type sys$input - Creating h5_write -$ link h5_write, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_read -$ link h5_read, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_extend_write -$ link h5_extend_write, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_chunk_read -$ link h5_chunk_read, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_compound -$ link h5_compound, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_group -$ link h5_group, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_select -$ link h5_select, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_attribute -$ link h5_attribute, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_mount -$ link h5_mount, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_reference -$ link h5_reference, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_ref2reg -$ link h5_ref2reg, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Creating h5_drivers -$ link h5_drivers, - - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ exit diff --git a/vms/fortran/examples/check.com b/vms/fortran/examples/check.com deleted file mode 100644 index 63c1c25..0000000 --- a/vms/fortran/examples/check.com +++ /dev/null @@ -1,94 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Command file to run Fortran examples; examples need to run in a defined -$! order due to file dependencies. -$! -$ type sys$input - - - Running Fortran examples - -$ type sys$input - - Running dsetexample -$ run dsetexample -$ -$ type sys$input - - Running fileexample -$ run fileexample -$ -$ type sys$input - - Running rwdsetexample -$ run rwdsetexample -$ -$ type sys$input - - Running attrexample -$ run attrexample -$ -$ type sys$input - - Running groupexample -$ run groupexample -$ -$ type sys$input - - Running grpsexample -$ run grpsexample -$ -$ type sys$input - - Running grpdsetexample -$ run grpdsetexample -$ -$ type sys$input - - Running hyperslab -$ run hyperslab -$ -$ type sys$input - - Running selectele -$ run selectele -$ -$ type sys$input - - Running grpit -$ run grpit -$ -$ type sys$input - - Running refobjexample -$ run refobjexample -$ -$ type sys$input - - Running refregexample -$ run refregexample -$ -$ type sys$input - - Running mountexample -$ run mountexample -$ -$ type sys$input - - Running compound -$ run compound -$ exit diff --git a/vms/fortran/examples/make.com b/vms/fortran/examples/make.com deleted file mode 100644 index 6c5bfe7..0000000 --- a/vms/fortran/examples/make.com +++ /dev/null @@ -1,117 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 Fortran examples -$! -$ fcopt = "/float=ieee_float/define=H5_VMS" -$ define zlib_dir disk$user:[hdfgroup.zlib-1_2_5_ieee] -$ fff := fortran 'fcopt /module=[-.-.include] -$ -$ type sys$input - Compiling HDF5 Fortran examples -$! -$ ffiles="dsetexample.f90, fileexample.f90, rwdsetexample.f90, "+- - "attrexample.f90, groupexample.f90, grpsexample.f90, "+- - "grpdsetexample.f90, hyperslab.f90, selectele.f90, grpit.f90,"+- - "refobjexample.f90, refregexample.f90, mountexample.f90,"+- - "compound.f90" -$! -$ fff 'ffiles -$ type sys$input - - Creating dsetexample -$ link dsetexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating fileexample -$ link fileexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating rwdsetexample -$ link rwdsetexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating attrexample -$ link attrexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating groupexample -$ link groupexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating grpsexample -$ link grpsexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating grpdsetexample -$ link grpdsetexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating hyperslab -$ link hyperslab ,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating selectele -$ link selectele,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating grpit -$ link grpit,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating refobjexample -$ link refobjexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating refregexample -$ link refregexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating mountexample -$ link mountexample,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - - Creating compound -$ link compound,- - [-.-.lib]hdf5_fortran.olb/lib,- - [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ exit diff --git a/vms/fortran/src/make.com b/vms/fortran/src/make.com deleted file mode 100644 index 5ad89ff..0000000 --- a/vms/fortran/src/make.com +++ /dev/null @@ -1,75 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 Fortran library -$! -$! The thre two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir" -$! fcopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir" -$ ccc := cc 'ccopt /include=[-.-.src] -$ fff := fortran 'fcopt -$ type sys$input - Creating and running H5test_kind to generate H5fortran_detect.f90 -$! -$ fff H5test_kind_sizeof.f90 -$ link H5test_kind_sizeof -$ define/user_mode sys$output H5fortran_detect.f90 -$ run H5test_kind_sizeof -$! -$ type sys$input - Creating and running H5fortran_detect.f90 to generate H5fort_type_defines.h -$! -$ fff H5fortran_detect.f90 -$ link H5fortran_detect -$ define/user_mode sys$output H5fort_type_defines.h -$ run H5fortran_detect -$! -$ type sys$input - Creating and running H5match_types to generate H5fortran_types.f90 -$! -$ ccc H5match_types.c -$ link H5match_types -$ run H5match_types -$! -$! -$ type sys$input - Creating HDF5 Fortran library -$! -$ cobj="H5f90kit, H5_f, H5Af, H5Df, H5Ef, H5Ff, H5Gf, "+- - "H5If, H5Lf, H5Of, H5Pf, H5Rf, H5Sf, H5Tf, H5Zf" -$ ffiles= "H5_ff.f90, H5Aff.f90, H5Dff.f90, H5Eff.f90,"+- - "H5Lff.f90, H5Off.f90,"+- - "H5Fff.f90, H5Gff.f90, H5Iff.f90, H5Pff.f90, H5Rff.f90, H5Sff.f90,"+- - "H5Tff.f90, H5Zff.f90, H5_DBLE_InterfaceInclude.f90, HDF5.f90" -$ fobj="H5f90global, "+- - "H5fortran_types, H5_ff, H5Aff, H5Dff, H5Eff,"+- - "H5Fff, H5Gff, H5Iff, H5Lff, H5Off, H5Pff, H5Rff, H5Sff,"+- - "H5Tff, H5Zff, H5_DBLE_InterfaceInclude, HDF5" -$! -$ ccc 'cobj -$ fff H5fortran_types.f90 -$ fff H5f90global.f90 -$ -$ fff 'ffiles -$ library/create []hdf5_fortran 'cobj -$ library/replace []hdf5_fortran 'fobj -$ type sys$input - Done -$ exit diff --git a/vms/fortran/test/check.com b/vms/fortran/test/check.com deleted file mode 100644 index 0a53e20..0000000 --- a/vms/fortran/test/check.com +++ /dev/null @@ -1,26 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Command file to run Fortran tests -$! -$! -$ type sys$input - Running Fortran tests -$ run fortranlib_test -$ run fortranlib_test_1_8 -$ run fflush1 -$ run fflush2 -$ exit diff --git a/vms/fortran/test/make.com b/vms/fortran/test/make.com deleted file mode 100644 index 478c64c..0000000 --- a/vms/fortran/test/make.com +++ /dev/null @@ -1,69 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 Fortran tests -$! -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir" -$! fcopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir" -$ ccc := cc 'ccopt /include=[-.-.src] -$ fff := fortran 'fcopt /module=[-.src] -$ -$ type sys$input - Creating HDF5 Fortran tests -$! -$ cobj="t " -$ ffiles="fortranlib_test.f90, tH5F.f90, tH5D.f90, "+- - "tH5R.f90, tH5S.f90, tH5T.f90, tH5VL.f90, tH5Z.f90, tH5Sselect.f90,"+- - "tH5P.f90, tH5A.f90, tH5I.f90, tH5G.f90, tH5E.f90, tf.f90" -$ ffiles18="fortranlib_test_1_8.f90, tH5F.f90, tH5O.f90,"+- - "tH5A_1_8.f90, tH5G_1_8.f90" - -$ fobj="fortranlib_test, tH5F, tH5D, "+- - "tH5R, tH5S, tH5T, tH5VL, tH5Z, tH5Sselect,"+- - "tH5P, tH5A, tH5I, tH5G, tH5E, tf" -$ fobj18="fortranlib_test_1_8, tH5F, tH5O, tH5A_1_8, tH5G_1_8" -$! -$ ccc 'cobj -$ fff 'ffiles -$ fff 'ffiles18 -$ fff fflush1.f90 -$ fff fflush2.f90 -$ library/create []h5test_fortran t, tf -$ link fflush1,h5test_fortran.olb/lib,- - [-.-.test]libh5test.olb/lib, - - [-.src]hdf5_fortran.olb/lib,- - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ link fflush2,h5test_fortran.olb/lib,- - [-.-.test]libh5test.olb/lib, - - [-.src]hdf5_fortran.olb/lib,- - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ link/exec=fortranlib_test.exe - - fortranlib_test.obj, tH5F.obj, tH5D.obj, - - tH5R.obj, tH5S.obj, tH5T.obj, tH5VL.obj, tH5Z.obj, tH5Sselect.obj, - - tH5P.obj, tH5A.obj, tH5I.obj, tH5G.obj, tH5E.obj,- - h5test_fortran.olb/lib,[-.-.test]libh5test.olb/lib, - - [-.src]hdf5_fortran.olb/lib,- - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ link/exec=fortranlib_test_1_8.exe - - fortranlib_test_1_8.obj, tH5F.obj, tH5O.obj, tH5A_1_8.obj, tH5G_1_8.obj,- - h5test_fortran.olb/lib,[-.-.test]libh5test.olb/lib, - - [-.src]hdf5_fortran.olb/lib,- - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created HDF5 Fortran tests -$! -$ exit diff --git a/vms/install.com b/vms/install.com deleted file mode 100644 index f1f9304..0000000 --- a/vms/install.com +++ /dev/null @@ -1,166 +0,0 @@ -$!# -$!# 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. -$!# -$! -$! -$! This command file installs built binaries, header files, examples and -$! scripts under [.hdf5] directory in the main distribution -$! -$ -$! -$! -$ hdf5top = F$DIRECTORY() -$ len = F$LENGTH(hdf5top) -$ hdf5top_dir = F$EXTRACT(0, len-4, hdf5top) -$! -$ hdf5src = hdf5top_dir + "SRC]" -$ hdf5examples = hdf5top_dir + "EXAMPLES]" -$ hdf5tools_h5copy = hdf5top_dir + "TOOLS.H5COPY]" -$ hdf5tools_h5diff = hdf5top_dir + "TOOLS.H5DIFF]" -$ hdf5tools_h5dump = hdf5top_dir + "TOOLS.H5DUMP]" -$ hdf5tools_h5ls = hdf5top_dir + "TOOLS.H5LS]" -$ hdf5tools_h5repack = hdf5top_dir + "TOOLS.H5REPACK]" -$ hdf5tools_h5jam = hdf5top_dir + "TOOLS.H5JAM]" -$ hdf5tools_h5import = hdf5top_dir + "TOOLS.H5IMPORT]" -$ hdf5tools_h5stat = hdf5top_dir + "TOOLS.H5STAT]" -$ hdf5tools_h5misc = hdf5top_dir + "TOOLS.H5MISC]" -$ hdf5fortran_examples = hdf5top_dir + "FORTRAN.EXAMPLES]" -$ hdf5fortran_src = hdf5top_dir + "FORTRAN.SRC]" -$ hdf5cxx_src = hdf5top_dir + "C__.SRC]" -$ hdf5cxx_examples = hdf5top_dir + "C__.EXAMPLES]" -$! -$ hdf5install = hdf5top_dir + "HDF5]" -$ hdf5install_include = hdf5top_dir + "HDF5.INCLUDE]" -$ hdf5install_examples = hdf5top_dir + "HDF5.EXAMPLES]" -$ hdf5install_examples_c = hdf5top_dir + "HDF5.EXAMPLES.C]" -$ hdf5install_examples_f90 = hdf5top_dir + "HDF5.EXAMPLES.F90]" -$ hdf5install_examples_cxx = hdf5top_dir + "HDF5.EXAMPLES.CXX]" -$ hdf5install_lib = hdf5top_dir + "HDF5.LIB]" -$ hdf5install_bin = hdf5top_dir + "HDF5.BIN]" -$ -$ if F$SEARCH(hdf5install) .NES. "" -$ then write sys$output "''hdf5install' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install'..." -$ create/dir 'hdf5install' -$ endif -$ -$ if F$SEARCH(hdf5install_include) .NES. "" -$ then write sys$output "''hdf5install_include' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_include'..." -$ create/dir 'hdf5install_include' -$ endif -$ if F$SEARCH(hdf5install_lib) .NES. "" -$ then write sys$output "''hdf5install_lib' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_lib'..." -$ create/dir 'hdf5install_lib' -$ endif -$ if F$SEARCH(hdf5install_bin) .NES. "" -$ then write sys$output "''hdf5install_bin' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_bin'..." -$ create/dir 'hdf5install_bin' -$ endif -$ if F$SEARCH(hdf5install_examples) .NES. "" -$ then write sys$output "''hdf5install_examples' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_examples'..." -$ create/dir 'hdf5install_examples' -$ endif -$ if F$SEARCH(hdf5install_examples_c) .NES. "" -$ then write sys$output "''hdf5install_examples_c' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_examples_c'..." -$ create/dir 'hdf5install_examples_c' -$ endif -$ if F$SEARCH(hdf5install_examples_f90) .NES. "" -$ then write sys$output "''hdf5install_examples_f90' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_examples_f90'..." -$ create/dir 'hdf5install_examples_f90' -$ endif -$ if F$SEARCH(hdf5install_examples_cxx) .NES. "" -$ then write sys$output "''hdf5install_examples_cxx' directory exists, will not create" -$ else -$ write sys$output "Creating ''hdf5install_examples_cxx'..." -$ create/dir 'hdf5install_examples_cxx' -$ endif - -$! -$ write sys$output "Installing C library and header files" -$ set def 'hdf5src' -$ copy HDF5.olb 'hdf5install_lib' -$ copy *.h 'hdf5install_include' -$ del 'hdf5install_include'*private*.*;* -$! -$ write sys$output "Installing Fortran library module files" -$ set def 'hdf5fortran_src' -$ copy HDF5_FORTRAN.olb 'hdf5install_lib' -$ copy *.F90$MOD 'hdf5install_include' -$! -$ write sys$output "Installing C++ library and header files" -$ set def 'hdf5cxx_src' -$ copy HDF5_CPLUS.olb 'hdf5install_lib' -$ copy *.h 'hdf5install_include' -$! -$ write sys$output "Installing utilties" -$ set def 'hdf5tools_h5copy' -$ copy h5copy.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5diff' -$ copy h5diff.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5dump' -$ copy h5dump.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5repack' -$ copy h5repack.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5ls' -$ copy h5ls.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5jam' -$ copy h5jam.exe 'hdf5install_bin' -$ copy h5unjam.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5import' -$ copy h5import.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5stat' -$ copy h5stat.exe 'hdf5install_bin' -$! -$ set def 'hdf5tools_h5misc' -$ copy h5debug.exe 'hdf5install_bin' -$ copy h5mkgrp.exe 'hdf5install_bin' -$! -$ write sys$output "Installing examples" -$ set def 'hdf5examples' -$ copy *.c 'hdf5install_examples_c' -$! -$ set def 'hdf5fortran_examples' -$ copy *.f90 'hdf5install_examples_f90' -$! -$ set def 'hdf5cxx_examples' -$ copy *.cpp 'hdf5install_examples_cxx' -$ rename 'hdf5install_examples_cxx'*.cpp 'hdf5install_examples_cxx'*.cxx -$ -$ -$! -$ set def 'hdf5top' -$ copy [.examples]*.com 'hdf5install_examples_c' -$ copy [.fortran.examples]*.com 'hdf5install_examples_f90' -$ copy [.c__.examples]*.com 'hdf5install_examples_cxx' -$ exit diff --git a/vms/make.com b/vms/make.com deleted file mode 100644 index 4be8784..0000000 --- a/vms/make.com +++ /dev/null @@ -1,145 +0,0 @@ -$!# -$!# 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. -$!# -$! -$! -$! This file copies all make files from the VMS directory to the -$! source directories and builds libraries, tests, and utilties -$! -$ copy [.c__.src]make.com [-.c__.src] -$ copy [.c__.test]*.com [-.c__.test] -$ copy [.fortran.src]make.com [-.fortran.src] -$ copy [.fortran.test]*.com [-.fortran.test] -$ copy [.src]make.com [-.src] -$ copy [.src]h5pubconf.h [-.src] -$ copy [.test]*.com [-.test] -$ copy [.tools.h5copy]*.com [-.tools.h5copy] -$ copy [.tools.h5dump]*.com [-.tools.h5dump] -$ copy [.tools.h5ls]*.com [-.tools.h5ls] -$ copy [.tools.h5diff]*.com [-.tools.h5diff] -$ copy [.tools.h5repack]*.com [-.tools.h5repack] -$ copy [.tools.h5import]*.com [-.tools.h5import] -$ copy [.tools.h5jam]*.com [-.tools.h5jam] -$ copy [.tools.h5stat]*.com [-.tools.h5stat] -$ copy [.tools.lib]make.com [-.tools.lib] -$ copy [.tools.testfiles]*.ddl [-.tools.testfiles] -$ 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 disk$user:[hdfgroup.zlib-1_2_5_ieee] -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3-ieee] -$! -$! Set up compilation flags here -$! Do not remove define=H5_VMS and standard=strict_ansi qualifiers. -$! -$ ccopt == "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/debug/nooptimize/include=zlib_dir" -$ fcopt == "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/debug/nooptimize/include=zlib_dir" -$ cxxopt == "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/debug/nooptimize/"+- - "standard=strict_ansi/include=zlib_dir" -$! -$! -$ hdf5top = F$DIRECTORY() -$ len = F$LENGTH(hdf5top) -$ hdf5top_dir = F$EXTRACT(0, len-4, hdf5top) -$! -$ hdf5src = hdf5top_dir + "SRC]" -$ hdf5test = hdf5top_dir + "TEST]" -$ hdf5examples = hdf5top_dir + "EXAMPLES]" -$ hdf5tools_lib = hdf5top_dir + "TOOLS.LIB]" -$ hdf5tools_h5copy = hdf5top_dir + "TOOLS.H5COPY]" -$ hdf5tools_h5diff = hdf5top_dir + "TOOLS.H5DIFF]" -$ hdf5tools_h5dump = hdf5top_dir + "TOOLS.H5DUMP]" -$ hdf5tools_h5import = hdf5top_dir + "TOOLS.H5IMPORT]" -$ hdf5tools_h5jam = hdf5top_dir + "TOOLS.H5JAM]" -$ hdf5tools_h5ls = hdf5top_dir + "TOOLS.H5LS]" -$ hdf5tools_h5repack = hdf5top_dir + "TOOLS.H5REPACK]" -$ hdf5tools_h5stat = hdf5top_dir + "TOOLS.H5STAT]" -$ hdf5tools_misc = hdf5top_dir + "TOOLS.MISC]" -$ hdf5fortran_examples = hdf5top_dir + "FORTRAN.EXAMPLES]" -$ hdf5fortran_src = hdf5top_dir + "FORTRAN.SRC]" -$ hdf5fortran_test = hdf5top_dir + "FORTRAN.TEST]" -$ hdf5cxx_src = hdf5top_dir + "C__.SRC]" -$ hdf5cxx_test = hdf5top_dir + "C__.TEST]" -$ hdf5cxx_examples = hdf5top_dir + "C__.EXAMPLES]" -$! -$ write sys$output "Building C library" -$ set def 'hdf5src' -$ @make.com -$! -$! -$ write sys$output "Building C library tests" -$ set def 'hdf5test' -$ @make.com -$! -$ write sys$output "Building tools library" -$ set def 'hdf5tools_lib' -$ @make.com -$! -$ write sys$output "Building h5copy" -$ set def 'hdf5tools_h5copy' -$ @make.com -$! -$ write sys$output "Building h5diff" -$ set def 'hdf5tools_h5diff' -$ @make.com -$! -$ write sys$output "Building h5dump" -$ set def 'hdf5tools_h5dump' -$ @make.com -$! -$ write sys$output "Building h5import" -$ set def 'hdf5tools_h5import' -$ @make.com -$! -$ write sys$output "Building h5jam" -$ set def 'hdf5tools_h5jam' -$ @make.com -$! -$ write sys$output "Building h5ls" -$ set def 'hdf5tools_h5ls' -$ @make.com -$! -$ write sys$output "Building h5repack" -$ set def 'hdf5tools_h5repack' -$ @make.com -$! -$ write sys$output "Building h5stat" -$ set def 'hdf5tools_h5stat' -$ @make.com -$! -$ write sys$output "Building misc" -$ set def 'hdf5tools_misc' -$ @make.com -$! -$ write sys$output "Building Fortran library" -$ set def 'hdf5fortran_src' -$ @make.com -$! -$ write sys$output "Building Fortran library tests" -$ set def 'hdf5fortran_test' -$ @make.com -$! -$ write sys$output "Building C++ library" -$ set def 'hdf5cxx_src' -$ copy *.cpp *.cxx -$ @make.com -$! -$ write sys$output "Building C++ library tests" -$ set def 'hdf5cxx_test' -$ copy *.cpp *.cxx -$ @make.com -$! -$ set def 'hdf5top' -$ exit diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h deleted file mode 100644 index ea418d9..0000000 --- a/vms/src/h5pubconf.h +++ /dev/null @@ -1,722 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * 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. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* src/H5config.h. Generated from H5config.h.in by configure. */ -/* src/H5config.h.in. Generated from configure.ac by autoheader. */ - -/* Define if building universal (internal helper macro) */ -/* #undef H5_AC_APPLE_UNIVERSAL_BUILD */ - -/* Define if your system generates wrong code for log2 routine. */ -/* #undef H5_BAD_LOG2_CODE_GENERATED */ - -/* Define if the memory buffers being written to disk should be cleared before - writing. */ -#define H5_CLEAR_MEMORY 1 - -/* Define if your system can handle converting denormalized floating-point - values. */ -#define H5_CONVERT_DENORMAL_FLOAT 1 - -/* Define if C++ compiler recognizes offsetof */ -#define H5_CXX_HAVE_OFFSETOF 1 - -/* Define the default virtual file driver to compile */ -#define H5_DEFAULT_VFD H5FD_SEC2 - -/* Define the default vol plugin to compile */ -#define H5_DEFAULT_VOL H5VL_NATIVE - -/* Define if `dev_t' is a scalar */ -#define H5_DEV_T_IS_SCALAR 1 - -/* Define to dummy `main' function (if any) required to link to the Fortran - libraries. */ -/* #undef H5_FC_DUMMY_MAIN */ - -/* Define if F77 and FC dummy `main' functions are identical. */ -/* #undef H5_FC_DUMMY_MAIN_EQ_F77 */ - -/* Define to a macro mangling the given C identifier (in lower and upper - case), which must not contain underscores, for linking with Fortran. */ -/* #undef H5_FC_FUNC */ - -/* As FC_FUNC, but for C identifiers containing underscores. */ -/* #undef H5_FC_FUNC_ */ - -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#define H5_FP_TO_INTEGER_OVERFLOW_WORKS 1 - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#define H5_FP_TO_ULLONG_ACCURATE 1 - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -#define H5_FP_TO_ULLONG_RIGHT_MAXIMUM 1 - -/* Define if gettimeofday() populates the tz pointer passed in */ -/* #undef H5_GETTIMEOFDAY_GIVES_TZ */ - -/* Define to 1 if you have the `alarm' function. */ -#define H5_HAVE_ALARM 1 - -/* Define if the __attribute__(()) extension is present */ -/* #undef H5_HAVE_ATTRIBUTE */ - -/* Define to 1 if you have the `BSDgettimeofday' function. */ -/* #undef H5_HAVE_BSDGETTIMEOFDAY */ - -/* Define if the compiler understands C99 designated initialization of structs - and unions */ -#define H5_HAVE_C99_DESIGNATED_INITIALIZER 1 - -/* Define if the compiler understands the __func__ keyword */ -#define H5_HAVE_C99_FUNC 1 - -/* Define to 1 if you have the `clock_gettime' function. */ -#define H5_HAVE_CLOCK_GETTIME 1 - -/* Define if the function stack tracing code is to be compiled in */ -/* #undef H5_HAVE_CODESTACK */ - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -/* #undef H5_HAVE_DECL_TZNAME */ - -/* Define to 1 if you have the `difftime' function. */ -#define H5_HAVE_DIFFTIME 1 - -/* Define if the direct I/O virtual file driver should be compiled */ -/* #undef H5_HAVE_DIRECT */ - -/* Define to 1 if you have the <dirent.h> header file. */ -#define H5_HAVE_DIRENT_H 1 - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#define H5_HAVE_DLFCN_H 1 - -/* Define to 1 if you have the <dmalloc.h> header file. */ -/* #undef H5_HAVE_DMALLOC_H */ - -/* Define if library information should be embedded in the executables */ -/* #undef H5_HAVE_EMBEDDED_LIBINFO */ - -/* Define to 1 if you have the <features.h> header file. */ -/* #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 - -/* Define if support for nbit filter is enabled */ -#define H5_HAVE_FILTER_NBIT 1 - -/* Define if support for scaleoffset filter is enabled */ -#define H5_HAVE_FILTER_SCALEOFFSET 1 - -/* Define if support for shuffle filter is enabled */ -#define H5_HAVE_FILTER_SHUFFLE 1 - -/* Define if support for szip filter is enabled */ -/* #undef H5_HAVE_FILTER_SZIP */ - -/* Define to 1 if you have the `fork' function. */ -/* #undef H5_HAVE_FORK */ - -/* Define to 1 if you have the `frexpf' function. */ -#define H5_HAVE_FREXPF 1 - -/* Define to 1 if you have the `frexpl' function. */ -#define H5_HAVE_FREXPL 1 - -/* Define to 1 if you have the `fseeko' function. */ -#define H5_HAVE_FSEEKO 1 - -/* Define to 1 if you have the `fseek64' function. */ -/* #undef H5_HAVE_FSEEKO64 */ - -/* Define to 1 if you have the `fstat64' function. */ -/* #undef H5_HAVE_FSTAT64 */ - -/* Define to 1 if you have the `ftello' function. */ -#define H5_HAVE_FTELLO 1 - -/* Define to 1 if you have the `ftruncate64' function. */ -/* #undef H5_HAVE_FTRUNCATE64 */ - -/* Define if the compiler understands the __FUNCTION__ keyword */ -/* #undef H5_HAVE_FUNCTION */ - -/* Define to 1 if you have the `GetConsoleScreenBufferInfo' function. */ -/* #undef H5_HAVE_GETCONSOLESCREENBUFFERINFO */ - -/* Define to 1 if you have the `gethostname' function. */ -#define H5_HAVE_GETHOSTNAME 1 - -/* Define to 1 if you have the `getpwuid' function. */ -/* #undef H5_HAVE_GETPWUID */ - -/* Define to 1 if you have the `getrusage' function. */ -/* #undef H5_HAVE_GETRUSAGE */ - -/* Define to 1 if you have the `gettextinfo' function. */ -/* #undef H5_HAVE_GETTEXTINFO */ - -/* Define to 1 if you have the `gettimeofday' function. */ -#define H5_HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the `get_fpc_csr' function. */ -/* #undef H5_HAVE_GET_FPC_CSR */ - -/* Define if library will contain instrumentation to detect correct - optimization operation */ -#define H5_HAVE_INSTRUMENTED_LIBRARY 1 - -/* Define to 1 if you have the <inttypes.h> header file. */ -#define H5_HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `ioctl' function. */ -#define H5_HAVE_IOCTL 1 - -/* Define to 1 if you have the <io.h> header file. */ -/* #undef H5_HAVE_IO_H */ - -/* Define to 1 if you have the `dl' library (-ldl). */ -#define H5_HAVE_LIBDL 1 - -/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ -/* #undef H5_HAVE_LIBDMALLOC */ - -/* Define to 1 if you have the `lmpe' library (-llmpe). */ -/* #undef H5_HAVE_LIBLMPE */ - -/* Define to 1 if you have the `m' library (-lm). */ -#define H5_HAVE_LIBM 1 - -/* Define to 1 if you have the `mpe' library (-lmpe). */ -/* #undef H5_HAVE_LIBMPE */ - -/* Define to 1 if you have the `mpi' library (-lmpi). */ -/* #undef H5_HAVE_LIBMPI */ - -/* Define to 1 if you have the `mpich' library (-lmpich). */ -/* #undef H5_HAVE_LIBMPICH */ - -/* Define to 1 if you have the `mpio' library (-lmpio). */ -/* #undef H5_HAVE_LIBMPIO */ - -/* Define to 1 if you have the `nsl' library (-lnsl). */ -/* #undef H5_HAVE_LIBNSL */ - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -/* #undef H5_HAVE_LIBPTHREAD */ - -/* Define to 1 if you have the `socket' library (-lsocket). */ -/* #undef H5_HAVE_LIBSOCKET */ - -/* Define to 1 if you have the `sz' library (-lsz). */ -/* #undef H5_HAVE_LIBSZ */ - -/* Define to 1 if you have the `z' library (-lz). */ -/* #undef H5_HAVE_LIBZ */ - -/* Define to 1 if you have the `longjmp' function. */ -#define H5_HAVE_LONGJMP 1 - -/* Define to 1 if you have the `lseek64' function. */ -/* #undef H5_HAVE_LSEEK64 */ - -/* Define to 1 if you have the `lstat' function. */ -/* #undef H5_HAVE_LSTAT */ - -/* Define to 1 if you have the <mach/mach_time.h> header file. */ -/* #undef H5_HAVE_MACH_MACH_TIME_H */ - -/* Define to 1 if you have the <memory.h> header file. */ -/* #undef H5_HAVE_MEMORY_H */ - -/* Define if we have MPE support */ -/* #undef H5_HAVE_MPE */ - -/* Define to 1 if you have the <mpe.h> header file. */ -/* #undef H5_HAVE_MPE_H */ - -/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */ -/* #undef H5_HAVE_MPI_MULTI_LANG_Comm */ - -/* Define if `MPI_Info_c2f' and `MPI_Info_f2c' exists */ -/* #undef H5_HAVE_MPI_MULTI_LANG_Info */ - -/* Define if we have parallel support */ -/* #undef H5_HAVE_PARALLEL */ - -/* Define to 1 if you have the <pthread.h> header file. */ -/* #undef H5_HAVE_PTHREAD_H */ - -/* Define to 1 if you have the `random' function. */ -#define H5_HAVE_RANDOM 1 - -/* Define to 1 if you have the `rand_r' function. */ -/* #define H5_HAVE_RAND_R 1 */ - -/* Define to 1 if you have the `setjmp' function. */ -#define H5_HAVE_SETJMP 1 - -/* Define to 1 if you have the <setjmp.h> header file. */ -#define H5_HAVE_SETJMP_H 1 - -/* Define to 1 if you have the `setsysinfo' function. */ -/* #undef H5_HAVE_SETSYSINFO */ - -/* Define to 1 if you have the `siglongjmp' function. */ -#define H5_HAVE_SIGLONGJMP 1 - -/* Define to 1 if you have the `signal' function. */ -#define H5_HAVE_SIGNAL 1 - -/* Define to 1 if you have the `sigprocmask' function. */ -/* #undef H5_HAVE_SIGPROCMASK */ - -/* Define to 1 if you have the `sigsetjmp' function. */ -/* #undef H5_HAVE_SIGSETJMP */ - -/* Define to 1 if you have the `snprintf' function. */ -#define H5_HAVE_SNPRINTF 1 - -/* Define to 1 if you have the `srandom' function. */ -#define H5_HAVE_SRANDOM 1 - -/* Define to 1 if you have the `stat64' function. */ -/* #undef H5_HAVE_STAT64 */ - -/* Define if `struct stat' has the `st_blocks' field */ -/* #undef H5_HAVE_STAT_ST_BLOCKS */ - -/* Define to 1 if you have the <stddef.h> header file. */ -#define H5_HAVE_STDDEF_H 1 - -/* Define to 1 if you have the <stdint.h> header file. */ -/* #undef H5_HAVE_STDINT_H */ - -/* Define to 1 if you have the <stdlib.h> header file. */ -#define H5_HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strdup' function. */ -#define H5_HAVE_STRDUP 1 - -/* Define to 1 if you have the <strings.h> header file. */ -#define H5_HAVE_STRINGS_H 1 - -/* Define to 1 if you have the <string.h> header file. */ -#define H5_HAVE_STRING_H 1 - -/* Define if `struct text_info' is defined */ -/* #undef H5_HAVE_STRUCT_TEXT_INFO */ - -/* Define if `struct timezone' is defined */ -/* #undef H5_HAVE_STRUCT_TIMEZONE */ - -/* Define to 1 if `tm_zone' is member of `struct tm'. */ -#define H5_HAVE_STRUCT_TM_TM_ZONE 1 - -/* Define if `struct videoconfig' is defined */ -/* #undef H5_HAVE_STRUCT_VIDEOCONFIG */ - -/* Define to 1 if you have the `symlink' function. */ -/* #undef H5_HAVE_SYMLINK */ - -/* Define to 1 if you have the `system' function. */ -#define H5_HAVE_SYSTEM 1 - -/* Define to 1 if you have the <sys/fpu.h> header file. */ -/* #undef H5_HAVE_SYS_FPU_H */ - -/* Define to 1 if you have the <sys/ioctl.h> header file. */ -#define H5_HAVE_SYS_IOCTL_H 1 - -/* Define to 1 if you have the <sys/proc.h> header file. */ -/* #undef H5_HAVE_SYS_PROC_H */ - -/* Define to 1 if you have the <sys/resource.h> header file. */ -#define H5_HAVE_SYS_RESOURCE_H 1 - -/* Define to 1 if you have the <sys/socket.h> header file. */ -#define H5_HAVE_SYS_SOCKET_H 1 - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#define H5_HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the <sys/sysinfo.h> header file. */ -/* #undef H5_HAVE_SYS_SYSINFO_H */ - -/* Define to 1 if you have the <sys/timeb.h> header file. */ -#define H5_HAVE_SYS_TIMEB_H 1 - -/* Define to 1 if you have the <sys/time.h> header file. */ -#define H5_HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the <sys/types.h> header file. */ -#define H5_HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the <szlib.h> header file. */ -/* #undef H5_HAVE_SZLIB_H */ - -/* Define if we have thread safe support */ -/* #undef H5_HAVE_THREADSAFE */ - -/* Define if `timezone' is a global variable */ -#define H5_HAVE_TIMEZONE 1 - -/* Define if the ioctl TIOCGETD is defined */ -#define H5_HAVE_TIOCGETD 1 - -/* Define if the ioctl TIOGWINSZ is defined */ -#define H5_HAVE_TIOCGWINSZ 1 - -/* Define to 1 if you have the `tmpfile' function. */ -#define H5_HAVE_TMPFILE 1 - -/* Define if `tm_gmtoff' is a member of `struct tm' */ -/* #undef H5_HAVE_TM_GMTOFF */ - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#define H5_HAVE_TM_ZONE 1 - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -/* #undef H5_HAVE_TZNAME */ - -/* Define to 1 if you have the <unistd.h> header file. */ -#define H5_HAVE_UNISTD_H 1 - -/* Define to 1 if you have the `asprintf' function. */ -/* #undef H5_HAVE_ASPRINTF */ - -/* Define to 1 if you have the `vasprintf' function. */ -/* #undef H5_HAVE_VASPRINTF */ - -/* Define to 1 if you have the `vsnprintf' function. */ -#define H5_HAVE_VSNPRINTF 1 - -/* Define to 1 if you have the `waitpid' function. */ -#define H5_HAVE_WAITPID 1 - -/* Define if your system has OpenVMS path name. This macro is added by hand. */ -#define H5_HAVE_VMS_PATH 1 - -/* Define if your system has window style path name. */ -/* #undef H5_HAVE_WINDOW_PATH */ - -/* Define to 1 if you have the <winsock.h> header file. */ -/* #undef H5_HAVE_WINSOCK2_H */ - -/* Define to 1 if you have the <zlib.h> header file. */ -#define H5_HAVE_ZLIB_H 1 - -/* Define to 1 if you have the `_getvideoconfig' function. */ -/* #undef H5_HAVE__GETVIDEOCONFIG */ - -/* Define to 1 if you have the `_scrsize' function. */ -/* #undef H5_HAVE__SCRSIZE */ - -/* Define if `__tm_gmtoff' is a member of `struct tm' */ -/* #undef H5_HAVE___TM_GMTOFF */ - -/* Define if your system can't handle converting floating-point values to long - long. */ -/* #undef H5_HW_FP_TO_LLONG_NOT_WORKS */ - -/* Define if HDF5's high-level library headers should be included in hdf5.h */ -#define H5_INCLUDE_HL 1 - -/* Define if your system can accurately convert from integers to long double - values. */ -#define H5_INTEGER_TO_LDOUBLE_ACCURATE 1 - -/* Define if your system can convert long double to integers accurately. */ -#define H5_LDOUBLE_TO_INTEGER_ACCURATE 1 - -/* Define if your system can convert from long double to integer values. */ -#define H5_LDOUBLE_TO_INTEGER_WORKS 1 - -/* Define if your system can convert long double to (unsigned) long long - values correctly. */ -#define H5_LDOUBLE_TO_LLONG_ACCURATE 1 - -/* Define if your system converts long double to (unsigned) long values with - special algorithm. */ -/* #undef H5_LDOUBLE_TO_LONG_SPECIAL */ - -/* Define if your system can convert long double to unsigned int values - correctly. */ -#define H5_LDOUBLE_TO_UINT_ACCURATE 1 - -/* Define if your system can compile long long to floating-point casts. */ -#define H5_LLONG_TO_FP_CAST_WORKS 1 - -/* Define if your system can convert (unsigned) long long to long double - values correctly. */ -#define H5_LLONG_TO_LDOUBLE_CORRECT 1 - -/* Define if your system can convert (unsigned) long to long double values - with special algorithm. */ -/* #undef H5_LONG_TO_LDOUBLE_SPECIAL */ - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#define H5_LT_OBJDIR ".libs/" - -/* Define if the metadata trace file code is to be compiled in */ -/* #undef H5_METADATA_TRACE_FILE */ - -/* Define if we can violate pointer alignment restrictions */ -#define H5_NO_ALIGNMENT_RESTRICTIONS 1 - -/* Define if deprecated public API symbols are disabled */ -/* #undef H5_NO_DEPRECATED_SYMBOLS */ - -/* Define if shared writing must be disabled (CodeWarrior only) */ -#define H5_NO_SHARED_WRITING 1 - -/* Name of package */ -#define H5_PACKAGE "hdf5" - -/* Define to the address where bug reports for this package should be sent. */ -#define H5_PACKAGE_BUGREPORT "help@hdfgroup.org" - -/* Define to the full name of this package. */ -#define H5_PACKAGE_NAME "HDF5" - -/* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.215" - -/* Define to the one symbol short name of this package. */ -#define H5_PACKAGE_TARNAME "hdf5" - -/* Define to the home page for this package. */ -#define H5_PACKAGE_URL "" - -/* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.215" - -/* Width for printf() for type `long long' or `__int64', use `ll' */ -#define H5_PRINTF_LL_WIDTH "ll" - -/* The size of `char', as computed by sizeof. */ -#define H5_SIZEOF_CHAR 1 - -/* The size of `double', as computed by sizeof. */ -#define H5_SIZEOF_DOUBLE 8 - -/* The size of `float', as computed by sizeof. */ -#define H5_SIZEOF_FLOAT 4 - -/* The size of `int', as computed by sizeof. */ -#define H5_SIZEOF_INT 4 - -/* The size of `int16_t', as computed by sizeof. */ -#define H5_SIZEOF_INT16_T 2 - -/* The size of `int32_t', as computed by sizeof. */ -#define H5_SIZEOF_INT32_T 4 - -/* The size of `int64_t', as computed by sizeof. */ -#define H5_SIZEOF_INT64_T 8 - -/* The size of `int8_t', as computed by sizeof. */ -#define H5_SIZEOF_INT8_T 1 - -/* The size of `int_fast16_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_FAST16_T 0 */ - -/* The size of `int_fast32_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_FAST32_T 0 */ - -/* The size of `int_fast64_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_FAST64_T 0 */ - -/* The size of `int_fast8_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_FAST8_T 0 */ - -/* The size of `int_least16_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_LEAST16_T 0 */ - -/* The size of `int_least32_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_LEAST32_T 0 */ - -/* The size of `int_least64_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_LEAST64_T 0 */ - -/* The size of `int_least8_t', as computed by sizeof. */ -/* #define H5_SIZEOF_INT_LEAST8_T 0 */ - -/* The size of `long', as computed by sizeof. */ -#define H5_SIZEOF_LONG 4 - -/* The size of `long double', as computed by sizeof. */ -#define H5_SIZEOF_LONG_DOUBLE 16 - -/* The size of `long long', as computed by sizeof. */ -#define H5_SIZEOF_LONG_LONG 8 - -/* The size of `off64_t', as computed by sizeof. */ -#define H5_SIZEOF_OFF64_T 0 - -/* The size of `off_t', as computed by sizeof. */ -#define H5_SIZEOF_OFF_T 8 - -/* The size of `ptrdiff_t', as computed by sizeof. */ -#define H5_SIZEOF_PTRDIFF_T 4 - -/* The size of `short', as computed by sizeof. */ -#define H5_SIZEOF_SHORT 2 - -/* The size of `size_t', as computed by sizeof. */ -#define H5_SIZEOF_SIZE_T 4 - -/* The size of `ssize_t', as computed by sizeof. */ -#define H5_SIZEOF_SSIZE_T 4 - -/* The size of `uint16_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT16_T 2 - -/* The size of `uint32_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT32_T 4 - -/* The size of `uint64_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT64_T 8 - -/* The size of `uint8_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT8_T 1 - -/* The size of `uint_fast16_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_FAST16_T 0 */ - -/* The size of `uint_fast32_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_FAST32_T 0 */ - -/* The size of `uint_fast64_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_FAST64_T 0 */ - -/* The size of `uint_fast8_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_FAST8_T 0 */ - -/* The size of `uint_least16_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_LEAST16_T 0 */ - -/* The size of `uint_least32_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_LEAST32_T 0 */ - -/* The size of `uint_least64_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_LEAST64_T 0 */ - -/* The size of `uint_least8_t', as computed by sizeof. */ -/* #define H5_SIZEOF_UINT_LEAST8_T 0 */ - -/* The size of `unsigned', as computed by sizeof. */ -#define H5_SIZEOF_UNSIGNED 4 - -/* The size of `__int64', as computed by sizeof. */ -#define H5_SIZEOF___INT64 0 - -/* Define to 1 if you have the ANSI C header files. */ -#define H5_STDC_HEADERS 1 - -/* Define if strict file format checks are enabled */ -/* #undef H5_STRICT_FORMAT_CHECKS */ - -/* Define if your system supports pthread_attr_setscope(&attribute, - PTHREAD_SCOPE_SYSTEM) call. */ -#define H5_SYSTEM_SCOPE_THREADS 1 - -/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ -#define H5_TIME_WITH_SYS_TIME 1 - -/* Define to 1 if your <sys/time.h> declares `struct tm'. */ -/* #undef H5_TM_IN_SYS_TIME */ - -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#define H5_ULLONG_TO_FP_CAST_WORKS 1 - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -#define H5_ULLONG_TO_LDOUBLE_PRECISION 1 - -/* Define if your system accurately converting unsigned long to float values. - */ -/* #undef H5_ULONG_TO_FLOAT_ACCURATE */ - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -#define H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1 - -/* Define using v1.6 public API symbols by default */ -/* #define H5_USE_16_API_DEFAULT 1 */ - -/* Define if a memory checking tool will be used on the library, to cause - library to be very picky about memory operations and also disable the - internal free list manager code. */ -/* #undef H5_USING_MEMCHECKER */ - -/* Version number of package */ -#define H5_VERSION "1.9.215" - -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -#define H5_VSNPRINTF_WORKS 1 - -/* Data accuracy is prefered to speed during data conversions */ -#define H5_WANT_DATA_ACCURACY 1 - -/* Check exception handling functions during data conversions */ -#define H5_WANT_DCONV_EXCEPTION 1 - -/* Define to 1 if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef H5_WORDS_BIGENDIAN */ - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef H5__FILE_OFFSET_BITS */ - -/* Define for large files, on AIX-style hosts. */ -/* #undef H5__LARGE_FILES */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef H5_const */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -/* #undef H5_inline */ -#endif - -/* Define to `long int' if <sys/types.h> does not define. */ -/* #undef H5_off_t */ - -/* Define to `long' if <sys/types.h> does not define. */ -/* #undef H5_ptrdiff_t */ - -/* Define to `unsigned long' if <sys/types.h> does not define. */ -/* #undef H5_size_t */ - -/* Define to `long' if <sys/types.h> does not define. */ -/* #undef H5_ssize_t */ -#define H5_HAVE_FILE_VERSIONS 1 -#define H5_CANNOT_OPEN_TWICE 1 diff --git a/vms/src/make.com b/vms/src/make.com deleted file mode 100644 index 397d543..0000000 --- a/vms/src/make.com +++ /dev/null @@ -1,76 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 library -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/include=zlib_dir" -$ ccc := cc 'ccopt -$ ccc h5detect.c -$ link h5detect -$ type sys$input - Running h5detect to create h5tinit.c -$ define/user_mode sys$output h5tinit.c -$ run h5detect -$! -$ ccc h5make_libsettings.c -$ link h5make_libsettings -$ type sys$input - Running h5make_libsettings to create H5lib_settings.h -$ define/user_mode sys$output H5lib_settings.h -$ run h5make_libsettings -$! -$ type sys$input - Creating HDF5 library -$! -$ cobj= "H5, H5checksum, H5dbg, H5system, H5timer, H5trace,"+- - "H5Abtree2, H5A, H5AC, H5Adense, H5Adeprec, H5Aint, H5Atest, H5B2, H5B2cache,"+- - "H5B2dbg, H5B2hdr, H5B2int, H5B2stat, H5B2test, H5B, H5Bcache, H5Bdbg, H5C, H5CS,"+- - "H5Dbtree, H5D, H5Dchunk, H5Dcompact, H5Dcontig, H5Ddbg, H5Ddeprec,"+- - "H5Defl, H5Dfill, H5Dint, H5Dio, H5Dlayout, H5Dmpio, H5Doh, H5Dscatgath, H5Dselect, H5Dtest,"+- - "H5EA, H5EAcache, H5EAdbg, H5EAdblkpage, H5EAdblock, H5EAhdr, H5EAiblock, H5EAint,"+- - "H5EAsblock, H5EAstat, H5EAtest, H5E, H5Edeprec, H5Eint,"+- - "H5FA, H5FAcache, H5FAdbg, H5FAdblkpage, H5FAdblock, H5FAhdr, H5FAstat, H5FAtest,"+- - "H5Faccum, H5F, H5Fcwfs, H5Fdbg, H5Fdeprec, H5FD, H5FDcore, H5FDdirect, H5FDfamily, H5FDint, H5FDlog, "+- - "H5FDmpi, H5FDmpio, H5FDmulti, H5FDsec2, H5FDspace, H5FDstdio, H5FDwindows,"+- - "H5Fefc, H5Ffake, H5Fio, H5FL, H5Fmount, H5Fmpi, H5FO, H5Fquery, H5FS, H5FScache, H5FSdbg,"+- - "H5Fsfile, H5FSsection, H5FSstat, H5FStest, H5Fsuper, H5Fsuper_cache, H5Ftest,"+- - "H5Gbtree2, H5G, H5Gcache, H5Gcompact, H5Gdense, H5Gdeprec, H5Gent, H5Gint, H5Glink, H5Gloc,"+- - "H5Gname, H5Gnode, H5Gobj, H5Goh, H5Groot, H5Gstab, H5Gtest, H5Gtraverse,"+- - "H5HFbtree2, H5HF, H5HFcache, H5HFdbg, H5HFdblock, H5HFdtable, H5HFhdr, H5HFhuge, H5HFiblock,"+- - "H5HFiter, H5HFman, H5HFsection, H5HFspace, H5HFstat, H5HFtest, H5HFtiny,"+- - "H5HG, H5HGcache, H5HGdbg, H5HGquery, H5HL, H5HLcache, H5HLdbg, H5HLint, H5HP, H5I, H5Itest, H5L, H5Lexternal" -$ cobj1= "H5MFaggr, H5MF, H5MFdbg, H5MFsection, H5MM,"+- - "H5MP, H5MPtest, H5Oainfo, H5Oalloc, H5Oattr, H5Oattribute, H5Obogus, H5Obtreek,"+- - "H5O, H5Ocache, H5Ochunk, H5Ocont, H5Ocopy, H5Odbg, H5Odrvinfo, H5Odtype, H5Oefl, H5Ofill, H5Ofsinfo,"+- - "H5Oginfo, H5Olayout, H5Olinfo, H5Olink, H5Omessage, H5Omtime, H5Oname, H5Onull, H5Opline,"+- - "H5Orefcount, H5Osdspace, H5Oshared, H5Oshmesg, H5Ostab, H5Otest, H5Ounknown,"+- - "H5Pacpl, H5P, H5Pdapl, H5Pdcpl, H5Pdeprec, H5Pdxpl, H5Pencdec, H5Pfapl, H5Pfcpl, H5Pfmpl, H5Pgcpl, H5Pint,"+- - "H5Plapl, H5Plcpl, H5Pocpl, H5Pocpypl, H5Pstrcpl, H5Ptest,"+- - "H5R, H5UC, H5Rdeprec, H5RS, H5Sall, H5S, H5Sdbg, H5Shyper, H5SL, H5SMbtree2, H5SM, H5SMcache,"+- - "H5SMmessage, H5Smpio, H5SMtest, H5Snone, H5Spoint, H5Sselect, H5ST, H5Stest,"+- - "H5Tarray, H5Tbit, H5T, H5Tcommit, H5Tcompound, H5Tconv, H5Tcset, H5Tdbg, H5Tdeprec, H5Tenum,"+- - "H5Tfields, H5Tfixed, H5Tfloat, H5Tinit, H5Tnative, H5Toffset, H5Toh, H5Topaque, H5Torder,"+- - "H5Tpad, H5Tprecis, H5TS, H5Tstrpad, H5Tvisit, H5Tvlen, H5V, H5WB, H5Z,"+- - "H5Zdeflate, H5Zfletcher32, H5Znbit, H5Zscaleoffset, H5Zshuffle, H5Zszip, H5Ztrans" -$! -$ ccc 'cobj -$ ccc 'cobj1 -$ library/create []hdf5 -$ library/insert []hdf5 'cobj -$ library/insert []hdf5 'cobj1 -$ type sys$input - Done -$! diff --git a/vms/test/H5srcdir_str.h b/vms/test/H5srcdir_str.h deleted file mode 100644 index 2eb1a39..0000000 --- a/vms/test/H5srcdir_str.h +++ /dev/null @@ -1,22 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * 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 = "[-.test]"; diff --git a/vms/test/check.com b/vms/test/check.com deleted file mode 100644 index 5a3c945..0000000 --- a/vms/test/check.com +++ /dev/null @@ -1,271 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Run HDF5 C tests -$! -$ type sys$input - Running tests -$! define sys$output check_vms.out -$ -$ type sys$input -------- Running testhdf5 ------- -$ run testhdf5 -$ type sys$input - -$ type sys$input -------- Running accum ------- -$ run accum -$ type sys$input - -$ type sys$input -------- Running app_ref ------- -$ run app_ref -$ type sys$input - -$ type sys$input -------- Running big ------- -$ run big -$ type sys$input - -$ type sys$input -------- Running bittests ------- -$ run bittests -$ type sys$input - -$ type sys$input -------- Running btree2 ------- -$ run btree2 -$ type sys$input - -$ type sys$input -------- Running cache_api ------- -$ run cache_api -$ type sys$input - -$ type sys$input -------- Running cache ------- -$ run cache -$ type sys$input - -$ type sys$input -------- Running cache_tagging ------- -$ run cache_tagging -$ type sys$input - -$ type sys$input -------- Running chunk_info ------- -$ run chunk_info -$ type sys$input - -$ type sys$input -------- Running cmpd_dset ------- -$ run cmpd_dset -$ type sys$input - -$ type sys$input -------- Running cross_read ------- -$ run cross_read -$ type sys$input - -$ type sys$input -------- Running dangle ------- -$ run dangle -$ type sys$input - -$ type sys$input -------- Running dsets ------- -$ run dsets -$ type sys$input - -$ type sys$input -------- Running dt_arith ------- -$ run dt_arith -$ type sys$input - -$ type sys$input -------- Running dtransform ------- -$ run dtransform -$ type sys$input - -$ type sys$input -------- Running dtypes ------- -$ run dtypes -$ type sys$input - -$ type sys$input -------- Running earray ------- -$ run earray -$ type sys$input - -$! Skip this test for now because it opens the same file many times. -$! Please see Issue 7620 in Jira about it. -$! type sys$input -$! ------- Running efc ------- -$! run efc -$! type sys$input - -$ type sys$input -------- Running enum ------- -$ run enum -$ type sys$input - -$ type sys$input -------- Running extend ------- -$ run extend -$ type sys$input - -$ type sys$input -------- Running external ------- -$ run external -$ type sys$input - -$ type sys$input -------- Running fheap ------- -$ run fheap -$ type sys$input - -$ type sys$input -------- Running fillval ------- -$ run fillval -$ type sys$input - -$ type sys$input -------- Running filter_fail ------- -$ run filter_fail -$ type sys$input - -$ type sys$input -------- Running flush1 ------- -$ run flush1 -$ type sys$input - -$ type sys$input -------- Running flush2 ------- -$ run flush2 -$ type sys$input - -$ type sys$input -------- Running freespace ------- -$ run freespace -$ type sys$input - -$ type sys$input -------- Running getname ------- -$ run getname -$ type sys$input - -$ type sys$input -------- Running gheap ------- -$ run gheap -$ type sys$input - -$ type sys$input -------- Running hyperslab ------- -$ run hyperslab -$ type sys$input - -$ type sys$input -------- Running istore ------- -$ run istore -$ type sys$input - -$ type sys$input -------- Running lheap ------- -$ run lheap -$ type sys$input - -$ type sys$input -------- Running links ------- -$ run links -$ type sys$input - -$ type sys$input -------- Running links_env ------- -$ run links_env -$ type sys$input - -$ type sys$input -------- Running mf ------- -$ run mf -$ type sys$input - -$ type sys$input -------- Running mount ------- -$ run mount -$ type sys$input - -$ type sys$input -------- Running mtime ------- -$ run mtime -$ type sys$input - -$ type sys$input -------- Running ntypes ------- -$ run ntypes -$ type sys$input - -$ type sys$input -------- Running objcopy ------- -$ run objcopy -$ type sys$input - -$ type sys$input -------- Running ohdr ------- -$ run ohdr -$ type sys$input - -$ type sys$input -------- Running pool ------- -$ run pool -$ type sys$input - -$ type sys$input -------- Running reserved ------- -$ run reserved -$ type sys$input - -$ type sys$input -------- Running set_extent ------- -$ run set_extent -$ type sys$input - -$ type sys$input -------- Running space_overflow ------- -$ run space_overflow -$ type sys$input - -$ type sys$input -------- Running stab ------- -$ run stab -$ type sys$input - -$ type sys$input -------- Running testmeta ------- -$ run testmeta -$ type sys$input - -$ type sys$input -------- Running unlink ------- -$ run unlink -$ type sys$input - -$ type sys$input -------- Running vfd ------- -$ run vfd -$ type sys$input - -------- Testing completed ------- -$ exit diff --git a/vms/test/make.com b/vms/test/make.com deleted file mode 100644 index 22479c6..0000000 --- a/vms/test/make.com +++ /dev/null @@ -1,358 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 library tests -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/include=zlib_dir" -$! -$ ccc := cc 'ccopt /include=([-.src]) -$ type sys$input - Creating testhdf5 -$! -$ cobj= "h5test.c, testframe.c, testhdf5.c, tarray.c, tattr.c, tcheck_version., tchecksum.c,"+- - "tconfig.c, tcoords.c, tfile.c, tgenprop.c, th5o.c, th5s.c, theap.c, tid.c,"+- - "titerate.c, tmeta.c, tmisc.c, trefer.c, trefstr.c, tselect.c, tskiplist.c,"+- - "tsohm.c, ttime.c, ttst.c, tunicode.c, tvlstr.c, tvltypes.c, cache_common.c" -$! -$ ccc 'cobj -$ library/create/replace []libh5test h5test, testframe, cache_common -$ type sys$input - Creating libh5test -$ link testhdf5,tarray,tattr,tcheck_version,tchecksum,tconfig, - - tcoords,tfile,tgenprop,th5o,th5s,theap,tid,titerate, - - tmeta,tmisc,trefer,trefstr, - - tselect,tskiplist,tsohm,ttime,ttst,tunicode,tvlstr,tvltypes, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ -$! a new test -$ type sys$input - Creating accum test -$ ccc accum -$ link accum, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating app_ref test -$ ccc app_ref -$ link app_ref, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating big test -$ ccc big -$ link big, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating bittests test -$ ccc bittests -$ link bittests, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating btree2 test -$ ccc btree2 -$ link btree2, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating cache_api test -$ ccc cache_api -$ link cache_api, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating cache test -$ ccc cache -$ link cache, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating cache_common test -$ ccc cache_common -$ link cache_common, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$! a new test -$ type sys$input - Creating cache_tagging tests -$ ccc cache_tagging -$ link cache_tagging, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating chunk_info test -$ ccc chunk_info -$ link chunk_info, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating cmpd_dset test -$ ccc cmpd_dset -$ link cmpd_dset, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating cross_read test -$ ccc cross_read -$ link cross_read, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating dangle test -$ ccc dangle -$ link dangle, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating dsets tests -$ ccc dsets -$ link dsets, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating dt_arith test -$ ccc dt_arith -$ link dt_arith, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating dtransform test -$ ccc dtransform -$ link dtransform, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating dtypes test -$ ccc dtypes -$ link dtypes, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating earray test -$ ccc earray -$ link earray, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating efc test -$ ccc efc -$ link efc, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating enum test -$ ccc enum -$ link enum, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating err_compat test -$ ccc err_compat -$ link err_compat, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating error_test test -$ ccc error_test -$ link error_test, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating extend test -$ ccc extend -$ link extend, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating external test -$ ccc external -$ link external, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating fheap test -$ ccc fheap -$ link fheap, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating fillval test -$ ccc fillval -$ link fillval, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$! a new test -$ type sys$input - Creating filter_fail test -$ ccc filter_fail -$ link filter_fail, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating flush1 test -$ ccc flush1 -$ link flush1, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating flush2 test -$ ccc flush2 -$ link flush2, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating freespace test -$ ccc freespace -$ link freespace, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating getname test -$ ccc getname -$ link getname, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating gheap test -$ ccc gheap -$ link gheap, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating hyperslab test -$ ccc hyperslab -$ link hyperslab, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating istore test -$ ccc istore -$ link istore, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating lheap test -$ ccc lheap -$ link lheap, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating links test -$ ccc links -$ link links, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$! a new test -$ type sys$input - Creating links_env test -$ ccc links_env -$ link links_env, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating mf test -$ ccc mf -$ link mf, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating mount test -$ ccc mount -$ link mount, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating mtime test -$ ccc mtime -$ link mtime, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating ntypes test -$ ccc ntypes -$ link ntypes, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating objcopy test -$ ccc objcopy -$ link objcopy, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating ohdr test -$ ccc ohdr -$ link ohdr, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating pool test -$ ccc pool -$ link pool, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating reserved test -$ ccc reserved -$ link reserved, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating set_extent test -$ ccc set_extent -$ link set_extent, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$! a new test -$ type sys$input - Creating space_overflow test -$ ccc space_overflow -$ link space_overflow, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating stab test -$ ccc stab -$ link stab, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$! a new test -$ type sys$input - Creating testmeta test -$ ccc testmeta -$ link testmeta, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating unlink test -$ ccc unlink -$ link unlink, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Creating vfd test -$ ccc vfd -$ link vfd, - - libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$! -$ type sys$input - Done with tests compilation -$ exit diff --git a/vms/tools/h5copy/check_h5copy.com b/vms/tools/h5copy/check_h5copy.com deleted file mode 100644 index df83c88..0000000 --- a/vms/tools/h5copy/check_h5copy.com +++ /dev/null @@ -1,110 +0,0 @@ -$!# -$!# 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. -$!# -$! -$ ! -$ ! This command file tests h5copy utility. The command file has to -$ ! run in the [hdf5-top.tools.h5copy.testfiles] directory. -$ ! -$ type sys$input - -=================================== - Testing h5copy utiltity -=================================== - -$ ! -$ ! Define h5copy symbols -$ ! -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-11, current_dir) -$ h5copy_dir = temp + "]" -$ h5copy :== $sys$disk:'h5copy_dir'h5copy.exe -$ ! -$ ! -$ ! h5copy tests -$ ! -$ - -$ !# copy files -$ write sys$output "Test copying various forms of datasets" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s simple -d simple" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s chunk -d chunk" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compact -d compact" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compound -d compound" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compressed -d compressed" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s named_vl -d named_vl" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s nested_vl -d nested_vl" -$ ! -$ write sys$output " " -$ write sys$output "Test copying dataset within group in source file to root of destination" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_dsets/simple -d simple_top" -$ write sys$output " " -$ write sys$output "Test copying & renaming dataset" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compound -d rename" -$! -$ write sys$output " " -$ write sys$output "Test copying empty, 'full' & 'nested' groups" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_empty -d grp_empty" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_dsets -d grp_dsets" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_nested -d grp_nested" -$! -$ write sys$output " " -$ write sys$output "Test copying dataset within group in source file to group in destination" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s /grp_dsets/simple -d /grp_dsets/simple_group" -$! write sys$output "Test copying & renaming group" -$! CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -v -s grp_dsets -d grp_rename -$! write sys$output "Test copying full group hierarchy into group in destination file" -$! CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -v -s grp_dsets -d /grp_rename/grp_dsets" -$! -$ write sys$output " " -$ write sys$output "Test copying objects into group hier. that doesn't exist yet in destination file" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -vp -s simple -d /A/B1/simple" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -vp -s simple -d /A/B2/simple2" -$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -vp -s /grp_dsets/simple -d /C/D/simple" -$!CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -vp -s /grp_dsets -d /E/F/grp_dsets" -$!CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -vp -s /grp_nested -d /G/H/grp_nested" -$! -$ del *out.h5;* -$ ! -$TOOLTEST: SUBROUTINE - -$ -$ begin = "Testing h5copy" -$ ! -$ ! Run the test and save output in the 'actual' file -$ ! -$ define/nolog sys$error h5copy_temp.err -$ ON ERROR THEN CONTINUE -$ h5copy 'P1 -$ deassign sys$error -$ if F$SEARCH("h5copy_temp.err") .EQS. "" -$ then -$ result = "PASSED" -$ line = F$FAO("!16AS !53AS !70AS", begin, P1, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!16AS !52AS !69AS", begin, P1, result) -$ endif -$ ! -$ ! Delete error file if any print test result -$ ! -$ if F$SEARCH ("*.err;*") .NES. "" -$ then -$ del *.err;* -$ endif -$ ! -$ write sys$output line -$ ! -$ENDSUBROUTINE diff --git a/vms/tools/h5copy/make.com b/vms/tools/h5copy/make.com deleted file mode 100644 index 1a95f58..0000000 --- a/vms/tools/h5copy/make.com +++ /dev/null @@ -1,40 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5copy tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test]) -$ type sys$input - Creating h5copy -$! -$ cobj= " h5copy " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=h5copy.exe - - h5copy, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5copy -$! -$! -$ exit diff --git a/vms/tools/h5diff/check_h5diff.com b/vms/tools/h5diff/check_h5diff.com deleted file mode 100644 index 5a0ef46..0000000 --- a/vms/tools/h5diff/check_h5diff.com +++ /dev/null @@ -1,337 +0,0 @@ -$!# -$!# 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. -$!# -$! -$ ! -$ ! This command file tests h5diff utility. The command file has to -$ ! run in the [hdf5-top.tools.h5diff.testfiles] directory. -$ ! -$ ! -$ type sys$input - -=================================== - Testing h5diff utiltity -=================================== - -$ ! Define h5diff symbol -$ ! -$! set message/notext/nofacility/noidentification/noseverity -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-11, current_dir) -$ h5diff_dir = temp + "]" -$ h5diff :== $sys$disk:'h5diff_dir'h5diff.exe -$ ! - -$ ! -$ ! h5diff tests -$ ! -$ -$!# 1.0 -$ CALL TOOLTEST h5diff_10.txt "-h" -$! -$!# 1.1 normal mode -$ CALL TOOLTEST h5diff_11.txt "h5diff_basic1.h5 h5diff_basic2.h5" -$! -$!# 1.2 normal mode with objects -$ CALL TOOLTEST h5diff_12.txt "h5diff_basic1.h5 h5diff_basic2.h5 g1/dset1 g1/dset2" -$! -$!# 1.3 report mode -$ CALL TOOLTEST h5diff_13.txt "-r h5diff_basic1.h5 h5diff_basic2.h5" -$! -$!# 1.4 report mode with objects -$ CALL TOOLTEST h5diff_14.txt "-r h5diff_basic1.h5 h5diff_basic2.h5 g1/dset1 g1/dset2" -$! -$!# 1.5 with -d -$ CALL TOOLTEST h5diff_15.txt " --report --delta=5 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 1.6.1 with -p (int) -$ CALL TOOLTEST h5diff_16_1.txt "-v -p 0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset5 g1/dset6" -$! -$!# 1.6.2 with -p (unsigned long long) -$ CALL TOOLTEST h5diff_16_2.txt "--verbose --relative=0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset7 g1/dset8" -$! -$!# 1.6.3 with -p (int) -$ CALL TOOLTEST h5diff_16_3.txt "-v -p 0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset9 g1/dset10" -$! -$!# 1.7 verbose mode -$ CALL TOOLTEST h5diff_17.txt "-v h5diff_basic1.h5 h5diff_basic2.h5" -$! -$!# 1.8 quiet mode -$ CALL TOOLTEST h5diff_18.txt "-q h5diff_basic1.h5 h5diff_basic2.h5" -$! -$! -$!# ############################################################################## -$!# # not comparable types -$!# ############################################################################## -$! -$!# 2.0 -$ CALL TOOLTEST h5diff_20.txt "-v h5diff_types.h5 h5diff_types.h5 dset g1" -$ -$!# 2.1 -$ CALL TOOLTEST h5diff_21.txt "-v h5diff_types.h5 h5diff_types.h5 dset l1" -$! -$!# 2.2 -$ CALL TOOLTEST h5diff_22.txt "-v h5diff_types.h5 h5diff_types.h5 dset t1" -$! -$!# ############################################################################## -$!# # compare groups, types, links (no differences and differences) -$!# ############################################################################## -$! -$!# 2.3 -$ CALL TOOLTEST h5diff_23.txt "-v h5diff_types.h5 h5diff_types.h5 g1 g1" -$! -$!# 2.4 -$ CALL TOOLTEST h5diff_24.txt "-v h5diff_types.h5 h5diff_types.h5 t1 t1" -$! -$!# 2.5 -$ CALL TOOLTEST h5diff_25.txt "-v h5diff_types.h5 h5diff_types.h5 l1 l1" -$! -$!# 2.6 -$ CALL TOOLTEST h5diff_26.txt "-v h5diff_types.h5 h5diff_types.h5 g1 g2" -$! -$!# 2.7 -$ CALL TOOLTEST h5diff_27.txt "-v h5diff_types.h5 h5diff_types.h5 t1 t2" -$! -$!# 2.8 -$ CALL TOOLTEST h5diff_28.txt "-v h5diff_types.h5 h5diff_types.h5 l1 l2" -$! -$! -$! -$!# ############################################################################## -$!# # Dataset types -$!# ############################################################################## -$ -$!# 5.0 -$ CALL TOOLTEST h5diff_50.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset0a dset0b" -$! -$!# 5.1 -$ CALL TOOLTEST h5diff_51.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset1a dset1b" -$! -$!# 5.2 -$ CALL TOOLTEST h5diff_52.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset2a dset2b" -$! -$!# 5.3 -$ CALL TOOLTEST h5diff_53.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset3a dset4b" -$! -$!# 5.4 -$ CALL TOOLTEST h5diff_54.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset4a dset4b" -$! -$!# 5.5 -$ CALL TOOLTEST h5diff_55.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset5a dset5b" -$! -$!# 5.6 -$ CALL TOOLTEST h5diff_56.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset6a dset6b" -$! -$!# 5.7 -$ CALL TOOLTEST h5diff_57.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset7a dset7b" -$! -$!# 5.8 (region reference) -$ CALL TOOLTEST h5diff_58.txt "-v h5diff_dset1.h5 h5diff_dset2.h5 refreg" -$! -$!# ############################################################################## -$!# # Error messages -$!# ############################################################################## -$! -$! -$!# 6.0: Check if the command line number of arguments is less than 3 -$ CALL TOOLTEST h5diff_600.txt "h5diff_basic1.h5" -$! -$!# ############################################################################## -$!# # -d -$!# ############################################################################## -$! -$! -$!# 6.3: negative value -$ CALL TOOLTEST h5diff_603.txt "-d -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.4: zero -$ CALL TOOLTEST h5diff_604.txt "-d 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.5: non number -$ CALL TOOLTEST h5diff_605.txt "-d u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.6: hexadecimal -$ CALL TOOLTEST h5diff_606.txt "-d 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.7: string -$ CALL TOOLTEST h5diff_607.txt "-d """1""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.8: repeated option -$ CALL TOOLTEST h5diff_608.txt "-d 1 -d 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.9: number larger than biggest difference -$ CALL TOOLTEST h5diff_609.txt "-d 200 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.10: number smaller than smallest difference -$ CALL TOOLTEST h5diff_610.txt "-d 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$! -$!# ############################################################################## -$!# # -p -$!# ############################################################################## -$! -$! -$! -$!# 6.12: negative value -$ CALL TOOLTEST h5diff_612.txt "-p -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.13: zero -$ CALL TOOLTEST h5diff_613.txt "-p 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.14: non number -$ CALL TOOLTEST h5diff_614.txt "-p u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.15: hexadecimal -$ CALL TOOLTEST h5diff_615.txt "-p 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.16: string -$! CALL TOOLTEST h5diff_616.txt "-p """0.21""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.17: repeated option -$ CALL TOOLTEST h5diff_617.txt "-p 0.21 -p 0.22 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.18: number larger than biggest difference -$ CALL TOOLTEST h5diff_618.txt "-p 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.19: number smaller than smallest difference -$ CALL TOOLTEST h5diff_619.txt "-p 0.005 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$! -$! -$!# ############################################################################## -$!# # -n -$!# ############################################################################## -$! -$! -$! -$!# 6.21: negative value -$ CALL TOOLTEST h5diff_621.txt "-n -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.22: zero -$ CALL TOOLTEST h5diff_622.txt "-n 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.23: non number -$ CALL TOOLTEST h5diff_623.txt "-n u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.24: hexadecimal -$ CALL TOOLTEST h5diff_624.txt "-n 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.25: string -$ CALL TOOLTEST h5diff_625.txt "-n """2""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.26: repeated option -$ CALL TOOLTEST h5diff_626.txt "-n 2 -n 3 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.27: number larger than biggest difference -$ CALL TOOLTEST h5diff_627.txt "--count=200 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# 6.28: number smaller than smallest difference -$ CALL TOOLTEST h5diff_628.txt "-n 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4" -$! -$!# ############################################################################## -$!# 6.29 non valid files -$!# ############################################################################## -$! This test is disabled in the C test script. -$! CALL TOOLTEST h5diff_629.txt "file1.h6 file2.h6" -$! -$!# ############################################################################## -$!# 7. attributes -$!# ############################################################################## -$! -$ CALL TOOLTEST h5diff_70.txt "-v h5diff_attr1.h5 h5diff_attr2.h5" -$! -$!# ############################################################################## -$!# 8. all dataset datatypes -$!# ############################################################################## -$! -$ CALL TOOLTEST h5diff_80.txt "-v h5diff_dset1.h5 h5diff_dset2.h5" -$! -$!# 9. compare a file with itself -$! -$ CALL TOOLTEST h5diff_90.txt "-v h5diff_basic2.h5 h5diff_basic2.h5" -$! -$! 10. read by hyperslab, print indexes -$ CALL TOOLTEST h5diff_100.txt "-v h5diff_hyper1.h5 h5diff_hyper2.h5" -$! -$! 11. floating point comparison -$ CALL TOOLTEST h5diff_101.txt "-v h5diff_basic1.h5 h5diff_basic1.h5 g1/d1 g1/d2" -$ CALL TOOLTEST h5diff_102.txt "-v h5diff_basic1.h5 h5diff_basic1.h5 g1/fp1 g1/fp2" -$! -$! -$! -$TOOLTEST: SUBROUTINE -$ -$ len = F$LENGTH(P1) -$ base = F$EXTRACT(0,len-3,P1) -$ actual = base + "h5diffout" -$ actual_err = base + "h5differr" -$ -$ begin = "Testing h5diff " -$ ! -$ ! Run the test and save output in the 'actual' file -$ ! -$ define/nolog sys$output 'actual' -$ define/nolog sys$error 'actual_err' -$ ON ERROR THEN CONTINUE -$ h5diff 'P2 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_err' 'actual' -$ set message/text/facility/identification/severity -$ endif -$ ! -$ ! Compare the results -$ ! -$ diff/output=h5diff_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1' -$ open/read temp_out h5diff_temp.dif -$ read temp_out record1 -$ close temp_out -$ ! -$ ! Extract error code and format output line -$ ! -$ len = F$LENGTH(record1) -$ err_code = F$EXTRACT(len-1,1,record1) -$ if err_code .eqs. "0" -$ then -$ result = "PASSED" -$ line = F$FAO("!15AS !50AS !70AS", begin, P2, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!15AS !49AS !69AS", begin, P2, result) -$ endif -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! Append the result to the log file -$ ! -$ append/new_version h5diff_temp.dif h5diff.log -$ append/new_version 'actual' h5diff_output.txt -$ ! -$ ! Delete temporary files -$ ! -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ del *.h5differr;* -$ endif -$ del *.h5diffout;* -$ del h5diff_temp.dif;* -$ ! -$ENDSUBROUTINE - diff --git a/vms/tools/h5diff/make.com b/vms/tools/h5diff/make.com deleted file mode 100644 index c1e0078..0000000 --- a/vms/tools/h5diff/make.com +++ /dev/null @@ -1,48 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VAX/VMX systems. -$! -$! Make h5diff tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib]) -$! -$ cobj= "h5diff_main, h5diff_common, h5diffgentest" - -$! -$ ccc 'cobj -$ type sys$input - Creating h5diffgentest ... -$ link/exe=h5diffgentest.exe - - h5diffgentest, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5difftest - -$ -$ type sys$input - Creating h5diff ... -$ link/exe=h5diff.exe - - h5diff_main, h5diff_common, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5diff - -$! -$ exit diff --git a/vms/tools/h5dump/check_h5dump.com b/vms/tools/h5dump/check_h5dump.com deleted file mode 100644 index 2c34731..0000000 --- a/vms/tools/h5dump/check_h5dump.com +++ /dev/null @@ -1,353 +0,0 @@ -$!# -$!# 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. -$!# -$ ! -$ ! This command file tests h5dump utility. The command file has to -$ ! run in the [hdf5-top.tools.testfiles] directory. -$ ! -$ type sys$input - -=================================== - Testing h5dump utiltity -=================================== - -$ -$ ! -$ ! Define h5dump symbol -$ ! -$! set message/notext/nofacility/noidentification/noseverity -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-10, current_dir) -$ h5dump_dir = temp + "H5DUMP]" -$ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe -$ ! -$ ! h5dump tests -$ ! -$ -$ -$ -$ ! Test for displaying groups -$ CALL TOOLTEST tgroup-1.ddl "tgroup.h5" -$ ! Test for displaying the selected groups -$ CALL TOOLTEST tgroup-2.ddl "--group=/g2 --group / -g /y tgroup.h5" -$ ! Test for displaying simple space datasets -$ CALL TOOLTEST tdset-1.ddl "tdset.h5" -$ ! Test for displaying selected datasets -$ CALL TOOLTEST tdset-2.ddl "-"""H""" -d dset1 -d /dset2 --dataset=dset3 tdset.h5" -$ ! Test for displaying attributes -$ CALL TOOLTEST tattr-1.ddl "tattr.h5" -$ ! Test for displaying the selected attributes of string type and scalar space -$ CALL TOOLTEST tattr-2.ddl "-a /attr1 --attribute /attr4 --attribute=/attr5 tattr.h5" -$ ! Test for header and error messages -$ CALL TOOLTEST tattr-3.ddl "--header -a /attr2 --attribute=/attr tattr.h5" -$ ! Test for displaying attributes in shared datatype (also in group and dataset) -$ CALL TOOLTEST tnamed_dtype_attr.ddl "tnamed_dtype_attr.h5" -$ -$ ! Test for displaying soft links -$ CALL TOOLTEST tslink-1.ddl "tslink.h5" -$ ! Test for displaying the selected link -$ CALL TOOLTEST tslink-2.ddl "-l slink2 tslink.h5" -$ -$ ! Tests for hard links -$ CALL TOOLTEST thlink-1.ddl "thlink.h5" -$ CALL TOOLTEST thlink-2.ddl "-d /g1/dset2 --dataset /dset1 --dataset=/g1/g1.1/dset3 thlink.h5" -$ CALL TOOLTEST thlink-3.ddl "-d /g1/g1.1/dset3 --dataset /g1/dset2 --dataset=/dset1 thlink.h5" -$ CALL TOOLTEST thlink-4.ddl "-g /g1 thlink.h5" -$ CALL TOOLTEST thlink-5.ddl "-d /dset1 -g /g2 -d /g1/dset2 thlink.h5" -$ -$ ! Tests for compound data types -$ CALL TOOLTEST tcomp-1.ddl "tcompound.h5" -$ ! test for named data types -$ CALL TOOLTEST tcomp-2.ddl "-t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5" -$ ! Test for unamed type -$ CALL TOOLTEST tcomp-3.ddl "-t /#6632 -g /group2 tcompound.h5" -$ ! Test complicated compound datatype -$ CALL TOOLTEST tcomp-4.ddl "tcompound_complex.h5" -$ -$ ! Test for the nested compound type -$ CALL TOOLTEST tnestcomp-1.ddl "tnestedcomp.h5" -$ -$ ! test for options -$ CALL TOOLTEST tall-1.ddl "tall.h5" -$ CALL TOOLTEST tall-2.ddl "--header -g /g1/g1.1 -a attr2 tall.h5" -$ CALL TOOLTEST tall-3.ddl "-d /g2/dset2.1 -l /g1/g1.2/g1.2.1/slink tall.h5" -$ -$ ! Test for loop detection -$ CALL TOOLTEST tloop-1.ddl "tloop.h5" -$ -$ ! Test for string -$ CALL TOOLTEST tstr-1.ddl "tstr.h5" -$ CALL TOOLTEST tstr-2.ddl "tstr2.h5" -$ -$ ! Test for file created by Lib SAF team -$ CALL TOOLTEST tsaf.ddl "tsaf.h5" -$ -$ ! Test for file with variable length data -$ CALL TOOLTEST tvldtypes1.ddl "tvldtypes1.h5" -$ CALL TOOLTEST tvldtypes2.ddl "tvldtypes2.h5" -$ CALL TOOLTEST tvldtypes3.ddl "tvldtypes3.h5" -$ CALL TOOLTEST tvldtypes4.ddl "tvldtypes4.h5" -$ CALL TOOLTEST tvldtypes5.ddl "tvldtypes5.h5" -$ -$ ! Test for file with variable length string data -$ CALL TOOLTEST tvlstr.ddl "tvlstr.h5" -$ -$ ! Test for files with array data -$ CALL TOOLTEST tarray1.ddl "tarray1.h5" -$ CALL TOOLTEST tarray2.ddl "tarray2.h5" -$ CALL TOOLTEST tarray3.ddl "tarray3.h5" -$ CALL TOOLTEST tarray4.ddl "tarray4.h5" -$ CALL TOOLTEST tarray5.ddl "tarray5.h5" -$ CALL TOOLTEST tarray6.ddl "tarray6.h5" -$ CALL TOOLTEST tarray7.ddl "tarray7.h5" -$ -$ ! Test for files with empty data -$ CALL TOOLTEST tempty.ddl "tempty.h5" -$ -$ ! Test for files with groups that have comments -$ CALL TOOLTEST tgrp_comments.ddl "tgrp_comments.h5" -$ -$ ! Test the --filedriver flag -$ CALL TOOLTEST tsplit_file.ddl "--filedriver=split tsplit_file" -$ CALL TOOLTEST tfamily.ddl "--filedriver=family tfamily%05d.h5" -$ CALL TOOLTEST tmulti.ddl "--filedriver=multi tmulti" -$ -$ ! Test for files with group names which reach > 1024 bytes in size -$ CALL TOOLTEST tlarge_objname.ddl "-w157 tlarge_objname.h5" -$ -$ ! Test '-A' to suppress data but print attr's -$ CALL TOOLTEST tall-2A.ddl "-"""A""" tall.h5" -$ -$ ! Test '-r' to print attributes in ASCII instead of decimal -$ CALL TOOLTEST tall-2B.ddl "-"""A""" -r tall.h5" -$ -$ ! Test Subsetting -$ CALL TOOLTEST tall-4s.ddl "--dataset=/g1/g1.1/dset1.1.1 --start=1,1 --stride=2,3 --count=3,2 --block=1,1 tall.h5" -$ CALL TOOLTEST tall-5s.ddl "-d /g1/g1.1/dset1.1.2[0;2;10;] tall.h5" -$ CALL TOOLTEST tdset-3s.ddl "-d /dset1[1,1;;;] tdset.h5" -$! CALL TOOLTEST tdset-3s.ddl "-d """/"dset"1[;3,2;4,4;1,4]""" tdset2.h5" -$ -$ ! Test printing characters in ASCII instead of decimal -$ CALL TOOLTEST tchar1.ddl "-r tchar.h5" -$ -$ ! Test failure handling -$ ! Missing file name -$ CALL TOOLTEST "tnofilename.ddl" -$ -$ ! rev. 2004 -$ -$ ! Tests for super block -$ CALL TOOLTEST tboot1.ddl "-"""H""" -"""B""" -d dset tfcontents1.h5" -$ CALL TOOLTEST tboot2.ddl "-"""B""" tfcontents2.h5" -$ -$ ! Test -p with a non existing dataset -$ CALL TOOLTEST tperror.ddl "-p -d bogus tfcontents1.h5" -$ -$ ! Test for file contents -$ CALL TOOLTEST tcontents.ddl "-n tfcontents1.h5" -$ -$ ! Tests for storage layout -$ ! Compact -$ CALL TOOLTEST tcompact.ddl "-"""H""" -p -d compact tfilters.h5" -$ ! Contiguous -$ CALL TOOLTEST tcontiguos.ddl "-"""H""" -p -d contiguous tfilters.h5" -$ ! Chunked -$ CALL TOOLTEST tchunked.ddl "-"""H""" -p -d chunked tfilters.h5" -$ ! External -$ CALL TOOLTEST texternal.ddl "-"""H""" -p -d external tfilters.h5" -$ -$ ! Fill values -$ CALL TOOLTEST tfill.ddl "-p tfvalues.h5" -$ -$ ! Several datatype, with references , print path -$ CALL TOOLTEST treference.ddl "tattr2.h5" -$ -$ ! Escape/not escape non printable characters -$ CALL TOOLTEST tstringe.ddl "-e tstr3.h5" -$ CALL TOOLTEST tstring.ddl "tstr3.h5" -$ ! Char data as ASCII with non escape -$ CALL TOOLTEST tstring2.ddl "-r -d str4 tstr3.h5" -$ -$ ! Array indices print/not print -$ CALL TOOLTEST tindicesyes.ddl "taindices.h5" -$ CALL TOOLTEST tindicesno.ddl "-y taindices.h5" -$ ! User defined -$ CALL TOOLTEST tuserfilter.ddl "-"""H""" -p -d myfilter tfilters.h5" -$ -$ ! Test for displaying dataset and attribute of null space -$ CALL TOOLTEST tnullspace.ddl "tnullspace.h5" -$ -$ ! Test for displaying objects with very long names -$ !CALL TOOLTEST tlonglinks.ddl "tlonglinks.h5" -$ -$ ! Test for long double (some systems do not have long double) -$ ! CALL TOOLTEST tldouble.ddl "tldouble.h5" -$ -$ ! Test for vms -$ CALL TOOLTEST tvms.ddl "tvms.h5" -$ -$ !test for binary output -$ CALL TOOLTEST1 tbin1.ddl "-d integer -o out1.bin -b """LE""" tbinary.h5" -$ CALL TOOLTEST1 tbin2.ddl "-d float -o out2.bin -b """BE""" tbinary.h5" -$ CALL TOOLTEST1 tbin4.ddl "-d double -o out4.bin -b """FILE""" tbinary.h5" -$ -$ ! Test for dataset region references -$ CALL TOOLTEST tdatareg.ddl "tdatareg.h5" -$ -$ ! tests for group creation order "1" tracked, "2" name, root tracked -$ CALL TOOLTEST tordergr1.ddl "--group=1 --sort_by=creation_order --sort_order=ascending tordergr.h5" -$ CALL TOOLTEST tordergr2.ddl "--group=1 --sort_by=creation_order --sort_order=descending tordergr.h5" -$ CALL TOOLTEST tordergr3.ddl "-g 2 -q name -z ascending tordergr.h5" -$ CALL TOOLTEST tordergr4.ddl "-g 2 -q name -z descending tordergr.h5" -$ CALL TOOLTEST tordergr5.ddl "-q creation_order tordergr.h5" -$ -$ ! Tests for attribute order -$ CALL TOOLTEST torderattr1.ddl "-"""H""" --sort_by=name --sort_order=ascending torderattr.h5" -$ CALL TOOLTEST torderattr2.ddl "-"""H""" --sort_by=name --sort_order=descending torderattr.h5" -$ CALL TOOLTEST torderattr3.ddl "-"""H""" --sort_by=creation_order --sort_order=ascending torderattr.h5" -$ CALL TOOLTEST torderattr4.ddl "-"""H""" --sort_by=creation_order --sort_order=descending torderattr.h5" -$ ! -$TOOLTEST: SUBROUTINE -$ -$ len = F$LENGTH(P1) -$ base = F$EXTRACT(0,len-3,P1) -$ actual = base + "h5dumpout" -$ actual_err = base + "h5dumperr" -$ -$ begin = "Testing h5dump " -$ ! -$ ! Run the test and save output in the 'actual' file -$ ! -$ -$ define/nolog sys$output 'actual' -$ define/nolog sys$error 'actual_err' -$ write sys$output "#############################" -$ write sys$output "Expected output for 'h5dump ''P2''" -$ write sys$output "#############################" -$ ON ERROR THEN CONTINUE -$ h5dump 'P2 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_err' 'actual' -$ set message/text/facility/identification/severity -$ endif -$ ! -$ ! Compare the results -$ ! -$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1' -$ open/read temp_out h5dump_temp.dif -$ read temp_out record1 -$ close temp_out -$ ! -$ ! Extract error code and format output line -$ ! -$ len = F$LENGTH(record1) -$ err_code = F$EXTRACT(len-1,1,record1) -$ if err_code .eqs. "0" -$ then -$ result = "PASSED" -$ line = F$FAO("!15AS !50AS !70AS", begin, P2, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!15AS !49AS !69AS", begin, P2, result) -$ endif -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! Append the result to the log file -$ ! -$ append/new_version h5dump_temp.dif h5dump.log -$ append/new_version 'actual' h5dump_output.txt -$ ! -$ ! Delete temporary files -$ ! -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ del *.h5dumperr;* -$ endif -$ del *.h5dumpout;* -$ del h5dump_temp.dif;* -$ ! -$ENDSUBROUTINE -$ -$TOOLTEST1: SUBROUTINE -$ -$ len = F$LENGTH(P1) -$ base = F$EXTRACT(0,len-3,P1) -$ actual = base + "h5dumpout" -$ actual_err = base + "h5dumperr" -$ -$ begin = "Testing h5dump " -$ ! -$ ! Run the test and save output in the 'actual' file -$ ! -$ define/nolog sys$output 'actual' -$ define/nolog sys$error 'actual_err' -$ ON ERROR THEN CONTINUE -$ h5dump 'P2 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_err' 'actual' -$ set message/text/facility/identification/severity -$ endif -$ ! -$ ! Compare the results -$ ! -$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1' -$ open/read temp_out h5dump_temp.dif -$ read temp_out record1 -$ close temp_out -$ ! -$ ! Extract error code and format output line -$ ! -$ len = F$LENGTH(record1) -$ err_code = F$EXTRACT(len-1,1,record1) -$ if err_code .eqs. "0" -$ then -$ result = "PASSED" -$ line = F$FAO("!15AS !50AS !70AS", begin, P2, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!15AS !49AS !69AS", begin, P2, result) -$ endif -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! Append the result to the log file -$ ! -$ append/new_version h5dump_temp.dif h5dump.log -$ append/new_version 'actual' h5dump_output.txt -$ ! -$ ! Delete temporary files -$ ! -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ del *.h5dumperr;* -$ endif -$ del *.h5dumpout;* -$ del h5dump_temp.dif;* -$ ! -$ENDSUBROUTINE - diff --git a/vms/tools/h5dump/make.com b/vms/tools/h5dump/make.com deleted file mode 100644 index 612b524..0000000 --- a/vms/tools/h5dump/make.com +++ /dev/null @@ -1,41 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5dump tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib]) -$ cobj= "h5dump.c, h5dumpgentest.c " -$ ccc 'cobj -$ type sys$input - Creating h5dumpgentest ... -$ link h5dumpgentest, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5dumpgentest -$ type sys$input - Creating h5dump ... -$ link h5dump, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5dump -$! -$ exit diff --git a/vms/tools/h5import/check_h5import.com b/vms/tools/h5import/check_h5import.com deleted file mode 100644 index 96c2d07..0000000 --- a/vms/tools/h5import/check_h5import.com +++ /dev/null @@ -1,227 +0,0 @@ -$!# -$!# 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. -$!# -$ ! -$ ! This command file tests h5import utility. The command file has to -$ ! run in the [hdf5-top.tools.h5import.testfiles] directory. -$ ! -$ ! -$ type sys$input - -=================================== - Testing h5import utiltity -=================================== - -$ ! Define symbols -$ ! -$ -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-19, current_dir) -$ h5dump_dir = temp + "H5DUMP]" -$ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe -$ h5import_dir = temp + "H5IMPORT]" -$ h5import :== $sys$disk:'h5import_dir'h5import.exe -$ h5importtest :== $sys$disk:'h5import_dir'h5importtest.exe -$ ! -$ ! Define output for diff command that compares expected and actual -$ ! outputs of h5dump -$ ! -$ create h5import.log -$ ! -$ ! h5import tests -$ ! -$ ! Run h5importtest to create input files -$ ! -$ run [.-]h5importtest -$ ! -$ type sys$input - Testing ASCII I32 rank 3 - Output BE -$ CALL TOOLTEST "txtin16.txt -c txtin32.conf -o" txtin32.h5 -$ ! -$ type sys$input - Testing ASCII I16 rank 3 - Output LE - CHUNKED - extended -$ CALL TOOLTEST "txtin16.txt -c txtin16.conf -o" txtin16.h5 -$ ! -$ type sys$input - Testing ASCII I8 - rank 3 - Output I8 LE-Chunked+Extended+Compressed -$ CALL TOOLTEST "txtin16.txt -c txtin8.conf -o" txtin8.h5 -$ ! -$ type sys$input - Testing ASCII UI32 - rank 3 - Output BE -$ CALL TOOLTEST "txtuin32.txt -c txtuin32.conf -o" txtuin32.h5 -$ ! -$ type sys$input - Testing ASCII UI16 - rank 2 - Output LE+Chunked+Compressed -$ CALL TOOLTEST "txtuin32.txt -c txtuin16.conf -o" txtuin16.h5 -$ ! -$ type sys$input - Testing ASCII F32 - rank 3 - Output LE -$ CALL TOOLTEST "txtfp32.txt -c txtfp32.conf -o" txtfp32.h5 -$ ! -$ type sys$input - Testing ASCII F64 - rank 3 - Output BE + CHUNKED+Extended+Compressed -$ CALL TOOLTEST "txtfp64.txt -c txtfp64.conf -o" txtfp64.h5 -$ ! -$ type sys$input - Testing BINARY F64 - rank 3 - Output LE+CHUNKED+Extended+Compressed -$ CALL TOOLTEST "binfp64.bin -c binfp64.conf -o" binfp64.h5 -$ ! -$ type sys$input - Testing BINARY I16 - rank 3 - Output order LE + CHUNKED + extended -$ CALL TOOLTEST "binin16.bin -c binin16.conf -o" binin16.h5 -$ ! -$ type sys$input - Testing BINARY I8 - rank 3 - Output I16LE + Chunked+Extended+Compressed -$ CALL TOOLTEST "binin8.bin -c binin8.conf -o" binin8.h5 -$ ! -$ type sys$input - - Testing BINARY I32 - rank 3 - Output BE + CHUNKED -$ CALL TOOLTEST "binin32.bin -c binin32.conf -o" binin32.h5 -$ ! -$ type sys$input - Testing BINARY UI16 - rank 3 - Output byte BE + CHUNKED -$ CALL TOOLTEST "binuin16.bin -c binuin16.conf -o" binuin16.h5 -$ ! -$ type sys$input - Testing BINARY UI32 - rank 3 - Output LE + CHUNKED -$ CALL TOOLTEST "binuin32.bin -c binuin32.conf -o" binuin32.h5 -$ ! -$ type sys$input - Testing STR -$ CALL TOOLTEST "txtstr.txt -c txtstr.conf -o" txtstr.h5 -$ ! -$ type sys$input - Testing BINARY I8 CR LF EOF -$ CALL TOOLTEST "binin8w.bin -c binin8w.conf -o" binin8w.h5 -$ ! -$ type sys$input - Testing ASCII F64 - rank 1 - INPUT-CLASS TEXTFPE -$ CALL TOOLTEST "in64.txt -c textpfe.conf -o" test15.h5 -$ -$ -$ ! Delete temporary files -$ del *_out.h5;* -$ del *.h5importtxt;* -$ del b*.h5;* -$ del txti*.h5;* -$ del *.dif;* -$ ! -$ -$TOOLTEST: SUBROUTINE -$ -$ len = F$LENGTH(P2) -$ base = F$EXTRACT(0,len-3,P2) -$ actual = base + "_out.h5" -$ actual_dump = base + "out.h5importtxt" -$ actual_dump_err = base + "out.h5importerr" -$ expected_dump = base + ".h5importtxt" -$ expected_dump_err = base + ".h5importerr" -$ -$ begin = "Testing" -$ ! -$ ! Run h5import with output in the 'actual' file -$ ! -$ ON ERROR THEN CONTINUE -$ h5import 'P1 'actual' -$ define/nolog sys$output 'actual_dump' -$ define/nolog sys$error 'actual_dump_err' -$ ! -$ ! Dump the atual and expected files -$ ! -$ h5dump 'actual' -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_dump_err) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_dump_err' 'actual_dump' -$ set message/text/facility/identification/severity -$ endif -$ define/nolog sys$output 'expected_dump' -$ define/nolog sys$error 'expected_dump_err' -$ h5dump 'P2 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(expected_dump_err) .NES. "" -$ then -$ set message/notex/nofacility/noidentification/noseverity -$ append 'expected_dump_err' 'expected_dump' -$ set message/ntext/facility/identification/severity -$ endif -$ ! -$ ! Compare the results -$ ! -$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines)- - 'actual_dump' - - 'expected_dump' -$ open/read temp_out h5dump_temp.dif -$ ! -$READ_DATA: -$ read/end_of_file=end_read temp_out record1 -$ ! -$ ! Skip blank lines -$ ! -$ if record1 .EQS. "" then goto READ_DATA -$ ! -$ ! Find record with "Number" and exit the loop -$ ! -$ len = F$LENGTH(record1) -$ pos = F$LOCATE("Number", record1) -$ ! -$ if pos .EQ. 0 -$ then -$ err_code = F$EXTRACT(len-1,1,record1) -$ goto END_READ -$ endif -$ ! -$ goto READ_DATA -$ -$ ! -$END_READ: -$ close temp_out -$ ! -$ ! File names are different, so we allow only one difference -$ ! in h5dump -$ if err_code .eqs. "1" -$ then -$ result = "PASSED" -$ line = F$FAO("!8AS !62AS !80AS", begin, P1, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!8AS !61AS !79AS", begin, P1, result) -$ endif -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! Append the result to the log file -$ ! -$ append h5dump_temp.dif h5import.log -$ ! -$ ! -$ ! -$ ! Delete temporary files -$ ! -$ if F$SEARCH(actual_dump_err) .NES. "" -$ then -$ del *out.h5importerr;* -$ endif -$ if F$SEARCH(expected_dump_err) .NES. "" -$ then -$ del *.h5importerr;* -$ endif -$ENDSUBROUTINE diff --git a/vms/tools/h5import/make.com b/vms/tools/h5import/make.com deleted file mode 100644 index 6afbd70..0000000 --- a/vms/tools/h5import/make.com +++ /dev/null @@ -1,46 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5import tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib]) -$ type sys$input - Creating h5import ... -$! -$ cobj= "h5import, h5importtest " - -$! -$ ccc 'cobj -$ link h5import,- - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5import - -$! -$ type sys$input - Creating h5importtest ... -$ link h5importtest, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5importtest - -$! -$ exit diff --git a/vms/tools/h5jam/check_h5jam.com b/vms/tools/h5jam/check_h5jam.com deleted file mode 100644 index 50be903..0000000 --- a/vms/tools/h5jam/check_h5jam.com +++ /dev/null @@ -1,159 +0,0 @@ -$!# -$!# 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. -$!# -$ ! -$ ! This command file tests h5jam and h5unjam utilities. The command file has to -$ ! run in the [hdf5-top.tools.testfiles] directory. -$ ! -$ type sys$input - -=================================== - Testing h5jam utiltity -=================================== - -$ ! -$ ! Define h5jam, h5unjam and h5dump symbols -$ ! -$! set message/notext/nofacility/noidentification/noseverity -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-16, current_dir) -$ h5dump_dir = temp + "H5DUMP]" -$ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe -$ temp2 = F$EXTRACT(0, len-11, current_dir) -$ h5jam_dir = temp2 + "]" -$ h5jam :== $sys$disk:'h5jam_dir'h5jam.exe -$ ! -$ ! Define output for diff command that compares expected and actual -$ ! outputs of h5dump -$ ! -$ create h5dump.log -$ ! -$ ! h5jam and h5unjam tests -$ ! -$ -$ CALL H5JAMTEST "-u u10.txt -i" tall.h5 ta2.h5 -$ CALL H5JAMTEST "-u u511.txt -i" tall.h5 ta3.h5 -$ CALL H5JAMTEST "-u u512.txt -i" tall.h5 ta4.h5 -$ CALL H5JAMTEST "-u u513.txt -i" tall.h5 ta5.h5 -$ -$ -$H5JAMTEST: SUBROUTINE -$ -$ len_org = F$LENGTH(P2) -$ base_org = F$EXTRACT(0,len_org-2,P2) -$ len = F$LENGTH(P3) -$ base = F$EXTRACT(0,len-2,P3) -$ actual = base + "out" -$ actual_org = base_org + "org" -$ actual_err = base + "err" -$ actual_err_org = base_org + "err" -$ -$ ON ERROR THEN CONTINUE -$ begin = "Testing h5jam" -$ ! -$ ! Run the test -$ ! -$ h5jam 'P1 'P2 -o 'P3 -$ ! -$ ! Dump the original and result file -$ ! -$ define/nolog sys$output 'actual' -$ define/nolog sys$error 'actual_err' -$ h5dump 'P3 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_err' 'actual' -$ set message/ntext/facility/identification/severity -$ endif -$ define/nolog sys$output 'actual_org' -$ define/nolog sys$error 'actual_err_org' -$ h5dump 'P2 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_err_org) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_err_org' 'actual_org' -$ set message/ntext/facility/identification/severity -$ endif -$ ! -$ ! Compare the results -$ ! -$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual_org' - - 'actual' -$ ! -$ ! Delete output file 'P3 -$ ! -$ del 'P3;* -$ open/read temp_out h5dump_temp.dif -$READ_DATA: -$ read/end_of_file=end_read temp_out record1 -$ ! -$ ! Skip blank lines -$ ! -$ if record1 .EQS. "" then goto READ_DATA -$ ! -$ ! Find record with "Number" and exit the loop -$ ! -$ len = F$LENGTH(record1) -$ pos = F$LOCATE("Number", record1) -$ ! -$ if pos .EQ. 0 -$ then -$ err_code = F$EXTRACT(len-1,1,record1) -$ goto END_READ -$ endif -$ ! -$ goto READ_DATA -$ -$ ! -$END_READ: -$ close temp_out -$ -$ ! -$ ! Extract error code and format output line -$ ! -$ len = F$LENGTH(record1) -$ err_code = F$EXTRACT(len-1,1,record1) -$ if err_code .eqs. "1" -$ then -$ result = "PASSED" -$ line = F$FAO("!14AS !14AS !7AS !2AS !25AS !100AS", begin, P1, P2, - - "-o", P3, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!14AS !14AS !7AS !2AS !25AS !99AS", begin, P1, P2, - - "-o", P3, result) -$ endif -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! Append the result to the log file -$ ! -$ append h5dump_temp.dif h5dump.log -$ ! -$ ! Delete temporary files -$ ! -$! del *.out;* -$! del *.org;* -$! del *.dif;* -$ ! -$ENDSUBROUTINE - diff --git a/vms/tools/h5jam/make.com b/vms/tools/h5jam/make.com deleted file mode 100644 index d57b5e9..0000000 --- a/vms/tools/h5jam/make.com +++ /dev/null @@ -1,67 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5ls tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib]) -$ type sys$input - Creating h5jam -$! -$ cobj= "h5jam, h5unjam, tellub, getub, h5jamgentest" - -$! -$ ccc 'cobj -$ type sys$input - Creating tellub -$ link tellub - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created tellub -$ type sys$input - Creating getub -$ link getub - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created getub -$! -$! -$ type sys$input - Creating h5jamgentest -$ link h5jamgentest, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5jamgentest -$! -$ type sys$input - Creating h5jam -$ link h5jam, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5jam -$! -$ type sys$input - Creating h5junam -$ link h5unjam, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5unjam -$! -$ exit diff --git a/vms/tools/h5ls/check.com b/vms/tools/h5ls/check.com deleted file mode 100644 index b44dedc..0000000 --- a/vms/tools/h5ls/check.com +++ /dev/null @@ -1,70 +0,0 @@ -$!# -$!# 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. -$!# -$! -$! h5ls testing script -$! -$ define sys$output h5ls.out -$ define sys$error h5ls.err -$ h5ls :== $sys$sysusers:[pourmale.hdf5.tools.h5ls]h5ls.exe - -$ h5ls -w80 -h -$ h5ls -w80 -help -$ h5ls -w80 -? - -$! test simple command -$ h5ls -w80 tall.h5 -$ h5ls -w80 -r -d tall.h5 -$ h5ls -w80 tgroup.h5 - -$! test for displaying groups -$ h5ls -w80 -r -g tgroup.h5 - -$! test for displaying simple space datasets -$ h5ls -w80 -r -d tdset.h5 - -$! test for displaying soft links -$ h5ls -w80 -r tslink.h5 - -$! tests for hard links -$ h5ls -w80 thlink.h5 - -$! tests for compound data types -$ h5ls -w80 -r -d tcompound.h5 - -$!test for the nested compound type -$ h5ls -w80 -r -d tnestedcomp.h5 - -$! test for loop detection -$ h5ls -w80 -r -d tloop.h5 - -$! test for string -$ h5ls -w80 -r -d tstr.h5 - -$! test test file created from lib SAF team -$ h5ls -w80 -r -d tsaf.h5 - -$! test for variable length data types -$ h5ls -w80 -r -d tvldtypes1.h5 - -$! test for array data types -$ h5ls -w80 -r -d tarray1.h5 - -$! test for empty data -$ h5ls -w80 -d tempty.h5 - -$! test for all dataset types written to attributes -$! enable -S for avoiding printing NATIVE types -$ h5ls -w80 -v -S tattr2.h5 - diff --git a/vms/tools/h5ls/check_h5ls.com b/vms/tools/h5ls/check_h5ls.com deleted file mode 100644 index e155afa..0000000 --- a/vms/tools/h5ls/check_h5ls.com +++ /dev/null @@ -1,165 +0,0 @@ -$!# -$!# 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. -$!# -$! -$ ! -$ ! This command file tests h5ls utility. The command file has to -$ ! run in the [hdf5-top.tools.testfiles] directory. -$ ! -$ type sys$input - -=================================== - Testing h5ls utiltity -=================================== - -$ -$ ! -$ ! Define h5ls symbol -$ ! -$! set message/notext/nofacility/noidentification/noseverity -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-10, current_dir) -$ h5ls_dir = temp + "H5LS]" -$ h5ls :== $sys$disk:'h5ls_dir'h5ls.exe -$ ! -$ ! Define output for diff command that compares expected and actual -$ ! outputs of h5ls -$ ! -$ create h5ls.log -$ ! -$ ! h5ls tests -$ ! -$ -$ CALL TOOLTEST help-1.ls "-w80 -h" -$ CALL TOOLTEST help-2.ls "-w80 -help" -$ CALL TOOLTEST help-3.ls "-w80 -?" - -$! test simple command -$ CALL TOOLTEST tall-1.ls "-w80 tall.h5" -$ CALL TOOLTEST tall-2.ls "-w80 -r -d tall.h5" -$ CALL TOOLTEST tgroup.ls "-w80 tgroup.h5" - -$! test for displaying groups -$ CALL TOOLTEST tgroup-1.ls "-w80 -r -g tgroup.h5" - -$! test for displaying simple space datasets -$ CALL TOOLTEST tdset-1.ls "-w80 -r -d tdset.h5" - -$! test for displaying soft links -$ CALL TOOLTEST tslink-1.ls "-w80 -r tslink.h5" - -$! tests for hard links -$ CALL TOOLTEST thlink-1.ls "-w80 thlink.h5" - -$! tests for compound data types -$ CALL TOOLTEST tcomp-1.ls "-w80 -r -d tcompound.h5" - -$!test for the nested compound type -$ CALL TOOLTEST tnestcomp-1.ls "-w80 -r -d tnestedcomp.h5" - -$! test for loop detection -$ CALL TOOLTEST tloop-1.ls "-w80 -r -d tloop.h5" - -$! test for string -$ CALL TOOLTEST tstr-1.ls "-w80 -r -d tstr.h5" - -$! test test file created from lib SAF team -$ CALL TOOLTEST tsaf.ls "-w80 -r -d tsaf.h5" - -$! test for variable length data types -$ CALL TOOLTEST tvldtypes1.ls "-w80 -r -d tvldtypes1.h5" - -$! test for array data types -$ CALL TOOLTEST tarray1.ls "-w80 -r -d tarray1.h5" - -$! test for empty data -$ CALL TOOLTEST tempty.ls "-w80 -d tempty.h5" - -$! test for all dataset types written to attributes -$! enable -S for avoiding printing NATIVE types -$! This test will report failure for line 311 of the tattr2.ls file -$! contains -$! Modified: XXXX-XX-XX XX:XX:XX XXX -$! instead of -$! Modified: 2004-07-06 19:36:17 CST -$! UNIX shell script does replacement on the fly in the actual output -$! file; I do not know what can I do on VMS EIP 07/27/06 -$ CALL TOOLTEST tattr2.ls "-w80 -v -"""S""" tattr2.h5" - -$ -$ -$TOOLTEST: SUBROUTINE -$ -$ len = F$LENGTH(P1) -$ base = F$EXTRACT(0,len-2,P1) -$ actual = base + "h5lsout" -$ actual_err = base + "h5lserr" -$ -$ begin = "Testing h5ls " -$ ! -$ ! Run the test and save output in the 'actual' file -$ ! -$ define/nolog sys$output 'actual' -$ define/nolog sys$error 'actual_err' -$ write sys$output "#############################" -$ write sys$output " output for 'h5ls ''P2''" -$ write sys$output "#############################" -$ ON ERROR THEN CONTINUE -$ h5ls 'P2 -$ deassign sys$output -$ deassign sys$error -$ if F$SEARCH(actual_err) .NES. "" -$ then -$ set message/notext/nofacility/noidentification/noseverity -$ append 'actual_err' 'actual' -$ set message/text/facility/identification/severity -$ endif -$ ! -$ ! Compare the results -$ ! -$ diff/output=h5ls_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1' -$ open/read temp_out h5ls_temp.dif -$ read temp_out record1 -$ close temp_out -$ ! -$ ! Extract error code and format output line -$ ! -$ len = F$LENGTH(record1) -$ err_code = F$EXTRACT(len-1,1,record1) -$ if err_code .eqs. "0" -$ then -$ result = "PASSED" -$ line = F$FAO("!15AS !50AS !70AS", begin, P2, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!15AS !49AS !69AS", begin, P2, result) -$ endif -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! Append the result to the log file -$ ! -$ append h5ls_temp.dif h5ls.log -$ ! -$ ! Delete temporary files -$ ! -$ if F$SEARCH("*.h5lserr;*") then del *.h5lserr;* -$ if F$SEARCH("*.h5lsout;*") then del *.h5lsout;* -$ if F$SEARCH("*.dif;*") then del *.dif;* -$ ! -$ENDSUBROUTINE - diff --git a/vms/tools/h5ls/make.com b/vms/tools/h5ls/make.com deleted file mode 100644 index 51d57c6..0000000 --- a/vms/tools/h5ls/make.com +++ /dev/null @@ -1,39 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5ls tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib]) -$ type sys$input - Creating h5ls -$! -$ cobj= "h5ls.c " - -$! -$ ccc 'cobj -$ type sys$input - Creating h5ls -$ link h5ls, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5ls -$! -$ exit diff --git a/vms/tools/h5repack/check_h5repack.com b/vms/tools/h5repack/check_h5repack.com deleted file mode 100644 index 34c122c..0000000 --- a/vms/tools/h5repack/check_h5repack.com +++ /dev/null @@ -1,197 +0,0 @@ -$!# -$!# 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. -$!# -$! -$ ! -$ ! This command file tests h5repack utility. The command file has to -$ ! run in the [hdf5-top.tools.h5repack.testfiles] directory. -$ ! -$ ! -$ type sys$input - -=================================== - Testing h5repack utiltity -=================================== - -$ ! Define h5repack and h5diff symbols -$ ! -$! set message/notext/nofacility/noidentification/noseverity -$ current_dir = F$DIRECTRY() -$ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-11, current_dir) -$ temp1 = F$EXTRACT(0, len-19, current_dir) -$ h5diff_dir = temp1 + "H5DIFF]" -$ h5diff :== $sys$disk:'h5diff_dir'h5diff.exe -$ h5repack_dir = temp + "]" -$ h5repack :== $sys$disk:'h5repack_dir'h5repack.exe -$ ! -$ ! -$ ! h5repack tests -$ ! -$ - -$!# copy files (these files have no filters) -$ CALL TOOLTEST "" h5repack_fill.h5 -$ CALL TOOLTEST "" h5repack_objs.h5 -$ CALL TOOLTEST "" h5repack_attr.h5 -$ CALL TOOLTEST "" h5repack_hlink.h5 -$ CALL TOOLTEST "" h5repack_layout.h5 -$ CALL TOOLTEST "" h5repack_early.h5 - -$! Check repacking file with committed datatypes in odd configurations -$ CALL TOOLTEST "" h5repack_named_dtypes.h5 -$ -$! # use h5repack_layout.h5 to write some filters (this file has no filters) -$ -$! # gzip with individual object -$ CALL TOOLTEST "-f dset1:"""GZIP"""=1 -l dset1:"""CHUNK"""=20x10" h5repack_layout.h5 -$! -$ -$! # gzip for all -$ CALL TOOLTEST "-f """GZIP"""=1" h5repack_layout.h5 -$! -$! # shuffle with individual object -$ CALL TOOLTEST "-f dset2:"""SHUF""" -l dset2:"""CHUNK"""=20x10" h5repack_layout.h5 -$ -$! -$! -$! # shuffle for all -$ CALL TOOLTEST "-f """SHUF"""" h5repack_layout.h5 -$! -$! # fletcher32 with individual object -$ CALL TOOLTEST "-f dset2:"""FLET""" -l dset2:"""CHUNK"""=20x10" h5repack_layout.h5 -$! -$! # fletcher32 for all -$ CALL TOOLTEST "-f """FLET"""" h5repack_layout.h5 -$ -$! ########################################################### -$! # the following tests assume the input files have filters -$! ########################################################### -$! -$! # deflate copy -$ CALL TOOLTEST "" h5repack_deflate.h5 -$! -$! # deflate remove -$ CALL TOOLTEST "-f dset_deflate:"""NONE"""" h5repack_deflate.h5 -$! -$! # shuffle copy -$ CALL TOOLTEST "" h5repack_shuffle.h5 -$! -$! # shuffle remove -$ CALL TOOLTEST "-f dset_shuffle:"""NONE"""" h5repack_shuffle.h5 -$! -$! # fletcher32 copy -$ CALL TOOLTEST "" h5repack_fletcher.h5 -$! -$! # fletcher32 remove -$ CALL TOOLTEST "-f dset_fletcher32:"""NONE"""" h5repack_fletcher.h5 -$! -$! # nbit copy -$ CALL TOOLTEST "" h5repack_nbit.h5 -$! -$! # nbit remove -$ CALL TOOLTEST "-f dset_nbit:"""NONE"""" h5repack_nbit.h5 -$! -$! # nbit add -$ CALL TOOLTEST "-f dset_int31:"""NBIT"""" h5repack_nbit.h5 -$! -$! # scaleoffset add -$! CALL TOOLTEST "-f dset_none:"""S+O"""=31" h5repack_scaleoffset.h5 -$! -$! # scaleoffset copy -$! CALL TOOLTEST "" h5repack_scaleoffset.h5 -$! -$! # scaleoffset remove -$! CALL TOOLTEST "-f dset_scaleoffset:"""NONE"""" h5repack_scaleoffset.h5 -$! -$! #limit -$ CALL TOOLTEST "-f """GZIP"""=1 -m 1024" h5repack_layout.h5 -$! -$! -$! -$! ######################################################### -$! # layout options (these files have no filters) -$! ######################################################### -$! -$ CALL TOOLTEST "-l dset2:"""CHUNK"""=20x10" h5repack_layout.h5 -$ CALL TOOLTEST "-l """CHUNK"""=20x10" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset2:"""CONTI"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l """CONTI"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset2:"""COMPA"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l """COMPA"""" h5repack_layout.h5 -$! -$! -$! ################################################################ -$! # layout conversions (file has no filters) -$! ############################################################### -$! -$ CALL TOOLTEST "-l dset_compact:"""CONTI"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_compact:"""CHUNK"""=2x5" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_compact:"""COMPA"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_contiguous:"""COMPA"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_contiguous:"""CHUNK"""=3x6" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_contiguous:"""CONTI"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_chunk:"""COMPA"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_chunk:"""CONTI"""" h5repack_layout.h5 -$ CALL TOOLTEST "-l dset_chunk:"""CHUNK"""=18x13" h5repack_layout.h5 -$! -$! -$! -$TOOLTEST: SUBROUTINE - -$ len = F$LENGTH(P2) -$ base = F$EXTRACT(0,len-3,P2) -$ output_file = base + "_out.h5" -$ output_err = base + ".h5repackerr" -$ output_out = base + ".h5repackout" -$ -$ begin = "Testing h5repack" -$ ! -$ ! Run the test and save output in the 'actual' file -$ ! -$ define/nolog sys$error 'output_err' -$ define/nolog sys$output 'output_out' -$ -$ ON ERROR THEN CONTINUE -$ h5repack 'P1 'P2 'output_file' -$ h5diff 'P2 'output_file' -$ deassign sys$error -$ deassign sys$output -$ if F$SEARCH(output_err) .EQS. "" -$ then -$ result = "PASSED" -$ line = F$FAO("!16AS !40AS !22AS !67AS", begin, P1, P2, result) -$ else -$ result = "*FAILED*" -$ line = F$FAO("!16AS !40AS !22AS !66AS", begin, P1, P2, result) -$ endif - -$ ! -$ ! Print test result -$ ! -$ write sys$output line -$ ! -$ ! -$ ! -$ ! Cleanup temporary files -$ ! -$ if F$SEARCH(output_err) .NES. "" -$ then -$ del *.h5repackerr;* -$ endif -$ del *.h5repackout;* -$ del *_out.h5;* -$ENDSUBROUTINE - - diff --git a/vms/tools/h5repack/make.com b/vms/tools/h5repack/make.com deleted file mode 100644 index 0de0e2b..0000000 --- a/vms/tools/h5repack/make.com +++ /dev/null @@ -1,55 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5repack tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test]) -$ type sys$input - Creating h5repack ... -$! -$ cobj= " h5repack_main, h5repack, h5repack_copy, h5repack_refs," +- - "h5repack_filters, h5repack_opttable, h5repack_parse, " +- - "h5repack_verify, h5repacktst" - -$! -$ ccc 'cobj -$ link/exe=h5repack.exe - - h5repack_main, h5repack, h5repack_copy, h5repack_refs, h5repack_filters, - - h5repack_opttable, h5repack_parse, - - h5repack_verify, - - [-.lib]libh5tools.olb/lib, - - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5repack - -$ type sys$input - Creating h5repacktst ... -$ link/exe=h5repacktst.exe - - h5repacktst, - - h5repack, h5repack_copy, h5repack_refs, h5repack_filters, - - h5repack_opttable, h5repack_parse, - - h5repack_verify, - - [-.lib]libh5tools.olb/lib,[-.-.test]libh5test.olb/lib, - - [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Finished h5repacktst -$! -$ exit diff --git a/vms/tools/h5stat/make.com b/vms/tools/h5stat/make.com deleted file mode 100644 index a822aaa..0000000 --- a/vms/tools/h5stat/make.com +++ /dev/null @@ -1,39 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make h5stat tool -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test]) -$ type sys$input - Creating h5stat -$! -$ cobj= " h5stat " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=h5stat.exe - - h5stat, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5stat -$! -$! -$ exit diff --git a/vms/tools/lib/make.com b/vms/tools/lib/make.com deleted file mode 100644 index 8e9ff47..0000000 --- a/vms/tools/lib/make.com +++ /dev/null @@ -1,34 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make HDF5 tools library -$! -$! ccopt = "/float=ieee_float" -$ ccc := cc 'ccopt /include=([-.-.src]) -$! -$ type sys$input - Creating HDF5 Tools library -$! -$ cobj="h5tools, h5tools_str, h5tools_utils, h5diff, h5diff_array, "+- - "h5diff_attr, h5diff_dset, h5diff_util, h5trav,"+- - "h5tools_filters, h5tools_ref, h5tools_type" -$! -$ ccc 'cobj -$ library/create []libh5tools 'cobj -$ type sys$input - Created HDF5 tools library -$! -$ exit diff --git a/vms/tools/misc/make.com b/vms/tools/misc/make.com deleted file mode 100644 index ed2d061..0000000 --- a/vms/tools/misc/make.com +++ /dev/null @@ -1,90 +0,0 @@ -$!# -$!# Copyright by The HDF Group. -$!# Copyright by the Board of Trustees of the University of Illinois. -$!# All rights reserved. -$!# -$!# This file is part of HDF5. The full HDF5 copyright notice, including -$!# terms governing use, modification, and redistribution, is contained in -$!# the files COPYING and Copyright.html. COPYING can be found at the root -$!# of the source code distribution tree; Copyright.html can be found at the -$!# root level of an installed copy of the electronic HDF5 document set and -$!# is linked from the top-level documents page. It can also be found at -$!# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -$!# access to either file, you may request a copy from help@hdfgroup.org. -$!# -$! Makefile for VMS systems. -$! -$! Make miscellaneous tools -$! -$! The next two lines should be uncommented only when building by hand in the -$! current directory. Use build.com in the vms directory to build -$! the distribution. Make sure that location of the zlib library is correct. -$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3] -$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir" -$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test]) -$ type sys$input - Creating h5debug -$! -$ cobj= " h5debug " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=h5debug.exe - - h5debug, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5debug -$! -$ type sys$input - Creating h5mkgrp -$! -$ cobj= " h5mkgrp " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=h5mkgrp.exe - - h5mkgrp, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5mkgrp -$! -$ type sys$input - Creating h5repart -$! -$ cobj= " h5repart " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=h5repart.exe - - h5repart, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5repart -$! -$ cobj= " h5repart_gentest " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=h5repart_gentest.exe - - h5repart_gentest, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created h5repart_gentest -$! -$ type sys$input - Creating repart_test -$! -$ cobj= " repart_test " -$! -$ ccc 'cobj -$ type sys$input -$ link/exe=repart_test.exe - - repart_test, - - [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib -$ type sys$input - Created repart_test -$! -$ type sys$input - Done with misc tools compilation -$! -$ exit diff --git a/vms/tools/testfiles/tattr-3.ddl b/vms/tools/testfiles/tattr-3.ddl deleted file mode 100644 index 8907843..0000000 --- a/vms/tools/testfiles/tattr-3.ddl +++ /dev/null @@ -1,13 +0,0 @@ - -############################# -Expected output for 'h5dump --header -a /attr2 --attribute=/attr tattr.h5' -############################# -HDF5 "tattr.h5" { -ATTRIBUTE "/attr2" { - DATATYPE H5T_STD_I32BE - DATASPACE SIMPLE { ( 10 ) / ( 10 ) } -} -ATTRIBUTE "/attr" { -} -} -h5dump error: unable to open attribute "/" diff --git a/vms/tools/testfiles/tdset-2.ddl b/vms/tools/testfiles/tdset-2.ddl deleted file mode 100644 index e6439ae..0000000 --- a/vms/tools/testfiles/tdset-2.ddl +++ /dev/null @@ -1,17 +0,0 @@ - -############################# -Expected output for 'h5dump -H -d dset1 -d /dset2 --dataset=dset3 tdset.h5' -############################# -HDF5 "tdset.h5" { -DATASET "dset1" { - DATATYPE H5T_STD_I32BE - DATASPACE SIMPLE { ( 10, 20 ) / ( 10, 20 ) } -} -DATASET "/dset2" { - DATATYPE H5T_IEEE_F64BE - DATASPACE SIMPLE { ( 30, 20 ) / ( 30, 20 ) } -} -DATASET "dset3" { -} -} -h5dump error: unable to open dataset "dset3" diff --git a/vms/tools/testfiles/tgroup-2.ddl b/vms/tools/testfiles/tgroup-2.ddl deleted file mode 100644 index 120ef2d..0000000 --- a/vms/tools/testfiles/tgroup-2.ddl +++ /dev/null @@ -1,47 +0,0 @@ - -############################# -Expected output for 'h5dump --group=/g2 --group / -g /y tgroup.h5' -############################# -HDF5 "tgroup.h5" { -GROUP "/g2" { - GROUP "g2.1" { - GROUP "g2.1.1" { - } - GROUP "g2.1.2" { - } - GROUP "g2.1.3" { - } - } -} -GROUP "/" { - GROUP "g1" { - GROUP "g1.1" { - } - GROUP "g1.2" { - } - } - GROUP "g2" { - GROUP "g2.1" { - GROUP "g2.1.1" { - } - GROUP "g2.1.2" { - } - GROUP "g2.1.3" { - } - } - } - GROUP "g3" { - GROUP "g3.1" { - } - GROUP "g3.2" { - } - GROUP "g3.3" { - } - GROUP "g3.4" { - } - } -} -GROUP "/y" { -} -} -h5dump error: unable to open group "/y" diff --git a/vms/tools/testfiles/tperror.ddl b/vms/tools/testfiles/tperror.ddl deleted file mode 100644 index 7275907..0000000 --- a/vms/tools/testfiles/tperror.ddl +++ /dev/null @@ -1,9 +0,0 @@ - -############################# -Expected output for 'h5dump -p -d bogus tfcontents1.h5' -############################# -HDF5 "tfcontents1.h5" { -DATASET "bogus" { -} -} -h5dump error: unable to open dataset "bogus" |