program dc_args_test use dc_types use dc_string, only: StoA, JoinChar use dc_args, only: ARGS, DCArgsOpen, DCArgsClose, DCArgsOption, & & DCArgsPutLine, DCArgsDebug, DCArgsHelp, DCArgsStrict, & & DCArgsGet, DCArgsHelpMsg, DCArgsNumber use dc_test, only: AssertEqual implicit none type(ARGS) :: arg logical :: OPT_size logical :: OPT_namelist character(STRING) :: VAL_namelist, char character(TOKEN), pointer :: argv(:) => null() continue call DCArgsOpen( arg = arg ) ! (out) call DCArgsHelpMsg( arg = arg, & ! (inout) & category = 'Title', & ! (in) & msg = 'dcargs $Revision: 1.8 $ ' // & & ':: Test program of dc_args' ) ! (in) call DCArgsHelpMsg( arg = arg, & ! (inout) & category = 'Usage', & ! (in) & msg = 'dcargs [Options] arg1, arg2, ...') ! (in) call DCArgsOption( arg = arg, & ! (inout) & options = StoA('-s', 'size'), & ! (in) & flag = OPT_size, & ! (out) & help = "Return number of arguments") ! (in) call DCArgsOption( arg = arg, & ! (inout) & options = StoA('N', '--namelist'), & ! (in) & flag = OPT_namelist, & ! (out) & value = VAL_namelist, & ! (out) & help = "Namelist filename") ! (in) call DCArgsHelpMsg( arg = arg, & ! (inout) & category = 'DESCRIPTION', & ! (in) & msg = '(1) Define type "HASH". ' // & & '(2) Open the variable. ' // & & '(3) set HelpMsg. ' // & & '(4) set Options. ' // & & '(5) call Debug. ' // & & '(6) call Help. ' // & & '(7) call Strict.') ! (in) call DCArgsHelpMsg( arg = arg, & ! (inout) & category = 'Copyright', & ! (in) & msg = 'Copyright (C) ' // & & 'GFD Dennou Club, 2008. All rights reserved.') ! (in) call DCArgsDebug( arg = arg ) ! (inout) call DCArgsHelp( arg = arg ) ! (inout) call DCArgsStrict( arg = arg ) ! (inout) call DCArgsGet( arg = arg, & ! (inout) & argv = argv ) ! (out) call AssertEqual('Number of arguments test', 3, DCArgsNumber(arg)) call AssertEqual('Short option test 1', .true., OPT_size) call AssertEqual('Long option test 1', .true., OPT_namelist) call AssertEqual('Long option test 2', 'test.nml', VAL_namelist) char = trim(JoinChar(argv)) call AssertEqual('Strings of arguments test', 'arg1, arg2, arg3', char) deallocate(argv) call DCArgsClose( arg ) ! (inout) end program dc_args_test