@@ -536,57 +536,37 @@ subroutine hdf_shape_check(self, dname, dims, ierr)
536536class(hdf5_file), intent (in ) :: self
537537character (* ), intent (in ) :: dname
538538integer (HSIZE_T), intent (in ) :: dims(:)
539- integer , intent (out ), optional :: ierr
539+ integer , intent (out ) :: ierr
540540
541541integer (SIZE_T) :: dsize
542542integer (HSIZE_T) :: ddims(size (dims))
543- integer :: dtype, drank, ier
543+ integer :: dtype, drank
544544
545545if (.not. self% exist (dname)) then
546546 write (stderr,* ) ' ERROR: ' // dname // ' does not exist in ' // self% filename
547- if (present (ierr)) then
548- ierr = - 1
549- return
550- else
551- error stop
552- endif
547+ ierr = - 1
548+ return
553549endif
554550
555551! > check for matching rank, else bad reads can occur--doesn't always crash without this check
556- call h5ltget_dataset_ndims_f(self% lid, dname, drank, ier)
557- if (present (ierr)) ierr = ier
558- if (check(ier, ' ERROR: get_dataset_ndim ' // dname // ' read ' // self% filename)) then
559- if (present (ierr)) return
560- error stop
561- endif
552+ call h5ltget_dataset_ndims_f(self% lid, dname, drank, ierr)
553+ if (check(ierr, ' ERROR: get_dataset_ndim ' // dname // ' read ' // self% filename)) return
562554
563555if (drank /= size (dims)) then
564556 write (stderr,' (A,I6,A,I6)' ) ' ERROR: rank mismatch ' // dname // ' = ' ,drank,' variable rank =' , size (dims)
565- if (present (ierr)) then
566- ierr = - 1
567- return
568- else
569- error stop
570- endif
557+ ierr = - 1
558+ return
571559endif
572560
573561! > check for matching size, else bad reads can occur.
574562
575- call h5ltget_dataset_info_f(self% lid, dname, ddims, dtype, dsize, ier)
576- if (present (ierr)) ierr = ier
577- if (check(ier, ' ERROR: get_dataset_info ' // dname // ' read ' // self% filename)) then
578- if (present (ierr)) return
579- error stop
580- endif
563+ call h5ltget_dataset_info_f(self% lid, dname, ddims, dtype, dsize, ierr)
564+ if (check(ierr, ' ERROR: get_dataset_info ' // dname // ' read ' // self% filename)) return
581565
582566if (.not. all (dims == ddims)) then
583567 write (stderr,* ) ' ERROR: shape mismatch ' // dname // ' = ' ,ddims,' variable shape =' , dims
584- if (present (ierr)) then
585- ierr = - 1
586- return
587- else
588- error stop
589- endif
568+ ierr = - 1
569+ return
590570endif
591571
592572end subroutine hdf_shape_check
0 commit comments