| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | step1 | |||
| integer, | intent(in) | :: | step2 | |||
| integer, | intent(in) | :: | deltaB | |||
| integer, | intent(in) | :: | genFlag | |||
| real(kind=dp), | intent(in) | :: | bValue |
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