34#include "implicit_f.inc"
42#include "remesh_c.inc"
46#include "timeri_c.inc"
51 INTEGER,
INTENT(IN) :: FLAG
53 INTEGER,
INTENT(IN) :: ITHERM
54 INTEGER,
INTENT(IN) :: OUT_ID
55 INTEGER,
INTENT(IN) :: NTIMAX
56 CHARACTER(LEN=9),
INTENT(INOUT) :: TITLES(NTIMAX)
57 REAL,
INTENT(INOUT) :: TABTIME(NTIMAX,PARASIZ)
61 INTEGER :: NF,NFIELDS,FIELDS()
68 fields(1) = 31 ; fields(2) = 32 ; fields(3) = 33 ; fields(4) = 34
70 . flag,out_id,nfields,fields,titles)
76 fields(nf) = macro_timer_contsort
78 fields(nf) = macro_timer_contfor
81 fields(nf) = macro_timer_element
83 fields(nf) = macro_timer_kin
85 fields(nf) = macro_timer_integ
87 fields(nf) = macro_timer_io
89 fields(nf) = macro_timer_p0
91 fields(nf) = macro_timer_asm
92 IF(.NOT.( (idtmins==0).AND.(idtmins_int==0)))
THEN
94 fields(nf) = macro_timer_ams
97 fields(nf) = macro_timer_resol
100 . flag,out_id,nfields,fields,titles)
105 fields(1) = 36 ; fields(2) = 37 ; fields(3) = 38
106 CALL print_block(
"** ADAPTIVE MESH TIME **",tabtime,ntimax,
107 . flag,out_id,nfields,fields,titles)
113 total = tabtime(10,i)+tabtime(11,i)+
114 . tabtime(12,i)+tabtime
115 tabtime(macro_timer_tmp1,i) = total
116 IF(tabtime(1,i) > 0 )
THEN
117 tabtime(macro_timer_tmp2,i) = 100.d0*total/tabtime(1,i)
119 tabtime(macro_timer_tmp2,i) = 0.0d0
122 fields(1) = 10 ; titles(10) = 'forces
'
123 FIELDS(2) = 11 ; TITLES(11) = 'rbyfor'
124 FIELDS(3) = 12 ; TITLES(12) = 'rbyvel
'
125 FIELDS(4) = 13 ; TITLES(13) = 'vel
'
126 FIELDS(5) = MACRO_TIMER_TMP1 ; TITLES(MACRO_TIMER_TMP1) = 'tot
'
127 FIELDS(6) = MACRO_TIMER_TMP2 ; TITLES(MACRO_TIMER_TMP2) = '%
'
129 CALL PRINT_BLOCK("** SPMD COM. TIME **",TABTIME,NTIMAX,
130 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
134.OR.
IF(IDTMINS/=0IDTMINS_INT/=0)THEN
135 FIELDS(1) =61 ; TITLES(61) = 'pcg
'
136 FIELDS(2) =62 ; TITLES(62) = 'paritf
'
137 FIELDS(3) =63 ; TITLES(63) = 'commr
'
138 FIELDS(4) =64 ; TITLES(64) = 'comp_mv
'
139 FIELDS(5) =65 ; TITLES(65) = 'vfi
'
140 FIELDS(6) =80 ; TITLES(80) = 'comm_mv
'
141 FIELDS(7) =70 ; TITLES(70) = 'tot_proj
'
142 FIELDS(8) =71 ; TITLES(71) = 'mat_lt2
'
143 FIELDS(9) =72 ; TITLES(72) = 'mam_nm'
144 FIELDS(10) =73 ; TITLES(73) = 'man_nnm
'
145 FIELDS(11) =74 ; TITLES(74) = 'comp_mv_e
'
146 FIELDS(12) =75 ; TITLES(75) = 'build_m
'
148 CALL PRINT_BLOCK("** AMS TIME **",TABTIME,NTIMAX,
149 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
154 FIELDS(1) = 67 ; TITLES(FIELDS(1)) = 'commdot
'
155 FIELDS(2) = 66 ; TITLES(FIELDS(2)) = 'commv
'
156 FIELDS(3) = 68 ; TITLES(FIELDS(3)) = 'gpu_cpu
'
157 FIELDS(4) = 69 ; TITLES(FIELDS(4)) = 'cpu_gpu
'
159 CALL PRINT_BLOCK("** IMPLICIT PCG **",TABTIME,NTIMAX,
160 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
164 TABTIME(MACRO_TIMER_TMP1,I) = MAX(0.0,TABTIME(8,I)-TABTIME(20,I)
168 TABTIME(MACRO_TIMER_TMP2,I) = MAX(0.0,TABTIME(8,I)+
169 . TABTIME(19,I)+TABTIME(3,I)
170 . -TABTIME(29,I)-TABTIME(76,I))
174 IF( NINTER > 0 ) THEN
175 FIELDS(1) = 15 ; TITLES(FIELDS(1)) = 'bukcrit'
176 fields(2) = 16 ; titles(fields(2)) =
'COMMCRIT'
177 fields(3) = 17 ; titles(fields(3)) =
'BUCKET '
178 fields(4) = 18 ; titles(fields(4)) =
'GFRONT'
179 fields(5) = 19 ; titles(fields(5)) =
'CONTOPT'
180 fields(6) = 20 ; titles(fields(6)) =
'CONTF'
181 fields(7) = macro_timer_tmp1 ;
182 titles(fields(7)) =
'DST'
183 fields(8) = macro_timer_tmp2 ;
184 titles(fields(8)) =
'CE_FORCE'
186 IF(ninter25 > 0)
THEN
187 fields(9) = 106 ; titles(fields(9)) =
'NORML'
188 nfields = nfields + 1
191 IF(ninterfric > 0)
THEN
192 nfields = nfields + 1
193 fields(nfields) = macro_timer_fric ; titles(fields(nfields)) =
'FRIC'
196 CALL print_block(
"** INTERFACE TIME **",tabtime,ntimax,
197 . flag,out_id,nfields,fields,titles)
199 fields(1 )=21 ; titles(fields(1 )) =
'FICOM1'
200 fields(2 )=22 ; titles(fields(2 )) =
'FICOM2'
201 fields(3 )=23 ; titles(fields(3 )) =
'ISDXV1'
202 fields(4 )=24 ; titles(fields(4 )) =
'ISDXV2'
203 fields(5 )=27 ; titles(fields(5 )) =
'TRIMMX'
204 fields(6 )=25 ; titles(fields(6 )) =
'TRIBOX'
205 fields(7 )=30 ; titles(fields(7 )) =
'TRIBUC'
206 fields(8 )=26 ; titles(fields(8 )) =
'TRIGAT'
207 fields(9 )=76 ; titles(fields(9 )) =
'SYNCCOM'
208 fields(10)=29 ; titles(fields(10)) =
'SHOOTING'
209 fields(11)=28 ; titles(fields(11)) =
'INT2_FV'
212 . flag,out_id,nfields,fields,titles)
215 fields(1 )=40 ; titles(fields(1 )) =
'RB_SENS'
216 fields(2 )=41 ; titles(fields(2 )) =
'CLOADS'
217 fields(3 )=42 ; titles(fields(3 )) =
'BCS'
218 fields(4 )=43 ; titles(fields(4 )) =
'RL_RW'
219 fields(5 )=44 ; titles(fields(5 )) =
'FIXVEL'
220 fields(6 )=45 ; titles(fields(6 )) =
'RBE3'
221 fields(7 )=46 ; titles(fields(7 )) =
'GRAV'
224 CALL print_block(
"** KIN COND & TASK0 TIME **",tabtime,ntimax,
225 . flag,out_id,nfields,fields,titles)
227 fields(1 )=47 ; titles(fields(1 )) =
'MANCTR'
228 fields(2 )=50 ; titles(fields(2 )) =
'MONVOL'
229 fields(3 )=52 ; titles(fields(3 )) =
'DAMP'
230 fields(4 )=28 ; titles(fields(4 )) =
'INT2'
234 fields(8 )=49 ; titles(fields(8 )) = 'aux
'
235 FIELDS(9 )=51 ; TITLES(FIELDS(9 )) = 'forints'
237 IF(TABTIME(54,1) > 0 ) THEN
238 NFIELDS = NFIELDS + 1
239 FIELDS(10)=54 ; TITLES(FIELDS(10)) = 'r2r
'
241 IF(TABTIME(55,1) > 0 ) THEN
242 NFIELDS = NFIELDS + 1
243 FIELDS(11)=55 ; TITLES(FIELDS(11)) = 'r2m
'
245 CALL PRINT_BLOCK(" ",TABTIME,NTIMAX,
246 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
248 IF(IALE+IEULER+ITHERM/=0) THEN
249 FIELDS(1) = MACRO_TIMER_ALEMAIN
250 FIELDS(2) = MACRO_TIMER_IFSUB0
251 FIELDS(3) = MACRO_TIMER_MULTIFVM
252 FIELDS(4) = MACRO_TIMER_SPMDCFD
253 FIELDS(5) = MACRO_TIMER_MUSCL
255 CALL PRINT_BLOCK("** ALE TIME **",TABTIME,NTIMAX,
256 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
262 IF(TABTIME(MACRO_TIMER_MONVOL,1) > 0) THEN
263 NFIELDS = NFIELDS + 1
264 FIELDS(NFIELDS) = MACRO_TIMER_MONVOL
265 TITLES(MACRO_TIMER_MONVOL) = 'up
'
267 IF(TABTIME(MACRO_TIMER_FVMBAG,1) > 0) THEN
268 NFIELDS = NFIELDS + 1
269 FIELDS(NFIELDS) = MACRO_TIMER_FVMBAG
270 TITLES(MACRO_TIMER_FVMBAG) = 'fvmesh
'
272 IF(TABTIME(MACRO_TIMER_FVMBAG,1) > 0) THEN
273 NFIELDS = NFIELDS + 1
274 FIELDS(NFIELDS) = MACRO_TIMER_FVMBAG1
275 TITLES(MACRO_TIMER_FVMBAG1) = 'fvbag
'
277 IF(NFIELDS > 0) CALL PRINT_BLOCK("** AIRBAGS **",TABTIME,NTIMAX,
278 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
284 J = MACRO_TIMER_T25SLIDING
285 IF(TABTIME(J,1) > 0) THEN
286 NFIELDS = NFIELDS + 1
288 TITLES(J) = 'sliding
'
290 J = MACRO_TIMER_T25NORM
291 IF(TABTIME(J,1) > 0) THEN
292 NFIELDS = NFIELDS + 1
296 J = MACRO_TIMER_T25STFE
297 IF(TABTIME(J,1) > 0) THEN
298 NFIELDS = NFIELDS + 1
300 TITLES(J) = 'getstif
'
302 J = MACRO_TIMER_T25VOX0
303 IF(TABTIME(J,1) > 0) THEN
304 NFIELDS = NFIELDS + 1
308 J = MACRO_TIMER_T25VOX0E2E
309 IF(TABTIME(J,1) > 0) THEN
310 NFIELDS = NFIELDS + 1
312 TITLES(J) = 'vox0e2e
'
314 J = MACRO_TIMER_T25RNUM
315 IF(TABTIME(J,1) > 0) THEN
316 NFIELDS = NFIELDS + 1
320 J = MACRO_TIMER_T25RNUME
321 IF(TABTIME(J,1) > 0) THEN
322 NFIELDS = NFIELDS + 1
324 TITLES(J) = 'rnume2e
'
326 J = MACRO_TIMER_T25BUC
327 IF(TABTIME(J,1) > 0) THEN
328 NFIELDS = NFIELDS + 1
332 J = MACRO_TIMER_T25BUCE2E
333 IF(TABTIME(J,1) > 0) THEN
334 NFIELDS = NFIELDS + 1
338 J = MACRO_TIMER_T25TRCE
339 IF(TABTIME(J,1) > 0) THEN
340 NFIELDS = NFIELDS + 1
345 IF(NFIELDS > 0) CALL PRINT_BLOCK("**/INTER/TYPE25 **",TABTIME,NTIMAX,
346 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
351 FIELDS(1 )=48 ; TITLES(FIELDS(1 )) = 'sph_tot
'
352 FIELDS(2 )=87 ; TITLES(FIELDS(2 )) = 'sph_sort
'
353 FIELDS(3 )=88 ; TITLES(FIELDS(3 )) = 'sph_forces
'
354 FIELDS(4 )=89 ; TITLES(FIELDS(4 )) = 'sph_other
'
355 FIELDS(5 )=90 ; TITLES(FIELDS(5 )) = 'sph_sort1
'
356 FIELDS(6 )=91 ; TITLES(FIELDS(6 )) = 'comsort1
'
357 FIELDS(7 )=94 ; TITLES(FIELDS(7 )) = 'sph_sort0
'
358 FIELDS(8 )=92 ; TITLES(FIELDS(8 )) = 'comm_sort0
'
359 FIELDS(9 )=93 ; TITLES(FIELDS(9 )) = 'comm_forces
'
361 CALL PRINT_BLOCK("** SPH TIME **",TABTIME,NTIMAX,
362 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
364 IF(TABTIME(MACRO_TIMER_GENH3D,1) > 0 ) THEN
366 FIELDS(1 )=MACRO_TIMER_GENH3D ; TITLES(FIELDS(1 ))= 'total
'
367 FIELDS(2 )=MACRO_TIMER_SPMDH3D; TITLES(FIELDS(2 ))= 'spmd
'
368 FIELDS(3 )=MACRO_TIMER_LIBH3D ; TITLES(FIELDS(3 ))= 'h3dlib
'
369 FIELDS(4 )=MACRO_TIMER_GENH3D1; TITLES(FIELDS(4 ))= 'gpstmax
'
374 CALL PRINT_BLOCK("** H3D ANIMATIONS **",TABTIME,NTIMAX,
375 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
381 FIELDS(1 )=56 ; TITLES(FIELDS(1 )) = 'beg_crit
'
382 FIELDS(2 )=57 ; TITLES(FIELDS(2 )) = 'eof_crit
'
383 FIELDS(3 )=58 ; TITLES(FIELDS(3 )) = 'eof_sort
'
384 FIELDS(4 )=59 ; TITLES(FIELDS(4 )) = 'eof_forces
'
385 FIELDS(5 )=60 ; TITLES(FIELDS(5 )) = 'eof_cycle
'
386 FIELDS(6 )=95 ; TITLES(FIELDS(6 )) = 'eof_sph
'
389 CALL PRINT_BLOCK("** FORCED SYNCH",TABTIME,NTIMAX,
390 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
399!||====================================================================
400!|| print_block ../engine/source/system/timer.F
401!||--- called by ------------------------------------------------------
402!|| print_summary ../engine/source/system/timer.F
403!||====================================================================
404 SUBROUTINE PRINT_BLOCK(TITLE_PART,TABTIME,NTIMAX,
405 . FLAG,OUT_ID,NFIELDS,FIELDS,TITLES)
409#include "implicit_f.inc"
413#include "com01_c.inc"
418 INTEGER, INTENT(IN) :: NTIMAX
419 CHARACTER(LEN=*), INTENT(IN) :: TITLE_PART
420 REAL, INTENT(INOUT) :: TABTIME(NTIMAX,PARASIZ)
421 INTEGER, INTENT(IN) :: FLAG ! 1 : No Min/Max
423 INTEGER, INTENT(IN) :: OUT_ID ! file descriptor
424 INTEGER, INTENT(IN) :: NFIELDS ! number of columns (must be <= 15 )
425 INTEGER, INTENT(IN) :: FIELDS(NFIELDS) ! number of columns
427 CHARACTER(LEN=9), INTENT(IN) :: TITLES(NTIMAX) ! number of columns
431 CHARACTER(LEN=22) :: FORMAT1="(1x,A4,1x,15(1x,E9.4))"
432 CHARACTER(LEN=22) :: FORMAT2="(1x,A5,1x,15(1x,A9))"
433 CHARACTER(LEN=22) :: FORMAT3="(17x,A20)"
434 CHARACTER(LEN=22) :: FORMAT4="(I4,2x,15(1x,E9.4))"
435 CHARACTER(LEN=22) :: FORMAT5="(A4,2x,15(1x,E9.4))"
437 DOUBLE PRECISION :: DMIN(NFIELDS)
438 DOUBLE PRECISION :: DMAX(NFIELDS)
439 DOUBLE PRECISION :: AVG(NFIELDS)
441 CHARACTER(LEN=9) :: TITLES_LOC(NFIELDS) ! number of columns
442 DOUBLE PRECISION :: ARRAY(15)
446 TITLES_LOC(j) = TITLES(FIELDS(J))
450 WRITE(OUT_ID,FORMAT3) TITLE_PART
452 WRITE(OUT_ID,FORMAT2) "#PROC",TITLES_LOC(1:NFIELDS)
455 ARRAY(J) = TABTIME(FIELDS(J),I)
457 WRITE(OUT_ID,FORMAT4) I,ARRAY(1:NFIELDS)
460.AND.
IF(FLAG==2 NSPMD > 2) THEN
463 DMAX(I)=TABTIME(FIELDS(I),1)
464 DMIN(I)=TABTIME(FIELDS(I),1)
468 AVG(J)=AVG(J)+TABTIME(FIELDS(J),I)
469 DMIN(J)=MIN(DMIN(J) ,DBLE(TABTIME(FIELDS(J),I)))
470 DMAX(J)=MAX(DMAX(J) ,DBLE(TABTIME(FIELDS(J),I)))
478 WRITE(OUT_ID,FORMAT2) " ",TITLES_LOC(1:NFIELDS)
479 WRITE(OUT_ID,FORMAT5) "MIN",DMIN(1:NFIELDS)
480 WRITE(OUT_ID,FORMAT5) "MAX",DMAX(1:NFIELDS)
481 WRITE(OUT_ID,FORMAT5) "AVG",AVG(1:NFIELDS)
486!||====================================================================
487!|| printime ../engine/source/system/timer.F
488!||--- called by ------------------------------------------------------
489!|| resol ../engine/source/engine/resol.F
490!||--- calls -----------------------------------------------------
491!|| close_c ../common_source/tools/input_output/write_routtines.c
492!|| cur_fil_c ../common_source/tools/input_output/write_routtines.c
493!|| elapstime ../engine/source/system/timer.F
494!|| fseek_end_c ../common_source/tools/input_output/write_routtines.c
495!|| get_mem_map_var ../engine/source/system/timer.F
496!|| map_memory ../common_source/comm/memory_use_c.c
497!|| open_c ../common_source/tools/input_output/write_routtines.c
498!|| print_summary ../engine/source/system/timer.F
499!|| rad_spmd_recv ../engine/source/mpi/generic/rad_spmd_recv.F
500!|| rad_spmd_send ../engine/source/mpi/generic/rad_spmd_send.F
501!|| spmd_glob_isum9 ../engine/source/mpi/interfaces/spmd_th.F
502!|| write_dpdb ../common_source/tools/input_output/write_db.F
503!||--- uses -----------------------------------------------------
504!|| inoutfile_mod ../common_source/modules/inoutfile_mod.F
505!|| output_mod ../common_source/modules/output/output_mod.F90
506!|| time_mod ../engine/share/modules/time_mod.F
507!|| timer_mod ../engine/source/system/timer_mod.F90
508!||====================================================================
509 SUBROUTINE PRINTIME(T,ITHERM,OUTPUT)
521#include "implicit_f.inc"
525#include "com01_c.inc"
526#include "com04_c.inc"
527#include "scr05_c.inc"
530#include "timerc_c.inc"
531#include "timeri_c.inc"
532!#include "timerr_c.inc"
533#include "units_c.inc"
534#include "filescount_c.inc"
535 COMMON /ICLOCK/CLOCK0
537 COMMON /RCLOCK/ELAPSED
538 DOUBLE PRECISION ELAPSED
542 TYPE(TIMER_), INTENT(INOUT) :: T
543 INTEGER ,INTENT(IN) :: ITHERM
544 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
548 INTEGER I, NPROC, MSGTAG, IRSIZE, J, IH, IM, IS
549 DOUBLE PRECISION SECS, TOTAL, CUMUL(MAX_NB_TIMER),
550 . AVERAGE(MAX_NB_TIMER), DEVIATION(MAX_NB_TIMER),
551 . DMIN(MAX_NB_TIMER), DMAX(MAX_NB_TIMER),CUMUL_MAT,CUMUL_ELEM,
552 . CUMUL_FAIL,ARRAY(NSPMD),X_MINVALUE,X_MAXVALUE,Y_MAXVALUE
553 INTEGER MEMUSE(NSPMD),MEM_L,MMIN,MMAX,MTOT,MAVR,
554 . OUTSIZE,RFILESIZE,NB_INTERV
555 INTEGER VMPEAK, VMSIZE,VMRSS,VMHWM, VMSTK,MEMSTAT(5,NSPMD),
557 CHARACTER(LEN=9) TITLES(MAX_NB_TIMER)
558 INTEGER FIELDS(11),NFIELDS
560 INTEGER :: NF,IJK,IJKL,LEN_RST_NAME
564 INTEGER :: CURRENT_RUN,OFFSET
565 INTEGER, DIMENSION(2148) :: RST_NAME
566 INTEGER :: LEN_TMP_NAME
567 CHARACTER(len=4096) :: TMP_NAME
569 INTEGER, PARAMETER :: INTSIZE = 4
570 REAL, DIMENSION(:,:), ALLOCATABLE :: CPUTIME
571 REAL, DIMENSION(:,:), ALLOCATABLE :: SYSTIME
572 REAL, DIMENSION(:,:), ALLOCATABLE :: REALTIME
575 TITLES(MACRO_TIMER_RESOL ) = "RESOL"
576 TITLES(MACRO_TIMER_CONTSORT ) = "CONTSORT"
577 TITLES(MACRO_TIMER_CONTFOR ) = "CONTFOR"
578 TITLES(MACRO_TIMER_ELEMENT ) = "ELEMENT"
579 TITLES(MACRO_TIMER_KIN ) = "KINCOND"
580 TITLES(MACRO_TIMER_INTEG ) = "INTEG"
581 TITLES(MACRO_TIMER_P0 ) = "T0"
582 TITLES(MACRO_TIMER_IO ) = "IO"
583 TITLES(MACRO_TIMER_ASM ) = "ASM"
584 TITLES(MACRO_TIMER_AMS ) = "SMS"
587 TITLES(MACRO_TIMER_ALEMAIN ) = "ALEMAIN"
588 TITLES(MACRO_TIMER_IFSUB0 ) = "IFSUB0"
589 TITLES(MACRO_TIMER_MULTIFVM ) = "MULTIFVM"
590 TITLES(MACRO_TIMER_SPMDCFD ) = "SPMDCFD"
591 TITLES(MACRO_TIMER_MUSCL ) = "MUSCL"
594 TITLES(31) = '[k]setup
'
595 TITLES(32) = '[m]setup
'
597 TITLES(34) = 'imp_tot
'
598 TITLES(36) = 'criter
'
614 CALL MAP_MEMORY(VMPEAK, VMSIZE,VMRSS,VMHWM, VMSTK)
620 ALLOCATE(CPUTIME(MAX_NB_TIMER,NSPMD))
621 ALLOCATE(SYSTIME(MAX_NB_TIMER,NSPMD))
622 ALLOCATE(REALTIME(MAX_NB_TIMER,NSPMD))
624 DO I = 1, MAX_NB_TIMER
626 CPUTIME(I,1) = T%CPUTIME(I)
627 SYSTIME(I,1) = T%SYSTIME(I)
628 REALTIME(I,1) = T%REALTIME(I)
631 MEMUSE(ISPMD+1)=VMPEAK
632 MEMSTAT(1,ISPMD+1) = VMPEAK
633 MEMSTAT(2,ISPMD+1) = VMSIZE
634 MEMSTAT(3,ISPMD+1) = VMRSS
635 MEMSTAT(4,ISPMD+1) = VMHWM
636 MEMSTAT(5,ISPMD+1) = VMSTK
644 CALL RAD_SPMD_SEND(T%CPUTIME,MAX_NB_TIMER*IRSIZE,0,IT_SPMD,
645 . MSGTAG+ISPMD+1,INTSIZE)
646 CALL RAD_SPMD_SEND(T%SYSTIME,MAX_NB_TIMER*IRSIZE,0,IT_SPMD,
647 . MSGTAG+ISPMD+1,INTSIZE)
648 CALL RAD_SPMD_SEND(T%REALTIME,MAX_NB_TIMER*IRSIZE,0,IT_SPMD,
649 . MSGTAG+ISPMD+1,INTSIZE)
652 CALL RAD_SPMD_RECV(CPUTIME(1,I),MAX_NB_TIMER*IRSIZE,I-1,IT_SPMD,
654 CALL RAD_SPMD_RECV(SYSTIME(1,I),MAX_NB_TIMER*IRSIZE,I-1,IT_SPMD,
656 CALL RAD_SPMD_RECV(REALTIME(1,I),MAX_NB_TIMER*IRSIZE,I-1,IT_SPMD,
674 CALL RAD_SPMD_SEND( MEMUSE(ISPMD+1),1*IRSIZE,0,IT_SPMD,
675 . MSGTAG+ISPMD+1,INTSIZE)
676 CALL RAD_SPMD_SEND( VMSIZE,1*IRSIZE,0,IT_SPMD,
677 . MSGTAG+ISPMD+1,INTSIZE)
678 CALL RAD_SPMD_SEND( VMRSS,1*IRSIZE,0,IT_SPMD,
679 . MSGTAG+ISPMD+1,INTSIZE)
680 CALL RAD_SPMD_SEND( VMHWM,1*IRSIZE,0,IT_SPMD,
681 . MSGTAG+ISPMD+1,INTSIZE)
682 CALL RAD_SPMD_SEND( VMSTK,1*IRSIZE,0,IT_SPMD,
683 . MSGTAG+ISPMD+1,INTSIZE)
686 CALL RAD_SPMD_RECV(MEMUSE(I),1*IRSIZE,I-1,IT_SPMD,
688 MEMSTAT(1,I) = MEMUSE(I)
689 CALL RAD_SPMD_RECV(MEMSTAT(2,I),1*IRSIZE,I-1,IT_SPMD,
691 CALL RAD_SPMD_RECV(MEMSTAT(3,I),1*IRSIZE,I-1,IT_SPMD,
693 CALL RAD_SPMD_RECV(MEMSTAT(4,I),1*IRSIZE,I-1,IT_SPMD,
695 CALL RAD_SPMD_RECV(MEMSTAT(5,I),1*IRSIZE,I-1,IT_SPMD,
701 IF(MEMSTAT(4,1)/=-1) THEN
703 ELSEIF(MEMSTAT(1,1)/=-1) THEN
705 ELSEIF(MEMSTAT(2,1)/=-1) THEN
707 ELSEIF(MEMSTAT(3,1)/=-1) THEN
710 MMIN = MEMSTAT(INDICE,1)
711 MMAX = MEMSTAT(INDICE,1)
712 MTOT = MEMSTAT(INDICE,1)
714 IF (MMIN > MEMSTAT(INDICE,I) ) THEN
715 MMIN = MEMSTAT(INDICE,I)
717 IF (MMAX < MEMSTAT(INDICE,I) ) THEN
720 MTOT = MTOT+ MEMSTAT(INDICE,I)
729 ELSEIF(VMPEAK/=-1) THEN
731 ELSEIF(VMSIZE/=-1) THEN
743 IF(NSPMD > 1)CALL SPMD_GLOB_ISUM9(RESTARTFILESIZE,1)
745 IF(NSPMD > 1)CALL SPMD_GLOB_ISUM9(MULTIRESTS,26)
753 WRITE(ISTDO,*)' ** cpu user time **
'
756 CALL PRINT_SUMMARY(1,MAX_NB_TIMER,CPUTIME,TITLES,ISTDO,ITHERM)
759 WRITE(IOUT,*)' ** cpu user time **
'
763 CALL PRINT_SUMMARY(1,MAX_NB_TIMER,CPUTIME,TITLES,IOUT,ITHERM)
775 CUMUL_MAT = CUMUL_MAT +CPUTIME(35,I)
776 CUMUL_ELEM= CUMUL_ELEM+CPUTIME(3,I)
777 CUMUL_FAIL= CUMUL_FAIL+CPUTIME(121,I)
781 WRITE(IOUT,*)' ** material laws cost **
'
784 WRITE(ISTDO,*)' ** material laws cost **
'
786 WRITE(IOUT, '(a)
')' #PROC ELEM COST MAT COST FAIL COST'
787 WRITE(istdo,
'(A)')
' #PROC ELEM COST MAT COST FAIL COST'
789 WRITE(iout,
'(I4,3x,E9.4,3x,E9.4,3x,E9.4)') i,cputime(3,i),cputime(35,i),cputime(121,i)
790 WRITE(istdo,
'(I4,3x,E9.4,3x,E9.4,3x,E9.4)') i,cputime(3,i),cputime(35,i),cputime(121,i)
794 WRITE(iout,'(a,e9.4)
') ' total element cost..............:
',CUMUL_ELEM
795 WRITE(IOUT,'(a,e9.4)
') ' total material cost.............:
',CUMUL_MAT
796 WRITE(IOUT,'(a,e9.4)
') ' total fail cost.................:
',CUMUL_FAIL
798 WRITE(ISTDO,'(a,e9.4)
') ' total element cost..............:
',CUMUL_ELEM
799 WRITE(ISTDO,'(a,e9.4)
') ' total material cost.............:
',CUMUL_MAT
800 WRITE(ISTDO,'(a,e9.4)
') ' total fail cost.................:
',CUMUL_FAIL
809 DO I = 1, MAX_NB_TIMER
813 DO J = 1, MAX_NB_TIMER
814 CUMUL(J) = CUMUL(J) + CPUTIME(J,I)
817.AND.
IF(IDTMINS==0IDTMINS_INT==0)THEN
818 TOTAL = CUMUL(1)-CUMUL(2)-CUMUL(8)-CUMUL(3)-CUMUL(4)-CUMUL(5)
819 - -CUMUL(9)-CUMUL(MACRO_TIMER_ALEMAIN)
821 TOTAL = CUMUL(1)-CUMUL(2)-CUMUL(8)-CUMUL(3)-CUMUL(4)-CUMUL(5)
822 - -CUMUL(9)-CUMUL(39)-CUMUL(MACRO_TIMER_ALEMAIN)
824 IF(CUMUL(1)<=ZERO)CUMUL(1)=EM10
830 . ' ** cumulative cpu time summary **
'
832 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' contact sorting.............:
',
833 + CUMUL(2),100*CUMUL(2)/CUMUL(1),' %
'
834 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' contact forces..............:
',
835 + CUMUL(8),100*CUMUL(8)/CUMUL(1),' %
'
837 * WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' ..including contact normals:
',
838 * CUMUL(106),100*CUMUL(106)/CUMUL(1),' %
'
839 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' element forces............
',
840 + CUMUL(3),100*CUMUL(3)/CUMUL(1),' %
'
841 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' kinematic cond..............:
',
842 + CUMUL(4),100*CUMUL(4)/CUMUL(1),' %
'
843 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' integration...........
',
844 + CUMUL(5),100*CUMUL(5)/CUMUL(1),' %
'
845 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' assembling..................:
',
846 + CUMUL(9),100*CUMUL(9)/CUMUL(1),' %
'
847.OR.
IF(IDTMINS/=0IDTMINS_INT/=0)THEN
848 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' ams.........................:
',
849 + CUMUL(39),100*CUMUL(39)/CUMUL(1),' %
'
851 IF(IALE+IEULER+ITHERM/=0) THEN
852 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' ale.........................:
',
853 + CUMUL(MACRO_TIMER_ALEMAIN),
854 + 100*CUMUL(MACRO_TIMER_ALEMAIN)/CUMUL(1),' %
'
857 WRITE(ISTDO,'(a,e9.4,3x,f6.2,a)
')' others(including i/o)......:
',
858 + TOTAL,100*TOTAL/CUMUL(1),' % '
859 WRITE(istdo,
'(A,E9.4,3x,F6.2,A)')
' TOTAL.......................: ',
860 + cumul(1),100*cumul(1)/cumul(1),
' % '
873 .
' ** CUMULATIVE CPU TIME SUMMARY **'
875 WRITE(iout,'(a,e9.4,3x,f6.2,a)
')' contact sorting.............:
',
876 + CUMUL(2),100*CUMUL(2)/CUMUL(1),' %
'
877 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' contact forces....
',
878 + CUMUL(8),100*CUMUL(8)/CUMUL(1),' %
'
880 * WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' .. including contact normals:
',
881 * CUMUL(106),100*CUMUL(106)/CUMUL(1),' %
'
882 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' element forces..............:
',
883 + CUMUL(3),100*CUMUL(3)/CUMUL(1),' %
'
884 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' kinematic cond..............:
',
885 + CUMUL(4),100*CUMUL(4)/CUMUL(1),' %
'
886 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' integration.................:
',
887 + CUMUL(5),100*CUMUL(5)/CUMUL(1),' %
'
888 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' assembling..................:
',
889 + CUMUL(9),100*CUMUL(9)/CUMUL(1),' %
'
890.OR.
IF(IDTMINS/=0IDTMINS_INT/=0)THEN
891 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' ams.........................:
',
892 + CUMUL(39),100*CUMUL(39)/CUMUL(1),' %
'
894 IF(IALE+IEULER+ITHERM/=0) THEN
895 WRITE(IOUT,'(a,e9.4,3x,f6.2
')' ale.........................:
',
896 + CUMUL(MACRO_TIMER_ALEMAIN)
897 + ,100*CUMUL(MACRO_TIMER_ALEMAIN)/CUMUL(1),' %
'
899 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' others(including i/o)......:
',
900 + TOTAL,100*TOTAL/CUMUL(1),' %
'
901 WRITE(IOUT,'(a,e9.4,3x,f6.2,a)
')' total.......................:
',
902 + CUMUL(1),100*CUMUL(1)/CUMUL(1),' %
'
909 WRITE(IOUT,*)' ** elapsed time **
'
912 CALL PRINT_SUMMARY(2,MAX_NB_TIMER,REALTIME,TITLES,IOUT,ITHERM)
916 WRITE(IOUT,*)' ** additional debug timers(2) **
'
920 . REALTIME(96,I),REALTIME(97,I),REALTIME(98,I),REALTIME(99,I),
921 . REALTIME(100,I),REALTIME(101,I),REALTIME(102,I)
928 . ' ** memory usage statistics **
'
930 WRITE(ISTDO,'(a,a,i8,a)
')' total memory used
',
931 + '.........................:
',MTOT,' mb'
932 WRITE(istdo,
'(A,A,I8,A)')
' MAXIMUM MEMORY PER PROCESSOR' ,
933 *
'...............: ', mmax,
' MB'
934 WRITE(istdo,
'(A,A,I8,A)')
' MINIMUM MEMORY PER PROCESSOR',
935 *
'...............: ',mmin,
' MB'
936 WRITE(istdo,'(a,a,i8,a)
')' average memory per processor
',
937 * '...............:
', MAVR,' mb
'
941 WRITE(ISTDO,'(a)
') ' #PROC MEMORY USED'
943 WRITE(istdo,
'(I4,A,I8,A)') i,
' ',memuse(i),
' MB'
951 .
' ** MEMORY USAGE STATISTICS **'
953 WRITE(iout,
'(A,A,I8,A)')
' TOTAL MEMORY USED ',
954 +
'.........................: ',mtot,
' MB'
955 WRITE(iout,
'(A,A,I8,A)')
' MAXIMUM MEMORY PER PROCESSOR' ,
956 *
'...............: ', mmax,
' MB'
957 WRITE(iout,
'(A,A,I8,A)')
' MINIMUM MEMORY PER PROCESSOR',
958 *
'...............: ',mmin,
' MB'
959 WRITE(iout,
'(A,A,I8,A)')
' AVERAGE MEMORY PER PROCESSOR',
960 *
'...............: ', mavr,
' MB'
973 IF(got_mem_map==1 .OR. imonm > 0)
THEN
974 WRITE(iout,
'(A)')
' ** PROCESS MEMORY MAPPING'
976 WRITE(iout,
'(A)')
' #PROC VMPEAK VMSIZE VMRSS VMHWM VMSTK'
978 WRITE(iout,
'(I4,A,I10,A,I10,A,I10,A,I10,A,I10)')
979 * i,
' ',memstat(1,i),
' ',memstat(2,i),
' ',memstat(3,i),
' ',
980 * memstat(4,i),
' ',memstat(5,i)
991 h3dtotalsize = h3dtotalsize*1024
992 outsize=animtotalsize+thfilesize+outpfilesize+h3dtotalsize
994 outsize = outsize+multithfilesize(i)
996 rfilesize=restartfilesize
998 rfilesize = rfilesize+multirests(i)
1000 totalfilecount = (outsize)+rfilesize+mumpsfilesize+
1002 totalfilecount = totalfilecount/1024
1003 outsize = outsize / 1024
1004 rfilesize = rfilesize / 1024
1005 mumpsfilesize = mumpsfilesize / 1024
1006 bcsfilesize = bcsfilesize / 1024
1008 .
' ** DISK USAGE STATISTICS **'
1010 WRITE(istdo,
'(A,A,I10,A)')
' TOTAL DISK SPACE USED ',
1011 *
'.....................: ',totalfilecount,
1013 WRITE(istdo,
'(A,A,I10,A)')
' ANIMATION/H3D/TH/OUTP SIZE ',
1014 *
'................: ',outsize,
1016 WRITE(istdo,
'(A,A,I10,A)')
' RESTART FILE SIZE ',
1017 * '.........................:
',
1019 IF (MUMPSFILESIZE > 0)THEN
1020 WRITE(ISTDO,'(a,a,i10,a)
')' mumps internal file usage
',
1021 * '.................:
',
1022 * MUMPSFILESIZE,' mb
'
1024 IF (BCSFILESIZE > 0) THEN
1025 WRITE(ISTDO,'(a,a,i10,a)
')' bcs internal file usage
',
1026 * '...................:
',
1035 . ' ** disk usage statistics **
'
1037 WRITE(IOUT,'(a,a,i10,a)
')' total disk space used
',
1038 * '.....................:
',TOTALFILECOUNT,
1040 WRITE(IOUT,'(a,a,i10,a)
')' animation/h3d/th/outp
SIZE ',
1041 * '................:
',OUTSIZE,
1043 WRITE(IOUT,'(a,a,i10,a)
')' restart file
SIZE ',
1044 * '.........................:
',
1046 IF (MUMPSFILESIZE > 0)THEN
1047 WRITE(IOUT,'(a,a,i10,a)
')' mumps internal file usage
',
1048 * '.................:
',
1049 * MUMPSFILESIZE/1024,' mb
'
1051 IF (BCSFILESIZE > 0) THEN
1052 WRITE(IOUT,'(a,a,i10,a)
')' bcs internal file usage
',
1053 * '...................:
',
1054 * BCSFILESIZE/1024,' mb
'
1062 CALL ELAPSTIME(T,SECS)
1063 CALL DATE_AND_TIME(DATE,TIME)
1064 OUTPUT%CHECKSUM%DATE = DATE
1065 OUTPUT%CHECKSUM%TIME = TIME
1066! ---------------------------
1068 CURRENT_RUN = GLOBAL_COMP_TIME%RUN_NBR
1069 GLOBAL_COMP_TIME%ENGINE_TIME(CURRENT_RUN) = SECS
1070 LEN_RST_NAME = LEN_TRIM(GLOBAL_COMP_TIME%RST_NAME)
1071 LEN_TMP_NAME = OUTFILE_NAME_LEN + LEN_RST_NAME
1072 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//GLOBAL_COMP_TIME%RST_NAME(1:LEN_RST_NAME)
1074 DO I = 1, LEN_TMP_NAME
1075 RST_NAME(I) = ICHAR(TMP_NAME(I:I))
1078 INQUIRE(FILE=TMP_NAME(1:LEN_TMP_NAME), EXIST=BOOL_FILE)
1079! check if *_0000.rst exists
1082 CALL OPEN_C(RST_NAME,LEN_TMP_NAME,2)
1083! write the starter + engine elapsed time
1084 OFFSET= - STORAGE_SIZE(GLOBAL_COMP_TIME%ENGINE_TIME(CURRENT_RUN))/8
1085 CALL FSEEK_END_C(OFFSET)
1086 CALL WRITE_DPDB(GLOBAL_COMP_TIME%ENGINE_TIME(CURRENT_RUN),1)
1090! ---------------------------
1099 IH=INT(SECS/3600.0D0)
1100 IM=INT((SECS-IH*3600.0D0)/60.0D0)
1101 IS=INT(SECS-IH*3600.0D0-IM*60.0D0)
1104 . ' ** compute time information **
'
1106 . ' ** current engine **
'
1109 WRITE(IOUT,6200)STARTDATE(1:4),STARTDATE(5:6),STARTDATE(7:8),
1110 . STARTTIME(1:2),STARTTIME(3:4),STARTTIME(5:6)
1111 WRITE(IOUT,6300)DATE(1:4),DATE(5:6),DATE(7:8),
1112 . TIME(1:2),TIME(3:4),TIME(5:6)
1115 WRITE(ISTDO,6000)SECS
1116 WRITE(ISTDO,6100)IH,IM,IS
1117.AND.
IF(NPROC>1SECS>ZERO)WRITE(ISTDO,8000)CUMUL(1)/SECS
1119 WRITE(IOUT,6000)SECS
1120 WRITE(IOUT,6100)IH,IM,IS
1121.AND.
IF(NPROC>1SECS>ZERO)WRITE(IOUT,8000)CUMUL(1)/SECS
1123 1000 FORMAT(' ** processor number **
',16(I8,5x,"%",2x))
1124 2000 FORMAT(' #PROC ','CONT.SORT ','CONT. F ','ELEMENT ',
1125 .
'KIN.COND. ',
'INTEGR.',
' I/O ',
'TASK0 ',
1126 .
'ASSEMB. ',
'RESOL ')
1127 2001
FORMAT(
' #PROC ',
'CONT.SORT ',
'CONT. F ',
'ELEMENT ',
1128 .
'KIN.COND. ',
'INTEGR.',
' I/O ',
'TASK0 ',
1129 .
'ASSEMB. ',
'AMS ',
'RESOL ')
1130 2050
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1131 . 1x,e9.4,1x,e9.4,1x,e9.4)
1132 2051
FORMAT(i4,3x,f6.2,a,1x,f6.2,a,1x,f6.2,a,1x,f6.2,a,1x,f6.2,a,
1133 . 1x,f6.2,a,1x,f6.2,a,1x,f6.2,a,1x,f6.2,a)
1134 2055
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1135 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1136 2057
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1137 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1138 2100
FORMAT(
' #PROC ',
'CONT.SORT ',
'CONT. F ','element
',
1139 . 'kin.cond.
','integr.
',' i/o
','task0
',
1140 . 'assemb.
','resol ')
1141 2101 FORMAT(' #PROC ','CONT.SORT ','CONT. F ','ELEMENT ',
1142 .
'KIN.COND. ',
'INTEGR.',
' I/O ',
'TASK0 ',
1143 .
'ASSEMB. ' ,
'AMS ',
'RESOL ')
1144 2102
FORMAT(
' ',
'CONT.SORT ',
'CONT. F ',
'ELEMENT ',
1145 .
'KIN.COND. ',
'INTEGR.',
' I/O ',
'TASK0 ',
1146 .
'ASSEMB. ',
'RESOL ')
1147 2103
FORMAT(
' ',
'CONT.SORT ',
'CONT. F ',
'ELEMENT ',
1148 .
'KIN.COND. ',
'INTEGR.',
' I/O ',
'TASK0 ',
1149 .
'ASSEMB. ' ,
'AMS ',
'RESOL ')
1150 2110
FORMAT(
' #PROC ',
'[K]SETUP ',
'[M]SETUP ',
'IMPL.SOLV ',
1152 2120
FORMAT(
' #PROC ',
' COMM DOT',
' COMM V ',
'COMM GPU>CPU ',
1154 2121
FORMAT(
' ',
' COMM DOT',
' COMM V ',
'COMM GPU>CPU ',
1156 2125
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1157 2126
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1158 2150
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,
1159 . e9.4,1x,e9.4,1x,e9.4)
1160 2151
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,
1161 . e9.4,1x,e9.4,1x,e9.4)
1162 2155
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1163 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1164 2156
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1165 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1166 2157
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1167 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1168 2158
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1169 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1170 2160
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1171 2200
FORMAT(
' #PROC ',
'CRITER ',
'ADAPT FOR ',
'ADAPT VEL ')
1172 2201
FORMAT(
' ',
'CRITER ',
'ADAPT FOR ',
'ADAPT VEL ')
1173 2250
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4)
1174 2251
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4)
1175 3000
FORMAT(
' #PROC ',
'FORCES ',
'RBY.FOR. ',
'RBY.VEL. ',
1176 .
'VELOCITIES',
' TOTAL ',
'% CPU')
1177 3001
FORMAT(
' ',
'FORCES ',
'RBY.FOR. ',
'RBY.VEL. ',
1178 .
'VELOCITIES',
' TOTAL ')
1179 3050
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,2x,f6.2)
1180 3051
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1181 3330
FORMAT(
' #PROC ',
' PCG ',
' PARIT F ',
' COMM R ',
1182 .
' COMP M.V ',
' COMM VFI ',
' COMM M.V ',
' TOT PROJ ',
1183 .
' MAV_LT2 ',
' MAM_NM ',
' MAV_N,MN ',
' COMP MV/E',
1185 3331
FORMAT(
' ',
' PCG ',
' PARIT F ',
' COMM R ',
1186 .
' COMP M.V ',
' COMM VFI ',
' COMM M.V ',
' TOT PROJ ',
' MAV_LT2 ',
1187 .
' MAM_NM ',
' MAV_N,MN ',
' COMP MV/E',
' BUILD M ')
1188 3335
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1189 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1190 3336
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,
1191 . 1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1192 4000
FORMAT(
' #PROC ',
'BUCKCRIT '' COMMCRIT',
' BUCKET ',
1193 .
' GFRONT ',
' CONT.OPT ',
' CONT.F** ',
1194 .
' CONT.DST ',
' C+E FORCE',
' CONT.NORML')
1195 4001
FORMAT(
' ',
'BUCKCRIT ',
' COMMCRIT',
' BUCKET ',
1196 .
' GFRONT ',
' CONT.OPT ',
' CONT.F** ',
1197 .
' CONT.DST ',
' C+E FORCE')
1198 4050
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,
1199 . e9.4,1x,e9.4,1x,e9.4)
1200 4051
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,
1202 4500
FORMAT(
' #PROC ',
'RB+SENS ',
' CLOADS ',
' BCS ',
1203 .
' RL+RW ',
' FIXVEL ',
' RBE3 ',
' GRAV')
1204 4501
FORMAT(
' ',
'RB+SENS ',
' CLOADS ',
' BCS ',
1205 .
' RL+RW ',
' FIXVEL ',
' RBE3 ',
' GRAV')
1206 4550
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,2x,e9.4,1x,
1207 . e9.4,1x,e9.4,1x,e9.4)
1208 4551
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,2x,e9.4,1x,
1209 . e9.4,1x,e9.4,1x,e9.4)
1210 5000
FORMAT(
' #PROC ',
'FICOM1 ',
' FICOM2 ',
' ISDXV1 '
1211 .
' ISDXV2 ',
' TRI MMX**',
' TRI BOX ',
1212 .
' TRI BUC**',
' TRI GAT**',
' SYNC COM ',
1213 .
' SHOOTING ',
' INT2 F+V')
1214 5001
FORMAT(
' ',
'FICOM1 ',
' FICOM2 ',' isdxv1
',
1215 . ' isdxv2
',' tri mmx**
',' tri box
',
1216 . ' tri buc**
',' tri gat**
',' sync com
',
1217 . ' shooting
',' int2 f+v
')
1218 5050 FORMAT(I4,3x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,
1219 + 1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4)
1220 5051 FORMAT(1x,A4,2x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,
1221 + 1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4)
1222 5500 FORMAT(' #PROC ','MANCTR ',' MONVOL ',' DAMP ',
1223 .
' INT2* ',
' FIXVEL* ',
' CLOADS* ',
1224 .
' DT2 ',
' AUX ',
' FORINTS ',
1226 5501
FORMAT(
' ',
'MANCTR ',
' MONVOL ',' damp
',
1227 . ' int2*
',' fixvel*
',' cloads*
',
1230 5550 FORMAT(I4,3x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,
1231 + 1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,
1233 5551 FORMAT(1x,A4,2x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,
1234 + 1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,1x,E9.4,
1236 5600 FORMAT(' #PROC ',' SPH/TOTAL',' SPH/SORT ','SPH/FORCES',
1237 .
' SPH/OTHER',
' SPH/SORT1',
' COMM.SORT1',
' SPH/SORT0',
1238 .
' COMM.SORT0',
' COMM.FORCES')
1239 5601
FORMAT(
' ',
' SPH/TOTAL',
' SPH/SORT ''SPH/FORCES',
1240 .
' SPH/OTHER',
' SPH/SORT1',
' COMM.SORT1',
' SPH/SORT0',
1241 .
' COMM.SORT0',
' COMM.FORCES')
1242 6000
FORMAT(
' ELAPSED TIME =',f14.2,
' s')
1243 6100
FORMAT(
' ',i8,
':',i2.2,
':',i2.2)
1244 6200
FORMAT(
' EXECUTION STARTED .........................: ',
1245 . a4,
'/',a2,
'/',a2,
' ',a2,
':',a2,
':',a2)
1246 6300
FORMAT(
' EXECUTION COMPLETED .......................: ',
1247 . a4,
'/',a2,
'/',a2,
' ',a2,
':',a2,
':',a2)
1248 6500
FORMAT(
' #PROC ',
'BEG CRIT ',
'EOF CRIT ',
'EOF SORT ',
1249 .
' EOF FORCE',
' EOF CYCLE',
' EOF SPH')
1250 6501
FORMAT(
' ',
'BEG CRIT ',
'EOF CRIT ',
'EOF SORT ',
1251 .
' EOF FORCE',
' EOF CYCLE',
' EOF SPH')
1252 6550
FORMAT(i4,3x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1253 6551
FORMAT(1x,a4,2x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4,1x,e9.4)
1254 8000
FORMAT(
' ESTIMATED SPEEDUP=',f14.2)
1273#include "implicit_f.inc"
1277#include "units_c.inc"
1281 INTEGER :: I,IJK,IJKL,CURRENT_RUN
1282 REAL(kind=8) :: total_time
1283 INTEGER,
DIMENSION(GLOBAL_COMP_TIME%RUN_NBR+2) :: IH_TAB,IM_TAB,IS_TAB
1291 is_tab(i)=int(
global_comp_time%ENGINE_TIME(i)-ih_tab(i)*3600.0d0-im_tab(i)*60.0d0)
1295 im_tab(ijk)=int((
global_comp_time%STARTER_TIME-ih_tab(ijk)*3600.0d0)/60.0d0)
1296 is_tab(ijk)=int(
global_comp_time%STARTER_TIME-ih_tab(ijk)*3600.0d0-im_tab(ijk)*60.0d0)
1299 ih_tab(ijkl)=int(total_time/3600.0d0)
1300 im_tab(ijkl)=int((total_time-ih_tab(ijkl)*3600.0d0)/60.0d0)
1301 is_tab(ijkl)=int(total_time-ih_tab(ijkl)*3600-im_tab(ijkl)*60.0d0)
1305 .
' ** COMPUTE RUNTIME INFORMATION SUMMARY **'
1307 WRITE(iout,100)
global_comp_time%STARTER_TIME,ih_tab(ijk),im_tab(ijk),is_tab
1309 WRITE(iout,101) i,
global_comp_time%ENGINE_TIME(i),ih_tab(i),im_tab(i),is_tab(i)
1312 WRITE(iout,102)total_time,ih_tab(ijkl),im_tab(ijkl),is_tab(ijkl)
1317 100
FORMAT(
' STARTER RUNTIME =', (f14.2),
's',
' (',i2.2,
':',i2.2,
':',i2.2,
')')
1318 101
FORMAT(
' #',(i4.3),
' ENGINE RUNTIME =',(f14.2),
's',
' (',i2.2,
':',i2.2,
':',i2.2,
')'
1319 102
FORMAT(
' STARTER+ENGINE RUNTIME =',(f14.2),
's',
' (',i2.2,
':',i2.2,
':',i2.2,
')')
1320 103
FORMAT(
' ------------------------------ ')
1339#include "implicit_f.inc"
1343#include "com01_c.inc"
1344#include "task_c.inc"
1345#include "units_c.inc"
1346#include "impl1_c.inc"
1352 CHARACTER*256 HOSTNAME, CPUNAM
1353 INTEGER FREQUENCE,LENH,LENC,I,MEM,SWAP
1354 SAVE hostname,cpunam,frequence,lenh,lenc,mem,swap
1356 CHARACTER(len=129) :: STACKSIZE_INFO
1357 INTEGER :: STACKSIZE_INFO_LEN
1359 CHARACTER(len=129) :: OMP_STACKSIZE_INFO
1360 INTEGER :: OMP_STACKSIZE_INFO_LEN
1364 CALL cpuinfo(hostname,lenh,cpunam, lenc, frequence,mem,swap)
1366 ELSEIF(iflag==2)
THEN
1375 WRITE(iout,
'(A,A,A,A,A,I4,A,I6,A,I6,A)')
' ',
1376 . hostname(1:lenh),
' ',cpunam(1:lenc),
', ',frequence,
1377 .
' MHz, ',mem,
' MB RAM, ',swap,
' MB swap'
1380 WRITE(iout,
'(A,A,A,A,A,I4,A)')
' ',
1381 . hostname(1:lenh),
' ',cpunam(1:lenc),
', ',frequence,
1388 WRITE(iout,
'(I4,A,A,A,A,A,I4,A,I6,A,I6,A)') i,
' ',
1389 . hostname(1:lenh),
' ',cpunam(1:lenc),
', ',frequence,
1390 .
' MHz, ',mem,
' MB RAM, ',swap,
' MB swap'
1393 WRITE(iout,
'(I4,A,A,A,A,A,I4,A)') i,
' ',
1394 . hostname(1:lenh),
' ',cpunam(1:lenc),
', ',frequence,
1405 omp_stacksize_info_len=128
1406 stacksize_info_len=128
1407 CALL get_solver_stacksize(stacksize_info,stacksize_info_len,omp_stacksize_info,omp_stacksize_info_len)
1408 WRITE(iout,
'(A,A)')
' STACKSIZE . . . . . . . . . . . . . . . . . . . . ',stacksize_info(1:stacksize_info_len)
1409 WRITE(iout,
'(A,A)')
' THREAD STACKSIZE . . . . . . . . . . . . . . . . . ',omp_stacksize_info(1:omp_stacksize_info_len)
1410 WRITE(iout,
'(A)')
' '
1419 7000
FORMAT (
' COMPUTATION HARDWARE DESCRIPTION')
1420 7400
FORMAT (
' HOSTNAME CPU TYPE, FREQUENCY AND MEMORY')
1421 7450
FORMAT (
' HOSTNAME CPU TYPE AND FREQUENCY')
1422 7500
FORMAT (
' CPU# HOSTNAME CPU TYPE, FREQUENCY AND MEMORY')
1423 7550
FORMAT (
' CPU# HOSTNAME CPU TYPE AND FREQUENCY ')
1436#include "implicit_f.inc"
1440 COMMON /timerg/timerg(2,500000),cputimeg(500000)
1441 REAL TIMERG,CPUTIMEG
1491#include "implicit_f.inc"
1495 COMMON /timerg/timerg(2,500000),cputimeg(500000)
1496 REAL TIMERG,CPUTIMEG
1509!||--- called by ------------------------------------------------------
1539#include "implicit_f.inc"
1543 COMMON /timerg/timerg(2,500000),cputimeg(500000)
1544 REAL TIMERG,CPUTIMEG
1551 cputimeg(ng) = cputimeg(ng) +
1552 . timerg(2,ng)-timerg(1,ng)
1556!||
printimeg ../engine/source/system/timer.f
1572#include "implicit_f.inc"
1576 COMMON /timerg/timerg(2,500000),cputimeg(500000)
1577 REAL TIMERG,CPUTIMEG
1579#include
"com01_c.inc"
1580#include
"task_c.inc"
1581#include
"units_c.inc"
1582#include
"param_c.inc"
1583#include
"chara_c.inc"
1584#include
"scr19_c.inc"
1585#include
"ddspmd_c.inc"
1589 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IXTG(NIXTG,*),
1590 . IPM(,*),IXS(NIXS,*)
1596 INTEGER I, NPROC, MSGTAG, MSGTAG2, ISTART, NGROUP_R,
1597 . NEL,PROC,NGF, NGL,
1599 . NG,IRSIZE, MSGTAG3 ,NES,NEQ,NEC,NETG,NET,NEP,NER,NEUR,
1600 . MPT,NPTS,NPTT,NPTOT,ISOLNOD
1602 CHARACTER FILNAM*100,PROCNAM*4
1604 . ts, tq, tc, ttg, tt, tp, tr, tur, dtu,mins,maxs,minq,
1605 . maxq,minc,maxc,mintg,maxtg,minp,maxp,mint,maxt,minr,
1606 . maxr,minur,maxur, cpug, cpuelem, t(8,2)
1608 INTEGER NUMSOLG,NUMSHG,NUMTRIG,NUMOTHER,ITY,MTN,NELEM,NPT,NSG,
1609 . NFT,IHBE,MMA,NFUNC,FILEN,NUMSOL4G,NUMSOL10G
1612 . theogp(ngroup),tabx(3),tabmat(3),nptr,timmat,telt,tpsthtot,
1613 . tpsreel,batozmult,tppond
1620 WRITE(procnam,
'(I4.4)')ispmd+1
1621 filnam=rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.ddw2'
1622 OPEN(unit=66,file=filnam,access=
'SEQUENTIAL',
1623 . form=
'FORMATTED',status=
'UNKNOWN')
1628 IF (tpseng==zero)
THEN
1631 tppond = tpseng/tpsref
1634 WRITE(66,
'(A)')
'DOMAIN DECOMPOSITION ANALYSIS FILE '
1635 WRITE(66,
'(A)')
'---------------------------------- '
1639 WRITE(66,1000) ispmd,ncycle
1653 isolnod = iparg(28,ng)
1654 IF (isolnod==4)
THEN
1655 numsol4g = numsol4g+1
1656 ELSEIF (isolnod==10)
THEN
1657 numsol10g = numsol10g+1
1659 numsolg = numsolg + 1
1661 ELSEIF (ity==3)
THEN
1663 ELSEIF (ity==7)
THEN
1664 numtrig = numtrig + 1
1681 isolnod=iparg(28,ng)
1682 IF (isolnod==4)
THEN
1683 telt = tet4tnl(mtn,1) + tet4telt(1)
1685 ELSEIF (isolnod==10)
THEN
1687 nfunc =
max(ipm(10,mma) - 3,1)
1689 telt = tet10tnl(mtn,1) + tet10telt(1)
1690 ELSEIF (nfunc>2.AND.nfunc<=7)
THEN
1691 telt = tet10tnl(mtn,2) + tet10telt(1)
1693 telt = tet10tnl(mtn,3) + tet10telt(1)
1696 IF (ihbe<=1.OR.ihbe==101)
THEN
1698 telt = sol1tnl(mtn,1) + soltelt(1)
1699 ELSEIF (ihbe==2.OR.ihbe==102)
THEN
1701 telt = sol1tnl(mtn,1) + soltelt(2)
1703 ELSEIF (ihbe==24.OR.ihbe==104)
THEN
1705 telt = sol1tnl(mtn,1) + soltelt(3)
1707 ELSEIF (ihbe==12.OR.ihbe==112)
THEN
1709 telt = sol8tnl(mtn,1) + soltelt(4)
1711 ELSEIF (ihbe==14.OR.ihbe>=222)
THEN
1715 nptt = mod(mpt/10,10)
1717 nptot = npts*nptt*int(nptr)
1719 telt = nptot*sol8tnl(mtn,1)+soltelt(5)+nptot*soltelt(6)
1721 ELSEIF(ihbe==17)
THEN
1722 telt = sol1tnl(mtn,1)*8+soltelt(7)
1724 telt = sol1tnl(mtn,1) + soltelt(1)
1728 theogp(ng)= telt*nelem*ncycle*tppond
1730 ELSEIF (ity==3)
THEN
1732 DO j=nft,nft+nelem-1
1736 IF (mtn==2.OR.mtn==3)
THEN
1739 tabmat(1) = shtnl(mtn,1,2)
1740 tabmat(2) = shtnl(mtn,2,2)
1741 tabmat(3) = shtnl(mtn,3,2)
1743 tabmat(1) = shtnl(mtn,1,1)
1744 tabmat(2) = shtnl(mtn,2,1)
1745 tabmat(3) = shtnl(mtn,3,1)
1748 ELSEIF (mtn==36)
THEN
1752 tabmat(1) = shtnl(mtn,1,1)
1753 tabmat(2) = shtnl(mtn,2,1)
1754 tabmat(3) = shtnl(mtn,3,1)
1755 ELSEIF (nfunc>2.AND.nfunc<=7)
THEN
1756 tabmat(1) = shtnl(mtn,1,2)
1757 tabmat(2) = shtnl(mtn,2,2)
1758 tabmat(3) = shtnl(mtn,3,2)
1759 ELSEIF (nfunc>7)
THEN
1760 tabmat(1) = shtnl(mtn,1,3)
1761 tabmat(2) = shtnl(mtn,2,3)
1762 tabmat(3) = shtnl(mtn,3,3)
1765 tabmat(1) = shtnl(mtn,1,1)
1766 tabmat(2) = shtnl(mtn,2,1)
1767 tabmat(3) = shtnl(mtn,3,1)
1780 IF (mtn==2.OR.mtn==3)
THEN
1783 timmat = shtnl(mtn,0,2)
1785 timmat = shtnl(mtn,0,1)
1788 ELSEIF (mtn==36)
THEN
1789 nfunc = nint(pm(40,mma))
1791 timmat = shtnl(mtn,0,1)
1792 ELSEIF (nfunc>2.AND.nfunc<=7)
THEN
1793 timmat = shtnl(mtn,0,2)
1794 ELSEIF (nfunc>7)
THEN
1795 timmat = shtnl(mtn,0,3)
1798 timmat = shtnl(mtn,0,1)
1805 IF (ihbe>=11.AND.ihbe<=19)
THEN
1806 telt = shtelt(3)+batozmult*timmat
1807 ELSEIF (ihbe>=21.AND.ihbe<=29)
THEN
1808 telt = shtelt(2) + timmat
1810 telt = shtelt(1) + timmat
1813 theogp(ng)= theogp(ng)+telt*ncycle*tppond
1816 ELSEIF (ity==7)
THEN
1818 DO j=nft,nft+nelem-1
1822 IF (mtn==2.OR.mtn==3)
THEN
1825 tabmat(1) = tritnl(mtn,1,2)
1826 tabmat(2) = tritnl(mtn,2,2)
1827 tabmat(3) = tritnl(mtn,3,2)
1829 tabmat(1) = tritnl(mtn,1,1)
1830 tabmat(2) = tritnl(mtn,2,1)
1831 tabmat(3) = tritnl(mtn,3,1)
1834 ELSEIF (mtn==36)
THEN
1837 tabmat(1) = tritnl(mtn,1,1)
1838 tabmat(2) = tritnl(mtn,2,1)
1839 tabmat(3) = tritnl(mtn,3,1)
1840 ELSEIF (nfunc>2.AND.nfunc<=7)
THEN
1841 tabmat(1) = tritnl(mtn,1,2)
1842 tabmat(2) = tritnl(mtn,2,2)
1843 tabmat(3) = tritnl(mtn,3,2)
1844 ELSEIF (nfunc>7)
THEN
1845 tabmat(1) = tritnl(mtn,1,3)
1846 tabmat(2) = tritnl(mtn,2,3)
1847 tabmat(3) = tritnl(mtn,3,3)
1850 tabmat(1) = tritnl(mtn,1,1)
1851 tabmat(2) = tritnl(mtn,2,1)
1852 tabmat(3) = tritnl(mtn,3,1)
1865 IF (mtn==2.OR.mtn==3)
THEN
1868 timmat = tritnl(mtn,0,2)
1870 timmat = tritnl(mtn,0,1)
1873 ELSEIF (mtn==36)
THEN
1874 nfunc = nint(pm(40,mma))
1876 timmat = tritnl(mtn,0,1)
1877 ELSEIF (nfunc>2.AND.nfunc<=7)
THEN
1878 timmat = tritnl(mtn,0,2)
1879 ELSEIF (nfunc>7)
THEN
1880 timmat = tritnl(mtn,0,3)
1883 timmat = tritnl(mtn,0,1)
1890 IF (ihbe>=11.AND.ihbe<=19)
THEN
1891 telt = tritelt(3)+batozmult*timmat
1892 ELSEIF (ihbe>=21.AND.ihbe<=29)
THEN
1893 telt = tritelt(2) + timmat
1895 telt = tritelt(1) + timmat
1898 theogp(ng)= theogp(ng)+telt*ncycle*tppond
1902 tpsthtot = tpsthtot + theogp(ng)
1903 tpsreel = tpsreel + cputimeg(ng)
1910 numother = ngroup - numshg - numtrig - numsolg
1912 WRITE(66,1100) numsolg,numshg,numtrig,numother
1914 WRITE(66,1200) tpsreel,tpsthtot
1919 .
CALL printtet4(iparg,theogp,numsol4g,ipm,ixs)
1931 WRITE (iout,1300) filnam(1:filen)
1932 WRITE (istdo,1300) filnam(1:filen)
1936 & 4x,
'SPMD PROCESSOR NUMBER . . . . . . . . . . . . . .',i10/
1937 & 4x,
'TOTAL NUMBER OF CYCLES. . . . . . . . . . . . . .',i10)
1940 & 4x,
'NUMBER OF SOLID ELEMENTS GROUPS . . . . . . . . .',i10/
1941 & 4x,
'NUMBER OF SHELL ELEMENTS GROUPS . . . . . . . . .',i10/
1942 & 4x,
'NUMBER OF TRIANGULAR ELEMENTS GROUPS. . . . . . .',i10/
1943 & 4x,
'NUMBER OF OTHER ELEMENT GROUPS. . . . . . . . . .',i10)
1946 & 4x,
'SOLID, SHELL, TRIANGULAR GROUP TIME'/,
1947 & 4x,
'-----------------------------------'/,
1948 & 4x,
'TOTAL GROUP TIME . . . . . . . . . . . . . . . .',1pg20.13/
1949 & 4x,
'STARTER ESTIMATED GROUP TIME . . . . . . . . . .',1pg20.13)
1951 1300
FORMAT (4x,
' DD ANALYSIS FILE:',1x,a,
' WRITTEN')
1967#include "implicit_f.inc"
1971#include "com01_c.inc"
1972#include "param_c.inc"
1973#include "scr19_c.inc"
1977 COMMON /timerg/timerg(2,500000),cputimeg(500000)
1978 REAL TIMERG,CPUTIMEG
1983 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IPM(NPROPMI,*)
1989 INTEGER NGL,NG,NUMGROUP(NUMSHG),INDEXSH(NUMSHG),
1990 . ,MTN,NELEM,NPT,NSG,MID,MUID,
1991 . NFT,IHBE,MMA,NFUNC,I,J
1992 REAL DIFFTT,DIFFTTSH(NUMSHG),TEMP(NUMSHG)
1993 REAL THEOTP(NUMSHG),REELTP(NUMSHG)
1994 REAL TABX(3),TABMAT(3),NPTR,TIMMAT,TELT
1995 REAL TPSTHTOT,TPSREEL,PCT
2017 diffttsh(ngl) = cputimeg(ng) - theogp(ng)
2052 difftt = cputimeg(ng) - theogp(ng)
2054 pct = ((cputimeg(ng) - theogp(ng))/cputimeg(ng) )*100
2056 WRITE(66,
'(I10,A,I10,A,I10,A,I10,A,I10,A,I10,A,I10,A,I10,
2057 . A,E15.3,A,E15.3,A,E15.3,A,F8.3,A)')
2058 . ng,
' ',ity,
' ',ihbe,
' ',nelem,
' ',mtn,
' ',muid,
2059 .
' ',npt,
' ',nsg,
' ',
2060 . cputimeg(ng),
' ',theogp(ng),
' ',difftt,
' ',pct,
'%'
2066 & /
' '/
' '/10x,
' SHELL ELEMENT GROUPS'/
2067 & 10x,
' --------------------'/
2070 &
' GRP_NB ELEM_TYP IHBE ',
2071 &
'NUM_ELEM MAT_NUMB ',
2072 &
' MAT_USERN NPT NSG CPUTIMEG',
2073 &
' TIMETHEO DIFF PCT')
2088#include "implicit_f.inc"
2092#include "com01_c.inc"
2093#include "param_c.inc"
2094#include "scr19_c.inc"
2098 COMMON /timerg/timerg(2,500000),cputimeg(500000)
2099 REAL TIMERG,CPUTIMEG
2104 INTEGER IPARG(NPARG,*),IXS(NIXS,*),IPM(NPROPMI,*)
2109 INTEGER NGL,NG,NUMGROUP(NUMSOLG),INDEXSH(NUMSOLG),
2110 . ITY,MTN,NELEM,NPT,,
2111 . NFT,IHBE,MMA,NFUNC,I,J,ISOLNOD,
2113 REAL DIFFTT,DIFFTTSH(NUMSOLG),TEMP(NUMSOLG)
2114 REAL THEOTP(NUMSOLG),REELTP(NUMSOLG)
2115 REAL TABX(3),TABMAT(3),NPTR,TIMMAT,TELT
2116 REAL TPSTHTOT,TPSREEL,PCT
2132 isolnod = iparg(28,ng)
2133 IF (isolnod/=4.AND.isolnod/=10)
THEN
2136 diffttsh(ngl) = cputimeg(ng) - theogp(ng)
2145 CALL my_fsort(diffttsh,indexsh,numsolg,temp)
2163 difftt = cputimeg(ng) - theogp(ng)
2165 pct = ((cputimeg(ng) - theogp(ng))/cputimeg(ng) )*100
2167 WRITE(66,
'(I8,A,I8,A,I8,A,I8,A,I8,A,I8,A,I8,
2168 . A,E15.3,A,E15.3,A,E15.3,A,F8.3,A)')
2169 . ng,
' ',ity,
' ',nelem,
' ',mtn,
' ',muid,
' ',npt,
2171 . cputimeg(ng),
' ',theogp(ng),
' ',difftt,
' ',pct,
'%'
2176 & /
' '/
' '/10x,
' SOLID ELEMENT GROUPS'/
2177 & 10x,
' --------------------'/
2180 &
' GRP_NB ELEM_TYP NUM_ELEM MAT_NUMB MAT_USERN',
2181 &
' NPT NSG CPUTIMEG',
2182 &
' TIMETHEO DIFF PCT')
2196#include "implicit_f.inc"
2200#include "com01_c.inc"
2201#include "param_c.inc"
2202#include "scr19_c.inc"
2206 COMMON /timerg/timerg(2,500000),cputimeg(500000)
2207 REAL TIMERG,CPUTIMEG
2212 INTEGER IPARG(NPARG,*),IXS(NIXS,*),IPM(NPROPMI,*)
2217 INTEGER NGL,NG,NUMGROUP(NUMSOLG),INDEXSH(NUMSOLG),
2218 . ITY,MTN,NELEM,NPT,NSG,ISOLNOD,
2219 . NFT,IHBE,MMA,NFUNC,I,J,MID,MUID
2220 REAL DIFFTT,DIFFTTSH(NUMSOLG),TEMP(NUMSOLG)
2221 REAL THEOTP(NUMSOLG),REELTP(NUMSOLG)
2222 REAL TABX(3),TABMAT(3),NPTR,TIMMAT,TELT
2223 REAL TPSTHTOT,TPSREEL,PCT
2239 isolnod = iparg(28,ng)
2240 IF (isolnod==4)
THEN
2243 diffttsh(ngl) = cputimeg(ng) - theogp(ng)
2252 CALL my_fsort(diffttsh,indexsh,numsolg,temp)
2270 difftt = cputimeg(ng) - theogp(ng)
2272 pct = ((cputimeg(ng) - theogp(ng))/cputimeg(ng) )*100
2274 WRITE(66,
'(I8,A,I8,A,I8,A,I8,A,I8,A,I8,A,I8,
2275 . A,E15.3,A,E15.3,A,E15.3,A,F8.3,A)')
2276 . ng,
' ',ity,
' ',nelem,
' ',mtn,
' ',muid,
' ',npt,
' ',
2278 . cputimeg(ng),
' ',theogp(ng),
' ',difftt,
' ',pct,
'%'
2283 & /
' '/
' '/10x,
' TETRA 4 ELEMENT GROUPS'/
2284 & 10x,
' --------------------'/
2287 &
' GRP_NB ELEM_TYP NUM_ELEM MAT_NUMB MAT_USERN',
2288 &
' NPT NSG CPUTIMEG',
2289 &
' TIMETHEO DIFF PCT')
2303#include "implicit_f.inc"
2307#include "com01_c.inc"
2308#include "param_c.inc"
2309#include "scr19_c.inc"
2313 COMMON /timerg/timerg(2,500000),cputimeg(500000)
2314 REAL TIMERG,CPUTIMEG
2319 INTEGER IPARG(NPARG,*)
2324 INTEGER NGL,NG,NUMGROUP(),INDEXSH(NUMSOLG),
2325 . ITY,MTN,NELEM,NPT,NSG,ISOLNOD,
2326 . NFT,IHBE,MMA,NFUNC,I,J
2327 REAL DIFFTT,DIFFTTSH(NUMSOLG),TEMP(NUMSOLG)
2328 REAL THEOTP(NUMSOLG),REELTP(NUMSOLG)
2329 REAL TABX(3),TABMAT(3),NPTR,TIMMAT,TELT
2330 REAL TPSTHTOT,TPSREEL,PCT
2346 isolnod = iparg(28,ng)
2347 IF (isolnod==10)
THEN
2350 diffttsh(ngl) = cputimeg(ng) - theogp(ng)
2359 CALL my_fsort(diffttsh,indexsh,numsolg,temp)
2373 difftt = cputimeg(ng) - theogp(ng)
2375 pct = ((cputimeg(ng) - theogp(ng))/cputimeg(ng) )*100
2377 WRITE(66,
'(I8,A,I8,A,I8,A,I8,A,I8,A,I8,A,E15.3,A,E15.3,A,
2379 . ng,
' ',ity,
' ',nelem,
' ',mtn,
' ',npt,
' ',nsg,
' ',
2380 . cputimeg(ng),
' ',theogp(ng),
' ',difftt,
' ',pct,
'%'
2385 & /
' '/
' '/10x,
' TETRA 10 ELEMENT GROUPS'/
2386 & 10x,
' ---------------------'/
2389 &
' GRP_NB ELEM_TYP NUM_ELEM MAT_NUMB ',
2390 &
' NPT NSG CPUTIMEG',
2391 &
' TIMETHEO DIFF PCT')
2406#include "implicit_f.inc"
2410#include "com01_c.inc"
2411#include "param_c.inc"
2412#include "scr19_c.inc"
2416 COMMON /timerg/timerg(2,500000),cputimeg(500000)
2417 REAL TIMERG,CPUTIMEG
2422 INTEGER IPARG(NPARG,*)
2427 INTEGER NGL,NG,NUMGROUP(NUMTRIG),INDEXSH(NUMTRIG),
2428 . ITY,MTN,NELEM,NPT,NSG,
2429 . NFT,IHBE,MMA,NFUNC,I,J
2430 REAL DIFFTT,DIFFTTSH(NUMTRIG),TEMP(NUMTRIG)
2431 REAL THEOTP(NUMTRIG),REELTP(NUMTRIG)
2432 REAL THEOGP(NGROUP),TABX(3),TABMAT(3),NPTR,TIMMAT,TELT
2433 REAL TPSTHTOT,TPSREEL,PCT
2455 diffttsh(ngl) = cputimeg(ng) - theogp(ng)
2464 CALL my_fsort(diffttsh,indexsh,numtrig,temp)
2478 difftt = cputimeg(ng) - theogp(ng)
2480 pct = ((cputimeg(ng) - theogp(ng))/cputimeg(ng) )*100
2482 WRITE(66,
'(I8,A,I8,A,I8,A,I8,A,I8,A,I8,A,E15.3,A,E15.3,A,
2484 . ng,
' ',ity,
' ',nelem,
' ',mtn,
' ',npt,
' ',nsg,
' ',
2485 . cputimeg(ng),
' ',theogp(ngl),
' ',difftt,
' ',pct,
'%'
2490 & /
' '/
' '/10x,
' TRIANGULAR ELEMENT GROUPS'/
2491 & 10x,
' -------------------------'/
2494 &
' GRP_NB ELEM_TYP NUM_ELEM MAT_NUMB ',
2495 &
' NPT NSG CPUTIMEG',
2496 &
' TIMETHEO DIFF PCT')
2509 REAL TAB(LTAB),LX(LTAB),X,Y,MUL
2519 mul= mul * (x-lx(j))/(lx(i)-lx(j))
2541 . array(size),work(size),tmp
2543 INTEGER INDEX(SIZE),I,J,ITMP
2551 IF (work(j)<work(j+1))
THEN
2557 index(j) = index(j+1)
2581#include "implicit_f.inc"
2585#include "task_c.inc"
2587 COMMON /iclock/clock0
2589 COMMON /rclock/elapsed
2590 DOUBLE PRECISION ELAPSED
2594 TYPE(timer_),
INTENT(INOUT) :: T
2595 DOUBLE PRECISION ETIME
2599 INTEGER CLOCK1, CLOCKRATE, NBMAX
2600 DOUBLE PRECISION SECS
2602 REAL(kind=8) :: omp_ending_time
2603 REAL(kind=8) omp_get_wtime
2604 external OMP_GET_WTIME
2607 CALL system_clock(count=clock1, count_rate=clockrate,
2610 IF(clock1 < 0 )
THEN
2611 CALL system_clock(count=clock1, count_rate=clockrate,
2615 omp_ending_time = omp_get_wtime( )
2617 elapsed = omp_ending_time - t%OMP_STARTING_TIME
2620 IF(clock1 > 0 )
THEN
2621 secs = clock1-clock0
2622 IF(secs<zero) secs = secs + nbmax
2623 secs = secs/clockrate
2625 elapsed = elapsed + secs
2641#include "implicit_f.inc"
2645#include "task_c.inc"
2649 INTEGER EVENT,NBR_GR
2650 my_real,
DIMENSION(2,NBR_GR) :: timer_mp
2656 CALL cpu_time(timer_mp(1,event))
2670#include "implicit_f.inc"
2674#include "task_c.inc"
2678 INTEGER EVENT,NBR_GR
2679 my_real,
DIMENSION(NBR_GR) :: cputime_mp
2680 my_real,
DIMENSION(2,NBR_GR) :: timer_mp
2682 INTEGER CLOCK1, CLOCKRATE, NBMAX
2683 DOUBLE PRECISION SECS
2687 CALL cpu_time(timer_mp(2,event))
2688 cputime_mp(event) = cputime_mp(event) +
2689 . (timer_mp(2,event)-timer_mp(1,event))
2704 2 IXC,IXQ,IXT,IXP,IXTG,
2705 3 IXR,IXS,KXIG3D,IPM,
2706 4 IGEO,GEO,POIN_UMP,CPUTIME_MP,
2707 5 NBR_GPMP,CPUTIME_MP_GLOB,TAB_UMP,PM,
2708 6 BUFMAT,TABMP_L,TAB_MAT )
2713#include "implicit_f.inc"
2717 COMMON /timerg/timerg(2,500000),cputimeg(500000)
2718 REAL TIMERG,CPUTIMEG
2720#include
"com01_c.inc"
2721#include
"com04_c.inc"
2722#include
"task_c.inc"
2723#include "param_c.inc"
2724#include "scr19_c.inc"
2728 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IXS(NIXS,*),
2729 . IXQ(NIXQ,*),IXT(NIXT,*), IXP(NIXP,*),
2730 . IXR(,*),KXIG3D(*),IXTG(NIXTG
2734 my_real pm(npropm,*),geo(npropg,*),bufmat(*),tab_mat(ngroup)
2738 INTEGER,
DIMENSION(NUMMAT) :: POIN_UMP
2739 INTEGER,
DIMENSION(7,TAILLE) :: TAB_UMP
2740 my_real,
DIMENSION(TAILLE) :: cputime_mp
2741 my_real,
DIMENSION(NBR_GPMP,NSPMD+1):: cputime_mp_glob
2747 INTEGER NG,ITY,MID,MUID,NFT,I,J,K,
2749 . ISOL,ISOL2,TEST,INDI3
2750 my_real,
DIMENSION(NSPMD+1,TAILLE) :: CPUTIME_MP2
2751 INTEGER,
DIMENSION(TAILLE) :: ELEM_MP
2752 my_real,
DIMENSION(TAILLE) :: POIDS_REF
2757 INTEGER NPROC, MSGTAG, MSGTAG2, ISTART, NGROUP_R,
2758 . nel,proc,ngf, ngl,
2760 . irsize, msgtag3 ,nes,neq,nec,netg,net,nep,ner,neur,
2761 . mpt,npts,nptt,nptot,isolnod,jsrot
2763 CHARACTER FILNAM*100,PROCNAM*4
2765 . TS, TQ, TC, TTG, TT, TP, TR, TUR, DTU,MINS,MAXS,MINQ,
2766 . MAXQ,MINC,MAXC,MINTG,MAXTG,MINP,MAXP,MINT,MAXT,MINR,
2767 . MAXR,MINUR,MAXUR, CPUG, CPUELEM, T(8,2),CC
2769 INTEGER NUMSOLG,NUMSHG,NUMTRIG,NUMOTHER,MTN,NELEM,NPT,NSG,
2770 . ihbe,nfunc,filen,numsol4g,numsol10g,jhbe
2773 . theogp(ngroup),tabx(3),tabmat(3),nptr,timmat,telt,tpsthtot,
2774 . tpsreel,batozmult,tppond
2775 INTEGER RECHERCHE,OFF,NUMEL_RE
2777 my_real,
DIMENSION(NUMMAT,NUMGEO) :: SOLTELT1_OLD,SOLTELT6_OLD,
2778 . soltelt8_old,soltelt16_old,soltelt20_old,tetra4_old,
2779 . tetra10_old,shtnl_old,tritnl_old
2858 DO WHILE((k<=taille).AND.(test==0))
2860 IF((tab_ump(1,k)==muid))
THEN
2862 IF(tab_ump(2,k)==puid)
THEN
2865 IF (tab_ump(7,k)==ity)
THEN
2866 cputime_mp(k) = cputime_mp(k) + cputimeg(ng)
2867 elem_mp(k) = elem_mp(k) + iparg(2,ng)
2872 poids_ref(k)=tab_mat(ng)
2876 poids_ref(k)=tab_mat(ng)
2885 IF((isol==4).OR.(isol==6).OR.
2886 . (isol==8).OR.(isol==10).OR.
2887 . (isol==16).OR.(isol==20))
THEN
2892 IF(tab_ump(7,k)==isol)
THEN
2893 cputime_mp(k) = cputime_mp(k) + cputimeg(ng)
2894 elem_mp(k) = elem_mp(k) + iparg(2,ng)
2899 ELSEIF(isol==1010)
THEN
2901 ELSEIF(isol==1016)
THEN
2903 ELSEIF(isol==1020)
THEN
2905 ELSEIF(isol==1006)
THEN
2907 ELSEIF(isol==1004)
THEN
2914 poids_ref(k)= tab_mat(ng)
2935 cputime_mp2(i,j) = zero
2947 t1 = t1 + cputime_mp2(j,i)
2948 cputime_mp2(nspmd+1,i) = cputime_mp2(nspmd+1,i) + cputime_mp2(j,i)/(ncycle)
2950 IF((cputime_mp2(nspmd+1,i)>= zero).AND.(tab_ump(5,i)>0))
THEN
2951 cputime_mp2(nspmd+1,i) = cputime_mp2(nspmd+1,i)/(tab_ump(5,i))
2953 cputime_mp2(nspmd+1,i) = zero
2959 cputime_mp2(1,i) = cputime_mp(i)
2960 cputime_mp2(2,i) = cputime_mp(i)/ncycle
2961 IF((cputime_mp2(2,i)>= zero).AND.(tab_ump(5,i)>0))
THEN
2962 cputime_mp2(2,i) = cputime_mp2(2,i)/(tab_ump(5,i))
2964 cputime_mp2(2,i) = zero
2970 IF((cputime_mp(i
THEN
2971 cputime_mp(i) = cputime_mp
2975 CALL printime_mp(taille,tab_ump,cputime_mp2,poin_ump,t1,elem_mp,
2976 . cputime_mp,poids_ref)
2988 . ELEM_MP,CPUTIME_MP,POIDS_REF)
2993#include "implicit_f.inc"
2997 COMMON /timerg/timerg(2,500000),cputimeg(500000)
2998 REAL TIMERG,CPUTIMEG
3000#include
"com01_c.inc"
3002#include
"task_c.inc"
3003#include
"units_c.inc"
3004#include "chara_c.inc"
3005#include "scr19_c.inc"
3010 INTEGER,
DIMENSION(7,TAILLE) :: TAB_UMP
3012 my_real,
DIMENSION(NSPMD+1,TAILLE) :: CPUTIME_MP2
3013 INTEGER,
DIMENSION(NUMMAT) :: POIN_UMP
3014 INTEGER,
DIMENSION(TAILLE) :: ELEM_MP
3015 my_real,
DIMENSION(TAILLE) :: POIDS_REF
3016 my_real,
DIMENSION(TAILLE) :: cputime_mp
3021 CHARACTER FILNAM*100,PROCNAM*4
3023 INTEGER ITY,MTN,NEL,MID,PID,MUID,PUID,FILEN,
3025 my_real TIME_MATPROP,POIN,TIME_REF
3030 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.ddw'
3031 OPEN(unit=66,file=filnam,access=
'SEQUENTIAL',
3032 . form=
'FORMATTED',status=
'UNKNOWN')
3035 WRITE(66,
'(A)')
'DOMAIN DECOMPOSITION ANALYSIS FILE '
3036 WRITE(66,
'(A)')
'---------------------------------- '
3039 WRITE(66,1000) ncycle, t1
3043 time_matprop = cputime_mp2(nspmd+1,i)
3052 WRITE(66,
'(I12,A,I12,A,I12,A,I12,A,I12,A,I12,A,
3054 . mtn,
' ',ity,
' ',nel,
' ',mid,
' ',muid,
' ',pid,
3055 .
' ',puid,
' ', time_matprop
3060 WRITE(66,1400) nummat,numgeo
3063 WRITE(66,
'(I8,A)') poin_ump(i)
3065 WRITE(66,
'(A)')
'/END'
3067 WRITE (iout,1300) filnam(1:filen)
3068 WRITE (istdo,1300) filnam(1:filen)
3072 IF(iddwstat/=0)
THEN
3073 WRITE(procnam,
'(I4.4)')ispmd+1
3074 filnam=rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.ddw'
3075 OPEN(unit=67,file=filnam,access=
'SEQUENTIAL',
3076 . form=
'FORMATTED',status=
'UNKNOWN')
3079 WRITE(67,
'(A)')
'DOMAIN DECOMPOSITION ANALYSIS FILE '
3080 WRITE(67,
'(A)')
'---------------------------------- '
3083 WRITE(67,2000) NCYCLE
3089 TIME_MATPROP = CPUTIME_MP(I)
3090 TIME_REF = POIDS_REF(I)
3091 IF(TIME_MATPROP>ZERO) THEN
3101 WRITE(67,'(i12,a,i12,a,i12,a,i12,a,i12,a,i12,a,
3102 . i12,a,e15.5,a,e15.5)
')
3103 . MTN,' ',ITY,' ',NEL,' ',MID,' ',MUID,' ',PID,
3104 . ' ',PUID,' ', TIME_MATPROP,' ',TIME_REF
3110 WRITE(67,'(a)
') '/
END'
3112 ENDIF ! end IDDWSTAT/=0
3116 & 4X,'TOTAL NUMBER OF CYCLES. . . . . . . . . . . . . .
',I10/
3117 & 4X,'TOTAL ELEMENT FORCE TIME. . . . . . . . . . . . .
',1PG20.13)
3119 & 4X,'TOTAL NUMBER OF CYCLES. . . . . . . . . . . . . .
',I10)
3121 & 4X,'MATERIAL NUMBER . . . . . . . . . . . . . .
',I10/
3122 & 4X,'PROPERTY NUMBER . . . . . . . . . . . . . .
',I10)
3125 & /' '/' '/4X,' POINTER
')
3128 & /' '/' '/4X,'ISPMD. . . . . . . . . . . . . .
',I10)
3131 & 4X,'SOLID, SHELL, TRIANGULAR GROUP TIME
'/,
3132 & 4X,'-----------------------------------
'/,
3133 & 4X,'TOTAL GROUP TIME . . . . . . . . . . . . . . . .
',1PG20.13/
3134 & 4X,'STARTER ESTIMATED GROUP TIME . . . . . . . . . .
',1PG20.13)
3136 1300 FORMAT (4X,' DD ANALYSIS FILE:
',1X,A,' WRITTEN
')
3139 & /' '/
' '/10X,
' MATERIAL/PROPERTY TIMER'/
3140 & 10x,
' --------------------'/
3143 &
' LAW_NUMB ELEM_TYP NUM_ELEM MAT_NUMB MAT_USER',
3144 &
' PROP_NUMB PROP_USER CPUTIME')
3147 &
' LAW_NUMB ELEM_TYP NUM_ELEM MAT_NUMB MAT_USER',
3148 &
' PROP_NUMB PROP_USER CPUTIME')
3151 &
' LAW_NUMB ELEM_TYP NUM_ELEM MAT_NUMB MAT_USER',
3152 &
' PROP_NUMB PROP_USER CPUTIME')
3167#include "implicit_f.inc"
3171#include
"commandline.inc"
3177 GOT_M_MAP = got_mem_map
3210#include "implicit_f.inc"
3214#include "task_c.inc"
3215 COMMON /iclock/clock0
3217 COMMON /RCLOCK/ELAPSED
3218 DOUBLE PRECISION ELAPSED
3222 TYPE(timer_),
INTENT(INOUT) :: T
3224 DOUBLE PRECISION SECS
3225 INTEGER :: LEN_RST_NAME
3226 LOGICAL :: BOOL_FILE
3227 INTEGER :: CURRENT_RUN,OFFSET
3228 INTEGER,
DIMENSION(2148) :: RST_NAME
3229 INTEGER :: LEN_TMP_NAME
3230 CHARACTER(len=4096) :: TMP_NAME
3244 DO i = 1, len_tmp_name
3245 rst_name(i) = ichar(tmp_name(i:i))
3248 INQUIRE(file=tmp_name(1:len_tmp_name), exist=bool_file)
3252 CALL open_c(rst_name,len_tmp_name,2)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine printtriangles(iparg, theogp, numtrig)
subroutine print_summary(flag, ntimax, tabtime, titles, out_id, itherm)
subroutine cumultime_mp(taille, iparg, ixc, ixq, ixt, ixp, ixtg, ixr, ixs, kxig3d, ipm, igeo, geo, poin_ump, cputime_mp, nbr_gpmp, cputime_mp_glob, tab_ump, pm, bufmat, tabmp_l, tab_mat)
subroutine printsolides(iparg, theogp, numsolg, ipm, ixs)
subroutine print_block(title_part, tabtime, ntimax, flag, out_id, nfields, fields, titles)
subroutine stoptime_mp(event, nbr_gr, timer_mp, cputime_mp)
subroutine get_mem_map_var(got_m_map)
subroutine startime_mp(event, nbr_gr, timer_mp)
subroutine printtet4(iparg, theogp, numsolg, ipm, ixs)
subroutine printime_mp(taille, tab_ump, cputime_mp2, poin_ump, t1, elem_mp, cputime_mp, poids_ref)
subroutine printcpu(iflag)
subroutine printimeg(iparg, pm, ipm, ixc, ixtg, ixs)
subroutine my_fsort(array, index, size, work)
subroutine add_elapsed_time_mon_off(t)
subroutine interlagran(tab, lx, ltab, x, y)
subroutine printcoques(iparg, ixc, ipm, theogp, numshg)
subroutine elapstime(t, etime)
subroutine printtet10(iparg, theogp, numsolg)
subroutine print_runtime()
subroutine fixvel(ibfv, a, v, npc, tf, vel, ms, x, skew, ar, vr, in, nsensor, sensor_tab, weight, depla, rby, iframe, xframe, dr, nodnx_sms, nodes, tt_double, depla_double, python, wfext)
subroutine forints(pm, geo, x, a, ar, v, vr, ms, in, w, elbuf, val2, veul, fv, stifn, stifr, fsky, tf, bufmat, partsav, fani, fsav, skew, dt2t, iads, iparg, npc, ixs, neltst, ityptst, ipart, iparts, itab, fskyi, bufgeo, kxx, ixx, isky, ipartx, gresav, grth, igrth, elbuf_tab)
subroutine imp_solv(timers, python, icode, iskew, iskwn, ipart, ixtg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg1, itab, itabm1, npc, ibcl, ibfv, sensor_tab, nnlink, lnlink, iparg, igrv, ipari, intbuf_tab, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, icodt, icodr, isky, adsky, iads_f, ilink, llink, weight, itask, ibvel, lbvel, fbvel, x, d, v, vr, dr, thke, damp, ms, in, pm, skews, geo, eani, bufmat, bufgeo, bufsf, tf, forc, vel, fsav, agrv, fr_wave, parts0, elbuf, rby, rivet, fr_elem, iad_elem, wa, a, ar, stifn, stifr, partsav, fsky, fskyi, iframe, xframe, w16, iactiv, fskym, igeo, ipm, wfext, nodft, nodlt, nint7, num_imp, ns_imp, ne_imp, ind_imp, it, rwbuf, lprw, fr_wall, nbintc, intlist, fopt, rwsav, fsavd, graphe, fac_k, ipiv_k, nkcond, nsensor, monvol, igrsurf, fr_mv, volmon, dirul, nodglob, mumps_par, cddlp, isendto, irecvfrom, newfront, imsch, i2msch, isizxv, ilenxv, islen7, irlen7, islen11, irlen11, islen17, irlen17, irlen7t, islen7t, kinet, num_imp1, temp, dt2prev, waint, lgrav, sh4tree, sh3tree, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, irbe3, lrbe3, frbe3, fr_i2m, iad_i2m, fr_rbe3m, iad_rbe3m, frwl6, irbe2, lrbe2, intbuf_tab_c, ikine, diag_sms, icfield, lcfield, cfield, count_remslv, count_remslve, elbuf_tab, elbuf_imp, xdp, weight_md, stack, dimfb, fbsav6, stabsen, tabsensor, drape_sh4n, drape_sh3n, h3d_data, multi_fvm, igrbric, igrsh4n, igrsh3n, igrbeam, forneqs, maxdgap, nddl0, nnzk0, it_t, impbuf_tab, cptreac, fthreac, nodreac, drapeg, interfaces, th_surf, dpl0cld, vel0cld, snpc, stf, glob_therm, wfext_md)
for(i8=*sizetab-1;i8 >=0;i8--)
character(len=outfile_char_len) outfile_name
type(time_type) global_comp_time
subroutine mam_nm(f_nd, l_nd, nd, md, a, b, c, wddl, itask)
subroutine rbyfor(timers, rby, a, ar, x, vr, fsav, in, stifn, stifr, fani, lpby, npby, weight, ms, v, igrsurf, bufsf, icodr, iskew, skew, kind, iad_rby, fr_rby6, rby6, irbkin_l, nrbykin_l, nativ_sms, dimfb, fbsav6, stabsen, tabsensor, nodreac, fthreac, cptreac, dampr, sdamp, damp, ndamp_vrel, id_damp_vrel, igrnod, tagslv_rby, iparit, wfext, ndamp_vrel_rbyg, size_rby6_c, rby6_c)
subroutine resol(timers, element, nodes, coupling, af, iaf, iskwn, neth, ipart, nom_opt, kxx, ixx, ixtg, ixs, ixq, ixt, ixp, ixr, ifill, mat_elem, ims, npc, ibcl, ibfv, idum, las, laccelm, nnlink, lnlink, iparg, dd_iad, igrv, iexlnk, kinet, ipari, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, nodpor, monvol, ilink, llink, linale, neflsw, nnflsw, icut, cluster, itask, inoise, thke, damp, pm, skews, geo, eani, bufmat, bufgeo, bufsf, w, veul, fill, dfill, alph, wb, dsave, asave, msnf, tf, forc, vel, fsav, fzero, xlas, accelm, agrv, fr_wave, failwave, parts0, elbuf, rwbuf, sensors, rwsav, rby, rivet, secbuf, volmon, lambda, wa, fv, partsav, uwa, val2, phi, segvar, r, crflsw, flsw, fani, xcut, anin, tani, secfcum, bufnois, idata, rdata, iframe, kxsp, ixsp, nod2sp, ispsym, ispcond, xframe, spbuf, xspsym, vspsym, pv, fsavd, ibvel, lbvel, wasph, w16, isphio, lprtsph, lonfsph, vsphio, fbvel, lagbuf, ibcslag, iactiv, dampr, gjbufi, gjbufr, rbmpc, ibmpc, sphveln, nbrcvois, nbsdvois, lnrcvois, lnsdvois, nercvois, nesdvois, lercvois, lesdvois, npsegcom, lsegcom, nporgeo, ixtg1, npbyl, lpbyl, rbyl, igeo, ipm, madprt, madsh4, madsh3, madsol, madnod, madfail, iad_rby, fr_rby, fr_wall, iad_rby2, fr_rby2, iad_i2m, fr_i2m, addcni2, procni2, iadi2, fr_mv, iadmv2, fr_ll, fr_rl, iadcj, fr_cj, fr_sec, iad_sec, iad_cut, fr_cut, rg_cut, newfront, fr_mad, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, eigipm, eigibuf, eigrpm, lnodpor, fr_i18, graphe, iflow, rflow, lgrav, dd_r2r, fasolfr, fr_lagf, llagf, lprw, icontact, rcontact, sh4tree, sh3tree, ipadmesh, padmesh, msc, mstg, inc, intg, ptg, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, acontact, pcontact, factiv, sh4trim, sh3trim, mscnd, incnd, ibfflux, fbfflux, rbym, irbym, lnrbym, icodrbym, ibcv, fconv, ibftemp, fbftemp, iad_rbym, fr_rbym, weight_rm, ms_ply, zi_ply, inod_pxfem, iel_pxfem, iadc_pxfem, adsky_pxfem, icode_ply, icodt_ply, iskew_ply, admsms, madclnod, nom_sect, mcpc, mcptg, dmelc, dmeltg, mssa, dmels, mstr, dmeltr, msp, dmelp, msrt, dmelrt, ibcr, fradia, res_sms, table, irbe2, lrbe2, iad_rbe2, fr_rbe2, phie, msf, procne_pxfem, iadsdp_pxfem, iadrcp_pxfem, icfield, lcfield, cfield, msz2, diag_sms, iloadp, lloadp, loadp, inod_crk, iel_crk, iadc_crk, adsky_crk, cne_crk, procne_crk, iadsdp_crk, iadrcp_crk, ibufssg_io, ibc_ply, dmint2, ibordnode, elbuf_tab, por, nodedge, iad_edge, fr_edge, fr_nbedge, crknodiad, lgauge, gauge, igaup, ngaup, nodlevxf, dd_r2r_elem, nodglobxfe, sph2sol, sol2sph, irst, dmsph, wagap, xfem_tab, elcutc, nodenr, kxfenod2elc, enrtag, rthbu f, kxig3d, ixig3d, knot, wige, wsmcomp, stack, cputime_mp_glob, cputime_mp, tab_ump, poin_ump, sol2sph_typ, irunn_bis, addcsrect, iad_frnor, fr_nor, procnor, iad_fredg, fr_edg, drape_sh4n, drape_sh3n, tab_mat, nativ0_sms, multi_fvm, segquadfr, ms_2d, h3d_data, subsets, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, forneqs, nloc_dmg, iskwp_l, knotlocpc, knotlocel, pinch_data, tag_skins6, ale_connectivity, xcell, xface, ne_nercvois, ne_nesdvois, ne_lercvois, ne_lesdvois, ibcscyc, lbcscyc, t_monvol, id_global_vois, face_vois, dynain_data, fcont_max, ebcs_tab, diffusion, kloadpinter, loadpinter, dgaploadint, drapeg, user_windows, output, interfaces, dt, loads, python, dpl0cld, vel0cld, ndamp_vrel, id_damp_vrel, fr_damp_vrel, ndamp_vrel_rbyg, names_and_titles, unitab, liflow, lrflow, glob_therm, pblast, rbe3)
subroutine spmd_ex_cputime(dim_tab3, tab3, tab4)
subroutine spmd_printcpuinfo(hostname, lenh, cpunam, lenc, frequence, mem, swap)
void get_solver_stacksize(char *stsize, int *stsize_len, char *omp_stsize, int *omp_stsize_len)
subroutine my_etime(timer)
subroutine my_flush(iunit)
void cpuinfo(char *hostname, int *lenhost, char *cputype, int *lencputype, int *frequence, int *memory, int *swap)
subroutine upxfem_tagxp(xfem_tab, iparg, ixc, ngrouc, igrouc, ixtg, iadc_crk, iel_crk, inod_crk, elcutc, nodedge, enrtag, crkedge, xedge4n, xedge3n, itab)
subroutine write_dpdb(a, n)
void fseek_end_c(int *lseek)
void open_c(int *ifil, int *len, int *mod)