function check_semistoch_flags(ilut_child, nI_child, run, tCoreDet) result(break)
integer(n_int), intent(inout) :: ilut_child(0:niftot)
integer, intent(in) :: nI_child(nel)
integer, intent(in) :: run
logical, intent(in) :: tCoreDet
logical :: tChildIsDeterm
logical :: break
break = .false.
tChildIsDeterm = is_core_state(ilut_child, nI_child, run)
if (tCoreDet) then
if (tChildIsDeterm) break = .true.
call set_flag(ilut_child, flag_determ_parent)
else
if (tChildIsDeterm) call set_flag(ilut_child, flag_deterministic(run))
end if
end function check_semistoch_flags