243 1 P ,CEP ,CEL ,IGEO ,MAT_ELEM ,
244 2 IPM ,ICODE ,ISKEW ,ISKN ,INSEL ,
245 3 IBCSLAG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
246 4 IPARTT ,IPARTP ,IPARTR ,IPARTTG ,DETONATORS ,
247 5 IPARTX ,NPC ,IXTG ,GROUP_PARAM_TAB,
248 6 IXTG6 ,IXS ,IXS10 ,IXS20 ,IXS16 ,
249 7 IXQ ,IXC ,IXT ,IXP ,IXR ,
250 8 ITAB ,ITABM1 ,GJBUFI ,NALE ,
252 A KXX ,IXX ,IBCL ,IBFV ,
253 B LAS ,LACCELM ,NNLINK ,LLLINK ,
254 C IPARG ,IGRAV ,LGRAV ,IBVEL ,LBVEL ,
255 D IACTIV ,FACTIV ,KINET ,IPARI ,NPRW ,
256 E LPRW ,IEXMAD ,NPBY ,
257 F LPBY ,IXRI ,NSTRF ,LJOINT ,PORNOD ,
258 G MONVOL ,ICONTACT ,LAGBUF ,
259 H FR_IAD ,X ,D ,V ,VR ,
260 I DR ,THKE ,DAMPR ,DAMP ,MS ,
261 J IN ,TF ,PM ,SKEW ,XFRAME ,
262 K GEO ,EANI ,BUFMAT ,BUFGEO ,BUFSF ,
263 L BRMPC ,GJBUFR ,W ,VEUL ,FILL ,
264 M DFILL ,WB ,DSAV ,ASAV ,MSNF ,
265 N SPBUF ,FAC ,VEL ,FSAV ,FZERO ,
266 O XLAS ,ACCELM ,FBVEL ,GRAVFAC ,
267 P FR_WAVE ,FAILWAVE ,PARTS0 ,ELBUF ,
268 Q RWL ,RWSAV ,RBY ,RIVET ,
269 R SECBUF ,RVOLU ,RCONX ,NLOC_DMG ,
270 S FVMAIN ,LIBAGALE ,LENTHG ,LBUFMAT ,LBUFGEO ,
271 T LBUFSF ,LENXLAS ,LNOM_OPT ,LENLAS ,
272 U LENVOLU ,NPTS ,CNE ,LCNE ,
273 V ADDCNE ,CNI2 ,LCNI2G ,ADDCNI2 ,CEPI2 ,
274 W CELI2 ,I2NSNT ,PROBINT ,DDSTAT ,PM1SHF ,
276 Z KXSP ,IXSP ,NOD2SP ,CEPSP ,
277 a NTHWA ,NAIRWA ,NMNT ,L_MUL_LAG1 ,L_MUL_LAG ,
278 b LWASPIO ,IPARTSP ,ISPCOND ,PM1SPH ,
280 d EIGIPM ,EIGIBUF ,EIGRPM ,
281 e IFLOW ,RFLOW ,MEMFLOW ,IEXLNK ,FASOLFR ,
283 j FXBIPM ,FXBRPM ,FXBNOD ,FXBMOD ,FXBGLM ,
284 k FXBCPM ,FXBCPS ,FXBLM ,FXBFLS ,FXBDLS ,
285 l FXBDEP ,FXBVIT ,FXBACC ,FXBELM ,FXBSIG ,
286 m FXBGRVI ,FXBGRVR ,IADLL ,LLL ,IBMPC ,
287 n LAMBDA ,LRBAGALE ,ISKWP ,NSKWP ,ISENSP ,
288 o NSENSP ,IACCP ,NACCP ,IPART_STATE ,MCP ,
289 p TEMP ,UNITAB ,INTSTAMP ,IFRAME ,CLUSTERS ,
290 q PARTSAV ,IBFT ,FBFT ,IBCV ,
291 r FCONV ,IRBE3 ,LRBE3 ,FRBE3 ,FRONT_RM ,
292 s RBYM ,IRBYM ,LCRBYM ,INOISE ,FNOISE ,
293 t MS0 ,ADMSMS ,NOM_SECT ,ISPSYM ,
294 u SH4TREE ,SH3TREE ,IPADMESH ,IBFFLUX ,FBFFLUX ,
295 v SH4TRIM ,SH3TRIM ,PADMESH ,MSC ,MSTG ,
296 w INC ,INTG ,PTG ,MCPC ,MCPTG ,
297 x RCONTACT ,ACONTACT ,PCONTACT ,MSCND ,INCND ,
298 y MSSA ,MSTR ,MSP ,MSRT ,IBCR ,
299 z FRADIA ,DMELC ,DMELTG ,DMELS ,DMELTR ,
300 1 DMELP ,DMELRT ,RES_SMS , ISPHIO ,
301 2 LPRTSPH ,LONFSPH ,VSPHIO ,SPHVELN ,ALPH ,
302 3 IFILL ,IMS ,IRBE2 ,LRBE2 ,
304 9 ZI_PLY ,INOD_PXFEM ,IEL_PXFEM ,ICODPLY ,ISKWPLY ,
305 A ADDCNE_PXFEM ,CNE_PXFEM ,CEL_PXFEM ,ITHVAR ,XDP,TABLE ,
306 B CELSPH ,ICFIELD ,LCFIELD ,CFIELD ,
307 C MSZ2 ,ITASK ,DIAG_SMS ,
308 D ILOADP ,LLOADP ,LOADP,
309 E INOD_CRKXFEM ,IEL_CRKXFEM ,ADDCNE_CRKXFEM ,CNE_CRKXFEM ,CEL_CRKXFEM ,
310 F IBUFSSG_IO ,INTERCEP ,IBORDNODE ,IEDGESH ,IBORDEDGE ,
311 G LINALE ,NODEDGE ,IEDGE ,CEP_CRKXFEM ,IEDGE_TMP ,
312 H CRKNODIAD ,ELBUF_TAB ,NOM_OPT ,LGAUGE ,GAUGE ,
313 I IGAUP ,NGAUP ,NODLEVXF ,FRONTB_R2R ,DFLOW ,
314 J VFLOW ,WFLOW ,SPH2SOL ,SOL2SPH ,IRST ,
315 K ELCUTC ,NODENR ,KXFENOD2ELC ,ENRTAG ,INTBUF_TAB,
316 M I11FLAG ,XFEM_TAB ,LENTHGR ,RTHBUF ,
317 N IXIG3D ,KXIG3D ,KNOT ,IPARTIG3D ,WIGE ,
318 O NCRKPART ,INDX_CRK ,CRKLVSET ,CRKSHELL ,CRKSKY ,
319 P CRKAVX ,CRKEDGE ,SENSORS ,
320 Q STACK ,XFEM_PHANTOM ,T8 ,TAB_UMP ,POIN_UMP ,
321 R SOL2SPH_TYP ,ADDCSRECT ,CSRECT ,DRAPE ,LOADS ,
322 S ITAGND ,ICNDS10 ,ADDCNCND ,
323 T CEPCND ,CELCND ,CNCND ,NATIV_SMS ,I24MAXNSNE ,
324 U MULTI_FVM ,SEGQUADFR ,INTBUF_FRIC_TAB,SUBSET ,IGRNOD ,
325 V IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
326 W IGRBEAM ,IGRSPRING ,IGRPART ,IGRSURF ,IGRSLIN ,
327 X POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,MID_PID_SHELL,MID_PID_TRI ,
328 Y MID_PID_SOL , TAG_NM ,NINDX_NM ,INDX_NM ,TAG_SCRATCH ,
329 Z NINDX_SCRT , INDX_SCRT ,FLAG_24_25 ,NUMNOD_L ,TAG_SKN ,
330 A MULTIPLE_SKEW, IGRSURF_PROC,KNOTLOCPC ,KNOTLOCEL ,ALE_ELM,
331 B SIZE_ALE_ELM ,PINCH_DATA ,TAG_SKINS6 ,IBCSCYC ,LBCSCYC ,T_MONVOL,
332 C INDX_S,INDX_Q,INDX_TG,FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,NBR_TH_MONVOL, EBCS_TAB,
333 D KLOADPINTER , LOADPINTER ,DGAPLOADINT ,S_LOADPINTER, LEN_CEP ,DYNAIN_DATA,
334 E DRAPEG ,USER_WINDOWS,OUTPUT ,INTERFACES ,NUMBER_LOAD_CYL,
335 F LOADS_PER_PROC, PYTHON ,DPL0CLD ,VEL0CLD ,NAMES_AND_TITLES,
336 G BCS_PER_PROC,constraint_struct,glob_therm ,PBLAST ,RWSTIF_PEN,SLN_PEN )
386 USE bcs_mod ,
ONLY : bcs_struct_
387 use constraint_mod ,
only : constraint_
388 use c_inivell_mod ,
only : c_inivell
389 use w_inivel_str_mod ,
only : w_inivel_str
391 use write_ale_grid_mod,
only : write_ale_grid
394 use checksum_starter_option_mod,
only : checksum_write_starter_restart
395 use w_bcs_proc_mod ,
only : w_bcs_proc
396 use element_mod ,
only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
401#include "implicit_f.inc"
405#include "com01_c.inc"
406#include "com04_c.inc"
407#include "com10_c.inc"
408#include "com_xfem1.inc"
410#include "flowcom.inc"
412#include "intstamp_c.inc"
413#include "lagmult.inc"
414#include "param_c.inc"
415#include "scr03_c.inc"
416#include "scr05_c.inc"
417#include "scr15_c.inc"
418#include "scr16_c.inc"
419#include "scr17_c.inc"
420#include "scr23_c.inc"
423#include "tabsiz_c.inc"
424#include "tablen_c.inc"
425#include "remesh_c.inc"
427#include "inter22.inc"
428#include "drape_c.inc"
429#include "debug_rst.inc"
432 INTEGER,
DIMENSION(:),
POINTER :: P
433 END
TYPE INTERMASURFEP
434 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
435 TYPE (OUTPUT_),
INTENT(IN) :: OUTPUT
436 TYPE (INTERFACES_) ,
INTENT(IN) :: INTERFACES
437 TYPE(python_),
INTENT(INOUT) :: PYTHON
438 TYPE(pblast_),
INTENT(INOUT) :: PBLAST
442 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
443 INTEGER,
INTENT(IN) :: LEN_CEP
444 INTEGER,
DIMENSION(SCEL),
INTENT(IN) :: CEL
447 . libagale, lenthg, lenlas, npts,len,
448 . lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt,
449 . lenvolu, nthwa, nairwa, nmnt, i2nsnt,
450 . l_mul_lag1, l_mul_lag, lwaspio,pm1sph,
451 . lcni2g, pm1shf, i11flag,lenthgr,ncrkpart,
452 . cep(len_cep),igeo(*), ipm(*),
453 . icode(*),iskew(*),iskn(*),insel(*),ibcslag(*),
454 . ipart(*),iparts(*),ipartq(*),ipartc(*),ipartt(*),
455 . ipartp(*),ipartr(*),iparttg(*),ipartx(*),
456 . npc(*),ixtg(nixtg,*),ixtg6(4,*),
457 . ixs(nixs,*),ixs10(6,*),ixs20(12,*),ixs16(8,*),
458 . ixq(nixq,*),ixc(*),ixt(*),ixp(*),ixr(*),
459 . itab(*),itabm1(*),gjbufi(*),
460 . nale(*),iexmad(*),kxx(*),ixx(*),ibcl(*),ibfv(*),las(*),
461 . laccelm(*),nnlink(*),lllink(*),
462 . iparg(*),igrav(*),lgrav(*),
463 . ibvel(*),lbvel(*),iactiv(*),kinet(*),
464 . ipari(*),nprw(*),lprw(*),
465 . npby(*),lpby(*), iexlnk(*),
466 . ixri(*),nstrf(*),ljoint(*),
pornod(*),monvol(*),fvmain(*),
467 . lagbuf(*), fr_iad(*),
468 . icontact(*), ipartsp(*), ispcond(*),
469 . ddstat(50), cne(*), lcne, addcne(0:*),
470 . cni2(*), addcni2(0:*), cepi2(*), celi2(*),
472 . kxsp(*), ixsp(*), nod2sp(*), cepsp(*),
473 . eigipm(*), eigibuf(*), iflow(*), fasolfr(2,*),
475 . fxbipm(*), fxbnod(*),
476 . fxbelm(*), fxbgrvi(*), iadll(*), lll(*),ibmpc(*),lrbagale,
477 . iskwp(*), nskwp(*), isensp(2,*), nsensp(*),
478 . iaccp(p), naccp(*), ipart_state(*), iframe(*),
479 . ibft(*),ibcv(*),irbe3(nrbe3l,*),lrbe3(*),
480 . irbym(*) ,lcrbym(*),front_rm(nrbym,*),inoise(*),
481 . nom_sect(*), ispsym(*), sh4tree(*), sh3tree(*),
482 . ipadmesh(*), sh4trim(*), sh3trim(*), ibcr(*), ibfflux(*),
483 . isphio(*), lprtsph(*), lonfsph(*), ifill(*), ims(*),
484 . irbe2(nrbe2l,*),lrbe2(*),inod_pxfem(*) ,
485 . iel_pxfem(*) ,icodply(*),iskwply(*) ,addcne_pxfem(0:*),
486 . cne_pxfem(*),cel_pxfem(*),ithvar(*), celsph(numsph),
487 . icfield(*),lcfield(*),iloadp(*),lloadp(*),inod_crkxfem(*),
488 . iel_crkxfem(*),addcne_crkxfem(0:*),cne_crkxfem(*),
489 . cel_crkxfem(*),ibordnode(*),iedgesh(*),ibordedge(*),
490 . linale(*),nodedge(2,*),iedge(*),cep_crkxfem(*),
491 . iedge_tmp(3,*),crknodiad(*), lgauge(*), igaup
492 . nodlevxf(*),frontb_r2r(sfrontb_r2r,*),
493 . sph2sol(*), sol2sph(*), irst(*),elcutc(2,*),nodenr(*),
494 . kxfenod2elc(*),enrtag(*),ixig3d(*),kxig3d(*),
495 . ipartig3d(*),indx_crk(*),
496 . poin_ump(nummat),sol2sph_typ(*), addcsrect(*), csrect(*),
497 . itagnd(*),icnds10(*),
498 . addcncnd(0:*), cepcnd(*), celcnd(*),cncnd(*),nativ_sms(*),
499 . i24maxnsne,segquadfr(2,*),tag_skins6(*),ibcscyc(*),lbcscyc(*)
500 INTEGER,
INTENT(IN) :: S_LOADPINTER
501 INTEGER,
INTENT(IN) :: KLOADPINTER(NINTER+1) ,LOADPINTER(S_LOADPINTER)
502 my_real ,
INTENT(IN) :: DGAPLOADINT( )
503 INTEGER NOM_OPT(LNOPT1,*)
504 INTEGER(KIND=8) :: MEMFLOW(*)
505 INTEGER,
DIMENSION(2,NPART),
INTENT(IN) :: POIN_PART_SHELL,POIN_PART_TRI
506 INTEGER,
DIMENSION(2,NPART,7),
INTENT(IN) :: POIN_PART_SOL
507 INTEGER :: NBR_TH_MONVOL
512 . X(*), D(*), V(*), VR(*), DR(*),
513 . THKE(*), DAMPR(*), DAMP(*), MS(*)
526 . fxbvit(*), fxbacc(*), fxbsig(*), fxbgrvr(*), lambda(*),
527 . mcp(*), temp(*), partsav(*),fbft(*), fconv(*),
528 . frbe3(*), rbym(*),fnoise(*), ms0(*), admsms(*),
529 . padmesh(*) ,msc(*), mstg(*),
530 . inc(*), intg(*), ptg(*), mcpc(*), mcptg(*),
531 . rcontact(*), acontact(*), pcontact(*), mscnd(*), incnd(*),
532 . mssa(*), mstr(*), msp(*), msrt(*), fradia(*), fbfflux(*),
533 . dmelc(*), dmeltg(*), dmels(*), dmeltr(*), dmelp(*),
534 . dmelrt(*), res_sms(*), vsphio(*), sphveln(*), alph(*),
535 . ms_ply(*),zi_ply(*),cfield(*),msz2(*),
536 . diag_sms(*),loadp(*),gauge(*),dflow(*),vflow(*),wflow(*),
537 . rthbuf(*),knot(*),wige(*),tab_ump(7,taille),
538 . knotlocpc(*),knotlocel(*)
539 my_real,
INTENT(IN) :: dpl0cld(6,nconld),vel0cld(6,nconld)
540 TYPE (INTSTAMP_DATA) INTSTAMP(*)
541 TYPE (TTABLE) TABLE(*)
542 TYPE (INTBUF_STRUCT_) INTBUF_TAB(*)
543 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
544 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP,*) :: XFEM_TAB
545 TYPE (CLUSTER_) ,
DIMENSION(NCLUSTER) :: CLUSTERS
546 TYPE (XFEM_SHELL_) ,
DIMENSION(NLEVMAX) :: CRKSHELL
547 TYPE (XFEM_LVSET_) ,
DIMENSION(NLEVMAX) :: CRKLVSET
548 TYPE (XFEM_SKY_) ,
DIMENSION(NLEVMAX) :: CRKSKY
549 TYPE (XFEM_AVX_) ,
DIMENSION(NLEVMAX) :: CRKAVX
550 TYPE (XFEM_EDGE_) ,
DIMENSION(NXLAYMAX) :: CRKEDGE
551 TYPE (XFEM_PHANTOM_),
DIMENSION(NXLAYMAX) :: XFEM_PHANTOM
552 TYPE (STACK_PLY) :: STACK
553 TYPE (INT8_STRUCT_) :: T8(NSPMD,*)
554 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
555 TYPE(INTBUF_FRIC_STRUCT_) :: INTBUF_FRIC_TAB(*)
556 TYPE(MID_PID_TYPE),
DIMENSION(NUMMAT),
INTENT(IN) :: MID_PID_SHELL,MID_PID_TRI
557 TYPE(MID_PID_TYPE),
DIMENSION(NUMMAT,7),
INTENT(IN) :: MID_PID_SOL
558 TYPE (FAILWAVE_STR_) :: FAILWAVE
559 TYPE (NLOCAL_STR_) :: NLOC_DMG
560 TYPE (DRAPE_) :: DRAPE (NUMELC_DRAPE + NUMELTG_DRAPE)
561 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
562 TYPE (DRAPEG_) :: DRAPEG
564 TYPE (SUBSET_) ,
DIMENSION(NSUBS) :: SUBSET
565 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
566 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
567 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
568 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
569 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
570 TYPE (GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS
571 TYPE (GROUP_) ,
DIMENSION(NGRBEAM) :: IGRBEAM
572 TYPE (GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING
573 TYPE (GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
574 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
575 TYPE (SURF_) ,
DIMENSION(NSLIN) :: IGRSLIN
576 TYPE (PINCH) :: PINCH_DATA
578 INTEGER,
INTENT(IN) :: SLN_PEN
579 my_real,
DIMENSION(SLN_PEN),
INTENT(IN ) :: RWSTIF_PEN
580 LOGICAL,
INTENT(IN) :: FLAG_24_25
581 INTEGER,
INTENT(IN) :: NUMNOD_L
582 INTEGER,
INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
583 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,INDX_SCRT
584 INTEGER,
DIMENSION(*) :: TAG_NM,TAG_SCRATCH
599 INTEGER,
DIMENSION(NUMSKW+1),
INTENT(INOUT) :: TAG_SKN
600 TYPE(plist_skew_),
DIMENSION(NUMSKW+1),
INTENT(INOUT) :: MULTIPLE_SKEW
611 TYPE(
surf_),
DIMENSION(NSURF,NSPMD),
INTENT(IN) :: IGRSURF_PROC
619 INTEGER,
INTENT(IN) :: SIZE_ALE_ELM
620 TYPE(split_cfd_type),
INTENT(IN) :: ALE_ELM
625! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
626 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(IN) :: T_MONVOL
629 INTEGER,
DIMENSION(*),
INTENT(in) :: INDX_S
630 INTEGER,
DIMENSION(*),
INTENT(in) :: INDX_Q
631 INTEGER,
DIMENSION(*),
INTENT(in) :: INDX_TG
632 INTEGER,
DIMENSION(6*NUMELS,*),
INTENT(in) :: FACE_ELM_S
633 INTEGER,
DIMENSION(4*NUMELQ,*),
INTENT(in) :: FACE_ELM_Q
634 INTEGER,
DIMENSION(3*NUMELTG,*),
INTENT(in) :: FACE_ELM_TG
641 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
644 INTEGER,
INTENT(IN) :: NUMBER_LOAD_CYL
645 TYPE(loads_),
INTENT(IN) :: LOADS
646 TYPE(loads_),
INTENT(INOUT) :: LOADS_PER_PROC
647 TYPE(bcs_struct_),
INTENT(INOUT) :: BCS_PER_PROC
649 type(constraint_),
intent(inout) ::
651 TYPE(glob_therm_) ,
intent(inout) :: glob_therm
655 INTEGER,
DIMENSION(:,:),
ALLOCATABLE:: DD_RBYM2
656 INTEGER,
DIMENSION(:,:),
ALLOCATABLE:: DD_RBY2
657 INTEGER I, IR_, IM,IFILNAM(2148),IFILNAM2(2148),
658 . numels_l,numels8_l,numels10_l,numels20_l,numels16_l,
659 . numelq_l ,numelc_l, nconld_l,nskyll_l,
660 . numelt_l,numelp_l,numelr_l,numeltg_l,
661 . numeltg3,numeltg3_l,numeltg6_l,numelx_l,numpor_l,
662 . nsvois,nqvois,ntgvois,ne_nsvois,ne_nqvois,ne_ntgvois,nrcvvois,nsndvois,ilaw11,ljoint_l,
663 . nsegfl_l,ngroup_l, nstrf_l,
664 . nslaw_l, neslaw_l, lwsav_l, nslarb_l,
665 . lbufel_l, lenwa_l, intbag_l, isumnx_l, numel_l,
666 . nllink_l, llgrav_l, llbvel_l, nfxvel_l, off1,
667 . off, shf, iun, numel, isp0, nbddacc, nbddkin, nbddnod,
668 . nbddproc, nbddboun, nbddnrb, nrbykin_l, nskyrw_l,
669 . nskyrbk_l, lenthgt, nbddi2m, nnmv_l, nnmvc_l, nbddncj,
670 . lcne_l, nisky0_l, lcni2_l, i2nsn_l, niskyi2_l, nir,
671 . nskyrbm_l,nbddnrbm, lsecbuf_l, nnodt_l, nnodl_l,
672 . nmadsh4_l, nmadsh3_l,nmadsol_l,nmadnod_l,madcl_nmadnod_l,
673 . imaximp_l, i2nsn25_l,
674 . numsph_l, lwasph_l, nbi18_l, nskyi18_l,
675 . nsnt_l,nmnt_l,nsnt2_l,nmnt2_l,
676 . nfasolfr_l, nlagf_l, proc, inum, iddl, iskw,
677 . len_ia, len_am, i_eval,r_eval,lskyi, ncmax,
678 . nervois, nesvois,ne_nervois, ne_nesvois, nbcfd, numel_l2,
680 . eigipm_l(neipm,neig), leibuf_l, eigibuf_l(leibuf),
681 . iflow_l(liflow), dd_lagf(3,nspmd+1),my_ilen,my_rlen,
682 . skippon_l,llrbe3_l,nskyrbe3_l,
683 . nrbe3_l,nbddrbe3m,nslarbm_l,nskyrbmk,nrbe3pen_l,
684 . nrbymkin_l ,nbddnrbym,nsktrbmk_l,nrbymk_l,
685 . nskyrbmk_l, lag_sec,
686 . nrbe2_l,llrbe2_l,nbddrbe2,numelcpxfe_l,numnodpxfe_l,
687 . itag_pxfem(nplyxfe),index_pxfem(nplyxfe),
688 . lcnepxfem_l,llcfield_l,
689 . itask,llloadp_l,numelcrkxfe_l,numnodcrkxfe_l,lcnecrkxfem_l,
690 . numelccrkxfe_l,numeltgcrkxfe_l,
691 . numedges_l,nbddedge_l,
692 . sdd_r2r_elem,nod_xfe_l,
693 . nsphsol_l,first_sphsol_l,ncluster_l,ixel,flag_allocate,
694 . flag_xfem,numelig3d_l,isumnig3d_l, numnor_l, nbddnort_l,
695 . nbddnor_max_l, nbccfr25_l, nbccnor_l, nbddedgt_l, nbddedg_max_l, nrtmx25_l,
696 . nbddcndm,ns10e_l,lcncnd_l,
697 . nsegquadfr_l ,lintfric, siz,lenigrnod_l,
698 . lenigrbric_l,lenigrquad_l,lenigrsh4n_l,
699 . lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
700 . lenigrsh3n_l,lenisurf_l,lenislin_l,nbcscyc_l,llbcscyc_l,ns_diff,
701 . n_slipring_l,n_retractor_l,n_anchor_remote_l,n_anchor_remote_send_l,
702 . n_seatbelt_l,n_seatbelt_2d_l,numsh4n_l,numsh3n_l,ncload_l,npload_l,
703 . ndamp_vrel_l,idamp_vrel_l(ndamp),ninivelt_l,lrw_pen_l,nrw_pen_l
706 INTEGER NCONV_L,NFXTEMP_L,NRADIA_L,NFXFLUX_L
707 INTEGER ,
DIMENSION(:),
ALLOCATABLE:: NUMLOCGROUP,NUMLOCCLUSTER
708 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODLOCAL,IEPXFEM_L,INPXFEM_L,
709 . IELXFEMC_L,INCRKXFEM_L,ELCUTC_L,ELCUTTG_L,NODENR_L,
711 . ,INDEX_CRKXFEM,NODLEVXF_L, NODLOCAL_MGM
712 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODGLOB, IDGLOB_L, UIDGLOB_L,
713 . ixsf, ixqf, ixtgf, itabi2m, itabrbe3m, itabrbe2m
715 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IPARI_L
716 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ID_GLOBAL_VOIS,FACE_VOIS
717 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITABCNDM
718 INTEGER LENNOD_L, LENMOD_L, LENELM_L, LENSIG_L,
719 . FXBIPM_L(NBIPM,NFXBODY), LENGLM_L, LENCP_L, LENLM_L,
720 . lenfls_l, lendls_l, lenmcd_l, lengrvi_l, lengrvr_l
721 INTEGER LINTSTAMP, LTABLE
722 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FXBNOD_L, FXBELM_L,
723 . fxbgrvi_l, monvol_l
725 . ,
DIMENSION(:),
ALLOCATABLE :: fxbmod_l, fxbsig_l,
726 . fxbglm_l, fxbcpm_l,
728 . fxbfls_l, fxbdls_l,
730 my_real,
DIMENSION(:),
ALLOCATABLE::rdpartsav
732 . ,
DIMENSION(:),
ALLOCATABLE :: forneqs
736 INTEGER NUM16SHIFT_L,SPHSHIFT_L
737 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISKWP_L
739 INTEGER ,
DIMENSION(:,:),
ALLOCATABLE :: SPH_SEND_ARR,SPH_RECV_ARR
740 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: SPHLOCAL
741 INTEGER RECV_COUNT(NSPMD),SEND_COUNT(NSPMD)
742 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IEDGECRK_L,
743 . ibordedge_l,nodedge_l,iedgesh4_l,iedgesh3_l,tagedge,
744 . iedge_l,edgelocal,edgeglobal
747 INTEGER SLONFSPH_L,SLPRTSPH_L,SSPHVELN_L
748 INTEGER IBUFSSG_IO(SIBUFSSG_IO)
749 my_real,
DIMENSION(:),
ALLOCATABLE :: rbufgeo
752 INTEGER :: LEN_TMP_NAME
753 CHARACTER(len=4096) :: TMP_NAME
757 INTEGER LHEADER,LVARINT,LVARREA,LMXVINT,LMXVREA,LEN_G,LEN_M,
758 . LEN_S,LEN_ADM,LEN_IG,LEN_PM
759 PARAMETER (LHEADER=15)
760 parameter (lmxvint=4000)
761 parameter(lmxvrea=1000+30*maxlaw+30)
762 INTEGER TABHEAD(LHEADER),TABVINT(LMXVINT)
765 DOUBLE PRECISION XDP(*)
767 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODGLOBXFE
769 TYPE(INTBUF_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: INTBUF_TAB_L
770 TYPE(MAT_ELEM_) ,
INTENT(IN) :: MAT_ELEM
771 TYPE(GROUP_PARAM_) ,
DIMENSION(NGROUP) :: GROUP_PARAM_TAB
779 INTEGER :: IEBCSLGTH, IEBCS_NELEM_L(NEBCS), IEBCS_TYPE(NEBCS)
780 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
783 my_real,
DIMENSION(:),
ALLOCATABLE :: IEBCS_LISTDP0_L
787 my_real,
DIMENSION(:,:),
ALLOCATABLE :: MULTI_FVM_VEL_L
791 INTEGER,
DIMENSION(:),
ALLOCATABLE :: BUFFER
792 INTEGER :: BUFFER_SIZE
796 INTEGER (KIND=8) :: FILE_SIZE
801 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ELEMID_L
802 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
803 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
804 INTEGER :: II, JJ, NEBCS_FVM, IPT, ITMP
805 INTEGER :: NEBCS_PARALLEL,OTHER_NEBCS
806 INTEGER,
DIMENSION(NEBCS) :: LIST_EBCS_PARALLEL,LIST_OTHER_EBCS
807 TYPE(t_ebcs_tab) :: EBCS_TAB_LOC
808TYPE(t_connectivity_ext1) :: ee_connect_l
809 LOGICAL :: IS_EBCS_PARALLEL
814 INTEGER,
DIMENSION(LTITLE) :: ITITLE
818 IF (multi_fvm%IS_USED)
THEN
819 ALLOCATE(multi_fvm_vel_l(3, numels + numelq + numeltg))
821 ALLOCATE(multi_fvm_vel_l(1,1))
825 ALLOCATE(nodlocal(numnod))
828 ALLOCATE(iepxfem_l(numelc))
829 ALLOCATE(inpxfem_l(numnod))
830 ALLOCATE(ielxfemc_l(numelc))
831 ALLOCATE(ielxfemtg_l(numeltg))
832 ALLOCATE(incrkxfem_l(numnod))
833 ALLOCATE(numlocgroup(ngroup))
834 ALLOCATE(numloccluster(ncluster))
835 numloccluster(1:ncluster) = 0
836 ALLOCATE(iskwp_l(numskw+1))
838 CALL my_alloc(ipari_l,npari,
max(1,ninter))
839 CALL my_alloc(rdpartsav,npsav*npart)
840 CALL my_alloc(dd_rbym2,3,nrbym)
841 CALL my_alloc(dd_rby2,3,nrbykin)
845 ALLOCATE(monvol_l(lenvolu))
847 monvol_l(i) = monvol(i)
863 IF(numnod_l>0)
ALLOCATE(nodglob(numnod_l))
864 CALL f_nodloc2(numnod,p ,nodglob,nodlocal,igeo ,
865 2 iparg,ixs ,ixq,ixc ,ixtg ,
866 3 ixt ,ixp ,ixr,geo ,numnod_l)
870 CALL c_ngroup(iparg,p-1,numlocgroup,ngroup_l)
875 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels8,numels8_l)
877 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels10,numels10_l)
879 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels20,numels20_l)
881 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels16,numels16_l)
883 numels_l = numels8_l + numels10_l + numels20_l + numels16_l
884 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelq,numelq_l)
886 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelc,numelc_l)
888 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelt,numelt_l)
890 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelp,numelp_l)
892 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelr,numelr_l)
894 numeltg3=numeltg-numeltg6
895 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg3,numeltg_l)
897 numeltg3_l = numeltg_l
898 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg6,numeltg6_l)
900 numeltg_l = numeltg3_l+numeltg6_l
901 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelx,numelx_l)
903 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l)
904 off = off + numelig3d
908 pm1shf = 2*numels16_l + 1
910 num16shift_l = pm1shf
911 pm1shf = pm1shf + 2*numels16_l
917 IF(ncluster > 0)
THEN
918 CALL c_cluster(clusters,p-1,cep,ncluster_l,numloccluster)
938 IF(detonators%IS_SHADOWING_REQUIRED) ishadow = 1
939 IF (iale + ieuler + glob_therm%ITHERM + ialelag + ishadow > 0)
THEN
940 numel =
max(numels,numelq)
941 numel_l =
max(numels_l,numelq_l
942 IF (multi_fvm%IS_USED .AND. n2d /= 0)
THEN
943 numel =
max(numel, numeltg)
944 numel_l =
max(numel_l, numeltg_l)
946 CALL c_vois(nsvois ,nqvois , ntgvois, nrcvvois,nsndvois,ilaw11 ,
947 2 nsegfl_l,iparg ,cep ,ale_connectivity ,numel ,
948 3 p-1 ,ixs ,ixq ,ixtg,
949 4 nervois ,nesvois,nodlocal,numnod_l,numel_l,
950 5 cel, multi_fvm,ale_elm,size_ale_elm)
952 IF(ale_connectivity%has_ne_connect)
THEN
955 . numel, numnod, numel_l, numnod_l,
956 . numels_l, numelq_l, numeltg_l,
957 . ne_nervois, ne_nesvois,
958 . ne_nsvois, ne_nqvois, ne_ntgvois)
966 ALLOCATE(iebcs_listelem_l(0))
967 ALLOCATE(iebcs_listfac_l(0))
968 ALLOCATE(iebcs_listdp0_l(0))
969 ebcs_tab_loc%nebcs_fvm = 0
977 is_ebcs_parallel = .false.
978 IF(ebcs_tab%tab(ii)%poly%type==10 .or. ebcs_tab%tab(ii)%poly%type==11) is_ebcs_parallel=.true.
979 IF (ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
980 nebcs_fvm = nebcs_fvm + 1
981 ELSEIF(is_ebcs_parallel)
THEN
982 nebcs_parallel = nebcs_parallel + 1
983 list_ebcs_parallel(nebcs_parallel) = ii
985 other_nebcs = other_nebcs + 1
986 list_other_ebcs(other_nebcs) = ii
990 CALL ebcs_tab_loc%create(nebcs_fvm)
991 ebcs_tab_loc%nebcs_fvm = nebcs_fvm
994 ebcs_tab_loc_2%nebcs_parallel = nebcs_parallel
995 CALL ebcs_tab_loc_2%create(nebcs_parallel)
996 ebcs_tab_loc_2%nebcs_loc = other_nebcs
997 ebcs_tab_loc_2%nebcs_fvm = 0
1001 . numels, numelq, numeltg
1002 . nebcs, cep, numels + numelq + numeltg,
1003 . p-1, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l,iebcs_listdp0_l,iebcslgth, n2d,
1004 . multi_fvm%IS_USED,0,ebcs_tab)
1008 DEALLOCATE(iebcs_listelem_l)
1009 DEALLOCATE(iebcs_listfac_l)
1010 DEALLOCATE(iebcs_listdp0_l)
1011 ALLOCATE(iebcs_listfac_l(iebcslgth))
1012 ALLOCATE(iebcs_listelem_l(iebcslgth))
1013 ALLOCATE(iebcs_listdp0_l(iebcslgth))
1020 . numels, numelq, numeltg,
1021 . nebcs, cep, numels + numelq + numeltg,
1022 . p-1, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l,iebcs_listdp0_l,iebcslgth, n2d,
1023 . multi_fvm%IS_USED,1,ebcs_tab)
1037 is_ebcs_parallel = .false.
1038 IF(ebcs_tab%tab(ii)%poly%type == 10 .OR. ebcs_tab%tab(ii)%poly%type == 11 )is_ebcs_parallel = .true.
1042 IF (ebcs_tab%tab(ii)%poly%is_multifluid)
THEN
1044 nebcs_fvm = nebcs_fvm + 1
1045 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly, source = ebcs_tab%tab(ii)%poly)
1046 IF (
ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem))
THEN
1047 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem)
1049 IF (
ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface))
THEN
1050 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface)
1052 IF (
ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0))
THEN
1053 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0)
1055 ebcs_tab_loc%tab(nebcs_fvm)%poly%nb_elem = iebcs_nelem_l(ii)
1056 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem(iebcs_nelem_l(ii)))
1057 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface(iebcs_nelem_l(ii)))
1058 IF(ebcs_tab_loc%tab(nebcs_fvm)%poly%has_dp0)
ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0(iebcs_nelem_l(ii)))
1059 DO jj = 1, iebcs_nelem_l(ii)
1060 ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1061 ebcs_tab_loc%tab(nebcs_fvm)%poly%iface(jj) = iebcs_listfac_l(ipt)
1062 IF(ebcs_tab_loc%tab(nebcs_fvm)%poly%has_dp0)ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1067 ELSEIF(is_ebcs_parallel)
THEN
1068 nebcs_parallel = nebcs_parallel + 1
1069 ALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly, source = ebcs_tab%tab(ii)%poly)
1070 IF(ebcs_tab%tab(ii)%poly%has_ielem
THEN
1071 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_elem = iebcs_nelem_l(ii)
1072 IF (
ALLOCATED(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface))
THEN
1073 DEALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface)
1075 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_elem = iebcs_nelem_l(ii)
1076 ALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface(iebcs_nelem_l(ii)))
1077 DO jj = 1, iebcs_nelem_l(ii)
1078 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1079 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface(jj) = iebcs_listfac_l(ipt)
1080 IF(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%has_dp0)
THEN
1081 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1088 ELSEIF(ebcs_tab%tab(ii)%poly%has_ielem .and. p==1)
THEN
1089 ebcs_tab%tab(ii)%poly%nb_elem = iebcs_nelem_l(ii)
1090 IF (
ALLOCATED(ebcs_tab%tab(ii)%poly%ielem))
THEN
1091 DEALLOCATE(ebcs_tab%tab(ii)%poly%ielem)
1093 IF (
ALLOCATED(ebcs_tab%tab(ii)%poly%iface))
THEN
1094 DEALLOCATE(ebcs_tab%tab(ii)%poly%iface)
1096 ebcs_tab%tab(ii)%poly%nb_elem = iebcs_nelem_l(ii)
1097 ALLOCATE(ebcs_tab%tab(ii)%poly%ielem(iebcs_nelem_l(ii)))
1098 ALLOCATE(ebcs_tab%tab(ii)%poly%iface(iebcs_nelem_l(ii)))
1099 DO jj = 1, iebcs_nelem_l(ii)
1100 ebcs_tab%tab(ii)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1101 ebcs_tab%tab(ii)%poly%iface(jj) = iebcs_listfac_l(ipt)
1102 IF(ebcs_tab%tab(ii)%poly%has_dp0)ebcs_tab%tab(ii)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1112 CALL split_ebcs(p,nebcs_parallel,list_ebcs_parallel,scel,cep,igrsurf,cel,ebcs_tab,ebcs_tab_loc_2)
1119 IF (multi_fvm%IS_USED)
THEN
1122 . multi_fvm_vel_l, multi_fvm)
1124 CALL c_multi_vel(cep, numelq + numeltg, numelq_l + numeltg_l, p-1,
1125 . multi_fvm_vel_l, multi_fvm)
1142 1 igrnod ,igrbric ,igrquad ,igrsh4n ,igrsh3n ,
1143 2 igrtruss ,igrbeam ,igrspring ,igrpart ,cep ,
1144 3 cel ,nodlocal ,p-1 ,lenigrnod_l,lenigrbric_l ,
1145 4 lenigrquad_l,lenigrsh4n_l,lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
1146 5 lenigrsh3n_l,frontb_r2r ,numnod_l)
1147 CALL c_isurf_str(p-1,lenisurf_l,nspmd,igrsurf_proc)
1169 + nbddi2m ,i2nsn_l,probint ,imaximp_l,nbi18_l ,
1170 + nskyi18_l,nsnt_l ,nmnt_l ,nsnt2_l ,nmnt2_l ,
1171 + cep ,igrbric,ipari_l ,
1172 + nodlocal ,i2nsn25_l, intercep, intbuf_tab, numnor_l,
1173 + i24maxnsne, multi_fvm,tag_scratch,indx_scrt,nindx_scrt)
1188 1
CALL c_rwall(nprw ,lprw ,rwl ,
1189 2 cep ,p-1 ,nslaw_l ,neslaw_l,
1190 3 lwsav_l,nskyrw_l,lrw_pen_l,nrw_pen_l)
1201 +
CALL c_mad(iexmad,nmadsh4_l,nmadsh3_l,nmadsol_l,nmadnod_l,
1202 + madcl_nmadnod_l,cep ,p-1 )
1209 +
CALL c_rbyk(npby,lpby,p-1,nslarb_l,nskyrbk_l)
1216 +
CALL c_rbymk(irbym,lcrbym,p-1,nslarbm_l,nskyrbmk_l)
1225 +
CALL c_sectio(nstrf ,cep ,p-1,nstrf_l,
1226 + lsecbuf_l,nnodt_l,nnodl_l)
1232 IF(njoint>0.AND.p==1)
CALL c_joint_sms(ljoint,p-1,ljoint_l)
1244 CALL c_bufel(iparg,p-1,lbufel_l)
1251 + intbag_l = lenvolu
1252 ELSEIF(intbag > 0 .AND. ialelag > 0 )
THEN
1260 .
CALL c_elmx(kxx,cep,p-1,isumnx_l)
1269 IF (nsphsol > 0)
THEN
1276 CALL c_isph(kxsp,cepsp,p-1,numsph_l,
1277 . slonfsph_l,slprtsph,slprtsph_l,ipartsp,ssphveln_l,
1278 . nsphsol_l ,first_sphsol_l)
1283 pm1sph = 4*numsph_l + 1
1286 pm1sph = pm1sph + 4*numsph_l
1293 .
CALL c_ibcl(ibcl,cep,p-1,nconld_l)
1299 .
CALL c_ibfv(ibfv,nfxvel,nfxvel_l,p-1,dd_lagf)
1306 .
CALL c_llink(nnlink,lllink,p-1,nllink_l,nskyll_l)
1312 .
CALL c_igrav(igrav,lgrav,llgrav_l,p-1,nodlocal,numnod_l)
1319 .
CALL c_ibvel(ibvel,lbvel,llbvel_l,nskyrbm_l,p-1)
1327 .
CALL c_irbe2(irbe2,lrbe2,p-1 ,nrbe2_l,
1328 . llrbe2_l ,nbddrbe2)
1338 .
CALL c_irbe3(irbe3,lrbe3,nskyrbe3_l,p-1,
1339 . nrbe3_l,llrbe3_l ,nbddrbe3m,nrbe3pen_l)
1343 IF (nummpc>0.AND.p==1)
THEN
1347 CALL c_ibmpc(ibmpc,ibmpc(inum),ibmpc(iddl),ibmpc(iskw),dd_lagf)
1352 numel_l = numels_l + numelq_l + numelc_l + numelt_l + numelp_l
1353 + + numelr_l + numeltg_l+ numelx_l + numsph_l
1358 lenthgt = nithgr*(nthgrp0+nbr_th_monvol)
1363 CALL c_front(p ,nbddacc,nbddkin,nbddnrb,
1364 2 npby ,nrbykin_l,ljoint ,nbddncj,ibvel ,
1365 3 nbddnrbm ,iadll ,lll ,nlagf_l, front_rm,
1366 4 nrbymk_l ,nbddnrbym
1367 5 sdd_r2r_elem,addcsrect,csrect ,nbddnort_l,nbddnor_max_l,
1368 6 nbccnor_l,nbccfr25_l,nbddedgt_l,nbddedg_max_l,nrtmx25_l ,
1369 7 ipari ,intbuf_tab,intercep ,nodglob ,nodlocal ,
1370 8 numnod_l ,nloc_dmg)
1371 nbddnod = nbddacc+nbddkin
1376 CALL c_pon(addcne ,numnod_l,nodglob ,lcne_l ,i2nsnt ,
1377 2 addcni2,lcni2_l ,monvol ,
1378 3 cep ,p-1 ,nnmv_l ,nnmvc_l ,addcne_pxfem,
1379 4 lcnepxfem_l,inod_pxfem ,addcne_crkxfem,lcnecrkxfem_l,
1380 5 inod_crkxfem,addcncnd,lcncnd_l,igrsurf)
1381 nisky0_l=8*numels_l+6*numels10_l+8*numels16_l+12*numels20_l+
1382 + 4*numelq_l+4*numelc_l+2*numelt_l+2*numelp_l+
1383 + 3*numelr_l+3*numeltg_l+3*numeltg6_l+4*nconld_l
1386 niskyi2_l = i2nsn_l*nir
1405 . lennod_l, lenmod_l, lenelm_l, lensig_l, p-1,
1406 . lengrvi_l, fxbgrvi )
1408 ALLOCATE(fxbnod_l(lennod_l*2), fxbmod_l(lenmod_l*6),
1409 . fxbelm_l(lenelm_l), fxbsig_l(lensig_l),
1410 . fxbgrvi_l(lengrvi_l))
1413 . fxbipm, fxbnod, nodlocal, iparg, fxbelm,
1414 . fxbnod_l, fxbmod_l, fxbelm_l, fxbsig_l, p-1 ,
1415 . fxbmod, fxbsig, fxbipm_l, fxbgrvi,
1416 . fxbgrvi_l, lennod_l, itask)
1419 . lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l,
1420 . lenmcd_l, lengrvr_l, fxbipm_l, p-1 )
1422 ALLOCATE(fxbglm_l(lenglm_l), fxbcpm_l(lencp_l),
1423 . fxbcps_l(lencp_l), fxblm_l(lenlm_l),
1424 . fxbfls_l(lenfls_l), fxbdls_l(lendls_l),
1425 . fxbgrvr_l(lengrvr_l))
1428 . fxbglm, fxbcpm, fxbcps, fxblm, fxbfls,
1429 . fxbdls, fxbgrvr, fxbipm , p-1, fxbglm_l,
1430 . fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l,
1431 . fxbgrvr_l, fxbipm_l)
1451 .
CALL c_eig(eigipm , eigibuf , eigrpm, nodlocal, eigipm_l,
1452 . eigibuf_l, leibuf_l)
1460 n_anchor_remote_l = 0
1461 n_anchor_remote_send_l = 0
1462 off = numels + numelq + numelc + numelt + numelp
1464 IF (nslipring + nretractor > 0)
THEN
1465 CALL c_seatbelts(n_slipring_l,n_retractor_l,p,nodlocal,elbuf_tab,
1466 . iparg,n_anchor_remote_l,n_anchor_remote_send_l,anchor_remote_l,anchor_remote_send_l,
1467 . n_seatbelt_l,n_seatbelt_2d_l,cep,off)
1470 IF (nflow>0)
CALL m_flow(iflow, iflow_l, nodlocal, p, memflow)
1476 nodlocal_mgm(1:numnod) = nodlocal(1:numnod)
1477 max_id = maxval(nodlocal(1:numnod))
1481 nodlocal_mgm(numnod + i) = max_id
1492 . monvol, nodlocal, ixs, p, numnod,fvmain)
1499 IF(nfasolfr/=0 .AND. numels_l/=0)
THEN
1500 CALL c_fasolfr(fasolfr, cep, p-1, cel, nfasolfr_l)
1506 IF(nsegquadfr/=0 .AND. numelq_l/=0)
THEN
1507 CALL c_segquadfr(segquadfr, cep, p-1, cel, nsegquadfr_l)
1513 IF (glob_therm%NUMCONV > 0)
1514 .
CALL c_iconv(ibcv,cep,p-1,nconv_l,glob_therm%NUMCONV,glob_therm%NICONV)
1519 IF (glob_therm%NUMRADIA > 0)
CALL c_iradia(ibcr,cep,p-1,nradia_l,
1520 . glob_therm%NUMRADIA,glob_therm%NUMCONV,glob_therm%NIRADIA)
1525 IF (glob_therm%NFXFLUX > 0)
CALL c_ithflux(ibfflux,cep,p-1,nfxflux_l,
1526 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%NITFLUX)
1531 IF (glob_therm%NFXTEMP > 0)
1532 .
CALL c_ibft(ibft,glob_therm%NFXTEMP,nfxtemp_l,p-1,dd_lagf,glob_therm%NIFT)
1537 IF(lag_ncf+lag_ncl > 0)
1538 .
CALL c_lag(ipari,nprw,lag_sec)
1544 IF(iplyxfem > 0 )
THEN
1545 off = numels + numelq
1547 CALL c_pxfem(cep(
min(off+1,len_cep)),p-1 ,nodglob ,iel_pxfem ,inod_pxfem,
1548 . iepxfem_l,inpxfem_l, numelc , numnod_l ,numelc_l,
1549 . numelcpxfe_l,numnodpxfe_l,index_pxfem)
1564 IF(icrack3d > 0)
THEN
1565 ALLOCATE(tagedge(numedges))
1568 off = numels + numelq
1570 . cep(
min(off+1,len_cep)),p-1,iel_crkxfem,ielxfemc_l,numelc,
1571 . numelc_l,numelccrkxfe_l,numedges_l,iedgesh,4,tagedge)
1572 off = off + numelc + numelt + numelp + numelr
1575 . cep(
min(off+1,len_cep)),p-1,iel_crkxfem(1+numelc),ielxfemtg_l,numeltg,
1576 . numeltg_l,numeltgcrkxfe_l,numedges_l,
1577 . iedgesh(1+4*ecrkxfec),3,tagedge)
1579 numelcrkxfe_l = numelccrkxfe_l + numeltgcrkxfe_l
1581 IF(numelcrkxfe_l>0)
THEN
1582 ALLOCATE(nodglobxfe(4*numelcrkxfe_l*nlevmax))
1586 ALLOCATE(index_crkxfem(ncrkxfe))
1587 ALLOCATE(nodlevxf_l(ncrkxfe))
1591 CALL c_ncrkxfem(nodglob ,inod_crkxfem ,incrkxfem_l ,
1592 . numnod_l,numnodcrkxfe_l,index_crkxfem,p-1,
1593 . ixc,ixtg,cep_crkxfem,nodlocal,nodlevxf_l,
1594 . nodlevxf,nodglobxfe,nod_xfe_l,crkshell)
1596 ALLOCATE(iedgecrk_l(4*numelccrkxfe_l+3*numeltgcrkxfe_l),
1597 . ibordedge_l(numedges_l),nodedge_l(2*numedges_l),
1598 . iedgesh4_l(4*numelccrkxfe_l),
1599 . iedgesh3_l(3*numeltgcrkxfe_l),iedge_l(numedges_l))
1600 ALLOCATE(edgelocal(numedges))
1601 ALLOCATE(edgeglobal(numedges))
1610 CALL c_crkedge(ielxfemc_l,ielxfemtg_l,iedgecrk_l,numedges,
1611 . iedgesh ,iedgesh(1+4*ecrkxfec),cep ,p-1,
1612 . ibordedge ,ibordedge_l,numedges_l,nodedge,
1613 . nodedge_l ,nodlocal ,iedgesh4_l,iedgesh3_l,
1614 . iel_crkxfem,iedge_l ,iedge ,ecrkxfec ,
1615 . edgelocal ,nbddedge_l,iedge_tmp,edgeglobal)
1617 ALLOCATE(iedgecrk_l(0))
1618 ALLOCATE(ibordedge_l(0))
1619 ALLOCATE(nodedge_l(0))
1620 ALLOCATE(iedgesh4_l(0),iedgesh3_l(0))
1621 ALLOCATE(tagedge(0))
1622 ALLOCATE(iedge_l(0))
1623 ALLOCATE(edgelocal(0))
1624 ALLOCATE(edgeglobal(0))
1625 ALLOCATE(nodglobxfe(0))
1626 ALLOCATE(index_crkxfem(0))
1627 ALLOCATE(nodlevxf_l(0))
1630 1 lenwa_l ,nthwa ,nairwa ,numels_l ,numelq_l,
1631 2 numelc_l,numeltg_l,numelt_l ,numelp_l ,numelr_l,
1632 3 numnod_l,nmnt ,l_mul_lag1,l_mul_lag,maxnx ,
1633 4 lwasph_l,numsph_l ,lwaspio, nrcvvois,ngroup_l,
1634 5 lwamp_l, lwanmp_l,glob_therm%ITHERM )
1641 .
CALL c_icfield(icfield,lcfield,llcfield_l,p-1)
1643 CALL c_iloadp(iloadp,lloadp,llloadp_l,p-1)
1644 nisky0_l=nisky0_l+4*llloadp_l
1651 .
CALL c_elig3d(kxig3d,p-1,isumnig3d_l)
1659 .
CALL c_icnds10(icnds10,itagnd,p-1,ns10e_l,nbddcndm,ms,msndp(p))
1666 .
CALL c_ibcscyc(ibcscyc,lbcscyc,p-1 ,nbcscyc_l,llbcscyc_l)
1672 IF (ndrape > 0)
THEN
1673 off = numels + numelq
1674 IF(numelc_drape > 0 )
THEN
1675 CALL c_drape(drapeg%INDX,cep(
min(off+1,len_cep)),p-1,
1679 off = off + numelc + numelt + numelp + numelr
1681 IF(numeltg_drape > 0)
THEN
1682 CALL c_drape(drapeg%INDX(numelc+1),cep(
min(off+1,len_cep)),p-1,
1683 . numeltg,numsh3n_l)
1690 IF (loads%NLOAD_CLOAD>0)
1691 .
CALL c_nloads(cep,p-1,loads%NLOAD_CLOAD,ncload_l)
1696 IF (loads%NLOAD_PLOAD>0)
1697 .
CALL c_nloads(cep,p-1,loads%NLOAD_PLOAD,npload_l)
1702 IF (loads%NINIVELT>0)
THEN
1704 . ngrnod, ngrbric, ngrquad, ngrsh3n,
1705 . igrnod, igrbric, igrquad, igrsh3n,
1706 . p-1 , cep, scep, nodlocal,
1707 . numnod,loads%NINIVELT,loads%INIVELT,ninivelt_l)
1713 idamp_vrel_l(1:ndamp) = 0
1714 IF (ndamp > 0)
CALL c_dampvrel(dampr,igrnod,p,idamp_vrel_l,ndamp_vrel_l,
1715 . ngrnod,ndamp,nrdamp)
1722 WRITE(chrun,
'(I4.4)')irun
1723 WRITE(procnam,
'(I4.4)')p
1724 filnam = rootnam(1:rootlen)//
'_'//chrun//'_
'//PROCNAM//'.rst
'
1725 TMP_NAME = OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:LEN_TRIM(FILNAM))
1726 LEN_TMP_NAME = OUTFILE_NAME_LEN+ROOTLEN+14
1729 IFILNAM(I)=ICHAR(TMP_NAME(I:I))
1732 IFILNAM2(I)=ICHAR(FILNAM(I:I))
1735 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,0)
1737 IF(FLUSH_RST_TO_TXT) THEN
1738 OPEN(UNIT=777+ITASK,FILE=TRIM(FILNAM)//'.txt
'
1739 . ,STATUS='unknown
',FORM='formatted
')
1742 CALL WRITE_C_C(IFILNAM2,ROOTLEN+14)
1743 LEN_IA = LEN_IA + ROOTLEN+14
1746 SKIPPON_L = NUMNOD_L+1 + LCNE_L + LCNI2_L +
1747 . 8*NUMELS_L + 6*NUMELS10_L + 8*NUMELS16_L + 12*NUMELS20_L +
1748 . 4*NUMELQ_L + 4*NUMELC_L + 2*NUMELT_L + 2*NUMELP_L +
1749 . 3*NUMELR_L + 3*NUMELTG_L + 3*NUMELTG6_L +
1750 . 4*NNMV_L + 4*NCONLD_L + 4*NCONV_L + NSKYRW_L + NSKYRBK_L +
1752 . NNMV_L + NNMVC_L + NSKYLL_L + NSKYRBM_L + NSKYI18_L +
1753 . NSKYRBMK_L + 4*NRADIA_L + 4*NFXFLUX_L + 4*LLLOADP_L
1756 SKIPPON_L = SKIPPON_L + NUMNOD_L +1
1764 1 LMXVINT ,LVARINT ,TABVINT ,NGROUP_L ,LBUFEL_L ,
1765 2 LENWA_L ,INTBAG_L ,NUMELQ_L ,NUMELS_L ,NUMELC_L ,
1766 3 NUMELT_L ,NUMELR_L ,NUMELP_L ,NUMELX_L ,ISUMNX_L ,
1767 4 NUMELS10_L,NUMELS20_L,NUMELS8_L ,NUMELS16_L,LNOM_OPT ,
1768 5 NUMELTG_L ,NUMELTG6_L,NSLARB_L ,NUMNOD_L ,
1769 6 NUMEL_L ,NSVOIS ,NQVOIS ,NTGVOIS, LENLAS ,
1770 7 NLLINK_L ,LLGRAV_L ,LLBVEL_L ,NSLAW_L ,
1771 8 NESLAW_L ,NSKYLL_L ,NSTRF_L ,LJOINT_L ,
1772 9 LENVOLU ,LENTHGT ,LBUFMAT ,LBUFGEO ,LBUFSF ,
1773 A LENXLAS ,LWSAV_L ,LSECBUF_L ,NUMPOR_L ,
1774 B NPTS ,NBDDNOD ,NFXVEL_L ,NBDDNRB ,
1775 C LCNE_L ,NSKYRW_L ,NSKYRBK_L ,NBDDI2M ,LCNI2_L ,
1776 D NISKYI2_L ,I2NSNT ,NCONLD_L ,NNMV_L ,NNMVC_L ,
1777 E NBDDNCJ ,NBDDNRBM ,NSKYRBM_L ,NNODT_L ,NNODL_L ,
1778 F NMADSH4_L ,NMADSH3_L ,NMADSOL_L ,NMADNOD_L ,IMAXIMP_L,
1779 G ISP0 ,NUM16SHIFT_L ,NUMSPH_L ,LWASPH_L ,
1780 H SPHSHIFT_L,NRCVVOIS ,NSNDVOIS ,NERVOIS ,
1781 I NESVOIS ,ILAW11 ,NSEGFL_L ,
1782 J NBI18_L ,NSKYI18_L ,LEIBUF_L ,
1783 K LENTHG ,NFASOLFR_L,LENNOD_L ,LENMOD_L ,LENELM_L ,
1784 L LENSIG_L ,LENGLM_L ,LENCP_L ,LENLM_L ,LENFLS_L ,
1785 M LENDLS_L ,LENMCD_L ,LENGRVI_L ,LENGRVR_L ,NLAGF_L ,
1786 N LRBAGALE ,SKIPPON_L ,NCONV_L ,NFXTEMP_L ,NFXFLUX_L ,
1787 O NRBE3_L ,LLRBE3_L ,NBDDRBE3M ,NSKYRBE3_L,NSLARBM_L ,
1788 N NSKYRBMK_L,NBDDNRBYM ,MADCL_NMADNOD_L,NRADIA_L,NRBE2_L,
1789 Q LLRBE2_L ,NBDDRBE2 ,NUMELCPXFE_L,
1790 R NUMNODPXFE_L,LCNEPXFEM_L,LLCFIELD_L,
1791 S LLLOADP_L,NUMELCRKXFE_L,NUMNODCRKXFE_L,LCNECRKXFEM_L,
1792 T SLONFSPH_L,SLPRTSPH_L,SSPHVELN_L,I2NSN25_L,NUMELCCRKXFE_L,
1793 U NUMELTGCRKXFE_L,NUMEDGES_L,NBDDEDGE_L,SDD_R2R_ELEM,NOD_XFE_L,
1794 V NSPHSOL_L,FIRST_SPHSOL_L,NCLUSTER_L,LENTHGR,NUMNOR_L,
1795 W NBDDNORT_L,NBDDNOR_MAX_L,NBCCNOR_L,NBCCFR25_L,NS10E_L,
1796 X LCNCND_L,NBDDCNDM,NEBCS,IEBCSLGTH,MULTI_FVM,NSEGQUADFR_L,
1797 Y NBDDEDGT_L,NBDDEDG_MAX_L,NRTMX25_L,LENIGRNOD_L,LENIGRBRIC_L,
1798 Z LENIGRQUAD_L,LENIGRSH4N_L,LENIGRTRUS_L,LENIGRBEAM_L,LENIGRSPRI_L,
1799 1 LENIGRSH3N_L,LENISURF_L,LENISLIN_L, NE_NERVOIS, NE_NESVOIS,
1800 2 NE_NSVOIS, NE_NQVOIS, NE_NTGVOIS,NBCSCYC_L,LLBCSCYC_L,
1801 3 ALE_CONNECTIVITY,N_SLIPRING_L,N_RETRACTOR_L,N_ANCHOR_REMOTE_L,
1802 4 N_ANCHOR_REMOTE_SEND_L,N_SEATBELT_L,N_SEATBELT_2D_L,DYNAIN_DATA,
1803 5 NUMSH4N_L,NUMSH3N_L,INTERFACES%PARAMETERS,SENSORS,LOADS_PER_PROC%NLOAD_CYL,
1804 6 NCLOAD_L,NPLOAD_L,NDAMP_VREL_L, UNITAB,
1805 7 LWAMP_L,LWANMP_L,NINIVELT_L,GLOB_THERM,PBLAST)
1808 CALL WRCOMR(LMXVREA,LVARREA,TABVREA,MSNDP(P),P,INTERFACES%PARAMETERS,
1809 . UNITAB ,GLOB_THERM, OUTPUT)
1814 ITITLE(I) = ICHAR( NAMES_AND_TITLES%TITLE(I:I) )
1816 CALL WRITE_I_C(ITITLE,LTITLE)
1861 CALL WRITE_I_C(LHEADER, 1)
1862 CALL WRITE_I_C(TABHEAD, LHEADER)
1863 LEN_IA = LEN_IA + LHEADER + 1
1865 CALL WRITE_I_C(TABVINT,LVARINT)
1866 LEN_IA = LEN_IA + LVARINT
1871 CALL checksum_write_starter_restart(OUTPUT)
1874 CALL WRITE_I_C(NODGLOB,NUMNOD_L)
1875 LEN_IA = LEN_IA + NUMNOD_L
1876 CALL W_MAIN_PROC_WEIGHT(NODGLOB,NUMNOD_L,NSPMD,P)
1877 LEN_IA = LEN_IA + 2*NUMNOD_L
1881 LEN_G = NPROPGI*NUMGEO
1882 LEN_M = NPROPMI*NUMMAT
1883 CALL W_INLOC(ICODE,NODGLOB,NUMNOD_L,LEN_IA)
1886.AND.
IF(NUMSPH>0NSPCOND>0)THEN
1887 CALL W_ISKEWSP(ISKEW,NODGLOB,NUMNOD_L,NUMSPH_L,CEPSP,P-1,LEN_IA)
1889 CALL W_INLOC(ISKEW,NODGLOB,NUMNOD_L,LEN_IA)
1892 1 ISKN,NUMSKW,MIN(IUN,NSPCOND)*NUMSPH_L,IFRAME,NUMFRAM,NODLOCAL,
1893 2 P ,NUMNOD,CEPSP ,LEN_IA )
1894 CALL WRITE_I_C(IBCSLAG,5*NBCSLAG)
1895 LEN_IA = LEN_IA + 5*NBCSLAG
1896 CALL WRITE_I_C(IPART,LIPART1*(NPART+NTHPART))
1897 LEN_IA = LEN_IA + (NPART+NTHPART)
1898 CALL WRITE_I_C(IPARTH,2*9*(NPART+NTHPART))
1899 LEN_IA = LEN_IA + 2*9*(NPART+NTHPART)
1904 CALL W_IELOC(IPARTS,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELS,NUMELS_L,LEN_IA)
1906 CALL W_IELOC(IPARTQ,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELQ,NUMELQ_L,LEN_IA)
1908 CALL W_IELOC(IPARTC,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELC,NUMELC_L,LEN_IA)
1910 CALL W_IELOC(IPARTT,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELT,NUMELT_L,LEN_IA)
1912 CALL W_IELOC(IPARTP,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELP,NUMELP_L,LEN_IA)
1914 CALL W_IELOC(IPARTR,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELR,NUMELR_L,LEN_IA)
1916 CALL W_IELOC(IPARTTG,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,NUMELTG_L,LEN_IA)
1918 CALL W_IELOC(IPARTX,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELX,NUMELX_L,LEN_IA)
1920 CALL W_IELOC(IPARTSP,CEPSP,P-1,NUMSPH,NUMSPH_L,LEN_IA)
1922 CALL W_IELOC(IPARTIG3D,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELIG3D,NUMELIG3D_L,LEN_IA)
1925 CALL WRITE_I_C(NOM_OPT,LNOM_OPT)
1926 LEN_IA = LEN_IA + LNOM_OPT
1929 CALL PYTHON_SERIALIZE(PYTHON,BUFFER, BUFFER_SIZE)
1930 CALL WRITE_I_C(BUFFER, BUFFER_SIZE)
1932 CALL WRITE_I_C(NPC,3*NFUNCT+1)
1933 LEN_IA = LEN_IA + 3*NFUNCT+1
1938 OFF = NUMELS+NUMELQ+NUMELC+NUMELT+NUMELP+NUMELR
1939 CALL W_IXLOC(IXTG,NIXTG,3,CEP(MIN(OFF+1,LEN_CEP)),P-1,
1940 + NUMELTG,NUMELTG_L,NODLOCAL,LEN_IA)
1945 IF(DETONATORS%IS_SHADOWING_REQUIRED) ISHADOW = 1
1946 IF (IALE+IEULER+GLOB_THERM%ITHERM+IALELAG +ISHADOW > 0) THEN
1947 IF(NUMELS_L+NUMELQ_L+NUMELTG_L>0) THEN
1948 ALLOCATE(IDGLOB_L(NUMELS_L + NSVOIS + NUMELQ_L + NQVOIS + NUMELTG_L + NTGVOIS))
1949 ALLOCATE(UIDGLOB_L(NUMELS_L + NSVOIS + NUMELQ_L + NQVOIS + NUMELTG_L + NTGVOIS))
1950 ALLOCATE( ID_GLOBAL_VOIS(NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L) )
1951 ID_GLOBAL_VOIS(1:NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L) = 0
1952 ALLOCATE( FACE_VOIS(NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L) )
1953 FACE_VOIS(1:NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L) = -1
1955 ALLOCATE( ID_GLOBAL_VOIS(0) )
1956 ALLOCATE(IDGLOB_L(0))
1957 ALLOCATE(UIDGLOB_L(0))
1958 ALLOCATE( FACE_VOIS(0) )
1960 NUMEL = MAX(NUMELS,NUMELQ,NUMELTG)
1962 + ALLOCATE(IXSF(NSVOIS*NIXS))
1964 + ALLOCATE(IXQF(NQVOIS*NIXQ))
1966 + ALLOCATE(IXTGF(NTGVOIS*NIXTG))
1967 CALL C_IXFLOC(NUMEL,IXSF,IXQF,IXTGF,NSVOIS,
1968 + NQVOIS,NTGVOIS,P-1,IPARG,CEP,CEL,
1969 + ALE_CONNECTIVITY,ee_connect_l,IXS,IXQ,IXTG,NODLOCAL,NUMELS_L,NUMELQ_L,NUMELTG_L,MULTI_FVM,
1970 + ID_GLOBAL_VOIS,INDX_S,INDX_Q,INDX_TG,FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,FACE_VOIS,
1971 + DETONATORS%IS_SHADOWING_REQUIRED)
1973 CALL WRITE_I_C(IXTGF, NIXTG * NTGVOIS)
1974 LEN_IA = LEN_IA + NIXTG * NTGVOIS
1977 IF (MULTI_FVM%NS_DIFF) THEN
1978 CALL C_IDGLOB(NUMEL, NUMELS_L, NUMELQ_L, NUMELTG_L, NUMELS, NUMELQ, NUMELTG,
1979 . P - 1, CEL, CEP, IPARG, ALE_CONNECTIVITY, IXS,IXQ,IXTG, IDGLOB_L, UIDGLOB_L, N2D, NGROUP, NPARG)
1986 CALL W_IXBLOC(IXTG6,3,4,CEP(MIN(OFF+1,LEN_CEP)),P-1,
1987 + NUMELTG6,NUMELTG6_L,NODLOCAL,LEN_IA)
1993 CALL W_IXLOC(IXS,NIXS,8,CEP(MIN(OFF+1,LEN_CEP)),P-1,
1994 + NUMELS,NUMELS_L,NODLOCAL,LEN_IA)
1996 IF (IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0) THEN
1997 CALL WRITE_I_C(IXSF,NIXS*NSVOIS)
1998 LEN_IA = LEN_IA + NIXS*NSVOIS
2006 CALL W_IXALOC(IXS10,6,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2007 + NUMELS10,NUMELS10_L,NODLOCAL,LEN_IA)
2009 CALL W_IXALOC(IXS20,12,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2010 + NUMELS20,NUMELS20_L,NODLOCAL,LEN_IA)
2012 CALL W_IXALOC(IXS16,8,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2013 + NUMELS16,NUMELS16_L,NODLOCAL,LEN_IA)
2015 CALL W_IXLOC(IXQ,NIXQ,4,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2016 + NUMELQ,NUMELQ_L,NODLOCAL,LEN_IA)
2021 IF (IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0) THEN
2022 CALL WRITE_I_C(IXQF,NIXQ*NQVOIS)
2023 LEN_IA = LEN_IA + NIXQ*NQVOIS
2028 CALL W_IXLOC(IXC,NIXC,4,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2029 + NUMELC,NUMELC_L,NODLOCAL,LEN_IA)
2031 CALL W_IXLOC(IXT,NIXT,2,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2032 + NUMELT,NUMELT_L,NODLOCAL,LEN_IA)
2034 CALL W_IXLOC(IXP,NIXP,3,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2035 + NUMELP,NUMELP_L,NODLOCAL,LEN_IA)
2037 CALL W_IXLOC(IXR,NIXR,3,CEP(MIN(OFF+1,LEN_CEP)),P-1,
2038 + NUMELR,NUMELR_L,NODLOCAL,LEN_IA)
2043 CALL W_INLOC(ITAB,NODGLOB,NUMNOD_L,LEN_IA)
2044 CALL W_ITABM1(ITABM1,ITABM1(NUMNOD+1),NODGLOB,NODLOCAL,NUMNOD_L,
2049.AND.
IF(NGJOINT/=0 P == 1) THEN
2050 CALL W_GJOINT(GJBUFI,NGJOINT,LKJNI,NODLOCAL,LEN_IA)
2055 IF(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0) THEN
2056 IF(IALE+IEULER+IALELAG/=0)
2057 . CALL W_INLOC(NALE,NODGLOB,NUMNOD_L,LEN_IA)
2059 ITMP = SIZE(ee_connect_l%iad_connect)
2060 CALL WRITE_I_C(ITMP, 1)
2062 CALL WRITE_I_C(ee_connect_l%iad_connect, ITMP)
2063 LEN_IA = LEN_IA + ITMP
2065 ITMP = SIZE(ee_connect_l%connected)
2066 CALL WRITE_I_C(ITMP, 1)
2068 CALL WRITE_I_C(ee_connect_l%connected, ITMP)
2069 LEN_IA = LEN_IA + ITMP
2071 ITMP = SIZE(ee_connect_l%type)
2072 CALL WRITE_I_C(ITMP, 1)
2074 CALL WRITE_I_C(ee_connect_l%type, ITMP)
2075 LEN_IA = LEN_IA + ITMP
2077 ITMP = SIZE(ee_connect_l%iface2)
2078 CALL WRITE_I_C(ITMP, 1)
2080 CALL WRITE_I_C(ee_connect_l%iface2, ITMP)
2081 LEN_IA = LEN_IA + ITMP
2083 ! write the Global ID of neighbour
2084 CALL WRITE_I_C(ID_GLOBAL_VOIS,NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L)
2085 LEN_IA = LEN_IA + NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L
2086 ! write the Id of the remote connected element
2087 CALL WRITE_I_C(FACE_VOIS,NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L)
2088 LEN_IA = LEN_IA + NUMELS_L*6+NUMELQ_L*4+3*NUMELTG_L
2091 DEALLOCATE(ID_GLOBAL_VOIS)
2092 DEALLOCATE(FACE_VOIS)
2094 ALLOCATE(ELEMID_L(NUMEL))
2098 IF(ALE_CONNECTIVITY%has_ne_connect)THEN
2099 CALL SPMD_NE_CONNECT(ALE_CONNECTIVITY, P - 1, CEP, CEL,
2100 . NODGLOB, NODLOCAL,
2101 . NUMEL, NUMNOD, NUMEL_L, NUMNOD_L,
2102 . NUMELS_L, NUMELQ_L, NUMELTG_L,
2103 . NE_NERVOIS, NE_NESVOIS,
2104 . NE_NSVOIS, NE_NQVOIS, NE_NTGVOIS, ELEMID_L, LEN_IA, IXS)
2107.OR.
IF(ALE_CONNECTIVITY%has_nn_connect ALE_CONNECTIVITY%has_ne_connect)THEN
2108 CALL W_ING2LOC(ALE_CONNECTIVITY,
2109 . ELEMID_L,NUMNOD,NODGLOB,NODLOCAL,NUMNOD_L,LEN_IA,ALE%GRID%NWALE)
2112 DEALLOCATE(ELEMID_L)
2116 IF (MULTI_FVM%NS_DIFF) NS_DIFF = 1
2117 CALL WRITE_I_C(NS_DIFF, 1)
2119 IF (MULTI_FVM%NS_DIFF) THEN
2120 CALL WRITE_I_C(IDGLOB_L, NUMELS_L + NSVOIS + NUMELQ_L + NQVOIS + NUMELTG_L + NTGVOIS)
2121 LEN_IA = LEN_IA + NUMELS_L + NSVOIS + NUMELQ_L + NQVOIS + NUMELTG_L + NTGVOIS
2122 CALL WRITE_I_C(UIDGLOB_L, NUMELS_L + NSVOIS + NUMELQ_L + NQVOIS + NUMELTG_L + NTGVOIS)
2123 LEN_IA = LEN_IA + NUMELS_L + NSVOIS + NUMELQ_L + NQVOIS + NUMELTG_L + NTGVOIS
2129 CALL WRITE_I_C(IFILL,SIFILL)
2130 CALL WRITE_I_C(IMS,SIMS)
2131 LEN_IA = LEN_IA +SIFILL + SIMS
2136 CALL W_SUBSET_STR(SUBSET,LEN_IA)
2137 CALL W_GROUP_STR(LEN_IA ,IGRNOD ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
2138 . IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRPART ,
2139 . CEP ,CEL ,NODLOCAL,P-1 ,FRONTB_R2R,
2141 CALL W_ISURF_STR(LEN_IA,P-1,NUMNOD,NSURF,NUMELS,
2142 . NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,
2143 . NODLOCAL,SCEL,CEL,LTITR,LENISURF_L,
2144 . NSPMD,IGRSURF,IGRSURF_PROC)
2146 CALL W_ISLIN_STR(IGRSLIN ,LEN_IA , P-1, NODLOCAL)
2151 . CALL W_ELMX(KXX,NUMELX_L,ISUMNX_L,IXX,CEP,
2152 + P-1,NODLOCAL,LEN_IA)
2158 CALL W_ISPH(KXSP ,IXSP ,NUMSPH_L,CEPSP ,P-1 ,
2159 + NODLOCAL,NUMNOD_L,ISPCOND ,IPARG ,ISPHIO ,
2160 + LEN_IA, SLONFSPH_L,SLPRTSPH_L,IPARTSP,
2161 + LONFSPH,LPRTSPH, IBUFSSG_IO,CELSPH,
2162 + NSPHSOL_L,FIRST_SPHSOL_L,SPH2SOL ,SOL2SPH,
2163 + IRST , NUMELS8_L,CEP ,CEL ,SOL2SPH_TYP)
2169 CALL W_IBCL(IBCL,CEP,P-1,NODLOCAL,NCONLD_L,LEN_IA)
2174 IF (NINTLOADP>0) THEN
2175 CALL WRITE_I_C(KLOADPINTER, NINTER+1)
2176 LEN_IA = LEN_IA + NINTER + 1
2177 CALL WRITE_I_C(LOADPINTER,S_LOADPINTER )
2178 LEN_IA = LEN_IA + S_LOADPINTER
2184 . CALL W_IBFV(IBFV,NFXVEL,NODLOCAL,LEN_IA,
2189.AND.
IF (NLASER>0P==1)
2190 . CALL W_LAS(LAS,NLASER,NODLOCAL,LEN_IA)
2195 CALL WRITE_I_C(NEBCS, 1) ! total number of /EBCS
2196 CALL WRITE_I_C(EBCS_TAB_LOC%nebcs_fvm, 1) ! multifluid ebcs number
2197 CALL WRITE_I_C(NEBCS_PARALLEL, 1) ! /NRF or /PROPELLANT ebcs number
2198 CALL WRITE_I_C(OTHER_NEBCS, 1) ! other ebcs
2202 CALL EBCS_TAB%write_type_data(LEN_IA, LEN_AM)
2209 IF (EBCS_TAB%tab(ii)%poly%is_multifluid) THEN
2210 NEBCS_FVM = NEBCS_FVM + 1
2211 CALL EBCS_TAB_LOC%tab(NEBCS_FVM)%poly%write_common_data(LEN_IA, LEN_AM)
2212 CALL EBCS_TAB_LOC%tab(NEBCS_FVM)%poly%write_data(LEN_IA, LEN_AM)
2216 ! deallocation of local multifluid ebcs structure
2217 CALL EBCS_TAB_LOC%destroy()
2226 IS_EBCS_PARALLEL = .FALSE.
2227.OR.
IF(EBCS_TAB%tab(ii)%poly%type==10 EBCS_TAB%tab(ii)%poly%type==11)IS_EBCS_PARALLEL=.TRUE.
2228.NOT..AND.
IF(EBCS_TAB%tab(ii)%poly%is_multifluid IS_EBCS_PARALLEL) THEN
2229 NEBCS_PARALLEL = NEBCS_PARALLEL + 1
2230 DO JJ = 1, EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%nb_node
2231.AND.
IF( NODLOCAL(EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%node_list(jj)) > 0
2232 . NODLOCAL(EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%node_list(jj)) <= NUMNOD ) THEN
2233 EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%node_list(JJ) =
2234 . NODLOCAL(EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%node_list(JJ))
2237.NOT.
IF ( EBCS_TAB%tab(ii)%poly%is_multifluid) THEN
2238 CALL EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%write_common_data(LEN_IA, LEN_AM)
2239 CALL EBCS_TAB_LOC_2%tab(NEBCS_PARALLEL)%poly%write_data(LEN_IA, LEN_AM)
2243.NOT..AND.
ELSEIF ((EBCS_TAB%tab(ii)%poly%is_multifluid)P == 1) THEN
2244 DO JJ = 1, EBCS_TAB%tab(ii)%poly%nb_node
2245 EBCS_TAB%tab(ii)%poly%node_list(jj) = NODLOCAL(EBCS_TAB%tab(ii)%poly%node_list(jj))
2247.NOT.
IF ( EBCS_TAB%tab(ii)%poly%is_multifluid) THEN
2248 CALL EBCS_TAB%tab(ii)%poly%write_common_data(LEN_IA, LEN_AM)
2249 CALL EBCS_TAB%tab(ii)%poly%write_data(LEN_IA, LEN_AM)
2259 . CALL W_LACC(LACCELM,NACCELM,NODLOCAL,LEN_IA,CEL,CEP,P-1)
2264 . CALL W_LGAU(LGAUGE,NBGAUGE,NODLOCAL,LEN_IA,CEL,CEP,P-1)
2269 . CALL W_LLINK(NNLINK,LLLINK,NODLOCAL,P-1,NLLINK_L,LEN_IA)
2274 CALL SPMD_USERWI_REST(USER_WINDOWS,NODLOCAL,NUMNOD,NUMNOD_L,P,NSPMD)
2278 CALL W_IPARG(IPARG,P-1,NGROUP_L,LEN_IA)
2282 CALL WRITE_I_C(DD_IAD,(NSPMD+1)*NSPGROUP)
2283 LEN_IA = LEN_IA + (NSPMD+1)*NSPGROUP
2288 . CALL W_IGRAV(IGRAV,LGRAV,NODLOCAL,P-1,LLGRAV_L,LEN_IA,NUMNOD_L)
2293 CALL WRITE_I_C(IEXLNK,NR2R*NR2RLNK)
2294 LEN_IA = LEN_IA + NR2R*NR2RLNK
2300 . CALL W_IBVEL(IBVEL,LBVEL,NODLOCAL,P-1,LLBVEL_L,LEN_IA)
2306 ALLOCATE(ITABRBE2M(NUMNOD_L))
2308 ALLOCATE(ITABRBE2M(1))
2310 CALL W_IRBE2(IRBE2 ,LRBE2 ,NODLOCAL ,P-1 ,
2311 . LLRBE2_L,ITABRBE2M,NBDDRBE2,NUMNOD_L,LEN_IA )
2313 ALLOCATE(ITABRBE2M(1))
2319 IF(NBDDRBE3M>0) THEN
2320 ALLOCATE(ITABRBE3M(NUMNOD_L))
2322 ALLOCATE(ITABRBE3M(1))
2324 CALL W_IRBE3(IRBE3 ,LRBE3 ,NODLOCAL ,P-1 ,
2325 . LLRBE3_L,ITABRBE3M,NBDDRBE3M,NUMNOD_L,LEN_IA)
2327 ALLOCATE(ITABRBE3M(1))
2333 . CALL WRITE_I_C(IACTIV,LACTIV*NACTIV)
2334 LEN_IA = LEN_IA + LACTIV*NACTIV
2338.AND.
IF (NUMMPC>0P==1)THEN
2339 CALL W_IBMPC(IBMPC,NUMMPC,LMPC,NODLOCAL,LAG_SEC,LEN_IA)
2344 CALL W_INLOC(KINET,NODGLOB,NUMNOD_L,LEN_IA)
2348 IF(NFASOLFR_L/=0)THEN
2349 CALL W_FASOLFR(FASOLFR ,CEP ,P-1 ,CEL, NFASOLFR_L,
2355 IF(NSEGQUADFR_L/=0)THEN
2356 CALL W_SEGQUADFR(SEGQUADFR ,CEP ,P-1 ,CEL, NSEGQUADFR_L,
2364 ALLOCATE(ITABI2M(NUMNOD_L))
2366 ALLOCATE(ITABI2M(1))
2372 !allocate local structure INTBUF_TAB_L to stock local sizes for interfaces
2373 ALLOCATE(INTBUF_TAB_L(NINTER))
2378 !need to allocate only once at first passage in lectur
2381 !initialize local sizes in local structure
2382 CALL INTBUF_INI_STARTER(INTBUF_TAB_L, IPARI_L, NUMNOD_L,
2383 . I11FLAG, FLAG_ALLOCATE, P-1,INTBUF_FRIC_TAB)
2385 !write local IPARI_L
2386 CALL WRITE_I_C(IPARI_L,NPARI*NINTER)
2391 !initialize table to 0
2397 CALL SPLIT_INTERFACES(INTBUF_TAB, IPARI , P-1 , INTBUF_TAB_L,
2398 . IPARI_L , INTERCEP, NODLOCAL,
2399 . ITAB , ITABI2M , NBDDI2M , NUMNOD_L ,
2400 . LEN_CEP,CEP , CEL , IGRBRIC , T8, MULTI_FVM,
2401 . TAG_NM ,NINDX_NM ,INDX_NM ,TAG_SCRATCH,NINDX_SCRT,
2402 . INDX_SCRT ,FLAG_24_25,I24MAXNSNE,INTBUF_FRIC_TAB)
2405 DEALLOCATE(INTBUF_TAB_L)
2409 ALLOCATE(ITABI2M(1))
2416 + CALL W_RWALL(NPRW ,LPRW ,RWL ,
2417 + CEP ,CEL ,NODLOCAL,P-1 ,
2418 + NSLAW_L,NESLAW_L ,NUMNOD_L,LEN_IA)
2423 + CALL W_MAD(IEXMAD ,NMADSH4_L,NMADSH3_L,NMADSOL_L,NMADNOD_L,
2424 + MADCL_NMADNOD_L,CEP ,P-1 ,NODLOCAL ,CEL ,
2425 + NUMELS_L,NUMELC_L ,NUMELTG_L,LEN_IA )
2429 IF(NRBYKIN+NRBYLAG>0)
2430 + CALL W_RBYK(NPBY,LPBY,NODLOCAL,P-1,NSLARB_L,LEN_IA)
2435 + CALL W_IRIVET(IXRI,NODLOCAL,P-1,LEN_IA)
2440 + CALL W_SECTIO(NSTRF ,CEP ,CEL,P-1,
2441 2 NSTRF_L,NODLOCAL,LEN_IA)
2443 CALL WRITE_I_C(NOM_SECT,SNOM_SECT)
2444 LEN_IA = LEN_IA + SNOM_SECT
2450 CALL WRITE_JOINT(LJOINT,CEP,CEL,P-1,
2451 . NODLOCAL,LJOINT_L,LEN_IA,NUMNOD_L)
2452.AND.
IF(JOINT_SMSP==1) CALL W_JOINT_SMS(LJOINT,CEP,CEL,P-1,
2453 + NODLOCAL,LJOINT_L,LEN_IA)
2459 CALL W_PORO(PORNOD,P-1,NUMPOR_L,GEO,NODLOCAL,LEN_IA)
2466 CALL W_MONVOL(MONVOL,LENVOLU,NODLOCAL,LEN_IA,MONVOL_L,ITAB,T_MONVOL,P)
2471.AND.
IF(LAG_NCF>0P==1) THEN
2472 CALL WRITE_I_C(LAGBUF,LAG_NHF+3*LAG_NCF+2)
2473 LEN_IA = LEN_IA + LAG_NHF+3*LAG_NCF+2
2478 IF (NS10E_L > 0) THEN
2479 IF(NBDDCNDM > 0) THEN
2480 ALLOCATE(ITABCNDM(NUMNOD_L))
2482 ALLOCATE(ITABCNDM(1))
2484 CALL W_ICNDS10(ICNDS10,ITAGND,P-1,NODLOCAL,NS10E_L,
2485 . ITABCNDM,NBDDCNDM,NUMNOD_L,LEN_IA ,itab)
2487 ALLOCATE(ITABCNDM(1))
2492 CALL WRITE_TH_BUFFER(OUTPUT%TH,NODLOCAL ,CEL ,P,
2493 2 NTHGRP0 ,NTHGRP ,NTHGRP01 ,NTHGRP1 ,
2494 3 SCEL ,NUMSPH ,NUMNOD ,NCLUSTER ,
2495 4 CELSPH ,NUMLOCCLUSTER ,NBR_TH_MONVOL)
2497 CALL THSURF_WRITE_RESTART(OUTPUT%TH%TH_SURF,1)
2498 IF (OUTPUT%TH%TH_SURF%PLOAD_FLAG > 0) THEN
2499 OFF = NUMELC+NUMELTG+NUMELS+NUMELQ+NUMELT+NUMELP+NUMELR+NUMELX
2500 CALL W_TH_SURF_PLOAD(IBCL ,NODLOCAL ,P-1 ,LEN_IA ,CEP ,
2501 . OUTPUT%TH%TH_SURF,NUMNOD ,NIBCLD,NCONLD ,LEN_CEP,
2504 IF (OUTPUT%TH%TH_SURF%LOADP_FLAG > 0) THEN
2505 OFF = NUMELC+NUMELTG+NUMELS+NUMELQ+NUMELT+NUMELP+NUMELR+NUMELX+NCONLD
2506 . + GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX
2507 CALL W_TH_SURF_LOADP(ILOADP ,NODLOCAL ,P-1 ,LEN_IA ,CEP ,
2508 . OUTPUT%TH%TH_SURF,NUMNOD ,SIZLOADP,NLOADP,LEN_CEP,
2515 NUMEL = MAX(NUMELS,NUMELQ)
2516 NUMEL_L2 = MAX(NUMELS_L,NUMELQ_L)
2517.AND..AND.
IF (MULTI_FVM%IS_USED N2D /= 0 NUMELTG /= 0) THEN
2518 NUMEL = MAX(NUMEL, NUMELTG)
2519 NUMEL_L2 = MAX(NUMEL_L2, NUMELTG_L)
2521 NBCFD = MAX(NRCVVOIS,NSNDVOIS,NERVOIS,NESVOIS,NSEGFL_L)
2522 IF(NUMSKW>0) CALL SPLIT_SKEW(P,ISKWP_L,ISKWP,TAG_SKN,MULTIPLE_SKEW)
2525 1 P ,NBDDACC ,NBDDKIN ,NODLOCAL,
2526 2 NBDDPROC,NBDDBOUN,NODGLOB ,NUMNOD_L,NBDDNRB ,
2527 3 NPBY ,LPBY ,NPRW ,LPRW ,LEN_IA ,
2528 4 DD_RBY2 ,ITABI2M ,NBDDI2M ,CEP ,MONVOL ,
2529 5 NNLINK ,LLLINK ,LJOINT ,
2530 6 NBDDNCJ ,IBVEL ,LBVEL ,NBDDNRBM,DD_RBM2 ,
2531 7 NSTRF ,NNODT_L ,NNODL_L ,IEXMAD ,ISP0 ,
2532 8 NRCVVOIS,NSNDVOIS,NERVOIS ,NESVOIS ,
2534 A NUMEL ,ALE_CONNECTIVITY ,NBCFD ,IXS ,IXQ ,IXTG,
2535 B NUMELS_L,NUMELQ_L,NUMELTG_L,CEL ,GEO ,PORNOD ,
2536 C NUMPOR_L,NUMEL_L2,IPARI ,INTBUF_TAB,NBI18_L ,
2537 D IEXLNK ,IGRNOD ,DD_LAGF ,NLAGF_L ,IADLL ,
2538 E LLL ,ISKWP ,NSKWP ,ISENSP ,NSENSP ,
2539 F IACCP ,NACCP ,IRBE3 ,LRBE3 ,ITABRBE3M,
2540 G NBDDRBE3M,IRBYM ,LCRBYM ,FRONT_RM ,DD_RBYM2,
2541 H NBDDNRBYM,IRBE2 ,LRBE2 ,NBDDRBE2,ITABRBE2M,
2542 I IEDGE_TMP,NODEDGE,EDGELOCAL,NBDDEDGE_L,
2543 J IGAUP ,NGAUP ,FRONTB_R2R,SDD_R2R_ELEM,ADDCSRECT,
2544 K CSRECT ,NBDDNORT_L,NBDDNOR_MAX_L,NBCCFR25_L,NBCCNOR_L,
2545 L NUMNOR_L ,NBDDEDGT_L,NBDDEDG_MAX_L,INTERCEP ,NBDDCNDM,
2546 M ITABCNDM,MULTI_FVM,IGRSURF,ISKWP_L,ALE_ELM,
2547 N SIZE_ALE_ELM,SENSORS%NSENSOR,NLOC_DMG,constraint_struct,GLOB_THERM%ITHERM)
2549 DEALLOCATE(ITABRBE3M)
2550 DEALLOCATE(ITABRBE2M)
2551 DEALLOCATE(ITABCNDM)
2558 1 ADDCNE ,CNE ,LCNE ,NUMNOD_L ,NODGLOB ,
2559 2 LCNE_L ,CEP ,CEL ,IXS ,IXS10 ,
2560 3 IXS20 ,IXS16 ,IXQ ,IXC ,IXT ,
2561 4 IXP ,IXR ,IXTG ,MONVOL ,
2562 5 IBCL ,GEO ,IGEO ,P ,
2563 6 NUMELS_L ,NUMELS8_L,NUMELS10_L,NUMELS16_L,NUMELS20_L,
2564 7 NUMELQ_L ,NUMELC_L ,NUMELT_L ,NUMELP_L ,NUMELR_L ,
2565 8 NUMELTG_L,NSKYRW_L ,NPRW ,LPRW ,
2566 9 NSKYRBK_L,NPBY ,LPBY ,DD_RBY2 ,
2567 A I2NSNT ,I2NSN_L ,IPARI ,NIR ,
2568 B LCNI2_L ,NISKYI2_L,CEPI2 ,CELI2 ,CNI2 ,
2569 C ADDCNI2 ,NBDDI2M ,NCONLD_L ,IXTG6 ,NUMELTG6_L,
2570 D NNMV_L ,NNMVC_L ,NSKYLL_L ,NNLINK ,LLLINK ,
2571 E NSKYRBM_L,DD_RBM2 ,IBVEL ,LBVEL ,NBI18_L ,
2572 F NSKYI18_L,LEN_IA ,NCONV_L ,IBCV ,NSKYRBE3_L,
2573 G IRBE3 ,LRBE3 ,NSKYRBMK_L,IRBYM ,LCRBYM ,
2574 H FRONT_RM ,DD_RBYM2 ,IBCR ,NRADIA_L ,ADDCNE_PXFEM,
2575 I CNE_PXFEM ,CEL_PXFEM ,LCNEPXFEM_L,INOD_PXFEM,IEL_PXFEM,
2576 J NUMELCPXFE_L , NUMNODPXFE_L ,LLOADP ,ILOADP ,
2577 K LLLOADP_L,ADDCNE_CRKXFEM,CNE_CRKXFEM,CEL_CRKXFEM,
2578 L LCNECRKXFEM_L,INOD_CRKXFEM,IEL_CRKXFEM,NUMELCCRKXFE_L,
2579 M NUMNODCRKXFE_L,NUMELTGCRKXFE_L,CEP_CRKXFEM,INCRKXFEM_L,
2580 N CRKNODIAD ,INTBUF_TAB,NUMELIG3D_L,KXIG3D,IXIG3D,
2581 O IBFFLUX ,NFXFLUX_L ,CEPCND ,CELCND ,ADDCNCND ,
2582 P CNCND ,NS10E_L ,ICNDS10 ,LCNCND_L ,ITAGND ,IGRSURF,
2583 Q IGRSURF_PROC ,NEBCS_PARALLEL, EBCS_TAB_LOC_2,
2584 R NUMBER_LOAD_CYL,LOADS,LOADS_PER_PROC,GLOB_THERM)
2586 ! -------------------
2587 CALL EBCS_TAB_LOC_2%destroy()
2588 ! -------------------
2589 CALL COMPRESS_I_NNZ(IGEO,LEN_G)
2590 LEN_IA = LEN_IA + LEN_G
2591 CALL COMPRESS_I_NNZ(IPM,LEN_M)
2592 LEN_IA = LEN_IA + LEN_M
2597 CALL W_INLOC(ICONTACT,NODGLOB,NUMNOD_L,LEN_IA)
2601 CALL WRITE_I_C(IPART_STATE ,LEN_S)
2602 LEN_IA = LEN_IA + LEN_S
2606 IF(NADMESH /= 0)THEN
2607 CALL WRITE_I_C(SH4TREE,KSH4TREE*NUMELC)
2608 LEN_IA = LEN_IA + KSH4TREE*NUMELC
2609 CALL WRITE_I_C(SH3TREE,KSH3TREE*NUMELTG)
2610 LEN_IA = LEN_IA + KSH3TREE*NUMELTG
2611 CALL WRITE_I_C(IPADMESH,KIPADMESH*NPART)
2612 LEN_IA = LEN_IA + KIPADMESH*NPART
2613 LEN_ADM=ABS(LSH4TRIM)
2614 CALL WRITE_I_C(SH4TRIM,LEN_ADM)
2615 LEN_IA = LEN_IA + LEN_ADM
2616 LEN_ADM=ABS(LSH3TRIM)
2617 CALL WRITE_I_C(SH3TRIM,LEN_ADM)
2618 LEN_IA = LEN_IA + LEN_ADM
2624 CALL W_FI(IPARI,P-1,LEN_IA,
2625 1 INTERCEP ,INTBUF_TAB,ITAB,MULTI_FVM,TAG_SCRATCH,
2626 2 NINDX_SCRT,INDX_SCRT ,NODLOCAL,NUMNOD_L,LEN_CEP,CEP)
2631.AND.
IF(NUMSPH>0NSPMD>1)THEN
2637 IF(NINTSTAMP /= 0)THEN
2638 CALL INTSTAMP_WRESTI(INTSTAMP, LINTSTAMP, NODLOCAL)
2639 LEN_IA=LEN_IA+LINTSTAMP
2644 IF(NINTERFRIC > 0) THEN
2645 CALL INTFRIC_WRESTI(INTBUF_FRIC_TAB,NINTERFRIC)
2651 CALL TABLE_WRESTI(TABLE, LTABLE)
2652 LEN_IA=LEN_IA+LTABLE
2655 ! WRITE(6,*) "SITHVAR= ",SITHVAR
2656 CALL WRITE_I_C(ITHVAR,SITHVAR)
2657 LEN_IA = LEN_IA + SITHVAR
2661 IF (NLOADC>0)CALL W_ICFIELD(ICFIELD,LCFIELD,NODLOCAL,P-1,LLCFIELD_L,LEN_IA,P,NUMNOD_L)
2662 IF (NLOADP>0)CALL W_ILOADP(ILOADP,LLOADP,NODLOCAL,P-1,LLLOADP_L,LEN_IA,P,CEP,ITAB,
2663 . GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX)
2667 IF(PBLAST%NLOADP_B>0)THEN
2668 CALL PBLAST_WRITE_STARTER(PBLAST,GLOB_THERM,P-1,CEP,SCEP,
2669 * NUMELC,NUMELTG,NUMELS,
2670 * NUMELQ,NUMELT,NUMELP,
2671 * NUMELR,NUMELX,NCONLD)
2677 IF (LOADS_PER_PROC%NLOAD_CYL > 0) THEN
2678 CALL WRITE_PCYL(LOADS_PER_PROC%LOAD_CYL,LOADS_PER_PROC%NLOAD_CYL,NODLOCAL)
2682 IF(ICRACK3D > 0)THEN
2686 CALL W_INLOC(IBORDNODE,NODGLOB,NUMNOD_L,LEN_IA)
2690 CALL WRITE_I_C(IEDGESH4_L,4*NUMELCCRKXFE_L)
2691 LEN_IA = LEN_IA + 4*NUMELCCRKXFE_L
2692 CALL WRITE_I_C(IEDGESH3_L,3*NUMELTGCRKXFE_L)
2693 LEN_IA = LEN_IA + 3*NUMELTGCRKXFE_L
2695 CALL WRITE_I_C(NODEDGE_L,2*NUMEDGES_L)
2696 LEN_IA = LEN_IA + 2*NUMEDGES_L
2697 CALL WRITE_I_C(IEDGE_L,NUMEDGES_L)
2698 LEN_IA = LEN_IA + NUMEDGES_L
2702 CALL WRITE_I_C(NODGLOBXFE,NOD_XFE_L)
2703 LEN_IA = LEN_IA + NOD_XFE_L
2704 IF(ALLOCATED(NODGLOBXFE))DEALLOCATE(NODGLOBXFE)
2709 IF (NUMELIG3D>0) CALL W_ELIG3D(KXIG3D,NUMELIG3D,ISUMNIG3D_L,IXIG3D,P-1,NODLOCAL,LEN_IA)
2713 CALL W_IELOC(TAG_SKINS6,CEP,P-1,NUMELS,NUMELS_L,LEN_IA)
2717 IF (NBCSCYC_L > 0) CALL W_IBCSCYC(IBCSCYC,LBCSCYC,NODLOCAL ,P-1,LLBCSCYC_L,NBCSCYC_L,LEN_IA )
2721 CALL W_BCS_PROC(BCS_PER_PROC,CEL,SCEL,LEN_IA,LEN_AM)
2726 CALL WRITE_DB(TABVREA, LVARREA)
2727 LEN_AM = LEN_AM + LVARREA
2733 CALL W_R3NLOC(X,NODGLOB,NUMNOD_L,LEN_AM)
2734 IF(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0)
2735 . CALL W_BID(3*NRCVVOIS,LEN_AM)
2736 CALL W_R3NLOC(D,NODGLOB,NUMNOD_L,LEN_AM)
2737 IF(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0)
2738 . CALL W_BID(3*NRCVVOIS,LEN_AM)
2739 CALL W_R3NLOC(V,NODGLOB,NUMNOD_L,LEN_AM)
2740 IF(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0)
2741 . CALL W_BID(3*NRCVVOIS,LEN_AM)
2743 CALL W_R3NLOC(VR,NODGLOB,NUMNOD_L,LEN_AM)
2744.OR..OR..OR.
IF(ISECUT > 0 IISROT > 0 IMPOSE_DR /= 0 IDROT == 1)CALL W_R3NLOC(DR,NODGLOB,NUMNOD_L,LEN_AM)
2749 OFF = NUMELS + NUMELQ
2750 CALL W_RELOC(THKE,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELC,NUMELC_L,LEN_AM)
2751 OFF = OFF + NUMELC + NUMELT + NUMELP + NUMELR
2753 . THKE(NUMELC+1),CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,NUMELTG_L,LEN_AM)
2758 CALL WRITE_DB(DAMPR,NRDAMP*NDAMP)
2759 LEN_AM = LEN_AM + NRDAMP*NDAMP
2762 CALL W_RNNLOC(DAMP,NODGLOB,NUMNOD_L,6,LEN_AM)
2764 CALL W_R3NLOC(DAMP,NODGLOB,NUMNOD_L,LEN_AM)
2771 CALL W_RNLOC(MS,NODGLOB,NUMNOD_L,LEN_AM)
2775 CALL W_RNLOC(MS,NODGLOB,NUMNOD_L,LEN_AM)
2779 . CALL W_RNLOC(IN,NODGLOB,NUMNOD_L,LEN_AM)
2784 CALL WRITE_DB(TF,NPTS)
2785 LEN_AM = LEN_AM + NPTS
2790 CALL WRITE_DB(PM,NPROPM*NUMMAT)
2791 LEN_AM = LEN_AM + NPROPM*NUMMAT
2793 CALL WRITE_MATPARAM(MAT_ELEM,LEN)
2799! CALL WRITE_GLOB_THERM(MAT_ELEM,LEN)
2803 CALL WRITE_ELGROUP_PARAM(GROUP_PARAM_TAB,IPARG,P-1,NGROUP_L,LEN)
2804 LEN_AM = LEN_AM + LEN
2808 CALL WRITE_DB(SKEW,LSKEW*(NUMSKW+1))
2809 LEN_AM = LEN_AM + LSKEW*(NUMSKW+1)
2810.AND.
IF(NUMSPH>0NSPCOND>0)THEN
2812 . SKEW(LSKEW*(NUMSKW+1)+1),NUMSPH_L,CEPSP,P-1,LEN_AM)
2815 . SKEW(LSKEW*(NUMSKW+1+NUMSPH_L)+1),LEN_AM)
2816 ELSEIF(NSUBMOD>0)THEN
2818 . SKEW(LSKEW*(NUMSKW+1)+1),LEN_AM)
2820 CALL WRITE_DB(XFRAME,NXFRAME*(NUMFRAM+1))
2821 LEN_AM = LEN_AM + NXFRAME*(NUMFRAM+1)
2826 CALL COMPRESS_R_NNZ(GEO,NUMGEO*NPROPG)
2828 CALL W_GEO(GEO,NODLOCAL)
2830 LEN_AM = LEN_AM + NPROPG*NUMGEO
2835 CALL W_RELOC(EANI(OFF+1),CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELS,NUMELS_L,LEN_AM)
2837 CALL W_RELOC(EANI(OFF+1),CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELQ,NUMELQ_L,LEN_AM)
2839 CALL W_RELOC(EANI(OFF+1),CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELC,NUMELC_L,LEN_AM)
2841 OFF = OFF + NUMELC + NUMELT + NUMELP + NUMELR
2842 CALL W_RELOC(EANI(SHF+1),CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,NUMELTG_L,LEN_AM)
2846 CALL WRITE_DB(BUFMAT,LBUFMAT)
2847 LEN_AM = LEN_AM + LBUFMAT
2850 ALLOCATE (RBUFGEO(LBUFGEO))
2851 RBUFGEO(1:LBUFGEO)=BUFGEO(1:LBUFGEO)
2852 CALL WRITE_DB(RBUFGEO,LBUFGEO)
2854 CALL WRITE_DB(BUFGEO,LBUFGEO)
2856 LEN_AM = LEN_AM + LBUFGEO
2857 CALL WRITE_DB(BUFSF ,LBUFSF )
2858 LEN_AM = LEN_AM + LBUFSF
2860.AND.
IF(NUMMPC>0P==1)THEN
2861 CALL WRITE_DB(BRMPC,LMPC)
2862 LEN_AM = LEN_AM + LMPC
2864.AND.
IF(NGJOINT>0P==1)THEN
2865 CALL WRITE_DB(GJBUFR,LKJNR*NGJOINT)
2866 LEN_AM = LEN_AM + LKJNR*NGJOINT
2872 CALL W_R3NLOC(W,NODGLOB,NUMNOD_L,LEN_AM)
2874 IF(IEULER * (1 - IMULTI_FVM)/=0)THEN
2878 . VEUL,LVEUL,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELS,NUMELS_L,LEN_AM)
2881 CALL W_RELOC2(VEUL,10,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELQ,NUMELQ_L,LEN_AM)
2887 IF (MULTI_FVM%IS_USED) THEN
2888 CALL WRITE_DB(MULTI_FVM%PRES_SHIFT, 1)
2890 CALL WRITE_DB(MULTI_FVM_VEL_L(1, 1:NUMELS_L),
2892 CALL WRITE_DB(MULTI_FVM_VEL_L(2, 1:NUMELS_L),
2894 CALL WRITE_DB(MULTI_FVM_VEL_L(3, 1:NUMELS_L),
2897 CALL WRITE_DB(MULTI_FVM_VEL_L(1, 1:NUMELQ_L + NUMELTG_L),
2898 . NUMELQ_L + NUMELTG_L)
2899 CALL WRITE_DB(MULTI_FVM_VEL_L(2, 1:NUMELQ_L + NUMELTG_L),
2900 . NUMELQ_L + NUMELTG_L)
2901 CALL WRITE_DB(MULTI_FVM_VEL_L(3, 1:NUMELQ_L + NUMELTG_L),
2902 . NUMELQ_L + NUMELTG_L)
2909 CALL W_RFILLOC(FILL,NODGLOB,NUMNOD,NUMNOD_L,NMULT,LEN_AM)
2910 CALL W_RFILLOC(DFILL,NODGLOB,NUMNOD,NUMNOD_L,NMULT,LEN_AM)
2911 CALL WRITE_DB(ALPH,SALPH)
2912 LEN_AM = LEN_AM + SALPH
2914 IF(ALE%GRID%NWALE==2) THEN
2915 CALL W_R3NLOC(WB,NODGLOB,NUMNOD_L,LEN_AM)
2916 ELSEIF(ALE%GRID%NWALE==4) THEN
2917 CALL W_R3NLOC(WB,NODGLOB,NUMNOD_L,LEN_AM)
2918 CALL W_RNLOC(WMA,NODGLOB,NUMNOD_L,LEN_AM)
2920.AND.
IF(ILAG==1(IALE+IEULER)/=0)THEN
2921 CALL W_R3NLOC(DSAV,NODGLOB,NUMNOD_L,LEN_AM)
2922 CALL W_R3NLOC(ASAV,NODGLOB,NUMNOD_L,LEN_AM)
2928 CALL W_RSPH(SPBUF ,NUMSPH_L,CEPSP,P-1,VSPHIO,LEN_AM, SSPHVELN_L )
2933.OR..OR.
IF(IALE == 1 IEULER == 1 IALELAG == 1) THEN
2934 CALL W_RNLOC(MSNF,NODGLOB,NUMNOD_L,LEN_AM)
2941 IF(NCONLD>0)CALL W_FAC(FAC,CEP,P-1,NCONLD_L,LEN_AM)
2945 IF(NFXVEL_L>0)CALL W_FIXVEL(VEL,NFXVEL,IBFV,NFXVEL_L,LEN_AM,P-1)
2949 CALL WRITE_DB(FSAV,NTHVKI*(NINTER+NRWALL+NRBODY+NSECT+NJOINT+NRBAG+NVOLU+NFXBODY+NINTSUB))
2950 LEN_AM = LEN_AM + NTHVKI*(NINTER+NRWALL+NRBODY+NSECT+NJOINT+NRBAG+NVOLU+ NFXBODY+NINTSUB)
2954 CALL WRITE_I_C(TAB_UMP,TAILLE*7)
2956 CALL WRITE_I_C(POIN_UMP,NUMMAT)
2958 CALL W_TABMAT_PROP(IPARG,IXC,IXTG,IXS,P-1,NGROUP_L,
2959 . POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,
2960 . MID_PID_SHELL,MID_PID_TRI,MID_PID_SOL,
2961 . IPARTC,IPARTTG,IPARTS)
2965.OR.
IF(ISIGI==2ISIGI==4)
2966 . CALL W_R3NLOC(FZERO,NODGLOB,NUMNOD_L,LEN_AM)
2967 IF(IABS(ISIGI)==5)THEN
2969 CALL W_RELOC2(FZERO,3*4,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELC,NUMELC_L,LEN_AM)
2970 OFF = OFF + NUMELC + NUMELT + NUMELP + NUMELR
2972 CALL W_RELOC2(FZERO(SHF+1),3*4,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,
2978.AND.
IF(NLASER>0P==1)THEN
2979 CALL WRITE_DB(XLAS,LENXLAS)
2980 LEN_AM = LEN_AM + LENXLAS
2986 CALL WRITE_DB(ACCELM,NACCELM*LLACCELM)
2987 LEN_AM = LEN_AM + NACCELM*LLACCELM
2993 CALL WRITE_DB(GAUGE,NBGAUGE*LLGAUGE)
2994 LEN_AM = LEN_AM + NBGAUGE*LLGAUGE
2999 CALL WRITE_SENSORS(SENSORS,NUMNOD,NODLOCAL)
3004 . CALL WRITE_DB(FBVEL,3*NIBVEL)
3005 LEN_AM = LEN_AM + 3*NIBVEL
3010 . CALL W_FRBE3(IRBE3 ,LRBE3 ,P-1 ,LLRBE3_L,
3011 . FRBE3 ,FRBE3(3*SLRBE3+1),LEN_AM,NRBE3PEN_L )
3015 IF (NACTIV > 0) THEN
3016 CALL WRITE_DB(FACTIV,LRACTIV*NACTIV)
3017 LEN_AM = LEN_AM + LRACTIV*NACTIV
3023 . CALL WRITE_DB(GRAVFAC,LFACGRV*NGRAV)
3024 LEN_AM = LEN_AM + LFACGRV*NGRAV
3029 . CALL W_RNLOC(FR_WAVE,NODGLOB,NUMNOD_L,LEN_AM)
3033 CALL W_FAILWAVE(FAILWAVE,NODGLOB,NUMNOD,NUMNOD_L,LEN_AM,ITAB)
3038 CALL WRITE_NLOC_STRUCT(
3039 . NLOC_DMG ,NUMNOD_L ,NODGLOB ,NODLOCAL ,CEL ,
3040 . CEP ,P ,IXS ,IXC ,IXTG ,
3041 . NUMELS_L ,NUMELC_L ,NUMELTG_L)
3046 CALL WRITE_DB(PARTS0,NPART)
3047 LEN_AM = LEN_AM + NPART
3051 CALL W_BUFEL(IPARG,P-1,LBUFEL_L,ELBUF,LEN_AM) ! old buffer
3054 CALL W_ELBUF_STR(P-1,IPARG,ELBUF_TAB,LEN_AM,FLAG_XFEM)
3056 IF (ICRACK3D > 0) THEN ! if XFEM
3059 CALL W_ELBUF_STR(P-1,IPARG,XFEM_TAB(1:NGROUP,IXEL),LEN_AM,FLAG_XFEM)
3065 IF (NCLUSTER > 0) CALL W_CLUSTER(CLUSTERS,
3067 . NCLUSTER_L,CEP,P-1,
3073 CALL W_RWAR(NPRW,LPRW ,RWL, RWSAV,
3074 + LWSAV_L,LRW_PEN_L,NRW_PEN_L,
3075 + RWSTIF_PEN,SLN_PEN,CEP,P-1,LEN_AM)
3079 CALL WRITE_DB(RBY,NRBY*NRBYKIN)
3080 LEN_AM = LEN_AM + NRBY*NRBYKIN
3081.AND.
IF(P == 1 NRBYLAG > 0) THEN
3082 CALL WRITE_DB(RBY(NRBY*NRBYKIN+1),NRBY*NRBYLAG)
3083 LEN_AM = LEN_AM + NRBY*NRBYLAG
3088 CALL WRITE_DB(RIVET,NRIVET*NRIVF)
3089 LEN_AM = LEN_AM + NRIVET*NRIVF
3094 + CALL W_SECBUF(SECBUF,LSECBUF_L,NSTRF,P-1,LEN_AM)
3098 CALL WRITE_DB(RVOLU,NRVOLU*NVOLU+LRCBAG+LRBAGJET+LRBAGHOL
3100 LEN_AM = LEN_AM + NRVOLU*NVOLU+LRCBAG+LRBAGJET+LRBAGHOL
3105 NCMAX = LAG_NCF + LAG_NCL
3106.AND.
IF(NCMAX>0P==1)THEN
3107 CALL WRITE_DB(LAMBDA,NCMAX)
3108 LEN_AM = LEN_AM + NCMAX
3113.AND.
IF(NCONX>0P==1)THEN
3114 CALL WRITE_DB(RCONX,NCONX*NRCNX)
3115 LEN_AM = LEN_AM + NCONX*NRCNX
3120 IF(NADMESH /= 0)THEN
3121 CALL W_RNLOC(RCONTACT,NODGLOB,NUMNOD_L,LEN_AM)
3122 CALL W_RNLOC(ACONTACT,NODGLOB,NUMNOD_L,LEN_AM)
3123 CALL W_RNLOC(PCONTACT,NODGLOB,NUMNOD_L,LEN_AM)
3130 CALL WRITE_DB(PARTSAV,NPSAV*NPART)
3131 LEN_AM = LEN_AM + NPSAV*NPART
3134 CALL WRITE_DB(RDPARTSAV,NPSAV*NPART)
3135 LEN_AM = LEN_AM + NPSAV*NPART
3143 CALL WRITE_I_C(MY_ILEN,1)
3144 CALL WRITE_I_C(MY_RLEN,1)
3149.OR.
IF(NADMESH /= 0 IREST_MSELT /= 0)THEN
3150 OFF = NUMELS + NUMELQ
3151 CALL W_RELOC2(MSC,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELC,NUMELC_L,
3153 CALL W_RELOC2(INC,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELC,NUMELC_L,
3155 OFF = OFF + NUMELC + NUMELT + NUMELP + NUMELR
3156 CALL W_RELOC2(MSTG,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,NUMELTG_L,
3158 CALL W_RELOC2(INTG,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,NUMELTG_L,
3160 CALL W_RELOC2(PTG,3,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELTG,NUMELTG_L,
3164 IF(IREST_MSELT /= 0)THEN
3166 CALL W_RELOC2(MSSA,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELS,NUMELS_L,
3168 OFF = NUMELS+NUMELQ+NUMELC
3169 CALL W_RELOC2(MSTR,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELT,NUMELT_L,
3172 CALL W_RELOC2(MSP,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELP,NUMELP_L,
3175 CALL W_RELOC2(MSRT,1,CEP(MIN(OFF+1,LEN_CEP)),P-1,NUMELR,NUMELR_L,
3181 IF(NADMESH /= 0)THEN
3182 CALL WRITE_DB(PADMESH,KPADMESH*NPART)
3183 LEN_AM = LEN_AM + KPADMESH*NPART
3184 IF (GLOB_THERM%ITHERM_FE > 0)THEN
3185 CALL WRITE_DB(MCPC,NUMELC)
3186 LEN_AM = LEN_AM + NUMELC
3187 CALL WRITE_DB(MCPTG,NUMELTG)
3188 LEN_AM = LEN_AM + NUMELTG
3195 IF(NPINCH > 0 ) THEN
3196 CALL WRITE_DB(PINCH_DATA%VPINCH,3*NUMNOD_L)
3197 LEN_AM = LEN_AM + 3*NUMNOD_L
3198 DEALLOCATE(PINCH_DATA%VPINCH)
3200 CALL WRITE_DB(PINCH_DATA%DPINCH,3*NUMNOD_L)
3201 LEN_AM = LEN_AM + 3*NUMNOD_L
3202 DEALLOCATE(PINCH_DATA%DPINCH)
3204 CALL WRITE_DB(PINCH_DATA%XPINCH,3*NUMNOD_L)
3205 LEN_AM = LEN_AM + 3*NUMNOD_L
3206 DEALLOCATE(PINCH_DATA%XPINCH)
3208 CALL WRITE_DB(PINCH_DATA%MSPINCH,NUMNOD_L)
3209 LEN_AM = LEN_AM + NUMNOD_L
3210 DEALLOCATE(PINCH_DATA%MSPINCH)
3213 IF(ISTATCND /= 0)THEN
3214 CALL W_RNLOC(MSCND,NODGLOB,NUMNOD_L,LEN_AM)
3215 CALL W_RNLOC(INCND,NODGLOB,NUMNOD_L,LEN_AM)
3220 IF(NINTSTAMP /= 0)THEN
3221 CALL INTSTAMP_WRESTR(INTSTAMP,LINTSTAMP)
3222 LEN_AM=LEN_AM+LINTSTAMP
3227 IF(NINTERFRIC > 0) THEN
3228 CALL INTFRIC_WRESTR(INTBUF_FRIC_TAB,NINTERFRIC)
3231 CALL W_RNLOC(MS0,NODGLOB,NUMNOD_L,LEN_AM)
3232 IF(SIN > 0) CALL W_RNLOC(IN,NODGLOB,NUMNOD_L,LEN_AM)
3237 CALL W_RNLOC (ADMSMS,NODGLOB,NUMNOD_L,LEN_AM)
3238 CALL W_R3NLOC(RES_SMS,NODGLOB,NUMNOD_L,LEN_AM)
3239 ELSEIF(IDTMINS==2)THEN
3240 CALL W_RNLOC (DMELC ,NODGLOB,NUMELC_L,LEN_AM)
3241 CALL W_RNLOC (DMELTG ,NODGLOB,NUMELTG_L,LEN_AM)
3242 CALL W_RNLOC (DMELS ,NODGLOB,NUMELS_L,LEN_AM)
3243 CALL W_RNLOC (DMELTR ,NODGLOB,NUMELT_L,LEN_AM)
3244 CALL W_RNLOC (DMELP ,NODGLOB,NUMELP_L,LEN_AM)
3245 CALL W_RNLOC (DMELRT ,NODGLOB,NUMELR_L,LEN_AM)
3246 CALL W_R3NLOC(RES_SMS,NODGLOB,NUMNOD_L,LEN_AM)
3248.OR.
IF(IDTMINS==2IDTMINS_INT/=0) THEN
3249 CALL W_RNLOC(DIAG_SMS,NODGLOB,NUMNOD_L,LEN_AM)
3251 IF(ISMS_SELEC /= 0) THEN
3252 CALL W_INLOC(NATIV_SMS,NODGLOB,NUMNOD_L,LEN_IA)
3258 CALL TABLE_WRESTR(TABLE, LTABLE)
3259 LEN_AM=LEN_AM+LTABLE
3270.AND.
IF(NALELK>0SLINALE>0)THEN
3271 CALL WRITE_I_C(LINALE,SLINALE)
3276 CALL WRITE_ALE_GRID()
3282 . FXBIPM_L, FXBRPM, FXBNOD_L, FXBMOD_L, FXBGLM_L,
3283 . FXBCPM_L, FXBCPS_L, FXBLM_L, FXBFLS_L, FXBDLS_L,
3284 . FXBDEP, FXBVIT, FXBACC, FXBELM_L, FXBSIG_L,
3285 . FXBGRVI_L, FXBGRVR_L, LENNOD_L, LENMOD_L, LENGLM_L,
3286 . LENCP_L, LENLM_L, LENFLS_L, LENDLS_L, LENELM_L,
3287 . LENSIG_L, LENGRVI_L, LENGRVR_L, LEN_AM, ITASK)
3289 DEALLOCATE(FXBNOD_L, FXBMOD_L, FXBGLM_L, FXBCPM_L, FXBCPS_L,
3290 . FXBLM_L, FXBFLS_L, FXBDLS_L, FXBELM_L, FXBSIG_L,
3291 . FXBGRVI_L, FXBGRVR_L)
3297 CALL EIGWRESTP(EIGIPM_L, EIGIBUF_L, EIGRPM, LEIBUF_L,LEN_AM)
3302 IF (NSLIPRING + NRETRACTOR > 0) THEN
3303 CALL W_SEATBELTS(LEN_IA,LEN_AM,P,NODLOCAL,N_ANCHOR_REMOTE_L,
3304 . N_ANCHOR_REMOTE_SEND_L,ANCHOR_REMOTE_L,ANCHOR_REMOTE_SEND_L)
3309 IF (LMAX_DIS>0)CALL W_R3NLOC(D,NODGLOB,NUMNOD_L,LEN_AM)
3310 IF (LMAX_VEL>0)CALL W_R3NLOC(V,NODGLOB,NUMNOD_L,LEN_AM)
3311 CALL W_OUTMAXN(NUMNOD_L,LEN_AM)
3315 IF (NCONLD_L > 0) THEN
3316 OFF = NUMELC+NUMELTG+NUMELS+NUMELQ+NUMELT+NUMELP+NUMELR
3318 CALL W_DISP0_VEL0_CLOAD(DPL0CLD,CEP ,P-1 ,NCONLD_L,LEN_AM,
3319 . OFF ,LEN_CEP,NCONLD)
3320 CALL W_DISP0_VEL0_CLOAD(VEL0CLD,CEP ,P-1 ,NCONLD_L,LEN_AM,
3321 . OFF ,LEN_CEP,NCONLD)
3326 IF (NDAMP_VREL_L>0) THEN
3327 CALL W_DAMPVREL(DAMPR,IGRNOD,IDAMP_VREL_L,NDAMP_VREL_L,LEN_IA,
3328 . NGRNOD,NDAMP,NRDAMP,NSPMD)
3333 IF (NFLOW>0) CALL NFWRESTP(IFLOW_L,RFLOW,LEN_IA,LEN_AM)
3341 IF(GLOB_THERM%ITHERM_FE > 0 ) THEN
3342 CALL W_RNLOC(MCP,NODGLOB,NUMNOD_L,LEN_AM)
3343 CALL W_RNLOC(TEMP,NODGLOB,NUMNOD_L,LEN_AM)
3348 IF(NITSCHE > 0 ) THEN
3349 ALLOCATE(FORNEQS(3*NUMNOD_L))
3350 FORNEQS(1:3*NUMNOD_L) = ZERO
3351 CALL WRITE_DB(FORNEQS,3*NUMNOD_L)
3352 LEN_AM = LEN_AM + 3*NUMNOD_L
3358 CALL WRITE_UNITS(UNITAB)
3364 CALL WRITE_DB(RBYM,NFRBYM*NRBYM)
3365 LEN_AM = LEN_AM + NFRBYM*NRBYM
3367 CALL W_RBYMK(IRBYM,LCRBYM,FRONT_RM,NODLOCAL,P-1,
3369 CALL WRWEIGHT_RM(FRONT_RM,NRBYM,P)
3374 IF (GLOB_THERM%NUMCONV > 0 )THEN
3376 CALL W_FCONV(FCONV,CEP,P-1,NCONV_L,LEN_AM,
3377 . GLOB_THERM%NUMCONV,GLOB_THERM%LFACTHER)
3379 CALL W_ICONV(IBCV,CEP,P-1,NODLOCAL,NCONV_L,LEN_IA,
3380 . CEL,IPARG,NUMLOCGROUP,GLOB_THERM%NUMCONV,GLOB_THERM%NICONV)
3386 IF (GLOB_THERM%NUMRADIA > 0 )THEN
3388 CALL W_FRADIA(FRADIA,CEP,P-1,NRADIA_L,LEN_AM,
3389 . GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%LFACTHER)
3391 CALL W_IRADIA(IBCR,CEP,P-1,NODLOCAL,NRADIA_L,LEN_IA,
3392 . CEL,IPARG,NUMLOCGROUP,
3393 . GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NIRADIA)
3398 IF (GLOB_THERM%NFXFLUX > 0 )THEN
3400 CALL W_FTHFLUX(FBFFLUX,CEP,P-1,NFXFLUX_L,LEN_AM,
3401 . GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX,GLOB_THERM%LFACTHER)
3403 CALL W_ITHFLUX(IBFFLUX,CEP,P-1,NODLOCAL,NFXFLUX_L,LEN_IA,CEL,IXS,
3404 . GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX,GLOB_THERM%NITFLUX)
3409 IF(GLOB_THERM%NFXTEMP > 0) THEN
3411 CALL W_FBFT(FBFT,GLOB_THERM%NFXTEMP,IBFT,NFXTEMP_L,LEN_AM,P-1,
3412 . GLOB_THERM%NIFT,GLOB_THERM%LFACTHER)
3414 CALL W_IBFT(IBFT,GLOB_THERM%NFXTEMP,NODLOCAL,LEN_IA,
3415 . NFXTEMP_L,P-1,GLOB_THERM%NIFT)
3421 IF(IPLYXFEM > 0 ) THEN
3422 OFF = NUMELS + NUMELQ
3424 CALL W_PXFEM(IEPXFEM_L,INPXFEM_L ,INDEX_PXFEM,
3425 . MS_PLY,ZI_PLY ,NUMELC_L, NUMNOD_L ,
3426 . NUMELCPXFE_L,NUMNODPXFE_L,LEN_AM,LEN_IA,MSZ2)
3428 IF(IPLYBCS > 0) THEN
3429 CALL W_INLOC(ICODPLY,NODGLOB,NUMNOD_L,LEN_IA)
3430 CALL W_INLOC(ISKWPLY,NODGLOB,NUMNOD_L,LEN_IA)
3433 OFF = NUMELS + NUMELQ
3434 CALL W_ANIM_PLY(IXC, NUMELC_L, NODLOCAL,
3435 * NUMNOD_L, CEL(OFF+1), CEP(MIN(OFF+1,LEN_CEP)), P-1)
3437 CALL W_AVUPLY(NUMNODPXFE_L,LEN_AM)
3443 . CALL WRITE_DB(CFIELD,LFACLOAD*NLOADC)
3444 LEN_AM = LEN_AM + LFACLOAD*NLOADC
3449 . CALL WRITE_DB(LOADP,LFACLOAD*NLOADP)
3450 LEN_AM = LEN_AM + LFACLOAD*NLOADP
3454 IF (NINTLOADP>0) THEN
3455 CALL WRITE_DB(DGAPLOADINT, S_LOADPINTER )
3456 LEN_AM = LEN_AM + S_LOADPINTER
3461 IF (LOADS%NINIVELT>0) THEN
3463 . NGRNOD, NGRBRIC, NGRQUAD, NGRSH3N,
3464 . IGRNOD, IGRBRIC, IGRQUAD, IGRSH3N,
3465 . P-1 , CEP, SCEP, NODLOCAL,
3466 . NUMNOD,LOADS%NINIVELT,LOADS%INIVELT, LEN_IA,
3472 IF(ICRACK3D > 0)THEN
3474 CALL W_CRKXFEM(IELXFEMC_L,IELXFEMTG_L,INCRKXFEM_L,NUMELC_L,
3475 . NUMELTG_L,NUMNOD_L,LEN_IA,NUMNODCRKXFE_L,
3479 . IXC ,IXTG ,NUMELC_L,NUMELTG_L,NODLOCAL,
3480 . NUMNOD_L ,INCRKXFEM_L,CEL ,CEP_CRKXFEM ,P-1 ,
3481 . IEDGECRK_L,IBORDEDGE_L,NUMEDGES_L,INDEX_CRKXFEM ,
3482 . INOD_CRKXFEM,LCNECRKXFEM_L,EDGEGLOBAL,CEP,CRKLVSET,
3483 . NCRKPART, INDX_CRK,CRKSHELL,CRKSKY,CRKAVX,
3484 . CRKEDGE ,XFEM_PHANTOM,NUMNODCRKXFE_L)
3486 ALLOCATE(ELCUTC_L(2*NUMELC_L))
3487 ALLOCATE(ELCUTTG_L(2*NUMELTG_L))
3488 ALLOCATE(NODENR_L(NUMNODCRKXFE_L))
3489 ALLOCATE(KXFENOD2ELC_L(NUMNODCRKXFE_L))
3490 ALLOCATE(ENRTAG_L(NUMNOD_L*IENRNOD))
3498 . ELCUTC ,NODENR ,KXFENOD2ELC ,ENRTAG ,
3499 . ELCUTC_L ,NODENR_L ,KXFENOD2ELC_L,ENRTAG_L,
3500 . NUMELC_L ,NUMELTG_L ,NUMNOD_L ,NODGLOB ,INOD_CRKXFEM ,
3501 . P-1 ,CEP ,ELCUTTG_L ,INCRKXFEM_L,INDEX_CRKXFEM)
3505 CALL WRITE_I_C(ELCUTC_L,2*NUMELC_L)
3506 LEN_IA = LEN_IA + 2*NUMELC_L
3507 CALL WRITE_I_C(ELCUTTG_L,2*NUMELTG_L)
3508 LEN_IA = LEN_IA + 2*NUMELTG_L
3509 CALL WRITE_I_C(NODENR_L,NUMNODCRKXFE_L)
3510 LEN_IA = LEN_IA + NUMNODCRKXFE_L
3511 CALL WRITE_I_C(KXFENOD2ELC_L,NUMNODCRKXFE_L)
3512 LEN_IA = LEN_IA + NUMNODCRKXFE_L
3513 CALL WRITE_I_C(ENRTAG_L,NUMNOD_L*IENRNOD)
3514 LEN_IA = LEN_IA + NUMNOD_L*IENRNOD
3516 DEALLOCATE(ELCUTC_L,ELCUTTG_L,NODENR_L,KXFENOD2ELC_L,ENRTAG_L)
3517 DEALLOCATE(IEDGECRK_L,IBORDEDGE_L,NODEDGE_L,TAGEDGE,IEDGE_L)
3518 DEALLOCATE(EDGELOCAL,EDGEGLOBAL)
3519 DEALLOCATE(IEDGESH4_L,IEDGESH3_L)
3520 DEALLOCATE(INDEX_CRKXFEM,NODLEVXF_L)
3522 ALLOCATE(ELCUTC_L(0))
3523 ALLOCATE(ELCUTTG_L(0))
3524 ALLOCATE(NODENR_L(0))
3525 ALLOCATE(KXFENOD2ELC_L(0))
3526 ALLOCATE(ENRTAG_L(0))
3531 IF(ALEFVM_Param%IEnabled > 0)CALL WRITE_DB(ALEFVM_Buffer%FCELL ,6*NUMELS)
3534 IF(IALELAG > 0) THEN
3535 CALL W_ALELAG(DFLOW,VFLOW,WFLOW,NODGLOB,NUMNOD_L,LEN_AM)
3540 IF(LENTHGR > 0) THEN
3541 CALL WRITE_DB(RTHBUF,LENTHGR)
3542 LEN_AM = LEN_AM + LENTHGR
3547 IF(SKNOT > 0) CALL WRITE_DB(KNOT,SKNOT)
3548.AND.
IF(SKNOTLOCPC > 0 SKNOTLOCEL > 0) THEN
3549 CALL W_KNOTLOC(KXIG3D,NUMELIG3D_L,ISUMNIG3D_L,IXIG3D,CEP,
3550 . PROC,NODLOCAL,LEN_IA,KNOTLOCPC,KNOTLOCEL,NUMNOD_L,
3551 . GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA)
3556 IF(NUMELIG3D > 0) CALL W_RNLOC(WIGE,NODGLOB,NUMNOD,LEN_AM)
3560.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0 ) THEN
3561 LEN_IG = (4*NPT_STACK + 2)*NS_STACK
3562 LEN_G = (6*NPT_STACK + 1)*NS_STACK
3563 LEN_PM = 20*NS_STACK
3564 CALL W_STACK(STACK%IGEO,STACK%GEO,LEN_IG,LEN_G,LEN_IA,LEN_AM,
3570 IF (NDRAPE > 0) THEN
3572 OFF = NUMELS + NUMELQ
3573 IF(NUMELC_DRAPE > 0)
3574 . CALL W_DRAPE(DRAPE,DRAPEG%INDX,CEP(MIN(OFF+1,LEN_CEP)),P-1,
3575 . NUMELC,NUMELC_L,NUMSH4N_L,LEN_IA,LEN_AM)
3576 OFF = OFF + NUMELC + NUMELT + NUMELP + NUMELR
3577 IF(NUMELTG_DRAPE > 0)
3578 . CALL W_DRAPE(DRAPE,DRAPEG%INDX(NUMELC +1),CEP(MIN(OFF+1,LEN_CEP)),P-1,
3579 . NUMELTG,NUMELTG_L,NUMSH3N_L,LEN_IA,LEN_AM)
3585 . CALL W_PLY_INFO(PLY_INFO,NUMPLY)
3590! IF (LOADS%NLOAD_CLOAD > 0) THEN
3591! OFF = NUMELC+NUMELTG+NUMELS+NUMELQ+NUMELT+NUMELP+NUMELR
3593! CALL W_DISP0_VEL0_CLOAD(DPL0CLD,CEP ,P-1 ,NCLOAD_L,LEN_AM,
3594! . OFF ,LEN_CEP,LOADS%NLOAD_CLOAD)
3595! CALL W_DISP0_VEL0_CLOAD(VEL0CLD,CEP ,P-1 ,NCLOAD_L,LEN_AM,
3596! . OFF ,LEN_CEP,LOADS%NLOAD_CLOAD)
3598! -------------------------------------
3599! write the current elapsed time
3600! -------------------------------------
3601 CALL ELAPSTIME_OMP(SECS)
3602 CALL WRITE_DPDB(SECS,1)
3608 CALL FILE_SIZE_C(FILE_SIZE)
3609 DDSTAT(25)= FILE_SIZE
3612 IF(FLUSH_RST_TO_TXT) CLOSE(777+ITASK)
3614 IF(NUMNOD_L>0) DEALLOCATE(NODGLOB)
3616 DEALLOCATE(MONVOL_L)
3619 DEALLOCATE(NODLOCAL)
3620 DEALLOCATE(IEPXFEM_L)
3621 DEALLOCATE(INPXFEM_L)
3622 DEALLOCATE(IELXFEMC_L)
3623 DEALLOCATE(IELXFEMTG_L)
3624 DEALLOCATE(INCRKXFEM_L)
3625 DEALLOCATE(NUMLOCGROUP)
3626 DEALLOCATE(NUMLOCCLUSTER)
3657 DDSTAT(1) = NUMNOD_L
3659 DDSTAT(3) = NUMELS_L
3660 DDSTAT(4) = NUMELQ_L
3661 DDSTAT(5) = NUMELC_L
3662 DDSTAT(6) = NUMELP_L
3663 DDSTAT(7) = NUMELT_L
3664 DDSTAT(8) = NUMELR_L
3666 DDSTAT(10)= NUMELTG_L
3667 DDSTAT(11)= NUMELX_L
3668 DDSTAT(12)= NBDDPROC
3669 DDSTAT(13)= NBDDBOUN
3672 DDSTAT(16)= NRBYKIN_L
3673 DDSTAT(17)= NUMSPH_L
3678 DDSTAT(24)= NSLARB_L
3683 NISKY0_L=NISKY0_L+4*NCONV_L+4*NRADIA_L+4*NFXFLUX_L
3686 I_EVAL = NUMNOD_L+2*NUMNOD_L*MAX(IALE,IEULER,IALELAG)+NUMNOD_L*IRODDL
3687 R_EVAL = LENWA_L+NFUNCT
3689 LSKYI = NINT(5*MAX(4*NUMNOD_L,IMAXIMP_L)*PROBINT)+4*NUMSPH_L+NSKYI18_L
3690 R_EVAL = R_EVAL+8*NUMNOD_L+NPSAV*NPART
3691 R_EVAL = R_EVAL+8*LCNE_L
3692.AND.
IF (N2D==0IALE+IEULER+GLOB_THERM%ITHERM+IALELAG > 0) R_EVAL = R_EVAL+ LCNE_L
3694 R_EVAL = R_EVAL+5*LSKYI
3695 I_EVAL = I_EVAL+LSKYI+NUMNOD_L+1+LCNI2_L
3696 + + NISKY0_L+NSKYRW_L+NSKYRBK_L+NISKYI2_L
3697 + + NNMV_L+NNMVC_L+NSKYLL_L+NSKYRBM_L+NSKYRBE3_L
3698 + + NNMV_L+NNMVC_L+NSKYLL_L+NSKYRBM_L
3699 IF(IVECTOR==1)I_EVAL = I_EVAL+ NUMNOD_L
3700 IF(I2NSNT>0)I_EVAL = I_EVAL+ NUMNOD_L+1
3701.AND.
IF(I2NSNT>0IVECTOR==1)I_EVAL = I_EVAL+ NUMNOD_L
3703 R_EVAL = R_EVAL+7*NUMNOD_L+NUMNOD_L*IRODDL+NPSAV*NPART
3704 R_EVAL = R_EVAL+2*MAX(IALE,GLOB_THERM%ITHERM,IEULER)*(NUMELS_L+NUMELQ_L)
3707 R_EVAL = R_EVAL+NUMNOD_L
3709 + LWASPH_L+7*NUMNOD_L*NSECT*ISECUT+5*NINTER+21*NIBVEL
3710 I_EVAL = I_EVAL+NUMNOD_L
3711 DDSTAT(18)= LEN_IA + I_EVAL
3712 DDSTAT(19)= LEN_AM + R_EVAL
3722 DEALLOCATE(MULTI_FVM_VEL_L)
3723 DEALLOCATE(IEBCS_LISTELEM_L)
3724 DEALLOCATE(IEBCS_LISTFAC_L)
3726 DEALLOCATE(RDPARTSAV)
3727 DEALLOCATE(DD_RBYM2)
subroutine ddsplit(p, cep, cel, igeo, mat_elem, ipm, icode, iskew, iskn, insel, ibcslag, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, detonators, ipartx, npc, ixtg, group_param_tab, ixtg6, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, itab, itabm1, gjbufi, nale, ale_connectivity, kxx, ixx, ibcl, ibfv, las, laccelm, nnlink, lllink, iparg, igrav, lgrav, ibvel, lbvel, iactiv, factiv, kinet, ipari, nprw, lprw, iexmad, npby, lpby, ixri, nstrf, ljoint, pornod, monvol, icontact, lagbuf, fr_iad, x, d, v, vr, dr, thke, dampr, damp, ms, in, tf, pm, skew, xframe, geo, eani, bufmat, bufgeo, bufsf, brmpc, gjbufr, w, veul, fill, dfill, wb, dsav, asav, msnf, spbuf, fac, vel, fsav, fzero, xlas, accelm, fbvel, gravfac, fr_wave, failwave, parts0, elbuf, rwl, rwsav, rby, rivet, secbuf, rvolu, rconx, nloc_dmg, fvmain, libagale, lenthg, lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt, lenlas, lenvolu, npts, cne, lcne, addcne, cni2, lcni2g, addcni2, cepi2, celi2, i2nsnt, probint, ddstat, pm1shf, dd_iad, kxsp, ixsp, nod2sp, cepsp, nthwa, nairwa, nmnt, l_mul_lag1, l_mul_lag, lwaspio, ipartsp, ispcond, pm1sph, wma, eigipm, eigibuf, eigrpm, iflow, rflow, memflow, iexlnk, fasolfr, iparth, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, iadll, lll, ibmpc, lambda, lrbagale, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, mcp, temp, unitab, intstamp, iframe, clusters, partsav, ibft, fbft, ibcv, fconv, irbe3, lrbe3, frbe3, front_rm, rbym, irbym, lcrbym, inoise, fnoise, ms0, admsms, nom_sect, ispsym, sh4tree, sh3tree, ipadmesh, ibfflux, fbfflux, sh4trim, sh3trim, padmesh, msc, mstg, inc, intg, ptg, mcpc, mcptg, rcontact, acontact, pcontact, mscnd, incnd, mssa, mstr, msp, msrt, ibcr, fradia, dmelc, dmeltg, dmels, dmeltr, dmelp, dmelrt, res_sms, isphio, lprtsph, lonfsph, vsphio, sphveln, alph, ifill, ims, irbe2, lrbe2, ms_ply, zi_ply, inod_pxfem, iel_pxfem, icodply, iskwply, addcne_pxfem, cne_pxfem, cel_pxfem, ithvar, xdp, table, celsph, icfield, lcfield, cfield, msz2, itask, diag_sms, iloadp, lloadp, loadp, inod_crkxfem, iel_crkxfem, addcne_crkxfem, cne_crkxfem, cel_crkxfem, ibufssg_io, intercep, ibordnode, iedgesh, ibordedge, linale, nodedge, iedge, cep_crkxfem, iedge_tmp, crknodiad, elbuf_tab, nom_opt, lgauge, gauge, igaup, ngaup, nodlevxf, frontb_r2r, dflow, vflow, wflow, sph2sol, sol2sph, irst, elcutc, nodenr, kxfenod2elc, enrtag, intbuf_tab, i11flag, xfem_tab, lenthgr, rthbuf, ixig3d, kxig3d, knot, ipartig3d, wige, ncrkpart, indx_crk, crklvset, crkshell, crksky, crkavx, crkedge, sensors, stack, xfem_phantom, t8, tab_ump, poin_ump, sol2sph_typ, addcsrect, csrect, drape, loads, itagnd, icnds10, addcncnd, cepcnd, celcnd, cncnd, nativ_sms, i24maxnsne, multi_fvm, segquadfr, intbuf_fric_tab, subset, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, igrslin, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, numnod_l, tag_skn, multiple_skew, igrsurf_proc, knotlocpc, knotlocel, ale_elm, size_ale_elm, pinch_data, tag_skins6, ibcscyc, lbcscyc, t_monvol, indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, nbr_th_monvol, ebcs_tab, kloadpinter, loadpinter, dgaploadint, s_loadpinter, len_cep, dynain_data, drapeg, user_windows, output, interfaces, number_load_cyl, loads_per_proc, python, dpl0cld, vel0cld, names_and_titles, bcs_per_proc, constraint_struct, glob_therm, pblast, rwstif_pen, sln_pen)