| set_mode(3m_cli2) | set_mode(3m_cli2) | 
NAME¶
set_mode(3f) - [ARGUMENTS:M_CLI2] turn on optional modes (LICENSE:PD)
SYNOPSIS¶
subroutine set_mode(key,mode)
character(len=*),intent(in) :: key
logical,intent(in),optional :: mode
DESCRIPTION¶
Allow optional behaviors.
OPTIONS¶
- KEY
- name of option
The following values are allowed:
- response_file - enable use of response file
- ignorecase - ignore case in long key names. So the user does not have to remember if the option is --IgnoreCase or --ignorecase or --ignoreCase
- underdash - treat dash in keyword as an underscore. So the user should not have to remember if the option is --ignore_case or --ignore-case.
- strict - allow Boolean keys to be bundled, but requires a single dash prefix be used for short key names and long names must be prefixed with two dashes.
- lastonly - when multiple keywords occur keep the rightmost value specified instead of appending the values together.
- MODE
- set to .true. to activate the optional mode. Set to .false. to deactivate the mode. It is .true. by default.
EXAMPLE¶
Sample program:
program demo_set_mode
use M_CLI2, only : set_args, lget, set_mode
implicit none
character(len=*),parameter :: all='(*(g0))'
!
! enable use of response files
call set_mode('response_file')
!
! Any dash in a keyword is treated as an underscore
call set_mode('underdash')
!
! The case of long keywords are ignored.
! Values and short names remain case-sensitive
call set_mode('ignorecase')
!
! short single-character boolean keys may be bundled
! but it is required that a single dash is used for
! short keys and a double dash for long keywords.
call set_mode('strict')
!
call set_args(' --switch_X:X F --switch-Y:Y F --ox:O F -t F -x F -o F')
!
print all,'--switch_X or -X ... ',lget('switch_X')
print all,'--switch_Y or -Y ... ',lget('switch_Y')
print all,'--ox or -O ... ',lget('ox')
print all,'-o ... ',lget('o')
print all,'-x ... ',lget('x')
print all,'-t ... ',lget('t')
end program demo_set_mode
AUTHOR¶
John S. Urban, 2019
LICENSE¶
Public Domain
| February 10, 2023 |