assign_excitInfo_values_exact Function

private 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)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: typ
integer, intent(in) :: gen1
integer, intent(in) :: gen2
integer, intent(in) :: currentGen
integer, intent(in) :: firstGen
integer, intent(in) :: lastGen
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l
integer, intent(in) :: fullStart
integer, intent(in) :: secondStart
integer, intent(in) :: firstEnd
integer, intent(in) :: fullEnd
integer, intent(in) :: weight
integer, intent(in) :: excitLvl
real(kind=dp), intent(in) :: order
real(kind=dp), intent(in) :: order1
integer, intent(in), optional :: overlap
logical, intent(in), optional :: spin_change

Return Value type(ExcitationInformation_t)


Contents


Source Code

    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