subroutine restricted_auxiliary_energy(nBas,nEns,nO,eps,Eaux,occnum) ! Compute the auxiliary KS energies implicit none include 'parameters.h' ! Input variables integer,intent(in) :: nBas integer,intent(in) :: nEns integer,intent(in) :: nO double precision,intent(in) :: eps(nBas) double precision,intent(in) :: occnum(nBas,nspin,nEns) ! Local variables integer :: iEns ! Output variables double precision,intent(out) :: Eaux(nEns) ! Ground state density matrix iEns = 1 Eaux(iEns) = 2d0*sum(eps(1:nO)) ! Singly-excited state density matrix iEns = 2 if(nO > 1) then Eaux(iEns) = 2d0*sum(eps(1:nO-1)) else Eaux(iEns) = 0d0 end if Eaux(iEns) = Eaux(iEns) + sum(occnum(:,1,iEns))*eps(nO) + sum(occnum(:,2,iEns))*eps(nO+1) ! Doubly-excited state density matrix iEns = 3 if(nO > 1) then Eaux(iEns) = 2d0*sum(eps(1:nO-1)) else Eaux(iEns) = 0d0 end if Eaux(iEns) = Eaux(iEns) + sum(occnum(:,1,iEns))*eps(nO) + sum(occnum(:,2,iEns))*eps(nO+1) end subroutine restricted_auxiliary_energy