cepa_shift_cisd Function

private function cepa_shift_cisd(run, ex_level)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: run
integer, intent(in) :: ex_level

Return Value real(kind=dp)


Contents

Source Code


Source Code

    real(dp) function cepa_shift_cisd(run, ex_level)
        ! this is the bare cepa shift, which would be used in a CISD calculation
        ! with no higher excitations then doubles
        integer, intent(in) :: run, ex_level
        if (ex_level == 1) then
            cepa_shift_cisd = cepa_shift_single(run)
        else if (ex_level == 2) then
            cepa_shift_cisd = cepa_shift_double(run)
        else
            if (t_apply_full_cepa) then
                ! in this approach we apply the same shift, especially to
                ! the higher order of excitations..
                ! but maybe also with an correction.. tbd
                cepa_shift_cisd = cepa_shift_double(run)
            else
                ! with the change in the death-step to - (S - D) i then have to
                ! set this to 0 here, if i want to apply the full shift
                cepa_shift_cisd = 0.0_dp
            end if
        end if
    end function cepa_shift_cisd