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