#

Manual Reference Pages - set_mode (3m_cli2)

### NAME

> set_mode(3f) - [ARGUMENTS:M_CLI2] turn on optional modes (LICENSE:PD)

### CONTENTS

> Synopsis
> Description
> Options
> Example
> Author
> License

### 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:

> o | response_file - enable use of response file
> o | ignorecase - ignore case in long key names. So the user does not have to remember if the option is --IgnoreCase or --ignorecase or --ignoreCase
> o | 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.
> o | 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.
> o | 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

Nemo Release 3.1 | set_mode (3m_cli2) | February 10, 2023

Generated by manServer 1.08 from 0bf00e61-4940-4fdb-be00-aa744c4cd778 using man macros.