flap_test_action_store Program

Uses

  • program~~flap_test_action_store~~UsesGraph program~flap_test_action_store flap_test_action_store module~flap flap program~flap_test_action_store->module~flap penf penf program~flap_test_action_store->penf module~flap_command_line_argument_t flap_command_line_argument_t module~flap->module~flap_command_line_argument_t module~flap_command_line_arguments_group_t flap_command_line_arguments_group_t module~flap->module~flap_command_line_arguments_group_t module~flap_command_line_interface_t flap_command_line_interface_t module~flap->module~flap_command_line_interface_t module~flap_command_line_argument_t->penf module~face face module~flap_command_line_argument_t->module~face module~flap_object_t flap_object_t module~flap_command_line_argument_t->module~flap_object_t module~flap_utils_m flap_utils_m module~flap_command_line_argument_t->module~flap_utils_m module~flap_command_line_arguments_group_t->penf module~flap_command_line_arguments_group_t->module~flap_command_line_argument_t module~flap_command_line_arguments_group_t->module~face module~flap_command_line_arguments_group_t->module~flap_object_t module~flap_command_line_interface_t->penf module~flap_command_line_interface_t->module~flap_command_line_argument_t module~flap_command_line_interface_t->module~flap_command_line_arguments_group_t module~flap_command_line_interface_t->module~face module~flap_command_line_interface_t->module~flap_object_t module~flap_command_line_interface_t->module~flap_utils_m iso_fortran_env iso_fortran_env module~face->iso_fortran_env module~flap_object_t->penf module~flap_object_t->iso_fortran_env module~flap_utils_m->penf

A testing program for FLAP, Fortran command Line Arguments Parser for poor people

Compile

See compile instructions.

Usage Compile

See usage instructions.


Calls

