OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
execargcheck.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| execargcheck ../starter/source/starter/execargcheck.F
25!||--- called by ------------------------------------------------------
26!|| starter0 ../starter/source/starter/starter0.F
27!||--- calls -----------------------------------------------------
28!|| build_msg ../starter/source/output/message/build_msg.F
29!|| get_ibuiltin_arch ../starter/source/system/get_ibuiltin_arch.c
30!|| isanargument ../starter/source/starter/execargcheck.F
31!|| my_exit ../starter/source/output/analyse/analyse.c
32!|| pexecinfo ../starter/source/starter/execargcheck.F
33!|| phelpinfo ../starter/source/starter/execargcheck.F
34!|| prhelpinfo ../starter/source/starter/execargcheck.F
35!|| read_msgfile ../starter/source/output/message/read_msgfile.F
36!|| upcase ../starter/source/starter/execargcheck.f
37!||--- uses -----------------------------------------------------
38!|| grp_size_mod ../starter/share/modules1/grp_size_mod.f
39!|| random_mod ../starter/share/modules1/random_mod.F
40!||====================================================================
41 SUBROUTINE execargcheck(OUTPUT)
42 USE check_mod
44 USE random_mod
45 USE grp_size_mod
46 USE output_mod
47 USE python_funct_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "commandline.inc"
56#include "warn_c.inc"
57#include "execinp.inc"
58#include "userlib.inc"
59#include "tablen_c.inc"
60#include "ddspmd_c.inc"
61#include "debug_rst.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 TYPE(output_), INTENT(INOUT) :: OUTPUT
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER ARGN
70 INTEGER PHELPI,PEXECI,PINPUTI,PNCPUI, PNTHI, PTIMER, PUSERLNAMI,MDS_PATHI
71 INTEGER PCHECKSUMI !< Flag for -checksum - stores Iteration in command line
72 INTEGER :: MDS_DIRI !< Flag for -mdsdir - stores Iteration in command line
73 INTEGER I,STRL,STRLN,ERR,LENLIST,ISIN,STRLNA,BEGIN
74 INTEGER IDUM
75 LOGICAL :: CONDITION
76 CHARACTER C
77 INTEGER GLOBAL_ERROR
78 CHARACTER*2096 INPUTR,INPUTC,STRING,ARGP,ARGS
79 CHARACTER*2096 CHECKSUMR,CHECKSUMC ! checksumr : read from command line / checksumc : capital_letter(checksumr)
80 CHARACTER*4096 ULIBC
81 character(len=2096) ARGS2,ARGS_REDUCE
82 INTEGER :: LEN_DOMDEC_CPU_TYPE
83 CHARACTER(LEN=15) :: DOMDEC_CPU_TYPE
84 INTEGER IARGC,IERRMSG,CDL_CASE
85 CHARACTER :: LAST_LETTER,SEPARATOR
86 INTEGER :: RANDM_SEED,RANDM_ALEA
87 REAL(kind=8) :: randm_seed_nbr,randm_alea_nbr
88 INTEGER :: GOT_GRP_SIZE
89 parameter(lenlist=33)
90 CHARACTER (LEN=20) :: ARGLIST(LENLIST)
91 EXTERNAL iargc
92 DATA arglist/
93 . '-VERSION', '-V',
94 . '-HELP' , '-H',
95 . '-INPUT' , '-I',
96 . '-NSPMD' , '-NP',
97 . '-NTHREAD' , '-NT',
98 . '-ERROR_MSG','-EM',
99 . '-NOTRAP' , '-TIMER',
100 . '-dynamic_lib', '-dylib',
101 . '-mds_libpath', '-mdsdir',
102 . '-mem-map' , '-inspire', '-dd_tuning',
103 . '-inspire_alm' , '-flush_rst', '-check',
104 . '-hstp_read' , '-hstp_write', '-rxalea', '-rseed',
105 . '-preview',
106 . '-grp_size' , '-python' , '-thnms1','-checksum_read'/
107 INTEGER :: RUNQA
108 CHARACTER (LEN=255) :: STR
109C-----------------------------------------------
110 IDUM=-1
111 ITRACE=1
112 IERRMSG=0
113 GLOBAL_ERROR = 0
114 PYTHON_ERROR = 1
115 STR = ' '
116
117 CALL GETENV('run_qa',STR)
118 RUNQA = 0
119 READ(STR,'(i10)')RUNQA
120 IF(RUNQA == 1) PYTHON_ERROR = 0
121
122 GOT_INPUT = 0
123 GOT_NCPU = 0
124 GOT_NTH = 0
125 GOT_TIMER = 0
126 GOT_USERL_ALTNAME=0
127 GOT_MEM_MAP=0
128 GOT_INSPIRE=0
129 GOT_INSPIRE_ALM=0
130 GOT_HSTP_READ = 0
131 GOT_HSTP_WRITE = 0
132 MDS_PATH_LEN = 0
133 FLUSH_RST_TO_TXT = .FALSE.
134c
135 INPUT=' '
136 LENI=0
137
138 GOT_PATH=0
139 LENP=0
140 PATH=' '
141
142 PHELPI = 0
143 PEXECI = 0
144 PINPUTI = 0
145 PNCPUI= 0
146 PNTHI = 0
147 PTIMER = 0
148 PUSERLNAMI = 0
149 MDS_PATHI = 0
150 MDS_DIRI = 0
151 PCHECKSUMI = 0
152! ------------------------
153! domdec optimization
154 DOMDEC_TUNING = 0
155 DD_OPTIMIZATION = 0
156 ! /RFILE/OFF or -check command line
157 ! --> avoid to write restart files at the end of the starter
158 ! default = write restart files
159 RESTART_FILE = 1
160! ------------------------
161! outfile / infile option
162 INOUT_BOOL = .FALSE.
163 OUTFILE_NAME_LEN = 0
164 OUTFILE_BOOL = .FALSE.
165 OUTFILE_NAME(1:OUTFILE_CHAR_LEN) =''
166 INFILE_NAME_LEN = 0
167 INFILE_BOOL = .FALSE.
168 INFILE_NAME(1:INFILE_CHAR_LEN) =''
169#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
170 SEPARATOR='\'
171#elif 1
172 SEPARATOR='/'
173#endif
174! ------------------------
175! -rxalea or -rseed options
176 RAND_STRUCT%CMD=.FALSE.
177 RAND_STRUCT%ALEA_NBR=0.d+00
178 RAND_STRUCT%SEED_NBR=0.d+00
179 RAND_STRUCT%ALEA=.FALSE.
180 RAND_STRUCT%SEED=.FALSE.
181
182 RANDM_SEED=0
183 RANDM_ALEA=0
184! ------------------------
185! -GRP_SIZE hidden option
186 GRP_SIZE_BOOL=.FALSE.
187 GOT_GRP_SIZE = 0
188 GRP_SIZE=128
189! ------------------------
190
191 OUTPUT%TH%DUMP_THNMS1_FILE = 0
192 OUTPUT%CHECKSUM%ST_CHECKSUM_READ = 0
193
194 ARGS2(1:2096) = ''
195
196 ARGN = COMMAND_ARGUMENT_COUNT()!IARGC()
197
198 DO I=1,ARGN
199 CALL GET_COMMAND_ARGUMENT(I,ARGS) !GETARG(I,ARGS)
200 strl=LEN_TRIM(ARGS)
201 ARGS2(1:2096) = ''
202 ARGS2(1:strl) = ARGS(1:strl)
203 CALL UPCASE(ARGS)
204
205 ARGS_REDUCE(1:9) = ARGS(1:9)
206 CDL_CASE = 0
207C IF(ARGS_REDUCE(1:7)=='-CHECK=') CDL_CASE=1 ! remove -CHECK= to -CHECK
208 IF(ARGS_REDUCE(1:9)=='-outfile=') CDL_CASE = 2
209 IF(ARGS_REDUCE(1:8)=='-infile=') CDL_CASE = 3
210
211 IF(CDL_CASE==0) THEN
212
213 SELECT CASE (ARGS)
214C------------------------------------------------
215C -VERSION, -V
216 CASE ( '-version')
217 PEXECI = 1
218 CASE ( '-v')
219 PEXECI = 1
220C------------------------------------------------
221C -HELP, -H
222 CASE ( '-help')
223 PHELPI = 1
224 CASE ( '-h')
225 PHELPI = 1
226C------------------------------------------------
227C -NODEBUG
228 CASE ( '-notrap')
229 ITRACE = 0
230C------------------------------------------------
231C -ERROR_MSG, -EM
232 CASE ( '-error_msg')
233 IERRMSG = I
234 CASE ( '-em')
235 IERRMSG = I
236C------------------------------------------------
237C -INPUT, -I
238 CASE ( '-input')
239 IF (PINPUTI==0) PINPUTI = I
240 CASE ( '-i')
241 IF (PINPUTI==0) PINPUTI = I
242C------------------------------------------------
243C -NSPMD, -NP
244 CASE ( '-nspmd')
245 IF (PNCPUI==0) PNCPUI = I
246 CASE ( '-np')
247 IF (PNCPUI==0) PNCPUI = I
248C------------------------------------------------
249C -NTHREAD, -NT
250 CASE ( '-nthread')
251 IF (PNTHI==0) PNTHI = I
252 CASE ( '-nt')
253 IF (PNTHI==0) PNTHI = I
254C------------------------------------------------
255C -TIMER
256 CASE ( '-timer')
257 IF (PTIMER==0) PTIMER = I
258C------------------------------------------------
259C -DYNAMIC_LIB, -DYLIB
260 CASE ( '-dynamic_lib')
261 IF (PUSERLNAMI==0) PUSERLNAMI=I
262 CASE ( '-dylib')
263 IF (PUSERLNAMI==0) PUSERLNAMI=I
264C------------------------------------------------
265C -MDS_LIBPATH
266 CASE ( '-mds_libpath')
267 IF (MDS_PATHI==0) MDS_PATHI=I
268C------------------------------------------------
269C -MDSDIR
270 CASE ( '-mdsdir')
271 IF (mds_diri==0) mds_diri=i
272C------------------------------------------------
273C -MEM-MAP
274 CASE ( '-MEM-MAP')
275 got_mem_map=1
276C------------------------------------------------
277C -INSPIRE
278 CASE ( '-INSPIRE')
279 got_inspire=1
280C------------------------------------------------
281! -DD_TUNING
282 CASE('-DD_TUNING')
283 IF(domdec_tuning==0) domdec_tuning=i
284C------------------------------------------------
285C -INSPIRE_ALM
286 CASE ( '-INSPIRE_ALM')
287 got_inspire_alm=1
288C------------------------------------------------
289! -HSTP_READ
290 CASE ( '-HSTP_READ')
291 got_hstp_read = 1
292C------------------------------------------------
293! -HSTP_READ
294 CASE ( '-HSTP_WRITE')
295 got_hstp_write = 1
296C------------------------------------------------
297#ifdef DEBUG_RST
298 CASE ( '-FLUSH_RST')
299 flush_rst_to_txt = .true.
300#endif
301C------------------------------------------------
302! -CHECK
303 CASE('-CHECK')
304 restart_file = 0
305 CASE('-RXALEA')
306 randm_alea = i
307 CASE('-RSEED')
308 randm_seed = i
309 CASE('-PYTHON')
310 python_error = 0
311 CASE('-PREVIEW')
312C------------------------------------------------
313 CASE ( '-GRP_SIZE')
314 got_grp_size = i
315C------------------------------------------------
316 CASE ( '-THNMS1')
317 output%TH%DUMP_THNMS1_FILE = 1
318 CASE ( '-checksum_read')
319 OUTPUT%CHECKSUM%ST_CHECKSUM_READ = 1
320 IF (PCHECKSUMI==0) PCHECKSUMI = I
321 CASE DEFAULT
322 ! ------------------------------------------------
323 ! unknown command line argument
324 ERR = 0
325
326 IF (I == 1)THEN
327 ERR = 1
328 ELSE
329 CALL GET_COMMAND_ARGUMENT(I-1,ARGP) !GETARG(I-1,ARGP)
330 CALL UPCASE(ARGP)
331 STRLN=LEN_TRIM(ARGP)
332
333 ! Check if argument string is a variable to an argument
334 IF (ARGP == '-i.OR.' ARGP =='-input.OR.'
335 * ARGP == '-np.OR.' ARGP =='-nspmd.OR.'
336 * ARGP == '-nt.OR.' ARGP =='-nthread.OR.'
337 * ARGP == '-timer.OR.' ARGP =='-dylib.OR.'
338 * ARGP == '-dynamic_lib.OR.' ARGP == '-dd_tuning.OR.'
339 * ARGP == '-rseed.OR.' ARGP == '-rxalea.OR.'
340 * ARGP == '-grp_size.OR.' ARGP == '-mds_libpath.OR.' ARGP == '-mdsdir.OR.' ARGP == '-checksum_read' )THEN
341 ERR = 0
342 ELSE
343 ERR = 1
344 ENDIF
345 ENDIF
346
347 IF (ERR == 1)THEN
348 CALL GET_COMMAND_ARGUMENT(I,ARGP) !GETARG(I,ARGP)
349 STRLN=LEN_TRIM(ARGP)
350 WRITE(6,'(a,a)') ' '
351 WRITE(6,'(a,a)') '*** error : unknown command line argument: ',ARGP(1:STRLN)
352 WRITE(6,'(a,a)') ' '
353 CALL PRHELPINFO()
354 CALL MY_EXIT(2)
355 ENDIF
356C------------------------------------------------
357 END SELECT
358
359 ELSE
360C------------------------------------------------
361 SELECT CASE (CDL_CASE)
362 ! -----------------------------
363 ! CHECK=... options
364 ! -----------------------------
365! ------------------------------------------------
366 CASE(1)
367 ARGS2(:)=''
368 ARGS2(1:len_trim(ARGS)-7) = ARGS(8:len_trim(ARGS))
369 SELECT CASE ( ARGS2(1:len_trim(ARGS2)) )
370 ! -----------------------------
371 ! -CHECK=NORST option
372 ! -----------------------------
373 CASE ( 'norst')
374 ! -CHECK=NORST : no restart file command
375 RESTART_FILE = 0
376 END SELECT
377 ! -----------------------------
378! ------------------------------------------------
379 ! -----------------------------
380 ! -OUTFILE=... option
381 ! -----------------------------
382 CASE(2)
383! IF(ARGS_REDUCE(1:9)=='-outfile=') THEN
384 OUTFILE_NAME_LEN = LEN_TRIM(ARGS2) - 9
385 OUTFILE_NAME(1:OUTFILE_NAME_LEN) = ARGS2(10:LEN_TRIM(ARGS2))
386 OUTFILE_BOOL=.TRUE.
387 LAST_LETTER = OUTFILE_NAME(OUTFILE_NAME_LEN:OUTFILE_NAME_LEN)
388 IF(LAST_LETTER/=SEPARATOR) THEN
389 OUTFILE_NAME(1:OUTFILE_NAME_LEN+1) =
390 . OUTFILE_NAME(1:OUTFILE_NAME_LEN)//SEPARATOR
391 OUTFILE_NAME_LEN = OUTFILE_NAME_LEN + 1
392 ENDIF
393! ------------------------------------------------
394 ! -----------------------------
395 ! -INFILE=... option
396 ! -----------------------------
397 CASE(3)
398! ELSEIF(ARGS_REDUCE(1:8)=='-infile=') THEN
399 ! -INFILE=... option
400 INFILE_NAME_LEN = LEN_TRIM(ARGS2) - 8
401 INFILE_NAME(1:INFILE_NAME_LEN) = ARGS2(9:LEN_TRIM(ARGS2))
402 INFILE_BOOL=.TRUE.
403 LAST_LETTER = INFILE_NAME(OUTFILE_NAME_LEN:OUTFILE_NAME_LEN)
404 IF(LAST_LETTER/=SEPARATOR) THEN
405 INFILE_NAME(1:INFILE_NAME_LEN+1) =
406 . INFILE_NAME(1:INFILE_NAME_LEN)//SEPARATOR
407 INFILE_NAME_LEN = INFILE_NAME_LEN + 1
408 ENDIF
409! ENDIF
410 END SELECT
411! ------------------------------------------------
412 ENDIF
413 ENDDO
414
415 GLOBAL_ERROR = 0
416C------------------------------------------------
417C -VERSION SET
418C------------------------------------------------
419 IF (PEXECI==1) THEN
420 CALL PEXECINFO(IDUM)
421 ENDIF
422
423C------------------------------------------------
424C -HELP SET
425C------------------------------------------------
426 IF (PHELPI==1) THEN
427 CALL PHELPINFO()
428 ENDIF
429
430C------------------------------------------------
431C -ERROR_MSG SET
432C------------------------------------------------
433 IF (IERRMSG /= 0)THEN
434 IF (IERRMSG+1 > ARGN) THEN
435
436C Case -I is last argument in the list.
437
438 CALL GET_COMMAND_ARGUMENT(IERRMSG,ARGP) !GETARG(IERRMSG,ARGP)
439 STRLN=LEN_TRIM(ARGP)
440 WRITE(6,'(a)') ' '
441 WRITE(6,'(a,a)') '*** error : missing argument to ',
442 * ARGP(1:STRLN)
443! MSG = ARGP
444! CALL PHELPINFO()
445
446 CALL MY_EXIT(2)
447 ELSE
448 CALL GET_COMMAND_ARGUMENT(IERRMSG+1,INPUTR) !GETARG(IERRMSG+1,INPUTR)
449 LENI=LEN_TRIM(INPUTR)
450
451C check if -i has got an argument or if the next string is an input command
452
453 INPUTC = INPUTR
454 CALL UPCASE(INPUTC)
455 ISIN = 0
456 CALL ISANARGUMENT(ARGLIST,LENLIST,INPUTC,ISIN)
457 IF ( ISIN==1 )THEN
458 CALL GET_COMMAND_ARGUMENT(PINPUTI,ARGP) !GETARG(PINPUTI,ARGP)
459 STRLN=LEN_TRIM(ARGP)
460! MSG=ARGP
461 WRITE(6,'(a)') ' '
462 WRITE(6,'(a,a)') '*** error : missing argument to ',
463 * ARGP(1:STRLN)
464 CALL MY_EXIT(2)
465 ENDIF
466 CALL READ_MSGFILE(LENI,INPUTR)
467 CALL BUILD_MSG()
468 ENDIF
469 ENDIF
470
471 ! ------------------------------------------------
472 ! -CHECKSUM ROOTNAME
473 ! ------------------------------------------------
474 IF (PCHECKSUMI /= 0)THEN
475
476 IF (PCHECKSUMI + 1 > ARGN) THEN ! Case -CHECKSUM is last argument in the list.
477
478 CALL GET_COMMAND_ARGUMENT(PCHECKSUMI,ARGP) ! GETARG(PINPUTI,ARGP)
479 STRLN=LEN_TRIM(ARGP)
480 WRITE(6,'(a)') ' '
481 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
482 CALL PHELPINFO()
483 GLOBAL_ERROR = 1
484
485 ELSE
486 CALL GET_COMMAND_ARGUMENT(PCHECKSUMI+1,CHECKSUMR)
487 LENI=LEN_TRIM(CHECKSUMR)
488 CHECKSUMC = CHECKSUMR
489 CALL UPCASE(CHECKSUMC)
490
491 ! check if -checksum has got an argument or if the next string is an input command
492 ISIN = 0
493 CALL ISANARGUMENT(ARGLIST,LENLIST,CHECKSUMC,ISIN)
494
495 IF ( ISIN==1 )THEN
496 CALL GET_COMMAND_ARGUMENT(PINPUTI,ARGP)
497 STRLN=LEN_TRIM(ARGP)
498 WRITE(6,'(a)') ' '
499 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
500 CALL PHELPINFO()
501 GLOBAL_ERROR = 1
502
503 ELSE
504 OUTPUT%CHECKSUM%ROOTNAME = ''
505 OUTPUT%CHECKSUM%ROOTNAME(1:LENI) = CHECKSUMR(1:LENI)
506 ENDIF
507 ENDIF
508 ENDIF
509
510C------------------------------------------------
511C -INPUT SET
512C------------------------------------------------
513 IF (PINPUTI /= 0)THEN
514 IF (PINPUTI+1 > ARGN) THEN
515
516C Case -I is last argument in the list.
517
518 CALL GET_COMMAND_ARGUMENT(PINPUTI,ARGP) !GETARG(PINPUTI,ARGP)
519 STRLN=LEN_TRIM(ARGP)
520C CALL PRHELPINFO()
521 WRITE(6,'(a)') ' '
522 WRITE(6,'(a,a)') '*** error : missing argument to ',
523 * ARGP(1:STRLN)
524 GLOBAL_ERROR = 1
525 GOTO 100
526
527 ELSE
528 CALL GET_COMMAND_ARGUMENT(PINPUTI+1,INPUTR) !GETARG(PINPUTI+1,INPUTR)
529 LENI=LEN_TRIM(INPUTR)
530 GOT_INPUT = 1
531
532C check if -i has got an argument or if the next string is an input command
533
534 INPUTC = INPUTR
535 CALL UPCASE(INPUTC)
536 ISIN = 0
537 CALL ISANARGUMENT(ARGLIST,LENLIST,INPUTC,ISIN)
538 IF ( ISIN==1 )THEN
539 CALL GET_COMMAND_ARGUMENT(PINPUTI,ARGP) !GETARG(PINPUTI,ARGP)
540 STRLN=LEN_TRIM(ARGP)
541C CALL PRHELPINFO()
542 WRITE(6,'(a)') ' '
543 WRITE(6,'(a,a)') '*** error : missing argument to ',
544 * ARGP(1:STRLN)
545 GLOBAL_ERROR = 1
546 GOTO 100
547 ENDIF
548
549 BEGIN=LEN_TRIM(INPUTR)
550 CONDITION = .FALSE.
551.AND..NOT. DO WHILE (BEGIN > 0 CONDITION )
552 C = INPUTR(BEGIN:BEGIN)
553.OR. IF (ICHAR(C)==47 ichar(C)==92) THEN
554 CONDITION=.TRUE.
555 GOTO 150
556 ENDIF
557 BEGIN=BEGIN-1
558 ENDDO
559 150 CONTINUE
560 LENI = LEN_TRIM(INPUTR) - BEGIN
561 BEGIN=BEGIN+1
562 INPUT(1:LENI) = INPUTR(BEGIN:LEN_TRIM(INPUTR))
563
564 IF (BEGIN > 1)THEN
565 GOT_PATH=1
566 LENP=BEGIN-1
567 PATH(1:LENP)=INPUTR(1:LENP)
568 ENDIF
569 ENDIF
570 ELSE
571 ! PINPUTI is 0, which means -input/-i was not set
572 if (PCHECKSUMI == 0)THEN ! -checksum option is set, does not need -i
573 WRITE(6,'(a)') ' '
574 WRITE(6,'(a)') '*** error : no input deck set. Use -input [starter input file] '
575 WRITE(6,'(a)') ' '
576 CALL PHELPINFO()
577 endif
578 ENDIF
579 100 CONTINUE
580C------------------------------------------------
581C -NSPMD SET
582C------------------------------------------------
583 IF (PNCPUI /= 0)THEN
584
585 IF (PNCPUI+1 > ARGN) THEN
586
587C Case -np is last argument in the list.
588
589 CALL GET_COMMAND_ARGUMENT(PNCPUI,ARGP) !GETARG(PNCPUI,ARGP)
590 STRLN=LEN_TRIM(ARGP)
591C CALL PRHELPINFO()
592 WRITE(6,'(a)') ' '
593 WRITE(6,'(a,a)') '*** error : missing argument to ',
594 * ARGP(1:STRLN)
595 GLOBAL_ERROR=1
596 GOTO 200
597
598 ELSE
599 CALL GET_COMMAND_ARGUMENT(PNCPUI+1,STRING) !GETARG(PNCPUI+1,STRING)
600
601C check if -np has got an argument or if the next string is an input command
602 CALL UPCASE(STRING)
603 ISIN = 0
604 CALL ISANARGUMENT(ARGLIST,LENLIST,STRING,ISIN)
605 IF ( ISIN==1 )THEN
606 CALL GET_COMMAND_ARGUMENT(PNCPUI,ARGP) !GETARG(PNCPUI,ARGP)
607 STRLN=LEN_TRIM(ARGP)
608C CALL PRHELPINFO()
609 WRITE(6,'(a)') ' '
610 WRITE(6,'(a,a)') '*** error : missing argument to ',
611 * ARGP(1:STRLN)
612 GLOBAL_ERROR=1
613 GOTO 200
614 ENDIF
615C convert the argument to an Integer
616 GOT_NCPU = 1
617 CALL GET_COMMAND_ARGUMENT(PNCPUI+1,STRING) !GETARG(PNCPUI+1,STRING)
618 READ(STRING,'(i10)',ERR=999) NCPU
619C Read converting was OK goto 1000
620 GOTO 1000
621
622
623 999 CONTINUE
624C Error was found during Character to Integer translation
625 STRLN=LEN_TRIM(STRING)
626 CALL GET_COMMAND_ARGUMENT(PNCPUI,ARGP) !GETARG(PNCPUI,ARGP)
627 STRLNA=LEN_TRIM(ARGP)
628 WRITE(6,'(a)') ' '
629 WRITE(6,'(a,a,a,a,a)')
630 * '*** error in "',ARGP(1:STRLNA),'" argument : "',
631 * STRING(1:STRLN),'" is not an integer value'
632 GLOBAL_ERROR=1
633 GOTO 200
634
635 1000 CONTINUE
636 ENDIF
637 ENDIF
638
639C------------------------------------------------
640C -NTHREAD SET
641C------------------------------------------------
642 IF (PNTHI /= 0)THEN
643
644 IF (PNTHI+1 > ARGN) THEN
645
646C Case -nt is last argument in the list.
647
648 CALL GET_COMMAND_ARGUMENT(PNTHI,ARGP) !GETARG(PNTHI,ARGP)
649 STRLN=LEN_TRIM(ARGP)
650C CALL PRHELPINFO()
651 WRITE(6,'(a)') ' '
652 WRITE(6,'(a,a)') '*** error : missing argument to ',
653 * ARGP(1:STRLN)
654 GLOBAL_ERROR=1
655 GOTO 200
656
657 ELSE
658 CALL GET_COMMAND_ARGUMENT(PNTHI+1,STRING) !GETARG(PNTHI+1,STRING)
659
660C check if -nt has got an argument or if the next string is an input command
661 CALL UPCASE(STRING)
662 ISIN = 0
663 CALL ISANARGUMENT(ARGLIST,LENLIST,STRING,ISIN)
664 IF ( ISIN==1 )THEN
665 CALL GET_COMMAND_ARGUMENT(PNTHI,ARGP) !GETARG(PNTHI,ARGP)
666 STRLN=LEN_TRIM(ARGP)
667C CALL PRHELPINFO()
668 WRITE(6,'(a)') ' '
669 WRITE(6,'(a,a)') '*** error : missing argument to ',
670 * ARGP(1:STRLN)
671 GLOBAL_ERROR=1
672 GOTO 200
673 ENDIF
674C convert the argument to an Integer
675 GOT_NTH = 1
676 CALL GET_COMMAND_ARGUMENT(PNTHI+1,STRING) !GETARG(PNTHI+1,STRING)
677 READ(STRING,'(i10)',ERR=1999) NTH
678C Read converting was OK goto 2000
679 GOTO 2000
680
681
682 1999 CONTINUE
683C Error was found during Character to Integer translation
684 STRLN=LEN_TRIM(STRING)
685 CALL GET_COMMAND_ARGUMENT(PNTHI,ARGP) !GETARG(PNTHI,ARGP)
686 STRLNA=LEN_TRIM(ARGP)
687 WRITE(6,'(a)') ' '
688 WRITE(6,'(a,a,a,a,a)')
689 * '*** error in "',ARGP(1:STRLNA),'" argument : "',
690 * STRING(1:STRLN),'" is not an integer value'
691 GLOBAL_ERROR=1
692 GOTO 200
693
694 2000 CONTINUE
695 ENDIF
696 ENDIF
697C------------------------------------------------
698C -DYLIB SET
699C------------------------------------------------
700 IF (PUSERLNAMI /= 0)THEN
701 IF (PUSERLNAMI+1 > ARGN) THEN
702
703C Case -DYLIB is last argument in the list.
704
705 CALL GET_COMMAND_ARGUMENT(PUSERLNAMI,ARGP) !GETARG(PUSERLNAMI,ARGP)
706 STRLN=LEN_TRIM(ARGP)
707C CALL PRHELPINFO()
708 WRITE(6,'(a)') ' '
709 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
710 GLOBAL_ERROR = 1
711
712 ELSE
713 CALL GET_COMMAND_ARGUMENT(PUSERLNAMI+1,USERL_ALTNAME) !GETARG(PUSERLNAMI+1,USERL_ALTNAME)
714 LEN_USERL_ALTNAME=LEN_TRIM(USERL_ALTNAME)
715 GOT_USERL_ALTNAME = 1
716C check if -dylib has got an argument or if the next string is an input command
717
718 ULIBC=''
719 ULIBC(1:LEN_USERL_ALTNAME) = USERL_ALTNAME(1:LEN_USERL_ALTNAME)
720 CALL UPCASE(ULIBC)
721 ISIN = 0
722 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
723 IF ( ISIN==1 )THEN
724 CALL GET_COMMAND_ARGUMENT(PUSERLNAMI,ARGP) !GETARG(PUSERLNAMI,ARGP)
725 STRLN=LEN_TRIM(ARGP)
726C CALL PRHELPINFO()
727 WRITE(6,'(a)') ' '
728 WRITE(6,'(a,a)') '*** error : missing argument to ',
729 * ARGP(1:STRLN)
730 GLOBAL_ERROR = 1
731 GOTO 3000
732 ENDIF
733
734 ENDIF ! IF (PUSERLNAMI+1 > ARGN) THEN
735 ENDIF
736 3000 CONTINUE
737C------------------------------------------------
738C -MDS_LIBPATH
739C------------------------------------------------
740 IF (MDS_PATHI /= 0)THEN
741
742 IF (MDS_PATHI+1 > ARGN) THEN
743
744C Case -DYLIB is last argument in the list.
745
746 CALL GET_COMMAND_ARGUMENT(MDS_PATHI,ARGP)
747 STRLN=LEN_TRIM(ARGP)
748C CALL PRHELPINFO()
749 WRITE(6,'(a)') ' '
750 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
751 GLOBAL_ERROR = 1
752
753 ELSE
754 CALL GET_COMMAND_ARGUMENT(MDS_PATHI+1,MDS_PATH)
755 MDS_PATH_LEN=LEN_TRIM(MDS_PATH)
756C check if -mds has got an argument or if the next string is an input command
757
758 ULIBC=''
759 ULIBC(1:MDS_PATH_LEN) = MDS_PATH(1:MDS_PATH_LEN)
760 CALL UPCASE(ULIBC)
761 ISIN = 0
762 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
763 IF ( ISIN==1 )THEN
764 CALL GET_COMMAND_ARGUMENT(MDS_PATHI,ARGP) !GETARG(PUSERLNAMI,ARGP)
765 STRLN=LEN_TRIM(ARGP)
766C CALL PRHELPINFO()
767 WRITE(6,'(a)') ' '
768 WRITE(6,'(a,a)') '*** error : missing argument to ',
769 * ARGP(1:STRLN)
770 GLOBAL_ERROR = 1
771 GOTO 4000
772 ENDIF
773
774 ENDIF ! IF (MDS_PATHI+1 > ARGN) THEN
775 ENDIF
776 4000 CONTINUE
777C------------------------------------------------
778C -MDSDIR
779C------------------------------------------------
780 IF (MDS_DIRI /= 0)THEN
781
782 IF (MDS_DIRI+1 > ARGN) THEN
783
784C Case -DYLIB is last argument in the list.
785
786 CALL GET_COMMAND_ARGUMENT(MDS_DIRI,ARGP)
787 STRLN=LEN_TRIM(ARGP)
788C CALL PRHELPINFO()
789 WRITE(6,'(a)') ' '
790 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
791 GLOBAL_ERROR = 1
792
793 ELSE
794
795 CALL GET_COMMAND_ARGUMENT(MDS_DIRI+1,MDS_PATH)
796 MDS_PATH_LEN=LEN_TRIM(MDS_PATH)
797 ! check if -mdsdir has got an argument or if the next string is an input command
798 ULIBC=''
799 ULIBC(1:MDS_PATH_LEN) = MDS_PATH(1:MDS_PATH_LEN)
800 CALL UPCASE(ULIBC)
801 ISIN = 0
802 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
803 IF ( ISIN==1 )THEN
804 CALL GET_COMMAND_ARGUMENT(MDS_DIRI,ARGP) !GETARG(PUSERLNAMI,ARGP)
805 STRLN=LEN_TRIM(ARGP)
806 WRITE(6,'(a)') ' '
807 WRITE(6,'(a,a)') '*** error : missing argument to ',
808 * ARGP(1:STRLN)
809 GLOBAL_ERROR = 1
810
811 ENDIF
812
813 ENDIF
814 ENDIF
815
816C------------------------------------------------
817C -TIME SET (hidden option)
818C------------------------------------------------
819 IF (PTIMER>0) THEN
820 GOT_TIMER = 1
821 ENDIF
822
823
824! ------------------------------------------------
825! Domain decomposition tuning : hidden option
826! ------------------------------------------------
827! DD_OPTIMIZATION = 0 --> default case, DD optimized for Broadwell processor - AVX-2
828! DD_OPTIMIZATION = 1 --> DD optimized for Skylake processor - AVX-512
829! DD_OPTIMIZATION = 2 --> DD optimized for Sandy Bridge processor - SSE3
830! DD_OPTIMIZATION = 3 --> DD optimized for ThunderX2 processor - ARM
831 IF (DOMDEC_TUNING /= 0)THEN
832 IF (DOMDEC_TUNING+1 > ARGN) THEN
833
834C Case -DYLIB is last argument in the list.
835
836 CALL GET_COMMAND_ARGUMENT(DOMDEC_TUNING,ARGP) !GETARG(DOMDEC_TUNING,ARGP)
837 STRLN=LEN_TRIM(ARGP)
838C CALL PRHELPINFO()
839 WRITE(6,'(a)') ' '
840 WRITE(6,'(a,a)') '*** error : missing argument to ',
841 * ARGP(1:STRLN)
842 GLOBAL_ERROR = 1
843
844 ELSE
845 CALL GET_COMMAND_ARGUMENT(DOMDEC_TUNING+1,DOMDEC_CPU_TYPE) !GETARG(DOMDEC_TUNING+1,DOMDEC_CPU_TYPE)
846 LEN_DOMDEC_CPU_TYPE=LEN_TRIM(DOMDEC_CPU_TYPE)
847C check if -DD_TUNING has got an argument or if the next string is an input command
848
849 ULIBC(1:LEN_DOMDEC_CPU_TYPE) = DOMDEC_CPU_TYPE(1:LEN_DOMDEC_CPU_TYPE)
850 CALL UPCASE(ULIBC)
851 ISIN = 0
852 CALL ISANARGUMENT(ARGLIST,LENLIST,ULIBC,ISIN)
853 IF ( ISIN==1 )THEN
854 CALL GET_COMMAND_ARGUMENT(DOMDEC_TUNING,ARGP) !GETARG(DOMDEC_TUNING,ARGP)
855 STRLN=LEN_TRIM(ARGP)
856C CALL PRHELPINFO()
857 WRITE(6,'(a)') ' '
858 WRITE(6,'(a,a)') '*** error : missing argument to ',
859 * ARGP(1:STRLN)
860 GLOBAL_ERROR = 1
861 GOTO 3010
862 ENDIF
863
864 IF(DOMDEC_CPU_TYPE(1:LEN_DOMDEC_CPU_TYPE)=='avx512') THEN
865 DD_OPTIMIZATION = 1
866 ELSEIF(DOMDEC_CPU_TYPE(1:LEN_DOMDEC_CPU_TYPE)=='sse3') THEN
867 DD_OPTIMIZATION = 2
868 ELSEIF(DOMDEC_CPU_TYPE(1:LEN_DOMDEC_CPU_TYPE)=='armv8.0') THEN
869 DD_OPTIMIZATION = 3
870 ELSEIF(DOMDEC_CPU_TYPE(1:LEN_DOMDEC_CPU_TYPE)=='avx2') THEN
871 DD_OPTIMIZATION = 0
872 ENDIF
873 ENDIF ! IF (DOMDEC_TUNING+1 > ARGN) THEN
874 ELSE
875! Default case : check the os/cpu in order to use the best choice of element costs
876 CALL GET_IBUILTIN_ARCH(DD_OPTIMIZATION)
877! in GET_IBUILTIN_ARCH :
878! 0 - X86-64 Linux AVX-2
879! 1 - X86-64 Linux AVX-512
880! 2 - X86-64 Linux SSE3
881! 3 - ARM64 Linux
882! 4 - X86-64 Windows AVX-2 --> default case AVX-2 ; DD_OPTIMIZATION is set to 0 in grid2mat
883 ENDIF
884! ------------------------------------------------
885! -RXALEA option
886! ------------------------------------------------
887 IF (RANDM_ALEA/=0)THEN
888 IF (RANDM_ALEA+1 > ARGN) THEN
889
890C Case -rxalea is last argument in the list.
891
892 CALL GET_COMMAND_ARGUMENT(RANDM_ALEA,ARGP) !GETARG(PNTHI,ARGP)
893 STRLN=LEN_TRIM(ARGP)
894
895 WRITE(6,'(a)') ' '
896 WRITE(6,'(a,a)') '*** error : missing argument to ',
897 * ARGP(1:STRLN)
898 GLOBAL_ERROR=1
899 GOTO 200
900
901 ELSE
902 CALL GET_COMMAND_ARGUMENT(RANDM_ALEA+1,STRING)
903
904C check if -rxalea has got an argument or if the next string is an input command
905 CALL UPCASE(STRING)
906 ISIN = 0
907 CALL ISANARGUMENT(ARGLIST,LENLIST,STRING,ISIN)
908 IF ( ISIN==1 )THEN
909 CALL GET_COMMAND_ARGUMENT(RANDM_ALEA,ARGP)
910 STRLN=LEN_TRIM(ARGP)
911
912 WRITE(6,'(a)') ' '
913 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
914 GLOBAL_ERROR=1
915 GOTO 200
916 ENDIF
917C convert the argument to a real
918
919 CALL GET_COMMAND_ARGUMENT(RANDM_ALEA+1,STRING)
920 READ(STRING,'(f20.0)',ERR=5999) RANDM_ALEA_NBR
921 RAND_STRUCT%CMD=.TRUE.
922 RAND_STRUCT%ALEA_NBR=RANDM_ALEA_NBR
923 RAND_STRUCT%ALEA=.TRUE.
924C Read converting was OK goto 2000
925 GOTO 5000
926
927 5999 CONTINUE
928C Error was found during Character to real translation
929 STRLN=LEN_TRIM(STRING)
930 CALL GET_COMMAND_ARGUMENT(RANDM_ALEA,ARGP)
931 STRLNA=LEN_TRIM(ARGP)
932 WRITE(6,'(a)') ' '
933 WRITE(6,'(a,a,a,a,a)')
934 * '*** error in "',ARGP(1:STRLNA),'" argument : "',
935 * STRING(1:STRLN),'" is not an real value'
936 GLOBAL_ERROR=1
937 GOTO 200
938
939 5000 CONTINUE
940 ENDIF
941 ENDIF
942! ------------------------------------------------
943! -RSEED option
944! ------------------------------------------------
945 IF (RANDM_SEED/=0)THEN
946 IF (RANDM_SEED+1 > ARGN) THEN
947
948C Case -rseed is last argument in the list.
949
950 CALL GET_COMMAND_ARGUMENT(RANDM_SEED,ARGP)
951 STRLN=LEN_TRIM(ARGP)
952
953 WRITE(6,'(a)') ' '
954 WRITE(6,'(a,a)') '*** error : missing argument to ',
955 * ARGP(1:STRLN)
956 GLOBAL_ERROR=1
957 GOTO 200
958
959 ELSE
960 CALL GET_COMMAND_ARGUMENT(RANDM_SEED+1,STRING)
961
962C check if -rseed has got an argument or if the next string is an input command
963 CALL UPCASE(STRING)
964 ISIN = 0
965 CALL ISANARGUMENT(ARGLIST,LENLIST,STRING,ISIN)
966 IF ( ISIN==1 )THEN
967 CALL GET_COMMAND_ARGUMENT(RANDM_SEED,ARGP)
968 STRLN=LEN_TRIM(ARGP)
969
970 WRITE(6,'(a)') ' '
971 WRITE(6,'(a,a)') '*** error : missing argument to ',ARGP(1:STRLN)
972 GLOBAL_ERROR=1
973 GOTO 200
974 ENDIF
975C convert the argument to a real
976
977 CALL GET_COMMAND_ARGUMENT(RANDM_SEED+1,STRING)
978 READ(STRING,'(f20.0)',ERR=6999) RANDM_SEED_NBR
979 RAND_STRUCT%CMD=.TRUE.
980 RAND_STRUCT%SEED_NBR=RANDM_SEED_NBR
981 RAND_STRUCT%SEED=.TRUE.
982C Read converting was OK goto 2000
983 GOTO 6000
984
985 6999 CONTINUE
986C Error was found during Character to real translation
987 STRLN=LEN_TRIM(STRING)
988 CALL GET_COMMAND_ARGUMENT(RANDM_ALEA,ARGP)
989 STRLNA=LEN_TRIM(ARGP)
990 WRITE(6,'(a)') ' '
991 WRITE(6,'(A,A,A,A,A)')
992 * '*** ERROR in "',argp(1:strlna),'" argument : "',
993 * string(1:strln),'" is not an real value'
994 global_error=1
995 GOTO 200
996
997 6000 CONTINUE
998 ENDIF
999 ENDIF
1000
1001
1002C------------------------------------------------
1003C -GRP_SIZE hidden option
1004C------------------------------------------------
1005 IF (got_grp_size /= 0)THEN
1006 IF (got_grp_size+1 > argn) THEN
1007C Case -grp_size is last argument in the list.
1008
1009 CALL get_command_argument(got_grp_size,argp)
1010 strln=len_trim(argp)
1011 WRITE(6,'(A)') ' '
1012 WRITE(6,'(A,A)') '*** ERROR : Missing argument to ',
1013 * argp(1:strln)
1014 global_error=1
1015 GOTO 200
1016 ELSE
1017 CALL get_command_argument(got_grp_size+1,string)
1018
1019C check if -grp_size has got an argument or if the next string is an input command
1020 CALL upcase(string)
1021 isin = 0
1022 CALL isanargument(arglist,lenlist,string,isin)
1023 IF ( isin==1 )THEN
1024 CALL get_command_argument(got_grp_size,argp)
1025 strln=len_trim(argp)
1026C CALL PRHELPINFO()
1027 WRITE(6,'(A)') ' '
1028 WRITE(6,'(A,A)') '*** ERROR : Missing argument to ',
1029 * argp(1:strln)
1030 global_error=1
1031 GOTO 200
1032 ENDIF
1033C convert the argument to an Integer
1034 got_nth = 1
1035 CALL get_command_argument(got_grp_size+1,string)
1036 READ(string,'(I10)',err=3999) grp_size
1037 grp_size_bool = .true.
1038C Read converting was OK goto 2000
1039 GOTO 2123
1040
1041
1042 3999 CONTINUE
1043C Error was found during Character to Integer translation
1044 strln=len_trim(string)
1045 CALL get_command_argument(got_grp_size,argp)
1046 strlna=len_trim(argp)
1047 WRITE(6,'(A)') ' '
1048 WRITE(6,'(A,A,A,A,A)')
1049 * '*** ERROR in "',argp(1:strlna),'" argument : "',
1050 * string(1:strln),'" is not an integer value'
1051 global_error=1
1052 GOTO 200
1053
1054 2123 CONTINUE
1055 ENDIF
1056 ENDIF
1057
1058
1059! ------------------------------------------------
1060 3010 CONTINUE
1061
1062
1063
1064 200 CONTINUE
1065 IF (global_error ==1)THEN
1066 WRITE(6,'(A)') ' '
1067 CALL prhelpinfo()
1068 CALL my_exit(2)
1069 ENDIF
1070
1071 IF(infile_bool.or.outfile_bool) inout_bool = .true.
1072
1073
1074 RETURN
1075 END SUBROUTINE
1076
1077
1078
1079!||====================================================================
1080!|| upcase ../starter/source/starter/execargcheck.F
1081!||--- called by ------------------------------------------------------
1082!|| execargcheck ../starter/source/starter/execargcheck.F
1083!||====================================================================
1084 SUBROUTINE upcase (STRING)
1085C-----------------------------------------------
1086C I m p l i c i t T y p e s
1087C-----------------------------------------------
1088#include "implicit_f.inc"
1089C-----------------------------------------------
1090C D u m m y A r g u m e n t s
1091C-----------------------------------------------
1092 CHARACTER*(*) STRING
1093C-----------------------------------------------
1094C L o c a l V a r i a b l e s
1095C-----------------------------------------------
1096 INTEGER LS,LC
1097C
1098 ls = len(string)
1099C
1100 DO lc = 1,ls
1101 IF (lge(string(lc:lc),'a') .AND.
1102 1 lle(string(lc:lc),'z')) THEN
1103C
1104 string(lc:lc) = char(ichar(string(lc:lc)) - 32)
1105 ELSE
1106 ENDIF
1107 END DO
1108 RETURN
1109 END
1110!||====================================================================
1111!|| isanargument ../starter/source/starter/execargcheck.F
1112!||--- called by ------------------------------------------------------
1113!|| execargcheck ../starter/source/starter/execargcheck.F
1114!||====================================================================
1115 SUBROUTINE isanargument(ARGLIST,LENLIST,ARG,ISIN)
1116C-----------------------------------------------
1117C I m p l i c i t T y p e s
1118C-----------------------------------------------
1119#include "implicit_f.inc"
1120C-----------------------------------------------
1121C D u m m y A r g u m e n t s
1122C-----------------------------------------------
1123 CHARACTER (LEN=12),INTENT(IN) :: ARGLIST(LENLIST)
1124 CHARACTER ARG*2096
1125 INTEGER LENLIST,ISIN
1126C-----------------------------------------------
1127C L o c a l V a r i a b l e s
1128C-----------------------------------------------
1129 INTEGER I
1130C-----------------------------------------------
1131 isin = 0
1132 DO i=1,lenlist
1133 IF (trim(arglist(i))==trim(arg)) isin=1
1134 ENDDO
1135 END
1136
1137
1138
1139!||====================================================================
1140!|| pexecinfo ../starter/source/starter/execargcheck.F
1141!||--- called by ------------------------------------------------------
1142!|| execargcheck ../starter/source/starter/execargcheck.F
1143!||--- calls -----------------------------------------------------
1144!|| my_exit ../starter/source/output/analyse/analyse.c
1145!|| prexecinfo ../starter/source/starter/execargcheck.F
1146!||====================================================================
1147 SUBROUTINE pexecinfo(IDUM)
1148C-----------------------------------------------
1149C I m p l i c i t T y p e s
1150C-----------------------------------------------
1151#include "implicit_f.inc"
1152C-----------------------------------------------
1153C L o c a l V a r i a b l e s
1154C-----------------------------------------------
1155 INTEGER IDUM
1156C-----------------------------------------------
1157 CALL prexecinfo(idum)
1158
1159 CALL my_exit(0)
1160 END
1161
1162!||====================================================================
1163!|| prexecinfo ../starter/source/starter/execargcheck.F
1164!||--- called by ------------------------------------------------------
1165!|| pexecinfo ../starter/source/starter/execargcheck.F
1166!||--- calls -----------------------------------------------------
1167!||====================================================================
1168 SUBROUTINE prexecinfo(IDUM)
1169C-----------------------------------------------
1170C I m p l i c i t T y p e s
1171C-----------------------------------------------
1172#include "implicit_f.inc"
1173#include "r4r8_p.inc"
1174C-----------------------------------------------
1175C C o m m o n B l o c k s
1176C-----------------------------------------------
1177#include "build_info.inc"
1178C-----------------------------------------------
1179C L o c a l V a r i a b l e s
1180C-----------------------------------------------
1181 INTEGER IDUM
1182 CHARACTER*256 RFLEXNAM
1183 INTEGER LEN
1184C machine.inc include
1185 CHARACTER CPUNAM*20,ARCHTITLE*66
1186 INTEGER RDFLEXCOMP
1187
1188C variables inutiles mais definies dans machine.inc
1189 INTEGER IBUILTIN,NSPMD,IEXPM,ICRAY,IRESP,IRFORM,LENBT,READER_ID
1190 INTEGER READER_COMMIT_ID_SIZE,READER_COMMIT_ID_LEN
1191 CHARACTER(LEN=128):: READER_COMMIT_ID
1192 my_real :: bmul0
1193C-----------------------------------------------
1194#include "machine.inc"
1195C-----------------------------------------------
1196 ! Grab Build ID from hm_reader library
1197 reader_commit_id_size=128
1198 CALL hm_build_id(reader_commit_id,reader_commit_id_size,reader_commit_id_len)
1199
1200
1201 WRITE(6,'(A,A)') ' '
1202 WRITE(6,'(A,A)') 'OpenRadioss Starter '
1203 WRITE(6,'(A,A)') ' '
1204 WRITE(6,'(A,A)') 'Platform release : ',cpunam
1205 WRITE(6,'(A,A)') 'Platform info : ',archtitle
1206 IF (ir4r8==1)THEN
1207 WRITE(6,'(A,A)')
1208 * ' Extended Single Precision Version'
1209 ENDIF
1210 WRITE(6,'(A,A)') ' '
1211 WRITE(6,'(A,A)') 'Time of build : ',btime
1212 WRITE(6,'(A,A)') 'Date of build : ',bdate
1213 WRITE(6,'(A,A)') ' '
1214 IF( btag(1:1) == ' ') THEN
1215 WRITE(6,'(A)') 'CommitID : User Build'
1216 ELSE
1217 WRITE(6,'(A)') btag(1:len_trim(btag))
1218 ENDIF
1219 WRITE(6,'(A,A)') 'Reader : ',reader_commit_id(1:reader_commit_id_len)
1220 WRITE(6,'(A,A)') ' '
1221
1222 END
1223
1224!||====================================================================
1225!|| phelpinfo ../starter/source/starter/execargcheck.F
1226!||--- called by ------------------------------------------------------
1227!|| execargcheck ../starter/source/starter/execargcheck.F
1228!||--- calls -----------------------------------------------------
1229!|| my_exit ../starter/source/output/analyse/analyse.c
1230!|| prhelpinfo ../starter/source/starter/execargcheck.F
1231!||====================================================================
1232 SUBROUTINE phelpinfo()
1233C-----------------------------------------------
1234C I m p l i c i t T y p e s
1235C-----------------------------------------------
1236#include "implicit_f.inc"
1237C-----------------------------------------------
1238C L o c a l V a r i a b l e s
1239C-----------------------------------------------
1240 CALL prhelpinfo()
1241
1242 CALL my_exit(0)
1243 END
1244
1245!||====================================================================
1246!|| prhelpinfo ../starter/source/starter/execargcheck.F
1247!||--- called by ------------------------------------------------------
1248!|| execargcheck ../starter/source/starter/execargcheck.F
1249!|| get_file_name_info ../starter/source/system/get_file_name_info.F
1250!|| phelpinfo ../starter/source/starter/execargcheck.F
1251!|| starter0 ../starter/source/starter/starter0.F
1252!||====================================================================
1253 SUBROUTINE prhelpinfo()
1254C-----------------------------------------------
1255C I m p l i c i t T y p e s
1256C-----------------------------------------------
1257#include "implicit_f.inc"
1258C-----------------------------------------------
1259C C o m m o n B l o c k s
1260C-----------------------------------------------
1261#include "build_info.inc"
1262C-----------------------------------------------
1263C L o c a l V a r i a b l e s
1264C-----------------------------------------------
1265 WRITE(6,'(A)') ' '
1266 WRITE(6,'(A,A)') 'RADIOSS Starter version ',vers(1:len_vers)
1267 WRITE(6,'(A)') ' '
1268 WRITE(6,'(A)') 'Command line arguments help: '
1269 WRITE(6,'(A,A)') ' -help / -h : ',
1270 * 'Print this message'
1271 WRITE(6,'(A,A)') ' -version / -v : ',
1272 * 'Print RADIOSS release information'
1273 WRITE(6,'(A,A)') ' -input [FILE] / -i [FILE] : ',
1274 * 'Set RADIOSS Starter input file'
1275 WRITE(6,'(A,A)') ' -nspmd [INTEGER] / -np [INTEGER] : ',
1276 * 'Set Number of RADIOSS SPMD domains '
1277 WRITE(6,'(A,A)') ' -nthread [INTEGER] / -nt [INTEGER] : ',
1278 * 'Set Number of SMP threads per SPMD domain'
1279 WRITE(6,'(A,A)') ' -check : ',
1280 * 'Check run - no restart file written'
1281 WRITE(6,'(A,A)') ' -notrap : ',
1282 * 'Disable error trapping'
1283 WRITE(6,'(a,a)') ' -dynamic_lib [file] / -dylib [file] : ',
1284 * 'set name to the dynamic library for radioss user interface'
1285 WRITE(6,'(a,a)') ' -mdsdir [path] / -mds_libpath [path] : ',
1286#ifdef _WIN32
1287 * 'set directory to mds library(default is %ALTAIR_HOME%/hwsolver/multiscaledesigner/%arch%)'
1288#else
1289 * 'set directory to mds library(default is $altair_home/hwsolver/multiscaledesigner/$arch)'
1290#endif
1291 WRITE(6,'(a,a)') ' -outfile=[path] : ',
1292 * 'set output file directory for all output and created files'
1293 WRITE(6,'(a,a)') ' -hstp_write : ',
1294 * 'Write the xml file hst_input.hstp with the parameters for hyperstudy'
1295 WRITE(6,'(a,a)') ' -hstp_read : ',
1296 * 'Read the xml file hst_input.hstp with the parameters from hyperstudy'
1297 WRITE(6,'(a,a)') ' -rxalea [real value] : ',
1298 * 'activation of nodal random noise with a [value] alea'
1299 WRITE(6,'(a,a)') ' -rseed [real value] : ',
1300 * 'Optional value, set the seed value for nodal random noise'
1301 WRITE(6,'(a,a)') ' -python : ',
1302 * 'python function in model is safe and can be used'
1303 WRITE(6,'(A,A)') ' -checksum_read [rootname] : ',
1304 * 'parse output files for /checksum fingerprints and [rootname].report file'
1305
1306 WRITE(6,'(A)') ' '
1307 WRITE(6,'(A)') ' '
1308 END
1309
void my_exit(int *i)
Definition analyse.c:1038
#define my_real
Definition cppsort.cpp:32
end diagonal values have been computed in the(sparse) matrix id.SOL
#define seed()
Definition macros.h:43
for(i8=*sizetab-1;i8 >=0;i8--)
integer restart_file
Definition check_mod.F:52
logical grp_size_bool
integer grp_size
logical infile_bool
logical outfile_bool
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
Definition noise.F:41
program radioss
Definition radioss.F:34
subroutine report(ih3dreader, n, imvw, wfext, wfext_md)
Definition report.F:34
subroutine prhelpinfo()
subroutine phelpinfo()
subroutine isanargument(arglist, lenlist, arg, isin)
subroutine pexecinfo(idum)
subroutine upcase(string)
subroutine execargcheck(output)
subroutine prexecinfo(idum)
program starter
Definition starter.F:39