subroutine davidson_direct_ci_end(this)
type(DavidsonCalcType), intent(inout) :: this
integer :: ierr
if (allocated(hamil_diag)) then
deallocate(hamil_diag, stat=ierr)
call LogMemDealloc("davidson_direct_ci_end", HDiagTag, ierr)
end if
if (allocated(this%davidson_eigenvector)) then
deallocate(this%davidson_eigenvector, stat=ierr)
call LogMemDealloc("davidson_direct_ci_end", DavidsonTag, ierr)
end if
write(stdout, '(/,1X,"Direct CI Davidson calculation complete.",/)'); call neci_flush(stdout)
write(stdout, "(1X,a10,f16.10)") "GROUND E =", this%davidson_eigenvalue; call neci_flush(stdout)
end subroutine davidson_direct_ci_end