337
338
339
340 USE my_alloc_mod
346 USE mat_elem_mod
350 USE intbufdef_mod
354 USE int8_mod
356 USE multi_fvm_mod
358 USE intbuf_fric_mod
359 USE pblast_mod
364 USE skew_mod
371 USE sensor_mod
373 USE ebcs_mod
377 USE loads_mod
381 USE output_mod
382 USE interfaces_mod
384 USE python_funct_mod
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
390 use glob_therm_mod
391 use write_ale_grid_mod, only : write_ale_grid
392 use pblast_mod
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
397
398
399
400
401#include "implicit_f.inc"
402
403
404
405#include "com01_c.inc"
406#include "com04_c.inc"
407#include "com10_c.inc"
408#include "com_xfem1.inc"
409#include "eigcom.inc"
410#include "flowcom.inc"
411#include "fxbcom.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"
421#include "sms_c.inc"
422#include "sphcom.inc"
423#include "tabsiz_c.inc"
424#include "tablen_c.inc"
425#include "remesh_c.inc"
426#include "r2r_c.inc"
427#include "inter22.inc"
428#include "drape_c.inc"
429#include "debug_rst.inc"
430
431 TYPE intermasurfep
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
439
440
441
442 TYPE (UNIT_TYPE_),INTENT(IN) ::
443 INTEGER, INTENT(IN) :: LEN_CEP
444 INTEGER, DIMENSION(SCEL), INTENT(IN) :: CEL
445 TYPE(DETONATORS_STRUCT_),INTENT(IN) :: DETONATORS
446 INTEGER P,
447 . LIBAGALE, LENTHG, LENLAS, NPTS,LEN,
448 . LBUFMAT, LBUFGEO, LBUFSF, LENXLAS, LNOM_OPT,
449 . , 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
465
466(*),FVMAIN(*),
467 . LAGBUF(*), FR_IAD(*),
468 . ICONTACT(*), IPARTSP(*), ISPCOND(*),
469 . DDSTAT(50), CNE(*), LCNE, ADDCNE(0:*),
470 . CNI2(*), ADDCNI2(0:*), CEPI2(*), CELI2(*),
471 . DD_IAD(*),
472 . KXSP(*), (*), (*), CEPSP(*),
473 . EIGIPM(*), EIGIBUF(*), IFLOW(*), FASOLFR(2,*),
474 . IPARTH(*),
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
487
488
489
490
491
492
493(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(s_loadpinter )
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
508
509 double precision
510 . bufgeo(*)
512 . x(*), d(*), v(*), vr(*), dr(*),
513 . thke(*), dampr(*), damp(*), ms(*), in(*),
514 . tf(*), pm(*), skew(*), xframe(*), geo(*),
515 . eani(*), bufmat(*), bufsf
516 . gjbufr(*), w(*), veul(*), fill(*), dfill(*),
517 . wb(*), asav(*), dsav(*), msnf(*),
518 . spbuf(*), fac(*), vel(*), factiv(*),
519 . fsav(*), fzero(*), xlas(*), accelm(*),
520 . fbvel(*), gravfac(*), fr_wave(*
521 . rwl(*), rwsav(*), rby(*), rivet(*),
522 . secbuf(*), rvolu(*), parts0(*), rconx(*),
523 . wma(*), eigrpm(*), rflow(*),
524 . probint, fxbrpm(*), fxbmod(*), fxbglm(*), fxbcpm(*),
525 . fxbcps(*), fxblm(*), fxbfls(*), fxbdls(*), fxbdep(*),
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
563
564 TYPE (SUBSET_) , DIMENSION(NSUBS) :: SUBSET
565 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
566 TYPE () , 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
577
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
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599 INTEGER, DIMENSION(NUMSKW+1), INTENT(INOUT) :: TAG_SKN
600 TYPE(PLIST_SKEW_), DIMENSION(NUMSKW+1), INTENT(INOUT) :: MULTIPLE_SKEW
601
602
603
604
605
606
607
608
609
610
611 TYPE(SURF_), DIMENSION(NSURF,NSPMD), INTENT(IN) :: IGRSURF_PROC
612
613
614
615
616
617
618
619 INTEGER, INTENT(IN) :: SIZE_ALE_ELM
620 TYPE(split_cfd_type), INTENT(IN) :: ALE_ELM
621
622
623
624
625
626 TYPE(MONVOL_STRUCT_), DIMENSION(NVOLU), INTENT(IN) :: T_MONVOL
627
628
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) ::
634 INTEGER, DIMENSION(3*NUMELTG,*), INTENT(in) :: FACE_ELM_TG
635
636
637
638
639
640
641 TYPE(t_ebcs_tab), INTENT(INOUT) :: EBCS_TAB
642 TYPE(USER_WINDOWS_),INTENT(IN) :: USER_WINDOWS
643
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
648 TYPE(NAMES_AND_TITLES_),INTENT(IN) :: NAMES_AND_TITLES
649 type(constraint_), intent(inout) :: constraint_struct
650 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
651 TYPE(glob_therm_) ,intent(inout) :: glob_therm
652
653
654
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,
679 . DD_RBM2(3,NIBVEL),
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
704 INTEGER LWAMP_L
705 INTEGER LWANMP_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,
710 . KXFENOD2ELC_L,ENRTAG_L,
711 . IELXFEMTG_L,INDEX_CRKXFEM,NODLEVXF_L, NODLOCAL_MGM
712 INTEGER, DIMENSION(:),ALLOCATABLE :: NODGLOB, IDGLOB_L, UIDGLOB_L,
713 . IXSF, IXQF, IXTGF, ITABI2M, ITABRBE3M, ITABRBE2M
714
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,
727 . fxbcps_l, fxblm_l,
728 . fxbfls_l, fxbdls_l,
729 . fxbgrvr_l
730 my_real,
DIMENSION(:),
ALLOCATABLE::rdpartsav
732 . , DIMENSION(:), ALLOCATABLE :: forneqs
733
734 CHARACTER*100 FILNAM
735 CHARACTER*4 PROCNAM,CHRUN
736 INTEGER NUM16SHIFT_L,SPHSHIFT_L
737 INTEGER, DIMENSION(:), ALLOCATABLE :: ISKWP_L
738
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
745
746
747 INTEGER SLONFSPH_L,SLPRTSPH_L,SSPHVELN_L
748 INTEGER IBUFSSG_IO(SIBUFSSG_IO)
749 my_real,
DIMENSION(:),
ALLOCATABLE :: rbufgeo
751 . msndp(nspmd)
752 INTEGER :: LEN_TMP_NAME
753 CHARACTER(len=4096) :: TMP_NAME
754
755
756
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)
764 . tabvrea(lmxvrea)
765 DOUBLE PRECISION XDP(*)
766
767 INTEGER, DIMENSION(:),ALLOCATABLE :: NODGLOBXFE
768
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
772
773
774
775 INTEGER :: MAX_ID
776
777
778
779 INTEGER :: IEBCSLGTH, IEBCS_NELEM_L(NEBCS), IEBCS_TYPE(NEBCS)
780 INTEGER, DIMENSION(:), ALLOCATABLE ::
781 . IEBCS_LISTELEM_L,
782 . IEBCS_LISTFAC_L
783 my_real,
DIMENSION(:),
ALLOCATABLE :: iebcs_listdp0_l
784
785
786
787 my_real,
DIMENSION(:,:),
ALLOCATABLE :: multi_fvm_vel_l
788
789
790
791 INTEGER, DIMENSION(:), ALLOCATABLE :: BUFFER
792 INTEGER :: BUFFER_SIZE
793
794
795
796 INTEGER (KIND=8) :: FILE_SIZE
797 real(kind=8) :: secs
798
799 INTEGER NPINCH_L
800 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
801 INTEGER, DIMENSION(:), ALLOCATABLE :: ELEMID_L
802 INTEGER, DIMENSION(:), ALLOCATABLE :: NE_LERCVOIS
803 INTEGER, DIMENSION(:), ALLOCATABLE :: NE_LESDVOIS
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,EBCS_TAB_LOC_2
808 TYPE() :: ee_connect_l
809 LOGICAL :: IS_EBCS_PARALLEL
810 INTEGER :: ISHADOW
811
812 TYPE(SEATBELT_REMOTE_NODES_STRUCT) ANCHOR_REMOTE_L,ANCHOR_REMOTE_SEND_L
813
814 INTEGER, DIMENSION(LTITLE) :: ITITLE
815
816
817
818 IF (multi_fvm%IS_USED) THEN
819 ALLOCATE(multi_fvm_vel_l(3, numels + numelq + numeltg))
820 ELSE
821 ALLOCATE(multi_fvm_vel_l(1,1))
822 ENDIF
823
824
825 ALLOCATE(nodlocal(numnod))
826
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))
837
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)
842
843
844
845 ALLOCATE(monvol_l(lenvolu))
846 DO i = 1, lenvolu
847 monvol_l(i) = monvol(i)
848 END DO
849
850 iun = 1
851 isp0 = 0
852 IF(p==1) isp0 = 1
853
854
855
856 DO proc = 1, nspmd+1
857 dd_lagf(1,proc) = 0
858 dd_lagf(2,proc) = 0
859 END DO
860
861
862
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)
867
868
869
870 CALL c_ngroup(iparg,p-1,numlocgroup,ngroup_l)
871
872
873
874 off = 0
875 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels8,numels8_l)
876 off = off + numels8
877 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels10,numels10_l)
878 off = off + numels10
879 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels20,numels20_l)
880 off = off + numels20
881 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels16,numels16_l)
882 off = off + numels16
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)
885 off = off + numelq
886 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelc,numelc_l)
887 off = off + numelc
888 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelt,numelt_l)
889 off = off + numelt
890 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelp,numelp_l)
891 off = off + numelp
892 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelr,numelr_l)
893 off = off + numelr
894 numeltg3=numeltg-numeltg6
895 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg3,numeltg_l)
896 off = off + numeltg3
897 numeltg3_l = numeltg_l
898 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg6,numeltg6_l)
899 off = off + numeltg6
900 numeltg_l = numeltg3_l+numeltg6_l
901 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelx,numelx_l)
902 off = off + numelx
903 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l)
904 off = off + numelig3d
905
906 IF (p==1) THEN
907 num16shift_l = 1
908 pm1shf = 2*numels16_l + 1
909 ELSE
910 num16shift_l = pm1shf
911 pm1shf = pm1shf + 2*numels16_l
912 ENDIF
913
914
915
916 ncluster_l = 0
917 IF(ncluster > 0) THEN
918 CALL c_cluster(clusters,p-1,cep,ncluster_l,numloccluster)
919 ENDIF
920
921
922
923 nsvois = 0
924 nqvois = 0
925 ntgvois = 0
926 ne_nsvois = 0
927 ne_nqvois = 0
928 ne_ntgvois = 0
929 nrcvvois = 0
930 nsndvois = 0
931 ilaw11 = 0
932 nsegfl_l = 0
933 nervois = 0
934 nesvois = 0
935 ne_nervois = 0
936 ne_nesvois = 0
937 ishadow = 0
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)
945 ENDIF
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)
951
952 IF(ale_connectivity%has_ne_connect)THEN
954 . nodglob, nodlocal,
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)
959 ENDIF
960 ENDIF
961
962
963
964
965 iebcslgth = 0
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
970 nebcs_fvm = 0
971 nebcs_parallel = 0
972 other_nebcs = 0
974
975
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
984 ELSEIF(p==1) THEN
985 other_nebcs = other_nebcs + 1
986 list_other_ebcs(other_nebcs) = ii
987 ENDIF
988 ENDDO
989
990 CALL ebcs_tab_loc%create(nebcs_fvm)
991 ebcs_tab_loc%nebcs_fvm = nebcs_fvm
992
993
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
998
999
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)
1005
1006
1007
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))
1014
1015
1016
1017
1018 iebcslgth = 0
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)
1024
1025
1026
1027 nebcs_fvm = 0
1028 nebcs_parallel = 0
1029 ipt = 1
1030
1031
1032
1033
1034
1035
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.
1039
1040
1041
1042 IF (ebcs_tab%tab(ii)%poly%is_multifluid) THEN
1043
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)
1048 ENDIF
1049 IF (ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface)) THEN
1050 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface)
1051 ENDIF
1052 IF (ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0)) THEN
1053 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0)
1054 ENDIF
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)
1063 ipt = ipt + 1
1064 ENDDO
1065
1066
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)
1074 ENDIF
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)
1082 ENDIF
1083 ipt = ipt + 1
1084 ENDDO
1085 ENDIF
1086
1087
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)
1092 ENDIF
1093 IF (ALLOCATED(ebcs_tab%tab(ii)%poly%iface)) THEN
1094 DEALLOCATE(ebcs_tab%tab(ii)%poly%iface)
1095 ENDIF
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)
1103 ipt = ipt + 1
1104 ENDDO
1105 ENDIF
1106
1107
1108 ENDDO
1109
1110
1111
1112 CALL split_ebcs(p,nebcs_parallel,list_ebcs_parallel,scel,cep,igrsurf,cel,ebcs_tab,ebcs_tab_loc_2)
1113
1114
1115 ENDIF
1116
1117
1118
1119 IF (multi_fvm%IS_USED) THEN
1120 IF (n2d == 0) THEN
1122 . multi_fvm_vel_l, multi_fvm)
1123 ELSE
1124 CALL c_multi_vel(cep, numelq + numeltg, numelq_l + numeltg_l, p-1,
1125 . multi_fvm_vel_l, multi_fvm)
1126 ENDIF
1127 ENDIF
1128
1129
1130
1131 lenigrnod_l = 0
1132 lenigrbric_l = 0
1133 lenigrquad_l = 0
1134 lenigrsh4n_l = 0
1135 lenigrtrus_l = 0
1136 lenigrbeam_l = 0
1137 lenigrspri_l = 0
1138 lenigrsh3n_l = 0
1139 lenisurf_l = 0
1140 lenislin_l = 0
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)
1148
1150
1151
1152
1153 imaximp_l= 0
1154 nbddi2m = 0
1155 i2nsn_l = 0
1156 nbi18_l = 0
1157 nskyi18_l= 0
1158 nsnt_l = 0
1159 nmnt_l = 0
1160 nsnt2_l = 0
1161 nmnt2_l = 0
1162 i2nsn25_l = 0
1163 numnor_l = 0
1164 IF(ninter>0) THEN
1165
1167
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)
1174
1175
1177 ENDIF
1178
1179
1180
1181
1182 nslaw_l = 0
1183 neslaw_l = 0
1184 lwsav_l = 0
1185 nskyrw_l = 0
1186 lrw_pen_l= 0
1187 IF(nrwall > 0)
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)
1191
1192
1193
1194 nmadsh4_l = 0
1195 nmadsh3_l = 0
1196 nmadsol_l = 0
1197 nmadnod_l = 0
1198 madcl_nmadnod_l = 0
1199
1200 IF(nexmad/=0)
1201 +
CALL c_mad(iexmad,nmadsh4_l,nmadsh3_l,nmadsol_l,nmadnod_l,
1202 + madcl_nmadnod_l,cep ,p-1 )
1203
1204
1205
1206 nslarb_l = 0
1207 nskyrbk_l = 0
1208 IF(nrbykin>0)
1209 +
CALL c_rbyk(npby,lpby,p-1,nslarb_l,nskyrbk_l)
1210
1211
1212
1213 nslarbm_l = 0
1214 nskyrbmk_l = 0
1215 IF(nrbym > 0)
1216 +
CALL c_rbymk(irbym,lcrbym,p-1,nslarbm_l,nskyrbmk_l)
1217
1218
1219
1220 nstrf_l = 0
1221 lsecbuf_l = 0
1222 nnodt_l = 0
1223 nnodl_l = 0
1224 IF(nsect>0)
1225 +
CALL c_sectio(nstrf ,cep ,p-1,nstrf_l,
1226 + lsecbuf_l,nnodt_l,nnodl_l)
1227
1228
1229
1230 ljoint_l = 0
1232 IF(njoint>0.AND.p==1)
CALL c_joint_sms(ljoint,p-1,ljoint_l)
1233 ENDIF
1234
1235
1236
1237 numpor_l = 0
1238 IF(numpor>0) THEN
1240 ENDIF
1241
1242
1243
1244 CALL c_bufel(iparg,p-1,lbufel_l)
1245
1246
1247
1248 intbag_l = 0
1249 IF(nvolu>0)THEN
1250 IF(intbag/=0)
1251 + intbag_l = lenvolu
1252 ELSEIF(intbag > 0 .AND. ialelag > 0 ) THEN
1253 intbag_l = intbag
1254 ENDIF
1255
1256
1257
1258 isumnx_l = 0
1259 IF (numelx_l>0)
1260 .
CALL c_elmx(kxx,cep,p-1,isumnx_l)
1261
1262
1263
1264 numsph_l = 0
1265 lwasph_l = 0
1266 nsphsol_l =0
1267 first_sphsol_l = 0
1268
1269 IF (nsphsol > 0) THEN
1270 sol2sph_flag = 1
1271 ELSE
1272 sol2sph_flag = 0
1273 ENDIF
1274
1275 IF (numsph>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)
1279 ENDIF
1280
1281 IF (p==1) THEN
1282 sphshift_l = 1
1283 pm1sph = 4*numsph_l + 1
1284 ELSE
1285 sphshift_l = pm1sph
1286 pm1sph = pm1sph + 4*numsph_l
1287 ENDIF
1288
1289
1290
1291 nconld_l = 0
1292 IF (nconld>0)
1293 .
CALL c_ibcl(ibcl,cep,p-1,nconld_l)
1294
1295
1296
1297 nfxvel_l = 0
1298 IF (nfxvel>0)
1299 .
CALL c_ibfv(ibfv,nfxvel,nfxvel_l,p-1,dd_lagf)
1300
1301
1302
1303 nllink_l=0
1304 nskyll_l=0
1305 IF (nlink>0)
1306 .
CALL c_llink(nnlink,lllink,p-1,nllink_l,nskyll_l)
1307
1308
1309
1310 llgrav_l=0
1311 IF (ngrav>0)
1312 .
CALL c_igrav(igrav,lgrav,llgrav_l,p-1,nodlocal,numnod_l)
1313
1314
1315
1316 llbvel_l=0
1317 nskyrbm_l = 0
1318 IF (nibvel>0)
1319 .
CALL c_ibvel(ibvel,lbvel,llbvel_l,nskyrbm_l,p-1)
1320
1321
1322
1323 nrbe2_l=0
1324 llrbe2_l=0
1325 nbddrbe2 = 0
1326 IF (nrbe2>0)
1327 .
CALL c_irbe2(irbe2,lrbe2,p-1 ,nrbe2_l,
1328 . llrbe2_l ,nbddrbe2)
1329
1330
1331
1332 nrbe3_l=0
1333 llrbe3_l=0
1334 nbddrbe3m = 0
1335 nskyrbe3_l = 0
1336 nrbe3pen_l=0
1337 IF (nrbe3>0)
1338 .
CALL c_irbe3(irbe3,lrbe3,nskyrbe3_l,p-1,
1339 . nrbe3_l,llrbe3_l ,nbddrbe3m,nrbe3pen_l)
1340
1341
1342
1343 IF (nummpc>0.AND.p==1)THEN
1344 inum = nummpc+1
1345 iddl = inum +lmpc
1346 iskw = iddl +lmpc
1347 CALL c_ibmpc(ibmpc,ibmpc(inum),ibmpc(iddl),ibmpc(iskw),dd_lagf)
1348 END IF
1349
1350
1351
1352 numel_l = numels_l + numelq_l + numelc_l + numelt_l + numelp_l
1353 + + numelr_l + numeltg_l+ numelx_l + numsph_l
1354 + + numelig3d_l
1355
1356
1357
1358 lenthgt = nithgr*(nthgrp0+nbr_th_monvol)
1359
1360
1361
1362 nlagf_l = 0
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
1372
1373
1374
1375 IF (ipari0/=0) THEN
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
1384 nir = 4
1385 IF(n2d/=0) nir = 2
1386 niskyi2_l = i2nsn_l*nir
1387 ELSE
1388 lcni2_l = 0
1389 lcne_l = 0
1390 nisky0_l=0
1391 niskyi2_l = 0
1392 nnmv_l = 0
1393 nnmvc_l = 0
1394 lcnepxfem_l = 0
1395 lcnecrkxfem_l = 0
1396 lcncnd_l = 0
1397 ENDIF
1398
1399
1400
1401 IF (nfxbody>0) THEN
1402
1404 . fxbipm, fxbnod, nodlocal, iparg, fxbelm,
1405 . lennod_l, lenmod_l, lenelm_l, lensig_l, p-1,
1406 . lengrvi_l, fxbgrvi )
1407
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))
1411
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)
1417
1419 . lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l,
1420 . lenmcd_l, lengrvr_l, fxbipm_l, p-1 )
1421
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))
1426
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)
1432 ELSE
1433 lennod_l =0
1434 lenmod_l =0
1435 lenelm_l =0
1436 lensig_l =0
1437 lengrvi_l=0
1438 lenglm_l =0
1439 lencp_l =0
1440 lenlm_l =0
1441 lenfls_l =0
1442 lendls_l =0
1443 lenmcd_l =0
1444 lengrvr_l=0
1445 ENDIF
1446
1447
1448
1449 leibuf_l = 0
1450 IF (neig>0)
1451 .
CALL c_eig(eigipm , eigibuf , eigrpm, nodlocal, eigipm_l,
1452 . eigibuf_l, leibuf_l)
1453
1454
1455
1456 n_seatbelt_l = 0
1457 n_seatbelt_2d_l = 0
1458 n_slipring_l = 0
1459 n_retractor_l = 0
1460 n_anchor_remote_l = 0
1461 n_anchor_remote_send_l = 0
1462 off = numels + numelq + numelc + numelt + numelp
1463
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)
1468 ENDIF
1469
1470 IF (nflow>0)
CALL m_flow(iflow, iflow_l, nodlocal, p, memflow)
1471
1472
1473
1476 nodlocal_mgm(1:numnod) = nodlocal(1:numnod)
1477 max_id = maxval(nodlocal(1:numnod))
1478
1480 max_id = max_id + 1
1481 nodlocal_mgm(numnod + i) = max_id
1482 ENDDO
1483
1484
1485
1486
1487
1490 ELSE
1492 . monvol, nodlocal, ixs, p, numnod,fvmain)
1493 ENDIF
1494 ENDIF
1495
1496
1497
1498 nfasolfr_l= 0
1499 IF(nfasolfr/=0 .AND. numels_l/=0)THEN
1500 CALL c_fasolfr(fasolfr, cep, p-1, cel, nfasolfr_l)
1501 ENDIF
1502
1503
1504
1505 nsegquadfr_l= 0
1506 IF(nsegquadfr/=0 .AND. numelq_l/=0)THEN
1507 CALL c_segquadfr(segquadfr, cep, p-1, cel, nsegquadfr_l)
1508 ENDIF
1509
1510
1511
1512 nconv_l = 0
1513 IF (glob_therm%NUMCONV > 0)
1514 .
CALL c_iconv(ibcv,cep,p-1,nconv_l,glob_therm%NUMCONV,glob_therm%NICONV)
1515
1516
1517
1518 nradia_l = 0
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)
1521
1522
1523
1524 nfxflux_l = 0
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)
1527
1528
1529
1530 nfxtemp_l = 0
1531 IF (glob_therm%NFXTEMP > 0)
1532 .
CALL c_ibft(ibft,glob_therm%NFXTEMP,nfxtemp_l,p-1,dd_lagf,glob_therm%NIFT)
1533
1534
1535
1536 lag_sec=0
1537 IF(lag_ncf+lag_ncl > 0)
1538 .
CALL c_lag(ipari,nprw,lag_sec)
1539
1540
1541
1542 numelcpxfe_l = 0
1543 numnodpxfe_l = 0
1544 IF(iplyxfem > 0 ) THEN
1545 off = numels + numelq
1546
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)
1550 ENDIF
1551
1552
1553
1554 numelcrkxfe_l = 0
1555 numelccrkxfe_l = 0
1556 numeltgcrkxfe_l = 0
1557 numnodcrkxfe_l = 0
1558 numedges_l = 0
1559 nbddedge_l= 0
1560 incrkxfem_l=0
1561 ielxfemc_l=0
1562 ielxfemtg_l=0
1563 nod_xfe_l = 0
1564 IF(icrack3d > 0)THEN
1565 ALLOCATE(tagedge(numedges))
1566 tagedge = 0
1567
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
1573 IF(numeltg > 0)THEN
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)
1578 END IF
1579 numelcrkxfe_l = numelccrkxfe_l + numeltgcrkxfe_l
1580
1581 IF(numelcrkxfe_l>0)THEN
1582 ALLOCATE(nodglobxfe(4*numelcrkxfe_l*nlevmax))
1583 nodglobxfe = 0
1584 ENDIF
1585
1586 ALLOCATE(index_crkxfem(ncrkxfe))
1587 ALLOCATE(nodlevxf_l(ncrkxfe))
1588 index_crkxfem = 0
1589 nodlevxf_l = 0
1590
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)
1595
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))
1602 iedgecrk_l = 0
1603 ibordedge_l = 0
1604 nodedge_l = 0
1605 iedgesh4_l = 0
1606 iedgesh3_l = 0
1607 iedge_l = 0
1608 edgelocal = 0
1609 edgeglobal = 0
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)
1616 ELSE
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))
1628 ENDIF
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 )
1635
1636
1637
1638 llcfield_l=0
1639 llloadp_l=0
1640 IF (nloadc>0)
1641 .
CALL c_icfield(icfield,lcfield,llcfield_l,p-1)
1642 IF (nloadp>0) THEN
1643 CALL c_iloadp(iloadp,lloadp,llloadp_l,p-1)
1644 nisky0_l=nisky0_l+4*llloadp_l
1645 ENDIF
1646
1647
1648
1649 isumnig3d_l = 0
1650 IF (numelig3d>0)
1651 .
CALL c_elig3d(kxig3d,p-1,isumnig3d_l)
1652
1653
1654
1655 ns10e_l = 0
1656 nbddcndm = 0
1657 msndp(p) = zero
1658 IF (ns10e>0)
1659 .
CALL c_icnds10(icnds10,itagnd,p-1,ns10e_l,nbddcndm,ms,msndp(p))
1660
1661
1662
1663 nbcscyc_l = 0
1664 llbcscyc_l = 0
1665 IF (nbcscyc>0)
1666 .
CALL c_ibcscyc(ibcscyc,lbcscyc,p-1 ,nbcscyc_l,llbcscyc_l)
1667
1668
1669
1670 numsh4n_l = 0
1671 numsh3n_l = 0
1672 IF (ndrape > 0) THEN
1673 off = numels + numelq
1675 CALL c_drape(drapeg%INDX,cep(
min(off+1,len_cep)),p-1,
1676 . numelc,numsh4n_l)
1677 ENDIF
1678
1679 off = off + numelc + numelt + numelp + numelr
1680
1682 CALL c_drape(drapeg%INDX(numelc+1),cep(
min(off+1,len_cep)),p-1,
1683 . numeltg,numsh3n_l)
1684 ENDIF
1685 ENDIF
1686
1687
1688
1689 ncload_l = 0
1690 IF (loads%NLOAD_CLOAD>0)
1691 .
CALL c_nloads(cep,p-1,loads%NLOAD_CLOAD,ncload_l)
1692
1693
1694
1695 npload_l = 0
1696 IF (loads%NLOAD_PLOAD>0)
1697 .
CALL c_nloads(cep,p-1,loads%NLOAD_PLOAD,npload_l)
1698
1699
1700
1701 ninivelt_l = 0
1702 IF (loads%NINIVELT>0) THEN
1703 CALL c_inivell(
1704 . ngrnod, ngrbric, ngrquad, ngrsh3n,
1705 . igrnod, igrbric, igrquad
1706 . p-1 , cep, scep, nodlocal,
1707 . numnod,loads%NINIVELT,loads%INIVELT,ninivelt_l)
1708 ENDIF
1709
1710
1711
1712 ndamp_vrel_l = 0
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)
1716
1717
1718
1719 len_ia = 0
1720 len_am = 0
1721 ir_ = p
1722 WRITE(chrun,'(I4.4)')irun
1723 WRITE(procnam,'(I4.4)')p
1724 filnam = rootnam(1:rootlen)//'_'//chrun//'_'//procnam//'.rst'
1727
1728 DO i=1,len_tmp_name
1729 ifilnam(i)=ichar(tmp_name(i:i))
1730 ENDDO
1731 DO i=1,rootlen+14
1732 ifilnam2(i)=ichar(filnam(i:i))
1733 ENDDO
1735 CALL open_c(ifilnam,len_tmp_name,0)
1736#ifdef debug_rst
1737 IF(flush_rst_to_txt) THEN
1738 OPEN(unit=777+itask,file=trim(filnam)//'.txt'
1739 . ,status='UNKNOWN',form='FORMATTED')
1740 ENDIF
1741#endif
1743 len_ia = len_ia + rootlen+14
1744
1745
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 +
1751 . niskyi2_l +
1752 . nnmv_l + nnmvc_l + nskyll_l + nskyrbm_l + nskyi18_l +
1753 . nskyrbmk_l + 4*nradia_l + 4*nfxflux_l + 4*llloadp_l
1754
1755 IF (i2nsnt>0) THEN
1756 skippon_l = skippon_l + numnod_l +1
1757 ENDIF
1758
1759
1760
1761
1762
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)
1806
1807
1808 CALL wrcomr(lmxvrea,lvarrea,tabvrea,msndp(p),p,interfaces%PARAMETERS,
1809 . unitab ,glob_therm, output)
1810
1811
1812
1814 ititle(i) = ichar( names_and_titles%TITLE(i:i) )
1815 ENDDO
1817
1818
1819
1820
1821 tabhead(1) =iradios
1822
1823 tabhead(2) =iresfil
1824
1825 tabhead(3) =itestv
1826
1827 tabhead(4) =irun
1828
1829 IF(irun==0)THEN
1830 icodrun =0
1831 ELSE
1832 icodrun =2
1833 ENDIF
1834 tabhead(5) =icodrun
1835
1836 tabhead(6) =codvers
1837
1838 tabhead(7) =iminver
1839
1840 tabhead(8) =isrcver
1841
1842 tabhead(9) =invers
1843
1844 IF(irun==0)THEN
1845 scodver=codvers
1846 sminver=iminver
1847 ssrcver=isrcver
1848 ENDIF
1849
1850 tabhead(10)=scodver
1851
1852 tabhead(11)=sminver
1853
1854 tabhead(12)=ssrcver
1855
1856 tabhead(13)=invstr
1857
1858 tabhead(14)=lvarint
1859 tabhead(15)=lvarrea
1860
1863 len_ia = len_ia + lheader + 1
1864
1866 len_ia = len_ia + lvarint
1867
1868#ifdef DNC
1869 CALL wrdum_info()
1870#endif
1871 CALL checksum_write_starter_restart(output)
1872
1873
1875 len_ia = len_ia + numnod_l
1877 len_ia = len_ia + 2*numnod_l
1878
1879
1880
1881 len_g = npropgi*numgeo
1882 len_m = npropmi*nummat
1883 CALL w_inloc(icode,nodglob,numnod_l,len_ia)
1884
1885
1886 IF(numsph>0.AND.nspcond>0)THEN
1887 CALL w_iskewsp(iskew,nodglob,numnod_l,numsph_l,cepsp,p-1,len_ia)
1888 ELSE
1889 CALL w_inloc(iskew,nodglob,numnod_l,len_ia)
1890 END IF
1892 1 iskn,numskw,
min(iun,nspcond)*numsph_l,iframe,numfram,nodlocal,
1893 2 p ,numnod,cepsp ,len_ia )
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)
1900
1901
1902
1903 off = 0
1904 CALL w_ieloc(iparts,cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_ia)
1905 off = off + numels
1906 CALL w_ieloc(ipartq,cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_ia)
1907 off = off + numelq
1908 CALL w_ieloc(ipartc,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_ia)
1909 off = off + numelc
1910 CALL w_ieloc(ipartt,cep(
min(off+1,len_cep)),p-1,numelt,numelt_l,len_ia)
1911 off = off + numelt
1912 CALL w_ieloc(ipartp,cep(
min(off+1,len_cep)),p-1,numelp,numelp_l,len_ia)
1913 off = off + numelp
1914 CALL w_ieloc(ipartr,cep(
min(off+1,len_cep)),p-1,numelr,numelr_l,len_ia)
1915 off = off + numelr
1916 CALL w_ieloc(iparttg,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_ia)
1917 off = off + numeltg
1918 CALL w_ieloc(ipartx,cep(
min(off+1,len_cep)),p-1,numelx,numelx_l,len_ia)
1919 off = off + numelx
1920 CALL w_ieloc(ipartsp,cepsp,p-1,numsph,numsph_l,len_ia)
1921
1922 CALL w_ieloc(ipartig3d,cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l,len_ia)
1923
1924 IF(p==1)THEN
1926 len_ia = len_ia + lnom_opt
1927 ENDIF
1928
1929 CALL python_serialize(python,buffer, buffer_size)
1931
1933 len_ia = len_ia + 3*nfunct+1
1934
1935
1936
1937
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)
1941
1942
1943
1944 ishadow = 0
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
1954 ELSE
1955 ALLOCATE( id_global_vois(0) )
1956 ALLOCATE(idglob_l(0))
1957 ALLOCATE(uidglob_l(0))
1958 ALLOCATE( face_vois(0) )
1959 ENDIF
1960 numel =
max(numels,numelq,numeltg)
1961 IF(nsvois>0)
1962 + ALLOCATE(ixsf(nsvois*nixs))
1963 IF(nqvois>0)
1964 + ALLOCATE(ixqf(nqvois*nixq))
1965 IF(ntgvois>0)
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)
1972
1974 len_ia = len_ia + nixtg * ntgvois
1975 IF (ntgvois > 0)
1976 + DEALLOCATE(ixtgf)
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)
1980 ENDIF
1981 ENDIF
1982
1983
1984
1985 off = off+numeltg3
1986 CALL w_ixbloc(ixtg6,3,4,cep(
min(off+1,len_cep)),p-1,
1987 + numeltg6,numeltg6_l,nodlocal,len_ia)
1988
1989
1990
1991
1992 off = 0
1993 CALL w_ixloc(ixs,nixs,8,cep(
min(off+1,len_cep)),p-1,
1994 + numels,numels_l,nodlocal,len_ia)
1995
1996 IF (iale+ieuler+glob_therm%ITHERM+ialelag > 0) THEN
1998 len_ia = len_ia + nixs*nsvois
1999 IF(nsvois>0)
2000 + DEALLOCATE(ixsf)
2001 ENDIF
2002
2003
2004
2005 off = off+numels8
2006 CALL w_ixaloc(ixs10,6,cep(
min(off+1,len_cep)),p-1,
2007 + numels10,numels10_l,nodlocal,len_ia)
2008 off = off+numels10
2009 CALL w_ixaloc(ixs20,12,cep(
min(off+1,len_cep)),p-1,
2010 + numels20,numels20_l,nodlocal,len_ia)
2011 off = off+numels20
2012 CALL w_ixaloc(ixs16,8,cep(
min(off+1,len_cep)),p-1,
2013 + numels16,numels16_l,nodlocal,len_ia)
2014 off = off+numels16
2015 CALL w_ixloc(ixq,nixq,4,cep(
min(off+1,len_cep)),p-1,
2016 + numelq,numelq_l,nodlocal,len_ia)
2017 off = off+numelq
2018
2019
2020
2021 IF (iale+ieuler+glob_therm%ITHERM+ialelag > 0) THEN
2023 len_ia = len_ia + nixq*nqvois
2024 IF(nqvois>0)
2025 + DEALLOCATE(ixqf)
2026 ENDIF
2027
2028 CALL w_ixloc(ixc,nixc,4,cep(
min(off+1,len_cep)),p-1,
2029 + numelc,numelc_l,nodlocal,len_ia)
2030 off = off+numelc
2031 CALL w_ixloc(ixt,nixt,2,cep(
min(off+1,len_cep)),p-1,
2032 + numelt,numelt_l,nodlocal,len_ia)
2033 off = off+numelt
2034 CALL w_ixloc(ixp,nixp,3,cep(
min(off+1,len_cep)),p-1,
2035 + numelp,numelp_l,nodlocal,len_ia)
2036 off = off+numelp
2037 CALL w_ixloc(ixr,nixr,3,cep(
min(off+1,len_cep)),p-1,
2038 + numelr,numelr_l,nodlocal,len_ia)
2039
2040
2041
2042
2043 CALL w_inloc(itab,nodglob,numnod_l,len_ia)
2044 CALL w_itabm1(itabm1,itabm1(numnod+1),nodglob,nodlocal,numnod_l,
2045 . itab,len_ia)
2046
2047
2048
2049 IF(ngjoint/=0 .AND. p == 1) THEN
2050 CALL w_gjoint(gjbufi,ngjoint,lkjni,nodlocal,len_ia)
2051 END IF
2052
2053
2054
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)
2058
2059 itmp = SIZE(ee_connect_l%iad_connect)
2061 len_ia = len_ia + 1
2062 CALL write_i_c(ee_connect_l%iad_connect, itmp)
2063 len_ia = len_ia + itmp
2064
2065 itmp = SIZE(ee_connect_l%connected)
2067 len_ia = len_ia + 1
2068 CALL write_i_c(ee_connect_l%connected, itmp)
2069 len_ia = len_ia + itmp
2070
2071 itmp = SIZE(ee_connect_l%type)
2073 len_ia = len_ia + 1
2075 len_ia = len_ia + itmp
2076
2077 itmp = SIZE(ee_connect_l%iface2)
2079 len_ia = len_ia + 1
2080 CALL write_i_c(ee_connect_l%iface2, itmp)
2081 len_ia = len_ia + itmp
2082
2083
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
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
2089
2090
2091 DEALLOCATE(id_global_vois)
2092 DEALLOCATE(face_vois)
2093
2094 ALLOCATE(elemid_l(numel))
2095
2096
2097
2098 IF(ale_connectivity%has_ne_connect)THEN
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)
2105 ENDIF
2106
2107 IF(ale_connectivity%has_nn_connect .OR. ale_connectivity%has_ne_connect)THEN
2109 . elemid_l,numnod,nodglob,nodlocal,numnod_l,len_ia,
ale%GRID%NWALE)
2110 ENDIF
2111
2112 DEALLOCATE(elemid_l)
2113 ENDIF
2114
2115 ns_diff = 0
2116 IF (multi_fvm%NS_DIFF) ns_diff = 1
2118 len_ia = len_ia + 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
2124 ENDIF
2125
2126
2127
2128 IF(nmult > 0) THEN
2131 len_ia = len_ia +sifill + sims
2132 END IF
2133
2134
2135
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,
2140 . numnod_l )
2142 . numelq,numelc,numelt,numelp,numelr,
2143 . nodlocal,scel,cel,ltitr,lenisurf_l,
2144 . nspmd,igrsurf,igrsurf_proc)
2145
2147
2148
2149
2150 IF (numelx>0)
2151 .
CALL w_elmx(kxx,numelx_l,isumnx_l,ixx,cep,
2152 + p-1,nodlocal,len_ia)
2153
2154
2155
2156
2157 IF (numsph>0) THEN
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)
2164 ENDIF
2165
2166
2167
2168 IF (nconld>0)THEN
2169 CALL w_ibcl(ibcl,cep,p-1,nodlocal,nconld_l,len_ia)
2170 ENDIF
2171
2172
2173
2174 IF (nintloadp>0) THEN
2176 len_ia = len_ia + ninter + 1
2177 CALL write_i_c(loadpinter,s_loadpinter )
2178 len_ia = len_ia + s_loadpinter
2179 ENDIF
2180
2181
2182
2183 IF (nfxvel>0)
2184 .
CALL w_ibfv(ibfv,nfxvel,nodlocal,len_ia,
2185 . nfxvel_l,p-1)
2186
2187
2188
2189 IF (nlaser>0.AND.p==1)
2190 .
CALL w_las(las,nlaser,nodlocal,len_ia)
2191
2192
2193
2194 nebcs_fvm = 0
2196 CALL write_i_c(ebcs_tab_loc%nebcs_fvm, 1)
2199
2200
2202 CALL ebcs_tab%write_type_data(len_ia, len_am)
2203 ENDIF
2204
2205
2206
2207
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)
2213 ENDIF
2214 ENDDO
2215
2216
2217 CALL ebcs_tab_loc%destroy()
2218
2219
2220
2221
2222 nebcs_parallel = 0
2224
2225
2226 is_ebcs_parallel = .false.
2227 IF(ebcs_tab%tab(ii)%poly%type==10 .OR. ebcs_tab%tab(ii)%poly%type==11)is_ebcs_parallel=.true.
2228 IF(.NOT.ebcs_tab%tab(ii)%poly%is_multifluid .AND. 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 IF( nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj)) > 0 .AND.
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))
2235 ENDIF
2236 ENDDO
2237 IF (.NOT. 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)
2240 ENDIF
2241
2242
2243 ELSEIF (.NOT.(ebcs_tab%tab(ii)%poly%is_multifluid).AND.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))
2246 ENDDO
2247 IF (.NOT. 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)
2250 ENDIF
2251 ENDIF
2252
2253 ENDDO
2254
2255
2256
2257
2258 IF (naccelm>0)
2259 .
CALL w_lacc(laccelm,naccelm,nodlocal,len_ia,cel,cep,p-1)
2260
2261
2262
2263 IF (nbgauge>0)
2264 .
CALL w_lgau(lgauge,nbgauge,nodlocal,len_ia,cel,cep,p-1)
2265
2266
2267
2268 IF (nlink>0)
2269 .
CALL w_llink(nnlink,lllink,nodlocal,p-1,nllink_l,len_ia)
2270
2271
2272
2273
2275
2276
2277
2278 CALL w_iparg(iparg,p-1,ngroup_l,len_ia)
2279
2280
2281
2282 CALL write_i_c(dd_iad,(nspmd+1)*nspgroup)
2283 len_ia = len_ia + (nspmd+1)*nspgroup
2284
2285
2286
2287 IF (ngrav>0)
2288 .
CALL w_igrav(igrav,lgrav,nodlocal,p-1,llgrav_l,len_ia,numnod_l)
2289
2290
2291
2292 IF (nr2rlnk>0) THEN
2294 len_ia = len_ia + nr2r*nr2rlnk
2295 END IF
2296
2297
2298
2299 IF (nibvel>0)
2300 .
CALL w_ibvel(ibvel,lbvel,nodlocal,p-1,llbvel_l,len_ia)
2301
2302
2303
2304 IF (nrbe2>0) THEN
2305 IF(nbddrbe2>0) THEN
2306 ALLOCATE(itabrbe2m(numnod_l))
2307 ELSE
2308 ALLOCATE(itabrbe2m(1))
2309 ENDIF
2310 CALL w_irbe2(irbe2 ,lrbe2 ,nodlocal ,p-1 ,
2311 . llrbe2_l,itabrbe2m,nbddrbe2,numnod_l,len_ia )
2312 ELSE
2313 ALLOCATE(itabrbe2m(1))
2314 ENDIF
2315
2316
2317
2318 IF (nrbe3>0) THEN
2319 IF(nbddrbe3m>0) THEN
2320 ALLOCATE(itabrbe3m(numnod_l))
2321 ELSE
2322 ALLOCATE(itabrbe3m(1))
2323 ENDIF
2324 CALL w_irbe3(irbe3 ,lrbe3 ,nodlocal ,p-1 ,
2325 . llrbe3_l,itabrbe3m,nbddrbe3m,numnod_l,len_ia)
2326 ELSE
2327 ALLOCATE(itabrbe3m(1))
2328 ENDIF
2329
2330
2331
2332 IF (nactiv>0)
2334 len_ia = len_ia + lactiv*nactiv
2335
2336
2337
2338 IF (nummpc>0.AND.p==1)THEN
2339 CALL w_ibmpc(ibmpc,nummpc,lmpc,nodlocal,lag_sec,len_ia)
2340 END IF
2341
2342
2343
2344 CALL w_inloc(kinet,nodglob,numnod_l,len_ia)
2345
2346
2347
2348 IF(nfasolfr_l/=0)THEN
2349 CALL w_fasolfr(fasolfr ,cep ,p-1 ,cel, nfasolfr_l,
2350 . len_ia )
2351 ENDIF
2352
2353
2354
2355 IF(nsegquadfr_l/=0)THEN
2356 CALL w_segquadfr(segquadfr ,cep ,p-1 ,cel, nsegquadfr_l,
2357 . len_ia )
2358 ENDIF
2359
2360
2361
2362 IF(ninter>0) THEN
2363 IF(nbddi2m>0)THEN
2364 ALLOCATE(itabi2m(numnod_l))
2365 ELSE
2366 ALLOCATE(itabi2m(1))
2367 ENDIF
2368
2369
2371
2372
2373 ALLOCATE(intbuf_tab_l(ninter))
2374
2375
2377
2378
2379 flag_allocate = 0
2380
2381
2383 . i11flag, flag_allocate, p-1,intbuf_fric_tab)
2384
2385
2387
2389
2390 IF (i22len_l>0)THEN
2391
2393 ENDIF
2394
2395
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)
2403
2404
2405 DEALLOCATE(intbuf_tab_l)
2406
2408 ELSE
2409 ALLOCATE(itabi2m(1))
2410 ENDIF
2411
2412
2413
2414
2415 IF(nrwall > 0)
2416 +
CALL w_rwall(nprw ,lprw ,rwl ,
2417 + cep ,cel ,nodlocal,p-1 ,
2418 + nslaw_l,neslaw_l ,numnod_l,len_ia)
2419
2420
2421
2422 IF(nconx+nexmad/=0)
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 )
2426
2427
2428
2429 IF(nrbykin+nrbylag>0)
2430 +
CALL w_rbyk(npby,lpby,nodlocal,p-1,nslarb_l,len_ia)
2431
2432
2433
2434 IF(nrivet>0)
2435 +
CALL w_irivet(ixri,nodlocal,p-1,len_ia)
2436
2437
2438
2439 IF(nsect>0)
2440 +
CALL w_sectio(nstrf ,cep ,cel,p-1,
2441 2 nstrf_l,nodlocal,len_ia)
2442 IF(nsect>0) THEN
2444 len_ia = len_ia + snom_sect
2445 ENDIF
2446
2447
2448
2449 IF(njoint>0) THEN
2451 . nodlocal,ljoint_l,len_ia,numnod_l)
2453 + nodlocal,ljoint_l,len_ia)
2454 ENDIF
2455
2456
2457
2458 IF(numpor>0)THEN
2460 ENDIF
2461
2462
2463
2464 IF(nvolu>0)THEN
2465
2466 CALL w_monvol(monvol,lenvolu,nodlocal,len_ia,monvol_l,itab,t_monvol,p)
2467 ENDIF
2468
2469
2470
2471 IF(lag_ncf>0.AND.p==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
2474 END IF
2475
2476
2477
2478 IF (ns10e_l > 0) THEN
2479 IF(nbddcndm > 0) THEN
2480 ALLOCATE(itabcndm(numnod_l))
2481 ELSE
2482 ALLOCATE(itabcndm(1))
2483 ENDIF
2484 CALL w_icnds10(icnds10,itagnd,p-1,nodlocal,ns10e_l,
2485 . itabcndm,nbddcndm,numnod_l,len_ia ,itab)
2486 ELSE
2487 ALLOCATE(itabcndm(1))
2488 ENDIF
2489
2490
2491
2493 2 nthgrp0 ,nthgrp ,nthgrp01 ,nthgrp1 ,
2494 3 scel ,numsph ,numnod ,ncluster ,
2495 4 celsph ,numloccluster ,nbr_th_monvol)
2496
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
2501 . output%TH%TH_SURF,numnod ,nibcld,nconld ,len_cep,
2502 . off )
2503 ENDIF
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
2508 . output%TH%TH_SURF,numnod ,sizloadp,nloadp,len_cep,
2509 . off )
2510 ENDIF
2511
2512
2513
2514
2515 numel =
max(numels,numelq)
2516 numel_l2 =
max(numels_l,numelq_l)
2517 IF (multi_fvm%IS_USED .AND. n2d /= 0 .AND. numeltg /= 0) THEN
2518 numel =
max(numel, numeltg)
2519 numel_l2 =
max(numel_l2, numeltg_l)
2520 ENDIF
2521 nbcfd =
max(nrcvvois,nsndvois,nervois,nesvois,nsegfl_l)
2522 IF(numskw>0)
CALL split_skew(p,iskwp_l,iskwp,tag_skn,multiple_skew)
2523
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 ,
2533 9 nsegfl_l,iparg ,
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)
2548 DEALLOCATE(itabi2m)
2549 DEALLOCATE(itabrbe3m)
2550 DEALLOCATE(itabrbe2m)
2551 DEALLOCATE(itabcndm)
2552 DEALLOCATE(iskwp_l)
2553
2554
2555
2556 IF(ipari0/=0)
2558 1 addcne
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
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
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)
2585
2586 ! -------------------
2587 CALL ebcs_tab_loc_2%destroy()
2588
2590 len_ia = len_ia + len_g
2592 len_ia = len_ia + len_m
2593
2594
2595
2596 IF(kcontact/=0)THEN
2597 CALL w_inloc(icontact,nodglob,numnod_l,len_ia)
2598 ENDIF
2599
2600 len_s=npart
2602 len_ia = len_ia + len_s
2603
2604
2605
2606 IF(nadmesh /= 0)THEN
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)
2615 len_ia = len_ia + len_adm
2616 len_adm=abs(lsh3trim)
2618 len_ia = len_ia + len_adm
2619 END IF
2620
2621
2622
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)
2627
2628
2630
2631 IF(numsph>0.AND.nspmd>1)THEN
2633 ENDIF
2634
2635
2636
2637 IF(nintstamp /= 0)THEN
2639 len_ia=len_ia+lintstamp
2640 END IF
2641
2642
2643
2644 IF(ninterfric > 0) THEN
2645 CALL intfric_wresti(intbuf_fric_tab,ninterfric)
2646 ENDIF
2647
2648
2649
2650 IF(ntable /= 0)THEN
2652 len_ia=len_ia+ltable
2653 END IF
2654
2655
2657 len_ia = len_ia + sithvar
2658
2659
2660
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)
2664
2665
2666
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)
2672 ENDIF
2673
2674
2675
2676
2677 IF (loads_per_proc%NLOAD_CYL > 0) THEN
2678 CALL write_pcyl(loads_per_proc%LOAD_CYL,loads_per_proc%NLOAD_CYL,nodlocal)
2679 ENDIF
2680
2681
2682 IF(icrack3d > 0)THEN
2683
2684
2685
2686 CALL w_inloc(ibordnode,nodglob,numnod_l,len_ia)
2687
2688
2689
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
2694
2696 len_ia = len_ia + 2*numedges_l
2698 len_ia = len_ia + numedges_l
2699
2700
2701
2703 len_ia = len_ia + nod_xfe_l
2704 IF(ALLOCATED(nodglobxfe))DEALLOCATE(nodglobxfe)
2705 END IF
2706
2707
2708
2709 IF (numelig3d>0)
CALL w_elig3d(kxig3d,numelig3d,isumnig3d_l,ixig3d,p-1,nodlocal,len_ia)
2710
2711
2712
2713 CALL w_ieloc(tag_skins6,cep,p-1,numels,numels_l,len_ia)
2714
2715
2716
2717 IF (nbcscyc_l > 0)
CALL w_ibcscyc(ibcscyc,lbcscyc,nodlocal ,p-1,llbcscyc_l,nbcscyc_l,len_ia )
2718
2719
2720
2721 CALL w_bcs_proc(bcs_per_proc,cel,scel,len_ia,len_am)
2722
2723
2724
2725 len_am = 0
2727 len_am = len_am + lvarrea
2728
2729
2730
2731
2732
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)
2742 IF(iroddl>0) THEN
2743 CALL w_r3nloc(vr,nodglob,numnod_l,len_am)
2744 IF(isecut > 0 .OR. iisrot > 0 .OR. impose_dr /= 0 .OR. idrot == 1)
CALL w_r3nloc(dr,nodglob,numnod_l,len_am)
2745 ENDIF
2746
2747
2748
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)
2754
2755
2756
2757 IF (ndamp>0) THEN
2759 len_am = len_am + nrdamp*ndamp
2760 IF (sdamp > 0) THEN
2761 IF(iroddl>0)THEN
2762 CALL w_rnnloc(damp,nodglob,numnod_l,6,len_am)
2763 ELSE
2764 CALL w_r3nloc(damp,nodglob,numnod_l,len_am)
2765 ENDIF
2766 ENDIF
2767 ENDIF
2768
2769
2770
2771 CALL w_rnloc(ms,nodglob,numnod_l,len_am)
2772
2773
2774 IF(n2d>0)THEN
2775 CALL w_rnloc(ms,nodglob,numnod_l,len_am)
2776 ENDIF
2777
2778 IF(iroddl>0)
2779 .
CALL w_rnloc(in,nodglob,numnod_l,len_am)
2780
2781
2782
2783 IF(nfunct/=0)THEN
2785 len_am = len_am + npts
2786 ENDIF
2787
2788
2789
2791 len_am = len_am + npropm*nummat
2792
2794
2795
2796
2797
2798
2799
2800
2801
2802
2804 len_am = len_am + len
2805
2806
2807
2808 CALL write_db(skew,lskew*(numskw+1))
2809 len_am = len_am + lskew*(numskw+1)
2810 IF(numsph>0.AND.nspcond>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)
2818 . skew(lskew*(numskw+1)+1),len_am)
2819 ENDIF
2820 CALL write_db(xframe,nxframe*(numfram+1))
2821 len_am = len_am + nxframe*(numfram+1)
2822
2823
2824
2825 IF(numpor==0)THEN
2827 ELSE
2828 CALL w_geo(geo,nodlocal)
2829 END IF
2830 len_am = len_am + npropg*numgeo
2831
2832
2833
2834 off = 0
2835 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_am)
2836 off = off + numels
2837 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_am)
2838 off = off + numelq
2839 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2840 shf = off + numelc
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)
2843
2844
2845
2847 len_am = len_am + lbufmat
2848 IF(iresp == 1)THEN
2849
2850 ALLOCATE (rbufgeo(lbufgeo))
2851 rbufgeo(1:lbufgeo)=bufgeo(1:lbufgeo)
2853 ELSE
2855 ENDIF
2856 len_am = len_am + lbufgeo
2858 len_am = len_am + lbufsf
2859
2860 IF(nummpc>0.AND.p==1)THEN
2862 len_am = len_am + lmpc
2863 END IF
2864 IF(ngjoint>0.AND.p==1)THEN
2865 CALL write_db(gjbufr,lkjnr*ngjoint)
2866 len_am = len_am + lkjnr*ngjoint
2867 END IF
2868
2869
2870
2871 IF(iale/=0) THEN
2872 CALL w_r3nloc(w,nodglob,numnod_l,len_am)
2873 ENDIF
2874 IF(ieuler * (1 - imulti_fvm)/=0)THEN
2875 IF(n2d==0) THEN
2876 off = 0
2878 . veul,lveul,cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_am)
2879 ELSE
2880 off = numels
2881 CALL w_reloc2(veul,10,cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_am)
2882 ENDIF
2883 ENDIF
2884
2885
2886
2887 IF (multi_fvm%IS_USED) THEN
2888 CALL write_db(multi_fvm%PRES_SHIFT, 1)
2889 IF (n2d == 0) THEN
2890 CALL write_db(multi_fvm_vel_l(1, 1:numels_l),
2891 . numels_l)
2892 CALL write_db(multi_fvm_vel_l(2, 1:numels_l),
2893 . numels_l)
2894 CALL write_db(multi_fvm_vel_l(3, 1:numels_l),
2895 . numels_l)
2896 ELSE
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)
2903 ENDIF
2904 ENDIF
2905
2906
2907
2908 IF(nmult > 0) THEN
2909 CALL w_rfilloc(fill,nodglob,numnod,numnod_l,nmult,len_am)
2910 CALL w_rfilloc(dfill,nodglob,numnod,numnod_l,nmult,len_am)
2912 len_am = len_am + salph
2913 END IF
2914 IF(
ale%GRID%NWALE==2)
THEN
2915 CALL w_r3nloc(wb,nodglob,numnod_l,len_am)
2916 ELSEIF(
ale%GRID%NWALE==4)
THEN
2918 CALL w_rnloc(wma,nodglob,numnod_l,len_am)
2919 ENDIF
2920 IF(ilag==1.AND.(iale+ieuler)/=0)THEN
2921 CALL w_r3nloc(dsav,nodglob,numnod_l,len_am)
2922 CALL w_r3nloc(asav,nodglob,numnod_l,len_am)
2923 ENDIF
2924
2925
2926
2927 IF (numsph>0)THEN
2928 CALL w_rsph(spbuf ,numsph_l,cepsp,p-1,vsphio,len_am, ssphveln_l )
2929 ENDIF
2930
2931
2932
2933 IF(iale == 1 .OR. ieuler == 1 .OR. ialelag == 1) THEN
2934 CALL w_rnloc(msnf,nodglob,numnod_l,len_am)
2935 ENDIF
2936
2937
2938
2939
2940
2941 IF(nconld>0)
CALL w_fac(fac,cep,p-1,nconld_l,len_am)
2942
2943
2944
2945 IF(nfxvel_l>0)
CALL w_fixvel(vel,nfxvel,ibfv,nfxvel_l,len_am,p-1)
2946
2947
2948
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)
2951
2952
2953
2955
2957
2959 . poin_part_shell,poin_part_tri,poin_part_sol,
2960 . mid_pid_shell,mid_pid_tri,mid_pid_sol,
2961 . ipartc,iparttg,iparts)
2962
2963
2964
2965 IF(isigi==2.OR.isigi==4)
2966 .
CALL w_r3nloc(fzero,nodglob,numnod_l,len_am)
2967 IF(iabs(isigi)==5)THEN
2968 off = numels+numelq
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
2971 shf = numelc*3*4
2972 CALL w_reloc2(fzero(shf+1),3*4,cep(
min(off+1,len_cep)),p-1,numeltg,
2973 . numeltg_l,len_am)
2974 ENDIF
2975
2976
2977
2978 IF(nlaser>0.AND.p==1)THEN
2980 len_am = len_am + lenxlas
2981 ENDIF
2982
2983
2984
2985 IF(naccelm>0)THEN
2986 CALL write_db(accelm,naccelm*llaccelm)
2987 len_am = len_am + naccelm*llaccelm
2988 ENDIF
2989
2990
2991
2992 IF(nbgauge>0)THEN
2993 CALL write_db(gauge,nbgauge*llgauge)
2994 len_am = len_am + nbgauge*llgauge
2995 ENDIF
2996
2997
2998
3000
3001
3002
3003 IF(nibvel>0)
3005 len_am = len_am + 3*nibvel
3006
3007
3008
3009 IF(nrbe3>0)
3010 .
CALL w_frbe3(irbe3 ,lrbe3 ,p-1 ,llrbe3_l,
3011 . frbe3 ,frbe3(3*slrbe3+1),len_am,nrbe3pen_l )
3012
3013
3014
3015 IF (nactiv > 0) THEN
3016 CALL write_db(factiv,lractiv*nactiv)
3017 len_am = len_am + lractiv*nactiv
3018 ENDIF
3019
3020
3021
3022 IF(ngrav>0)
3023 .
CALL write_db(gravfac,lfacgrv*ngrav)
3024 len_am = len_am + lfacgrv*ngrav
3025
3026
3027
3028 IF(ifrwv>0)
3029 .
CALL w_rnloc(fr_wave,nodglob,numnod_l,len_am)
3030
3031
3032
3033 CALL w_failwave(failwave,nodglob,numnod,numnod_l,len_am,itab)
3034
3035
3036
3037
3039 . nloc_dmg ,numnod_l ,nodglob ,nodlocal ,cel ,
3040 . cep ,p ,ixs ,ixc ,ixtg ,
3041 . numels_l ,numelc_l ,numeltg_l)
3042
3043
3044
3045
3047 len_am = len_am + npart
3048
3049
3050
3051 CALL w_bufel(iparg,p-1,lbufel_l,elbuf,len_am)
3052
3053 flag_xfem = 0
3054 CALL w_elbuf_str(p-1,iparg,elbuf_tab,len_am,flag_xfem)
3055
3056 IF (icrack3d > 0) THEN
3057 DO ixel=1,nxel
3058 flag_xfem = 1
3059 CALL w_elbuf_str(p-1,iparg,xfem_tab(1:ngroup,ixel),len_am,flag_xfem)
3060 ENDDO
3061 ENDIF
3062
3063
3064
3065 IF (ncluster > 0)
CALL w_cluster(clusters,
3066 . iparg,nodlocal,
3067 . ncluster_l,cep,p-1,
3068 . numlocgroup,
3069 . len_ia,len_am)
3070
3071
3072
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)
3076
3077
3078
3080 len_am = len_am + nrby*nrbykin
3081 IF(p == 1 .AND. nrbylag > 0) THEN
3082 CALL write_db(rby(nrby*nrbykin+1),nrby*nrbylag)
3083 len_am = len_am + nrby*nrbylag
3084 END IF
3085
3086
3087
3089 len_am = len_am + nrivet*nrivf
3090
3091
3092
3093 IF(nsect>0)
3094 +
CALL w_secbuf(secbuf,lsecbuf_l,nstrf,p-1,len_am)
3095
3096
3097
3098 CALL write_db(rvolu,nrvolu*nvolu+lrcbag+lrbagjet+lrbaghol
3099 . +lrbagale)
3100 len_am = len_am + nrvolu*nvolu+lrcbag+lrbagjet+lrbaghol
3101 . + lrbagale
3102
3103
3104
3105 ncmax = lag_ncf + lag_ncl
3106 IF(ncmax>0.AND.p==1)THEN
3108 len_am = len_am + ncmax
3109 END IF
3110
3111
3112
3113 IF(nconx>0.AND.p==1)THEN
3115 len_am = len_am + nconx*nrcnx
3116 END IF
3117
3118
3119
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)
3124 END IF
3125
3126
3127
3128 IF (npsav>=25)THEN
3129 IF (p==1) THEN
3131 len_am = len_am + npsav*npart
3132 ELSE
3133 rdpartsav= 0
3134 CALL write_db(rdpartsav,npsav*npart)
3135 len_am = len_am + npsav*npart
3136 ENDIF
3137 ENDIF
3138
3139
3140
3141 my_ilen = 0
3142 my_rlen = 0
3145 len_ia=len_ia+2
3146
3147
3148
3149 IF(nadmesh /= 0 .OR. 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,
3152 . len_am )
3153 CALL w_reloc2(inc,1,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,
3154 . len_am )
3155 off = off + numelc + numelt + numelp + numelr
3156 CALL w_reloc2(mstg,1,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3157 . len_am )
3158 CALL w_reloc2(intg,1,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3159 . len_am )
3160 CALL w_reloc2(ptg,3,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3161 . len_am )
3162 END IF
3163
3164 IF(irest_mselt /= 0)THEN
3165 off = 0
3166 CALL w_reloc2(mssa,1,cep(
min(off+1,len_cep)),p-1,numels,numels_l,
3167 . len_am )
3168 off = numels+numelq+numelc
3169 CALL w_reloc2(mstr,1,cep(
min(off+1,len_cep)),p-1,numelt,numelt_l,
3170 . len_am )
3171 off = off+numelt
3172 CALL w_reloc2(msp,1,cep(
min(off+1,len_cep)),p-1,numelp,numelp_l,
3173 . len_am )
3174 off = off+numelp
3175 CALL w_reloc2(msrt,1,cep(
min(off+1,len_cep)),p-1,numelr,numelr_l,
3176 . len_am )
3177 END IF
3178
3179
3180
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
3186 len_am = len_am + numelc
3188 len_am = len_am + numeltg
3189 END IF
3190 END IF
3191
3192
3193
3194
3196 CALL write_db(pinch_data%VPINCH,3*numnod_l)
3197 len_am = len_am + 3*numnod_l
3198 DEALLOCATE(pinch_data%VPINCH)
3199
3200 CALL write_db(pinch_data%DPINCH,3*numnod_l)
3201 len_am = len_am + 3*numnod_l
3202 DEALLOCATE(pinch_data%DPINCH)
3203
3204 CALL write_db(pinch_data%XPINCH,3*numnod_l)
3205 len_am = len_am + 3*numnod_l
3206 DEALLOCATE(pinch_data%XPINCH)
3207
3208 CALL write_db(pinch_data%MSPINCH,numnod_l)
3209 len_am = len_am + numnod_l
3210 DEALLOCATE(pinch_data%MSPINCH)
3211 ENDIF
3212
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)
3216 END IF
3217
3218
3219
3220 IF(nintstamp /= 0)THEN
3222 len_am=len_am+lintstamp
3223 END IF
3224
3225
3226
3227 IF(ninterfric > 0) THEN
3228 CALL intfric_wrestr(intbuf_fric_tab,ninterfric)
3229 ENDIF
3230
3231 CALL w_rnloc(ms0,nodglob,numnod_l,len_am)
3232 IF(sin > 0)
CALL w_rnloc(in,nodglob,numnod_l,len_am)
3233
3234
3235
3236 IF(idtmins==1)THEN
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)
3247 END IF
3248 IF(idtmins==2.OR.idtmins_int/=0) THEN
3249 CALL w_rnloc(diag_sms,nodglob,numnod_l,len_am)
3250 END IF
3251 IF(isms_selec /= 0) THEN
3252 CALL w_inloc(nativ_sms,nodglob,numnod_l,len_ia)
3253 ENDIF
3254
3255
3256
3257 IF(ntable /= 0)THEN
3259 len_am=len_am+ltable
3260 END IF
3261#ifdef DNC
3262
3263
3264
3265 CALL mds_restart()
3266#endif
3267
3268
3269
3270 IF(nalelk>0.AND.slinale>0)THEN
3272 ENDIF
3273
3274
3275
3276 CALL write_ale_grid()
3277
3278
3279
3280 IF (nfxbody>0) THEN
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)
3288
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)
3292 ENDIF
3293
3294
3295
3296 IF (neig>0)THEN
3297 CALL eigwrestp(eigipm_l, eigibuf_l, eigrpm, leibuf_l,len_am)
3298 ENDIF
3299
3300
3301
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)
3305 ENDIF
3306
3307
3308
3312
3313
3314
3315 IF (nconld_l > 0) THEN
3316 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr
3317 . + numelx
3319 . off ,len_cep,nconld)
3321 . off ,len_cep,nconld)
3322 ENDIF
3323
3324
3325
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)
3329 ENDIF
3330
3331
3332
3333 IF (nflow>0)
CALL nfwrestp(iflow_l,rflow,len_ia,len_am)
3334
3335
3336
3338
3339
3340
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)
3344 ENDIF
3345
3346
3347
3348 IF(nitsche > 0 ) THEN
3349 ALLOCATE(forneqs(3*numnod_l))
3350 forneqs(1:3*numnod_l) = zero
3352 len_am = len_am + 3*numnod_l
3353 DEALLOCATE(forneqs)
3354 ENDIF
3355
3356
3357
3359
3360
3361
3362 IF(nrbym > 0)THEN
3363
3365 len_am = len_am + nfrbym*nrbym
3366
3367 CALL w_rbymk(irbym,lcrbym,front_rm,nodlocal,p-1,
3368 . nslarbm_l,len_ia)
3370 ENDIF
3371
3372
3373
3374 IF (glob_therm%NUMCONV > 0 )THEN
3375
3376 CALL w_fconv(fconv,cep,p-1,nconv_l,len_am,
3377 . glob_therm%NUMCONV,glob_therm%LFACTHER)
3378
3379 CALL w_iconv(ibcv,cep,p-1,nodlocal,nconv_l,len_ia,
3380 . cel,iparg,numlocgroup,glob_therm%NUMCONV,glob_therm%NICONV)
3381
3382 ENDIF
3383
3384
3385
3386 IF (glob_therm%NUMRADIA > 0 )THEN
3387
3388 CALL w_fradia(fradia,cep,p-1,nradia_l,len_am,
3389 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%LFACTHER)
3390
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)
3394 ENDIF
3395
3396
3397
3398 IF (glob_therm%NFXFLUX > 0 )THEN
3399
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)
3402
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)
3405 ENDIF
3406
3407
3408
3409 IF(glob_therm%NFXTEMP > 0) THEN
3410
3411 CALL w_fbft(fbft,glob_therm%NFXTEMP,ibft,nfxtemp_l,len_am,p-1,
3412 . glob_therm%NIFT,glob_therm%LFACTHER)
3413
3414 CALL w_ibft(ibft,glob_therm%NFXTEMP,nodlocal,len_ia,
3415 . nfxtemp_l,p-1,glob_therm%NIFT)
3416 ENDIF
3417
3418
3419
3420
3421 IF(iplyxfem > 0 ) THEN
3422 off = numels + numelq
3423
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)
3427
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)
3431 ENDIF
3432
3433 off = numels + numelq
3435 * numnod_l, cel(off+1), cep(
min(off+1,len_cep)), p-1)
3436
3438 ENDIF
3439
3440
3441
3442 IF(nloadc>0)
3443 .
CALL write_db(cfield,lfacload*nloadc)
3444 len_am = len_am + lfacload*nloadc
3445
3446
3447
3448 IF(nloadp>0)
3449 .
CALL write_db(loadp,lfacload*nloadp)
3450 len_am = len_am + lfacload*nloadp
3451
3452
3453
3454 IF (nintloadp>0) THEN
3455 CALL write_db(dgaploadint, s_loadpinter )
3456 len_am = len_am + s_loadpinter
3457 ENDIF
3458
3459
3460
3461 IF (loads%NINIVELT>0) THEN
3462 CALL w_inivel_str(
3463 . ngrnod, ngrbric, ngrquad, ngrsh3n,
3464 . igrnod, igrbric, igrquad, igrsh3n,
3465 . p-1 , cep, scep, nodlocal,
3466 . numnod,loads%NINIVELT,loads%INIVELT, len_ia,
3467 . len_am)
3468 ENDIF
3469
3470
3471
3472 IF(icrack3d > 0)THEN
3473
3474 CALL w_crkxfem(ielxfemc_l,ielxfemtg_l,incrkxfem_l,numelc_l,
3475 . numeltg_l,numnod_l,len_ia,numnodcrkxfe_l,
3476 . nodlevxf_l)
3477
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)
3485
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))
3491 elcutc_l = 0
3492 elcuttg_l = 0
3493 nodenr_l = 0
3494 kxfenod2elc_l = 0
3495 enrtag_l = 0
3496
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)
3502
3503
3504
3506 len_ia = len_ia + 2*numelc_l
3508 len_ia = len_ia + 2*numeltg_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
3515
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)
3521 ELSE
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))
3527 ENDIF
3528
3529
3530
3532
3533
3534 IF(ialelag > 0) THEN
3535 CALL w_alelag(dflow,vflow,wflow,nodglob,numnod_l,len_am)
3536 ENDIF
3537
3538
3539
3540 IF(lenthgr > 0) THEN
3542 len_am = len_am + lenthgr
3543 ENDIF
3544
3545
3546
3547 IF(sknot > 0)
CALL write_db(knot,sknot)
3548 IF(sknotlocpc > 0 .AND. 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)
3552 ENDIF
3553
3554
3555
3556 IF(numelig3d > 0)
CALL w_rnloc(wige,nodglob,numnod,len_am)
3557
3558
3559
3560 IF(ipart_stack > 0 .OR. 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,
3565 . stack%PM, len_pm)
3566 ENDIF
3567
3568
3569
3570 IF (ndrape > 0) THEN
3571
3572 off = numels + numelq
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
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)
3580 ENDIF
3581
3582
3583
3584 IF (numply>0)
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3603
3604
3605
3606
3607
3611#ifdef DEBUG_RST
3612 IF(flush_rst_to_txt) CLOSE(777+itask)
3613#endif
3614 IF(numnod_l>0) DEALLOCATE(nodglob)
3615
3616 DEALLOCATE(monvol_l)
3617
3618
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)
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657 ddstat(1) = numnod_l
3658 ddstat(2) = numel_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
3665 ddstat(9) = 0
3666 ddstat(10)= numeltg_l
3667 ddstat(11)= numelx_l
3668 ddstat(12)= nbddproc
3669 ddstat(13)= nbddboun
3670 ddstat(14)= nbddnod
3671 ddstat(15)= nbddnrb
3672 ddstat(16)= nrbykin_l
3673 ddstat(17)= numsph_l
3674 ddstat(20)= nsnt_l
3675 ddstat(21)= nmnt_l
3676 ddstat(22)= nsnt2_l
3677 ddstat(23)= nmnt2_l
3678 ddstat(24)= nslarb_l
3679
3680
3681
3682 IF(ipari0/=0)THEN
3683 nisky0_l=nisky0_l+4*nconv_l+4*nradia_l+4*nfxflux_l
3684 END IF
3685
3686 i_eval = numnod_l+2*numnod_l*
max(iale,ieuler,ialelag)+numnod_l*iroddl
3687 r_eval = lenwa_l+nfunct
3688 IF(ipari0/=0)THEN
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 IF (n2d==0.AND.iale+ieuler+glob_therm%ITHERM+ialelag > 0) r_eval = r_eval+ lcne_l
3693
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 IF(i2nsnt>0.AND.ivector==1)i_eval = i_eval+ numnod_l
3702 ELSE
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)
3705 END IF
3706
3707 r_eval = r_eval+numnod_l
3708 r_eval = r_eval+
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
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722 DEALLOCATE(multi_fvm_vel_l)
3723 DEALLOCATE(iebcs_listelem_l)
3724 DEALLOCATE(iebcs_listfac_l)
3725 DEALLOCATE(ipari_l)
3726 DEALLOCATE(rdpartsav)
3727 DEALLOCATE(dd_rbym2)
3728 DEALLOCATE(dd_rby2)
3729
3730
3731 RETURN
subroutine c_bufel(iparg, proc, lbufel_l)
subroutine c_crkadd(elcutc, nodenr, kxfenod2elc, enrtag, elcutc_l, nodenr_l, kxfenod2elc_l, enrtag_l, numelc_l, numeltg_l, numnod_l, nodglob, inod_crkxfem, p, cep, elcuttg_l, incrkxfem_l, index_crkxfem)
subroutine c_crkedge(ielc_l, ieltg_l, iedgecrk_l, numedges, iedgesh4, iedgesh3, cep, p, ibordedge, ibordedge_l, numedges_l, nodedge, nodedge_l, nodlocal, iedgesh4_l, iedgesh3_l, iel_crk, iedge_l, iedge, ecrkxfec, edgelocal, nbddedge_l, iedge_tmp, edgeglobal)
subroutine c_crkxfem(cep, p, iel_crkxfem, iel_l, numel, numel_l, nelcrkxfe_l, numedges_l, iedgesh, idim, tagedge)
subroutine c_dampvrel(dampr, igrnod, proc, idamp_vrel, ndamp_vrel_l, ngrnod, ndamp, nrdamp)
subroutine c_drape(indx, cep, p, numel, neldrp_l)
subroutine c_eig(eigipm, eigibuf, eigrpm, nodlocal, eigipm_l, eigibuf_l, leibuf_l)
subroutine c_elig3d(kxig3d, proc, isumnig3d_l)
subroutine c_elmx(kxx, cep, proc, isumnx_l)
subroutine c_eltloc(cep, p, numel, numel_l)
subroutine c_front(proc, nbddacc, nbddkin, nbddnrb, npby, nrbykin_l, ljoint, nbddncj, ibvel, nbddnrbm, iadll, lll, nlagf_l, front_rm, nrbymk_l, nbddnrbym, sdd_r2r_elem, addcsrect, csrect, nbddnort, nbddnor_max, nbccnor, nbccfr25, nbddedgt, nbddedg_max, nrtmx25, ipari, intbuf_tab, intercep, nodglob, nodlocal, numnod_l, nloc_dmg)
subroutine c_fvbag(monvol, nodlocal, ixs, proc, nb_node, fvmain)
subroutine c_fxbody2(fxbipm, fxbnod, nodlocal, iparg, fxbelm, fxbnod_l, fxbmod_l, fxbelm_l, fxbsig_l, proc, fxbmod, fxbsig, fxbipm_l, fxbgrvi, fxbgrvi_l, lennod_l, itask)
subroutine c_fxbody4(fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbgrvr, fxbipm, proc, fxbglm_l, fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l, fxbgrvr_l, fxbipm_l)
subroutine c_fxbody1(fxbipm, fxbnod, nodlocal, iparg, fxbelm, lennod_l, lenmod_l, lenelm_l, lensig_l, proc, lengrvi_l, fxbgrvi)
subroutine c_fxbody3(lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l, lenmcd_l, lengrvr_l, fxbipm_l, proc)
subroutine c_group_str(igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, cep, cel, nodlocal, proc, lenigrnod_l, lenigrbric_l, lenigrquad_l, lenigrsh4n_l, lenigrtrus_l, lenigrbeam_l, lenigrspri_l, lenigrsh3n_l, frontb_r2r, numnod_l)
subroutine c_ibcl(ibcl, cep, proc, nconld_l)
subroutine c_ibcscyc(ibcscyc, lbcscyc, proc, nbcscyc_l, llcyc_l)
subroutine c_ibft(ibft, nc, nfxtemp_l, proc, dd_lagf, nift)
subroutine c_ibfv(ibfv, nc, nfxvel_l, proc, dd_lagf)
subroutine c_ibmpc(impcnc, impcnn, impcdl, impcskw, dd_lagf)
subroutine c_ibvel(ibvel, lbvel, llbvel_l, nskyrbm_l, proc)
subroutine c_icfield(icfield, lcfield, llcfield_l, proc)
subroutine c_icnds10(icnds10, itagnd, proc, ns10e_l, nbddcndm, ms, ms_nd)
subroutine c_iconv(ibcv, cep, proc, nconv_l, numconv, niconv)
subroutine c_fasolfr(fasolfr, cep, p, cel, nfasolfr_l)
subroutine c_idglob(numel, numels_l, numelq_l, numeltg_l, numels_g, numelq_g, numeltg_g, proc, cel, cep, iparg, ale_connectivity, ixs, ixq, ixtg, idglob_l, uidglob_l, n2d, ngroup, nparg)
subroutine c_iebcs(ixs, ixq, ixtg, numels, numelq, numeltg, nebcs, cep, numel, proc, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l, iebcs_listdp0_l, length, n2d, multi_fvm_is_used, flag, ebcs_tab)
subroutine c_igrav(igrav, lgrav, llgrav_l, proc, nodlocal, numnod_l)
subroutine c_iloadp(iloadp, lloadp, llloadp_l, proc)
subroutine c_iradia(ibcr, cep, proc, nradia_l, numradia, numconv, niradia)
subroutine c_irbe2(irbe2, lrbe2, proc, nrbe2_l, slmn_l, nbddrbe2)
subroutine c_irbe3(irbe3, lrbe3, nskyrbe3_l, proc, nrbe3_l, slmn_l, nbddrbe3m, nrbe3pen_l)
subroutine c_islin_str(igrslin, proc, lenislin_l)
subroutine c_isph(kxsp, cepsp, proc, numsph_l, slonfsph_l, slprtsph, slprtsph_l, ipartsp, ssphveln_l, nsphsol_l, first_sphsol_l)
subroutine c_isurf_str(proc, lenisurf_l, nspmd, igrsurf_proc)
subroutine c_ithflux(ibfflux, cep, proc, nfxflux_l, numconv, numradia, nfxflux, nitflux)
subroutine c_ixfloc(numel, ixsf, ixqf, ixtgf, nsvois, nqvois, ntgvois, proc, iparg, cep, cel, ale_connectivity, ee_connect_l, ixs, ixq, ixtg, nodlocal, numels_l, numelq_l, numeltg_l, multi_fvm, id_global_vois, indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, face_vois, ishadow)
subroutine c_lag(ipari, nprw, lag_sec)
subroutine c_llink(nnlink, lllink, proc, nllink_l, nskyll_l)
subroutine c_mad(iexmad, nmadsh4_l, nmadsh3_l, nmadsol_l, nmadnod_l, madcl_nmadnod_l, cep, proc)
subroutine c_multi_vel(cep, numel, numel_l, proc, multi_fvm_vel_l, multi_fvm)
subroutine c_ncrkxfem(nodglob, inod_crkxfem, inod_l, numnod_l, numnodcrkxfe_l, index, proc, ixc, ixtg, cep_xfe, nodlocal, nodlevxf_l, nodlevxf, nodglobxfe, nod_xfe_l, crkshell)
subroutine c_ngroup(iparg, proc, numlocgroup, ngroup_l)
subroutine c_nloads(cep, proc, nloads, nload_l)
subroutine c_pon(addcne, numnod_l, nodglob, lcne_l, i2nsnt, addcni2, lcni2_l, monvol, cep, proc, nnmv_l, nnmvc_l, addcne_pxfem, lcnepxfem_l, inodpxfem, addcne_crkxfem, lcnecrkxfem_l, inodcrkxfem, addcncnd, lcncnd_l, igrsurf)
subroutine c_poro(pornod, proc, numpor_l, geo)
subroutine c_pxfem(cep, p, nodglob, ielpxfem, inodpxfem, iel_l, inod_l, numelc, numnod_l, numelc_l, nelpxfe_l, numnodpxfe_l, index)
subroutine c_rbyk(npby, lpby, proc, nslarb_l, nskyrbk_l)
subroutine c_rbymk(npby, lpby, proc, nslarb_l, nskyrbk_l)
subroutine c_rwall(nprw, lprw, rwl, cep, proc, nslaw_l, neslaw_l, lwsav_l, nskyrw_l, lrw_pen_l, nrw_pen_l)
subroutine c_seatbelts(n_slipring_l, n_retractor_l, p, nodlocal, elbuf_tab, iparg, n_anchor_remote_l, n_anchor_remote_send_l, anchor_remote_l, anchor_remote_send_l, n_seatbelt_l, n_seatbelt_2d_l, cep, off)
subroutine c_sectio(nstrf, cep, proc, nstrf_l, lsecbuf_l, nnodt_l, nnodl_l)
subroutine c_segquadfr(segquadfr, cep, p, cel, nsegquadfr_l)
subroutine c_vois(nsvois, nqvois, ntgvois, nrcvvois, nsndvois, ilaw11, nsegfl_l, iparg, cep, ale_connectivity, numel, proc, ixs, ixq, ixtg, nervois, nesvois, nodlocal, numnod_l, numel_l, cel, multi_fvm, ale_elm, size_ale_elm)
subroutine compress_i_nnz(array, len)
subroutine compress_r_nnz(array, len)
subroutine f_nodloc2(numnod, p, nodglob, nodlocal, igeo, iparg, ixs, ixq, ixc, ixtg, ixt, ixp, ixr, geo, numnod_l)
subroutine fvwrestp(proc)
subroutine intbuf_ini_starter(intbuf_tab, ipari, numn, i11flag, flag_allocate, proc, intbuf_fric_tab)
subroutine ipari_l_ini(ipari, proc, numnod_l, nbddi2m, i2nsn_l, probint, imaximp_l, nbi18_l, nskyi18_l, nsnt_l, nmnt_l, nsnt2_l, nmnt2_l, cep, igrbric, ipari_l, nodlocal, i2nsn25_l, intercep, intbuf_tab, numnor_l, i24maxnsne, multi_fvm, tag, index0, nindex0)
subroutine m_flow(iflow, iflow_l, nodlocal, p, memflow)
type(alefvm_buffer_), target alefvm_buffer
type(alefvm_param_), target alefvm_param
integer, dimension(:), allocatable ixs_temp
character(len=outfile_char_len) outfile_name
subroutine intstamp_wrestr(intstamp, leni)
subroutine intstamp_wresti(intstamp, leni, nodlocal)
integer, parameter ltitle
integer, dimension(:,:), allocatable ply_info
subroutine pornod(geo, ixs, ixq, nodpor, icode, itab, npby, lpby, igeo)
subroutine setlenwa(lenwa0, nthwa0, nairwa0, numels0, numelq0, numelc0, numeltg0, numelt0, numelp0, numelr0, numnod0, nmnt0, l_mul_lag1, l_mul_lag, maxnx0, lwasph0, numsph0, lwaspio, nrcvvois0, ngroup_l, lwamp_l, lwanmp_l, itherm)
subroutine split_ebcs(proc_id, local_nebcs, list_other_ebcs, numel, cep, igrsurf, local_element_id, ebcs_tab, ebcs_tab_loc_2)
subroutine split_interfaces(intbuf_tab, ipari, proc, intbuf_tab_l, ipari_l, intercep, nodlocal, itab, itabi2m, nbddi2m, numnod_l, len_cep, cep, cel, igrbric, t8, multi_fvm, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, i24maxnsne, intbuf_fric_tab)
subroutine split_skew(curr_proc, iskwp_l, iskwp, tag_skn, multiple_skew)
subroutine c_spmd_ne_connect(ale_connectivity, proc, cep, cel, nodglobal, nodlocal, numel, numnod, numel_l, numnod_l, numels_l, numelq_l, numeltg_l, nervois, nesvois, nsvois, nqvois, ntgvois)
subroutine spmd_ne_connect(ale_connectivity, proc, cep, cel, nodglobal, nodlocal, numel, numnod, numel_l, numnod_l, numels_l, numelq_l, numeltg_l, nervois, nesvois, nsvois, nqvois, ntgvois, elemid_l, len_ia, ixs)
subroutine write_joint(ljoint, cep, cel, proc, nodlocal, ljoint_l, len_ia, numnod_l)
subroutine w_bufbric_22()
subroutine write_pcyl(load_cyl, nload_cyl, nodlocal)
subroutine write_matparam(mat_elem, len)
subroutine c_cluster(clusters, proc, cep, ncluster_l, clusters_id_l)
subroutine w_cluster(cluster, iparg, nodlocal, ncluster_l, cep, proc, numlocgroup, len_ia, len_am)
subroutine w_elbuf_str(proc, iparg, elbuf_tab, len_am, flag_xfem)
subroutine w_failwave(failwave, nodglob, numnod, numnod_l, len_am, itab)
subroutine w_group_str(len_ia, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, cep, cel, nodlocal, proc, frontb_r2r, numnod_l)
subroutine w_subset_str(subset, len_ia)
subroutine wrcomr(lmxvrea, lvarrea, tabvrea, ms_nd, p, inter_parameters, unitab, glob_therm, output)
subroutine write_elgroup_param(group_param_tab, iparg, proc, ngroup_l, len)
subroutine write_nloc_struct(nloc_dmg, numnod_l, nodglob, nodloc, cel, cep, proc, ixs, ixc, ixtg, numels_l, numelc_l, numeltg_l)
subroutine nfwrestp(iflow, rflow, len_ia, len_am)
subroutine fxbwrestp(fxbipm_l, fxbrpm, fxbnod_l, fxbmod_l, fxbglm_l, fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l, fxbdep, fxbvit, fxbacc, fxbelm_l, fxbsig_l, fxbgrvi_l, fxbgrvr_l, lennod_l, lenmod_l, lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l, lenelm_l, lensig_l, lengrvi_l, lengrvr_l, len_am, itask)
subroutine eigwrestp(eigipm, eigibuf, eigrpm, leibuf_l, len_am)
subroutine startime(event, itask)
subroutine stoptime(event, itask)
subroutine elapstime_omp(etime)
subroutine w_alelag(dflow, vflow, wflow, nodglob, numnod_l, len_am)
subroutine w_anim_crk(ixc, ixtg, numelc_l, numeltg_l, nodlocal, numnod_l, inod_l, cel, cep_xfe, proc, iedgecrk_l, ibordedge_l, numedges_l, index_crkxfem, inod_crkxfem, lcnecrkxfem_l, edgeglobal, cep, crklvset, ncrkpart, indx_crk, crkshell, crksky, crkavx, crkedge, xfem_phantom, numnodcrk_l)
subroutine w_anim_ply(ixc, numelc_l, nodlocal, numnod_l, cel, cep, proc)
subroutine w_avuply(nnodpxfe_l, len_am)
subroutine w_bid(len, len_am)
subroutine w_bufel(iparg, proc, lbufel_l, elbuf, len_am)
subroutine w_crkxfem(ielc_l, ieltg_l, inod_l, numelc_l, numeltg_l, numnod_l, len_ia, numnodcrk_l, nodlevxf_l)
subroutine w_dampvrel(dampr, igrnod, idamp_vrel_l, ndamp_vrel_l, len_ia, ngrnod, ndamp, nrdamp, nspmd)
subroutine w_disp0_vel0_cload(disp0, cep, proc, ncload_l, len_am, off, len_cep, ncload)
subroutine w_drape(drape, indx, cep, p, numel, numel_l, neldrp_l, len_ia, len_am)
subroutine w_elig3d(kxig3d, numelig3d_l, isumnig3d_l, ixig3d, proc, nodlocal, len_ia)
subroutine w_elmx(kxx, numelx_l, isumnx_l, ixx, cep, proc, nodlocal, len_ia)
subroutine w_fac(fac, cep, proc, nconld_l, len_am)
subroutine w_fasolfr(fasolfr, cep, p, cel, nfasolfr_l, len_ia)
subroutine w_fbft(vel, nc, ibft, nfxtemp_l, len_am, proc, nift, lfacther)
subroutine w_fconv(fac, cep, proc, nconv_l, len_am, numconv, lfacther)
subroutine w_fi(ipari, proc, len_ia, intercep, intbuf_tab, itab, multi_fvm, tag, nindx_tag, indx_tag, nodlocal, numnod_l, len_cep, cep)
subroutine w_fixvel(vel, nc, ibfv, nfxvel_l, len_am, proc)
subroutine w_fradia(fac, cep, proc, nradia_l, len_am, numconv, numradia, lfacther)
subroutine w_frbe3(irbe3, lrbe3, proc, llrbe3_l, frbe3, frbe3ad, len_ia, nrbe3pen_l)
subroutine w_front(proc, nbddacc, nbddkin, nodlocal, nbddproc, nbddboun, nodglob, numnod_l, nbddnrb, npby, lpby, nprw, lprw, len_ia, dd_rby2, itabi2m, nbddi2m, cep, monvol, nnlink, lllink, ljoint, nbddncj, ibvel, lbvel, nbddnrbm, dd_rbm2, nstrf, nnodt_l, nnodl_l, iexmad, isp0, nrcvvois, nsndvois, nervois, nesvois, nsegfl_l, iparg, numel, ale_connectivity, nbcfd, ixs, ixq, ixtg, numels_l, numelq_l, numeltg_l, cel, geo, pornod, numpor_l, numel_l, ipari, intbuf_tab, nbi18_l, iexlnk, igrnod, dd_lagf, nlagf_l, iadll, lll, iskwp, nskwp, isensp, nsensp, iaccp, naccp, irbe3, lrbe3, itabrbe3m, nbddrbe3m, irbym, lcrbym, front_rm, dd_rbym2, nbddnrbym, irbe2, lrbe2, nbddrbe2, itabrbe2m, iedge_tmp, nodedge, edgelocal, nbddedge_l, igaup, ngaup, frontb_r2r, sdd_r2r_elem, addcsrect, csrect, nbddnort, nbddnor_max, nbccfr25, nbccnor, numnor_l, nbddedgt, nbddedg_max, intercep, nbddcndm, itabcndm, multi_fvm, igrsurf, iskwp_l, ale_elm, size_ale_elm, nsensor, nloc_dmg, constraint_struct, itherm)
subroutine w_fthflux(fbfflux, cep, proc, nfxflux_l, len_am, numconv, numradia, nfxflux, lfacther)
subroutine w_geo(geo, nodlocal)
subroutine w_gjoint(gjbufi, ngjoint, lkjni, nodlocal, len_ia)
subroutine w_ibcl(ibcl, cep, proc, nodlocal, nconld_l, len_ia)
subroutine w_ibcscyc(ibcscyc, lbcscyc, nodlocal, proc, llcyc_l, nbcscyc_l, len_ia)
subroutine w_ibft(ibft, nc, nodlocal, len_ia, nfxtemp_l, proc, nift)
subroutine w_ibfv(ibfv, nc, nodlocal, len_ia, nfxvel_l, proc)
subroutine w_ibmpc(ibmpc, nummpc, lmpc, nodlocal, lag_sec, len_ia)
subroutine w_ibvel(ibvel, lbvel, nodlocal, proc, llbvel_l, len_ia)
subroutine w_icfield(icfield, lcfield, nodlocal, proc, llcfield_l, len_ia, p, numnod_l)
subroutine w_icnds10(icnds10, itagnd, proc, nodlocal, ns10e_l, itabcndm, nbddcndm, numnod_l, len_ia, itab)
subroutine w_iconv(ibcv, cep, proc, nodlocal, nconv_l, len_ia, cel, iparg, numlocgroup, numconv, niconv)
subroutine w_ieloc(itab, cep, p, numel, numel_l, len_ia)
subroutine w_igrav(igrav, lgrav, nodlocal, proc, llgrav_l, len_ia, numnod_l)
subroutine w_iloadp(iloadp, lloadp, nodlocal, proc, llloadp_l, len_ia, p, cep, itab, numconv, numradia, nfxflux)
subroutine w_ing2loc(ale_connectivity, elemid_l, numnod, nodglob, nodlocal, numnod_l, len_ia, nwale)
subroutine w_inloc(itab, nodglob, numnod_l, len_ia)
subroutine w_iparg(iparg, proc, ngroup_l, len_ia)
subroutine w_iradia(ibcr, cep, proc, nodlocal, nradia_l, len_ia, cel, iparg, numlocgroup, numconv, numradia, niradia)
subroutine w_irbe2(irbe2, lrbe2, nodlocal, proc, llrbe2_l, itabrbe2m, nbddrbe2, numnod_l, len_ia)
subroutine w_irbe3(irbe3, lrbe3, nodlocal, proc, llrbe3_l, itabrbe3m, nbddrbe3m, numnod_l, len_ia)
subroutine w_irivet(ixri, nodlocal, proc, len_ia)
subroutine w_iskewsp(iskew, nodglob, numnod_l, numsph_l, cepsp, proc, len_ia)
subroutine w_iskn(iskn, numskw, nsph, iframe, numfram, nodlocal, p, numnod, cepsp, len_ia)
subroutine w_islin_str(igrslin, len_ia, proc, nodlocal)
subroutine w_isph(kxsp, ixsp, numsph_l, cepsp, proc, nodlocal, numnod_l, ispcond, iparg, isphio, len_ia, slonfsph_l, slprtsph_l, ipartsp, lonfsph, lprtsph, ibufssg_io, celsph, nsphsol_l, first_sphsol_l, sph2sol, sol2sph, irst, numels8_l, cep, cel, sol2sph_typ)
subroutine w_isurf_str(len_ia, proc, numnod, nsurf, numels, numelq, numelc, numelt, numelp, numelr, nodlocal, scel, cel, ltitr, lenisurf_l, nspmd, igrsurf, igrsurf_proc)
subroutine w_itabm1(itabm1, itabm2, nodglob, nodlocal, numnod_l, itab, len_ia)
subroutine w_ithflux(ibfflux, cep, proc, nodlocal, nfxflux_l, len_ia, cel, ixs, numconv, numradia, nfxflux, nitflux)
subroutine w_ixaloc(ixa, nnod, cep, p, numel, numel_l, nodlocal, len_ia)
subroutine w_ixbloc(ixa, nnod, dim, cep, p, numel, numel_l, nodlocal, len_ia)
subroutine w_ixloc(ixx, nixx, nnod, cep, p, numel, numel_l, nodlocal, len_ia)
subroutine w_knotloc(kxig3d, numelig3d_l, isumnig3d_l, ixig3d, cep, proc, nodlocal, len_ia, knotlocpc, knotlocel, numnod_l, numconv, numradia)
subroutine w_lacc(laccelm, nc, nodlocal, len_ia, cel, cep, proc)
subroutine w_las(las, nc, nodlocal, len_ia)
subroutine w_lgau(lgauge, nc, nodlocal, len_ia, cel, cep, proc)
subroutine w_llink(nnlink, lllink, nodlocal, proc, nllink_l, len_ia)
subroutine w_mad(iexmad, nmadsh4_l, nmadsh3_l, nmadsol_l, nmadnod_l, madcl_nmadnod_l, cep, proc, nodlocal, cel, numels_l, numelc_l, numeltg_l, len_ia)
subroutine w_main_proc_weight(nodglob, numnod_l, nspmd, proc)
subroutine w_monvol(monvol, lenvolu, nodlocal, len_ia, monvol_l, itab, t_monvol, proc)
subroutine w_outmaxn(numnod_l, len_am)
subroutine w_ply_info(ply_info, numply)
subroutine w_pon(addcne, cne, lcne, numnod_l, nodglob, lcne_l, cep, cel, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, monvol, ib, geo, igeo, proc, numels_l, numels8_l, numels10_l, numels16_l, numels20_l, numelq_l, numelc_l, numelt_l, numelp_l, numelr_l, numeltg_l, nskyrw_l, nprw, lprw, nskyrbk_l, npby, lpby, dd_rby2, i2nsnt, i2nsn_l, ipari, nir, lcni2_l, niskyi2_l, cepi2, celi2, cni2, addcni2, nbddi2m, nconld_l, ixtg6, numeltg6_l, nnmv_l, nnmvc_l, nskyll_l, nnlink, lllink, nskyrbm_l, dd_rbm2, ibvel, lbvel, nbi18_l, nskyi18_l, len_ia, nconv_l, ibcv, nskyrbe3_l, irbe3, lrbe3, nskyrbmk_l, irbym, lcrbym, front_rm, dd_rbym2, ibcr, nradia_l, addcne_pxfem, cne_pxfem, cel_pxfem, lcnepxfem_l, inod_pxfem, iel_pxfem, numelcpxfem_l, numnodpxfem_l, lloadp, iloadp, llloadp_l, addcne_crkxfem, cne_crkxfem, cel_crkxfem, lcnecrkxfem_l, inod_crkxfem, iel_crkxfem, numelccrkxfe_l, numnodcrkxfe_l, numeltgcrkxfe_l, cep_crkxfem, inod_crk_l, crknodiad, intbuf_tab, numelig3d_l, kxig3d, ixig3d, ibfflux, nfxflux_l, cepcnd, celcnd, addcncnd, cncnd, ns10e_l, icnds10, lcncnd_l, itagnd, igrsurf, igrsurf_proc, local_nebcs, ebcs_tab_loc_2, number_load_cyl, loads, loads_per_proc, glob_therm)
subroutine w_poro(pornod, proc, numpor_l, geo, nodlocal, len_ia)
subroutine w_pxfem(iel_l, inod_l, index, vel1, vel2, numelc_l, numnod_l, nelpxfe_l, nnodpxfe_l, len_am, len_ia, vel3)
subroutine w_r3nloc(rtab, nodglob, numnod_l, len_am)
subroutine w_rbyk(npby, lpby, nodlocal, proc, nslarb_l, len_ia)
subroutine w_rbymk(npby, lpby, front_rm, nodlocal, proc, nslarb_l, len_ia)
subroutine w_reloc2(rtab, ndim, cep, p, numel, numel_l, len_am)
subroutine w_reloc(rtab, cep, p, numel, numel_l, len_am)
subroutine w_rfilloc(fill, nodglob, numnod, numnod_l, nmult, len_am)
subroutine w_rnloc(rtab, nodglob, numnod_l, len_am)
subroutine w_rnnloc(rtab, nodglob, numnod_l, dim, len_am)
subroutine w_rsph(spbuf, numsph_l, cepsp, proc, vsphio, len_am, ssphveln_l)
subroutine w_rwall(nprw, lprw, rwl, cep, cel, nodlocal, proc, nslaw_l, neslaw_l, numnod_l, len_ia)
subroutine w_rwar(nprw, lprw, rwl, rwsav, lwsav_l, lrw_pen_l, nrw_pen_l, rwstif_pen, sln_pen, cep, proc, len_am)
subroutine w_seatbelts(len_ia, len_am, p, nodlocal, n_anchor_remote_l, n_anchor_remote_send_l, anchor_remote_l, anchor_remote_send_l)
subroutine w_secbuf(secbuf, lsecbuf_l, nstrf, proc, len_am)
subroutine w_sectio(nstrf, cep, cel, proc, nstrf_l, nodlocal, len_ia)
subroutine w_segquadfr(segquadfr, cep, p, cel, nsegquadfr_l, len_ia)
subroutine w_skwsph(skew, numsph_l, cepsp, proc, len_am)
subroutine w_skwsub(skew, len_am)
subroutine w_stack(igeo, geo, len_ig, len_g, len_ia, len_am, pm, len_pm)
subroutine w_tabmat_prop(iparg, ixc, ixtg, ixs, proc, ngroup_l, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, ipartc, ipartg, iparts)
subroutine w_th_surf_loadp(iloadp, nodlocal, proc, len_ia, cep, th_surf, numnod, sizloadp, nloadp, len_cep, off)
Writing TH/SURF tabs in restart file.
subroutine w_th_surf_pload(ibcl, nodlocal, proc, len_ia, cep, th_surf, numnod, nibcld, nconld, len_cep, off)
Writing TH/SURF tabs in restart file.
subroutine wrcomip(lmxvint, lvarint, tabvint, ngroup_l, lbufel_l, lenwa_l, intbag_l, numelq_l, numels_l, numelc_l, numelt_l, numelr_l, numelp_l, numelx_l, isumnx_l, numels10_l, numels20_l, numels8_l, numels16_l, lnom_opt, numeltg_l, numeltg6_l, nslarb_l, numnod_l, numel_l, nsvois_l, nqvois_l, ntgvois_l, lenlas, nllink_l, llgrav_l, llbvel_l, nslaw_l, neslaw_l, nskyll_l, nstrf_l, ljoint_l, lenvolu, lenthg, lbufmat, lbufgeo, lbufsf, lenxlas, lwsav_l, lsecbuf_l, numpor_l, npts, nbddnod_l, nfxvel_l, nbddnrb_l, lcne_l, nskyrw_l, nskyrbk_l, nbddi2m_l, lcni2_l, niskyi2_l, i2nsnt_l, nconld_l, nnmv_l, nnmvc_l, nbddncj_l, nbddnrbm_l, nskyrbm_l, nnodt_l, nnodl_l, nmadsh4_l, nmadsh3_l, nmadsol_l, nmadnod_l, imaximp_l, isp0, num16shift_l, numsph_l, lwasph_l, sphshift_l, nrcvvois_l, nsndvois_l, nervois_l, nesvois_l, ilaw11_l, nsegfl_l, nbi18_l, nskyi18_l, leibuf_l, lenthbuf, nfasolfr_l, lennod_l, lenmod_l, lenelm_l, lensig_l, lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l, lenmcd_l, lengrvi_l, lengrvr_l, nlagf_l, lrbagale, skippon_l, nconv_l, nfxtemp_l, nfxflux_l, nrbe3_l, llrbe3_l, nbddnrbe3_l, nskyrbe3_l, nslarbm_l, nskyrbmk_l, nbddnrbym_l, madcl_nmadnod_l, nradia_l, nrbe2_l, llrbe2_l, nbddnrbe2_l, numelcpxfe_l, numnodpxfe_l, lcnepxfem_l, llcfield_l, llloadp_l, numelcrkxfe_l, numnodcrkxfe_l, lcnecrkxfem_l, slonfsph_l, slprtsph_l, ssphveln_l, i2nsn25_l, numelccrkxfe_l, numeltgcrkxfe_l, numedges_l, nbddedge_l, sdd_r2r_elem, numnodxfe_l, nsphsol_l, first_sphsol_l, ncluster_l, lenthbufr, numnor_l, nbddnort_l, nbddnor_max_l, nbccnor_l, nbccfr25_l, ns10e_l, lcncnd_l, nbddcndm_l, nbebcs, iebcs_lgth, multi_fvm, nsegquadfr_l, nbddedgt_l, nbddedg_max_l, nrtmx25_l, lenigrnod_l, lenigrbric_l, lenigrquad_l, lenigrsh4n_l, lenigrtrus_l, lenigrbeam_l, lenigrspri_l, lenigrsh3n_l, lenisurf_l, lenislin_l, ne_nervois_l, ne_nesvois_l, ne_nsvois_l, ne_nqvois_l, ne_ntgvois_l, nbcscyc_l, llbcscyc_l, ale_connectivity, n_slipring_l, n_retractor_l, n_anchor_remote_l, n_anchor_remote_send_l, n_seatbelt_l, n_seatbelt_2d_l, dynain_data, numsh4n_l, numsh3n_l, inter_parameters, sensors, nload_cyl, ncload_l, npload_l, ndamp_vrel_l, unitab, lwamp_l, lwanmp_l, ninivelt_l, glob_therm, pblast)
subroutine c_joint_sms(ljoint, proc, ljoint_l)
subroutine w_joint_sms(ljoint, cep, cel, proc, nodlocal, ljoint_l, len_ia)
subroutine write_db(a, n)
subroutine write_dpdb(a, n)
void write_i_c(int *w, int *len)
void file_size(int *filesize)
void write_c_c(int *w, int *len)
void open_c(int *ifil, int *len, int *mod)
subroutine write_th_buffer(th, nodlocal, cel, p, nthgrp0, nthgrp, nthgrp01, nthgrp1, scel, numsph, numnod, ncluster, celsph, numloccluster, nbr_th_monvol)
subroutine write_units(unitab)
subroutine wrweight_rm(front_rm, nr, proc)