tagged_result Subroutine

public subroutine tagged_result(unit, energy, gradient, sigma)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: unit
real(kind=wp), intent(in), optional :: energy
real(kind=wp), intent(in), optional :: gradient(:,:)
real(kind=wp), intent(in), optional :: sigma(:,:)

Source Code

subroutine tagged_result(unit, energy, gradient, sigma)
   integer, intent(in) :: unit
   real(wp), intent(in), optional :: energy
   real(wp), intent(in), optional :: gradient(:, :)
   real(wp), intent(in), optional :: sigma(:, :)
   character(len=*), parameter :: tag_header = &
      & '(a,t20,":",a,":",i0,":",*(i0:,","))'

   if (present(energy)) then
      write(unit, tag_header) "energy", "real", 0
      write(unit, '(3es24.16)') energy
   end if
   if (present(gradient)) then
      write(unit, tag_header) "gradient", "real", 2, 3, size(gradient, 2)
      write(unit, '(3es24.16)') gradient
   end if
   if (present(sigma)) then
      write(unit, tag_header) "virial", "real", 2, 3, 3
      write(unit, '(3es24.16)') sigma
   end if

end subroutine tagged_result