ascii_energy_atom Subroutine

public subroutine ascii_energy_atom(unit, mol, energies)

Print atom-resolved dispersion energies

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: unit

Unit for output

class(structure_type), intent(in) :: mol

Molecular structure data

real(kind=wp), intent(in), allocatable :: energies(:)

Atom-resolved dispersion energies


Source Code

subroutine ascii_energy_atom(unit, mol, energies)

   !> Unit for output
   integer, intent(in) :: unit

   !> Molecular structure data
   class(structure_type), intent(in) :: mol

   !> Atom-resolved dispersion energies
   real(wp), allocatable, intent(in) :: energies(:)

   integer :: iat, isp

   write(unit, '(a,":")') "Atom-resolved dispersion energies"
   write(unit, '(50("-"))')
   write(unit, '(a6,1x,a4,1x,4x,a15,1x,a15)') "#", "Z", "[Hartree]", "[kcal/mol]"
   write(unit, '(50("-"))')
   do iat = 1, mol%nat
      isp = mol%id(iat)
      write(unit, '(i6,1x,i4,1x,a4,e15.8,1x,f15.8)') &
         & iat, mol%num(isp), mol%sym(isp), energies(iat), energies(iat)*autokcal
   end do
   write(unit, '(50("-"))')
   write(unit, '(a)')

end subroutine ascii_energy_atom