Parse Command Line Interface (CLI).
subroutine parse_command_line_interface()
!< Parse Command Line Interface (CLI).
type(command_line_interface) :: cli !< Command line interface handler.
character(99) :: riemann_solver_scheme !< Riemann Problem solver scheme.
integer(I4P) :: error !< Error handler.
character(len=:), allocatable :: buffer !< String buffer.
call cli%init(description = 'FORESEER test: shock tube tester, 1D Euler equations', &
examples = ["foreseer_test_shock_tube ", &
"foreseer_test_shock_tube --tserie"])
call cli%add(switch='--Ni', help='Number finite volumes used', required=.false., act='store', def='100')
call cli%add(switch='--steps', help='Number time steps performed', required=.false., act='store', def='60')
call cli%add(switch='--t-max', help='Maximum integration time', required=.false., act='store', def='0.')
call cli%add(switch='--riemann', help='Riemann Problem solver', required=.false., act='store', def='all', &
choices='all,exact,hllc,llf,pvl,roe')
call cli%add(switch='--s-scheme', help='Space intergation scheme', required=.false., act='store', def='weno-char-1', &
choices='weno-char-1,weno-char-3,weno-char-5,weno-char-7,weno-char-9,weno-char-11,weno-char-13,weno-char-15,weno-char-17,'// &
'weno-cons-1,weno-cons-3,weno-cons-5,weno-cons-7,weno-cons-9,weno-cons-11,weno-cons-13,weno-cons-15,weno-cons-17,'// &
'weno-prim-1,weno-prim-3,weno-prim-5,weno-prim-7,weno-prim-9,weno-prim-11,weno-prim-13,weno-prim-15,weno-prim-17')
call cli%add(switch='--t-scheme', help='Time intergation scheme', required=.false., act='store', def='tvd-rk-1', &
choices='tvd-rk-1,tvd-rk-2,tvd-rk-3,tvd-rk-5')
call cli%add(switch='--cfl', help='CFL value', required=.false., act='store', def='0.7')
call cli%add(switch='--tserie', switch_ab='-t', help='Save time-serie-result', required=.false., act='store_true', def='.false.')
call cli%add(switch='--verbose', help='Verbose output', required=.false., act='store_true', def='.false.')
call cli%parse(error=error)
call cli%get(switch='--Ni', val=Ni, error=error) ; if (error/=0) stop
call cli%get(switch='--steps', val=steps_max, error=error) ; if (error/=0) stop
call cli%get(switch='--t-max', val=t_max, error=error) ; if (error/=0) stop
call cli%get(switch='--riemann', val=riemann_solver_scheme, error=error) ; if (error/=0) stop
call cli%get(switch='--s-scheme', val=s_scheme, error=error) ; if (error/=0) stop
call cli%get(switch='--t-scheme', val=t_scheme, error=error) ; if (error/=0) stop
call cli%get(switch='--cfl', val=CFL, error=error) ; if (error/=0) stop
call cli%get(switch='--tserie', val=time_serie, error=error) ; if (error/=0) stop
call cli%get(switch='--verbose', val=verbose, error=error) ; if (error/=0) stop
if (t_max > 0._R8P) steps_max = 0
buffer = trim(adjustl(s_scheme))
select case(buffer(6:9))
case('char')
weno_variables = 'characteristic'
case('cons')
weno_variables = 'conservative'
case('prim')
weno_variables = 'primitive'
endselect
weno_order = cton(buffer(11:), knd=1_I4P)
select case(trim(adjustl(t_scheme)))
case('tvd-rk-1')
rk_stages_number = 1
case('tvd-rk-2')
rk_stages_number = 2
case('tvd-rk-3')
rk_stages_number = 3
case('tvd-rk-5')
rk_stages_number = 5
endselect
if (trim(adjustl(riemann_solver_scheme))=='all') then
riemann_solver_schemes = ['exact', 'hllc ', 'llf ', 'pvl ', 'roe ']
else
riemann_solver_schemes = [trim(adjustl(riemann_solver_scheme))]
endif
endsubroutine parse_command_line_interface