M_CLI2
M_CLI2 module (Fortran)
Private Member Functions | List of all members
m_cli2::get_args_fixed_size Interface Reference

Private Member Functions

subroutine get_fixedarray_class (keyword, generic, delimiters)
 

Member Function/Subroutine Documentation

◆ get_fixedarray_class()

subroutine m_cli2::get_args_fixed_size::get_fixedarray_class ( character(len=*), intent(in)  keyword,
class(*), dimension(:)  generic,
character(len=*), intent(in), optional  delimiters 
)
private

NAME

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

SYNOPSIS

 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

  character(len=:),allocatable :: value
  ! or
  character(len=:),allocatable :: value(:)
  ! or
  [real|doubleprecision|integer|logical|complex] :: value
  ! or
  [real|doubleprecision|integer|logical|complex],allocatable :: value(:)

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

DESCRIPTION

GET_ARGS(3f) returns the value of keywords after SET_ARGS(3f)
has been called. 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)
call get_args('l',l)
call get_args('L',lbig)
! ALLOCATABLE STRING
call get_args('title',title)
! NON-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).gt.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

NAME

get_args_fixed_length(3f) - [ARGUMENTS:M_CLI2] return keyword values for fixed-length string when parsing command line (LICENSE:PD)

SYNOPSIS

subroutine get_args_fixed_length(name,value)

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

DESCRIPTION

GET_ARGS_fixed_length(3f) returns the value of a string
keyword when the string value is a fixed-length CHARACTER
variable.

OPTIONS

NAME   name of commandline argument to obtain the value of

VALUE  variable to hold returned value.
       Must be a fixed-length CHARACTER variable.

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.

EXAMPLE

Sample program:

program demo_get_args_fixed_length
use M_CLI2,  only : set_args, get_args_fixed_length
implicit none
! DEFINE ARGS
character(len=80)   :: title
call set_args(' &
   & -title "my title" &
   & ')
! ASSIGN VALUES TO ELEMENTS
   call get_args_fixed_length('title',title)
! USE VALUES
   write(*,*)'title=',title
end program demo_get_args_fixed_length

AUTHOR

John S. Urban, 2019

LICENSE

Public Domain

NAME

get_args_fixed_size(3f) - [ARGUMENTS:M_CLI2] return keyword values for fixed-size array when parsing command line arguments (LICENSE:PD)

SYNOPSIS

subroutine get_args_fixed_size(name,value)

 [real|doubleprecision|integer|logical|complex] :: value(NNN)
    or
 character(len=MMM) :: value(NNN)

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

DESCRIPTION

GET_ARGS_FIXED_SIZE(3f) returns the value of keywords for
fixed-size arrays after SET_ARGS(3f) has been called.
On input on the command line all values of the array must
be specified.

OPTIONS

NAME name of commandline argument to obtain the value of

VALUE variable to hold returned values. The kind of the value is used to determine the type of returned value. Must be a fixed-size array. If type is CHARACTER the length must also be fixed.

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.

EXAMPLE

Sample program:

program demo_get_args_fixed_size
use M_CLI2,  only : set_args, get_args_fixed_size
implicit none
integer,parameter   :: dp=kind(0.0d0)
! DEFINE ARGS
real                :: x(2)
real(kind=dp)       :: y(2)
integer             :: p(3)
character(len=80)   :: title(1)
logical             :: l(4), lbig(4)
complex             :: cmp(2)
! DEFINE AND PARSE (TO SET INITIAL VALUES) COMMAND LINE
!   o only quote strings
!   o set all logical values to F or T.
call set_args(' &
   & -x 10.0,20.0 &
   & -y 11.0,22.0 &
   & -p -1,-2,-3 &
   & -title "my title" &
   & -l F,T,F,T -L T,F,T,F  &
   & --cmp 111,222.0,333.0e0,4444 &
   & ')
! ASSIGN VALUES TO ELEMENTS
   call get_args_fixed_size('x',x)
   call get_args_fixed_size('y',y)
   call get_args_fixed_size('p',p)
   call get_args_fixed_size('title',title)
   call get_args_fixed_size('l',l)
   call get_args_fixed_size('L',lbig)
   call get_args_fixed_size('cmp',cmp)
! USE VALUES
   write(*,*)'x=',x
   write(*,*)'p=',p
   write(*,*)'title=',title
   write(*,*)'l=',l
   write(*,*)'L=',lbig
   write(*,*)'cmp=',cmp
end program demo_get_args_fixed_size

Results:

AUTHOR

John S. Urban, 2019

LICENSE

Public Domain


The documentation for this interface was generated from the following file: