! ! Example of creating szip compressed dataset PROGRAM DSETSZIP USE HDF5 ! This module contains all necessary modules IMPLICIT NONE CHARACTER(LEN=9), PARAMETER :: filename = "dszipf.h5" CHARACTER(LEN=4), PARAMETER :: dsetname = "dset-compressed-szip" INTEGER(HID_T) :: file_id ! File identifier INTEGER(HID_T) :: dset_id ! Dataset identifier INTEGER(HID_T) :: dspace_id ! Dataspace identifier INTEGER(HID_T) :: dcpl ! Dataset Creation Property List ID INTEGER :: i, j INTEGER, DIMENSION(100,200) :: dset_data ! Data buffer INTEGER(HSIZE_T), DIMENSION(2) :: data_dims INTEGER(HSIZE_T), DIMENSION(2) :: chunk_dims = (/5,5/) INTEGER :: rank_chunk = 2 INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/100,200/) ! Dataset dimensions INTEGER :: rank = 2 ! Dataset rank INTEGER :: szip_options_mask, szip_pixels_per_block INTEGER :: error ! Error flag ! Initialize FORTRAN predefined datatypes. ! CALL h5open_f (error) ! Create a new file ! CALL h5fcreate_f (filename, H5F_ACC_TRUNC_F, file_id, error) ! Create the dataspace. ! CALL h5screate_simple_f (rank, dims, dspace_id, error) ! Set Dataset Creation Property List to create chunked dataset ! and to use szip compression. ! CALL h5pcreate_f (H5P_DATASET_CREATE_F, dcpl, error) CALL h5pset_chunk_f (dcpl, rank_chunk, chunk_dims, error) szip_options_mask = H5_SZIP_NN_OM_F szip_pixels_per_block = 4 CALL h5pset_szip_f (dcpl, szip_options_mask, szip_pixels_per_block, error) ! Create the dataset with default properties. ! CALL h5dcreate_f (file_id, dsetname, H5T_NATIVE_INTEGER, dspace_id, & dset_id, error, dcpl) ! Initialize the dset_data array. ! do i = 1, dims(1) do j = 1, dims(2) dset_data(i,j) = (i-1)*6 + j; end do end do ! Write the dataset. ! data_dims(1) = dims(1) data_dims(2) = dims(2) CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, dset_data, data_dims, error) ! End access to the dataset, dataspace, property list, and file. ! CALL h5pclose_f (dcpl, error) CALL h5dclose_f (dset_id, error) CALL h5sclose_f (dspace_id, error) CALL h5fclose_f (file_id, error) ! Close FORTRAN predefined datatypes. ! CALL h5close_f (error) END PROGRAM DSETSZIP