real(dp) function cepa_shift_cc(run, ex_level)
! this routine should get used when we want to adapt the cepa-shift
! with biasing through the occupation of the higher order
! excitations
integer, intent(in) :: run, ex_level
if (ex_level == 1) then
cepa_shift_cc = cepa_shift_single(run) * cc_singles_factor()
else if (ex_level == 2) then
cepa_shift_cc = cepa_shift_double(run) * cc_doubles_factor()
else
if (t_apply_full_cepa) then
if (ex_level == 3) then
! i guess the shift could be the same for triples, just the
! factor changes
cepa_shift_cc = cepa_shift_double(run) * cc_triples_factor()
else if (ex_level == 4) then
cepa_shift_cc = cepa_shift_double(run) * cc_quads_factor()
else
! the farther one goes out the less occupied the excited space
! becomes.. so maybe it is fair to assume to apply the
! full shift..
cepa_shift_cc = cepa_shift_double(run)
end if
else
cepa_shift_cc = 0.0_dp
end if
end if
end function cepa_shift_cc