get_cla_list_varying_logical Subroutine

private subroutine get_cla_list_varying_logical(self, val, pref)

Get CLA (multiple) value with varying size, logical.

Type Bound

command_line_argument

Arguments

Type IntentOptional Attributes Name
class(command_line_argument), intent(inout) :: self

CLA data.

logical, intent(out), allocatable :: val(:)

CLA values.

character(len=*), intent(in), optional :: pref

Prefixing string.


Calls

proc~~get_cla_list_varying_logical~~CallsGraph proc~get_cla_list_varying_logical flap_command_line_argument_t::command_line_argument%get_cla_list_varying_logical proc~check_list_size flap_command_line_argument_t::command_line_argument%check_list_size proc~get_cla_list_varying_logical->proc~check_list_size proc~errored~2 flap_command_line_argument_t::command_line_argument%errored proc~get_cla_list_varying_logical->proc~errored~2 proc~is_required_passed~2 flap_command_line_argument_t::command_line_argument%is_required_passed proc~get_cla_list_varying_logical->proc~is_required_passed~2 proc~tokenize flap_utils_m::tokenize proc~get_cla_list_varying_logical->proc~tokenize proc~check_list_size->proc~errored~2 interface~colorize face::colorize proc~errored~2->interface~colorize proc~print_error_message flap_object_t::object%print_error_message proc~errored~2->proc~print_error_message str str proc~errored~2->str proc~is_required_passed~2->proc~errored~2 proc~colorize_default face::colorize_default interface~colorize->proc~colorize_default proc~color_index face::color_index proc~colorize_default->proc~color_index proc~style_index face::style_index proc~colorize_default->proc~style_index proc~upper face::upper proc~colorize_default->proc~upper

Called by

proc~~get_cla_list_varying_logical~~CalledByGraph proc~get_cla_list_varying_logical flap_command_line_argument_t::command_line_argument%get_cla_list_varying_logical none~get_varying flap_command_line_argument_t::command_line_argument%get_varying none~get_varying->proc~get_cla_list_varying_logical proc~get_cla_list_varying_char~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_char proc~get_cla_list_varying_char~2->none~get_varying proc~get_cla_list_varying_i1p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I1P proc~get_cla_list_varying_i1p~2->none~get_varying proc~get_cla_list_varying_i2p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I2P proc~get_cla_list_varying_i2p~2->none~get_varying proc~get_cla_list_varying_i4p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I4P proc~get_cla_list_varying_i4p~2->none~get_varying proc~get_cla_list_varying_i8p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I8P proc~get_cla_list_varying_i8p~2->none~get_varying proc~get_cla_list_varying_logical~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_logical proc~get_cla_list_varying_logical~2->none~get_varying proc~get_cla_list_varying_r16p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_R16P proc~get_cla_list_varying_r16p~2->none~get_varying proc~get_cla_list_varying_r4p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_R4P proc~get_cla_list_varying_r4p~2->none~get_varying proc~get_cla_list_varying_r8p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_R8P proc~get_cla_list_varying_r8p~2->none~get_varying none~get_varying~2 flap_command_line_interface_t::command_line_interface%get_varying none~get_varying~2->proc~get_cla_list_varying_char~2 none~get_varying~2->proc~get_cla_list_varying_i1p~2 none~get_varying~2->proc~get_cla_list_varying_i2p~2 none~get_varying~2->proc~get_cla_list_varying_i4p~2 none~get_varying~2->proc~get_cla_list_varying_i8p~2 none~get_varying~2->proc~get_cla_list_varying_logical~2 none~get_varying~2->proc~get_cla_list_varying_r4p~2 none~get_varying~2->proc~get_cla_list_varying_r8p~2 program~flap_test_action_store flap_test_action_store program~flap_test_action_store->none~get_varying~2 program~flap_test_basic flap_test_basic program~flap_test_basic->none~get_varying~2

Source Code

  subroutine get_cla_list_varying_logical(self, val, pref)
  !< Get CLA (multiple) value with varying size, logical.
  class(command_line_argument), intent(inout) :: self     !< CLA data.
  logical, allocatable,         intent(out)   :: val(:)   !< CLA values.
  character(*), optional,       intent(in)    :: pref     !< Prefixing string.
  integer(I4P)                                :: Nv       !< Number of values.
  character(len=len(self%val)), allocatable   :: valsV(:) !< String array of values based on self%val.
  character(len=len(self%def)), allocatable   :: valsD(:) !< String array of values based on self%def.
  integer(I4P)                                :: v        !< Values counter.

  if (.not.self%is_required_passed(pref=pref)) return
  if (.not.allocated(self%nargs)) then
    call self%errored(pref=pref, error=ERROR_NO_LIST)
    return
  endif
  if (self%act==action_store) then
    if (self%is_passed) then
      call tokenize(strin=self%val, delimiter=ARGS_SEP, toks=valsV, Nt=Nv)
      if (.not.self%check_list_size(Nv=Nv, val=valsV(1), pref=pref)) return
      allocate(logical:: val(1:Nv))
      do v=1,Nv
        read(valsV(v), *, iostat=self%error)val(v)
        if (self%error/=0) then
          call self%errored(pref=pref, error=ERROR_CASTING_LOGICAL, log_value=valsD(v))
          exit
        endif
      enddo
    else ! using default value
      call tokenize(strin=self%def, delimiter=ARGS_SEP, toks=valsD, Nt=Nv)
      if (.not.self%check_list_size(Nv=Nv, val=valsD(1), pref=pref)) return
      allocate(logical:: val(1:Nv))
      do v=1,Nv
        read(valsD(v), *, iostat=self%error)val(v)
        if (self%error/=0) then
          call self%errored(pref=pref, error=ERROR_CASTING_LOGICAL, log_value=valsD(v))
          exit
        endif
      enddo
    endif
  endif
  endsubroutine get_cla_list_varying_logical