Print atom-resolved dispersion energies
Type | Intent | Optional | 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 |
|
character(len=*), | intent(in), | optional | :: | label |
Label for the output |
subroutine ascii_energy_atom(unit, mol, energies, label) !> 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(:) !> Label for the output character(len=*), intent(in), optional :: label integer :: iat, isp character(len=:), allocatable :: label_ label_ = "dispersion" if (present(label)) label_ = label write(unit, '(a,":")') "Atom-resolved "//label_//" 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