242 1 P ,CEP ,CEL ,IGEO ,MAT_ELEM ,
243 2 IPM ,ICODE ,ISKEW ,ISKN ,INSEL ,
244 3 IBCSLAG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
245 4 IPARTT ,IPARTP ,IPARTR ,IPARTTG ,DETONATORS ,
246 5 IPARTX ,NPC ,IXTG ,GROUP_PARAM_TAB,
247 6 IXTG6 ,IXS ,IXS10 ,IXS20 ,IXS16 ,
248 7 IXQ ,IXC ,IXT ,IXP ,IXR ,
249 8 ITAB ,ITABM1 ,GJBUFI ,NALE ,
251 A KXX ,IXX ,IBCL ,IBFV ,
252 B LAS ,LACCELM ,NNLINK ,LLLINK ,
253 C IPARG ,IGRAV ,LGRAV ,IBVEL ,LBVEL ,
254 D IACTIV ,FACTIV ,KINET ,IPARI ,NPRW ,
255 E LPRW ,IEXMAD ,NPBY ,
256 F LPBY ,IXRI ,NSTRF ,LJOINT ,PORNOD ,
257 G MONVOL ,ICONTACT ,LAGBUF ,
258 H FR_IAD ,X ,D ,V ,VR ,
259 I DR ,THKE ,DAMPR ,DAMP ,MS ,
260 J IN ,TF ,PM ,SKEW ,XFRAME ,
261 K GEO ,EANI ,BUFMAT ,BUFGEO ,BUFSF ,
262 L BRMPC ,GJBUFR ,W ,VEUL ,FILL ,
263 M DFILL ,WB ,DSAV ,ASAV ,MSNF ,
264 N SPBUF ,FAC ,VEL ,FSAV ,FZERO ,
265 O XLAS ,ACCELM ,FBVEL ,GRAVFAC ,
266 P FR_WAVE ,FAILWAVE ,PARTS0 ,ELBUF ,
267 Q RWL ,RWSAV ,RBY ,RIVET ,
268 R SECBUF ,RVOLU ,RCONX ,NLOC_DMG ,
269 S FVMAIN ,LIBAGALE ,LENTHG ,LBUFMAT ,LBUFGEO ,
270 T LBUFSF ,LENXLAS ,LNOM_OPT ,LENLAS ,
271 U LENVOLU ,NPTS ,CNE ,LCNE ,
272 V ADDCNE ,CNI2 ,LCNI2G ,ADDCNI2 ,CEPI2 ,
273 W CELI2 ,I2NSNT ,PROBINT ,DDSTAT ,PM1SHF ,
275 Z KXSP ,IXSP ,NOD2SP ,CEPSP ,
276 a NTHWA ,NAIRWA ,NMNT ,L_MUL_LAG1 ,L_MUL_LAG ,
277 b LWASPIO ,IPARTSP ,ISPCOND ,PM1SPH ,
279 d EIGIPM ,EIGIBUF ,EIGRPM ,
280 e IFLOW ,RFLOW ,MEMFLOW ,IEXLNK ,FASOLFR ,
282 j FXBIPM ,FXBRPM ,FXBNOD ,FXBMOD ,FXBGLM ,
283 k FXBCPM ,FXBCPS ,FXBLM ,FXBFLS ,FXBDLS ,
284 l FXBDEP ,FXBVIT ,FXBACC ,FXBELM ,FXBSIG ,
285 m FXBGRVI ,FXBGRVR ,IADLL ,LLL ,IBMPC ,
286 n LAMBDA ,LRBAGALE ,ISKWP ,NSKWP ,ISENSP ,
287 o NSENSP ,IACCP ,NACCP ,IPART_STATE ,MCP ,
288 p TEMP ,UNITAB ,INTSTAMP ,IFRAME ,CLUSTERS ,
289 q PARTSAV ,IBFT ,FBFT ,IBCV ,
290 r FCONV ,IRBE3 ,LRBE3 ,FRBE3 ,FRONT_RM ,
291 s RBYM ,IRBYM ,LCRBYM ,INOISE ,FNOISE ,
292 t MS0 ,ADMSMS ,NOM_SECT ,ISPSYM ,
293 u SH4TREE ,SH3TREE ,IPADMESH ,IBFFLUX ,FBFFLUX ,
294 v SH4TRIM ,SH3TRIM ,PADMESH ,MSC ,MSTG ,
295 w INC ,INTG ,PTG ,MCPC ,MCPTG ,
296 x RCONTACT ,ACONTACT ,PCONTACT ,MSCND ,INCND ,
297 y MSSA ,MSTR ,MSP ,MSRT ,IBCR ,
298 z FRADIA ,DMELC ,DMELTG ,DMELS ,DMELTR ,
299 1 DMELP ,DMELRT ,RES_SMS , ISPHIO ,
300 2 LPRTSPH ,LONFSPH ,VSPHIO ,SPHVELN ,ALPH ,
301 3 IFILL ,IMS ,IRBE2 ,LRBE2 ,
303 9 ZI_PLY ,INOD_PXFEM ,IEL_PXFEM ,ICODPLY ,ISKWPLY ,
304 A ADDCNE_PXFEM ,CNE_PXFEM ,CEL_PXFEM ,ITHVAR ,XDP,TABLE ,
305 B CELSPH ,ICFIELD ,LCFIELD ,CFIELD ,
306 C MSZ2 ,ITASK ,DIAG_SMS ,
307 D ILOADP ,LLOADP ,LOADP,
308 E INOD_CRKXFEM ,IEL_CRKXFEM ,ADDCNE_CRKXFEM ,CNE_CRKXFEM ,CEL_CRKXFEM ,
309 F IBUFSSG_IO ,INTERCEP ,IBORDNODE ,IEDGESH ,IBORDEDGE ,
310 G LINALE ,NODEDGE ,IEDGE ,CEP_CRKXFEM ,IEDGE_TMP ,
311 H CRKNODIAD ,ELBUF_TAB ,NOM_OPT ,LGAUGE ,GAUGE ,
312 I IGAUP ,NGAUP ,NODLEVXF ,FRONTB_R2R ,DFLOW ,
313 J VFLOW ,WFLOW ,SPH2SOL ,SOL2SPH ,IRST ,
314 K ELCUTC ,NODENR ,KXFENOD2ELC ,ENRTAG ,INTBUF_TAB,
315 M I11FLAG ,XFEM_TAB ,LENTHGR ,RTHBUF ,
316 N IXIG3D ,KXIG3D ,KNOT ,IPARTIG3D ,WIGE ,
317 O NCRKPART ,INDX_CRK ,CRKLVSET ,CRKSHELL ,CRKSKY ,
318 P CRKAVX ,CRKEDGE ,SENSORS ,
319 Q STACK ,XFEM_PHANTOM ,T8 ,TAB_UMP ,POIN_UMP ,
320 R SOL2SPH_TYP ,ADDCSRECT ,CSRECT ,DRAPE ,LOADS ,
321 S ITAGND ,ICNDS10 ,ADDCNCND ,
322 T CEPCND ,CELCND ,CNCND ,NATIV_SMS ,I24MAXNSNE ,
323 U MULTI_FVM ,SEGQUADFR ,INTBUF_FRIC_TAB,SUBSET ,IGRNOD ,
324 V IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
325 W IGRBEAM ,IGRSPRING ,IGRPART ,IGRSURF ,IGRSLIN ,
326 X POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,MID_PID_SHELL,MID_PID_TRI ,
327 Y MID_PID_SOL , TAG_NM ,NINDX_NM ,INDX_NM ,TAG_SCRATCH ,
328 Z NINDX_SCRT , INDX_SCRT ,FLAG_24_25 ,NUMNOD_L ,TAG_SKN ,
329 A MULTIPLE_SKEW, IGRSURF_PROC,KNOTLOCPC ,KNOTLOCEL ,ALE_ELM,
330 B SIZE_ALE_ELM ,PINCH_DATA ,TAG_SKINS6 ,IBCSCYC ,LBCSCYC ,T_MONVOL,
331 C INDX_S,INDX_Q,INDX_TG,FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,NBR_TH_MONVOL, EBCS_TAB,
332 D KLOADPINTER , LOADPINTER ,DGAPLOADINT ,S_LOADPINTER, LEN_CEP ,DYNAIN_DATA,
333 E DRAPEG ,USER_WINDOWS,OUTPUT ,INTERFACES ,NUMBER_LOAD_CYL,
334 F LOADS_PER_PROC, PYTHON ,DPL0CLD ,VEL0CLD ,NAMES_AND_TITLES,
335 G BCS_PER_PROC,constraint_struct,glob_therm ,PBLAST)
385 USE bcs_mod ,
ONLY : bcs_struct_
386 use constraint_mod ,
only : constraint_
387 use c_inivell_mod ,
only : c_inivell
388 use w_inivel_str_mod ,
only : w_inivel_str
390 use write_ale_grid_mod,
only : write_ale_grid
393 use checksum_starter_option_mod,
only : checksum_write_starter_restart
398#include "implicit_f.inc"
402#include "com01_c.inc"
403#include "com04_c.inc"
404#include "com10_c.inc"
405#include "com_xfem1.inc"
407#include "flowcom.inc"
409#include "intstamp_c.inc"
410#include "lagmult.inc"
411#include "param_c.inc"
412#include "scr03_c.inc"
413#include "scr05_c.inc"
414#include "scr15_c.inc"
415#include "scr16_c.inc"
416#include "scr17_c.inc"
417#include "scr23_c.inc"
420#include "tabsiz_c.inc"
421#include "tablen_c.inc"
422#include "remesh_c.inc"
424#include "inter22.inc"
425#include "drape_c.inc"
426#include "debug_rst.inc"
429 INTEGER,
DIMENSION(:),
POINTER :: P
430 END
TYPE INTERMASURFEP
431 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
432 TYPE (OUTPUT_),
INTENT(IN) :: OUTPUT
433 TYPE (INTERFACES_) ,
INTENT(IN) :: INTERFACES
434 TYPE(python_),
INTENT(INOUT) :: PYTHON
435 TYPE(pblast_),
INTENT(INOUT) :: PBLAST
439 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
440 INTEGER,
INTENT(IN) :: LEN_CEP
441 INTEGER,
DIMENSION(SCEL),
INTENT(IN) :: CEL
444 . libagale, lenthg, lenlas, npts,len,
445 . lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt,
446 . lenvolu, nthwa, nairwa, nmnt, i2nsnt,
447 . l_mul_lag1, l_mul_lag, lwaspio,pm1sph,
448 . lcni2g, pm1shf, i11flag,lenthgr,ncrkpart,
449 . cep(len_cep),igeo(*), ipm(*),
450 . icode(*),iskew(*),iskn(*),insel(*),ibcslag(*),
451 . ipart(*),iparts(*),ipartq(*),ipartc(*),ipartt(*),
452 . ipartp(*),ipartr(*),iparttg(*),ipartx(*),
453 . npc(*),ixtg(nixtg,*),ixtg6(4,*),
454 . ixs(nixs,*),ixs10(6,*),ixs20(12,*),ixs16(8,*),
455 . ixq(nixq,*),ixc(*),ixt(*),ixp(*),ixr(*),
456 . itab(*),itabm1(*),gjbufi(*),
457 . nale(*),iexmad(*),kxx(*),ixx(*),ibcl(*),ibfv(*),las(*),
458 . laccelm(*),nnlink(*),lllink(*),
459 . iparg(*),igrav(*),lgrav(*),
460 . ibvel(*),lbvel(*),iactiv(*),kinet(*),
461 . ipari(*),nprw(*),lprw(*),
462 . npby(*),lpby(*), iexlnk(*),
463 . ixri(*),nstrf(*),ljoint(*),
pornod(*),monvol(*),fvmain(*),
464 . lagbuf(*), fr_iad(*),
465 . icontact(*), ipartsp(*), ispcond(*),
466 . ddstat(50), cne(*), lcne, addcne(0:*),
467 . cni2(*), addcni2(0:*), cepi2(*), celi2(*),
469 . kxsp(*), ixsp(*), nod2sp(*), cepsp(*),
470 . eigipm(*), eigibuf(*), iflow(*), fasolfr(2,*),
472 . fxbipm(*), fxbnod(*),
473 . fxbelm(*), fxbgrvi(*), iadll(*), lll(*),ibmpc(*),lrbagale,
474 . iskwp(*), nskwp(*), isensp(2,*), nsensp(*),
475 . iaccp(p), naccp(*), ipart_state(*), iframe(*),
476 . ibft(*),ibcv(*),irbe3(nrbe3l,*),lrbe3(*),
477 . irbym(*) ,lcrbym(*),front_rm(nrbym,*),inoise(*),
478 . nom_sect(*), ispsym(*), sh4tree(*), sh3tree(*),
479 . ipadmesh(*), sh4trim(*), sh3trim(*), ibcr(*), ibfflux(*),
480 . isphio(*), lprtsph(*), lonfsph(*), ifill(*), ims(*),
481 . irbe2(nrbe2l,*),lrbe2(*),inod_pxfem(*) ,
482 . iel_pxfem(*) ,icodply(*),iskwply(*) ,addcne_pxfem(0:*),
483 . cne_pxfem(*),cel_pxfem(*),ithvar(*), celsph(numsph),
484 . icfield(*),lcfield(*),iloadp(*),lloadp(*),inod_crkxfem(*),
485 . iel_crkxfem(*),addcne_crkxfem(0:*),cne_crkxfem(*),
486 . cel_crkxfem(*),ibordnode(*),iedgesh(*),ibordedge(*),
487 . linale(*),nodedge(2,*),iedge(*),cep_crkxfem(*),
488 . iedge_tmp(3,*),crknodiad(*), lgauge(*), igaup(*),ngaup(*),
489 . nodlevxf(*),frontb_r2r(sfrontb_r2r
490 . sph2sol(*), sol2sph(*), irst(*),elcutc(2,*),nodenr(*),
491 . kxfenod2elc(*),enrtag(*),ixig3d(*),kxig3d(*),
492 . ipartig3d(*),indx_crk(*),
493 . poin_ump(nummat),sol2sph_typ(*), addcsrect(*), csrect(*),
494 . itagnd(*),icnds10(*),
495 . addcncnd(0:*), cepcnd(*), celcnd(*),cncnd(*),nativ_sms(*),
496 . i24maxnsne,segquadfr(2,*),tag_skins6(*),ibcscyc(*),lbcscyc(*)
497 INTEGER,
INTENT(IN) :: S_LOADPINTER
498 INTEGER,
INTENT(IN) :: KLOADPINTER(NINTER+1) ,LOADPINTER(S_LOADPINTER)
499 my_real ,
INTENT(IN) :: DGAPLOADINT( )
500 INTEGER NOM_OPT(LNOPT1,*)
501 INTEGER(KIND=8) :: MEMFLOW(*)
502 INTEGER,
DIMENSION(2,NPART),
INTENT(IN) :: POIN_PART_SHELL,POIN_PART_TRI
503 INTEGER,
DIMENSION(2,NPART,7),
INTENT(IN) :: POIN_PART_SOL
504 INTEGER :: NBR_TH_MONVOL
509 . X(*), D(*), (*), VR(*), DR(*),
510 . THKE(*), DAMPR(*), DAMP(*), MS(*), IN(*),
511 . TF(*), PM(*), SKEW(*), XFRAME(*), GEO(*),
512 . EANI(*), BUFMAT(*), BUFSF(*), BRMPC(*),
513 . GJBUFR(*), W(*), VEUL(*), FILL(*), DFILL(*),
514 . WB(*), (*), DSAV(*), MSNF(*),
515 . SPBUF(*), FAC(*), VEL(*), FACTIV(*),
516 . FSAV(*), FZERO(*), XLAS(*), ACCELM(*),
517 . FBVEL(*), GRAVFAC(*), FR_WAVE(*), ELBUF(*),
518 . RWL(*), RWSAV(*), RBY(*), RIVET(*),
519 . SECBUF(*), RVOLU(*), PARTS0(*), RCONX(*),
520 . WMA(*), EIGRPM(*), RFLOW(*),
521 . PROBINT, FXBRPM(*), FXBMOD(*), FXBGLM(*), FXBCPM(*),
522 . fxbcps(*), fxblm(*), fxbfls(*), fxbdls(*), fxbdep(*),
523 . fxbvit(*), fxbacc(*), fxbsig(*), fxbgrvr(*), lambda(*),
524 . mcp(*), temp(*), partsav(*),fbft(*), fconv(*),
525 . frbe3(*), rbym(*),fnoise(*), ms0(*), admsms(*),
526 . padmesh(*) ,msc(*), mstg(*),
527 . inc(*), intg(*), ptg(*), mcpc(*), mcptg(*),
528 . rcontact(*), acontact(*), pcontact(*), mscnd(*), incnd(*),
529 . mssa(*), mstr(*), msp(*), msrt(*), fradia(*), fbfflux(*),
530 . dmelc(*), dmeltg(*), dmels(*), dmeltr(*), dmelp(*),
531 . dmelrt(*), res_sms(*), vsphio(*), sphveln(*), alph(*),
532 . ms_ply(*),zi_ply(*),cfield(*),msz2(*),
533 . diag_sms(*),loadp(*),gauge(*),dflow(*),vflow(*),wflow(*),
534 . rthbuf(*),knot(*),wige(*),tab_ump(7,taille),
535 . knotlocpc(*),knotlocel(*)
536 my_real,
INTENT(IN) :: dpl0cld(6,nconld),vel0cld(6,nconld)
537 TYPE (INTSTAMP_DATA) INTSTAMP(*)
538 TYPE (TTABLE) TABLE(*)
539 TYPE () INTBUF_TAB(*)
540 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
541 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP,*) :: XFEM_TAB
542 TYPE (CLUSTER_) ,
DIMENSION(NCLUSTER) :: CLUSTERS
543 TYPE (XFEM_SHELL_) ,
DIMENSION(NLEVMAX) :: CRKSHELL
544 TYPE (XFEM_LVSET_) ,
DIMENSION(NLEVMAX) :: CRKLVSET
545 TYPE (XFEM_SKY_) ,
DIMENSION(NLEVMAX) :: CRKSKY
546 TYPE (XFEM_AVX_) ,
DIMENSION(NLEVMAX) :: CRKAVX
547 TYPE (XFEM_EDGE_) ,
DIMENSION(NXLAYMAX) :: CRKEDGE
548 TYPE (XFEM_PHANTOM_),
DIMENSION(NXLAYMAX) :: XFEM_PHANTOM
549 TYPE (STACK_PLY) :: STACK
550 TYPE (INT8_STRUCT_) :: T8(NSPMD,*)
551 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
552 TYPE(INTBUF_FRIC_STRUCT_) :: INTBUF_FRIC_TAB(*)
553 TYPE(MID_PID_TYPE),
DIMENSION(NUMMAT),
INTENT(IN) :: MID_PID_SHELL,MID_PID_TRI
554 TYPE(MID_PID_TYPE),
DIMENSION(NUMMAT,7),
INTENT(IN) :: MID_PID_SOL
555 TYPE (FAILWAVE_STR_) :: FAILWAVE
556 TYPE (NLOCAL_STR_) :: NLOC_DMG
557 TYPE (DRAPE_) :: DRAPE (NUMELC_DRAPE + NUMELTG_DRAPE)
558 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
559 TYPE (DRAPEG_) :: DRAPEG
561 TYPE (SUBSET_) ,
DIMENSION(NSUBS) :: SUBSET
562 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
563 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
564 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
565 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
566 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
567 TYPE (GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS
568 TYPE (GROUP_) ,
DIMENSION(NGRBEAM) :: IGRBEAM
569 TYPE (GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING
570 TYPE (GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
571 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
572 TYPE (SURF_) ,
DIMENSION(NSLIN) :: IGRSLIN
573 TYPE (PINCH) :: PINCH_DATA
575 LOGICAL,
INTENT(IN) :: FLAG_24_25
576 INTEGER,
INTENT(IN) :: NUMNOD_L
577 INTEGER,
INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
578 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,INDX_SCRT
579 INTEGER,
DIMENSION(*) :: TAG_NM,TAG_SCRATCH
587! TAG_XXX : size = numnod
594 INTEGER,
DIMENSION(NUMSKW+1),
INTENT(INOUT) :: TAG_SKN
595 TYPE(plist_skew_),
DIMENSION(NUMSKW+1),
INTENT(INOUT) :: MULTIPLE_SKEW
596! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
606 TYPE(
surf_),
DIMENSION(NSURF,NSPMD),
INTENT(IN) :: IGRSURF_PROC
614 INTEGER,
INTENT(IN) :: SIZE_ALE_ELM
615 TYPE(split_cfd_type),
INTENT(IN) :: ALE_ELM
621 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(IN) :: T_MONVOL
624 INTEGER,
DIMENSION(*),
INTENT(in) :: INDX_S
625 INTEGER,
DIMENSION(*),
INTENT(in) ::
626 INTEGER,
DIMENSION(*),
INTENT(in) :: INDX_TG
627 INTEGER,
DIMENSION(6*NUMELS,*),
INTENT(in) :: FACE_ELM_S
628 INTEGER,
DIMENSION(4*NUMELQ,*),
INTENT(in) :: FACE_ELM_Q
629 INTEGER,
DIMENSION(3*NUMELTG,*),
INTENT(in) :: FACE_ELM_TG
636 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
639 INTEGER,
INTENT(IN) :: NUMBER_LOAD_CYL
640 TYPE(loads_),
INTENT(IN) :: LOADS
641 TYPE(loads_),
INTENT(INOUT) :: LOADS_PER_PROC
642 TYPE(bcs_struct_),
INTENT(INOUT) :: BCS_PER_PROC
644 type(constraint_),
intent(inout) :: constraint_struct
646 TYPE() ,
intent(inout) :: glob_therm
650 INTEGER,
DIMENSION(:,:),
ALLOCATABLE:: DD_RBYM2
651 INTEGER,
DIMENSION(:,:),
ALLOCATABLE:: DD_RBY2
652 INTEGER I, IR_, IM,IFILNAM(2148),IFILNAM2(2148),
653 . numels_l,numels8_l,numels10_l,numels20_l,numels16_l,
654 . numelq_l ,numelc_l, nconld_l,nskyll_l,
655 . numelt_l,numelp_l,numelr_l,numeltg_l,
656 . numeltg3,numeltg3_l,numeltg6_l,numelx_l,numpor_l,
657 . nsvois,nqvois,ntgvois,ne_nsvois,ne_nqvois,ne_ntgvois,nrcvvois,nsndvois,ilaw11,ljoint_l,
658 . nsegfl_l,ngroup_l, nstrf_l,
660 . lbufel_l, lenwa_l, intbag_l, isumnx_l, numel_l,
661 . nllink_l, llgrav_l, llbvel_l, nfxvel_l, off1,
662 . off, shf, iun, numel, isp0, nbddacc, nbddkin, nbddnod,
663 . nbddproc, nbddboun, nbddnrb, nrbykin_l, nskyrw_l,
664 . nskyrbk_l, lenthgt, nbddi2m, nnmv_l, nnmvc_l, nbddncj,
665 . lcne_l, nisky0_l, lcni2_l, i2nsn_l, niskyi2_l, nir,
666 . nskyrbm_l,nbddnrbm, lsecbuf_l, nnodt_l, nnodl_l,
667 . nmadsh4_l, nmadsh3_l,nmadsol_l,nmadnod_l,madcl_nmadnod_l,
668 . imaximp_l, i2nsn25_l,
669 . numsph_l, lwasph_l, nbi18_l, nskyi18_l,
670 . nsnt_l,nmnt_l,nsnt2_l,nmnt2_l,
671 . nfasolfr_l, nlagf_l, proc, inum, iddl, iskw,
672 . len_ia, len_am, i_eval,r_eval,lskyi, ncmax,
673 . nervois, nesvois,ne_nervois, ne_nesvois, nbcfd, numel_l2,
675 . eigipm_l(neipm,neig), leibuf_l, eigibuf_l(leibuf),
676 . iflow_l(liflow), dd_lagf(3,nspmd+1),my_ilen,my_rlen,
677 . skippon_l,llrbe3_l,nskyrbe3_l,
678 . nrbe3_l,nbddrbe3m,nslarbm_l,nskyrbmk,nrbe3pen_l,
679 . nrbymkin_l ,nbddnrbym,nsktrbmk_l,nrbymk_l,
680 . nskyrbmk_l, lag_sec,
681 . nrbe2_l,llrbe2_l,nbddrbe2,numelcpxfe_l,numnodpxfe_l,
682 . itag_pxfem(nplyxfe),index_pxfem(nplyxfe),
683 . lcnepxfem_l,llcfield_l,
685 . numelccrkxfe_l,numeltgcrkxfe_l,
686 . numedges_l,nbddedge_l,
687 . sdd_r2r_elem,nod_xfe_l,
688 . nsphsol_l,first_sphsol_l,ncluster_l,ixel,flag_allocate,
689 . flag_xfem,numelig3d_l,isumnig3d_l, numnor_l, nbddnort_l,
690 . nbddnor_max_l, nbccfr25_l, nbccnor_l, nbddedgt_l, nbddedg_max_l, nrtmx25_l,
691 . nbddcndm,ns10e_l,lcncnd_l,
692 . nsegquadfr_l ,lintfric, siz,lenigrnod_l,
693 . lenigrbric_l,lenigrquad_l,lenigrsh4n_l,
694 . lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
695 . lenigrsh3n_l,lenisurf_l,lenislin_l,nbcscyc_l,llbcscyc_l,ns_diff,
696 . n_slipring_l,n_retractor_l,n_anchor_remote_l,n_anchor_remote_send_l,
697 . n_seatbelt_l,n_seatbelt_2d_l,numsh4n_l,numsh3n_l,ncload_l,npload_l,
698 . ndamp_vrel_l,idamp_vrel_l(ndamp),ninivelt_l
701 INTEGER NCONV_L,,,NFXFLUX_L
702 INTEGER ,
DIMENSION(:),
ALLOCATABLE:: NUMLOCGROUP,NUMLOCCLUSTER
703 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODLOCAL,IEPXFEM_L,INPXFEM_L,
704 . IELXFEMC_L,INCRKXFEM_L,ELCUTC_L,ELCUTTG_L,NODENR_L,
705 . KXFENOD2ELC_L,ENRTAG_L,
706 . IELXFEMTG_L,INDEX_CRKXFEM,NODLEVXF_L,
707 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODGLOB, IDGLOB_L, UIDGLOB_L,
708 . ixsf, ixqf, ixtgf, itabi2m, itabrbe3m, itabrbe2m
710 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IPARI_L
711 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ,FACE_VOIS
712 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITABCNDM
713 INTEGER LENNOD_L, LENMOD_L, LENELM_L, LENSIG_L,
714 . (NBIPM,NFXBODY), LENGLM_L, LENCP_L, LENLM_L,
715 . lenfls_l, lendls_l, lenmcd_l, lengrvi_l, lengrvr_l
717 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FXBNOD_L, FXBELM_L,
718 . fxbgrvi_l, monvol_l
720 . ,
DIMENSION(:),
ALLOCATABLE :: fxbmod_l, fxbsig_l,
721 . fxbglm_l, fxbcpm_l,
723 . fxbfls_l, fxbdls_l,
725 my_real,
DIMENSION(:),
ALLOCATABLE::rdpartsav
727 . ,
DIMENSION(:),
ALLOCATABLE :: forneqs
730 CHARACTER*4 PROCNAM,CHRUN
731 INTEGER NUM16SHIFT_L,SPHSHIFT_L
732 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISKWP_L
734 INTEGER ,
DIMENSION(:,:),
ALLOCATABLE :: SPH_SEND_ARR,SPH_RECV_ARR
735 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: SPHLOCAL
736 INTEGER RECV_COUNT(NSPMD),SEND_COUNT(NSPMD)
737 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IEDGECRK_L,
738 . ibordedge_l,nodedge_l,iedgesh4_l,iedgesh3_l,tagedge,
739 . iedge_l,edgelocal,edgeglobal
742 INTEGER SLONFSPH_L,SLPRTSPH_L,SSPHVELN_L
744 my_real,
DIMENSION(:),
ALLOCATABLE :: rbufgeo
747 INTEGER :: LEN_TMP_NAME
748 CHARACTER(len=4096) ::
752 INTEGER LHEADER,LVARINT,LVARREA,LMXVINT,LMXVREA,LEN_G,LEN_M,
753 . LEN_S,LEN_ADM,LEN_IG,LEN_PM
754 PARAMETER (LHEADER=15)
755 parameter (lmxvint=4000)
756 parameter(lmxvrea=1000+30*maxlaw+30)
757 INTEGER (LHEADER),TABVINT(LMXVINT)
760 DOUBLE PRECISION XDP(*)
762 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODGLOBXFE
764 TYPE(INTBUF_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: INTBUF_TAB_L
765 TYPE(MAT_ELEM_) ,
INTENT(IN) :: MAT_ELEM
766 TYPE(GROUP_PARAM_) ,
DIMENSION(NGROUP) :: GROUP_PARAM_TAB
774 INTEGER :: IEBCSLGTH, IEBCS_NELEM_L(), IEBCS_TYPE(NEBCS)
775 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
778 my_real,
DIMENSION(:),
ALLOCATABLE :: IEBCS_LISTDP0_L
782 my_real,
DIMENSION(:,:),
ALLOCATABLE :: MULTI_FVM_VEL_L
786 INTEGER,
DIMENSION(:),
ALLOCATABLE :: BUFFER
787 INTEGER :: BUFFER_SIZE
791 INTEGER (KIND=8) :: FILE_SIZE
796 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ELEMID_L
797 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NE_LERCVOIS
798 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NE_LESDVOIS
799 INTEGER :: II, JJ, NEBCS_FVM, IPT, ITMP
800 INTEGER :: NEBCS_PARALLEL,OTHER_NEBCS
801 INTEGER,
DIMENSION(NEBCS) :: LIST_EBCS_PARALLEL,LIST_OTHER_EBCS
802 TYPE(t_ebcs_tab) :: ,EBCS_TAB_LOC_2
803 TYPE(t_connectivity_ext1) :: ee_connect_l
804 LOGICAL :: IS_EBCS_PARALLEL
809 INTEGER,
DIMENSION(LTITLE) :: ITITLE
813 IF (multi_fvm%IS_USED)
THEN
814 ALLOCATE(multi_fvm_vel_l(3, numels + numelq + numeltg))
816 ALLOCATE(multi_fvm_vel_l(1,1))
820 ALLOCATE(nodlocal(numnod))
823 ALLOCATE(iepxfem_l(numelc))
824 ALLOCATE(inpxfem_l(numnod))
825 ALLOCATE(ielxfemc_l(numelc))
826 ALLOCATE(ielxfemtg_l(numeltg))
827 ALLOCATE(incrkxfem_l(numnod))
828 ALLOCATE(numlocgroup(ngroup))
829 ALLOCATE(numloccluster(ncluster))
830 numloccluster(1:ncluster) = 0
831 ALLOCATE(iskwp_l(numskw+1))
833 CALL my_alloc(ipari_l,npari,
max(1,ninter))
834 CALL my_alloc(rdpartsav,npsav*npart)
835 CALL my_alloc(dd_rbym2,3,nrbym)
836 CALL my_alloc(dd_rby2,3,nrbykin
840 ALLOCATE(monvol_l(lenvolu))
842 monvol_l(i) = monvol(i)
858 IF(numnod_l>0)
ALLOCATE(nodglob(numnod_l))
859 CALL f_nodloc2(numnod,p ,nodglob,nodlocal,igeo ,
860 2 iparg,ixs ,ixq,ixc ,ixtg ,
861 3 ixt ,ixp ,ixr,geo ,numnod_l)
865 CALL c_ngroup(iparg,p-1,numlocgroup,ngroup_l)
870 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels8,numels8_l)
872 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels10,numels10_l)
874 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels20,numels20_l)
876 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels16,numels16_l)
878 numels_l = numels8_l + numels10_l + numels20_l + numels16_l
879 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelq,numelq_l)
881 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelc,numelc_l)
883 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelt,numelt_l)
885 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelp,numelp_l)
887 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelr,numelr_l)
889 numeltg3=numeltg-numeltg6
892 numeltg3_l = numeltg_l
893 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg6,numeltg6_l)
895 numeltg_l = numeltg3_l+numeltg6_l
896 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelx,numelx_l)
898 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l)
899 off = off + numelig3d
903 pm1shf = 2*numels16_l + 1
905 num16shift_l = pm1shf
906 pm1shf = pm1shf + 2*numels16_l
912 IF(ncluster > 0)
THEN
913 CALL c_cluster(clusters,p-1,cep,ncluster_l,numloccluster)
933 IF(detonators%IS_SHADOWING_REQUIRED) ishadow = 1
934 IF (iale + ieuler + glob_therm%ITHERM + ialelag + ishadow > 0)
THEN
935 numel =
max(numels,numelq)
936 numel_l =
max(numels_l,numelq_l)
937 IF (multi_fvm%IS_USED .AND. n2d /= 0)
THEN
938 numel =
max(numel, numeltg)
939 numel_l =
max(numel_l, numeltg_l)
941 CALL c_vois(nsvois ,nqvois , ntgvois, nrcvvois,nsndvois,ilaw11 ,
942 2 nsegfl_l,iparg ,cep ,ale_connectivity ,numel ,
943 3 p-1 ,ixs ,ixq ,ixtg,
944 4 nervois ,nesvois,nodlocal,numnod_l,numel_l,
945 5 cel, multi_fvm,ale_elm,size_ale_elm)
947 IF(ale_connectivity%has_ne_connect)
THEN
950 . numel, numnod, numel_l, numnod_l,
951 . numels_l, numelq_l, numeltg_l,
952 . ne_nervois, ne_nesvois,
953 . ne_nsvois, ne_nqvois, ne_ntgvois)
961 ALLOCATE(iebcs_listelem_l(0))
962 ALLOCATE(iebcs_listfac_l(0))
963 ALLOCATE(iebcs_listdp0_l(0))
964 ebcs_tab_loc%nebcs_fvm = 0
972 is_ebcs_parallel = .false.
973 IF(ebcs_tab%tab(ii)%poly%type==10 .or. ebcs_tab%tab(ii)%poly%type==11) is_ebcs_parallel=.true.
974 IF (ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
975 nebcs_fvm = nebcs_fvm + 1
976 ELSEIF(is_ebcs_parallel)
THEN
977 nebcs_parallel = nebcs_parallel + 1
978 list_ebcs_parallel(nebcs_parallel) = ii
980 other_nebcs = other_nebcs + 1
981 list_other_ebcs(other_nebcs) = ii
985 CALL ebcs_tab_loc%create(nebcs_fvm)
986 ebcs_tab_loc%nebcs_fvm = nebcs_fvm
989 ebcs_tab_loc_2%nebcs_parallel = nebcs_parallel
990 CALL ebcs_tab_loc_2%create(nebcs_parallel)
991 ebcs_tab_loc_2%nebcs_loc = other_nebcs
992 ebcs_tab_loc_2%nebcs_fvm = 0
996 . numels, numelq, numeltg,
997 . nebcs, cep, numels + numelq + numeltg,
998 . p-1, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l,iebcs_listdp0_l,iebcslgth, n2d,
999 . multi_fvm%IS_USED,0,ebcs_tab)
1003 DEALLOCATE(iebcs_listelem_l)
1004 DEALLOCATE(iebcs_listfac_l)
1005 DEALLOCATE(iebcs_listdp0_l)
1006 ALLOCATE(iebcs_listfac_l(iebcslgth))
1007 ALLOCATE(iebcs_listelem_l(iebcslgth))
1008 ALLOCATE(iebcs_listdp0_l(iebcslgth))
1015 . numels, numelq, numeltg,
1016 . nebcs, cep, numels + numelq + numeltg,
1017 . p-1, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l,iebcs_listdp0_l,iebcslgth, n2d,
1018 . multi_fvm%IS_USED,1,ebcs_tab)
1032 is_ebcs_parallel = .false.
1033 IF(ebcs_tab%tab(ii)%poly%type == 10 .OR. ebcs_tab%tab(ii)%poly%type == 11 )is_ebcs_parallel = .true.
1037 IF (ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
1039 nebcs_fvm = nebcs_fvm + 1
1040 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly, source = ebcs_tab%tab(ii)%poly)
1041 IF (
ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem))
THEN
1042 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem)
1044 IF (
ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface))
THEN
1045 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface)
1047 IF (
ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0))
THEN
1048 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0)
1050 ebcs_tab_loc%tab(nebcs_fvm)%poly%nb_elem = iebcs_nelem_l(ii)
1051 ALLOCATE(ebcs_tab_loc%tab
1052 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface(iebcs_nelem_l(ii)))
1053 IF(ebcs_tab_loc%tab(nebcs_fvm)%poly%has_dp0)
ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0(iebcs_nelem_l(ii)))
1054 DO jj = 1, iebcs_nelem_l(ii)
1055 ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1056 ebcs_tab_loc%tab(nebcs_fvm)%poly%iface(jj) = iebcs_listfac_l(ipt)
1057 IF(ebcs_tab_loc%tab(nebcs_fvm)%poly%has_dp0)ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1062 ELSEIF(is_ebcs_parallel)
THEN
1063 nebcs_parallel = nebcs_parallel + 1
1064 ALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly, source = ebcs_tab%tab(ii)%poly)
1065 IF(ebcs_tab%tab(ii)%poly%has_ielem)
THEN
1066 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_elem = iebcs_nelem_l(ii)
1067 IF (
ALLOCATED(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface))
THEN
1068 DEALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface)
1070 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_elem = iebcs_nelem_l(ii)
1071 ALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface(iebcs_nelem_l(ii)))
1072 DO jj = 1, iebcs_nelem_l(ii
1073 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1074 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface(jj) = iebcs_listfac_l(ipt)
1075 IF(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%has_dp0)
THEN
1076 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1083 ELSEIF(ebcs_tab%tab(ii)%poly%has_ielem .and. p==1)
THEN
1084 ebcs_tab%tab(ii)%poly%nb_elem = iebcs_nelem_l(ii)
1085 IF (
ALLOCATED(ebcs_tab%tab(ii)%poly%ielem))
THEN
1086 DEALLOCATE(ebcs_tab%tab(ii)%poly%ielem)
1088 IF (
ALLOCATED(ebcs_tab%tab(ii)%poly%iface))
THEN
1089 DEALLOCATE(ebcs_tab%tab(ii)%poly%iface)
1091 ebcs_tab%tab(ii)%poly%nb_elem = iebcs_nelem_l(ii)
1092 ALLOCATE(ebcs_tab%tab(ii)%poly%ielem(iebcs_nelem_l(ii)))
1093 ALLOCATE(ebcs_tab%tab(ii)%poly%iface(iebcs_nelem_l(ii)))
1094 DO jj = 1, iebcs_nelem_l(ii)
1095 ebcs_tab%tab(ii)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1096 ebcs_tab%tab(ii)%poly%iface(jj) = iebcs_listfac_l(ipt)
1097 IF(ebcs_tab%tab(ii)%poly%has_dp0)ebcs_tab%tab(ii)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1107 CALL split_ebcs(p,nebcs_parallel,list_ebcs_parallel,scel
1114 IF (multi_fvm%IS_USED)
THEN
1117 . multi_fvm_vel_l, multi_fvm)
1119 CALL c_multi_vel(cep, numelq + numeltg, numelq_l + numeltg_l, p-1,
1120 . multi_fvm_vel_l, multi_fvm)
1137 1 igrnod ,igrbric ,igrquad ,igrsh4n ,igrsh3n ,
1138 2 igrtruss ,igrbeam ,igrspring ,igrpart ,cep ,
1139 3 cel ,nodlocal ,p-1 ,lenigrnod_l,lenigrbric_l ,
1140 4 lenigrquad_l,lenigrsh4n_l,lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
1141 5 lenigrsh3n_l,frontb_r2r ,numnod_l)
1142 CALL c_isurf_str(p-1,lenisurf_l,nspmd,igrsurf_proc)
1164 + nbddi2m ,i2nsn_l,probint ,imaximp_l,nbi18_l ,
1165 + nskyi18_l,nsnt_l ,nmnt_l ,nsnt2_l ,nmnt2_l ,
1166 + cep ,igrbric,ipari_l ,
1167 + nodlocal ,i2nsn25_l, intercep, intbuf_tab, numnor_l,
1168 + i24maxnsne, multi_fvm,tag_scratch,indx_scrt,nindx_scrt)
1182 1
CALL c_rwall(nprw ,lprw ,rwl ,
1183 2 cep ,p-1 ,nslaw_l ,neslaw_l,
1195 +
CALL c_mad(iexmad,nmadsh4_l,nmadsh3_l,nmadsol_l,nmadnod_l,
1196 + madcl_nmadnod_l,cep
1203 +
CALL c_rbyk(npby,lpby,p-1,nslarb_l,nskyrbk_l)
1210 +
CALL c_rbymk(irbym,lcrbym,p-1,nslarbm_l,nskyrbmk_l)
1219 +
CALL c_sectio(nstrf ,cep ,p-1,nstrf_l,
1220 + lsecbuf_l,nnodt_l,nnodl_l)
1226 IF(njoint>0.AND.p==1)
CALL c_joint_sms(ljoint,p-1,ljoint_l)
1238 CALL c_bufel(iparg,p-1,lbufel_l)
1245 + intbag_l = lenvolu
1246 ELSEIF(intbag > 0 .AND. ialelag > 0 )
THEN
1254 .
CALL c_elmx(kxx,cep,p-1,isumnx_l)
1263 IF (nsphsol > 0)
THEN
1270 CALL c_isph(kxsp,cepsp,p-1,numsph_l,
1271 . slonfsph_l,slprtsph,slprtsph_l,ipartsp,ssphveln_l,
1272 . nsphsol_l ,first_sphsol_l)
1277 pm1sph = 4*numsph_l + 1
1280 pm1sph = pm1sph + 4*numsph_l
1287 .
CALL c_ibcl(ibcl,cep,p-1,nconld_l)
1293 .
CALL c_ibfv(ibfv,nfxvel,nfxvel_l,p-1,dd_lagf)
1300 .
CALL c_llink(nnlink,lllink,p-1,nllink_l,nskyll_l)
1306 .
CALL c_igrav(igrav,lgrav,llgrav_l,p-1,nodlocal,numnod_l)
1313 .
CALL c_ibvel(ibvel,lbvel,llbvel_l,nskyrbm_l,p-1)
1321 .
CALL c_irbe2(irbe2,lrbe2,p-1 ,nrbe2_l,
1322 . llrbe2_l ,nbddrbe2)
1332 .
CALL c_irbe3(irbe3,lrbe3,nskyrbe3_l,p-1,
1333 . nrbe3_l,llrbe3_l ,nbddrbe3m,nrbe3pen_l)
1337 IF (nummpc>0.AND.p==1)
THEN
1341 CALL c_ibmpc(ibmpc,ibmpc(inum),ibmpc(iddl),ibmpc(iskw),dd_lagf)
1346 numel_l = numels_l + numelq_l + numelc_l + numelt_l + numelp_l
1347 + + numelr_l + numeltg_l+ numelx_l + numsph_l
1352 lenthgt = nithgr*(nthgrp0+nbr_th_monvol)
1357 CALL c_front(p ,nbddacc,nbddkin,nbddnrb,
1358 2 npby ,nrbykin_l,ljoint ,nbddncj,ibvel ,
1359 3 nbddnrbm ,iadll ,lll ,nlagf_l, front_rm,
1360 4 nrbymk_l ,nbddnrbym,
1361 5 sdd_r2r_elem,addcsrect,csrect ,nbddnort_l,nbddnor_max_l,
1362 6 nbccnor_l,nbccfr25_l,nbddedgt_l,nbddedg_max_l,nrtmx25_l ,
1363 7 ipari ,intbuf_tab,intercep ,nodglob ,nodlocal ,
1364 8 numnod_l ,nloc_dmg)
1365 nbddnod = nbddacc+nbddkin
1370 CALL c_pon(addcne ,numnod_l,nodglob ,lcne_l ,i2nsnt ,
1371 2 addcni2,lcni2_l ,monvol ,
1372 3 cep ,p-1 ,nnmv_l ,nnmvc_l ,addcne_pxfem,
1373 4 lcnepxfem_l,inod_pxfem ,addcne_crkxfem,lcnecrkxfem_l,
1374 5 inod_crkxfem,addcncnd,lcncnd_l,igrsurf)
1375 nisky0_l=8*numels_l+6*numels10_l+8*numels16_l+12*numels20_l+
1376 + 4*numelq_l+4*numelc_l+2*numelt_l+2*numelp_l+
1377 + 3*numelr_l+3*numeltg_l+3*numeltg6_l+4*nconld_l
1380 niskyi2_l = i2nsn_l*nir
1398 . fxbipm, fxbnod, nodlocal, iparg, fxbelm,
1399 . lennod_l, lenmod_l, lenelm_l, lensig_l, p-1,
1400 . lengrvi_l, fxbgrvi )
1402 ALLOCATE(fxbnod_l(lennod_l*2), fxbmod_l(lenmod_l*6),
1403 . fxbelm_l(lenelm_l), fxbsig_l(lensig_l),
1404 . fxbgrvi_l(lengrvi_l))
1407 . fxbipm, fxbnod, nodlocal, iparg, fxbelm,
1408 . fxbnod_l, fxbmod_l, fxbelm_l, fxbsig_l, p-1 ,
1409 . fxbmod, fxbsig, fxbipm_l, fxbgrvi,
1410 . fxbgrvi_l, lennod_l, itask)
1413 . lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l,
1414 . lenmcd_l, lengrvr_l, fxbipm_l, p-1 )
1416 ALLOCATE(fxbglm_l(lenglm_l), fxbcpm_l(lencp_l),
1417 . fxbcps_l(lencp_l), fxblm_l(lenlm_l),
1418 . fxbfls_l(lenfls_l), fxbdls_l(lendls_l),
1419 . fxbgrvr_l(lengrvr_l))
1422 . fxbglm, fxbcpm, fxbcps, fxblm, fxbfls,
1423 . fxbdls, fxbgrvr, fxbipm , p-1, fxbglm_l,
1424 . fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l,
1425 . fxbgrvr_l, fxbipm_l)
1445 .
CALL c_eig(eigipm , eigibuf , eigrpm, nodlocal, eigipm_l,
1446 . eigibuf_l, leibuf_l)
1454 n_anchor_remote_l = 0
1455 n_anchor_remote_send_l = 0
1456 off = numels + numelq + numelc + numelt + numelp
1458 IF (nslipring + nretractor > 0)
THEN
1459 CALL c_seatbelts(n_slipring_l,n_retractor_l,p,nodlocal,elbuf_tab,
1460 . iparg,n_anchor_remote_l,n_anchor_remote_send_l,anchor_remote_l,anchor_remote_send_l,
1461 . n_seatbelt_l,n_seatbelt_2d_l,cep,off)
1464 IF (nflow>0)
CALL m_flow(iflow, iflow_l, nodlocal, p, memflow)
1470 nodlocal_mgm(1:numnod) = nodlocal(1:numnod)
1471 max_id = maxval(nodlocal(1:numnod))
1475 nodlocal_mgm(numnod + i) = max_id
1483 . monvol, nodlocal_mgm
1486 . monvol, nodlocal, ixs, p, numnod,fvmain)
1493 IF(nfasolfr/=0 .AND. numels_l/=0)
THEN
1494 CALL c_fasolfr(fasolfr, cep, p-1, cel, nfasolfr_l)
1500 IF(nsegquadfr/=0 .AND. numelq_l/=0)
THEN
1501 CALL c_segquadfr(segquadfr, cep, p-1, cel, nsegquadfr_l)
1507 IF (glob_therm%NUMCONV > 0)
1508 .
CALL c_iconv(ibcv,cep,p-1,nconv_l,glob_therm%NUMCONV,glob_therm%NICONV)
1513 IF (glob_therm%NUMRADIA > 0)
CALL c_iradia(ibcr,cep,p-1,nradia_l,
1514 . glob_therm%NUMRADIA,glob_therm%NUMCONV,glob_therm%NIRADIA)
1519 IF (glob_therm%NFXFLUX > 0)
CALL c_ithflux(ibfflux,cep,p-1,nfxflux_l,
1520 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%NITFLUX)
1525 IF (glob_therm%NFXTEMP > 0)
1531 IF(lag_ncf+lag_ncl > 0)
1532 .
CALL c_lag(ipari,nprw,lag_sec)
1538 IF(iplyxfem > 0 )
THEN
1539 off = numels + numelq
1541 CALL c_pxfem(cep(
min(off+1,len_cep)),p-1 ,nodglob ,iel_pxfem ,inod_pxfem,
1542 . iepxfem_l,inpxfem_l, numelc , numnod_l ,numelc_l,
1543 . numelcpxfe_l,numnodpxfe_l,index_pxfem)
1558 IF(icrack3d > 0)
THEN
1559 ALLOCATE(tagedge(numedges))
1562 off = numels + numelq
1564 . cep(
min(off+1,len_cep)),p-1,iel_crkxfem,ielxfemc_l,numelc,
1565 . numelc_l,numelccrkxfe_l,numedges_l,iedgesh,4,tagedge)
1566 off = off + numelc + numelt + numelp + numelr
1569 . cep(
min(off+1,len_cep)),p-1,iel_crkxfem(1+numelc),ielxfemtg_l,numeltg,
1570 . numeltg_l,numeltgcrkxfe_l,numedges_l,
1571 . iedgesh(1+4*ecrkxfec),3,tagedge)
1573 numelcrkxfe_l = numelccrkxfe_l + numeltgcrkxfe_l
1575 IF(numelcrkxfe_l>0)
THEN
1576 ALLOCATE(nodglobxfe(4*numelcrkxfe_l*nlevmax))
1580 ALLOCATE(index_crkxfem(ncrkxfe))
1581 ALLOCATE(nodlevxf_l(ncrkxfe))
1585 CALL c_ncrkxfem(nodglob ,inod_crkxfem ,incrkxfem_l ,
1586 . numnod_l,numnodcrkxfe_l,index_crkxfem,p-1,
1587 . ixc,ixtg,cep_crkxfem,nodlocal,nodlevxf_l,
1588 . nodlevxf,nodglobxfe,nod_xfe_l,crkshell)
1590 ALLOCATE(iedgecrk_l(4*numelccrkxfe_l+3*numeltgcrkxfe_l),
1591 . ibordedge_l(numedges_l),nodedge_l(2*numedges_l),
1592 . iedgesh4_l(4*numelccrkxfe_l),
1593 . iedgesh3_l(3*numeltgcrkxfe_l),iedge_l(numedges_l))
1594 ALLOCATE(edgelocal(numedges))
1595 ALLOCATE(edgeglobal(numedges))
1604 CALL c_crkedge(ielxfemc_l,ielxfemtg_l,iedgecrk_l,numedges,
1605 . iedgesh ,iedgesh(1+4*ecrkxfec),cep ,p-1,
1606 . ibordedge ,ibordedge_l,numedges_l,nodedge,
1607 . nodedge_l ,nodlocal ,iedgesh4_l,iedgesh3_l,
1609 . edgelocal ,nbddedge_l,iedge_tmp,edgeglobal)
1611 ALLOCATE(iedgecrk_l(0))
1612 ALLOCATE(ibordedge_l(0))
1613 ALLOCATE(nodedge_l(0))
1614 ALLOCATE(iedgesh4_l(0),iedgesh3_l(0))
1615 ALLOCATE(tagedge(0))
1616 ALLOCATE(iedge_l(0))
1617 ALLOCATE(edgelocal(0))
1618 ALLOCATE(edgeglobal(0))
1619 ALLOCATE(nodglobxfe(0))
1620 ALLOCATE(index_crkxfem(0))
1621 ALLOCATE(nodlevxf_l(0))
1624 1 lenwa_l ,nthwa ,nairwa ,numels_l ,numelq_l,
1625 2 numelc_l,numeltg_l,numelt_l ,numelp_l ,numelr_l,
1626 3 numnod_l,nmnt ,l_mul_lag1,l_mul_lag,maxnx ,
1627 4 lwasph_l,numsph_l ,lwaspio, nrcvvois,
1628 5 lwamp_l, lwanmp_l,glob_therm%ITHERM )
1635 .
CALL c_icfield(icfield,lcfield,llcfield_l,p-1)
1637 CALL c_iloadp(iloadp,lloadp,llloadp_l,p-1)
1638 nisky0_l=nisky0_l+4*llloadp_l
1645 .
CALL c_elig3d(kxig3d,p-1,isumnig3d_l)
1653 .
CALL c_icnds10(icnds10,itagnd,p-1,ns10e_l,nbddcndm,ms,msndp(p))
1660 .
CALL c_ibcscyc(ibcscyc,lbcscyc,p-1 ,nbcscyc_l,llbcscyc_l)
1666 IF (ndrape > 0)
THEN
1667 off = numels + numelq
1668 IF(numelc_drape > 0 )
THEN
1669 CALL c_drape(drapeg%INDX,cep(
min(off+1,len_cep)),p-1,
1673 off = off + numelc + numelt + numelp + numelr
1675 IF(numeltg_drape > 0)
THEN
1676 CALL c_drape(drapeg%INDX(numelc+1),cep(
min(off+1,len_cep)),p-1,
1677 . numeltg,numsh3n_l)
1684 IF (loads%NLOAD_CLOAD>0)
1685 .
CALL c_nloads(cep,p-1,loads%NLOAD_CLOAD,ncload_l)
1690 IF (loads%NLOAD_PLOAD>0)
1691 .
CALL c_nloads(cep,p-1,loads%NLOAD_PLOAD,npload_l)
1696 IF (loads%NINIVELT>0)
THEN
1698 . ngrnod, ngrbric, ngrquad, ngrsh3n,
1699 . igrnod, igrbric, igrquad, igrsh3n,
1700 . p-1 , cep, scep, nodlocal,
1701 . numnod,loads%NINIVELT,loads%INIVELT
1707 idamp_vrel_l(1:ndamp) = 0
1708 IF (ndamp > 0)
CALL c_dampvrel(dampr,igrnod,p,idamp_vrel_l,ndamp_vrel_l,
1709 . ngrnod,ndamp,nrdamp)
1716 WRITE(chrun,
'(I4.4)')irun
1717 WRITE(procnam,
'(I4.4)')p
1718 filnam = rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.rst'
1723 ifilnam(i)=ichar(tmp_name(i:i))
1729 CALL open_c(ifilnam,len_tmp_name
1731 IF(flush_rst_to_txt)
THEN
1732 OPEN(unit=777+itask,file=trim(filnam)//
'.txt'
1733 . ,status=
'UNKNOWN',form=
'FORMATTED')
1737 len_ia = len_ia + rootlen+14
1740 skippon_l = numnod_l+1 + lcne_l + lcni2_l +
1741 . 8*numels_l + 6*numels10_l + 8*numels16_l + 12*numels20_l +
1742 . 4*numelq_l + 4*numelc_l + 2*numelt_l + 2*numelp_l +
1743 . 3*numelr_l + 3*numeltg_l + 3*numeltg6_l +
1744 . 4*nnmv_l + 4*nconld_l + 4*nconv_l + nskyrw_l + nskyrbk_l +
1746 . nnmv_l + nnmvc_l + nskyll_l + nskyrbm_l + nskyi18_l +
1747 . nskyrbmk_l + 4*nradia_l + 4*nfxflux_l + 4*llloadp_l
1750 skippon_l = skippon_l + numnod_l +1
1758 1 lmxvint ,lvarint ,tabvint ,ngroup_l ,lbufel_l ,
1759 2 lenwa_l ,intbag_l ,numelq_l
1760 3 numelt_l ,numelr_l ,numelp_l ,numelx_l ,isumnx_l ,
1761 4 numels10_l,numels20_l,numels8_l ,numels16_l,lnom_opt ,
1762 5 numeltg_l ,numeltg6_l,nslarb_l ,numnod_l ,
1763 6 numel_l ,nsvois ,nqvois ,ntgvois, lenlas ,
1764 7 nllink_l ,llgrav_l ,llbvel_l ,nslaw_l ,
1765 8 neslaw_l ,nskyll_l ,nstrf_l ,ljoint_l ,
1766 9 lenvolu ,lenthgt ,lbufmat ,lbufgeo ,lbufsf ,
1767 a lenxlas ,lwsav_l ,lsecbuf_l ,numpor_l ,
1768 b npts ,nbddnod ,nfxvel_l ,nbddnrb ,
1769 c lcne_l ,nskyrw_l ,nskyrbk_l ,nbddi2m ,lcni2_l ,
1770 d niskyi2_l ,i2nsnt ,nconld_l ,nnmv_l ,nnmvc_l ,
1771 e nbddncj ,nbddnrbm ,nskyrbm_l ,nnodt_l ,nnodl_l ,
1772 f nmadsh4_l ,nmadsh3_l ,nmadsol_l ,nmadnod_l ,imaximp_l,
1773 g isp0 ,num16shift_l ,numsph_l ,lwasph_l ,
1774 h sphshift_l,nrcvvois ,nsndvois ,nervois ,
1775 i nesvois ,ilaw11 ,nsegfl_l ,
1776 j nbi18_l ,nskyi18_l ,leibuf_l ,
1777 k lenthg ,nfasolfr_l,lennod_l ,lenmod_l ,lenelm_l ,
1778 l lensig_l ,lenglm_l ,lencp_l ,lenlm_l ,lenfls_l ,
1779 m lendls_l ,lenmcd_l ,lengrvi_l ,lengrvr_l ,nlagf_l ,
1780 n lrbagale ,skippon_l ,nconv_l ,nfxtemp_l ,nfxflux_l ,
1781 o nrbe3_l ,llrbe3_l ,nbddrbe3m ,nskyrbe3_l,nslarbm_l ,
1782 n nskyrbmk_l,nbddnrbym ,madcl_nmadnod_l,nradia_l,nrbe2_l,
1783 q llrbe2_l ,nbddrbe2 ,numelcpxfe_l,
1784 r numnodpxfe_l,lcnepxfem_l,llcfield_l,
1785 s llloadp_l,numelcrkxfe_l,numnodcrkxfe_l,lcnecrkxfem_l,
1786 t slonfsph_l,slprtsph_l,ssphveln_l,i2nsn25_l,numelccrkxfe_l,
1787 u numeltgcrkxfe_l,numedges_l,nbddedge_l,sdd_r2r_elem,nod_xfe_l,
1788 v nsphsol_l,first_sphsol_l,ncluster_l,lenthgr,numnor_l,
1789 w nbddnort_l,nbddnor_max_l,nbccnor_l,nbccfr25_l,ns10e_l,
1790 x lcncnd_l,nbddcndm,nebcs,iebcslgth,multi_fvm,nsegquadfr_l,
1791 y nbddedgt_l,nbddedg_max_l,nrtmx25_l,lenigrnod_l,lenigrbric_l,
1792 z lenigrquad_l,lenigrsh4n_l,lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
1793 1 lenigrsh3n_l,lenisurf_l,lenislin_l, ne_nervois, ne_nesvois,
1794 2 ne_nsvois, ne_nqvois, ne_ntgvois,nbcscyc_l,llbcscyc_l,
1795 3 ale_connectivity,n_slipring_l,n_retractor_l,n_anchor_remote_l,
1796 4 n_anchor_remote_send_l,n_seatbelt_l,n_seatbelt_2d_l,dynain_data,
1797 5 numsh4n_l,numsh3n_l,interfaces%PARAMETERS,sensors,loads_per_proc%NLOAD_CYL,
1798 6 ncload_l,npload_l,ndamp_vrel_l, unitab,
1799 7 lwamp_l,lwanmp_l,ninivelt_l,glob_therm,pblast)
1802 CALL wrcomr(lmxvrea,lvarrea,tabvrea,msndp(p),p,interfaces%PARAMETERS,
1803 . unitab ,glob_therm, output)
1808 ititle(i) = ichar( names_and_titles%TITLE(i:i) )
1857 len_ia = len_ia + lheader + 1
1860 len_ia = len_ia + lvarint
1862 CALL checksum_write_starter_restart(output)
1869 len_ia = len_ia + numnod_l
1871 len_ia = len_ia + 2*numnod_l
1875 len_g = npropgi*numgeo
1876 len_m = npropmi*nummat
1877 CALL w_inloc(icode,nodglob,numnod_l,len_ia)
1880 IF(numsph>0.AND.nspcond>0)
THEN
1881 CALL w_iskewsp(iskew,nodglob,numnod_l,numsph_l,cepsp,p-1,len_ia)
1883 CALL w_inloc(iskew,nodglob,numnod_l,len_ia)
1886 1 iskn,numskw,
min(iun,nspcond)*numsph_l,iframe,numfram,nodlocal,
1887 2 p ,numnod,cepsp ,len_ia )
1889 len_ia = len_ia + 5*nbcslag
1890 CALL write_i_c(ipart,lipart1*(npart+nthpart))
1891 len_ia = len_ia + (npart+nthpart)
1892 CALL write_i_c(iparth,2*9*(npart+nthpart))
1893 len_ia = len_ia + 2*9*(npart+nthpart)
1898 CALL w_ieloc(iparts,cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_ia)
1900 CALL w_ieloc(ipartq,cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_ia)
1902 CALL w_ieloc(ipartc,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_ia)
1904 CALL w_ieloc(ipartt,cep(
min(off+1,len_cep)),p-1,numelt,numelt_l,len_ia)
1906 CALL w_ieloc(ipartp,cep(
min(off+1,len_cep)),p-1,numelp,numelp_l,len_ia)
1908 CALL w_ieloc(ipartr,cep(
min(off+1,len_cep)),p-1,numelr,numelr_l,len_ia)
1910 CALL w_ieloc(iparttg,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_ia)
1912 CALL w_ieloc(ipartx,cep(
min(off+1,len_cep)),p-1,numelx,numelx_l,len_ia)
1914 CALL w_ieloc(ipartsp,cepsp,p-1,numsph,numsph_l,len_ia)
1916 CALL w_ieloc(ipartig3d,cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l,len_ia)
1920 len_ia = len_ia + lnom_opt
1923 CALL python_serialize(python,buffer, buffer_size)
1927 len_ia = len_ia + 3*nfunct+1
1932 off = numels+numelq+numelc+numelt+numelp+numelr
1933 CALL w_ixloc(ixtg,nixtg,3,cep(
min(off+1,len_cep)),p-1,
1934 + numeltg,numeltg_l,nodlocal,len_ia)
1939 IF(detonators%IS_SHADOWING_REQUIRED) ishadow = 1
1940 IF (iale+ieuler+glob_therm%ITHERM+ialelag +ishadow > 0)
THEN
1941 IF(numels_l+numelq_l+numeltg_l>0)
THEN
1942 ALLOCATE(idglob_l(numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois))
1943 ALLOCATE(uidglob_l(numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois))
1944 ALLOCATE( id_global_vois(numels_l*6+numelq_l*4+3*numeltg_l) )
1945 id_global_vois(1:numels_l*6+numelq_l*4+3*numeltg_l) = 0
1946 ALLOCATE( face_vois(numels_l*6+numelq_l*4+3*numeltg_l) )
1947 face_vois(1:numels_l*6+numelq_l*4+3*numeltg_l) = -1
1949 ALLOCATE( id_global_vois(0) )
1950 ALLOCATE(idglob_l(0))
1951 ALLOCATE(uidglob_l(0))
1952 ALLOCATE( face_vois(0) )
1954 numel =
max(numels,numelq,numeltg)
1956 +
ALLOCATE(ixsf(nsvois*nixs))
1958 +
ALLOCATE(ixqf(nqvois*nixq))
1960 +
ALLOCATE(ixtgf(ntgvois*nixtg))
1961 CALL c_ixfloc(numel,ixsf,ixqf,ixtgf,nsvois,
1962 + nqvois,ntgvois,p-1,iparg,cep,cel,
1963 + ale_connectivity,ee_connect_l,ixs,ixq,ixtg,nodlocal,numels_l,numelq_l,numeltg_l,multi_fvm,
1964 + id_global_vois,indx_s,indx_q,indx_tg,face_elm_s,face_elm_q,face_elm_tg,face_vois,
1965 + detonators%IS_SHADOWING_REQUIRED)
1968 len_ia = len_ia + nixtg * ntgvois
1971 IF (multi_fvm%NS_DIFF)
THEN
1972 CALL c_idglob(numel, numels_l, numelq_l, numeltg_l, numels, numelq, numeltg,
1973 . p - 1, cel, cep, iparg, ale_connectivity, ixs,ixq,ixtg, idglob_l, uidglob_l, n2d, ngroup, nparg)
1980 CALL w_ixbloc(ixtg6,3,4,cep(
min(off+1,len_cep)),p-1,
1987 CALL w_ixloc(ixs,nixs,8,cep(
min(off+1,len_cep)),p-1,
1988 + numels,numels_l,nodlocal,len_ia)
1990 IF (iale+ieuler+glob_therm%ITHERM+ialelag > 0)
THEN
1992 len_ia = len_ia + nixs*nsvois
2000 CALL w_ixaloc(ixs10,6,cep(
min(off+1,len_cep)),p-1,
2001 + numels10,numels10_l,nodlocal,len_ia)
2003 CALL w_ixaloc(ixs20,12,cep(
min(off+1,len_cep)),p-1,
2004 + numels20,numels20_l,nodlocal,len_ia)
2006 CALL w_ixaloc(ixs16,8,cep(
min(off+1,len_cep)),p-1,
2007 + numels16,numels16_l,nodlocal,len_ia)
2009 CALL w_ixloc(ixq,nixq,4,cep(
min(off+1,len_cep)),p-1,
2010 + numelq,numelq_l,nodlocal,len_ia)
2015 IF (iale+ieuler+glob_therm%ITHERM+ialelag > 0)
THEN
2017 len_ia = len_ia + nixq*nqvois
2022 CALL w_ixloc(ixc,nixc,4,cep(
min(off+1,len_cep)),p-1,
2023 + numelc,numelc_l,nodlocal,len_ia)
2025 CALL w_ixloc(ixt,nixt,2,cep(
min(off+1,len_cep)),p-1,
2026 + numelt,numelt_l,nodlocal,len_ia)
2028 CALL w_ixloc(ixp,nixp,3,cep(
min(off+1,len_cep)),p-1,
2029 + numelp,numelp_l,nodlocal,len_ia)
2031 CALL w_ixloc(ixr,nixr,3,cep(
min(off+1,len_cep)),p-1,
2032 + numelr,numelr_l,nodlocal,len_ia)
2037 CALL w_inloc(itab,nodglob,numnod_l,len_ia)
2038 CALL w_itabm1(itabm1,itabm1(numnod+1),nodglob,nodlocal,numnod_l,
2043 IF(ngjoint/=0 .AND. p == 1)
THEN
2044 CALL w_gjoint(gjbufi,ngjoint,lkjni,nodlocal,len_ia)
2049 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
THEN
2050 IF(iale+ieuler+ialelag/=0)
2051 .
CALL w_inloc(nale,nodglob,numnod_l,len_ia)
2053 itmp =
SIZE(ee_connect_l%iad_connect)
2056 CALL write_i_c(ee_connect_l%iad_connect, itmp)
2057 len_ia = len_ia + itmp
2059 itmp =
SIZE(ee_connect_l%connected)
2062 CALL write_i_c(ee_connect_l%connected, itmp)
2063 len_ia = len_ia + itmp
2065 itmp =
SIZE(ee_connect_l%type)
2069 len_ia = len_ia + itmp
2071 itmp =
SIZE(ee_connect_l%iface2)
2074 CALL write_i_c(ee_connect_l%iface2, itmp)
2075 len_ia = len_ia + itmp
2078 CALL write_i_c(id_global_vois,numels_l*6+numelq_l*4+3*numeltg_l)
2079 len_ia = len_ia + numels_l*6+numelq_l*4+3*numeltg_l
2081 CALL write_i_c(face_vois,numels_l*6+numelq_l*4+3*numeltg_l)
2082 len_ia = len_ia + numels_l*6+numelq_l*4+3*numeltg_l
2085 DEALLOCATE(id_global_vois)
2086 DEALLOCATE(face_vois)
2088 ALLOCATE(elemid_l(numel))
2092 IF(ale_connectivity%has_ne_connect)
THEN
2094 . nodglob, nodlocal,
2096 . numels_l, numelq_l, numeltg_l,
2097 . ne_nervois, ne_nesvois,
2098 . ne_nsvois, ne_nqvois, ne_ntgvois
2101 IF(ale_connectivity%has_nn_connect .OR. ale_connectivity%has_ne_connect)
THEN
2103 . elemid_l,numnod,nodglob,nodlocal,numnod_l,len_ia,
ale%GRID%NWALE)
2106 DEALLOCATE(elemid_l)
2110 IF (multi_fvm%NS_DIFF) ns_diff = 1
2113 IF (multi_fvm%NS_DIFF)
THEN
2114 CALL write_i_c(idglob_l, numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois)
2115 len_ia = len_ia + numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois
2116 CALL write_i_c(uidglob_l, numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois)
2117 len_ia = len_ia + numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois
2125 len_ia = len_ia +sifill + sims
2132 . igrsh3n ,igrtruss ,igrbeam ,igrspring ,igrpart ,
2133 . cep ,cel ,nodlocal,p-1 ,frontb_r2r,
2136 . numelq,numelc,numelt,numelp,numelr,
2137 . nodlocal,scel,cel,ltitr,lenisurf_l,
2138 . nspmd,igrsurf,igrsurf_proc)
2145 .
CALL w_elmx(kxx,numelx_l,isumnx_l,ixx,cep,
2146 + p-1,nodlocal,len_ia)
2152 CALL w_isph(kxsp ,ixsp ,numsph_l,cepsp ,p-1 ,
2153 + nodlocal,numnod_l,ispcond ,iparg ,isphio ,
2154 + len_ia, slonfsph_l,slprtsph_l,ipartsp,
2156 + nsphsol_l,first_sphsol_l,sph2sol ,sol2sph,
2157 + irst , numels8_l,cep ,cel ,sol2sph_typ)
2163 CALL w_ibcl(ibcl,cep,p-1,nodlocal,nconld_l,len_ia)
2168 IF (nintloadp>0)
THEN
2170 len_ia = len_ia + ninter + 1
2171 CALL write_i_c(loadpinter,s_loadpinter )
2172 len_ia = len_ia + s_loadpinter
2178 .
CALL w_ibfv(ibfv,nfxvel,nodlocal,len_ia,
2183 IF (nlaser>0.AND.p==1)
2184 .
CALL w_las(las,nlaser,nodlocal,len_ia)
2190 CALL write_i_c(ebcs_tab_loc%nebcs_fvm, 1)
2196 CALL ebcs_tab%write_type_data(len_ia, len_am)
2203 IF (ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
2204 nebcs_fvm = nebcs_fvm + 1
2205 CALL ebcs_tab_loc%tab(nebcs_fvm)%poly%write_common_data(len_ia, len_am)
2206 CALL ebcs_tab_loc%tab(nebcs_fvm)%poly%write_data(len_ia, len_am)
2211 CALL ebcs_tab_loc%destroy()
2220 is_ebcs_parallel = .false.
2221 IF(ebcs_tab%tab(ii)%poly%type==10 .OR. ebcs_tab%tab(ii)%poly%type==11)is_ebcs_parallel=.true.
2222 IF(.NOT.ebcs_tab%tab(ii)%poly%is_multifluid .AND. is_ebcs_parallel)
THEN
2223 nebcs_parallel = nebcs_parallel + 1
2224 DO jj = 1, ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_node
2225 IF( nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj)) > 0 .AND.
2226 . nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj)) <= numnod )
THEN
2227 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj) =
2228 . nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj))
2231 IF (.NOT. ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
2232 CALL ebcs_tab_loc_2%tab(nebcs_parallel)%poly%write_common_data(len_ia, len_am)
2233 CALL ebcs_tab_loc_2%tab(nebcs_parallel)%poly%write_data(len_ia, len_am)
2237 ELSEIF (.NOT.(ebcs_tab%tab(ii)%poly%is_multifluid).AND.p == 1)
THEN
2238 DO jj = 1, ebcs_tab%tab(ii)%poly%nb_node
2239 ebcs_tab%tab(ii)%poly%node_list(jj) = nodlocal(ebcs_tab%tab(ii)%poly%node_list(jj))
2241 IF (.NOT. ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
2242 CALL ebcs_tab%tab(ii)%poly%write_common_data(len_ia, len_am)
2243 CALL ebcs_tab%tab(ii)%poly%write_data(len_ia, len_am)
2253 .
CALL w_lacc(laccelm,naccelm,nodlocal,len_ia,cel,cep,p-1)
2258 .
CALL w_lgau(lgauge,nbgauge,nodlocal,len_ia,cel,cep,p-1)
2263 .
CALL w_llink(nnlink,lllink,nodlocal,p-1,nllink_l,len_ia)
2272 CALL w_iparg(iparg,p-1,ngroup_l,len_ia)
2276 CALL write_i_c(dd_iad,(nspmd+1)*nspgroup)
2277 len_ia = len_ia + (nspmd+1)*nspgroup
2282 .
CALL w_igrav(igrav,lgrav,nodlocal,p-1,llgrav_l,len_ia,numnod_l)
2288 len_ia = len_ia + nr2r*nr2rlnk
2294 .
CALL w_ibvel(ibvel,lbvel,nodlocal,p-1,llbvel_l,len_ia)
2300 ALLOCATE(itabrbe2m(numnod_l))
2302 ALLOCATE(itabrbe2m(1))
2304 CALL w_irbe2(irbe2 ,lrbe2 ,nodlocal ,p-1 ,
2305 . llrbe2_l,itabrbe2m,nbddrbe2,numnod_l,len_ia )
2307 ALLOCATE(itabrbe2m(1))
2313 IF(nbddrbe3m>0)
THEN
2314 ALLOCATE(itabrbe3m(numnod_l))
2316 ALLOCATE(itabrbe3m(1))
2318 CALL w_irbe3(irbe3 ,lrbe3 ,nodlocal ,p-1 ,
2319 . llrbe3_l,itabrbe3m,nbddrbe3m,numnod_l,len_ia)
2321 ALLOCATE(itabrbe3m(1))
2328 len_ia = len_ia + lactiv*nactiv
2332 IF (nummpc>0.AND.p==1)
THEN
2333 CALL w_ibmpc(ibmpc,nummpc,lmpc,nodlocal,lag_sec,len_ia)
2338 CALL w_inloc(kinet,nodglob,numnod_l,len_ia)
2342 IF(nfasolfr_l/=0)
THEN
2343 CALL w_fasolfr(fasolfr ,cep ,p-1 ,cel, nfasolfr_l,
2349 IF(nsegquadfr_l/=0)
THEN
2350 CALL w_segquadfr(segquadfr ,cep ,p-1 ,cel, nsegquadfr_l,
2358 ALLOCATE(itabi2m(numnod_l))
2360 ALLOCATE(itabi2m(1))
2367 ALLOCATE(intbuf_tab_l(ninter))
2377 . i11flag, flag_allocate, p-1,intbuf_fric_tab)
2392 . ipari_l , intercep, nodlocal,
2393 . itab , itabi2m , nbddi2m , numnod_l ,
2394 . len_cep,cep , cel , igrbric , t8, multi_fvm,
2395 . tag_nm ,nindx_nm ,indx_nm ,tag_scratch,nindx_scrt,
2396 . indx_scrt ,flag_24_25,i24maxnsne,intbuf_fric_tab)
2399 DEALLOCATE(intbuf_tab_l)
2403 ALLOCATE(itabi2m(1))
2410 +
CALL w_rwall(nprw ,lprw ,rwl ,
2411 + cep ,cel ,nodlocal,p-1 ,
2412 + nslaw_l,neslaw_l,numnod_l,len_ia)
2417 +
CALL w_mad(iexmad ,nmadsh4_l,nmadsh3_l,nmadsol_l,nmadnod_l,
2418 + madcl_nmadnod_l,cep ,p-1 ,nodlocal ,cel ,
2419 + numels_l,numelc_l ,numeltg_l,len_ia )
2423 IF(nrbykin+nrbylag>0)
2424 +
CALL w_rbyk(npby,lpby,nodlocal,p-1,nslarb_l,len_ia)
2429 +
CALL w_irivet(ixri,nodlocal,p-1,len_ia)
2434 +
CALL w_sectio(nstrf ,cep ,cel,p-1,
2435 2 nstrf_l,nodlocal,len_ia)
2438 len_ia = len_ia + snom_sect
2445 . nodlocal,ljoint_l,len_ia,numnod_l)
2447 + nodlocal,ljoint_l,len_ia)
2460 CALL w_monvol(monvol,lenvolu,nodlocal,len_ia,monvol_l,itab,t_monvol,p)
2465 IF(lag_ncf>0.AND.p==1)
THEN
2466 CALL write_i_c(lagbuf,lag_nhf+3*lag_ncf+2)
2467 len_ia = len_ia + lag_nhf+3*lag_ncf+2
2472 IF (ns10e_l > 0)
THEN
2473 IF(nbddcndm > 0)
THEN
2474 ALLOCATE(itabcndm(numnod_l))
2476 ALLOCATE(itabcndm(1))
2478 CALL w_icnds10(icnds10,itagnd,p-1,nodlocal,ns10e_l,
2479 . itabcndm,nbddcndm,numnod_l,len_ia ,itab)
2481 ALLOCATE(itabcndm(1))
2487 2 nthgrp0 ,nthgrp ,nthgrp01 ,nthgrp1 ,
2488 3 scel ,numsph ,numnod ,ncluster ,
2489 4 celsph ,numloccluster ,nbr_th_monvol)
2491 CALL thsurf_write_restart(output%TH%TH_SURF,1)
2492 IF (output%TH%TH_SURF%PLOAD_FLAG > 0)
THEN
2493 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr+numelx
2495 . output%TH%TH_SURF,numnod ,nibcld,nconld ,len_cep,
2498 IF (output%TH%TH_SURF%LOADP_FLAG > 0)
THEN
2499 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr+numelx+nconld
2500 . + glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX
2502 . output%TH%TH_SURF,numnod ,sizloadp,nloadp,len_cep,
2509 numel =
max(numels,numelq)
2510 numel_l2 =
max(numels_l,numelq_l)
2511 IF (multi_fvm%IS_USED .AND.
THEN
2512 numel =
max(numel, numeltg)
2513 numel_l2 =
max(numel_l2, numeltg_l)
2515 nbcfd =
max(nrcvvois,nsndvois,nervois,nesvois,nsegfl_l)
2516 IF(numskw>0)
CALL split_skew(p,iskwp_l,iskwp,tag_skn,multiple_skew)
2519 1 p ,nbddacc ,nbddkin ,nodlocal,
2520 2 nbddproc,nbddboun,nodglob ,numnod_l,nbddnrb ,
2521 3 npby ,lpby ,nprw ,lprw ,len_ia ,
2522 4 dd_rby2 ,itabi2m ,nbddi2m ,cep ,monvol ,
2523 5 nnlink ,lllink ,ljoint ,
2524 6 nbddncj ,ibvel ,lbvel ,nbddnrbm,dd_rbm2 ,
2525 7 nstrf ,nnodt_l ,nnodl_l ,iexmad ,isp0 ,
2526 8 nrcvvois,nsndvois,nervois ,nesvois ,
2528 a numel ,ale_connectivity ,nbcfd ,ixs ,ixq ,ixtg,
2529 b numels_l,numelq_l,numeltg_l,cel ,geo ,
pornod ,
2530 c numpor_l,numel_l2,ipari ,intbuf_tab,nbi18_l ,
2531 d iexlnk ,igrnod ,dd_lagf ,nlagf_l ,iadll ,
2532 e lll ,iskwp ,nskwp ,isensp ,nsensp ,
2533 f iaccp ,naccp ,irbe3 ,lrbe3 ,itabrbe3m,
2534 g nbddrbe3m,irbym ,lcrbym ,front_rm ,dd_rbym2,
2535 h nbddnrbym,irbe2 ,lrbe2 ,nbddrbe2,itabrbe2m,
2536 i iedge_tmp,nodedge,edgelocal,nbddedge_l,
2537 j igaup ,ngaup ,frontb_r2r,sdd_r2r_elem,addcsrect,
2538 k csrect ,nbddnort_l,nbddnor_max_l,nbccfr25_l,nbccnor_l,
2539 l numnor_l ,nbddedgt_l,nbddedg_max_l,intercep ,nbddcndm,
2540 m itabcndm,multi_fvm,igrsurf,iskwp_l,ale_elm,
2541 n size_ale_elm,sensors%NSENSOR,nloc_dmg,constraint_struct,glob_therm%ITHERM)
2543 DEALLOCATE(itabrbe3m)
2544 DEALLOCATE(itabrbe2m)
2545 DEALLOCATE(itabcndm)
2552 1 addcne ,cne ,lcne ,numnod_l ,nodglob ,
2553 2 lcne_l ,cep ,cel ,ixs ,ixs10 ,
2554 3 ixs20 ,ixs16 ,ixq ,ixc ,ixt ,
2555 4 ixp ,ixr ,ixtg ,monvol ,
2556 5 ibcl ,geo ,igeo ,p ,
2557 6 numels_l ,numels8_l,numels10_l,numels16_l,numels20_l,
2558 7 numelq_l ,numelc_l ,numelt_l ,numelp_l ,numelr_l ,
2559 8 numeltg_l,nskyrw_l ,nprw ,lprw ,
2560 9 nskyrbk_l,npby ,lpby ,dd_rby2 ,
2561 a i2nsnt ,i2nsn_l ,ipari ,nir ,
2563 c addcni2 ,nbddi2m ,nconld_l ,ixtg6 ,numeltg6_l,
2564 d nnmv_l ,nnmvc_l ,nskyll_l ,nnlink ,lllink ,
2565 e nskyrbm_l,dd_rbm2 ,ibvel ,lbvel ,nbi18_l ,
2566 f nskyi18_l,len_ia ,nconv_l ,ibcv ,nskyrbe3_l,
2567 g irbe3 ,lrbe3 ,nskyrbmk_l,irbym ,lcrbym ,
2568 h front_rm ,dd_rbym2 ,ibcr ,nradia_l ,addcne_pxfem,
2569 i cne_pxfem ,cel_pxfem ,lcnepxfem_l,inod_pxfem,iel_pxfem,
2570 j numelcpxfe_l , numnodpxfe_l ,lloadp ,iloadp ,
2571 k llloadp_l,addcne_crkxfem,cne_crkxfem,cel_crkxfem,
2572 l lcnecrkxfem_l,inod_crkxfem,iel_crkxfem,numelccrkxfe_l,
2573 m numnodcrkxfe_l,numeltgcrkxfe_l,cep_crkxfem,incrkxfem_l,
2574 n crknodiad ,intbuf_tab,numelig3d_l,kxig3d,ixig3d,
2575 o ibfflux ,nfxflux_l ,cepcnd ,celcnd ,addcncnd ,
2576 p cncnd ,ns10e_l ,icnds10 ,lcncnd_l
2577 q igrsurf_proc ,nebcs_parallel, ebcs_tab_loc_2,
2578 r number_load_cyl,loads,loads_per_proc,glob_therm)
2581 CALL ebcs_tab_loc_2%destroy()
2584 len_ia = len_ia + len_g
2586 len_ia = len_ia + len_m
2591 CALL w_inloc(icontact,nodglob,numnod_l,len_ia)
2596 len_ia = len_ia + len_s
2600 IF(nadmesh /= 0)
THEN
2602 len_ia = len_ia + ksh4tree*numelc
2603 CALL write_i_c(sh3tree,ksh3tree*numeltg)
2604 len_ia = len_ia + ksh3tree*numeltg
2605 CALL write_i_c(ipadmesh,kipadmesh*npart)
2606 len_ia = len_ia + kipadmesh*npart
2607 len_adm=abs(lsh4trim)
2609 len_ia = len_ia + len_adm
2610 len_adm=abs(lsh3trim)
2612 len_ia = len_ia + len_adm
2618 CALL w_fi(ipari,p-1,len_ia,
2619 1 intercep ,intbuf_tab,itab,multi_fvm,tag_scratch,
2620 2 nindx_scrt,indx_scrt ,nodlocal,numnod_l,len_cep,cep)
2625 IF(numsph>0.AND.nspmd>1)
THEN
2631 IF(nintstamp /= 0)
THEN
2633 len_ia=len_ia+lintstamp
2638 IF(ninterfric > 0)
THEN
2639 CALL intfric_wresti(intbuf_fric_tab,ninterfric)
2646 len_ia=len_ia+ltable
2651 len_ia = len_ia + sithvar
2655 IF (nloadc>0)
CALL w_icfield(icfield,lcfield,nodlocal,p-1,llcfield_l,len_ia,p,numnod_l)
2656 IF (nloadp>0)
CALL w_iloadp(iloadp,lloadp,nodlocal,p
2657 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX)
2661 IF(pblast%NLOADP_B>0)
THEN
2662 CALL pblast_write_starter(pblast,glob_therm,p-1,cep,scep,
2663 * numelc,numeltg,numels,
2664 * numelq,numelt,numelp,
2665 * numelr,numelx,nconld)
2671 IF (loads_per_proc%NLOAD_CYL > 0)
THEN
2672 CALL write_pcyl(loads_per_proc%LOAD_CYL,loads_per_proc%NLOAD_CYL,nodlocal)
2676 IF(icrack3d > 0)
THEN
2680 CALL w_inloc(ibordnode,nodglob,numnod_l,len_ia)
2684 CALL write_i_c(iedgesh4_l,4*numelccrkxfe_l)
2685 len_ia = len_ia + 4*numelccrkxfe_l
2686 CALL write_i_c(iedgesh3_l,3*numeltgcrkxfe_l)
2687 len_ia = len_ia + 3*numeltgcrkxfe_l
2690 len_ia = len_ia + 2*numedges_l
2692 len_ia = len_ia + numedges_l
2697 len_ia = len_ia + nod_xfe_l
2698 IF(
ALLOCATED(nodglobxfe))
DEALLOCATE(nodglobxfe)
2703 IF (numelig3d>0)
CALL w_elig3d(kxig3d,numelig3d,isumnig3d_l,ixig3d,p-1,nodlocal,len_ia)
2707 CALL w_ieloc(tag_skins6,cep,p-1,numels,numels_l,len_ia)
2711 IF (nbcscyc_l > 0)
CALL w_ibcscyc(ibcscyc,lbcscyc,nodlocal ,p-1,llbcscyc_l,nbcscyc_l,len_ia )
2715 CALL w_bcs_proc(bcs_per_proc,cel,scel,len_ia,len_am)
2721 len_am = len_am + lvarrea
2727 CALL w_r3nloc(x,nodglob,numnod_l,len_am)
2728 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
2729 .
CALL w_bid(3*nrcvvois,len_am)
2730 CALL w_r3nloc(d,nodglob,numnod_l,len_am)
2731 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
2732 .
CALL w_bid(3*nrcvvois,len_am)
2733 CALL w_r3nloc(v,nodglob,numnod_l,len_am)
2734 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
2735 .
CALL w_bid(3*nrcvvois,len_am)
2737 CALL w_r3nloc(vr,nodglob,numnod_l,len_am)
2738 IF(isecut > 0 .OR. iisrot > 0 .OR. impose_dr /= 0 .OR. idrot == 1)
CALL w_r3nloc(dr,nodglob,numnod_l,len_am)
2743 off = numels + numelq
2744 CALL w_reloc(thke,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2745 off = off + numelc + numelt + numelp + numelr
2747 . thke(numelc+1),cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_am)
2753 len_am = len_am + nrdamp*ndamp
2756 CALL w_rnnloc(damp,nodglob,numnod_l,6,len_am)
2765 CALL w_rnloc(ms,nodglob,numnod_l,len_am)
2769 CALL w_rnloc(ms,nodglob,numnod_l,len_am)
2779 len_am = len_am + npts
2785 len_am = len_am + npropm
2798 len_am = len_am + len
2802 CALL write_db(skew,lskew*(numskw+1))
2803 len_am = len_am + lskew*(numskw+1)
2804 IF(numsph>0.AND.nspcond>0)
THEN
2806 . skew(lskew*(numskw+1)+1),numsph_l,cepsp,p-1,len_am)
2809 . skew(lskew*(numskw+1+numsph_l)+1),len_am)
2812 . skew(lskew*(numskw+1)+1),len_am)
2814 CALL write_db(xframe,nxframe*(numfram+1))
2815 len_am = len_am + nxframe*(numfram+1)
2822 CALL w_geo(geo,nodlocal)
2824 len_am = len_am + npropg*numgeo
2829 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_am)
2831 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_am)
2833 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2835 off = off + numelc + numelt + numelp + numelr
2836 CALL w_reloc(eani(shf+1),cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_am)
2841 len_am = len_am + lbufmat
2844 ALLOCATE (rbufgeo(lbufgeo))
2845 rbufgeo(1:lbufgeo)=bufgeo(1:lbufgeo)
2850 len_am = len_am + lbufgeo
2852 len_am = len_am + lbufsf
2854 IF(nummpc>0.AND.p==1)
THEN
2856 len_am = len_am + lmpc
2858 IF(ngjoint>0.AND.p==1)
THEN
2859 CALL write_db(gjbufr,lkjnr*ngjoint)
2860 len_am = len_am + lkjnr*ngjoint
2866 CALL w_r3nloc(w,nodglob,numnod_l,len_am)
2868 IF(ieuler * (1 - imulti_fvm)/=0)
THEN
2872 . veul,lveul,cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_am)
2875 CALL w_reloc2(veul,10,cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_am)
2881 IF (multi_fvm%IS_USED)
THEN
2882 CALL write_db(multi_fvm%PRES_SHIFT, 1)
2884 CALL write_db(multi_fvm_vel_l(1, 1:numels_l),
2886 CALL write_db(multi_fvm_vel_l(2, 1:numels_l),
2888 CALL write_db(multi_fvm_vel_l(3, 1:numels_l),
2891 CALL write_db(multi_fvm_vel_l(1, 1:numelq_l + numeltg_l),
2892 . numelq_l + numeltg_l)
2893 CALL write_db(multi_fvm_vel_l(2, 1:numelq_l + numeltg_l),
2894 . numelq_l + numeltg_l)
2895 CALL write_db(multi_fvm_vel_l(3, 1:numelq_l + numeltg_l),
2896 . numelq_l + numeltg_l)
2903 CALL w_rfilloc(fill,nodglob,numnod,numnod_l,nmult,len_am)
2904 CALL w_rfilloc(dfill,nodglob,numnod,numnod_l,nmult,len_am)
2906 len_am = len_am + salph
2908 IF(
ale%GRID%NWALE==2)
THEN
2909 CALL w_r3nloc(wb,nodglob,numnod_l,len_am)
2910 ELSEIF(
ale%GRID%NWALE==4)
THEN
2911 CALL w_r3nloc(wb,nodglob,numnod_l,len_am)
2912 CALL w_rnloc(wma,nodglob,numnod_l,len_am)
2914 IF(ilag==1.AND.(iale+ieuler)/=0)
THEN
2915 CALL w_r3nloc(dsav,nodglob,numnod_l,len_am)
2916 CALL w_r3nloc(asav,nodglob,numnod_l,len_am)
2922 CALL w_rsph(spbuf ,numsph_l,cepsp,p-1,vsphio,len_am, ssphveln_l )
2927 IF(iale == 1 .OR. ieuler == 1 .OR. ialelag == 1)
THEN
2928 CALL w_rnloc(msnf,nodglob,numnod_l,len_am)
2935 IF(nconld>0)
CALL w_fac(fac,cep,p-1,nconld_l,len_am)
2939 IF(nfxvel_l>0)
CALL w_fixvel(vel,nfxvel,ibfv,nfxvel_l,len_am,p-1)
2943 CALL write_db(fsav,nthvki*(ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu+nfxbody+nintsub))
2944 len_am = len_am + nthvki*(ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu+ nfxbody+nintsub)
2953 . poin_part_shell,poin_part_tri,poin_part_sol,
2954 . mid_pid_shell,mid_pid_tri,mid_pid_sol,
2955 . ipartc,iparttg,iparts)
2959 IF(isigi==2.OR.isigi==4)
2960 .
CALL w_r3nloc(fzero,nodglob,numnod_l,len_am)
2961 IF(iabs(isigi)==5)
THEN
2963 CALL w_reloc2(fzero,3*4,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2964 off = off + numelc + numelt + numelp + numelr
2966 CALL w_reloc2(fzero(shf+1),3*4,cep(
min(off+1,len_cep)),p-1,numeltg,
2972 IF(nlaser>0.AND.p==1)
THEN
2974 len_am = len_am + lenxlas
2980 CALL write_db(accelm,naccelm*llaccelm)
2981 len_am = len_am + naccelm*llaccelm
2987 CALL write_db(gauge,nbgauge*llgauge)
2988 len_am = len_am + nbgauge*llgauge
2999 len_am = len_am + 3*nibvel
3004 .
CALL w_frbe3(irbe3 ,lrbe3 ,p-1 ,llrbe3_l,
3005 . frbe3 ,frbe3(3*slrbe3+1),len_am,nrbe3pen_l )
3009 IF (nactiv > 0)
THEN
3010 CALL write_db(factiv,lractiv*nactiv)
3011 len_am = len_am + lractiv*nactiv
3017 .
CALL write_db(gravfac,lfacgrv*ngrav)
3018 len_am = len_am + lfacgrv*ngrav
3023 .
CALL w_rnloc(fr_wave,nodglob,numnod_l,len_am)
3027 CALL w_failwave(failwave,nodglob,numnod,numnod_l,len_am,itab)
3033 . nloc_dmg ,numnod_l ,nodglob ,nodlocal ,cel ,
3034 . cep ,p ,ixs ,ixc ,ixtg ,
3035 . numels_l ,numelc_l ,numeltg_l)
3041 len_am = len_am + npart
3045 CALL w_bufel(iparg,p-1,lbufel_l,elbuf,len_am)
3048 CALL w_elbuf_str(p-1,iparg,elbuf_tab,len_am,flag_xfem)
3050 IF (icrack3d > 0)
THEN
3053 CALL w_elbuf_str(p-1,iparg,xfem_tab(1:ngroup,ixel),len_am,flag_xfem)
3059 IF (ncluster > 0)
CALL w_cluster(clusters,
3061 . ncluster_l,cep,p-1,
3067 CALL w_rwar(nprw,lprw ,rwl, rwsav,
3068 + lwsav_l,cep,p-1,len_am)
3073 len_am = len_am + nrby*nrbykin
3074 IF(p == 1 .AND. nrbylag > 0)
THEN
3075 CALL write_db(rby(nrby*nrbykin+1),nrby*nrbylag)
3076 len_am = len_am + nrby*nrbylag
3082 len_am = len_am + nrivet*nrivf
3087 +
CALL w_secbuf(secbuf,lsecbuf_l,nstrf,p-1,len_am)
3091 CALL write_db(rvolu,nrvolu*nvolu+lrcbag+lrbagjet+lrbaghol
3093 len_am = len_am + nrvolu*nvolu+lrcbag+lrbagjet+lrbaghol
3098 ncmax = lag_ncf + lag_ncl
3099 IF(ncmax>0.AND.p==1)
THEN
3101 len_am = len_am + ncmax
3106 IF(nconx>0.AND.p==1)
THEN
3108 len_am = len_am + nconx*nrcnx
3113 IF(nadmesh /= 0)
THEN
3114 CALL w_rnloc(rcontact,nodglob,numnod_l,len_am)
3115 CALL w_rnloc(acontact,nodglob,numnod_l,len_am)
3116 CALL w_rnloc(pcontact,nodglob,numnod_l,len_am)
3124 len_am = len_am + npsav*npart
3127 CALL write_db(rdpartsav,npsav*npart)
3128 len_am = len_am + npsav*npart
3142 IF(nadmesh /= 0 .OR. irest_mselt /= 0)
THEN
3143 off = numels + numelq
3144 CALL w_reloc2(msc,1,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,
3146 CALL w_reloc2(inc,1,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,
3148 off = off + numelc + numelt + numelp + numelr
3149 CALL w_reloc2(mstg,1,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3151 CALL w_reloc2(intg,1,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3153 CALL w_reloc2(ptg,3,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3157 IF(irest_mselt /= 0)
THEN
3159 CALL w_reloc2(mssa,1,cep(
min(off+1,len_cep)),p-1,numels,numels_l,
3161 off = numels+numelq+numelc
3162 CALL w_reloc2(mstr,1,cep(
min(off+1,len_cep)),p-1,numelt,numelt_l,
3165 CALL w_reloc2(msp,1,cep(
min(off+1,len_cep)),p-1,numelp,numelp_l,
3168 CALL w_reloc2(msrt,1,cep(
min(off+1,len_cep)),p-1,numelr,numelr_l,
3174 IF(nadmesh /= 0)
THEN
3175 CALL write_db(padmesh,kpadmesh*npart)
3176 len_am = len_am + kpadmesh*npart
3177 IF (glob_therm%ITHERM_FE > 0)
THEN
3179 len_am = len_am + numelc
3181 len_am = len_am + numeltg
3189 CALL write_db(pinch_data%VPINCH,3*numnod_l)
3190 len_am = len_am + 3*numnod_l
3191 DEALLOCATE(pinch_data%VPINCH)
3193 CALL write_db(pinch_data%DPINCH,3*numnod_l)
3194 len_am = len_am + 3*numnod_l
3195 DEALLOCATE(pinch_data%DPINCH)
3197 CALL write_db(pinch_data%XPINCH,3*numnod_l)
3198 len_am = len_am + 3*numnod_l
3199 DEALLOCATE(pinch_data%XPINCH)
3201 CALL write_db(pinch_data%MSPINCH,numnod_l)
3202 len_am = len_am + numnod_l
3203 DEALLOCATE(pinch_data%MSPINCH)
3206 IF(istatcnd /= 0)
THEN
3207 CALL w_rnloc(mscnd,nodglob,numnod_l,len_am)
3208 CALL w_rnloc(incnd,nodglob,numnod_l,len_am)
3213 IF(nintstamp /= 0)
THEN
3215 len_am=len_am+lintstamp
3220 IF(ninterfric > 0)
THEN
3221 CALL intfric_wrestr(intbuf_fric_tab,ninterfric)
3224 CALL w_rnloc(ms0,nodglob,numnod_l,len_am)
3225 IF(sin > 0)
CALL w_rnloc(in,nodglob,numnod_l,len_am)
3230 CALL w_rnloc (admsms,nodglob,numnod_l,len_am)
3231 CALL w_r3nloc(res_sms,nodglob,numnod_l,len_am)
3232 ELSEIF(idtmins==2)
THEN
3233 CALL w_rnloc (dmelc ,nodglob,numelc_l,len_am)
3234 CALL w_rnloc (dmeltg ,nodglob,numeltg_l,len_am)
3235 CALL w_rnloc (dmels ,nodglob,numels_l,len_am)
3236 CALL w_rnloc (dmeltr ,nodglob,numelt_l,len_am)
3237 CALL w_rnloc (dmelp ,nodglob,numelp_l,len_am)
3238 CALL w_rnloc (dmelrt ,nodglob,numelr_l,len_am)
3239 CALL w_r3nloc(res_sms,nodglob,numnod_l,len_am)
3241 IF(idtmins==2.OR.idtmins_int/=0)
THEN
3242 CALL w_rnloc(diag_sms,nodglob,numnod_l,len_am)
3244 IF(isms_selec /= 0)
THEN
3245 CALL w_inloc(nativ_sms,nodglob,numnod_l,len_ia)
3252 len_am=len_am+ltable
3263 IF(nalelk>0.AND.slinale>0)
THEN
3269 CALL write_ale_grid()
3275 . fxbipm_l, fxbrpm, fxbnod_l, fxbmod_l, fxbglm_l,
3276 . fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l,
3277 . fxbdep, fxbvit, fxbacc, fxbelm_l, fxbsig_l,
3278 . fxbgrvi_l, fxbgrvr_l, lennod_l, lenmod_l, lenglm_l,
3279 . lencp_l, lenlm_l, lenfls_l, lendls_l, lenelm_l,
3280 . lensig_l, lengrvi_l, lengrvr_l, len_am, itask)
3282 DEALLOCATE(fxbnod_l, fxbmod_l, fxbglm_l, fxbcpm_l, fxbcps_l,
3283 . fxblm_l, fxbfls_l, fxbdls_l, fxbelm_l, fxbsig_l,
3284 . fxbgrvi_l, fxbgrvr_l)
3290 CALL eigwrestp(eigipm_l, eigibuf_l, eigrpm, leibuf_l,len_am)
3295 IF (nslipring + nretractor > 0)
THEN
3296 CALL w_seatbelts(len_ia,len_am,p,nodlocal,n_anchor_remote_l,
3297 . n_anchor_remote_send_l,anchor_remote_l,anchor_remote_send_l)
3308 IF (nconld_l > 0)
THEN
3309 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr
3312 . off ,len_cep,nconld)
3314 . off ,len_cep,nconld)
3319 IF (ndamp_vrel_l>0)
THEN
3320 CALL w_dampvrel(dampr,igrnod,idamp_vrel_l,ndamp_vrel_l,len_ia,
3321 . ngrnod,ndamp,nrdamp,nspmd)
3326 IF (nflow>0)
CALL nfwrestp(iflow_l,rflow,len_ia,len_am)
3334 IF(glob_therm%ITHERM_FE > 0 )
THEN
3335 CALL w_rnloc(mcp,nodglob,numnod_l,len_am)
3336 CALL w_rnloc(temp,nodglob,numnod_l,len_am)
3341 IF(nitsche > 0 )
THEN
3342 ALLOCATE(forneqs(3*numnod_l))
3343 forneqs(1:3*numnod_l) = zero
3345 len_am = len_am + 3*numnod_l
3358 len_am = len_am + nfrbym*nrbym
3360 CALL w_rbymk(irbym,lcrbym,front_rm,nodlocal,p-1,
3367 IF (glob_therm%NUMCONV > 0 )
THEN
3369 CALL w_fconv(fconv,cep,p-1,nconv_l,len_am,
3370 . glob_therm%NUMCONV,glob_therm%LFACTHER)
3372 CALL w_iconv(ibcv,cep,p-1,nodlocal,nconv_l,len_ia,
3373 . cel,iparg,numlocgroup,glob_therm%NUMCONV,glob_therm%NICONV)
3379 IF (glob_therm%NUMRADIA > 0 )
THEN
3381 CALL w_fradia(fradia,cep,p-1,nradia_l,len_am,
3382 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%LFACTHER)
3384 CALL w_iradia(ibcr,cep,p-1,nodlocal,nradia_l,len_ia,
3385 . cel,iparg,numlocgroup,
3386 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NIRADIA)
3391 IF (glob_therm%NFXFLUX > 0 )
THEN
3393 CALL w_fthflux(fbfflux,cep,p-1,nfxflux_l,len_am,
3394 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%LFACTHER)
3396 CALL w_ithflux(ibfflux,cep,p-1,nodlocal,nfxflux_l,len_ia,cel,ixs,
3397 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%NITFLUX)
3402 IF(glob_therm%NFXTEMP > 0)
THEN
3404 CALL w_fbft(fbft,glob_therm%NFXTEMP,ibft,nfxtemp_l,len_am,p-1,
3405 . glob_therm%NIFT,glob_therm%LFACTHER)
3407 CALL w_ibft(ibft,glob_therm%NFXTEMP,nodlocal,len_ia,
3408 . nfxtemp_l,p-1,glob_therm%NIFT)
3414 IF(iplyxfem > 0 )
THEN
3415 off = numels + numelq
3417 CALL w_pxfem(iepxfem_l,inpxfem_l ,index_pxfem,
3418 . ms_ply,zi_ply ,numelc_l, numnod_l ,
3419 . numelcpxfe_l,numnodpxfe_l,len_am,len_ia,msz2)
3421 IF(iplybcs > 0)
THEN
3422 CALL w_inloc(icodply,nodglob,numnod_l,len_ia)
3423 CALL w_inloc(iskwply,nodglob,numnod_l,len_ia)
3426 off = numels + numelq
3428 * numnod_l, cel(off+1), cep(
min(off+1,len_cep)), p-1)
3436 .
CALL write_db(cfield,lfacload*nloadc)
3437 len_am = len_am + lfacload*nloadc
3442 .
CALL write_db(loadp,lfacload*nloadp
3443 len_am = len_am + lfacload*nloadp
3447 IF (nintloadp>0)
THEN
3448 CALL write_db(dgaploadint, s_loadpinter )
3449 len_am = len_am + s_loadpinter
3454 IF (loads%NINIVELT>0)
THEN
3456 . ngrnod, ngrbric, ngrquad, ngrsh3n,
3457 . igrnod, igrbric, igrquad, igrsh3n,
3458 . p-1 , cep, scep, nodlocal,
3459 . numnod,loads%NINIVELT,loads%INIVELT, len_ia,
3465 IF(icrack3d > 0)
THEN
3467 CALL w_crkxfem(ielxfemc_l,ielxfemtg_l,incrkxfem_l,numelc_l,
3468 . numeltg_l,numnod_l,len_ia,numnodcrkxfe_l,
3472 . ixc ,ixtg ,numelc_l,numeltg_l,nodlocal,
3473 . numnod_l ,incrkxfem_l,cel ,cep_crkxfem ,p-1 ,
3474 . iedgecrk_l,ibordedge_l,numedges_l,index_crkxfem ,
3475 . inod_crkxfem,lcnecrkxfem_l,edgeglobal,cep,crklvset,
3476 . ncrkpart, indx_crk,crkshell,crksky,crkavx,
3477 . crkedge ,xfem_phantom,numnodcrkxfe_l)
3479 ALLOCATE(elcutc_l(2*numelc_l))
3480 ALLOCATE(elcuttg_l(2*numeltg_l))
3481 ALLOCATE(nodenr_l(numnodcrkxfe_l))
3482 ALLOCATE(kxfenod2elc_l(numnodcrkxfe_l))
3483 ALLOCATE(enrtag_l(numnod_l*ienrnod))
3491 . elcutc ,nodenr ,kxfenod2elc ,enrtag ,
3492 . elcutc_l ,nodenr_l ,kxfenod2elc_l,enrtag_l,
3493 . numelc_l ,numeltg_l ,numnod_l ,nodglob ,inod_crkxfem ,
3499 len_ia = len_ia + 2*numelc_l
3501 len_ia = len_ia + 2*numeltg_l
3503 len_ia = len_ia + numnodcrkxfe_l
3504 CALL write_i_c(kxfenod2elc_l,numnodcrkxfe_l)
3505 len_ia = len_ia + numnodcrkxfe_l
3506 CALL write_i_c(enrtag_l,numnod_l*ienrnod)
3507 len_ia = len_ia + numnod_l*ienrnod
3509 DEALLOCATE(elcutc_l,elcuttg_l,nodenr_l,kxfenod2elc_l,enrtag_l)
3510 DEALLOCATE(iedgecrk_l,ibordedge_l,nodedge_l,tagedge,iedge_l)
3511 DEALLOCATE(edgelocal,edgeglobal)
3512 DEALLOCATE(iedgesh4_l,iedgesh3_l)
3513 DEALLOCATE(index_crkxfem,nodlevxf_l)
3515 ALLOCATE(elcutc_l(0))
3516 ALLOCATE(elcuttg_l(0))
3517 ALLOCATE(nodenr_l(0))
3518 ALLOCATE(kxfenod2elc_l(0))
3519 ALLOCATE(enrtag_l(0))
3527 IF(ialelag > 0)
THEN
3528 CALL w_alelag(dflow,vflow,wflow,nodglob,numnod_l,len_am)
3533 IF(lenthgr > 0)
THEN
3535 len_am = len_am + lenthgr
3540 IF(sknot > 0)
CALL write_db(knot,sknot)
3541 IF(sknotlocpc > 0 .AND. sknotlocel > 0)
THEN
3542 CALL w_knotloc(kxig3d,numelig3d_l,isumnig3d_l,ixig3d,cep,
3543 . proc,nodlocal,len_ia,knotlocpc,knotlocel,numnod_l,
3544 . glob_therm%NUMCONV,glob_therm%NUMRADIA)
3549 IF(numelig3d > 0)
CALL w_rnloc(wige,nodglob,numnod,len_am)
3553 IF(ipart_stack > 0 .OR. ipart_pcompp > 0 )
THEN
3554 len_ig = (4*npt_stack + 2)*ns_stack
3555 len_g = (6*npt_stack + 1)*ns_stack
3556 len_pm = 20*ns_stack
3557 CALL w_stack(stack%IGEO,stack%GEO,len_ig,len_g,len_ia,len_am,
3563 IF (ndrape > 0)
THEN
3565 off = numels + numelq
3566 IF(numelc_drape > 0)
3567 .
CALL w_drape(drape,drapeg%INDX,cep(
min(off+1,len_cep)),p-1,
3568 . numelc,numelc_l,numsh4n_l,len_ia,len_am)
3569 off = off + numelc + numelt + numelp + numelr
3570 IF(numeltg_drape > 0)
3571 .
CALL w_drape(drape,drapeg%INDX(numelc +1),cep(
min(off+1,len_cep)),p-1,
3572 . numeltg,numeltg_l,numsh3n_l,len_ia,len_am)
3601 CALL file_size_c(file_size)
3602 ddstat(25)= file_size
3605 IF(flush_rst_to_txt)
CLOSE(777+itask)
3607 IF(numnod_l>0)
DEALLOCATE(nodglob)
3609 DEALLOCATE(monvol_l)
3612 DEALLOCATE(nodlocal)
3613 DEALLOCATE(iepxfem_l)
3614 DEALLOCATE(inpxfem_l)
3615 DEALLOCATE(ielxfemc_l)
3616 DEALLOCATE(ielxfemtg_l)
3617 DEALLOCATE(incrkxfem_l)
3618 DEALLOCATE(numlocgroup)
3619 DEALLOCATE(numloccluster)
3650 ddstat(1) = numnod_l
3652 ddstat(3) = numels_l
3653 ddstat(4) = numelq_l
3654 ddstat(5) = numelc_l
3655 ddstat(6) = numelp_l
3656 ddstat(7) = numelt_l
3657 ddstat(8) = numelr_l
3659 ddstat(10)= numeltg_l
3660 ddstat(11)= numelx_l
3661 ddstat(12)= nbddproc
3662 ddstat(13)= nbddboun
3665 ddstat(16)= nrbykin_l
3666 ddstat(17)= numsph_l
3671 ddstat(24)= nslarb_l
3676 nisky0_l=nisky0_l+4*nconv_l
3679 i_eval = numnod_l+2*numnod_l*
max(iale,ieuler,ialelag)+numnod_l*iroddl
3680 r_eval = lenwa_l+nfunct
3682 lskyi = nint(5*
max(4*numnod_l,imaximp_l)*probint)+4*numsph_l+nskyi18_l
3683 r_eval = r_eval+8*numnod_l+npsav*npart
3684 r_eval = r_eval+8*lcne_l
3685 IF (n2d==0.AND.iale+ieuler+glob_therm%ITHERM+ialelag > 0) r_eval = r_eval+ lcne_l
3687 r_eval = r_eval+5*lskyi
3688 i_eval = i_eval+lskyi+numnod_l+1+lcni2_l
3689 + + nisky0_l+nskyrw_l+nskyrbk_l+niskyi2_l
3690 + + nnmv_l+nnmvc_l+nskyll_l+nskyrbm_l+nskyrbe3_l
3691 + + nnmv_l+nnmvc_l+nskyll_l+nskyrbm_l
3692 IF(ivector==1)i_eval = i_eval+ numnod_l
3693 IF(i2nsnt>0)i_eval = i_eval+ numnod_l+1
3694 IF(i2nsnt>0.AND.ivector==1)i_eval = i_eval+ numnod_l
3696 r_eval = r_eval+7*numnod_l+numnod_l*iroddl+npsav*npart
3697 r_eval = r_eval+2*
max(iale,glob_therm%ITHERM,ieuler)*(numels_l+numelq_l)
3700 r_eval = r_eval+numnod_l
3702 + lwasph_l+7*numnod_l*nsect*isecut+5*ninter+21*nibvel
3703 i_eval = i_eval+numnod_l
3705 ddstat(19)= len_am + r_eval
3715 DEALLOCATE(multi_fvm_vel_l)
3716 DEALLOCATE(iebcs_listelem_l)
3717 DEALLOCATE(iebcs_listfac_l)
3719 DEALLOCATE(rdpartsav)
3720 DEALLOCATE(dd_rbym2)