append_val Subroutine

private subroutine append_val(vals, vcount, tok)

Append one value token to the values buffer.

Arguments

Type IntentOptional Attributes Name
character(len=256), intent(inout), allocatable :: vals(:)
integer, intent(inout) :: vcount
character(len=*), intent(in) :: tok

Called by

proc~~append_val~~CalledByGraph proc~append_val append_val proc~apply_one_pair apply_one_pair proc~apply_one_pair->proc~append_val proc~parse_group_body parse_group_body proc~parse_group_body->proc~apply_one_pair proc~dispatch_group dispatch_group proc~dispatch_group->proc~parse_group_body proc~parse_from_lines parse_from_lines proc~parse_from_lines->proc~dispatch_group proc~parse_file parse_file proc~parse_file->proc~parse_from_lines proc~schema_parse_lines nml_schema_t%schema_parse_lines proc~schema_parse_lines->proc~parse_from_lines

Variables

Type Visibility Attributes Name Initial
integer, private :: i
character(len=256), private, allocatable :: tmp(:)

Source Code

   subroutine append_val(vals, vcount, tok)
      !! Append one value token to the values buffer.
      character(len=256), allocatable, intent(inout) :: vals(:)
      integer, intent(inout) :: vcount
      character(len=*), intent(in) :: tok
      character(len=256), allocatable :: tmp(:)
      integer :: i

      if (vcount >= size(vals)) then
         allocate (tmp(max(4, 2*size(vals))))
         do i = 1, vcount
            tmp(i) = vals(i)
         end do
         call move_alloc(tmp, vals)
      end if
      vcount = vcount + 1
      vals(vcount) = tok
   end subroutine append_val