program~~flap_test_action_store~~CallsGraph program~flap_test_action_store flap_test_action_store none~get_varying~2 flap_command_line_interface_t::command_line_interface%get_varying program~flap_test_action_store->none~get_varying~2 none~get~2 flap_command_line_interface_t::command_line_interface%get program~flap_test_action_store->none~get~2 proc~add~2 flap_command_line_interface_t::command_line_interface%add program~flap_test_action_store->proc~add~2 proc~init flap_command_line_interface_t::command_line_interface%init program~flap_test_action_store->proc~init proc~is_passed~2 flap_command_line_interface_t::command_line_interface%is_passed program~flap_test_action_store->proc~is_passed~2 proc~get_cla_list_varying_char~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_char none~get_varying~2->proc~get_cla_list_varying_char~2 proc~get_cla_list_varying_i1p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I1P none~get_varying~2->proc~get_cla_list_varying_i1p~2 proc~get_cla_list_varying_i2p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I2P none~get_varying~2->proc~get_cla_list_varying_i2p~2 proc~get_cla_list_varying_i4p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I4P none~get_varying~2->proc~get_cla_list_varying_i4p~2 proc~get_cla_list_varying_i8p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_I8P none~get_varying~2->proc~get_cla_list_varying_i8p~2 proc~get_cla_list_varying_logical~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_logical none~get_varying~2->proc~get_cla_list_varying_logical~2 proc~get_cla_list_varying_r4p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_R4P none~get_varying~2->proc~get_cla_list_varying_r4p~2 proc~get_cla_list_varying_r8p~2 flap_command_line_interface_t::command_line_interface%get_cla_list_varying_R8P none~get_varying~2->proc~get_cla_list_varying_r8p~2 proc~get_cla_list~2 flap_command_line_interface_t::command_line_interface%get_cla_list none~get~2->proc~get_cla_list~2 proc~get_cla~2 flap_command_line_interface_t::command_line_interface%get_cla none~get~2->proc~get_cla~2 proc~add flap_command_line_arguments_group_t::command_line_arguments_group%add proc~add~2->proc~add proc~add_group flap_command_line_interface_t::command_line_interface%add_group proc~add~2->proc~add_group proc~assign_object flap_object_t::object%assign_object proc~add~2->proc~assign_object proc~check~2 flap_command_line_argument_t::command_line_argument%check proc~add~2->proc~check~2 proc~is_defined_group flap_command_line_interface_t::command_line_interface%is_defined_group proc~add~2->proc~is_defined_group proc~upper_case flap_utils_m::upper_case proc~add~2->proc~upper_case proc~init->proc~assign_object proc~set_examples flap_object_t::object%set_examples proc~init->proc~set_examples proc~is_passed~2->proc~is_defined_group proc~is_passed flap_command_line_arguments_group_t::command_line_arguments_group%is_passed proc~is_passed~2->proc~is_passed proc~check flap_command_line_arguments_group_t::command_line_arguments_group%check proc~add->proc~check proc~add_group->proc~assign_object proc~add_group->proc~is_defined_group proc~add_group->proc~set_examples proc~check_action_consistency flap_command_line_argument_t::command_line_argument%check_action_consistency proc~check~2->proc~check_action_consistency proc~check_envvar_consistency flap_command_line_argument_t::command_line_argument%check_envvar_consistency proc~check~2->proc~check_envvar_consistency proc~check_m_exclude_consistency flap_command_line_argument_t::command_line_argument%check_m_exclude_consistency proc~check~2->proc~check_m_exclude_consistency proc~check_named_consistency flap_command_line_argument_t::command_line_argument%check_named_consistency proc~check~2->proc~check_named_consistency proc~check_optional_consistency flap_command_line_argument_t::command_line_argument%check_optional_consistency proc~check~2->proc~check_optional_consistency proc~check_positional_consistency flap_command_line_argument_t::command_line_argument%check_positional_consistency proc~check~2->proc~check_positional_consistency proc~get_cla_list_varying_char~2->proc~is_defined_group none~get_varying flap_command_line_argument_t::command_line_argument%get_varying proc~get_cla_list_varying_char~2->none~get_varying proc~errored~3 flap_command_line_interface_t::command_line_interface%errored proc~get_cla_list_varying_char~2->proc~errored~3 proc~parse~2 flap_command_line_interface_t::command_line_interface%parse proc~get_cla_list_varying_char~2->proc~parse~2 proc~get_cla_list_varying_i1p~2->proc~is_defined_group proc~get_cla_list_varying_i1p~2->none~get_varying proc~get_cla_list_varying_i1p~2->proc~errored~3 proc~get_cla_list_varying_i1p~2->proc~parse~2 proc~get_cla_list_varying_i2p~2->proc~is_defined_group proc~get_cla_list_varying_i2p~2->none~get_varying proc~get_cla_list_varying_i2p~2->proc~errored~3 proc~get_cla_list_varying_i2p~2->proc~parse~2 proc~get_cla_list_varying_i4p~2->proc~is_defined_group proc~get_cla_list_varying_i4p~2->none~get_varying proc~get_cla_list_varying_i4p~2->proc~errored~3 proc~get_cla_list_varying_i4p~2->proc~parse~2 proc~get_cla_list_varying_i8p~2->proc~is_defined_group proc~get_cla_list_varying_i8p~2->none~get_varying proc~get_cla_list_varying_i8p~2->proc~errored~3 proc~get_cla_list_varying_i8p~2->proc~parse~2 proc~get_cla_list_varying_logical~2->proc~is_defined_group proc~get_cla_list_varying_logical~2->none~get_varying proc~get_cla_list_varying_logical~2->proc~errored~3 proc~get_cla_list_varying_logical~2->proc~parse~2 proc~get_cla_list_varying_r4p~2->proc~is_defined_group proc~get_cla_list_varying_r4p~2->none~get_varying proc~get_cla_list_varying_r4p~2->proc~errored~3 proc~get_cla_list_varying_r4p~2->proc~parse~2 proc~get_cla_list_varying_r8p~2->proc~is_defined_group proc~get_cla_list_varying_r8p~2->none~get_varying proc~get_cla_list_varying_r8p~2->proc~errored~3 proc~get_cla_list_varying_r8p~2->proc~parse~2 proc~get_cla_list~2->proc~is_defined_group none~get flap_command_line_argument_t::command_line_argument%get proc~get_cla_list~2->none~get proc~get_cla_list~2->proc~errored~3 proc~get_cla_list~2->proc~parse~2 proc~get_cla~2->proc~is_defined_group proc~get_cla~2->none~get proc~get_cla~2->proc~errored~3 proc~get_cla~2->proc~parse~2 proc~get_cla flap_command_line_argument_t::command_line_argument%get_cla none~get->proc~get_cla proc~get_cla_list flap_command_line_argument_t::command_line_argument%get_cla_list none~get->proc~get_cla_list proc~get_cla_list_varying_char flap_command_line_argument_t::command_line_argument%get_cla_list_varying_char none~get_varying->proc~get_cla_list_varying_char proc~get_cla_list_varying_i1p flap_command_line_argument_t::command_line_argument%get_cla_list_varying_I1P none~get_varying->proc~get_cla_list_varying_i1p proc~get_cla_list_varying_i2p flap_command_line_argument_t::command_line_argument%get_cla_list_varying_I2P none~get_varying->proc~get_cla_list_varying_i2p proc~get_cla_list_varying_i4p flap_command_line_argument_t::command_line_argument%get_cla_list_varying_I4P none~get_varying->proc~get_cla_list_varying_i4p proc~get_cla_list_varying_i8p flap_command_line_argument_t::command_line_argument%get_cla_list_varying_I8P none~get_varying->proc~get_cla_list_varying_i8p proc~get_cla_list_varying_logical flap_command_line_argument_t::command_line_argument%get_cla_list_varying_logical none~get_varying->proc~get_cla_list_varying_logical proc~get_cla_list_varying_r4p flap_command_line_argument_t::command_line_argument%get_cla_list_varying_R4P none~get_varying->proc~get_cla_list_varying_r4p proc~get_cla_list_varying_r8p flap_command_line_argument_t::command_line_argument%get_cla_list_varying_R8P none~get_varying->proc~get_cla_list_varying_r8p proc~errored flap_command_line_arguments_group_t::command_line_arguments_group%errored proc~check->proc~errored proc~is_defined flap_command_line_arguments_group_t::command_line_arguments_group%is_defined proc~check->proc~is_defined proc~errored~2 flap_command_line_argument_t::command_line_argument%errored proc~check_action_consistency->proc~errored~2 proc~check_envvar_consistency->proc~errored~2 proc~check_m_exclude_consistency->proc~errored~2 proc~check_named_consistency->proc~errored~2 proc~check_optional_consistency->proc~errored~2 proc~check_positional_consistency->proc~errored~2 interface~colorize face::colorize proc~errored~3->interface~colorize proc~print_error_message flap_object_t::object%print_error_message proc~errored~3->proc~print_error_message proc~parse~2->proc~add~2 none~get_args flap_command_line_interface_t::command_line_interface%get_args proc~parse~2->none~get_args proc~check_m_exclusive~2 flap_command_line_interface_t::command_line_interface%check_m_exclusive proc~parse~2->proc~check_m_exclusive~2 proc~check~3 flap_command_line_interface_t::command_line_interface%check proc~parse~2->proc~check~3 proc~is_defined~2 flap_command_line_interface_t::command_line_interface%is_defined proc~parse~2->proc~is_defined~2 proc~is_required_passed flap_command_line_arguments_group_t::command_line_arguments_group%is_required_passed proc~parse~2->proc~is_required_passed proc~parse flap_command_line_arguments_group_t::command_line_arguments_group%parse proc~parse~2->proc~parse proc~print_version flap_object_t::object%print_version proc~parse~2->proc~print_version proc~sanitize_defaults flap_command_line_arguments_group_t::command_line_arguments_group%sanitize_defaults proc~parse~2->proc~sanitize_defaults proc~save_usage_to_markdown flap_command_line_interface_t::command_line_interface%save_usage_to_markdown proc~parse~2->proc~save_usage_to_markdown proc~usage~3 flap_command_line_interface_t::command_line_interface%usage proc~parse~2->proc~usage~3 proc~colorize_default face::colorize_default interface~colorize->proc~colorize_default proc~get_args_from_invocation flap_command_line_interface_t::command_line_interface%get_args_from_invocation none~get_args->proc~get_args_from_invocation proc~get_args_from_string flap_command_line_interface_t::command_line_interface%get_args_from_string none~get_args->proc~get_args_from_string proc~check_m_exclusive~2->proc~is_defined_group proc~raise_error_m_exclude flap_command_line_arguments_group_t::command_line_arguments_group%raise_error_m_exclude proc~check_m_exclusive~2->proc~raise_error_m_exclude proc~check~3->proc~is_defined_group proc~check~3->proc~check proc~errored->interface~colorize proc~errored->proc~print_error_message str str proc~errored->str proc~errored~2->interface~colorize proc~errored~2->proc~print_error_message proc~errored~2->str proc~get_cla->proc~errored~2 proc~check_choices flap_command_line_argument_t::command_line_argument%check_choices proc~get_cla->proc~check_choices proc~get_cla_from_buffer flap_command_line_argument_t::command_line_argument%get_cla_from_buffer proc~get_cla->proc~get_cla_from_buffer proc~is_required_passed~2 flap_command_line_argument_t::command_line_argument%is_required_passed proc~get_cla->proc~is_required_passed~2 proc~get_cla_list->proc~errored~2 proc~get_cla_list_from_buffer flap_command_line_argument_t::command_line_argument%get_cla_list_from_buffer proc~get_cla_list->proc~get_cla_list_from_buffer proc~get_cla_list->proc~is_required_passed~2 proc~tokenize flap_utils_m::tokenize proc~get_cla_list->proc~tokenize proc~get_cla_list_varying_char->proc~errored~2 proc~check_list_size flap_command_line_argument_t::command_line_argument%check_list_size proc~get_cla_list_varying_char->proc~check_list_size proc~get_cla_list_varying_char->proc~is_required_passed~2 proc~get_cla_list_varying_char->proc~tokenize proc~get_cla_list_varying_i1p->proc~errored~2 cton cton proc~get_cla_list_varying_i1p->cton proc~get_cla_list_varying_i1p->proc~check_list_size proc~get_cla_list_varying_i1p->proc~is_required_passed~2 proc~get_cla_list_varying_i1p->proc~tokenize proc~get_cla_list_varying_i2p->proc~errored~2 proc~get_cla_list_varying_i2p->cton proc~get_cla_list_varying_i2p->proc~check_list_size proc~get_cla_list_varying_i2p->proc~is_required_passed~2 proc~get_cla_list_varying_i2p->proc~tokenize proc~get_cla_list_varying_i4p->proc~errored~2 proc~get_cla_list_varying_i4p->cton proc~get_cla_list_varying_i4p->proc~check_list_size proc~get_cla_list_varying_i4p->proc~is_required_passed~2 proc~get_cla_list_varying_i4p->proc~tokenize proc~get_cla_list_varying_i8p->proc~errored~2 proc~get_cla_list_varying_i8p->cton proc~get_cla_list_varying_i8p->proc~check_list_size proc~get_cla_list_varying_i8p->proc~is_required_passed~2 proc~get_cla_list_varying_i8p->proc~tokenize proc~get_cla_list_varying_logical->proc~errored~2 proc~get_cla_list_varying_logical->proc~check_list_size proc~get_cla_list_varying_logical->proc~is_required_passed~2 proc~get_cla_list_varying_logical->proc~tokenize proc~get_cla_list_varying_r4p->proc~errored~2 proc~get_cla_list_varying_r4p->cton proc~get_cla_list_varying_r4p->proc~check_list_size proc~get_cla_list_varying_r4p->proc~is_required_passed~2 proc~get_cla_list_varying_r4p->proc~tokenize proc~get_cla_list_varying_r8p->proc~errored~2 proc~get_cla_list_varying_r8p->cton proc~get_cla_list_varying_r8p->proc~check_list_size proc~get_cla_list_varying_r8p->proc~is_required_passed~2 proc~get_cla_list_varying_r8p->proc~tokenize proc~is_defined~2->proc~is_defined_group proc~is_defined~2->proc~is_defined proc~is_required_passed->proc~is_required_passed~2 proc~usage flap_command_line_arguments_group_t::command_line_arguments_group%usage proc~is_required_passed->proc~usage proc~parse->proc~add proc~parse->proc~assign_object proc~parse->proc~is_defined proc~parse->proc~sanitize_defaults proc~parse->cton proc~check_m_exclusive flap_command_line_arguments_group_t::command_line_arguments_group%check_m_exclusive proc~parse->proc~check_m_exclusive proc~raise_error_duplicated_clas flap_command_line_argument_t::command_line_argument%raise_error_duplicated_clas proc~parse->proc~raise_error_duplicated_clas proc~raise_error_nargs_insufficient flap_command_line_argument_t::command_line_argument%raise_error_nargs_insufficient proc~parse->proc~raise_error_nargs_insufficient proc~raise_error_switch_unknown flap_command_line_argument_t::command_line_argument%raise_error_switch_unknown proc~parse->proc~raise_error_switch_unknown proc~raise_error_value_missing flap_command_line_argument_t::command_line_argument%raise_error_value_missing proc~parse->proc~raise_error_value_missing proc~sanitize_defaults~2 flap_command_line_argument_t::command_line_argument%sanitize_defaults proc~sanitize_defaults->proc~sanitize_defaults~2 proc~save_usage_to_markdown->proc~usage~3 proc~signature~3 flap_command_line_interface_t::command_line_interface%signature proc~save_usage_to_markdown->proc~signature~3 strz strz proc~save_usage_to_markdown->strz proc~usage~3->proc~signature~3 proc~usage~3->proc~usage proc~check_choices->proc~errored~2 proc~check_choices->cton proc~check_choices->proc~tokenize proc~check_choices->str proc~check_list_size->proc~errored~2 proc~check_m_exclusive->proc~is_passed proc~raise_error_m_exclude~2 flap_command_line_argument_t::command_line_argument%raise_error_m_exclude proc~check_m_exclusive->proc~raise_error_m_exclude~2 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 proc~get_clasg_indexes flap_command_line_interface_t::command_line_interface%get_clasg_indexes proc~get_args_from_invocation->proc~get_clasg_indexes proc~get_args_from_string->proc~tokenize proc~get_args_from_string->proc~get_clasg_indexes proc~get_cla_from_buffer->proc~errored~2 proc~get_cla_from_buffer->cton proc~get_cla_list_from_buffer->proc~errored~2 proc~get_cla_list_from_buffer->cton proc~get_cla_list_from_buffer->proc~check_choices proc~get_cla_list_from_buffer->proc~tokenize proc~is_required_passed~2->proc~errored~2 proc~raise_error_duplicated_clas->proc~errored~2 proc~raise_error_m_exclude->proc~errored proc~raise_error_nargs_insufficient->proc~errored~2 proc~raise_error_switch_unknown->proc~errored~2 proc~raise_error_value_missing->proc~errored~2 proc~replace_all flap_utils_m::replace_all proc~sanitize_defaults~2->proc~replace_all proc~unique flap_utils_m::unique proc~sanitize_defaults~2->proc~unique proc~wstrip flap_utils_m::wstrip proc~sanitize_defaults~2->proc~wstrip proc~signature flap_command_line_arguments_group_t::command_line_arguments_group%signature proc~signature~3->proc~signature proc~usage->proc~signature proc~usage~2 flap_command_line_argument_t::command_line_argument%usage proc~usage->proc~usage~2 proc~get_clasg_indexes->proc~is_defined_group proc~raise_error_m_exclude~2->proc~errored~2 proc~replace_all->proc~wstrip proc~replace flap_utils_m::replace proc~replace_all->proc~replace proc~signature~2 flap_command_line_argument_t::command_line_argument%signature proc~signature->proc~signature~2 proc~usage~2->interface~colorize proc~usage~2->cton proc~usage~2->str proc~usage~2->proc~replace_all proc~signature~2->cton proc~signature~2->str proc~has_choices flap_command_line_argument_t::command_line_argument%has_choices proc~signature~2->proc~has_choices

