435     type(args), 
intent(inout) :: arg
   436     character(len = *), 
intent(in) :: options(:)
   437     logical, 
intent(out) :: flag
   438     character(len = *), 
intent(out), 
optional :: value
   439     character(len = *), 
intent(in), 
optional :: help
   440     integer :: i, j, options_size, table_size
   441     type(opt_entry), 
allocatable :: local_tables(:)
   442     character(len = STRING) :: opt_name, opt_value, opt_full
   443     character(len = *), 
parameter  :: subname = 
'DCArgsOption'   446     if (
present(
value)) 
value = 
''   447     if (.not. arg % initialized) 
then   448       call messagenotify(
'W', subname, 
'Call Open before Option in dc_args.')
   451     options_size = 
size(options)
   452     if (options_size < 1) 
then   460     if ( .not. 
associated( arg % opt_table ) ) 
then   464       allocate(arg % opt_table(table_size + 1))
   468       table_size = 
size(arg % opt_table)
   469       allocate(local_tables(table_size))
   470       local_tables(1:table_size) = arg % opt_table(1:table_size)
   471       deallocate(arg % opt_table)
   472       allocate(arg % opt_table(table_size + 1))
   473       arg % opt_table(1:table_size) = local_tables(1:table_size)
   474       deallocate(local_tables)
   478     allocate(arg % opt_table(table_size + 1) % options(options_size))
   479     arg % opt_table(table_size + 1) % options = options
   480     arg % opt_table(table_size + 1) % help_message = 
''   481     if (
present(help)) 
then   482       arg % opt_table(table_size + 1) % help_message = help
   484     arg % opt_table(table_size + 1) % optvalue_flag = 
present(
value)
   488     do i = 1, options_size
   489       opt_full = arg % opt_table(table_size + 1) % options(i)
   490       if (dcoptionformc(opt_full, opt_name, opt_value)) 
then   491         arg % opt_table(table_size + 1) % options(i) = opt_name
   493         if (len(trim(adjustl(opt_full))) < 2) 
then   494           arg % opt_table(table_size + 1) % options(i) = &
   495             & 
'-' // trim(adjustl(opt_full))
   497           arg % opt_table(table_size + 1) % options(i) = &
   498             & 
'--' // trim(adjustl(opt_full))
   506     do i = 1, options_size
   507       do j = 1, 
size(arg % cmd_opts_list)
   508         if (trim(arg % opt_table(table_size + 1) % options(i)) &
   509           &             == trim(arg % cmd_opts_list(j) % name)) 
then   511           if (
present(
value)) 
then   512             value = arg % cmd_opts_list(j) % value
   514           arg % cmd_opts_list(j) % flag_called = .true.