subroutine output_diagnostics()
! Updates Time measures and gets the acceptance rate printed in output
! Update the total imaginary time passed
TotImagTime = TotImagTime + StepsPrint * Tau
! Set Iter time to equal the average time per iteration in the
! previous update cycle.
IterTime = IterTime / real(StepsPrint, sp)
! Do the same averaging for allNValidExcits and allNInvalidExcits
allNValidExcits = nint(real(allNValidExcits, dp) / real(StepsPrint, dp), int64)
allNInvalidExcits = nint(real(allNInvalidExcits, dp) / real(StepsPrint, dp), int64)
! Calculate the acceptance ratio
if (tContTimeFCIMC .and. .not. tContTimeFull) then
if (.not. near_zero(real(cont_spawn_attempts))) then
AccRat = real(cont_spawn_success) / real(cont_spawn_attempts)
else
AccRat = 0.0_dp
end if
else
if (.not. any(near_zero(AllSumWalkersOut))) then
AccRat = real(AllAcceptances, dp) / AllSumWalkersOut
else
AccRat = 0.0_dp
end if
end if
end subroutine output_diagnostics