elemental function getDoubleContribution(step1, step2, deltaB, genFlag, bValue) &
result(doubleContr)
! Access necessary two-particle contribution to single excitation
! matrix elements.
!
! input:
! step1/2 ... stepvector values of CSFs, step1 is from <d'|
! deltaB ... current delta b value of excitation
! genFlag ... generator flag of excitation
! bValue ... current b value of CSF
!
! output:
! doubleContr ... product term from shavitt graph rules used to calculate
! the matrix element between two given CSFs
integer, intent(in) :: step1, step2, deltaB, genFlag
real(dp), intent(in) :: bValue
real(dp) :: doubleContr
integer :: ind
! get index
ind = indContr(step1, step2, deltaB + (genFlag + 1) / 2)
doubleContr = doubleContribution(ind)%ptr(bValue)
end function getDoubleContribution