calc_orbital_pgen_contr_ueg Subroutine

public subroutine calc_orbital_pgen_contr_ueg(csf_i, occ_orbs, above_cpt, below_cpt)

Arguments

Type IntentOptional Attributes Name
type(CSF_Info_t), intent(in) :: csf_i
integer, intent(in) :: occ_orbs(2)
real(kind=dp), intent(out) :: above_cpt
real(kind=dp), intent(out) :: below_cpt

Contents


Source Code

    subroutine calc_orbital_pgen_contr_ueg(csf_i, occ_orbs, above_cpt, below_cpt)
        type(CSF_Info_t), intent(in) :: csf_i
        integer, intent(in) :: occ_orbs(2)
        real(dp), intent(out) :: above_cpt, below_cpt

        real(dp) :: cum_sum, cum_arr(nSpatOrbs)
        type(ExcitationInformation_t) :: tmp_excitInfo(nSpatOrbs)
        integer :: tmp_orbArr(nSpatOrbs)
        integer :: i, j

        call gen_ab_cum_list_1_1(csf_i, occ_orbs, cum_arr, tmp_excitInfo, tmp_orbArr)
        cum_sum = cum_arr(nSpatOrbs)

        i = gtID(occ_orbs(1))
        j = gtID(occ_orbs(2))

        ! get orbital probability at beginning: question is can they be
        ! 0, and can they be independently 0, and if yes how is the
        ! influence...
        above_cpt = (cum_arr(j) - cum_arr(j - 1)) / cum_sum

        if (i == 1) then
            below_cpt = cum_arr(1) / cum_sum
        else
            below_cpt = (cum_arr(i) - cum_arr(i - 1)) / cum_sum
        end if

    end subroutine calc_orbital_pgen_contr_ueg