subroutine setup_ind_matrix_singles()
character(*), parameter :: this_routine = "setup_ind_matrix_singles"
integer :: i, j, k
integer(n_int) :: temp_ilut(0:nifd)
ASSERT(allocated(projedet))
ASSERT(allocated(iLutRef))
if (allocated(ind_matrix_singles)) deallocate(ind_matrix_singles)
allocate(ind_matrix_singles(nbasis, nbasis))
ind_matrix_singles = 0
temp_ilut = iLutRef(0:nifd, 1)
k = 1
do i = 1, nbasis
if (IsOcc(temp_ilut, i)) then
! the i is an electron in the reference!
! and for each electron index the virtuals
do j = 1, nbasis
! and i should and can specify the spin here!
if (IsNotOcc(temp_ilut, j) .and. same_spin(i, j)) then
ind_matrix_singles(i, j) = k
k = k + 1
end if
end do
end if
end do
end subroutine setup_ind_matrix_singles