encode_excit_info_scalar Function

private pure function encode_excit_info_scalar(typ, a, i, b, j) result(excit_info_int)

Arguments

Type IntentOptional Attributes Name
type(ExcitationType_t), intent(in) :: typ
integer, intent(in) :: a
integer, intent(in) :: i
integer, intent(in) :: b
integer, intent(in) :: j

Return Value integer(kind=int64)


Source Code

    pure function encode_excit_info_scalar(typ, a, i, b, j) result(excit_info_int)
        ! function to encode the minimal information of an excit-info
        ! object into a single 64bit integer. used in the PCHB excitation
        ! generation.
        debug_function_name("encode_excit_info_scalar")
        type(ExcitationType_t), intent(in) :: typ
        integer, intent(in) :: a, i, b, j
        integer(int64) :: excit_info_int

#ifdef DEBUG_
        if (typ%val .notin. non_trivial_double_excit_type_arr%val) then
            call stop_all(this_routine, "incorrect typ: "//typ%str)
        end if
#endif

        ASSERT(a > 0 .and. a <= nSpatOrbs)
        ASSERT(i > 0 .and. i <= nSpatOrbs)
        ASSERT(b > 0 .and. b <= nSpatOrbs)
        ASSERT(j > 0 .and. j <= nSpatOrbs)

        excit_info_int = encode_excit_info_vec(typ, [a,i,b,j])

    end function encode_excit_info_scalar