Manual Reference Pages  - get_args (3m_cli2)

NAME

get_args(3f) - [ARGUMENTS:M_CLI2] return keyword values when parsing command line arguments (LICENSE:PD)

CONTENTS

Synopsis
Description
Options
Convenience Functions
Example
Author
License

SYNOPSIS

get_args(3f) and its convenience functions:

    use M_CLI2, only : get_args
    ! convenience functions
    use M_CLI2, only : dget, iget, lget, rget, sget, cget
    use M_CLI2, only : dgets, igets, lgets, rgets, sgets, cgets

subroutine get_args(name,value,delimiters)

character(len=*),intent(in) :: name

type(${TYPE}),allocatable,intent(out) :: value(:) ! or type(${TYPE}),allocatable,intent(out) :: value

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

where ${TYPE} may be from the set {real,doubleprecision,integer,logical,complex,character(len=:)}

DESCRIPTION

GET_ARGS(3f) returns the value of keywords after SET_ARGS(3f) has been called to parse the command line. For fixed-length CHARACTER variables see GET_ARGS_FIXED_LENGTH(3f). For fixed-size arrays see GET_ARGS_FIXED_SIZE(3f).

As a convenience multiple pairs of keywords and variables may be specified if and only if all the values are scalars and the CHARACTER variables are fixed-length or pre-allocated.

OPTIONS

NAME name of commandline argument to obtain the value of
VALUE variable to hold returned value. The kind of the value is used to determine the type of returned value. May be a scalar or allocatable array. If type is CHARACTER the scalar must have an allocatable length.
DELIMITERS
  By default the delimiter for array values are comma, colon, and whitespace. A string containing an alternate list of delimiter characters may be supplied.

CONVENIENCE FUNCTIONS

There are convenience functions that are replacements for calls to get_args(3f) for each supported default intrinsic type
o scalars -- dget(3f), iget(3f), lget(3f), rget(3f), sget(3f), cget(3f)
o vectors -- dgets(3f), igets(3f), lgets(3f), rgets(3f), sgets(3f), cgets(3f)

D is for DOUBLEPRECISION, I for INTEGER, L for LOGICAL, R for REAL, S for string (CHARACTER), and C for COMPLEX.

If the functions are called with no argument they will return the UNNAMED array converted to the specified type.

EXAMPLE

Sample program:

    program demo_get_args
    use M_CLI2,  only : filenames=>unnamed, set_args, get_args
    implicit none
    integer                      :: i
     ! Define ARGS
    real                         :: x, y, z
    real,allocatable             :: p(:)
    character(len=:),allocatable :: title
    logical                      :: l, lbig
     ! Define and parse (to set initial values) command line
     !   o only quote strings and use double-quotes
     !   o set all logical values to F or T.
    call set_args(’         &
       & -x 1 -y 2 -z 3     &
       & -p -1,-2,-3        &
       & --title "my title" &
       & -l F -L F          &
       & --label " "        &
       & ’)
     ! Assign values to elements
     ! Scalars
    call get_args( ’x’,x, ’y’,y, ’z’,z, ’l’,l, ’L’,lbig )
     ! Allocatable string
    call get_args(’title’,title)
     ! Allocatable arrays
    call get_args(’p’,p)
     ! Use values
    write(*,’(1x,g0,"=",g0)’)’x’,x, ’y’,y, ’z’,z
    write(*,*)’p=’,p
    write(*,*)’title=’,title
    write(*,*)’l=’,l
    write(*,*)’L=’,lbig
    if(size(filenames) > 0)then
       write(*,’(i6.6,3a)’)(i,’[’,filenames(i),’]’,i=1,size(filenames))
    endif
    end program demo_get_args

AUTHOR

John S. Urban, 2019

LICENSE

Public Domain


Nemo Release 3.1 get_args (3m_cli2) August 01, 2024
Generated by manServer 1.08 from 2b98eff5-7c32-4980-b7ed-42f9b74d65b6 using man macros.