group_name_list Function

private function group_name_list(this) result(names)

All registered + external group names as a char array.

Arguments

Type IntentOptional Attributes Name
type(nml_schema_t), intent(in) :: this

Return Value character(len=:), allocatable, (:)


Called by

proc~~group_name_list~~CalledByGraph proc~group_name_list group_name_list proc~dispatch_group dispatch_group proc~dispatch_group->proc~group_name_list 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 proc~read_config_from_string_impl read_config_from_string_impl proc~read_config_from_string_impl->proc~schema_parse_lines proc~schema_parse nml_schema_t%schema_parse proc~schema_parse->proc~parse_file proc~read_config_from_string read_config_from_string proc~read_config_from_string->proc~read_config_from_string_impl proc~read_config_impl read_config_impl proc~read_config_impl->proc~schema_parse

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: k
integer, private :: mlen
integer, private :: ne
integer, private :: ng

Source Code

   function group_name_list(this) result(names)
      !! All registered + external group names as a char array.
      type(nml_schema_t), intent(in) :: this
      character(len=:), allocatable :: names(:)
      integer :: ng, ne, i, mlen, k

      ng = 0
      if (allocated(this%groups)) ng = size(this%groups)
      ne = 0
      if (allocated(this%external_names)) ne = size(this%external_names)
      mlen = 1
      do i = 1, ng
         mlen = max(mlen, len(this%groups(i)%name))
      end do
      if (ne > 0) mlen = max(mlen, len(this%external_names))
      allocate (character(len=mlen) :: names(ng + ne))
      k = 0
      do i = 1, ng
         k = k + 1
         names(k) = this%groups(i)%name
      end do
      do i = 1, ne
         k = k + 1
         names(k) = this%external_names(i)
      end do
   end function group_name_list