Write a compressed 32-bit integer dataset of dimension 3
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=hid_t), | intent(in) | :: | loc_id | HDF5 file or group identifier | ||
| character(len=*), | intent(in) | :: | dset_name | Name of the dataset to create | ||
| integer, | intent(in) | :: | rank | Number of dimensions of dataspace | ||
| integer(kind=HSIZE_T), | intent(in), | dimension(*) | :: | dims | Array of the size of each dimension | |
| integer, | intent(in), | dimension(dims(1),dims(2),dims(3)) | :: | buf | Buffer with data to be written to the dataset | |
| integer, | intent(out) | :: | error | HDF5 error code | 
subroutine h5ltmake_compressed_dataset_int_f_3(loc_id,&
           dset_name, rank, dims, buf, error )
    !+ Write a compressed 32-bit integer dataset of dimension 3
    IMPLICIT NONE
    integer(hid_t), intent(in)                              :: loc_id
        !+ HDF5 file or group identifier
    character(len=*), intent(in)                            :: dset_name
        !+ Name of the dataset to create
    integer, intent(in)                                     :: rank
        !+ Number of dimensions of dataspace
    integer(HSIZE_T), dimension(*), intent(in)              :: dims
        !+ Array of the size of each dimension
    integer, dimension(dims(1),dims(2),dims(3)), intent(in) :: buf
        !+ Buffer with data to be written to the dataset
    integer, intent(out)                                    :: error
        !+ HDF5 error code
    integer(HID_T) :: did, sid, plist_id
    integer(HSIZE_T) :: cdims(3)
    if(.not.compress_data) then
        call h5ltmake_dataset_int_f(loc_id, dset_name, rank, dims, buf, error)
    else
        call h5screate_simple_f(rank, dims, sid, error)
        call h5pcreate_f(H5P_DATASET_CREATE_F, plist_id, error)
        call h5pset_shuffle_f(plist_id, error)
        call h5pset_deflate_f(plist_id, 9, error)
        call chunk_size(Int32, dims, cdims)
        call h5pset_chunk_f(plist_id, rank, cdims, error)
        call h5dcreate_f(loc_id, dset_name, H5T_NATIVE_INTEGER, sid, &
             did, error, dcpl_id=plist_id)
        call h5dwrite_f(did, H5T_NATIVE_INTEGER, buf, dims, error)
        call h5sclose_f(sid, error)
        call h5pclose_f(plist_id, error)
        call h5dclose_f(did, error)
    endif
end subroutine h5ltmake_compressed_dataset_int_f_3