116
117
118
119 USE timer_mod
120 USE python_funct_mod
123 USE mat_elem_mod
124 USE intbufdef_mod
126 USE multi_fvm_mod
129 USE sensor_mod
130 USE ebcs_mod
131 USE bcs_mod , only : bcs
138 USE output_mod
140 USE elbufdef_mod
141 USE multimat_param_mod , ONLY : m51_iflg6_size
142 USE matparam_def_mod, ONLY : matparam_struct_
143 use bcs_wall_trigger_mod
144 use glob_therm_mod
145
146
147
148#include "implicit_f.inc"
149#include "comlock.inc"
150
151
152
153#include "mvsiz_p.inc"
154
155
156
157#include "com01_c.inc"
158#include "com04_c.inc"
159#include "com06_c.inc"
160#include "com08_c.inc"
161#include "param_c.inc"
162#include "vect01_c.inc"
163#include "scr06_c.inc"
164#include "scr17_c.inc"
165#include "parit_c.inc"
166#include "task_c.inc"
167#include "spmd_c.inc"
168#include "inter18.inc"
169#include "inter22.inc"
170#include "scr07_c.inc"
171#include "stati_c.inc"
172#include "macro.inc"
173#include "tabsiz_c.inc"
174
175
176
177 TYPE(TIMER_) :: TIMERS
178 INTEGER,INTENT(IN) :: S_SFEM_NODVAR
179 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT),INTENT(IN) :: MATPARAM
180 INTEGER, INTENT(IN):: IRESP
181 integer,dimension(102) :: IDTMIN
182 INTEGER ,INTENT(IN) :: MAXFUNC
183 INTEGER, INTENT(IN) :: IMON_MAT
184 INTEGER, INTENT(IN) :: USERL_AVAIL
185 INTEGER, INTENT(IN) :: IMPL_S
186 INTEGER, INTENT(IN) :: IDYNA
188 INTEGER IXS(,NUMELS),IXQ(NIXQ,NUMELQ),IXTG(NIXTG,NUMELTG), ISKY(*),
189 . IFILL(NUMNOD,*), NPC(*), IPARG(NPARG,NGROUP),
190 . IADS(8,*),IADQ(4,*),ICODT(*),ISKEW(*), IMS(*),
191 . IGEO(NPROPGI,NUMGEO),
192 . IPARTS(*) ,IPARTQ(*),IPM(NPROPMI,*),NODFT,
193 . NELTST ,ITYPTST, ITASK,
194 . NBRCVOIS(*),NBSDVOIS(*), LNRCVOIS(*), LNSDVOIS(*),
195 . NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*),
196 . NELTSA, ITYPTSA,NPSEGCOM(*),LSEGCOM(*),
197 . IAD_ELEM(*),FR_ELEM(*), IPARI(SIPARI),ITAB(NUMNOD),ISKWN(*),
198 . (*), (*),
199 . ISIZXV, LENQMV,NV46,GRTH(*),IGRTH(*),LGAUGE(3,NBGAUGE),
200 . IGAUP(*),NGAUP(*),NODLT, IXT(NIXT,*),
201 . IGRV(*),LGRAV(*)
202 INTEGER, INTENT(IN) :: IDTMINS
203
204 INTEGER, DIMENSION(*), INTENT(in) :: ID_GLOBAL_VOIS,FACE_VOIS
205 LOGICAL, INTENT(inout) :: NEED_COMM_INTER18
206 DOUBLE PRECISION XDP(3,*)
207
208 my_real x(3,numnod),v(3,numnod),ms(*),pm(npropm,nummat),skew(lskew,*),
209 . geo(npropg,ngroup),bufmat(*) ,w(3,numnod),veul(*),fill(numnod,*),
210 . dfill(numnod,*),alph(*),tf(*),
211 . fv(*),a(3,numnod),val2(*),phi(*),
212 . partsav(*) ,stifn(*) ,d(3,numnod),dsave(3,*),asave(3,*),wa(*),
213 . fsky(*),eani(*), fskym(*),
214 . dt2t, dt2save,
215 . aglob(3,*),gauge(llgauge,*),ms0(*),
216 . msnf(*),volmon(*),fsav(nthvki,*),gresav(*),
217 . mssa(*), dmels(*),sfem_nodvar(s_sfem_nodvar),fskyi(lskyi,nfskyi),
218 . agrav(*),condn(*),condnsky(*),ms_2d(*),temp(*)
219
220 TYPE(t_segvar) :: SEGVAR
221 TYPE(TTABLE) TABLE(*)
222 TYPE(ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
223
224 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
225 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
226 TYPE (NLOCAL_STR_) :: NLOC_DMG
227
228 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
229 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
230 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
231 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
232 TYPE(t_ebcs_tab), INTENT(INOUT) :: EBCS_TAB
233 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
234 TYPE(T_DIFFUSION),INTENT(INOUT) :: DIFFUSION
235 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
236 TYPE (H3D_DATABASE) :: H3D_DATA
237 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
238 my_real,
INTENT(INOUT) :: xcell(3,sxcell)
239 TYPE (DT_) ,INTENT(INOUT) :: DT
240 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
241 TYPE(PYTHON_) :: PYTHON
242 type (glob_therm_) ,intent(inout) :: glob_therm
243
244
245
246 my_real,
DIMENSION(MVSIZ,6) :: svis
247 INTEGER N, M, NG, NVC, NF1,OFFSET,ISOLNOD,NSG,NEL,I,LENCOM,ISTRA,IBID,IOUTPRT
248 INTEGER IPLA
249 INTEGER IADBH, IAD22, NIN, NBRIC_L
250 INTEGER SBUFVOIS,SZ_BUFVOIS
251
252 my_real fx(mvsiz,10),fy(mvsiz,10),fz(mvsiz,10),voln(mvsiz)
254 my_real,
DIMENSION(:,:),
ALLOCATABLE,
TARGET :: qmv
256
257 my_real,
DIMENSION(:,:),
ALLOCATABLE ::bufvois
258
259 LOGICAL :: PRED
260
261 SAVE bufvois
262
263 DATA offset/0/
264
265
266
267
268 ibid = 0
269 bid = zero
270 sbufvois = 6
271
272
273 ioutprt = 0
274 IF(mod(ncycle,iabs(ncpri)) == 0 .OR. tt >= output%TH%THIS .OR. mdess /= 0
275 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS)
276 . .OR. tt >= output%TH%THIS1(1) .OR. tt >= output%TH%THIS1(2)
277 . .OR. tt >= output%TH%THIS1(3) .OR. tt >= output%TH%THIS1(4) .OR. tt >= output%TH%THIS1(5)
278 . .OR. tt >= output%TH%THIS1(6) .OR. tt >= output%TH%THIS1(7) .OR. tt >= output%TH%THIS1(8)
279 . .OR. tt >= output%TH%THIS1(9) .OR. nth /= 0 .OR. nanim /= 0
280 . .OR. tt >= tabfis(1) .OR. tt >= tabfis(2)
281 . .OR. tt >= tabfis(3) .OR. tt >= tabfis(4) .OR. tt >= tabfis(5)
282 . .OR. tt >= tabfis(6) .OR. tt >= tabfis(7) .OR. tt >= tabfis(8)
283 . .OR. tt >= tabfis(9) .OR. tt >= tabfis(10)
284 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(1))
285 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(2))
286 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(3))
287 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(4))
288 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(5))
289 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(6))
290 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(7))
291 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(8))
292 . .OR. (
ale%SUB%IALESUB /= 0 .AND. t1s+dt2s >= output%TH%THIS1(9)) .OR. istat==3) ioutprt=1
293
294 ALLOCATE(qmv(2*nv46,lenqmv))
295 IF(m51_iflg6 == 1)sbufvois = m51_iflg6_size
296
297 IF(itask==0)ALLOCATE(bufvois(sbufvois ,nsvois+nqvois))
298 IF(itask==0)sz_bufvois=sbufvois*(nsvois+nqvois)
299
300 IF(n2d /= 0 .AND. nmult /= 0)THEN
301
302
303 iadbh=
max(1,nmult)*4*numelq+1
304 ELSE
305 iadbh=1
306 ENDIF
307
309
310 IF(iale+ieuler /= 0)THEN
311 DO n=nodft,nodlt
312 IF(ale_connectivity%NALE(n) /= 0) ms0(n) = ms(n)
313 ENDDO
315 DO n=nodft,nodlt
316 IF(ale_connectivity%NALE(n) /= 0) v(1:3,n) = zero
317 ENDDO
318 ENDIF
319 ENDIF
320
321
322
323
324 IF(inter18_is_variable_gap_defined)THEN
325 need_comm_inter18 = .true.
326 DO ng=itask+1,ngroup,nthread
327 IF (tt > zero .AND. iparg(76, ng) == 1) cycle
328 IF(iparg(8,ng) == 1) cycle
329 isolnod=iparg(28,ng)
331 1 iparg ,ng ,
332 2 mtn ,nel ,nft ,iad ,ity ,
333 3 npt ,jale ,ismstr ,jeul ,jtur ,
334 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
335 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
336 6 irep ,iint ,igtyp ,israt ,isrot ,
337 7 icsen ,isorth ,isorthg ,ifailure ,jsms )
338 IF (ity == 1 .AND. isolnod /= 4) THEN
339 DO i=1,nel
340 xcell(1,i+nft)=exp(log(elbuf_tab(ng)%GBUF%VOL(i))/three)
341 xcell(2,i+nft)=zero
342 xcell(3,i+nft)=zero
343 ENDDO
344 ENDIF
345 ENDDO
347 IF(nspmd > 1)THEN
348
349 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
350 CALL startime(timers, timer_spmdcfd)
351 CALL spmd_envois(3, xcell, nercvois, nesdvois, lercvois, lesdvois, lencom)
352 CALL stoptime(timers, timer_spmdcfd)
353
354 ENDIF
355 ENDIF
356
357
358
359
360
361
362
364
365 IF(
ale%SUB%IALESUB == 2)
THEN
366 IF(itask == 0)THEN
367 IF(tt == zero .OR. tt+dt1 > t1s+dt2s)THEN
371 dt1 = tt-t1s
372 t1s = tt
373 ELSE
376 ENDIF
377 ENDIF
379 IF(
ale%SUB%IFSUB == 0)
THEN
380 neltsa = neltst
381 ityptsa = ityptst
382 dt2save = dt2t
383 dt2t = ep30
384 ENDIF
385 CALL alesub1(ale_connectivity%NALE,v,w,dsave,icodt,iskew,skew,d,itask,nodft,nodlt,fsky,fsky)
386 ENDIF
387 IF(
ale%SUB%IALESUB == 0 .AND. itask == 0)
THEN
389 t1s = tt
390 ENDIF
391
392
393 IF (glob_therm%ITHERM == 1 .AND. iale+ieuler == 0)
ale%SUB%IFSUBM=0
394
395
396
397
398
400
401 IF (iparit == 0 .AND. nspmd > 1 .AND.
ale%SUB%IFSUBM == 1 .AND. n2d == 0 .AND.
ale%GLOBAL%INCOMP == 0)
THEN
402 DO n = nodft, nodlt
403 ms(n) = ms(n)*weight(n)
404 msnf(n) = msnf(n)*weight(n)
405 ENDDO
407 ENDIF
408
409
410
411 IF (n2d > 0 .AND.
ale%SUB%IFSUBM == 1)
THEN
412 DO n = nodft, nodlt
413 ms_2d(n) = zero
414 ENDDO
416 ENDIF
417
418 IF(
ale%SUB%IFSUB == 0)
THEN
419 IF(itask==0)
CALL startime(timers,macro_timer_ifsub0)
420 IF(iale+ieuler+glob_therm%ITHERM /= 0)THEN
421 IF(
ale%GLOBAL%INCOMP == 0)
THEN
422 IF(nsegflu > 0 .AND. n2d == 0) THEN
423 CALL seggetv(iparg,elbuf_tab,ale_connectivity,itask,segvar)
424
425 IF(nspmd > 1) THEN
426
427 CALL startime(timers, timer_spmdcfd)
428 CALL spmd_segcom(segvar,npsegcom,lsegcom,npsegcom(nspmd+1),0)
429 CALL stoptime(timers, timer_spmdcfd)
430
431 ENDIF
432 ENDIF
433
434
435
436 IF(ninter /= 0)THEN
437
438
439 IF (itask == 0 .AND. ispmd == 0)
440 .
CALL intti0(ipari ,x ,v ,wa ,itab ,iparg ,ixs ,segvar ,skew ,iskwn ,intbuf_tab)
442 ENDIF
443
444
445
446 IF(nebcs > 0)THEN
447 IF(itask == 0)THEN
448 i=1+ninter+nrwall+nrbody+nsect+njoint+nrbag
450 . a,v,w,x,fsav(1,i),fv,
451 . ms,stifn,iparg,
452 . elbuf_tab,ebcs_tab,multi_fvm,ixq,ixs,ixtg,
453 . fsky,fsavsurf,tt,dt1,
454 . sensors%NSENSOR,sensors%SENSOR_TAB,python,
455 . npc, tf ,snpc, stf)
456 ENDIF
458 ENDIF
459
460 IF(nsegflu > 0) THEN
461
462 IF(nspmd > 1) THEN
463
464 CALL startime(timers, timer_spmdcfd)
465 CALL spmd_segcom(segvar,npsegcom,lsegcom,npsegcom(nspmd+1),1)
466 CALL stoptime(timers, timer_spmdcfd)
467
468 IF(tt == zero)THEN
470 ENDIF
471
472 ENDIF
473 ENDIF
474
475
476
477
478
479 IF(int22>0)THEN
480 nin = 1
481 iad22 = ipari(npari*(nin-1)+39)
482 nbric_l = igrbric(ipari(npari*(nin-1)+45))%NENTITY
483
485
487 1 ixs , elbuf_tab, iparg, itab , itask ,
488 2 ibid , nbric_l , x , ale_connectivity , v ,
489 3 nv46 , veul , igrnod, ipari, igrtruss ,
490 4 ixt , bufmat , ipm
491 5 )
492 ENDIF
493
494
495 IF (multi_fvm%IS_USED) THEN
496
497 IF(itask==0)
CALL startime(timers,macro_timer_multifvm)
498
499
500
501
502 IF (tt == zero) THEN
504 . partsav, iparts, gresav, igrth, grth)
505 IF (multi_fvm%NS_DIFF) THEN
506 DO ng = itask + 1, ngroup, nthread
507 IF (iparg(1, ng) == 151) THEN
508 nel = iparg(2, ng)
509 nft = iparg(3, ng)
510 ity = iparg(5, ng)
512 . elbuf_tab, ixs, ixq, ixtg, multi_fvm%VOL(1 + nft : nel + nft),x)
513 ENDIF
514 ENDDO
515 ENDIF
517
518
519
521 . pm, ipm, multi_fvm, tt, bufmat,npc,tf,nummat,matparam)
522
523
524
527
528
529
530
531 IF(bcs%NUM_WALL > 0)THEN
532 CALL bcs_wall_trigger(tt,ale_connectivity,sensors%NSENSOR,sensors%SENSOR_TAB)
533 ENDIF
534
535
536
537
540 IF (nspmd > 1 .AND. ((multi_fvm%MUSCL > 0) .OR. multi_fvm%NS_DIFF)) THEN
541!$omp single
542 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
543 CALL startime(timers, timer_spmdcfd)
544 CALL spmd_envois(3, multi_fvm%ELEM_DATA%CENTROID,nercvois, nesdvois, lercvois, lesdvois, lencom)
545 IF (ALLOCATED(multi_fvm%VOL)) THEN
546 CALL spmd_envois(1, multi_fvm%VOL, nercvois, nesdvois, lercvois, lesdvois, lencom)
547 ENDIF
548 CALL stoptime(timers, timer_spmdcfd)
549
551 ENDIF
552
553
554
556 . pm, ipm, multi_fvm, w, x,
557 . neltst, ityptst)
558
559
560
561 IF(n2d == 0)THEN
562 DO i=nodft,nodlt
563 ms(i)=ms(i)-msnf(i)
564 msnf(i)=zero
565 ENDDO
566 ENDIF
568 IF (iale > 0) THEN
570 . ixs, ixq, iparg, x, a, v, w, ms, msnf, veul,
571 . stifn, fsky, iads, fskym,
572 . condn, condnsky, multi_fvm,glob_therm%NODADT_THERM)
573 ENDIF
575!$omp single
576 multi_fvm%IS_RESTART = .false.
577
578 ELSE
579 IF (multi_fvm%IS_RESTART) THEN
580
581
582
583
586
587
588
590 . pm, ipm, multi_fvm, tt, bufmat,npc,tf,nummat,matparam)
591
592
593
596
599 IF (nspmd > 1 .AND. multi_fvm%MUSCL > 0) THEN
600
601 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
604 . nercvois, nesdvois, lercvois, lesdvois, lencom)
606
608 ENDIF
609
610 multi_fvm%IS_RESTART = .false.
611
612 ENDIF
613
614
615
617 1 agrav, igrv , lgrav, sensors%NSENSOR,sensors%SENSOR_TAB,
618 2 itask, npc , tf , skew )
619
620
621
622
623
624 IF(bcs%NUM_WALL > 0)THEN
625 CALL bcs_wall_trigger(tt,ale_connectivity,sensors%NSENSOR,sensors%SENSOR_TAB)
626 ENDIF
627
628
630
631 IF (multi_fvm%MUSCL == 1) THEN
632
633
634
635
636 pred = .true.
637
639 . pm, ipm, multi_fvm, ale_connectivity, v, a, w, x, d, ale_connectivity%NALE,
640 . partsav, iparts, gresav, igrth, grth,
641 . nercvois, nesdvois, lercvois, lesdvois,
642 . itab, itabm1, tt - dt1,
643 . stifn, fsky, iads, fskym,
644 . condn, condnsky, bufmat, fv, pred,id_global_vois,face_vois,ebcs_tab,npc,tf,fsavsurf,matparam,
645 . output%TH%WFEXT)
646
648
649
650
652 . pm, ipm, multi_fvm, tt - dt1, bufmat,npc,tf,nummat,matparam)
654
655
656
657
658 pred = .false.
659
661 . pm, ipm, multi_fvm, ale_connectivity, v, a, w, x, d, ale_connectivity%NALE,
662 . partsav, iparts, gresav, igrth, grth,
663 . nercvois, nesdvois, lercvois, lesdvois,
664 . itab, itabm1, tt - dt1,
665 . stifn, fsky, iads, fskym,
666 . condn, condnsky, bufmat, fv, pred,id_global_vois,face_vois,ebcs_tab,npc,tf,fsavsurf,matparam,
667 . output%TH%WFEXT)
668
670
671
672
674 . pm, ipm, multi_fvm, tt, bufmat,npc,tf,nummat,matparam)
676 ELSE
677
678
679
681 . pm, ipm, multi_fvm, ale_connectivity, v, a, w, x, d, ale_connectivity%NALE,
682 . partsav, iparts, gresav, igrth, grth,
683 . nercvois, nesdvois, lercvois, lesdvois,
684 . itab, itabm1, tt - dt1,
685 . stifn, fsky, iads, fskym,
686 . condn, condnsky, bufmat, fv, .false.,id_global_vois,face_vois,ebcs_tab,npc,tf,fsavsurf,matparam,
687 . output%TH%WFEXT)
689
690 IF (multi_fvm%NS_DIFF) THEN
691
692 CALL ns_fvm_diffusion(ale_connectivity, multi_fvm, dt1, ebcs_tab, diffusion,
693 . ipm, pm, iparg, elbuf_tab, nercvois, nesdvois, lercvois, lesdvois,
694 . ixs, fv)
695
696 ENDIF
697
698
699
701 . pm, ipm, multi_fvm, tt, bufmat,npc,tf,nummat,matparam)
703 ENDIF
704
705
706
707
710
711
712
713 IF(n2d == 0)THEN
714 DO i=nodft,nodlt
715 ms(i)=ms(i)-msnf(i)
716 msnf(i)=zero
717 ENDDO
718 ENDIF
720 IF (iale > 0) THEN
722 . ixs, ixq, iparg, x, a, v, w, ms, msnf, veul,
723 . stifn, fsky, iads, fskym,
724 . condn, condnsky, multi_fvm,glob_therm%NODADT_THERM)
726 ENDIF
727
728
729
730 CALL multi_compute_dt(dt2t, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, w, x, neltst, ityptst)
732 ENDIF
733 IF(itask==0)
CALL stoptime(timers,macro_timer_multifvm)
734
735 ELSE
736
737
738
739
741 1 iparg, elbuf_tab, wa, val2,
742 2 phi, ale_connectivity,ixs, ixq,
743 3 v, w, x, pm,
744 4 ms, veul, fill, dfill,
745 5 alph, fv, bufmat, tf,
746 6 npc, itask, nbrcvois, nbsdvois,
747 7 lnrcvois, lnsdvois, nercvois, nesdvois,
748 8 lercvois, lesdvois, segvar,
749 9 msnf, nodft, nodlt, wa(iadbh),
750 a ipm, qmv, itab, itabm1,
751 b lenqmv, nv46,
752 c iad_elem, glob_therm,
753 d fr_elem, matparam)
754 ENDIF
755 ELSE
757 ENDIF
758
760
761
762
763
764 IF(nmult > 0)THEN
765 DO n=nodft,nodlt
766 ims(n)=0
767 DO m=1,nmult
768 ifill(n,m)=-2
769 dfill(n,m)=zero
770 ENDDO
771 ENDDO
772 ENDIF
773
774
775
776
778
779
781 1 agrav, igrv , lgrav, sensors%NSENSOR,sensors%SENSOR_TAB,
782 2 itask , npc , tf , skew )
783 ENDIF
784
785
787
788
789
790
791
792 IF(isfem >= 1) THEN
793 CALL s4alesfem(iparg,ixs,x,elbuf_tab,sfem_nodvar,s_sfem_nodvar,pm,iad_elem,fr_elem)
794 ENDIF
795
796
797
798
799
800 IF(
ale%GRID%NWALE == 7)
THEN
801
802 ale%GRID%flow_tracking_data%EP(1:9)=zero
803 ale%GRID%flow_tracking_data%SUM_M = zero
804 ale%GRID%flow_tracking_data%NUM_ELEM_ALE = 0
805
806 ENDIF
807
808
809
810
811 DO ng=itask+1,ngroup,nthread
812
813 sensors%NGR_SENSOR(itask+1) = ng
814 IF (tt > zero .AND. iparg(76, ng) == 1) cycle
815 IF(iparg(8,ng) /= 1) THEN
816
818 2 mtn ,nel ,nft ,iad ,ity ,
819 3 npt ,jale ,ismstr ,jeul ,jtur ,
820 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
821 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
822 6 irep ,iint ,igtyp ,israt ,isrot ,
823 7 icsen ,isorth ,isorthg ,ifailure,jsms )
824
825 IF (mtn == 151) cycle
826 IF(jlag /= 1 .AND. ity <= 2) THEN
827 IF(iparg(64,ng)==1) ilaw11=1
828 IF (mtn /= 0 .AND. iparg(64,ng)==0) THEN
829 nsg =iparg(10,ng)
830 nvc =iparg(19,ng)
831 isolnod=iparg(28,ng)
832 istra =iparg(44,ng)
833 jsph =0
834 jplasol=ipla
835 isph2sol = 0
836 ipartsph = iparg(69,ng)
837 lft=1
838 llt=nel
839 nf1=nft+1
840
841 IF (ity == 1 .AND. isolnod == 4) THEN
843 1 elbuf_tab, ng, pm, geo,
844 2 ixs, x, a, v,
845 3 ms, w,
846 4 veul, fv
847 5 tf, npc, bufmat, partsav,
848 6 nloc_dmg, dt2t, neltst, ityptst,
849 7 stifn, fsky, iads, offset,
850 8 eani, iparts(nf1), fx(1,1), fy
851 9 fz(1,1), fx(1,2),
852 a fx(1,3), fy(1,3), fz(1,3), fx(1,4),
853 b fy(1,4), fz(1,4), nel, fskym,
854 c msnf, ipm, igeo, bufvois,
855 d istra, itask, bid, bid,
856 e bid, ibid
857 f igrth,
858 g xdp, sfem_nodvar
859 h bid
860 i mat_elem, ibid, dt
861 j nsvois, sz_bufvois
862 k sbufmat, svis, idtmins
863 * idel7ng, maxfunc, userl_avail, glob_therm,
864 v
865
866 ELSEIF (ity == 1 .AND. isolnod /= 4) THEN
867 NULLIFY(pqmv);
868 IF(trimat>0)THEN
869 pqmv => qmv(1,1+nft)
870 ELSE
871 pqmv => bid
872 ENDIF
873 CALL sforc3(timers,output,
874 1 elbuf_tab, ng, pm,
875 2 ixs, x, nv46, a,
876 3 v, ms, w, wa,
877 4 val2, veul, fv, ale_connectivity,
878 5 iparg, tf, npc, bufmat,
879 6 partsav, itab, dt2t, neltst,
880 7 ityptst, stifn, fsky, iads,
881 8 offset, eani, iparts(1+nft), fx(1,1),
882 9 fy(1,1), fz(1,1), fx(1,2), fy(1,2),
883 a fz(1,2), fx(1,3), fy(1,3), fz(1,3),
884 b fx(1,4), fy(1,4), fz(1,4), fx(1,5),
885 c fy(1,5), fz(1,5), fx(1,6), fy(1,6),
886 d fz(1,6), fx(1,7), fy(1,7), fz(1,7),
887 e fx(1,8), fy(1,8), fz(1,8), nel,
888 f fskym, msnf, isky, fskyi,
889 g nvc, ipm, igeo, bid,
890 h bid, bid, bid, bid,
891 i bufvois, itask, pqmv, istra,
892 j temp, bid, bid, ibid,
893 k gresav, grth, igrth, mssa,
894 l dmels, table, bid, bid,
895 m bid, bid, bid, bid,
896 n bid, bid, bid, iparg(1,ng),
897 o xdp, bid, ibid, ibid,
898 p voln, condn, condnsky, agrav,
899 q igrv, lgrav, sensors, skew,
900 r ale_connectivity%NALE, d, ioutprt, nloc_dmg,
901 s mat_elem, ibid, dt, idel7nok,nsvois,
902 t sz_bufvois, snpc, stf, sbufmat,svis,idtmins,iresp,
903 u idel7ng, maxfunc, userl_avail, glob_therm,
904 v impl_s, idyna, output%TH%WFEXT)
905
906 ELSEIF (ity == 2 .AND. jmult == 0) THEN
907 NULLIFY(pqmv);
908 IF(trimat>0)THEN
909 pqmv => qmv(1,1+nft)
910 ELSE
911 pqmv => bid
912 ENDIF
913 CALL qforc2(timers, output,
914 . elbuf_tab ,ng ,
915 1 pm ,geo ,ixq ,x ,a ,
916 2 v ,ms ,w ,wa ,val2 ,
917 3 veul ,ale_connectivity ,iparg ,nloc_dmg ,
918 4 tf ,npc ,bufmat ,partsav ,
919 5 dt2t ,neltst ,ityptst ,stifn ,offset ,
920 6 eani ,ipartq(1+nft) ,nel ,iadq ,fsky ,
921 9 ipm ,bufvois ,pqmv ,
922 a gresav ,grth ,igrth ,table ,igeo ,
923 b voln ,itask ,ms_2d ,fskym ,ioutprt ,
924 c mat_elem ,h3d_data%STRAIN ,sz_bufvois ,snpc ,stf ,sbufmat ,
925 d svis ,nsvois ,iresp ,tt ,dt1 ,
926 . idel7nok ,idtmin ,maxfunc ,
927 . imon_mat ,userl_avail ,impl_s ,idyna ,
928 . dt ,glob_therm ,sensors)
929
930 ELSEIF (ity == 2 .AND. jmult /= 0) THEN
932 . elbuf_tab , ng ,
933 1 pm , geo ,ixq , x ,
934 2 a , v ,ms , w , wa ,
935 3 val2 , veul ,ale_connectivity, iparg ,
936 4 iparg(1,ng) , fill ,dfill , ims , nloc_dmg ,
937 5 tf , npc ,bufmat , partsav ,
938 6 dt2t , neltst ,ityptst , stifn , offset ,
939 7 eani , ipartq(1+nft) ,nel , iadq , fsky ,
940 8 ipm , bufvois ,
941 9 gresav , grth ,igrth , table , igeo ,
942 o voln , itask ,ms_2d , fskym , mat_elem ,
943 b ibid , output ,sz_bufvois , snpc , stf ,sbufmat, svis,
944 c nsvois , iresp ,idel7nok ,
945 d idtmin , maxfunc ,imon_mat ,
946 e userl_avail , impl_s , idyna ,dt ,
947 f glob_therm , sensors)
948 ENDIF
949 ENDIF
950 ENDIF
951 ENDIF
952 ENDDO
953
954
955
956
958 IF (ilaw11 /= 0) THEN
959 IF(nspmd > 1) THEN
960
961
962
963
964
965
967 lencom=nbrcvois(nspmd+1)+nbsdvois(nspmd+1)
968 IF(m51_iflg6 == 0) THEN
969
970
972 1 v ,nbrcvois,nbsdvois,lnrcvois,lnsdvois,
973 2 lencom )
974
975 IF(
ale%GLOBAL%INCOMP == 1 .OR. iturb + glob_therm%ITHERM == 0)
976 .
CALL spmd_xvois(x,nbrcvois,nbsdvois,lnrcvois,lnsdvois,lencom )
977
979 1 bufvois ,iparg ,elbuf_tab,pm ,ixs ,
980 2 ixq ,nercvois,nesdvois,lercvois,lesdvois,
981 3 lencom )
982 ELSE
983
985 1 bufvois ,iparg ,elbuf_tab,pm ,ixs ,
986 2 ixq ,nercvois,nesdvois,lercvois,lesdvois,
987 3 lencom ,ipm ,bufmat)
988 ENDIF
990
991 ENDIF
992
993 DO ng=itask+1,ngroup,nthread
994
995 sensors%NGR_SENSOR(itask+1) = ng
996 IF (tt > zero .AND. iparg(76, ng) == 1) cycle
998 2 mtn ,nel ,nft ,iad ,ity ,
999 3 npt ,jale ,ismstr ,jeul ,jtur ,
1000 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
1001 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
1002 6 irep ,iint ,igtyp ,israt ,isrot ,
1003 7 icsen ,isorth ,isorthg ,ifailure,jsms )
1004 IF (mtn == 151) cycle
1005 IF (iparg(8,ng) /= 1) THEN
1006 IF (jlag /= 1 .AND. ity <= 2) THEN
1007 IF (mtn == 11 .OR. iparg(64,ng) == 1) THEN
1008 nsg =iparg(10,ng)
1009 nvc =iparg(19,ng)
1010 isolnod=iparg(28,ng)
1011 istra = iparg(44,ng)
1012 jsph =0
1013 isph2sol = 0
1014 ipartsph = iparg(69,ng)
1015
1016 lft=1
1017 llt=nel
1018 nf1=nft+1
1019
1020 IF(ity == 1 .AND. isolnod == 4)THEN
1022 1 elbuf_tab, ng, pm, geo,
1023 2 ixs, x, a, v,
1024 3 ms, w, wa, val2,
1025 4 veul, fv, ale_connectivity,iparg,
1026 5 tf, npc, bufmat, partsav,
1027 6 nloc_dmg, dt2t, neltst, ityptst,
1028 7 stifn, fsky, iads, offset,
1029 8 eani, iparts(nf1), fx(1,1), fy(1,1),
1030 9 fz(1,1), fx(1,2), fy(1,2), fz(1,2),
1031 a fx(1,3), fy(1,3), fz(1,3), fx(1,4),
1032 b fy(1,4), fz(1,4), nel, fskym,
1033 c msnf, ipm, igeo, bufvois,
1034 d istra, itask, bid, bid,
1035 e bid, ibid, gresav, grth,
1036 f igrth, mssa, dmels, table,
1037 g xdp, sfem_nodvar, voln, bid,
1038 h bid, d, sensors, ioutprt,
1039 i mat_elem, ibid, dt, idel7nok,
1040 j nsvois, sz_bufvois, snpc, stf,
1041 k sbufmat, svis, idtmins, iresp,
1042 * idel7ng, maxfunc, userl_avail, glob_therm,
1043 v impl_s, idyna, s_sfem_nodvar)
1044
1045 ELSEIF(ity == 1 .AND. isolnod /= 4)THEN
1046 NULLIFY(pqmv);
1047 IF(trimat>0)THEN
1048 pqmv => qmv(1,1+nft)
1049 ELSE
1050 pqmv => bid
1051 ENDIF
1052 CALL sforc3(timers, output,
1053 1 elbuf_tab, ng, pm, geo,
1054 2 ixs, x, nv46, a,
1055 3 v, ms, w, wa,
1056 4 val2, veul, fv, ale_connectivity,
1057 5 iparg, tf, npc, bufmat,
1058 6 partsav, itab, dt2t, neltst,
1059 7 ityptst, stifn, fsky, iads,
1060 8 offset, eani, iparts(1+nft), fx(1,1),
1061 9 fy(1,1), fz(1,1), fx(1,2), fy(1,2),
1062 a fz(1,2), fx(1,3), fy(1,3), fz(1,3),
1063 b fx(1,4), fy(1,4), fz(1,4), fx(1,5),
1064 c fy(1,5), fz(1,5), fx(1,6), fy(1,6),
1065 d fz(1,6), fx(1,7), fy(1,7), fz(1,7),
1066 e fx(1,8), fy(1,8), fz(1,8), nel,
1067 f fskym, msnf, isky, fskyi,
1068 g nvc, ipm, igeo, bid,
1069 h bid, bid, bid, bid,
1070 i bufvois, itask, pqmv, istra,
1071 j temp, bid, bid, ibid,
1072 k gresav, grth, igrth, mssa,
1073 l dmels, table, bid, bid,
1074 m bid, bid, bid, bid,
1075 n bid, bid, bid, iparg(1,ng),
1076 o xdp, bid, ibid, ibid,
1077 p voln, condn, condnsky, agrav,
1078 q igrv, lgrav, sensors, skew,
1079 r ale_connectivity%NALE,d, ioutprt, nloc_dmg,
1080 s mat_elem, ibid, dt, idel7nok,nsvois,
1081 t sz_bufvois, snpc, stf,sbufmat,svis,idtmins,iresp,
1082 u idel7ng, maxfunc, userl_avail ,glob_therm,
1083 v impl_s, idyna, output%TH%WFEXT)
1084
1085 ELSEIF (ity == 2 .AND. jmult == 0) THEN
1086 NULLIFY(pqmv);
1087 IF(trimat>0)THEN
1088 pqmv => qmv(1,1+nft)
1089 ELSE
1090 pqmv => bid
1091 ENDIF
1092 CALL qforc2(timers, output,
1093 . elbuf_tab ,ng ,
1094 1 pm ,geo ,ixq ,x ,a ,
1095 2 v ,ms ,w ,wa ,val2 ,
1096 3 veul ,ale_connectivity ,iparg ,nloc_dmg ,
1097 4 tf ,npc ,bufmat ,partsav ,
1098 5 dt2t ,neltst ,ityptst ,stifn ,offset ,
1099 6 eani ,ipartq(1+nft) ,nel ,iadq ,fsky ,
1100 9 ipm ,bufvois ,pqmv ,
1101 a gresav ,grth ,igrth ,table ,igeo ,
1102 b voln ,itask ,ms_2d ,fskym ,ioutprt ,
1103 c mat_elem ,h3d_data%STRAIN ,sz_bufvois ,snpc ,stf ,sbufmat,
1104 d svis ,nsvois ,iresp ,tt ,dt1 ,
1105 . idel7nok ,idtmin ,maxfunc ,
1106 . imon_mat ,userl_avail ,impl_s ,idyna ,
1107 . dt ,glob_therm ,sensors)
1108
1109 ELSEIF(ity == 2 .AND. jmult /= 0)THEN
1110 CALL bforc2(timers, elbuf_tab ,ng ,
1111 1 pm ,geo ,ixq ,x ,
1112 2 a ,v ,ms ,w ,wa ,
1113 3 val2 ,veul ,ale_connectivity ,iparg ,
1114 4 iparg(1,ng),fill ,dfill ,ims ,nloc_dmg ,
1115 5 tf ,npc ,bufmat ,partsav ,
1116 5 dt2t ,neltst ,ityptst ,stifn ,offset ,
1117 6 eani ,ipartq(1+nft),nel ,iadq ,fsky ,
1118 7 ipm ,bufvois ,
1119 8 gresav ,grth ,igrth ,table ,igeo ,
1120 9 voln ,itask ,ms_2d ,fskym ,mat_elem,
1121 a ibid ,output ,sz_bufvois ,snpc ,stf ,sbufmat ,svis,
1122 b nsvois ,iresp ,idel7nok ,
1123 c idtmin ,maxfunc ,imon_mat ,
1124 e userl_avail,impl_s ,idyna ,dt ,
1125 f glob_therm ,sensors)
1126
1127 ENDIF
1128 ENDIF
1129 ENDIF
1130 ENDIF
1131 enddo
1132
1133 endif
1134
1135 ENDIF
1136 IF(itask==0)
CALL stoptime(timers,macro_timer_ifsub0)
1137 endif
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149 IF (nbgauge > 0) THEN
1150 IF (nspmd > 1) THEN
1151 lencom =nercvois(nspmd+1)+nesdvois(nspmd+1)
1152 END IF
1154 1 iparg ,elbuf_tab ,phi ,ixs ,ixq ,
1155 2 x ,ale_connectivity,itask ,nercvois,nesdvois,
1156 3 lercvois,lesdvois ,lencom ,lgauge ,
1157 4 gauge ,v ,igaup ,ngaup ,ixtg)
1158 ENDIF
1159
1160
1161
1162
1163 IF(
ale%SUB%IALESUB == 2)
THEN
1164
1165
1166
1167 IF(itask == 0) THEN
1168 IF(
ale%SUB%IFSUB == 0)
THEN
1170 ENDIF
1171 ENDIF
1173 IF(
ale%SUB%IFSUB == 1)
THEN
1174
1175
1176 DO n=nodft,nodlt
1177 aglob(1,n)=asave(1,n)
1178 aglob(2,n)=asave(2,n)
1179 aglob(3,n)=asave(3,n)
1180 ENDDO
1181 ENDIF
1182 ENDIF
1183
1184
1185
1186
1188 DEALLOCATE(qmv)
1189 IF(itask==0)DEALLOCATE(bufvois)
1190
1191
1192 RETURN
subroutine agauge(iparg, elbuf_str, phi, ixs, ixq, x, ale_connect, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, lgauge, gauge, v, igaup, ngaup, ixtg)
subroutine alefvm_grav_init(python, agrv, igrv, lgrav, nsensor, sensor_tab, itask, npc, tf, skew)
subroutine alesub1(nale, v, w, dsave, icodt, iskew, skew, d, itask, nodft, nodlt, fsky, fskyv)
subroutine alethe(iparg, elbuf_tab, flux, val2, phi, ale_connect, ixs, ixq, v, w, x, pm, ms, veul, fill, dfill, alph, fv, bufmat, tf, npf, itask, nbrcvois, nbsdvois, lnrcvois, lnsdvois, nercvois, nesdvois, lercvois, lesdvois, segvar, msnf, nodft, nodlt, bhole, ipm, qmv, itab, itabm1, lenqmv, nv46, iad_elem, glob_therm, fr_elem, matparam)
subroutine bforc2(timers, elbuf_tab, ng, pm, geo, ic, x, a, v, ms, w, flux, flu1, veul, ale_connect, iparg, jparg, fill, dfill, ims, nloc_dmg, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, offset, eani, ipartq, nel, iadq, fsky, ipm, bufvois, gresav, grth, igrth, table, igeo, voln, itask, ms_2d, fskym, mat_elem, h3d_strain, output, sz_bufvois, snpc, stf, sbufmat, svis, nsvois, iresp, idel7nok, idtmin, maxfunc, imon_mat, userl_avail, impl_s, idyna, dt, glob_therm, sensors)
subroutine build_connectivity(itask, multi_fvm, ale_connectivity, iparg)
subroutine ebcs_main(igrsurf, segvar, volmon, a, v, w, x, fsav, fv, ms, stifn, iparg, elbuf_tab, ebcs_tab, multi_fvm, ixq, ixs, ixtg, fsky, fsavsurf, time, dt1, nsensor, sensor_tab, python, npc, tf, snpc, stf)
subroutine intti0(ipari, x, v, wa, itab, iparg, ixs, segvar, skew, iskwn, intbuf_tab)
subroutine multi_buf2var(itask, iparg, multi_fvm, elbuf_tab)
subroutine multi_compute_dt(dt2t, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, wgrid, xgrid, neltst, ityptst)
subroutine multi_computevolume(nel, ng, iparg, sym, elbuf_tab, ixs, ixq, ixtg, volnew, xgrid)
subroutine multi_face_elem_data(itask, iparg, ixs, ixq, ixtg, xgrid, wgrid, multi_fvm)
subroutine multi_fvm2fem(timestep, elbuf_tab, itask, ixs, ixq, iparg, xgrid, accele, vel, wgrid, ms, msnf, veul, stifn, fsky, iads, fskym, condn, condnsky, multi_fvm, nodadt_therm)
subroutine multi_globalize(elbuf_tab, iparg, itask, multi_fvm, partsav, iparts, gresav, igrth, grth)
subroutine multi_pressure_equilibrium(timestep, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, current_time, bufmat, npf, tf, nummat, matparam)
subroutine multi_timeevolution(timers, timestep, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, ale_connectivity, vel, accele, wgrid, xgrid, dnod, nale, partsav, iparts, gresav, igrth, grth, nercvois, nesdvois, lercvois, lesdvois, itab, itabm1, current_time, stifn, fsky, iads, fskym, condn, condnsky, bufmat, func_value, pred, id_global_vois, face_vois, ebcs_tab, npf, tf, fsavsurf, matparam, wfext)
subroutine multi_var2buf(itask, iparg, multi_fvm, elbuf_tab)
type(alefvm_param_), target alefvm_param
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
OPTION /TH/SURF outputs of Pressure and Area needed Tabs.
integer, parameter th_surf_num_channel
number of /TH/SURF channels : AREA, VELOCITY, MASSFLOW, P A, MASS
subroutine ns_fvm_diffusion(ale_connect, multi_fvm, time_step, ebcs_tab, diffusion, ipm, pm, iparg, elbuf_tab, nercvois, nesdvois, lercvois, lesdvois, ixs, func_value)
subroutine qforc2(timers, output, elbuf_tab, ng, pm, geo, ic, x, a, v, ms, w, flux, flu1, veul, ale_connect, iparg, nloc_dmg, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, offset, eani, ipartq, nel, iadq, fsky, ipm, bufvois, qmv, gresav, grth, igrth, table, igeo, voln, itask, ms_2d, fskym, ioutprt, mat_elem, h3d_strain, sz_bufvois, snpc, stf, sbufmat, svis, nsvois, iresp, tt, dt1, idel7nok, idtmin, maxfunc, imon_mat, userl_avail, impl_s, idyna, dt, glob_therm, sensors)
subroutine s4alesfem(iparg, ixs, x, elbuf_tab, sfem_nodvar, s_sfem_nodvar, pm, iad_elem, fr_elem)
subroutine s4forc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, nel, fskym, msnf, ipm, igeo, bufvois, istrain, itask, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mssa, dmels, table, xdp, sfem_nodvar, voln, condn, condnsky, d, sensors, ioutprt, mat_elem, h3d_strain, dt, idel7nok, nsvois, sz_bufvois, snpc, stf, sbufmat, svis, idtmins, iresp, idel7ng, maxfunc, userl_avail, glob_therm, impl_s, idyna, s_sfem_nodvar)
subroutine seggetv(iparg, elbuf_tab, ale_connectivity, itask, segvar)
subroutine sforc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, nv46, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, itab, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, fskym, msnf, isky, fskyi, nvc, ipm, igeo, ar, vr, in, fr_wave, dr, bufvois, itask, qmv, istrain, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mssa, dmels, table, phi1, phi2, vf, af, df, wf, ffsky, afglob, msf, iparg1, xdp, por, icontact, ifoam, voln, condn, condnsky, agrav, igrv, lgrav, sensors, skew, nale, d, ioutprt, nloc_dmg, mat_elem, h3d_strain, dt, idel7nok, nsvois, sz_bufvois, snpc, stf, sbufmat, svis, idtmins, iresp, idel7ng, maxfunc, userl_avail, glob_therm, impl_s, idyna, wfext)
subroutine sinit22_fvm(ixs, elbuf_tab, iparg, itab, itask, bufbric, nbric_l, x, ale_connectivity, v, nv46, veul, igrnod, ipari, igrtruss, ixt, bufmat, ipm)
subroutine spmd_envois(dim, phi, nercvois, nesdvois, lercvois, lesdvois, lencom)
subroutine spmd_init_ebcs(v, isizxv, iad_elem, fr_elem, ebcs_tab)
subroutine spmd_xvois(x, nbrcvois, nbsdvois, lnrcvois, lnsdvois, lencom)
subroutine spmd_segcom(segvar, npsegcom, lsegcom, size, flag)
subroutine spmd_l51vois(lbvois, iparg, elbuf_tab, pm, ixs, ixq, nercvois, nesdvois, lercvois, lesdvois, lencom, ipm, bufmat)
subroutine spmd_l11vois(lbvois, iparg, elbuf_tab, pm, ixs, ixq, nercvois, nesdvois, lercvois, lesdvois, lencom)
subroutine startime(event, itask)
subroutine stoptime(event, itask)