convert_ilut_toNECI Subroutine

public subroutine convert_ilut_toNECI(ilutG, ilutN, HElement)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilutG(0:GugaBits%len_tot)
integer(kind=n_int), intent(out) :: ilutN(0:niftot)
real(kind=dp), intent(out), optional :: HElement

Contents

Source Code


Source Code

    subroutine convert_ilut_toNECI(ilutG, ilutN, HElement)
        integer(n_int), intent(in) :: ilutG(0:GugaBits%len_tot)
        integer(n_int), intent(out) :: ilutN(0:niftot)
        HElement_t(dp), intent(out), optional :: HElement
        character(*), parameter :: this_routine = "convert_ilut_toNECI"

        ASSERT(isProperCSF_ilut(ilutG))

        ilutN = 0_n_int
        ! i think i just need to copy over the det part again
        ilutN(0:GugaBits%len_orb) = ilutG(0:GugaBits%len_orb)

        ! and then extract the matrix element
        ! here i need to check what type of matrix element is necessary
        ! dependent on which type of compilation,
        ! extract_matrix_element always gives a real(dp)!
        if (present(HElement)) then
            HElement = extract_h_element(ilutG)
        end if

        if (tFillingStochRDMonfly) then
            ! in this case I need to transfer the rdm_ind and x0,x1 info to
            ! the 'neci ilut'
            call transfer_stochastic_rdm_info(ilutG, ilutN)
        end if

    end subroutine convert_ilut_toNECI