subroutine read_gdata_hdf5(this, gdata_buf, pos)
! Read the gdata of a single determinant from an hdf5 file
! Input: gdata_buf - gdata for the determinant at pos, has to be of size this%entry_size
! pos - position to put read data into
class(gdata_io_t), intent(in) :: this
integer(hsize_t), intent(in) :: gdata_buf(:)
integer, intent(in) :: pos
! only print one warning
logical, save :: t_warn = .true.
if (this%t_io()) then
if (this%entry_size() <= size(gdata_buf)) then
if (tAutoAdaptiveShift) then
call readFValsAsInt(gdata_buf(this%fvals_start:this%fvals_end), pos)
end if
if (tScaleBlooms) then
! set the global det data for bloom scaling
call set_max_ratio_hdf5Int( &
gdata_buf(this%max_ratio_start:this%max_ratio_end), pos)
end if
if (tAccumPopsActive) then
call readAPValsAsInt(gdata_buf(this%apvals_start:this%apvals_end), pos)
end if
else
if (t_warn) then
write(stderr, *) "WARNING: Dimension mismatch in read_gdata_hdf5, ignoring read data"
t_warn = .false.
end if
end if
end if
end subroutine read_gdata_hdf5