demo_get_args.f90 – M_CLI2
Author: John S. Urban
Description: command line parsing

# demo_get_args.f90 Source File

- 21 statements
- Source File

### Contents

### Programs

demo_get_args

### Source Code

demo_get_args.f90

## Source Code

          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