OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
execargcheck.F File Reference
#include "implicit_f.inc"
#include "warn_c.inc"
#include "commandline.inc"
#include "userlib.inc"
#include "spmd.inc"
#include "r4r8_p.inc"
#include "build_info.inc"
#include "titr_c.inc"
#include "machine.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine execargcheck (got_input, input, leni, got_path, path, lenp)
subroutine upcase (string)
subroutine isanargument (arglist, lenlist, arg, isin)
subroutine pexecinfo (idum)
subroutine prexecinfo (idum)
subroutine phelpinfo (errn, emsg, smsg)
subroutine prhelpinfo (errn, emsg, smsg)

Function/Subroutine Documentation

◆ execargcheck()

subroutine execargcheck ( integer got_input,
character*256 input,
integer leni,
integer got_path,
character*2048 path,
integer lenp )

Definition at line 42 of file execargcheck.F.

44 USE message_mod
45 USE check_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51 USE spmd_comm_world_mod, ONLY : spmd_comm_world
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "warn_c.inc"
57#include "commandline.inc"
58#include "userlib.inc"
59C-----------------------------------------------
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 INTEGER GOT_INPUT,LENI,GOT_PATH,LENP
63 CHARACTER*256 INPUT
64 CHARACTER*2048 PATH
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER ARGN
69 INTEGER PHELPI,PEXECI,PINPUTI, PNTHI,PUSERLNAMI,MDS_PATHI
70 INTEGER :: MDS_DIRI !< Flag for -mdsdir - stores Iteration in command line
71 INTEGER I,STRL,STRLN,ERR,LENLIST,ISIN,BEGIN,IERRMSG
72 INTEGER IDUM
73 CHARACTER*2096 ARGS,INPUTC,INPUTR,MSG,STRING
74 LOGICAL :: CONDITION
75 CHARACTER C
76 INTEGER IARGC,CDL_CASE,IJK
77 CHARACTER :: LAST_LETTER,SEPARATOR
78 CHARACTER(LEN=2096) ARGS2,ARGS_REDUCE,ARGP
79 CHARACTER(LEN=4096) ULIBC
80 parameter(lenlist=20)
81 CHARACTER(LEN=12):: ARGLIST(LENLIST)
82 EXTERNAL iargc
83 DATA arglist/
84 . '-VERSION', '-V',
85 . '-HELP' , '-H',
86 . '-INPUT' , '-I',
87 . '-NTHREAD' , '-NT',
88 . '-ERROR_MSG','-EM',
89 . '-NOTRAP',
90 . '-DYNAMIC_LIB',
91 . '-DYLIB',
92 . '-MEM-MAP' ,
93 . '-INSPIRE',
94 . '-PREVIEW',
95 . '-INSPIRE_ALM','-NORST',
96 . '-MDS_LIBPATH','-MDSDIR'/
97C-----------------------------------------------
98 idum=-1
99 got_input = 0
100 got_nth = 0
101 input=' '
102 leni=0
103 phelpi = 0
104 pexeci = 0
105 pinputi = 0
106 pnthi= 0
107 ierrmsg=0
108 puserlnami = 0
109 got_userl_altname=0
110 got_mem_map=0
111 got_inspire=0
112 got_inspire_alm=0
113 mds_path_len = 0
114 mds_pathi = 0
115 mds_diri = 0
116 got_preview= 0
117
118 ! Initialize MDS_PATH Array
119 mds_path=''
120
121 ! /RFILE/OFF or -norst command line --> avoid to write restart files during a run
122 ! default = write restart files
123 restart_file = 1
124 ! ---------------------
125 ! infile / outfile cdl line
128 infile_bool=.false.
131 outfile_bool=.false.
132 inout_bool=.false.
133
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
135 separator='\'
136#elif 1
137 separator='/'
138#endif
139
140 argn = command_argument_count()!IARGC()
141
142 DO i=1,argn
143 CALL getarg(i,args)
144 strl=len_trim(args)
145
146 args2(1:2096) = ''
147 args2(1:strl) = args(1:strl)
148 CALL upcase(args)
149
150 args_reduce(1:9) = args(1:9)
151 cdl_case = 0
152 IF(args_reduce(1:9)=='-OUTFILE=') cdl_case = 1
153 IF(args_reduce(1:8)=='-INFILE=') cdl_case = 2
154 IF(cdl_case==0) THEN
155 SELECT CASE (args)
156C------------------------------------------------
157C -NOTRAP
158 CASE ( '-NOTRAP')
159 itrace = -1
160C------------------------------------------------
161C -VERSION, -V
162 CASE ( '-VERSION')
163 pexeci = 1
164 CASE ( '-V')
165 pexeci = 1
166C------------------------------------------------
167C -HELP, -H
168 CASE ( '-HELP')
169 phelpi = 1
170 CASE ( '-H')
171 phelpi = 1
172C------------------------------------------------
173C -ERROR_MSG, -EM
174 CASE ( '-ERROR_MSG')
175 ierrmsg = i
176 CASE ( '-EM')
177 ierrmsg = i
178C------------------------------------------------
179C -INPUT, -I
180 CASE ( '-INPUT')
181 IF (pinputi==0) pinputi = i
182 CASE ( '-I')
183 IF (pinputi==0) pinputi = i
184C------------------------------------------------
185C -RST / MADYMO RESTART
186 CASE ( '-RST')
187 err = 0
188C------------------------------------------------
189C Madymo Option
190 CASE ( '--')
191 err = 0
192C------------------------------------------------
193C -NTHREAD, -NT
194 CASE ( '-NTHREAD')
195 IF (pnthi==0) pnthi = i
196 CASE ( '-NT')
197 IF (pnthi==0) pnthi = i
198C------------------------------------------------
199C -DYNAMIC_LIB, -DYLIB
200 CASE ( '-DYNAMIC_LIB')
201 IF (puserlnami==0) puserlnami=i
202 CASE ( '-DYLIB')
203 IF (puserlnami==0) puserlnami=i
204C------------------------------------------------
205C -MDS_LIBPATH
206 CASE ( '-mds_libpath')
207 IF (MDS_PATHI==0) MDS_PATHI=I
208C------------------------------------------------
209C -MDSDIR
210 CASE ( '-mdsdir')
211 IF (MDS_DIRI==0) MDS_DIRI=I
212C------------------------------------------------
213C -MEM-MAP
214 CASE ( '-mem-map')
215 GOT_MEM_MAP=1
216 CASE ( '-preview')
217 GOT_PREVIEW=1
218 CASE ( '-inspire_alm')
219 GOT_INSPIRE_ALM=1
220 CASE ( '-inspire')
221 GOT_INSPIRE=1
222C------------------------------------------------
223C -NORST : no restart file command
224 CASE ( '-norst')
225 RESTART_FILE = 0
226C------------------------------------------------
227C Lignes de commande qui ne sont pas definies
228 CASE DEFAULT
229 ERR = 0
230 IF (I == 1)THEN
231 ERR = 1
232 ELSE
233 CALL GETARG(I-1,ARGP)
234 CALL UPCASE(ARGP)
235 STRLN=LEN_TRIM(ARGP)
236C Check if argument string is a variable to an argument
237 IF (ARGP == '-i.OR.' ARGP =='-input.OR.'
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
242 ERR = 0
243 ELSE
244 ERR = 1
245 ENDIF
246 ENDIF
247C
248C Specificife Radioss Madymo
249.AND. IF (ERR == 1strl>4)THEN
250 IF (ARGS(strl-3:strl)=='.xml')THEN
251 ERR = 0
252 ENDIF
253 ENDIF
254 IF (ERR == 1)THEN
255 CALL GETARG(I,ARGP)
256 STRLN=LEN_TRIM(ARGP)
257 CALL PHELPINFO(2,ARGP,STRLN)
258 CALL ARRET(7)
259 ENDIF
260C------------------------------------------------
261 END SELECT
262 ELSE
263! ------------------------------------------------
264 SELECT CASE(CDL_CASE)
265 ! -----------------------------
266 ! -OUTFILE=... option
267 ! -----------------------------
268 CASE(1)
269
270 OUTFILE_NAME_LEN = LEN_TRIM(ARGS2) - 9
271 OUTFILE_NAME(1:OUTFILE_NAME_LEN) = ARGS2(10:LEN_TRIM(ARGS2))
272 OUTFILE_BOOL=.TRUE.
273 DO IJK=1,OUTFILE_NAME_LEN
274 LAST_LETTER = OUTFILE_NAME(IJK:IJK)
275 ENDDO
276 IF(LAST_LETTER/=SEPARATOR) THEN
277 OUTFILE_NAME(1:OUTFILE_NAME_LEN+1) =
278 . OUTFILE_NAME(1:OUTFILE_NAME_LEN)//SEPARATOR
279 OUTFILE_NAME_LEN = OUTFILE_NAME_LEN + 1
280 ENDIF
281 ! -----------------------------
282 ! -INFILE=... option
283 ! -----------------------------
284 CASE(2)
285 INFILE_NAME_LEN = LEN_TRIM(ARGS2) - 8
286 INFILE_NAME(1:INFILE_NAME_LEN) = ARGS2(9:LEN_TRIM(ARGS2))
287 INFILE_BOOL=.TRUE.
288 DO IJK=1,INFILE_NAME_LEN
289 LAST_LETTER = INFILE_NAME(IJK:IJK)
290 ENDDO
291 IF(LAST_LETTER/=SEPARATOR) THEN
292 INFILE_NAME(1:INFILE_NAME_LEN+1) =
293 . INFILE_NAME(1:INFILE_NAME_LEN)//SEPARATOR
294 INFILE_NAME_LEN = INFILE_NAME_LEN + 1
295 ENDIF
296 END SELECT
297! ------------------------------------------------
298 ENDIF
299 ENDDO
300C------------------------------------------------
301C -VERSION SET
302C------------------------------------------------
303 IF (PEXECI==1) THEN
304 CALL PEXECINFO(IDUM)
305 ENDIF
306
307C------------------------------------------------
308C -HELP SET
309C------------------------------------------------
310 IF (PHELPI==1) THEN
311 MSG= ' '
312 CALL PHELPINFO(0,MSG,0)
313 ENDIF
314
315C------------------------------------------------
316C -ERROR_MSG SET
317C------------------------------------------------
318 IF (IERRMSG /= 0)THEN
319 IF (IERRMSG+1 > ARGN) THEN
320
321C Case -I is last argument in the list.
322
323 CALL GETARG(IERRMSG,ARGP)
324 STRLN=LEN_TRIM(ARGP)
325 MSG = ARGP
326 CALL PHELPINFO(1,MSG,STRLN)
327 CALL ARRET(7)
328 ELSE
329 CALL GETARG(IERRMSG+1,INPUTR)
330 LENI=LEN_TRIM(INPUTR)
331
332C check if -i has got an argument or if the next string is an input command
333
334 INPUTC = INPUTR
335 CALL UPCASE(INPUTC)
336 ISIN = 0
337 CALL ISANARGUMENT(ARGLIST,LENLIST,INPUTC,ISIN)
338 IF ( ISIN==1 )THEN
339 CALL GETARG(PINPUTI,ARGP)
340 STRLN=LEN_TRIM(ARGP)
341 MSG=ARGP
342 CALL PHELPINFO(1,MSG,STRLN)
343 CALL ARRET(7)
344 ENDIF
345 CALL READ_MSGFILE(LENI,INPUTR)
346 CALL BUILD_MSG()
347 ENDIF
348 ENDIF
349
350C------------------------------------------------
351C -INPUT SET
352C------------------------------------------------
353 IF (PINPUTI /= 0)THEN
354 IF (PINPUTI+1 > ARGN) THEN
355
356C Case -I is last argument in the list.
357
358 CALL GETARG(PINPUTI,ARGP)
359 STRLN=LEN_TRIM(ARGP)
360 MSG = ARGP
361 CALL PHELPINFO(1,MSG,STRLN)
362 CALL ARRET(7)
363 ELSE
364 CALL GETARG(PINPUTI+1,INPUTR)
365 LENI=LEN_TRIM(INPUTR)
366 GOT_INPUT = 1
367
368C check if -i has got an argument or if the next string is an input command
369
370 INPUTC = INPUTR
371 CALL UPCASE(INPUTC)
372 ISIN = 0
373 CALL ISANARGUMENT(ARGLIST,LENLIST,INPUTC,ISIN)
374 IF ( ISIN==1 )THEN
375 CALL GETARG(PINPUTI,ARGP)
376 STRLN=LEN_TRIM(ARGP)
377 MSG=ARGP
378 CALL PHELPINFO(1,MSG,STRLN)
379 CALL ARRET(7)
380 ENDIF
381
382 BEGIN=LEN_TRIM(INPUTR)
383 CONDITION = .FALSE.
384.AND..NOT. DO WHILE (BEGIN > 0 CONDITION)
385 C = INPUTR(BEGIN:BEGIN)
386.OR. IF (ICHAR(C)==47 ichar(C)==92) THEN
387 CONDITION=.TRUE.
388 GOTO 150
389 ENDIF
390 BEGIN=BEGIN-1
391 ENDDO
392 150 CONTINUE
393 LENI = LEN_TRIM(INPUTR) - BEGIN
394 BEGIN=BEGIN+1
395 INPUT(1:LENI) = INPUTR(BEGIN:LEN_TRIM(INPUTR))
396
397 IF (BEGIN > 1)THEN
398 GOT_PATH=1
399 LENP=BEGIN-1
400 PATH(1:LENP)=INPUTR(1:LENP)
401 ENDIF
402 ENDIF
403 ELSE
404 ! -input/-i was not set. Exiting with error message.
405 MSG= ' '
406 CALL PHELPINFO(6,MSG,0)
407 CALL ARRET(7)
408 ENDIF
409
410C------------------------------------------------
411C -NTHREAD SET
412C------------------------------------------------
413 IF (PNTHI /= 0)THEN
414 IF (PNTHI+1 > ARGN) THEN
415C case -nt is last argument in the list.
416 CALL GETARG(PNTHI,ARGP)
417 STRLN=LEN_TRIM(ARGP)
418 MSG = ARGP
419 CALL PHELPINFO(1,MSG,STRLN)
420 CALL ARRET(7)
421 ELSE
422 CALL GETARG(PNTHI+1,STRING)
423C check if -nt has got an argument or if the next string is an input command
424 CALL UPCASE(STRING)
425 ISIN = 0
426 CALL ISANARGUMENT(ARGLIST,LENLIST,STRING,ISIN)
427 IF ( ISIN==1 )THEN
428 CALL GETARG(PNTHI,ARGP)
429 STRLN=LEN_TRIM(ARGP)
430 MSG=ARGP
431 CALL PHELPINFO(1,MSG,STRLN)
432 CALL ARRET(7)
433 END IF
434 GOT_NTH = 1
435C convert the argument to an Integer
436 CALL GETARG(PNTHI+1,STRING)
437 READ(STRING,'(i10)',ERR=1999) NTH
438C Read converting was OK goto 2000
439 GOTO 2000
440 1999 CONTINUE
441C Error was found during Character to Integer translation
442 STRLN=LEN_TRIM(STRING)
443c CALL GETARG(PNTHI,ARGP)
444 MSG=STRING
445 CALL PHELPINFO(4,MSG,STRLN)
446 CALL ARRET(7)
447 2000 CONTINUE
448 ENDIF
449 ENDIF
450C------------------------------------------------
451C -DYLIB SET
452C------------------------------------------------
453 IF (PUSERLNAMI /= 0)THEN
454 IF (PUSERLNAMI+1 > ARGN) THEN
455
456C Case -DYLIB is last argument in the list.
457
458 CALL GETARG(PUSERLNAMI,ARGP)
459 STRLN=LEN_TRIM(ARGP)
460 CALL PHELPINFO(1,ARGP,STRLN)
461
462 ELSE
463 CALL GETARG(PUSERLNAMI+1,USERL_ALTNAME)
464 LEN_USERL_ALTNAME=LEN_TRIM(USERL_ALTNAME)
465 GOT_USERL_ALTNAME = 1
466C check if -dylib has got an argument or if the next string is an input command
467 ULIBC=''
468 ULIBC(1:LEN_USERL_ALTNAME) = USERL_ALTNAME(1:LEN_USERL_ALTNAME)
469 CALL UPCASE(ULIBC)
470 ISIN = 0
471 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
472 IF ( ISIN==1 )THEN
473 CALL GETARG(PUSERLNAMI,ARGP)
474 STRLN=LEN_TRIM(ARGP)
475 CALL PHELPINFO(1,ARGP,STRLN)
476 CALL ARRET(7)
477 ENDIF
478
479 ENDIF ! IF (PUSERLNAMI+1 > ARGN) THEN
480 ENDIF
481 3000 CONTINUE
482C------------------------------------------------
483C -MDS_LIBPATH
484C------------------------------------------------
485 IF (MDS_PATHI /= 0)THEN
486
487 IF (MDS_PATHI+1 > ARGN) THEN
488
489C Case -DYLIB is last argument in the list.
490
491 CALL GET_COMMAND_ARGUMENT(MDS_PATHI,ARGP)
492 STRLN=LEN_TRIM(ARGP)
493 CALL PHELPINFO(1,ARGP,STRLN)
494
495 ELSE
496 CALL GET_COMMAND_ARGUMENT(MDS_PATHI+1,MDS_PATH)
497 MDS_PATH_LEN=LEN_TRIM(MDS_PATH)
498C check if -mds has got an argument or if the next string is an input command
499
500 ULIBC=''
501 ULIBC(1:MDS_PATH_LEN) = MDS_PATH(1:MDS_PATH_LEN)
502 CALL UPCASE(ULIBC)
503 ISIN = 0
504 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
505
506 IF ( ISIN==1 )THEN
507 CALL GETARG(MDS_PATHI,ARGP)
508 STRLN=LEN_TRIM(ARGP)
509 CALL PHELPINFO(1,ARGP,STRLN)
510 CALL ARRET(7)
511 ENDIF
512
513 ENDIF ! IF (MDS_PATHI+1 > ARGN) THEN
514 ENDIF
515C------------------------------------------------
516C -MDSDIR
517C------------------------------------------------
518 IF (MDS_DIRI /= 0)THEN
519
520 IF (MDS_DIRI+1 > ARGN) THEN
521
522C Case -DYLIB is last argument in the list.
523 CALL GET_COMMAND_ARGUMENT(MDS_DIRI,ARGP)
524 STRLN=LEN_TRIM(ARGP)
525 CALL PHELPINFO(1,ARGP,STRLN)
526
527 ELSE
528
529 CALL GET_COMMAND_ARGUMENT(MDS_DIRI+1,MDS_PATH)
530 MDS_PATH_LEN=LEN_TRIM(MDS_PATH)
531
532 ! check if -mdsdir has got an argument or if the next string is an input command
533 ULIBC=''
534 ULIBC(1:MDS_PATH_LEN) = MDS_PATH(1:MDS_PATH_LEN)
535 CALL UPCASE(ULIBC)
536 ISIN = 0
537 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
538
539 IF ( ISIN==1 )THEN
540 CALL GETARG(MDS_DIRI,ARGP)
541 STRLN=LEN_TRIM(ARGP)
542 CALL PHELPINFO(1,ARGP,STRLN)
543 CALL ARRET(7)
544 ENDIF
545
546 ENDIF ! IF (MDS_DIRI+1 > ARGN) THEN
547 ENDIF
548C------------------------------------------------
549
subroutine upcase(string)
integer restart_file
Definition check_mod.F:52
integer infile_name_len
integer, parameter infile_char_len
character(len=outfile_char_len) outfile_name
logical infile_bool
character(len=infile_char_len) infile_name
logical outfile_bool
integer, parameter outfile_char_len
integer outfile_name_len

◆ isanargument()

subroutine isanargument ( character (len=12), dimension(lenlist), intent(in) arglist,
integer lenlist,
character arg,
integer isin )

Definition at line 595 of file execargcheck.F.

596C-----------------------------------------------
597C I m p l i c i t T y p e s
598C-----------------------------------------------
599 USE spmd_comm_world_mod, ONLY : spmd_comm_world
600#include "implicit_f.inc"
601C-----------------------------------------------
602C D u m m y A r g u m e n t s
603C-----------------------------------------------
604 CHARACTER (LEN=12),INTENT(IN) :: ARGLIST(LENLIST)
605 CHARACTER ARG*2096
606 INTEGER LENLIST,ISIN
607C-----------------------------------------------
608C L o c a l V a r i a b l e s
609C-----------------------------------------------
610 INTEGER I,STRLEN
611 CHARACTER ARGC*2096
612C-----------------------------------------------
613 strlen=len_trim(arg)
614 argc(1:2096)=''
615 i=1
616 DO WHILE (i<=strlen .AND. arg(i:i)/='=')
617 argc(i:i)=arg(i:i)
618 i=i+1
619 IF(i>strlen)EXIT ! check bounds issue for ARG (I:I) if I=STRLEN+1
620 ENDDO
621
622 isin = 0
623 DO i=1,lenlist
624 IF (trim(arglist(i))==trim(argc)) isin=1
625 ENDDO

◆ pexecinfo()

subroutine pexecinfo ( integer idum)

Definition at line 640 of file execargcheck.F.

641C-----------------------------------------------
642C I m p l i c i t T y p e s
643C-----------------------------------------------
644 USE spmd_comm_world_mod, ONLY : spmd_comm_world
645#include "implicit_f.inc"
646C-----------------------------------------------
647C C o m m o n B l o c k s
648C-----------------------------------------------
649#include "spmd.inc"
650C-----------------------------------------------
651C L o c a l V a r i a b l e s
652C-----------------------------------------------
653#ifdef MPI
654 INTEGER IERROR
655 INTEGER MYRANK, NNODES
656 INTEGER KEY, IERR
657#endif
658 INTEGER IDUM
659 INTEGER :: COLOUR
660 LOGICAL :: VALID
661C-----------------------------------------------
662#ifdef MPI
663 key = 0
664 call mpi_initialized(key, ierr)
665 CALL mpi_init(ierror)
666
667 CALL mpi_comm_get_attr(mpi_comm_world, mpi_appnum,
668 * colour, valid, ierror)
669 CALL mpi_comm_split(mpi_comm_world,colour,key,
670 * spmd_comm_world,ierror)
671
672 CALL mpi_comm_size(spmd_comm_world, nnodes, ierror)
673 CALL mpi_comm_rank(spmd_comm_world, myrank, ierror)
674
675 if (myrank==0) CALL prexecinfo(idum)
676
677 CALL mpi_barrier(spmd_comm_world,ierror)
678
679 CALL mpi_finalize(ierror)
680
681#elif 1
682 CALL prexecinfo(idum)
683#endif
684 CALL my_exit(0)
void my_exit(int *i)
Definition analyse.c:1038
subroutine prexecinfo(idum)
subroutine mpi_finalize(ierr)
Definition mpi.f:288
subroutine mpi_comm_split(comm, color, key, comm2, ierr)
Definition mpi.f:272
subroutine mpi_barrier(comm, ierr)
Definition mpi.f:188
subroutine mpi_comm_size(comm, size, ierr)
Definition mpi.f:263
subroutine mpi_init(ierr)
Definition mpi.f:342
subroutine mpi_comm_rank(comm, rank, ierr)
Definition mpi.f:254
subroutine mpi_initialized(flag, ierr)
Definition mpi.f:350
PORD_INT myrank(void)

◆ phelpinfo()

subroutine phelpinfo ( integer errn,
character*256 emsg,
integer smsg )

Definition at line 747 of file execargcheck.F.

748C-----------------------------------------------
749C I m p l i c i t T y p e s
750C-----------------------------------------------
751 USE spmd_comm_world_mod, ONLY : spmd_comm_world
752#include "implicit_f.inc"
753C-----------------------------------------------
754C C o m m o n B l o c k s
755C-----------------------------------------------
756#include "spmd.inc"
757C-----------------------------------------------
758C D u m m y A r g u m e n t s
759C-----------------------------------------------
760 INTEGER ERRN,SMSG
761 CHARACTER*256 ARGP,EMSG*256
762C-----------------------------------------------
763C L o c a l V a r i a b l e s
764C-----------------------------------------------
765#ifdef MPI
766 INTEGER STATUS(MPI_STATUS_SIZE),IERROR
767 INTEGER MYRANK, NNODES
768 INTEGER KEY, IERR
769#endif
770 INTEGER :: COLOUR
771 LOGICAL :: VALID
772C-----------------------------------------------
773#ifdef MPI
774 key = 0
775 CALL mpi_initialized(key, ierr)
776 CALL mpi_init(ierror)
777
778 CALL mpi_comm_get_attr(mpi_comm_world, mpi_appnum,
779 * colour, valid, ierror)
780 CALL mpi_comm_split(mpi_comm_world,colour,key,
781 * spmd_comm_world,ierror)
782 CALL mpi_comm_size(spmd_comm_world, nnodes, ierror)
783 CALL mpi_comm_rank(spmd_comm_world, myrank, ierror)
784
785 if (myrank==0) CALL prhelpinfo(errn,emsg,smsg)
786
787 CALL mpi_barrier(spmd_comm_world,ierror)
788
789 CALL mpi_finalize(ierror)
790
791#elif 1
792 CALL prhelpinfo(errn,emsg,smsg)
793#endif
794 CALL arret(7)
subroutine prhelpinfo(errn, emsg, smsg)
subroutine arret(nn)
Definition arret.F:87

◆ prexecinfo()

subroutine prexecinfo ( integer idum)

Definition at line 694 of file execargcheck.F.

695C-----------------------------------------------
696C I m p l i c i t T y p e s
697C-----------------------------------------------
698 USE spmd_comm_world_mod, ONLY : spmd_comm_world
699#include "implicit_f.inc"
700#include "r4r8_p.inc"
701C-----------------------------------------------
702C C o m m o n B l o c k s
703C-----------------------------------------------
704#include "build_info.inc"
705#include "titr_c.inc"
706C-----------------------------------------------
707C L o c a l V a r i a b l e s
708C-----------------------------------------------
709 CHARACTER*256 RFLEXNAM,GPUTITLE,ARCHTIT*66
710 INTEGER LEN,LBT
711 INTEGER RDFLEXCOMP
712 INTEGER IDUM
713C-----------------------------------------------
714#include "machine.inc"
715C-----------------------------------------------
716
717 lbt = len_trim(btag)
718 WRITE(6,'(A,A)') ' '
719 WRITE(6,'(A,A)') 'OpenRadios Engine '
720 WRITE(6,'(A,A)') ' '
721 WRITE(6,'(A,A)') 'Platform release : ',bname(1:lenbnam)
722 WRITE(6,'(A,A)') 'Platform info : ',archtitle
723
724 IF (ir4r8==1)THEN
725 WRITE(6,'(A,A)')
726 * ' Extended Single Precision Version'
727 ENDIF
728 WRITE(6,'(A,A)') ' '
729 WRITE(6,'(A,A)') 'Time of build : ',btime
730 WRITE(6,'(A,A)') 'Date of build : ',bdate
731 WRITE(6,'(A,A)') ' '
732
733

◆ prhelpinfo()

subroutine prhelpinfo ( integer errn,
character emsg,
integer smsg )

Definition at line 804 of file execargcheck.F.

805C-----------------------------------------------
806C I m p l i c i t T y p e s
807C-----------------------------------------------
808 USE spmd_comm_world_mod, ONLY : spmd_comm_world
809#include "implicit_f.inc"
810C-----------------------------------------------
811C C o m m o n B l o c k s
812C-----------------------------------------------
813#include "build_info.inc"
814C-----------------------------------------------
815C D u m m y A r g u m e n t s
816C-----------------------------------------------
817 INTEGER ERRN,SMSG
818 CHARACTER EMSG*256
819C-----------------------------------------------
820C L o c a l V a r i a b l e s
821C-----------------------------------------------
822 IF (errn == 1)THEN
823 WRITE(6,'(A)') ' '
824 WRITE(6,'(A,A)') '*** ERROR : Missing argument to ',
825 * emsg(1:smsg)
826 WRITE(6,'(A)') ' '
827 ENDIF
828
829 IF (errn == 2)THEN
830 WRITE(6,'(A)') ' '
831 WRITE(6,'(A,A)') '*** ERROR : Unknown command line argument:',
832 * emsg(1:smsg)
833 WRITE(6,'(A)') ' '
834 ENDIF
835
836 IF (errn == 3)THEN
837 WRITE(6,'(A)') ' '
838 WRITE(6,'(A,A)') 'WRONG RADIOSS INPUT FILE NAME: ',emsg(1:smsg)
839 WRITE(6,'(A)') ' '
840 ENDIF
841
842 IF (errn == 4)THEN
843 WRITE(6,'(A)') ' '
844 WRITE(6,'(A,A,A,A,A)')
845 * '*** ERROR : "',emsg(1:smsg),'" is not an integer value'
846 ENDIF
847
848 IF (errn == 5)THEN
849 WRITE(6,'(A)') ' '
850 WRITE(6,'(A,A,A,A,A)')
851 * '*** ERROR : Wrong "',emsg(1:smsg),'" option'
852 ENDIF
853
854 IF (errn == 6)THEN
855 WRITE(6,'(A)') ' '
856 WRITE(6,'(A)') '*** ERROR : No input deck set. Use -input [Engine input file] '
857 ENDIF
858
859 WRITE(6,'(A)') ' '
860 WRITE(6,'(A,A)') 'RADIOSS Engine version ',vers(1:len_vers)
861 WRITE(6,'(A)') ' '
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] : ',
878#ifdef _WIN32
879 * 'Set directory to MDS Library (default is %ALTAIR_HOME%/hwsolver/MultiscaleDesigner/%arch%)'
880#else
881 * 'Set directory to MDS Library (default is $ALTAIR_HOME/hwsolver/MultiscaleDesigner/$arch)'
882#endif
883
884 WRITE(6,'(A,A)') ' -outfile=[PATH] : ',
885 * 'Set output file directory for all output and created files'
886 WRITE(6,'(A)') ' '
887
888

◆ upcase()

subroutine upcase ( character*(*) string)

Definition at line 561 of file execargcheck.F.

562C-----------------------------------------------
563C I m p l i c i t T y p e s
564C-----------------------------------------------
565 USE spmd_comm_world_mod, ONLY : spmd_comm_world
566#include "implicit_f.inc"
567C-----------------------------------------------
568C D u m m y A r g u m e n t s
569C-----------------------------------------------
570 CHARACTER*(*) STRING
571C-----------------------------------------------
572C L o c a l V a r i a b l e s
573C-----------------------------------------------
574 INTEGER LS,LC
575C
576 ls = len(string)
577C
578 DO lc = 1,ls
579 IF (lge(string(lc:lc),'a') .AND.
580 1 lle(string(lc:lc),'z')) THEN
581C
582 string(lc:lc) = char(ichar(string(lc:lc)) - 32)
583 ELSE
584 ENDIF
585 END DO
586 RETURN