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