159 character(len=1024),
intent(in) :: outfile
160 real(dp),
intent(in) :: arr(:,:)
161 character(len=*),
intent(in) :: dsetname
164 integer(hid_t) :: file_id
165 integer(hid_t) :: dset_id
167 integer(hid_t) :: dspace_id
168 integer(hsize_t),
dimension(2) :: data_dims2
173 integer :: filter_info
174 integer :: filter_info_both
175 integer(hid_t) :: dcpl
176 integer :: chunkingfactor
177 integer(hsize_t),
dimension(2) :: chunk2
193 call h5zfilter_avail_f(h5z_filter_deflate_f, avail, error)
195 write(*,
'("gzip filter not available.",/)')
198 call h5zget_filter_info_f(h5z_filter_deflate_f, filter_info, error)
199 filter_info_both=ior(h5z_filter_encode_enabled_f,h5z_filter_decode_enabled_f)
200 if (filter_info .ne. filter_info_both)
then 201 write(*,
'("gzip filter not available for encoding and decoding.",/)')
206 if (h5firsttimeread.eqv..true.)
then 207 call h5fcreate_f(trim(adjustl(outfile)), h5f_acc_trunc_f,file_id,error)
208 h5firsttimeread=.false.
211 call h5fopen_f(trim(adjustl(outfile)), h5f_acc_rdwr_f, file_id, error)
219 data_dims2=shape(arr)
220 chunk2 = data_dims2/chunkingfactor
221 call checkchunking(chunk2)
224 call h5screate_simple_f(rank, data_dims2, dspace_id, error)
228 call h5pcreate_f(h5p_dataset_create_f, dcpl, error)
229 call h5pset_deflate_f(dcpl, 9, error)
230 call h5pset_chunk_f(dcpl, rank, chunk2, error)
233 call h5dcreate_f(file_id, dsetname, h5t_ieee_f64le, dspace_id, &
234 dset_id, error, dcpl)
237 call h5dwrite_f(dset_id,h5t_ieee_f64le, arr, data_dims2, error)
240 call h5pclose_f(dcpl,error)
242 call h5sclose_f(dspace_id, error)
244 call h5dclose_f(dset_id, error)
251 call h5fclose_f(file_id, error)
253 call h5close_f(error)