apply_lower_bound Subroutine

public pure subroutine apply_lower_bound(w)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: w(:)

Contents

Source Code


Source Code

    pure subroutine apply_lower_bound(w)
        ! even if some excitation is not possible in the reference frame, it might be in the
        ! current determinant, so we enforce a minimum value on the probabilities
        ! Input/Output: w - on input, list of probabilities
        !                 - on output, same list with a minimal value enforced
        implicit none
        real(dp), intent(inout) :: w(:)
        real(dp) :: mVal
        integer :: i

        mVal = 0.001 * minVal(w, w > eps)
        do i = 1, size(w)
            w(i) = max(w(i), mVal)
        end do

    end subroutine apply_lower_bound