Skip to content

Commit 73d2155

Browse files
committed
more handle closes
1 parent 9698bd8 commit 73d2155

File tree

5 files changed

+22
-10
lines changed

5 files changed

+22
-10
lines changed

src/read/reader.in.f90

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@
9292
call h5dclose_f(dset_id, ier)
9393
if(ier /= 0) error stop "ERROR:h5fortran:reader: closing dataset: " // dname // " in " // self%filename
9494

95+
if(self%use_mpi) call h5pclose_f(xfer_id, ier)
96+
if(ier /= 0) error stop "ERROR:h5fortran:writer closing property: " // dname // " in " // self%filename
97+
9598
end procedure h5read_scalar
9699

97100

src/read/reader_template.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@
5151
if(file_space_id /= H5S_ALL_F) call h5sclose_f(file_space_id, ier)
5252
if(ier /= 0) error stop "ERROR:h5fortran:reader closing file dataspace: " // dname // " in " // self%filename
5353

54-
call h5pclose_f(xfer_id, ier)
54+
if(self%use_mpi) call h5pclose_f(xfer_id, ier)
5555
if(ier /= 0) error stop "ERROR:h5fortran:reader closing property: " // dname // " in " // self%filename

src/write/write.f90

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,17 +98,17 @@
9898
end procedure hdf_create
9999

100100

101-
subroutine set_deflate(self, dims, plist_id, chunk_size)
101+
subroutine set_deflate(self, dims, dcpl, chunk_size)
102102
class(hdf5_file), intent(inout) :: self
103103
integer(HSIZE_T), intent(in) :: dims(:)
104-
integer(HID_T), intent(out) :: plist_id
104+
integer(HID_T), intent(out) :: dcpl
105105
integer, intent(in), optional :: chunk_size(:)
106106

107107
integer(HSIZE_T) :: cs(size(dims))
108108
integer :: ierr
109109

110110

111-
plist_id = H5P_DEFAULT_F
111+
dcpl = H5P_DEFAULT_F
112112

113113
if (present(chunk_size)) then
114114
cs = chunk_size
@@ -127,18 +127,18 @@ subroutine set_deflate(self, dims, plist_id, chunk_size)
127127
if(any(cs == 0)) return !< array too small to chunk
128128
if(any(cs < 0)) error stop "ERROR:h5fortran:set_deflate: chunk_size must be strictly positive"
129129

130-
call h5pcreate_f(H5P_DATASET_CREATE_F, plist_id, ierr)
130+
call h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, ierr)
131131
if (ierr/=0) error stop "ERROR:h5fortran:set_deflate:h5pcreate: " // self%filename
132132

133-
call h5pset_chunk_f(plist_id, size(dims), cs, ierr)
133+
call h5pset_chunk_f(dcpl, size(dims), cs, ierr)
134134
if (ierr/=0) error stop "ERROR:h5fortran:set_deflate:h5pset_chunk: " // self%filename
135135

136136
if (self%fletcher32) then
137137
!! fletcher32 filter adds a checksum to the data
138138
if (self%use_mpi .and. .not. self%parallel_compression) then
139139
write(stderr, '(a)') 'WARNING: h5fortran:set_deflate: fletcher32 parallel filter not supported ' // self%filename
140140
else
141-
call h5pset_fletcher32_f(plist_id, ierr)
141+
call h5pset_fletcher32_f(dcpl, ierr)
142142
if (ierr/=0) error stop "ERROR:h5fortran:set_deflate:h5pset_fletcher32: " // self%filename
143143
endif
144144
endif
@@ -155,12 +155,12 @@ subroutine set_deflate(self, dims, plist_id, chunk_size)
155155
if (self%use_mpi .and. .not. self%parallel_compression) then
156156
write(stderr, '(a)') 'WARNING: h5fortran:set_deflate: shuffle parallel filter not supported ' // self%filename
157157
else
158-
call h5pset_shuffle_f(plist_id, ierr)
158+
call h5pset_shuffle_f(dcpl, ierr)
159159
if (ierr/=0) error stop "ERROR:h5fortran:set_deflate:h5pset_shuffle: " // self%filename
160160
endif
161161
endif
162162

163-
call h5pset_deflate_f(plist_id, self%comp_lvl, ierr)
163+
call h5pset_deflate_f(dcpl, self%comp_lvl, ierr)
164164
if (ierr/=0) error stop "ERROR:h5fortran:set_deflate:h5pset_deflate: " // self%filename
165165

166166
if(self%debug) print '(a,i0)','TRACE:set_deflate done, comp_lvl: ', self%comp_lvl

src/write/writer.in.f90

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,15 @@
5959
call h5dclose_f(dset_id, ier)
6060
if(ier /= 0) error stop "ERROR:h5fortran:writer: closing dataset: " // dname // " in " // self%filename
6161

62+
if(mem_space_id /= H5S_ALL_F) call h5sclose_f(mem_space_id, ier)
63+
if(ier /= 0) error stop "ERROR:h5fortran:writer closing memory dataspace: " // dname // " in " // self%filename
64+
65+
if(file_space_id /= H5S_ALL_F) call h5sclose_f(file_space_id, ier)
66+
if(ier /= 0) error stop "ERROR:h5fortran:writer closing file dataspace: " // dname // " in " // self%filename
67+
68+
if(self%use_mpi) call h5pclose_f(xfer_id, ier)
69+
if(ier /= 0) error stop "ERROR:h5fortran:writer closing property: " // dname // " in " // self%filename
70+
6271
end procedure h5write_scalar
6372

6473
module procedure ph5write_1d

src/write/writer_template.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@
6868
if(file_space_id /= H5S_ALL_F) call h5sclose_f(file_space_id, ier)
6969
if(ier /= 0) error stop "ERROR:h5fortran:writer closing file dataspace: " // dname // " in " // self%filename
7070

71-
call h5pclose_f(xfer_id, ier)
71+
if(self%use_mpi) call h5pclose_f(xfer_id, ier)
7272
if(ier /= 0) error stop "ERROR:h5fortran:writer closing property: " // dname // " in " // self%filename

0 commit comments

Comments
 (0)