43 * GOT_PATH, PATH, LENP)
51 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
52#include "implicit_f.inc"
57#include "commandline.inc"
62 INTEGER GOT_INPUT,LENI,GOT_PATH,LENP
69 INTEGER PHELPI,PEXECI,PINPUTI, PNTHI,PUSERLNAMI,MDS_PATHI
71 INTEGER I,STRL,STRLN,ERR,LENLIST,ISIN,BEGIN,IERRMSG
73 CHARACTER*2096 ARGS,INPUTC,INPUTR,MSG,STRING
76 INTEGER IARGC,CDL_CASE,IJK
77 CHARACTER :: LAST_LETTER,SEPARATOR
78 CHARACTER(LEN=2096) ARGS2,ARGS_REDUCE,ARGP
79 CHARACTER(LEN=4096) ULIBC
81 CHARACTER(LEN=12):: ARGLIST(LENLIST)
95 .
'-INSPIRE_ALM',
'-NORST',
96 .
'-MDS_LIBPATH',
'-MDSDIR'/
134#if CPP_mach == CPP_w95 || CPP_mach == CPP_win64_spmd || CPP_mach == CPP_p4win64_spmd || CPP_mach == CPP_wnt || CPP_mach == CPP_wmr || CPP_mach == CPP_p4win64 || CPP_mach == CPP_p4win32
140 argn = command_argument_count()
147 args2(1:strl) = args(1:strl)
150 args_reduce(1:9) = args(1:9)
152 IF(args_reduce(1:9)==
'-OUTFILE=') cdl_case = 1
153 IF(args_reduce(1:8)==
'-INFILE=') cdl_case = 2
181 IF (pinputi==0) pinputi = i
183 IF (pinputi==0) pinputi = i
195 IF (pnthi==0) pnthi = i
197 IF (pnthi==0) pnthi = i
200 CASE (
'-DYNAMIC_LIB')
201 IF (puserlnami==0) puserlnami=i
203 IF (puserlnami==0) puserlnami=i
206 CASE (
'-MDS_LIBPATH')
207 IF (mds_pathi==0) mds_pathi=i
211 IF (mds_diri==0) mds_diri=i
218 CASE (
'-INSPIRE_ALM')
233 CALL getarg(i-1,argp)
237 IF (argp ==
'-I' .OR. argp =
'-INPUT'
238 * argp ==
'-RST' .OR. argp ==
'-NT' .OR.
239 * argp ==
'-NTHREAD' .OR.
240 * argp ==
'-DYLIB' .OR. argp ==
'-DYNAMIC_LIB'.OR.
241 * argp ==
'-MDS_LIBPATH' .OR. argp ==
'-MDSDIR' )
THEN
249 IF (err == 1.AND.strl>4)
THEN
250 IF (args(strl-3:strl)==
'.XML')
THEN
264 SELECT CASE(cdl_case)
276 IF(last_letter/=separator)
THEN
291 IF(last_letter/=separator)
THEN
318 IF (ierrmsg /= 0)
THEN
319 IF (ierrmsg+1 > argn)
THEN
323 CALL getarg(ierrmsg,argp)
329 CALL getarg(ierrmsg+1,inputr)
330 leni=len_trim(inputr)
339 CALL getarg(pinputi,argp)
353 IF (pinputi /= 0)
THEN
354 IF (pinputi+1 > argn)
THEN
358 CALL getarg(pinputi,argp)
364 CALL getarg(pinputi+1,inputr)
365 leni=len_trim(inputr)
375 CALL getarg(pinputi,argp)
382 begin=len_trim(inputr)
384 DO WHILE (begin > 0 .AND. .NOT.condition)
385 c = inputr(begin:begin)
386 IF (ichar(c)==47 .OR. ichar(c)==92)
THEN
393 leni = len_trim(inputr) - begin
395 input(1:leni) = inputr(begin:len_trim(inputr))
400 path(1:lenp)=inputr(1:lenp)
414 IF (pnthi+1 > argn)
THEN
416 CALL getarg(pnthi,argp)
422 CALL getarg(pnthi+1,string)
428 CALL getarg(pnthi,argp)
436 CALL getarg(pnthi+1,string)
437 READ(string,
'(I10)',err=1999) nth
442 strln=len_trim(string)
453 IF (puserlnami /= 0)
THEN
454 IF (puserlnami+1 > argn)
THEN
458 CALL getarg(puserlnami,argp)
463 CALL getarg(puserlnami+1,userl_altname)
464 len_userl_altname=len_trim(userl_altname)
465 got_userl_altname = 1
468 ulibc(1:len_userl_altname) = userl_altname(1:len_userl_altname)
473 CALL getarg(puserlnami,argp)
485 IF (mds_pathi /= 0)
THEN
487 IF (mds_pathi+1 > argn)
THEN
491 CALL get_command_argument(mds_pathi,argp)
496 CALL get_command_argument(mds_pathi+1,mds_path)
497 mds_path_len=len_trim(mds_path)
501 ulibc(1:mds_path_len) = mds_path(1:mds_path_len)
507 CALL getarg(mds_pathi,argp)
518 IF (mds_diri /= 0)
THEN
520 IF (mds_diri+1 > argn)
THEN
523 CALL get_command_argument(mds_diri,argp)
529 CALL get_command_argument(mds_diri+1,mds_path)
530 mds_path_len=len_trim(mds_path)
534 ulibc(1:mds_path_len) = mds_path(1:mds_path_len)
540 CALL getarg(mds_diri,argp)
644 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
645#include "implicit_f.inc"
655 INTEGER MYRANK, NNODES
667 CALL mpi_comm_get_attr(mpi_comm_world, mpi_appnum,
668 * colour, valid, ierror)
670 * spmd_comm_world,ierror)
804 SUBROUTINE PRHELPINFO(ERRN,EMSG,SMSG)
808 USE SPMD_COMM_WORLD_MOD, ONLY : SPMD_COMM_WORLD
809#include "implicit_f.inc"
813#include "build_info.inc"
824 WRITE(6,'(a,a)
') '*** error : missing argument to
',
831 WRITE(6,'(a,a)
') '*** error : unknown command line argument:
',
838 WRITE(6,'(a,a)
') 'wrong
radioss input file name:
',EMSG(1:SMSG)
844 WRITE(6,'(a,a,a,a,a)
')
845 * '*** error :
"',EMSG(1:SMSG),'" is not an
integer value
'
850 WRITE(6,'(A,A,A,A,A)
')
851 * '*** ERROR : Wrong
"',EMSG(1:SMSG),'" option
'
856 WRITE(6,'(A)
') '*** ERROR : input deck set. Use -input [Engine input file]
'
860 WRITE(6,'(A,)
') 'RADIOSS Engine version
',VERS(1:LEN_VERS)
862 WRITE(6,'(A)
') 'Command line arguments help:
'
863 WRITE(6,'(A,A)
') ' -help / -h :
',
864 * 'Print this message
'
865 WRITE(6,'(A,A)
') ' -version / -v :
',
866 * 'Print RADIOSS release information
'
867 WRITE(6,'(A,A)
') ' -input [FILE] / -i [FILE] :
',
868 * 'Set RADIOSS Engine input file
'
869 WRITE(6,'(A,A)
') ' -nthread [INTEGER] / -nt [INTEGER] :
',
870 * 'Set Number of SMP threads per SPMD domain
'
871 WRITE(6,'(A,A)
') ' -notrap
',
872 * 'Disable error trapping
'
873 WRITE(6,'(A,A)
') ' -norst :
',
874 * 'Do not write restart files
'
875 WRITE(6,'(A,A)
') ' -dynamic_lib [FILE] / -dylib [FILE] :
',
876 * 'Set name to the dynamic library for Radioss User Interface
'
877 WRITE(6,'(A,A)
') ' -mdsdir [PATH] / -mds_libpath [PATH] :
',
879 * 'Set directory to MDS Library (default is %ALTAIR_HOME%/hwsolver/MultiscaleDesigner/%arch%)
'
881 * 'Set directory to MDS Library (default is $ALTAIR_HOME/hwsolver/MultiscaleDesigner
'
884 WRITE(6,'(A,A)
') ' -outfile=[path] :
',
885 * 'set output file directory for all output and created files
'