subroutine print_scf_energy(psinrm, ehf1, enuclear, etot, vee, vne, vnn, vtot, tkin, virial)
use precision, only: dp
use io_constants, only: iw
implicit none
real(kind=dp) :: psinrm, ehf1, enuclear, etot, vee, vne, vnn, vtot, tkin, virial
write(iw,"(/10X,17('=')/10X,'Energy components'/10X,17('=')/)")
write(iw,"(' Wavefunction normalization =',F19.10)") psinrm
write(iw,*)
write(iw,"(' One electron energy =',F19.10)") ehf1
write(iw,"(' Two electron energy =',F19.10)") vee
write(iw,"(' Nuclear repulsion energy =',F19.10)") enuclear
write(iw,"(38X,18('-'))")
write(iw,"(' TOTAL energy =',F19.10)") etot
write(iw,*)
write(iw,"(' Electron-electron potential energy =',F19.10)") vee
write(iw,"(' Nucleus-electron potential energy =',F19.10)") vne
write(iw,"(' Nucleus-nucleus potential energy =',F19.10)") vnn
write(iw,"(38X,18('-'))")
write(iw,"(' TOTAL potential energy =',F19.10)") vtot
write(iw,"(' TOTAL kinetic energy =',F19.10)") tkin
write(iw,"(' Virial ratio (V/T) =',F19.10)") virial
write(iw,*)
end subroutine print_scf_energy