pure function assign_excitInfo_values_exact(typ, gen1, gen2, currentGen, firstGen, &
lastGen, i, j, k, l, fullStart, secondStart, firstEnd, fullEnd, &
weight, excitLvl, order, order1, overlap, spin_change) &
result(excitInfo)
! version of the excitation information filler for the exact
! matrix element calculation between 2 given CSFs
integer, intent(in) :: typ, gen1, gen2, currentGen, firstGen, lastGen, &
i, j, k, l, fullStart, secondStart, firstEnd, &
fullEnd, weight, excitLvl
integer, intent(in), optional :: overlap
real(dp), intent(in) :: order, order1
logical, intent(in), optional :: spin_change
type(ExcitationInformation_t) :: excitInfo
! todo: asserts!
excitInfo%typ = typ
excitInfo%gen1 = gen1
excitInfo%gen2 = gen2
excitInfo%currentGen = currentGen
excitInfo%firstGen = firstGen
excitInfo%lastGen = lastGen
excitInfo%i = i
excitInfo%j = j
excitInfo%k = k
excitInfo%l = l
excitInfo%fullStart = fullStart
excitInfo%secondStart = secondStart
excitInfo%firstEnd = firstEnd
excitInfo%fullEnd = fullEnd
excitInfo%weight = weight
excitInfo%excitLvl = excitLvl
excitInfo%order = order
excitInfo%order1 = order1
if (present(spin_change)) then
excitInfo%spin_change = spin_change
else
excitInfo%spin_change = .false.
end if
if (present(overlap)) then
excitInfo%overlap = overlap
else
excitInfo%overlap = 2
end if
excitInfo%valid = .true.
end function assign_excitInfo_values_exact