56 character(len=1024),
intent(in) :: outfile
57 real(dp),
intent(in) :: arr(:)
58 character(len=*),
intent(in) :: dsetname
61 integer(hid_t) :: file_id
62 integer(hid_t) :: dset_id
64 integer(hid_t) :: dspace_id
65 integer(hsize_t),
dimension(1) :: data_dims1
70 integer :: filter_info
71 integer :: filter_info_both
72 integer(hid_t) :: dcpl
73 integer :: chunkingfactor
74 integer(hsize_t),
dimension(1) :: chunk1
90 call h5zfilter_avail_f(h5z_filter_deflate_f, avail, error)
92 write(*,
'("gzip filter not available.",/)')
95 call h5zget_filter_info_f(h5z_filter_deflate_f, filter_info, error)
96 filter_info_both=ior(h5z_filter_encode_enabled_f,h5z_filter_decode_enabled_f)
97 if (filter_info .ne. filter_info_both)
then 98 write(*,
'("gzip filter not available for encoding and decoding.",/)')
103 if (h5firsttimeread.eqv..true.)
then 104 call h5fcreate_f(trim(adjustl(outfile)), h5f_acc_trunc_f,file_id,error)
105 h5firsttimeread=.false.
108 call h5fopen_f(trim(adjustl(outfile)), h5f_acc_rdwr_f, file_id, error)
116 data_dims1=shape(arr)
117 chunk1 = data_dims1/chunkingfactor
118 call checkchunking(chunk1)
121 call h5screate_simple_f (rank, data_dims1, dspace_id, error)
125 call h5pcreate_f(h5p_dataset_create_f, dcpl, error)
126 call h5pset_deflate_f(dcpl, 9, error)
127 call h5pset_chunk_f(dcpl, rank, chunk1, error)
130 call h5dcreate_f(file_id, dsetname, h5t_ieee_f64le, dspace_id, &
131 dset_id, error, dcpl)
134 call h5dwrite_f(dset_id,h5t_ieee_f64le, arr, data_dims1, error)
137 call h5pclose_f(dcpl,error)
139 call h5sclose_f(dspace_id, error)
141 call h5dclose_f(dset_id, error)
148 call h5fclose_f(file_id, error)
150 call h5close_f(error)