output_diagnostics Subroutine

public subroutine output_diagnostics()

Arguments

None

Contents

Source Code


Source Code

    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