Variables

Type Attributes Name Initial
type(command_line_interface) :: cli

Command Line Interface (CLI).

character(len=99) :: string_r

String value.

character(len=99) :: string_i

String value.

character(len=99) :: string_o

String value.

character(len=99) :: string_w

String value.

character(len=99), allocatable :: string_m(:)

List of string values.

integer(kind=I4P) :: error

Error trapping flag.

integer(kind=I4P) :: i

Counter.


Source Code

program flap_test_action_store
!< A testing program for FLAP, Fortran command Line Arguments Parser for poor people
!<
!<### Compile
!< See [compile instructions](https://github.com/szaghi/FLAP/wiki/Download-compile).
!<
!<###Usage Compile
!< See [usage instructions](https://github.com/szaghi/FLAP/wiki/Testing-Programs).

use flap, only : command_line_interface
use penf

implicit none
type(command_line_interface) :: cli         !< Command Line Interface (CLI).
character(99)                :: string_r    !< String value.
character(99)                :: string_i    !< String value.
character(99)                :: string_o    !< String value.
character(99)                :: string_w    !< String value.
character(99), allocatable   :: string_m(:) !< List of string values.
integer(I4P)                 :: error       !< Error trapping flag.
integer(I4P)                 :: i           !< Counter.

call cli%init(description = 'test action store CLA with required/optional values',                                     &
              examples=['flap_test_action_store --read foo '          //                                               &
                                               '--input '             //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3'       //                                               &
                                               '                                                                     ',&
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3'       //                                               &
                                               '                                                                 ',    &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3'       //                                               &
                                               '                                                     ',                &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output '            //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3'       //                                               &
                                               '                                            ',                         &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3'       //                                               &
                                               '                                        ',                             &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3 '      //                                               &
                                               '--multiple_oos'       //                                               &
                                               '                         ',                                            &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3 '      //                                               &
                                               '--multiple_oos foe'   //                                               &
                                               '                     ',                                                &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3 '      //                                               &
                                               '--multiple_oop '      //                                               &
                                               '--multiple_oos foe'   //                                               &
                                               '      ',                                                               &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3 '      //                                               &
                                               '--multiple_oop foo '  //                                               &
                                               '--multiple_oos foe  ',                                                 &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3 '      //                                               &
                                               '--multiple_oop foo '  //                                               &
                                               '--multiple_oo3      ',                                                 &
                        'flap_test_action_store --read foo '          //                                               &
                                               '--input bar '         //                                               &
                                               '--write fee '         //                                               &
                                               '--output fie '        //                                               &
                                               '--multiple_rrs '      //                                               &
                                               '--multiple_ros '      //                                               &
                                               '--multiple_rrp baz '  //                                               &
                                               '--multiple_rop '      //                                               &
                                               '--multiple_rr3 1 2 3 '//                                               &
                                               '--multiple_ro3 '      //                                               &
                                               '--multiple_oop foo '  //                                               &
                                               '--multiple_oo3 a b c'                                                  &
                        ])
call cli%add(switch='--read', switch_ab='-r',           &
             help='a required CLA with required value', &
             required=.true.,                           &
             val_required=.true.,                       &
             act='store',                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--input', switch_ab='-i',          &
             help='a required CLA with optional value', &
             required=.true.,                           &
             val_required=.false.,                      &
             def='default.i',                           &
             act='store',                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--write', switch_ab='-w',                     &
             help='an optional CLA with required value if passed', &
             required=.false.,                                     &
             def='default.w',                                      &
             act='store',                                          &
             error=error) ; if (error/=0) stop
call cli%add(switch='--output', switch_ab='-o',          &
             help='an optional CLA with optional value', &
             required=.false.,                           &
             val_required=.false.,                       &
             def='default.o',                            &
             act='store',                                &
             error=error) ; if (error/=0) stop
! store nargs=*
call cli%add(switch='--multiple_rrs', switch_ab='-mrrs',              &
             help='a required CLA with required multiple (*) values', &
             required=.true.,                                         &
             val_required=.true.,                                     &
             def='default.rss1 default.rss2 default.rss3',            &
             act='store',                                             &
             nargs='*',                                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--multiple_ros', switch_ab='-mros',              &
             help='a required CLA with optional multiple (*) values', &
             required=.true.,                                         &
             val_required=.false.,                                    &
             def='default.ros1 default.ros2',                         &
             act='store',                                             &
             nargs='*',                                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--multiple_oos', switch_ab='-moos',               &
             help='an optional CLA with optional multiple (*) values', &
             required=.false.,                                         &
             val_required=.false.,                                     &
             def='default.oos1 default.oos2 default.oos3',             &
             act='store',                                              &
             nargs='*',                                                &
             error=error) ; if (error/=0) stop
! store nargs=+
call cli%add(switch='--multiple_rrp', switch_ab='-mrrp',              &
             help='a required CLA with required multiple (+) values', &
             required=.true.,                                         &
             val_required=.true.,                                     &
             act='store',                                             &
             nargs='+',                                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--multiple_rop', switch_ab='-mrop',              &
             help='a required CLA with optional multiple (+) values', &
             required=.true.,                                         &
             val_required=.false.,                                    &
             def='default.rop1 default.rop2',                         &
             act='store',                                             &
             nargs='+',                                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--multiple_oop', switch_ab='-moop',               &
             help='an optional CLA with optional multiple (+) values', &
             required=.false.,                                         &
             val_required=.false.,                                     &
             def='default.oop1 default.oop2 default.oop3',             &
             act='store',                                              &
             nargs='+',                                                &
             error=error) ; if (error/=0) stop
! store nargs=3
call cli%add(switch='--multiple_rr3', switch_ab='-mrr3',              &
             help='a required CLA with required multiple (3) values', &
             required=.true.,                                         &
             val_required=.true.,                                     &
             act='store',                                             &
             nargs='3',                                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--multiple_ro3', switch_ab='-mro3',              &
             help='a required CLA with optional multiple (3) values', &
             required=.true.,                                         &
             val_required=.false.,                                    &
             def='default.ro31 default.ro32',                         &
             act='store',                                             &
             nargs='3',                                               &
             error=error) ; if (error/=0) stop
call cli%add(switch='--multiple_oo3', switch_ab='-moo3',               &
             help='an optional CLA with optional multiple (3) values', &
             required=.false.,                                         &
             val_required=.false.,                                     &
             def='default.oo31 default.oo32 default.oo33',             &
             act='store',                                              &
             nargs='3',                                                &
             error=error) ; if (error/=0) stop

call cli%get(switch='-r', val=string_r, error=error) ; if (error/=0) stop
call cli%get(switch='-i', val=string_i, error=error) ; if (error/=0) stop
call cli%get(switch='-w', val=string_w, error=error) ; if (error/=0) stop
call cli%get(switch='-o', val=string_o, error=error) ; if (error/=0) stop
print '(A)', cli%progname//' has been called with the following arguments:'
print '(A)', '--read         = '//trim(adjustl(string_r))
print '(A)', '--input        = '//trim(adjustl(string_i))
print '(A)', '--output       = '//trim(adjustl(string_o))
print '(A)', '--write        = '//trim(adjustl(string_w))
! store nargs=*
print '(A)', '--multiple required CLA with required values (*) : '
call cli%get_varying(switch='-mrrs', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
print '(A)', '--multiple required CLA with optional values (*) : '
call cli%get_varying(switch='-mros', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
print '(A)', '--multiple optional CLA with optional values (*) : '
call cli%get_varying(switch='-moos', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
! store nargs=+
print '(A)', '--multiple required CLA with required values (+) : '
call cli%get_varying(switch='-mrrp', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
print '(A)', '--multiple required CLA with optional values (+) : '
call cli%get_varying(switch='-mrop', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
print '(A)', '--multiple optional CLA with optional values (+) : '
call cli%get_varying(switch='-moop', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
! store nargs=3
print '(A)', '--multiple required CLA with required values (3) : '
call cli%get_varying(switch='-mrr3', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
print '(A)', '--multiple required CLA with optional values (3) : '
call cli%get_varying(switch='-mro3', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)
print '(A)', '--multiple optional CLA with optional values (3) : '
call cli%get_varying(switch='-moo3', val=string_m, error=error) ; if (error/=0) stop
do i=1, size(string_m, dim=1)
   print '(A)', '   '//trim(adjustl(string_m(i)))
enddo
deallocate(string_m)

if (cli%is_passed(switch='-w')) then
   print '(A)', 'I am writing on "'//trim(adjustl(string_w))//'"'
else
   print '(A)', 'I am writing on "'//trim(adjustl(string_o))//'"'
endif
endprogram flap_test_action_store