336
337
338
339 USE my_alloc_mod
345 USE mat_elem_mod
349 USE intbufdef_mod
353 USE int8_mod
355 USE multi_fvm_mod
357 USE intbuf_fric_mod
358 USE pblast_mod
363 USE skew_mod
370 USE sensor_mod
372 USE ebcs_mod
376 USE loads_mod
380 USE output_mod
381 USE interfaces_mod
383 USE python_funct_mod
385 USE bcs_mod , ONLY : bcs_struct_
386 use constraint_mod , only : constraint_
387 use c_inivell_mod , only : c_inivell
388 use w_inivel_str_mod , only : w_inivel_str
389 use glob_therm_mod
390 use write_ale_grid_mod, only : write_ale_grid
391 use pblast_mod
393 use checksum_starter_option_mod, only : checksum_write_starter_restart
394
395
396
397
398#include "implicit_f.inc"
399
400
401
402#include "com01_c.inc"
403#include "com04_c.inc"
404#include "com10_c.inc"
405#include "com_xfem1.inc"
406#include "eigcom.inc"
407#include "flowcom.inc"
408#include "fxbcom.inc"
409#include "intstamp_c.inc"
410#include "lagmult.inc"
411#include "param_c.inc"
412#include "scr03_c.inc"
413#include "scr05_c.inc"
414#include "scr15_c.inc"
415#include "scr16_c.inc"
416#include "scr17_c.inc"
417#include "scr23_c.inc"
418#include "sms_c.inc"
419#include "sphcom.inc"
420#include "tabsiz_c.inc"
421#include "tablen_c.inc"
422#include "remesh_c.inc"
423#include "r2r_c.inc"
424#include "inter22.inc"
425#include "drape_c.inc"
426#include "debug_rst.inc"
427
428 TYPE intermasurfep
429 INTEGER, DIMENSION(:), POINTER :: P
430 END TYPE intermasurfep
431 TYPE (DYNAIN_DATABASE), INTENT(INOUT) :: DYNAIN_DATA
432 TYPE (OUTPUT_),INTENT(IN) :: OUTPUT
433 TYPE (INTERFACES_) ,INTENT(IN) :: INTERFACES
434 TYPE(PYTHON_), INTENT(INOUT) :: PYTHON
435 TYPE(pblast_), INTENT(INOUT) :: PBLAST
436
437
438
439 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
440 INTEGER, INTENT(IN) :: LEN_CEP
441 INTEGER, DIMENSION(SCEL), INTENT(IN) :: CEL
442 TYPE(DETONATORS_STRUCT_),INTENT(IN) :: DETONATORS
443 INTEGER P,
444 . LIBAGALE, LENTHG, LENLAS, NPTS,LEN,
445 . LBUFMAT, LBUFGEO, LBUFSF, LENXLAS, LNOM_OPT,
446 . LENVOLU, NTHWA, NAIRWA, NMNT, I2NSNT,
447 . L_MUL_LAG1, L_MUL_LAG, LWASPIO,PM1SPH,
448 . LCNI2G, PM1SHF, I11FLAG,LENTHGR,NCRKPART,
449 . CEP(LEN_CEP),IGEO(*), IPM(*),
450 . ICODE(*),ISKEW(*),ISKN(*),INSEL(*),IBCSLAG(*),
451 . IPART(*),IPARTS(*),IPARTQ(*),IPARTC(*),IPARTT(*),
452 . IPARTP(*),IPARTR(*),IPARTTG(*),IPARTX(*),
453 . NPC(*),IXTG(NIXTG,*),IXTG6(4,*),
454 . IXS(NIXS,*),IXS10(6,*),IXS20(12,*),IXS16(8,*),
455 . IXQ(NIXQ,*),IXC(*),IXT(*),IXP(*),IXR(*),
456 . ITAB(*),ITABM1(*),GJBUFI(*),
457 . NALE(*),IEXMAD(*),KXX(*),IXX(*),IBCL(*),IBFV(*),LAS(*),
458 . LACCELM(*),NNLINK(*),(*),
459 . IPARG(*),IGRAV(*),LGRAV(*),
460 . IBVEL(*),LBVEL(*),IACTIV(*),KINET(*),
461 . IPARI(*),NPRW(*),LPRW(*),
462 . NPBY(*),LPBY(*), IEXLNK(*),
463 . IXRI(*),NSTRF(*),LJOINT(*),PORNOD(*),MONVOL(*),FVMAIN(*),
464 . LAGBUF(*), FR_IAD(*),
465 . ICONTACT(*), IPARTSP(*), ISPCOND(*),
466 . DDSTAT(50), CNE(*), LCNE, ADDCNE(0:*),
467 . CNI2(*), ADDCNI2(0:*), CEPI2(*), CELI2(*),
468 . DD_IAD(*),
469 . KXSP(*), IXSP(*), NOD2SP(*), CEPSP(*),
470 . EIGIPM(*), EIGIBUF(*), IFLOW(*), FASOLFR(2,*),
471 . IPARTH(*),
472 . FXBIPM(*), FXBNOD(*),
473 . FXBELM(*), FXBGRVI(*), IADLL(*), LLL(*),(*),LRBAGALE,
474 . ISKWP(*), NSKWP(*), ISENSP(2,*), NSENSP(*),
475 . IACCP(P), NACCP(*), IPART_STATE(*), IFRAME(*),
476 . IBFT(*),IBCV(*),IRBE3(NRBE3L,*),LRBE3(*),
477 . IRBYM(*) ,LCRBYM(*),FRONT_RM(NRBYM,*),INOISE(*),
478 . NOM_SECT(*), ISPSYM(*), SH4TREE(*), SH3TREE(*),
479 . IPADMESH(*), SH4TRIM(*), SH3TRIM(*), IBCR(*), IBFFLUX(*),
480 . ISPHIO(*), LPRTSPH(*), LONFSPH(*), IFILL(*), IMS(*),
481 . IRBE2(NRBE2L,*),LRBE2(*),INOD_PXFEM(*) ,
482 . IEL_PXFEM(*) ,ICODPLY(*),ISKWPLY(*) ,ADDCNE_PXFEM(0:*),
483 . CNE_PXFEM(*),CEL_PXFEM(*),ITHVAR(*), CELSPH(NUMSPH),
484 . (*),LCFIELD(*),ILOADP(*),LLOADP(*),INOD_CRKXFEM(*),
485 . IEL_CRKXFEM(*),ADDCNE_CRKXFEM(0:*),CNE_CRKXFEM(*),
486 . CEL_CRKXFEM(*),(*),IEDGESH(*),IBORDEDGE(*),
487 . LINALE(*),NODEDGE(2,*),IEDGE(*),(*),
488 . IEDGE_TMP(3,*),CRKNODIAD(*), LGAUGE(*), IGAUP(*),NGAUP(*),
489 . NODLEVXF(*),FRONTB_R2R(SFRONTB_R2R,*),
490 . SPH2SOL(*), SOL2SPH(*), IRST(*),ELCUTC(2,*),NODENR(*),
491 . KXFENOD2ELC(*),ENRTAG(*),IXIG3D(*),KXIG3D(*),
492 . IPARTIG3D(*),INDX_CRK(*),
493 . POIN_UMP(NUMMAT),SOL2SPH_TYP(*), ADDCSRECT(*), CSRECT(*),
494 . ITAGND(*),ICNDS10(*),
495 . ADDCNCND(0:*), CEPCND(*), CELCND(*),CNCND(*),NATIV_SMS(*),
496 . I24MAXNSNE,SEGQUADFR(2,*),TAG_SKINS6(*),IBCSCYC(*),LBCSCYC(*)
497 INTEGER, INTENT(IN) :: S_LOADPINTER
498 INTEGER, INTENT(IN) :: KLOADPINTER(NINTER+1) ,LOADPINTER(S_LOADPINTER)
499 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter )
500 INTEGER NOM_OPT(LNOPT1,*)
501 INTEGER(KIND=8) :: MEMFLOW(*)
502 INTEGER, DIMENSION(2,NPART), INTENT(IN) :: POIN_PART_SHELL,POIN_PART_TRI
503 INTEGER, DIMENSION(2,NPART,7), INTENT(IN) :: POIN_PART_SOL
504 INTEGER :: NBR_TH_MONVOL
505
506 double precision
507 . bufgeo(*)
509 . x(*), d(*), v(*), vr(*), dr(*),
510 . thke(*), dampr(*), damp(*), ms(*), in(*),
511 . tf(*), pm(*), skew(*), xframe(*), geo(*),
512 . eani(*), bufmat(*), bufsf(*), brmpc(*),
513 . gjbufr(*), w(*), veul(*), fill(*), dfill(*),
514 . wb(*), asav(*), dsav(*), msnf(*),
515 . spbuf(*), fac(*), vel(*), factiv(*),
516 . fsav(*), fzero(*), xlas(*), accelm(*),
517 . fbvel(*), gravfac(*), fr_wave(*), elbuf(*),
518 . rwl(*), rwsav(*), rby(*), rivet(*),
519 . secbuf(*), rvolu(*), parts0(*), rconx(*),
520 . wma(*), eigrpm(*), rflow(*),
521 . probint, fxbrpm(*), fxbmod(*), fxbglm(*), fxbcpm(*),
522 . fxbcps(*), fxblm(*), fxbfls(*), fxbdls(*), fxbdep(*),
523 . fxbvit(*), fxbacc(*), fxbsig(*), fxbgrvr(*), lambda(*),
524 . mcp(*), temp(*), partsav(*),fbft(*), fconv(*),
525 . frbe3(*), rbym(*),fnoise(*), ms0(*), admsms(*),
526 . padmesh(*) ,msc(*), mstg(*),
527 . inc(*), intg(*), ptg(*), mcpc(*), mcptg(*),
528 . rcontact(*), acontact(*), pcontact(*), mscnd(*), incnd(*),
529 . mssa(*), mstr(*), msp(*), msrt(*), fradia(*), fbfflux(*),
530 . dmelc(*), dmeltg(*), dmels(*), dmeltr(*), dmelp(*),
531 . dmelrt(*), res_sms(*), vsphio(*), sphveln(*), alph(*),
532 . ms_ply(*),zi_ply(*),cfield(*),msz2(*),
533 . diag_sms(*),loadp(*),gauge(*),dflow(*),vflow(*),wflow(*),
534 . rthbuf(*),knot(*),wige(*),tab_ump(7,taille),
535 . knotlocpc(*),knotlocel(*)
536 my_real,
INTENT(IN) :: dpl0cld(6,nconld),vel0cld(6,nconld)
537 TYPE (INTSTAMP_DATA) INTSTAMP(*)
538 TYPE (TTABLE) TABLE(*)
539 TYPE (INTBUF_STRUCT_) INTBUF_TAB(*)
540 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
541 TYPE (), DIMENSION(NGROUP,*) ::
542 TYPE (CLUSTER_) , DIMENSION(NCLUSTER) :: CLUSTERS
543 TYPE (XFEM_SHELL_) , DIMENSION(NLEVMAX) :: CRKSHELL
544 TYPE (XFEM_LVSET_) , DIMENSION(NLEVMAX) :: CRKLVSET
545 TYPE (XFEM_SKY_) , DIMENSION(NLEVMAX) ::
546 TYPE (XFEM_AVX_) , DIMENSION(NLEVMAX) :: CRKAVX
547 TYPE (XFEM_EDGE_) , DIMENSION(NXLAYMAX) :: CRKEDGE
548 TYPE (XFEM_PHANTOM_), DIMENSION(NXLAYMAX) :: XFEM_PHANTOM
549 TYPE (STACK_PLY) :: STACK
550 TYPE (INT8_STRUCT_) :: T8(NSPMD,*)
551 TYPE(MULTI_FVM_STRUCT) ::
552 TYPE(INTBUF_FRIC_STRUCT_) :: INTBUF_FRIC_TAB(*)
553 TYPE(MID_PID_TYPE), DIMENSION(NUMMAT), INTENT(IN) :: MID_PID_SHELL,MID_PID_TRI
554 TYPE(MID_PID_TYPE), DIMENSION(NUMMAT,7), INTENT(IN) :: MID_PID_SOL
555 TYPE (FAILWAVE_STR_) :: FAILWAVE
556 TYPE (NLOCAL_STR_) :: NLOC_DMG
557 TYPE (DRAPE_) :: DRAPE (NUMELC_DRAPE + NUMELTG_DRAPE)
558 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
559 TYPE (DRAPEG_) :: DRAPEG
560
561 TYPE (SUBSET_) , DIMENSION(NSUBS) :: SUBSET
562 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
563 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
564 TYPE (GROUP_) , DIMENSION(NGRQUAD) :: IGRQUAD
565 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
566 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
567 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
568 TYPE (GROUP_) , DIMENSION(NGRBEAM) :: IGRBEAM
569 TYPE (GROUP_) , DIMENSION(NGRSPRI) :: IGRSPRING
570 TYPE (GROUP_) , DIMENSION(NGRPART) :: IGRPART
571 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
572 TYPE (SURF_) , DIMENSION(NSLIN) :: IGRSLIN
573 TYPE (PINCH) :: PINCH_DATA
574
575 LOGICAL, INTENT(IN) :: FLAG_24_25
576 INTEGER, INTENT(IN) :: NUMNOD_L
577 INTEGER, INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
578 INTEGER, DIMENSION(*), INTENT(INOUT) :: INDX_NM,INDX_SCRT
579 INTEGER, DIMENSION(*) :: TAG_NM,TAG_SCRATCH
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594 INTEGER, DIMENSION(NUMSKW+1), INTENT(INOUT) :: TAG_SKN
595 TYPE(PLIST_SKEW_), DIMENSION(NUMSKW+1), INTENT(INOUT) :: MULTIPLE_SKEW
596
597
598
599
600
601
602
603
604
605
606 TYPE(SURF_), DIMENSION(NSURF,NSPMD), INTENT(IN) :: IGRSURF_PROC
607
608
609
610
611
612
613
614 INTEGER, INTENT(IN) :: SIZE_ALE_ELM
615 TYPE(split_cfd_type), INTENT(IN) :: ALE_ELM
616
617
618
619
620
621 TYPE(MONVOL_STRUCT_), DIMENSION(NVOLU), INTENT(IN) :: T_MONVOL
622
623
624 INTEGER, DIMENSION(*), INTENT(in) :: INDX_S
625 INTEGER, DIMENSION(*), INTENT(in) :: INDX_Q
626 INTEGER, DIMENSION(*), INTENT(in) :: INDX_TG
627 INTEGER, DIMENSION(6*NUMELS,*), INTENT(in) :: FACE_ELM_S
628 INTEGER, DIMENSION(4*NUMELQ,*), INTENT(in) :: FACE_ELM_Q
629 INTEGER, DIMENSION(3*NUMELTG,*), INTENT(in) :: FACE_ELM_TG
630
631
632
633
634
635
636 TYPE(t_ebcs_tab), INTENT(INOUT) :: EBCS_TAB
637 TYPE(USER_WINDOWS_),INTENT(IN) :: USER_WINDOWS
638
639 INTEGER, INTENT(IN) :: NUMBER_LOAD_CYL
640 TYPE(LOADS_),INTENT(IN) :: LOADS
641 TYPE(LOADS_),INTENT(INOUT) :: LOADS_PER_PROC
642 TYPE(BCS_STRUCT_),INTENT(INOUT) :: BCS_PER_PROC
643 TYPE(NAMES_AND_TITLES_),INTENT(IN) :: NAMES_AND_TITLES
644 type(constraint_), intent(inout) :: constraint_struct
645 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
646 TYPE(glob_therm_) ,intent(inout) :: glob_therm
647
648
649
650 INTEGER,DIMENSION(:,:),ALLOCATABLE:: DD_RBYM2
651 INTEGER,DIMENSION(:,:),ALLOCATABLE:: DD_RBY2
652 INTEGER I, , IM,IFILNAM(2148),IFILNAM2(2148),
653 . NUMELS_L,NUMELS8_L,NUMELS10_L,NUMELS20_L,NUMELS16_L,
654 . NUMELQ_L ,NUMELC_L, NCONLD_L,NSKYLL_L,
655 . NUMELT_L,NUMELP_L,NUMELR_L,NUMELTG_L,
656 . NUMELTG3,NUMELTG3_L,NUMELTG6_L,NUMELX_L,,
657 . NSVOIS,NQVOIS,NTGVOIS,NE_NSVOIS,NE_NQVOIS,NE_NTGVOIS,NRCVVOIS,NSNDVOIS,ILAW11,LJOINT_L,
658 . NSEGFL_L,NGROUP_L, NSTRF_L,
659 . NSLAW_L, NESLAW_L, LWSAV_L, ,
660 . LBUFEL_L, LENWA_L, INTBAG_L, ISUMNX_L, NUMEL_L,
661 . NLLINK_L, LLGRAV_L, LLBVEL_L, NFXVEL_L, OFF1,
662 . , SHF, IUN, , ISP0, NBDDACC, NBDDKIN, NBDDNOD,
663 . NBDDPROC, NBDDBOUN, NBDDNRB, NRBYKIN_L, NSKYRW_L,
664 . NSKYRBK_L, LENTHGT, NBDDI2M, NNMV_L, NNMVC_L, NBDDNCJ,
665 . LCNE_L, NISKY0_L, LCNI2_L, I2NSN_L, NISKYI2_L, NIR,
666 . NSKYRBM_L,NBDDNRBM, LSECBUF_L, NNODT_L, NNODL_L,
667 . NMADSH4_L, NMADSH3_L,NMADSOL_L,NMADNOD_L,MADCL_NMADNOD_L,
668 . IMAXIMP_L, I2NSN25_L,
669 . NUMSPH_L, LWASPH_L, NBI18_L, NSKYI18_L,
670 . NSNT_L,NMNT_L,,NMNT2_L,
671 . NFASOLFR_L, NLAGF_L, PROC, INUM, IDDL, ISKW,
672 . LEN_IA, LEN_AM, ,R_EVAL,LSKYI, NCMAX,
673 . NERVOIS, NESVOIS,NE_NERVOIS, NE_NESVOIS, NBCFD, NUMEL_L2,
674 . DD_RBM2(3,NIBVEL),
675 . EIGIPM_L(NEIPM,NEIG), LEIBUF_L, EIGIBUF_L(LEIBUF),
676 . IFLOW_L(LIFLOW), DD_LAGF(3,NSPMD+1),MY_ILEN,MY_RLEN,
677 . SKIPPON_L,LLRBE3_L,NSKYRBE3_L,
678 . NRBE3_L,NBDDRBE3M,NSLARBM_L,NSKYRBMK,NRBE3PEN_L,
679 . NRBYMKIN_L ,NBDDNRBYM,NSKTRBMK_L,NRBYMK_L,
680 . , LAG_SEC,
681 . NRBE2_L,LLRBE2_L,NBDDRBE2,NUMELCPXFE_L,NUMNODPXFE_L,
682 . ITAG_PXFEM(NPLYXFE),INDEX_PXFEM(NPLYXFE),
683 . LCNEPXFEM_L,LLCFIELD_L,
684 . ITASK,LLLOADP_L,NUMELCRKXFE_L,NUMNODCRKXFE_L,LCNECRKXFEM_L,
685 . NUMELCCRKXFE_L,NUMELTGCRKXFE_L,
686 . NUMEDGES_L,NBDDEDGE_L,
687 . SDD_R2R_ELEM,,
688 . NSPHSOL_L,FIRST_SPHSOL_L,NCLUSTER_L,IXEL,FLAG_ALLOCATE,
689 . FLAG_XFEM,NUMELIG3D_L,ISUMNIG3D_L, NUMNOR_L, NBDDNORT_L,
690 . NBDDNOR_MAX_L, NBCCFR25_L, NBCCNOR_L, NBDDEDGT_L, NBDDEDG_MAX_L, NRTMX25_L,
691 . NBDDCNDM,NS10E_L,LCNCND_L,
692 . NSEGQUADFR_L ,LINTFRIC, SIZ,LENIGRNOD_L,
693 . LENIGRBRIC_L,LENIGRQUAD_L,LENIGRSH4N_L,
694 . LENIGRTRUS_L,LENIGRBEAM_L,LENIGRSPRI_L,
695 . LENIGRSH3N_L,LENISURF_L,LENISLIN_L,NBCSCYC_L,LLBCSCYC_L,NS_DIFF,
696 . ,N_RETRACTOR_L,N_ANCHOR_REMOTE_L,N_ANCHOR_REMOTE_SEND_L,
697 . N_SEATBELT_L,N_SEATBELT_2D_L,NUMSH4N_L,NUMSH3N_L,NCLOAD_L,NPLOAD_L,
698 . NDAMP_VREL_L,IDAMP_VREL_L(NDAMP),NINIVELT_L
699 INTEGER LWAMP_L
700 INTEGER LWANMP_L
701 INTEGER NCONV_L,NFXTEMP_L,NRADIA_L,NFXFLUX_L
702 INTEGER , DIMENSION(:), ALLOCATABLE:: NUMLOCGROUP,NUMLOCCLUSTER
703 INTEGER, DIMENSION(:),ALLOCATABLE :: NODLOCAL,IEPXFEM_L,INPXFEM_L,
704 . IELXFEMC_L,INCRKXFEM_L,ELCUTC_L,ELCUTTG_L,NODENR_L
705,
706 . IELXFEMTG_L,INDEX_CRKXFEM,NODLEVXF_L, NODLOCAL_MGM
707 INTEGER, DIMENSION(:),ALLOCATABLE :: NODGLOB, IDGLOB_L, UIDGLOB_L,
708 . IXSF, IXQF, IXTGF, ITABI2M, , ITABRBE2M
709
710 INTEGER,DIMENSION(:,:),ALLOCATABLE :: IPARI_L
711 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_GLOBAL_VOIS,FACE_VOIS
712 INTEGER, DIMENSION(:),ALLOCATABLE :: ITABCNDM
713 INTEGER LENNOD_L, LENMOD_L, LENELM_L, LENSIG_L,
714 . FXBIPM_L(NBIPM,NFXBODY), LENGLM_L, LENCP_L, LENLM_L,
715 . LENFLS_L, LENDLS_L, LENMCD_L, LENGRVI_L, LENGRVR_L
716 INTEGER LINTSTAMP, LTABLE
717 INTEGER, DIMENSION(:), ALLOCATABLE :: FXBNOD_L, FXBELM_L,
718 . FXBGRVI_L, MONVOL_L
720 . , DIMENSION(:), ALLOCATABLE :: fxbmod_l, fxbsig_l,
721 . fxbglm_l, fxbcpm_l,
722 . fxbcps_l, fxblm_l,
723 . fxbfls_l, fxbdls_l,
724 . fxbgrvr_l
725 my_real,
DIMENSION(:),
ALLOCATABLE::rdpartsav
727 . , DIMENSION(:), ALLOCATABLE :: forneqs
728
729 CHARACTER*100 FILNAM
730 CHARACTER*4 PROCNAM,CHRUN
731 INTEGER NUM16SHIFT_L,SPHSHIFT_L
732 INTEGER, DIMENSION(:), ALLOCATABLE :: ISKWP_L
733
734 INTEGER ,DIMENSION(:,:), ALLOCATABLE :: SPH_SEND_ARR,SPH_RECV_ARR
735 INTEGER ,DIMENSION(:), ALLOCATABLE :: SPHLOCAL
736 INTEGER RECV_COUNT(NSPMD),SEND_COUNT(NSPMD)
737 INTEGER, DIMENSION(:), ALLOCATABLE :: IEDGECRK_L,
738 . IBORDEDGE_L,NODEDGE_L,IEDGESH4_L,IEDGESH3_L,TAGEDGE,
739 . IEDGE_L,EDGELOCAL,EDGEGLOBAL
740
741
742 INTEGER SLONFSPH_L,SLPRTSPH_L,SSPHVELN_L
743 INTEGER IBUFSSG_IO(SIBUFSSG_IO)
744 my_real,
DIMENSION(:),
ALLOCATABLE :: rbufgeo
746 . msndp(nspmd)
747 INTEGER :: LEN_TMP_NAME
748 CHARACTER(len=4096) :: TMP_NAME
749
750
751
752 INTEGER LHEADER,LVARINT,LVARREA,LMXVINT,LMXVREA,LEN_G,LEN_M,
753 . LEN_S,LEN_ADM,LEN_IG,LEN_PM
754 parameter(lheader=15)
755 parameter(lmxvint=4000)
756 parameter(lmxvrea=1000+30*maxlaw+30)
757 INTEGER TABHEAD(LHEADER),TABVINT(LMXVINT)
759 . tabvrea(lmxvrea)
760 DOUBLE PRECISION XDP(*)
761
762 INTEGER, DIMENSION(:),ALLOCATABLE :: NODGLOBXFE
763
764 TYPE(INTBUF_STRUCT_),DIMENSION(:),ALLOCATABLE :: INTBUF_TAB_L
765 TYPE(MAT_ELEM_) ,INTENT(IN) ::
766 TYPE(GROUP_PARAM_) ,DIMENSION(NGROUP) :: GROUP_PARAM_TAB
767
768
769
770 INTEGER :: MAX_ID
771
772
773
774 INTEGER :: IEBCSLGTH, IEBCS_NELEM_L(NEBCS), IEBCS_TYPE(NEBCS)
775 INTEGER, DIMENSION(:), ALLOCATABLE ::
776 . IEBCS_LISTELEM_L,
777 . IEBCS_LISTFAC_L
778 my_real,
DIMENSION(:),
ALLOCATABLE :: iebcs_listdp0_l
779
780
781
782 my_real,
DIMENSION(:,:),
ALLOCATABLE :: multi_fvm_vel_l
783
784
785
786 INTEGER, DIMENSION(:), ALLOCATABLE :: BUFFER
787 INTEGER :: BUFFER_SIZE
788
789
790
791 INTEGER (KIND=8) :: FILE_SIZE
792 real(kind=8) :: secs
793
794 INTEGER NPINCH_L
795 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
796 INTEGER, DIMENSION(:), ALLOCATABLE :: ELEMID_L
797 INTEGER, DIMENSION(:), ALLOCATABLE :: NE_LERCVOIS
798 INTEGER, DIMENSION(:), ALLOCATABLE :: NE_LESDVOIS
799 INTEGER :: II, JJ, NEBCS_FVM, IPT, ITMP
800 INTEGER :: NEBCS_PARALLEL,OTHER_NEBCS
801 INTEGER, DIMENSION(NEBCS) :: LIST_EBCS_PARALLEL,LIST_OTHER_EBCS
802 TYPE(t_ebcs_tab) :: EBCS_TAB_LOC,EBCS_TAB_LOC_2
803 TYPE(t_connectivity_ext1) :: ee_connect_l
804 LOGICAL :: IS_EBCS_PARALLEL
805 INTEGER :: ISHADOW
806
807 TYPE(SEATBELT_REMOTE_NODES_STRUCT) ANCHOR_REMOTE_L,ANCHOR_REMOTE_SEND_L
808
809 INTEGER, DIMENSION(LTITLE) :: ITITLE
810
811
812
813 IF (multi_fvm%IS_USED) THEN
814 ALLOCATE(multi_fvm_vel_l(3, numels + numelq + numeltg))
815 ELSE
816 ALLOCATE(multi_fvm_vel_l(1,1))
817 ENDIF
818
819
820 ALLOCATE(nodlocal(numnod))
821
823 ALLOCATE(iepxfem_l(numelc))
824 ALLOCATE(inpxfem_l(numnod))
825 ALLOCATE(ielxfemc_l(numelc))
826 ALLOCATE(ielxfemtg_l(numeltg))
827 ALLOCATE(incrkxfem_l(numnod))
828 ALLOCATE(numlocgroup(ngroup))
829 ALLOCATE(numloccluster(ncluster))
830 numloccluster(1:ncluster) = 0
831 ALLOCATE(iskwp_l(numskw+1))
832
833 CALL my_alloc(ipari_l,npari,
max(1,ninter))
834 CALL my_alloc(rdpartsav,npsav*npart)
835 CALL my_alloc(dd_rbym2,3,nrbym)
836 CALL my_alloc(dd_rby2,3,nrbykin)
837
838
839
840 ALLOCATE(monvol_l(lenvolu))
841 DO i = 1, lenvolu
842 monvol_l(i) = monvol(i)
843 END DO
844
845 iun = 1
846 isp0 = 0
847 IF(p==1) isp0 = 1
848
849
850
851 DO proc = 1, nspmd+1
852 dd_lagf(1,proc) = 0
853 dd_lagf(2,proc) = 0
854 END DO
855
856
857
858 IF(numnod_l>0) ALLOCATE(nodglob(numnod_l))
859 CALL f_nodloc2(numnod,p ,nodglob,nodlocal,igeo ,
860 2 iparg,ixs ,ixq,ixc ,ixtg ,
861 3 ixt ,ixp ,ixr,geo ,numnod_l)
862
863
864
865 CALL c_ngroup(iparg,p-1,numlocgroup,ngroup_l)
866
867
868
869 off = 0
870 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels8,numels8_l)
871 off = off + numels8
872 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels10,numels10_l)
873 off = off + numels10
874 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels20,numels20_l)
875 off = off + numels20
876 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numels16,numels16_l)
877 off = off + numels16
878 numels_l = numels8_l + numels10_l + numels20_l + numels16_l
879 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelq,numelq_l)
880 off = off + numelq
881 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelc,numelc_l)
882 off = off + numelc
883 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelt,numelt_l)
884 off = off + numelt
885 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelp,numelp_l)
886 off = off + numelp
887 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelr,numelr_l)
888 off = off + numelr
889 numeltg3=numeltg-numeltg6
890 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg3,numeltg_l)
891 off = off + numeltg3
892 numeltg3_l = numeltg_l
893 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numeltg6,numeltg6_l)
894 off = off + numeltg6
895 numeltg_l = numeltg3_l+numeltg6_l
896 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelx,numelx_l)
897 off = off + numelx
898 CALL c_eltloc(cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l)
899 off = off + numelig3d
900
901 IF (p==1) THEN
902 num16shift_l = 1
903 pm1shf = 2*numels16_l + 1
904 ELSE
905 num16shift_l = pm1shf
906 pm1shf = pm1shf + 2*numels16_l
907 ENDIF
908
909
910
911 ncluster_l = 0
912 IF(ncluster > 0) THEN
913 CALL c_cluster(clusters,p-1,cep,ncluster_l,numloccluster)
914 ENDIF
915
916
917
918 nsvois = 0
919 nqvois = 0
920 ntgvois = 0
921 ne_nsvois = 0
922 ne_nqvois = 0
923 ne_ntgvois = 0
924 nrcvvois = 0
925 nsndvois = 0
926 ilaw11 = 0
927 nsegfl_l = 0
928 nervois = 0
929 nesvois = 0
930 ne_nervois = 0
931 ne_nesvois = 0
932 ishadow = 0
933 IF(detonators%IS_SHADOWING_REQUIRED) ishadow = 1
934 IF (iale + ieuler + glob_therm%ITHERM + ialelag + ishadow > 0) THEN
935 numel =
max(numels,numelq)
936 numel_l =
max(numels_l,numelq_l)
937 IF (multi_fvm%IS_USED .AND. n2d /= 0) THEN
938 numel =
max(numel, numeltg)
939 numel_l =
max(numel_l, numeltg_l)
940 ENDIF
941 CALL c_vois(nsvois ,nqvois , ntgvois, nrcvvois,nsndvois,ilaw11 ,
942 2 nsegfl_l,iparg ,cep ,ale_connectivity ,numel ,
943 3 p-1 ,ixs ,ixq ,ixtg,
944 4 nervois ,nesvois,nodlocal,numnod_l,numel_l,
945 5 cel, multi_fvm,ale_elm,size_ale_elm)
946
947 IF(ale_connectivity%has_ne_connect)THEN
949 . nodglob, nodlocal,
950 . numel, numnod, numel_l, numnod_l,
951 . numels_l, numelq_l, numeltg_l,
952 . ne_nervois, ne_nesvois,
953 . ne_nsvois, ne_nqvois, ne_ntgvois)
954 ENDIF
955 ENDIF
956
957
958
959
960 iebcslgth = 0
961 ALLOCATE(iebcs_listelem_l(0))
962 ALLOCATE(iebcs_listfac_l(0))
963 ALLOCATE(iebcs_listdp0_l(0))
964 ebcs_tab_loc%nebcs_fvm = 0
965 nebcs_fvm = 0
966 nebcs_parallel = 0
967 other_nebcs = 0
969
970
972 is_ebcs_parallel = .false.
973 IF(ebcs_tab%tab(ii)%poly%type==10 .or. ebcs_tab%tab(ii)%poly%type==11) is_ebcs_parallel=.true.
974 IF (ebcs_tab%tab(ii)%poly%is_multifluid) THEN
975 nebcs_fvm = nebcs_fvm + 1
976 ELSEIF(is_ebcs_parallel) THEN
977 nebcs_parallel = nebcs_parallel + 1
978 list_ebcs_parallel(nebcs_parallel) = ii
979 ELSEIF(p==1) THEN
980 other_nebcs = other_nebcs + 1
981 list_other_ebcs(other_nebcs) = ii
982 ENDIF
983 ENDDO
984
985 CALL ebcs_tab_loc%create(nebcs_fvm)
986 ebcs_tab_loc%nebcs_fvm = nebcs_fvm
987
988
989 ebcs_tab_loc_2%nebcs_parallel = nebcs_parallel
990 CALL ebcs_tab_loc_2%create(nebcs_parallel)
991 ebcs_tab_loc_2%nebcs_loc = other_nebcs
992 ebcs_tab_loc_2%nebcs_fvm = 0
993
994
996 . numels, numelq, numeltg,
997 .
nebcs, cep, numels + numelq + numeltg,
998 . p-1, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l,iebcs_listdp0_l,iebcslgth, n2d,
999 . multi_fvm%IS_USED,0,ebcs_tab)
1000
1001
1002
1003 DEALLOCATE(iebcs_listelem_l)
1004 DEALLOCATE(iebcs_listfac_l)
1005 DEALLOCATE(iebcs_listdp0_l)
1006 ALLOCATE(iebcs_listfac_l(iebcslgth))
1007 ALLOCATE(iebcs_listelem_l(iebcslgth))
1008 ALLOCATE(iebcs_listdp0_l(iebcslgth))
1009
1010
1011
1012
1013 iebcslgth = 0
1015 . numels, numelq, numeltg,
1016 .
nebcs, cep, numels + numelq + numeltg,
1017 . p-1, iebcs_nelem_l, iebcs_type, iebcs_listelem_l, iebcs_listfac_l,iebcs_listdp0_l,iebcslgth, n2d,
1018 . multi_fvm%IS_USED,1,ebcs_tab)
1019
1020
1021
1022 nebcs_fvm = 0
1023 nebcs_parallel = 0
1024 ipt = 1
1025
1026
1027
1028
1029
1030
1032 is_ebcs_parallel = .false.
1033 IF(ebcs_tab%tab(ii)%poly%type == 10 .OR. ebcs_tab%tab(ii)%poly%type == 11 )is_ebcs_parallel = .true.
1034
1035
1036
1037 IF (ebcs_tab%tab(ii)%poly%is_multifluid) THEN
1038
1039 nebcs_fvm = nebcs_fvm + 1
1040 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly, source = ebcs_tab%tab(ii)%poly)
1041 IF (ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem)) THEN
1042 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem)
1043 ENDIF
1044 IF (ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface)) THEN
1045 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface)
1046 ENDIF
1047 IF (ALLOCATED(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0)) THEN
1048 DEALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0)
1049 ENDIF
1050 ebcs_tab_loc%tab(nebcs_fvm)%poly%nb_elem = iebcs_nelem_l(ii)
1051 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem(iebcs_nelem_l(ii)))
1052 ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%iface(iebcs_nelem_l(ii)))
1053 IF(ebcs_tab_loc%tab(nebcs_fvm)%poly%has_dp0) ALLOCATE(ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0(iebcs_nelem_l(ii)))
1054 DO jj = 1, iebcs_nelem_l(ii)
1055 ebcs_tab_loc%tab(nebcs_fvm)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1056 ebcs_tab_loc%tab(nebcs_fvm)%poly%iface(jj) = iebcs_listfac_l(ipt)
1057 IF(ebcs_tab_loc%tab(nebcs_fvm)%poly%has_dp0)ebcs_tab_loc%tab(nebcs_fvm)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1058 ipt = ipt + 1
1059 ENDDO
1060
1061
1062 ELSEIF(is_ebcs_parallel)THEN
1063 nebcs_parallel = nebcs_parallel + 1
1064 ALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly, source = ebcs_tab%tab(ii)%poly)
1065 IF(ebcs_tab%tab(ii)%poly%has_ielem) THEN
1066 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_elem = iebcs_nelem_l(ii)
1067 IF (ALLOCATED(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface)) THEN
1068 DEALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface)
1069 ENDIF
1070 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_elem = iebcs_nelem_l(ii)
1071 ALLOCATE(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface(iebcs_nelem_l(ii)))
1072 DO jj = 1, iebcs_nelem_l(ii)
1073 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1074 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%iface(jj) = iebcs_listfac_l(ipt)
1075 IF(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%has_dp0) THEN
1076 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1077 ENDIF
1078 ipt = ipt + 1
1079 ENDDO
1080 ENDIF
1081
1082
1083 ELSEIF(ebcs_tab%tab(ii)%poly%has_ielem .and. p==1) THEN
1084 ebcs_tab%tab(ii)%poly%nb_elem = iebcs_nelem_l(ii)
1085 IF (ALLOCATED(ebcs_tab%tab(ii)%poly%ielem)) THEN
1086 DEALLOCATE(ebcs_tab%tab(ii)%poly%ielem)
1087 ENDIF
1088 IF (ALLOCATED(ebcs_tab%tab(ii)%poly%iface)) THEN
1089 DEALLOCATE(ebcs_tab%tab(ii)%poly%iface)
1090 ENDIF
1091 ebcs_tab%tab(ii)%poly%nb_elem = iebcs_nelem_l(ii)
1092 ALLOCATE(ebcs_tab%tab(ii)%poly%ielem(iebcs_nelem_l(ii)))
1093 ALLOCATE(ebcs_tab%tab(ii)%poly%iface(iebcs_nelem_l(ii)))
1094 DO jj = 1, iebcs_nelem_l(ii)
1095 ebcs_tab%tab(ii)%poly%ielem(jj) = iebcs_listelem_l(ipt)
1096 ebcs_tab%tab(ii)%poly%iface(jj) = iebcs_listfac_l(ipt)
1097 IF(ebcs_tab%tab(ii)%poly%has_dp0)ebcs_tab%tab(ii)%poly%dp0(jj) = iebcs_listdp0_l(ipt)
1098 ipt = ipt + 1
1099 ENDDO
1100 ENDIF
1101
1102
1103 ENDDO
1104
1105
1106
1107 CALL split_ebcs(p,nebcs_parallel,list_ebcs_parallel,scel,cep,igrsurf,cel,ebcs_tab,ebcs_tab_loc_2)
1108
1109
1110 ENDIF
1111
1112
1113
1114 IF (multi_fvm%IS_USED) THEN
1115 IF (n2d == 0) THEN
1117 . multi_fvm_vel_l, multi_fvm)
1118 ELSE
1119 CALL c_multi_vel(cep, numelq + numeltg, numelq_l + numeltg_l, p-1,
1120 . multi_fvm_vel_l, multi_fvm)
1121 ENDIF
1122 ENDIF
1123
1124
1125
1126 lenigrnod_l = 0
1127 lenigrbric_l = 0
1128 lenigrquad_l = 0
1129 lenigrsh4n_l = 0
1130 lenigrtrus_l = 0
1131 lenigrbeam_l = 0
1132 lenigrspri_l = 0
1133 lenigrsh3n_l = 0
1134 lenisurf_l = 0
1135 lenislin_l = 0
1137 1 igrnod ,igrbric ,igrquad ,igrsh4n ,igrsh3n ,
1138 2 igrtruss ,igrbeam ,igrspring ,igrpart ,cep ,
1139 3 cel ,nodlocal ,p-1 ,lenigrnod_l,lenigrbric_l ,
1140 4 lenigrquad_l,lenigrsh4n_l,lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
1141 5 lenigrsh3n_l,frontb_r2r ,numnod_l)
1142 CALL c_isurf_str(p-1,lenisurf_l,nspmd,igrsurf_proc)
1143
1145
1146
1147
1148 imaximp_l= 0
1149 nbddi2m = 0
1150 i2nsn_l = 0
1151 nbi18_l = 0
1152 nskyi18_l= 0
1153 nsnt_l = 0
1154 nmnt_l = 0
1155 nsnt2_l = 0
1156 nmnt2_l = 0
1157 i2nsn25_l = 0
1158 numnor_l = 0
1159 IF(ninter>0) THEN
1160
1162
1164 + nbddi2m ,i2nsn_l,probint ,imaximp_l,nbi18_l ,
1165 + nskyi18_l,nsnt_l ,nmnt_l ,nsnt2_l ,nmnt2_l ,
1166 + cep ,igrbric,ipari_l ,
1167 + nodlocal ,i2nsn25_l, intercep, intbuf_tab, numnor_l,
1168 + i24maxnsne, multi_fvm,tag_scratch,indx_scrt,nindx_scrt)
1169
1170
1172 ENDIF
1173
1174
1175
1176
1177 nslaw_l = 0
1178 neslaw_l = 0
1179 lwsav_l = 0
1180 nskyrw_l = 0
1181 IF(nrwall > 0)
1182 1
CALL c_rwall(nprw ,lprw ,rwl ,
1183 2 cep ,p-1 ,nslaw_l ,neslaw_l,
1184 3 lwsav_l,nskyrw_l)
1185
1186
1187
1188 nmadsh4_l = 0
1189 nmadsh3_l = 0
1190 nmadsol_l = 0
1191 nmadnod_l = 0
1192 madcl_nmadnod_l = 0
1193
1194 IF(nexmad/=0)
1195 +
CALL c_mad(iexmad,nmadsh4_l,nmadsh3_l,nmadsol_l,nmadnod_l,
1196 + madcl_nmadnod_l,cep ,p-1 )
1197
1198
1199
1200 nslarb_l = 0
1201 nskyrbk_l = 0
1202 IF(nrbykin>0)
1203 +
CALL c_rbyk(npby,lpby,p-1,nslarb_l,nskyrbk_l)
1204
1205
1206
1207 nslarbm_l = 0
1208 nskyrbmk_l = 0
1209 IF(nrbym > 0)
1210 +
CALL c_rbymk(irbym,lcrbym,p-1,nslarbm_l,nskyrbmk_l)
1211
1212
1213
1214 nstrf_l = 0
1215 lsecbuf_l = 0
1216 nnodt_l = 0
1217 nnodl_l = 0
1218 IF(nsect>0)
1219 +
CALL c_sectio(nstrf ,cep ,p-1,nstrf_l,
1220 + lsecbuf_l,nnodt_l,nnodl_l)
1221
1222
1223
1224 ljoint_l = 0
1226 IF(njoint>0.AND.p==1)
CALL c_joint_sms(ljoint,p-1,ljoint_l)
1227 ENDIF
1228
1229
1230
1231 numpor_l = 0
1232 IF(numpor>0) THEN
1234 ENDIF
1235
1236
1237
1238 CALL c_bufel(iparg,p-1,lbufel_l)
1239
1240
1241
1242 intbag_l = 0
1243 IF(nvolu>0)THEN
1244 IF(intbag/=0)
1245 + intbag_l = lenvolu
1246 ELSEIF(intbag > 0 .AND. ialelag > 0 ) THEN
1247 intbag_l = intbag
1248 ENDIF
1249
1250
1251
1252 isumnx_l = 0
1253 IF (numelx_l>0)
1254 .
CALL c_elmx(kxx,cep,p-1,isumnx_l)
1255
1256
1257
1258 numsph_l = 0
1259 lwasph_l = 0
1260 nsphsol_l =0
1261 first_sphsol_l = 0
1262
1263 IF (nsphsol > 0) THEN
1264 sol2sph_flag = 1
1265 ELSE
1266 sol2sph_flag = 0
1267 ENDIF
1268
1269 IF (numsph>0)THEN
1270 CALL c_isph(kxsp,cepsp,p-1,numsph_l,
1271 . slonfsph_l,slprtsph,slprtsph_l,ipartsp,ssphveln_l,
1272 . nsphsol_l ,first_sphsol_l)
1273 ENDIF
1274
1275 IF (p==1) THEN
1276 sphshift_l = 1
1277 pm1sph = 4*numsph_l + 1
1278 ELSE
1279 sphshift_l = pm1sph
1280 pm1sph = pm1sph + 4*numsph_l
1281 ENDIF
1282
1283
1284
1285 nconld_l = 0
1286 IF (nconld>0)
1287 .
CALL c_ibcl(ibcl,cep,p-1,nconld_l)
1288
1289
1290
1291 nfxvel_l = 0
1292 IF (nfxvel>0)
1293 .
CALL c_ibfv(ibfv,nfxvel,nfxvel_l,p-1,dd_lagf)
1294
1295
1296
1297 nllink_l=0
1298 nskyll_l=0
1299 IF (nlink>0)
1300 .
CALL c_llink(nnlink,lllink,p-1,nllink_l,nskyll_l)
1301
1302
1303
1304 llgrav_l=0
1305 IF (ngrav>0)
1306 .
CALL c_igrav(igrav,lgrav,llgrav_l,p-1,nodlocal,numnod_l)
1307
1308
1309
1310 llbvel_l=0
1311 nskyrbm_l = 0
1312 IF (nibvel>0)
1313 .
CALL c_ibvel(ibvel,lbvel,llbvel_l,nskyrbm_l,p-1)
1314
1315
1316
1317 nrbe2_l=0
1318 llrbe2_l=0
1319 nbddrbe2 = 0
1320 IF (nrbe2>0)
1321 .
CALL c_irbe2(irbe2,lrbe2,p-1 ,nrbe2_l,
1322 . llrbe2_l ,nbddrbe2)
1323
1324
1325
1326 nrbe3_l=0
1327 llrbe3_l=0
1328 nbddrbe3m = 0
1329 nskyrbe3_l = 0
1330 nrbe3pen_l=0
1331 IF (nrbe3>0)
1332 .
CALL c_irbe3(irbe3,lrbe3,nskyrbe3_l,p-1,
1333 . nrbe3_l,llrbe3_l ,nbddrbe3m,nrbe3pen_l)
1334
1335
1336
1337 IF (nummpc>0.AND.p==1)THEN
1338 inum = nummpc+1
1339 iddl = inum +lmpc
1340 iskw = iddl +lmpc
1341 CALL c_ibmpc(ibmpc,ibmpc(inum),ibmpc(iddl),ibmpc(iskw),dd_lagf)
1342 END IF
1343
1344
1345
1346 numel_l = numels_l + numelq_l + numelc_l + numelt_l + numelp_l
1347 + + numelr_l + numeltg_l+ numelx_l + numsph_l
1348 + + numelig3d_l
1349
1350
1351
1352 lenthgt = nithgr*(nthgrp0+nbr_th_monvol)
1353
1354
1355
1356 nlagf_l = 0
1357 CALL c_front(p ,nbddacc,nbddkin,nbddnrb,
1358 2 npby ,nrbykin_l,ljoint ,nbddncj,ibvel ,
1359 3 nbddnrbm ,iadll ,lll ,nlagf_l, front_rm,
1360 4 nrbymk_l ,nbddnrbym,
1361 5 sdd_r2r_elem,addcsrect,csrect ,nbddnort_l,nbddnor_max_l,
1362 6 nbccnor_l,nbccfr25_l,nbddedgt_l,nbddedg_max_l,nrtmx25_l ,
1363 7 ipari ,intbuf_tab,intercep ,nodglob ,nodlocal ,
1364 8 numnod_l ,nloc_dmg)
1365 nbddnod = nbddacc+nbddkin
1366
1367
1368
1369 IF (ipari0/=0) THEN
1370 CALL c_pon(addcne ,numnod_l,nodglob ,lcne_l ,i2nsnt ,
1371 2 addcni2,lcni2_l ,monvol ,
1372 3 cep ,p-1 ,nnmv_l ,nnmvc_l ,addcne_pxfem,
1373 4 lcnepxfem_l,inod_pxfem ,addcne_crkxfem,lcnecrkxfem_l,
1374 5 inod_crkxfem,addcncnd,lcncnd_l,igrsurf)
1375 nisky0_l=8*numels_l+6*numels10_l+8*numels16_l+12*numels20_l+
1376 + 4*numelq_l+4*numelc_l+2*numelt_l+2*numelp_l+
1377 + 3*numelr_l+3*numeltg_l+3*numeltg6_l+4*nconld_l
1378 nir = 4
1379 IF(n2d/=0) nir = 2
1380 niskyi2_l = i2nsn_l*nir
1381 ELSE
1382 lcni2_l = 0
1383 lcne_l = 0
1384 nisky0_l=0
1385 niskyi2_l = 0
1386 nnmv_l = 0
1387 nnmvc_l = 0
1388 lcnepxfem_l = 0
1389 lcnecrkxfem_l = 0
1390 lcncnd_l = 0
1391 ENDIF
1392
1393
1394
1395 IF (nfxbody>0) THEN
1396
1398 . fxbipm, fxbnod, nodlocal, iparg, fxbelm,
1399 . lennod_l, lenmod_l, lenelm_l, lensig_l, p-1,
1400 . lengrvi_l, fxbgrvi )
1401
1402 ALLOCATE(fxbnod_l(lennod_l*2), fxbmod_l(lenmod_l*6),
1403 . fxbelm_l(lenelm_l), fxbsig_l(lensig_l),
1404 . fxbgrvi_l(lengrvi_l))
1405
1407 . fxbipm, fxbnod, nodlocal, iparg, fxbelm,
1408 . fxbnod_l, fxbmod_l, fxbelm_l, fxbsig_l, p-1 ,
1409 . fxbmod, fxbsig, fxbipm_l, fxbgrvi,
1410 . fxbgrvi_l, lennod_l, itask)
1411
1413 . lenglm_l, lencp_l, lenlm_l, lenfls_l, lendls_l,
1414 . lenmcd_l, lengrvr_l, fxbipm_l, p-1 )
1415
1416 ALLOCATE(fxbglm_l(lenglm_l), fxbcpm_l(lencp_l),
1417 . fxbcps_l(lencp_l), fxblm_l(lenlm_l),
1418 . fxbfls_l(lenfls_l), fxbdls_l(lendls_l),
1419 . fxbgrvr_l(lengrvr_l))
1420
1422 . fxbglm, fxbcpm, fxbcps, fxblm, fxbfls,
1423 . fxbdls, fxbgrvr, fxbipm , p-1, fxbglm_l,
1424 . fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l,
1425 . fxbgrvr_l, fxbipm_l)
1426 ELSE
1427 lennod_l =0
1428 lenmod_l =0
1429 lenelm_l =0
1430 lensig_l =0
1431 lengrvi_l=0
1432 lenglm_l =0
1433 lencp_l =0
1434 lenlm_l =0
1435 lenfls_l =0
1436 lendls_l =0
1437 lenmcd_l =0
1438 lengrvr_l=0
1439 ENDIF
1440
1441
1442
1443 leibuf_l = 0
1444 IF (neig>0)
1445 .
CALL c_eig(eigipm , eigibuf , eigrpm, nodlocal, eigipm_l,
1446 . eigibuf_l, leibuf_l)
1447
1448
1449
1450 n_seatbelt_l = 0
1451 n_seatbelt_2d_l = 0
1452 n_slipring_l = 0
1453 n_retractor_l = 0
1454 n_anchor_remote_l = 0
1455 n_anchor_remote_send_l = 0
1456 off = numels + numelq + numelc + numelt + numelp
1457
1458 IF (nslipring + nretractor > 0) THEN
1459 CALL c_seatbelts(n_slipring_l,n_retractor_l,p,nodlocal,elbuf_tab,
1460 . iparg,n_anchor_remote_l,n_anchor_remote_send_l,anchor_remote_l,anchor_remote_send_l,
1461 . n_seatbelt_l,n_seatbelt_2d_l,cep,off)
1462 ENDIF
1463
1464 IF (nflow>0)
CALL m_flow(iflow, iflow_l, nodlocal, p, memflow)
1465
1466
1467
1470 nodlocal_mgm(1:numnod) = nodlocal(1:numnod)
1471 max_id = maxval(nodlocal(1:numnod))
1472
1474 max_id = max_id + 1
1475 nodlocal_mgm(numnod + i) = max_id
1476 ENDDO
1477
1478
1479
1480
1481
1484 ELSE
1486 . monvol, nodlocal, ixs, p, numnod,fvmain)
1487 ENDIF
1488 ENDIF
1489
1490
1491
1492 nfasolfr_l= 0
1493 IF(nfasolfr/=0 .AND. numels_l/=0)THEN
1494 CALL c_fasolfr(fasolfr, cep, p-1, cel, nfasolfr_l)
1495 ENDIF
1496
1497
1498
1499 nsegquadfr_l= 0
1500 IF(nsegquadfr/=0 .AND. numelq_l/=0)THEN
1501 CALL c_segquadfr(segquadfr, cep, p-1, cel, nsegquadfr_l)
1502 ENDIF
1503
1504
1505
1506 nconv_l = 0
1507 IF (glob_therm%NUMCONV > 0)
1508 .
CALL c_iconv(ibcv,cep,p-1,nconv_l,glob_therm%NUMCONV,glob_therm%NICONV)
1509
1510
1511
1512 nradia_l = 0
1513 IF (glob_therm%NUMRADIA > 0)
CALL c_iradia(ibcr,cep,p-1,nradia_l,
1514 . glob_therm%NUMRADIA,glob_therm%NUMCONV,glob_therm%NIRADIA)
1515
1516
1517
1518 nfxflux_l = 0
1519 IF (glob_therm%NFXFLUX > 0)
CALL c_ithflux(ibfflux,cep,p-1,nfxflux_l,
1520 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%NITFLUX)
1521
1522
1523
1524 nfxtemp_l = 0
1525 IF (glob_therm%NFXTEMP > 0)
1526 .
CALL c_ibft(ibft,glob_therm%NFXTEMP,nfxtemp_l,p-1,dd_lagf,glob_therm%NIFT)
1527
1528
1529
1530 lag_sec=0
1531 IF(lag_ncf+lag_ncl > 0)
1532 .
CALL c_lag(ipari,nprw,lag_sec)
1533
1534
1535
1536 numelcpxfe_l = 0
1537 numnodpxfe_l = 0
1538 IF(iplyxfem > 0 ) THEN
1539 off = numels + numelq
1540
1541 CALL c_pxfem(cep(
min(off+1,len_cep)),p-1 ,nodglob ,iel_pxfem ,inod_pxfem,
1542 . iepxfem_l,inpxfem_l, numelc , numnod_l ,numelc_l,
1543 . numelcpxfe_l,numnodpxfe_l,index_pxfem)
1544 ENDIF
1545
1546
1547
1548 numelcrkxfe_l = 0
1549 numelccrkxfe_l = 0
1550 numeltgcrkxfe_l = 0
1551 numnodcrkxfe_l = 0
1552 numedges_l = 0
1553 nbddedge_l= 0
1554 incrkxfem_l=0
1555 ielxfemc_l=0
1556 ielxfemtg_l=0
1557 nod_xfe_l = 0
1558 IF(icrack3d > 0)THEN
1559 ALLOCATE(tagedge(numedges))
1560 tagedge = 0
1561
1562 off = numels + numelq
1564 . cep(
min(off+1,len_cep)),p-1,iel_crkxfem,ielxfemc_l,numelc,
1565 . numelc_l,numelccrkxfe_l,numedges_l,iedgesh,4,tagedge)
1566 off = off + numelc + numelt + numelp + numelr
1567 IF(numeltg > 0)THEN
1569 . cep(
min(off+1,len_cep)),p-1,iel_crkxfem(1+numelc),ielxfemtg_l,numeltg,
1570 . numeltg_l,numeltgcrkxfe_l,numedges_l,
1571 . iedgesh(1+4*ecrkxfec),3,tagedge)
1572 END IF
1573 numelcrkxfe_l = numelccrkxfe_l + numeltgcrkxfe_l
1574
1575 IF(numelcrkxfe_l>0)THEN
1576 ALLOCATE(nodglobxfe(4*numelcrkxfe_l*nlevmax))
1577 nodglobxfe = 0
1578 ENDIF
1579
1580 ALLOCATE(index_crkxfem(ncrkxfe))
1581 ALLOCATE(nodlevxf_l(ncrkxfe))
1582 index_crkxfem = 0
1583 nodlevxf_l = 0
1584
1585 CALL c_ncrkxfem(nodglob ,inod_crkxfem ,incrkxfem_l ,
1586 . numnod_l,numnodcrkxfe_l,index_crkxfem,p-1,
1587 . ixc,ixtg,cep_crkxfem,nodlocal,nodlevxf_l,
1588 . nodlevxf,nodglobxfe,nod_xfe_l,crkshell)
1589
1590 ALLOCATE(iedgecrk_l(4*numelccrkxfe_l+3*numeltgcrkxfe_l),
1591 . ibordedge_l(numedges_l),nodedge_l(2*numedges_l),
1592 . iedgesh4_l(4*numelccrkxfe_l),
1593 . iedgesh3_l(3*numeltgcrkxfe_l),iedge_l(numedges_l))
1594 ALLOCATE(edgelocal(numedges))
1595 ALLOCATE(edgeglobal(numedges))
1596 iedgecrk_l = 0
1597 ibordedge_l = 0
1598 nodedge_l = 0
1599 iedgesh4_l = 0
1600 iedgesh3_l = 0
1601 iedge_l = 0
1602 edgelocal = 0
1603 edgeglobal = 0
1604 CALL c_crkedge(ielxfemc_l,ielxfemtg_l,iedgecrk_l,numedges,
1605 . iedgesh ,iedgesh(1+4*ecrkxfec),cep ,p-1,
1606 . ibordedge ,ibordedge_l,numedges_l,nodedge,
1607 . nodedge_l ,nodlocal ,iedgesh4_l,iedgesh3_l,
1608 . iel_crkxfem,iedge_l ,iedge ,ecrkxfec ,
1609 . edgelocal ,nbddedge_l,iedge_tmp,edgeglobal)
1610 ELSE
1611 ALLOCATE(iedgecrk_l(0))
1612 ALLOCATE(ibordedge_l(0))
1613 ALLOCATE(nodedge_l(0))
1614 ALLOCATE(iedgesh4_l(0),iedgesh3_l(0))
1615 ALLOCATE(tagedge(0))
1616 ALLOCATE(iedge_l(0))
1617 ALLOCATE(edgelocal(0))
1618 ALLOCATE(edgeglobal(0))
1619 ALLOCATE(nodglobxfe(0))
1620 ALLOCATE(index_crkxfem(0))
1621 ALLOCATE(nodlevxf_l(0))
1622 ENDIF
1624 1 lenwa_l ,nthwa ,nairwa ,numels_l ,numelq_l,
1625 2 numelc_l,numeltg_l,numelt_l ,numelp_l ,numelr_l,
1626 3 numnod_l,nmnt ,l_mul_lag1,l_mul_lag,maxnx ,
1627 4 lwasph_l,numsph_l ,lwaspio, nrcvvois,
1628 5 lwamp_l, lwanmp_l,glob_therm%ITHERM )
1629
1630
1631
1632 llcfield_l=0
1633 llloadp_l=0
1634 IF (nloadc>0)
1635 .
CALL c_icfield(icfield,lcfield,llcfield_l,p-1)
1636 IF (nloadp>0) THEN
1637 CALL c_iloadp(iloadp,lloadp,llloadp_l,p-1)
1638 nisky0_l=nisky0_l+4*llloadp_l
1639 ENDIF
1640
1641
1642
1643 isumnig3d_l = 0
1644 IF (numelig3d>0)
1645 .
CALL c_elig3d(kxig3d,p-1,isumnig3d_l)
1646
1647
1648
1649 ns10e_l = 0
1650 nbddcndm = 0
1651 msndp(p) = zero
1652 IF (ns10e>0)
1653 .
CALL c_icnds10(icnds10,itagnd,p-1,ns10e_l,nbddcndm,ms,msndp(p))
1654
1655
1656
1657 nbcscyc_l = 0
1658 llbcscyc_l = 0
1659 IF (nbcscyc>0)
1660 .
CALL c_ibcscyc(ibcscyc,lbcscyc,p-1 ,nbcscyc_l,llbcscyc_l)
1661
1662
1663
1664 numsh4n_l = 0
1665 numsh3n_l = 0
1666 IF (ndrape > 0) THEN
1667 off = numels + numelq
1669 CALL c_drape(drapeg%INDX,cep(
min(off+1,len_cep)),p-1,
1670 . numelc,numsh4n_l)
1671 ENDIF
1672
1673 off = off + numelc + numelt + numelp + numelr
1674
1676 CALL c_drape(drapeg%INDX(numelc+1),cep(
min(off+1,len_cep)),p-1,
1677 . numeltg,numsh3n_l)
1678 ENDIF
1679 ENDIF
1680
1681
1682
1683 ncload_l = 0
1684 IF (loads%NLOAD_CLOAD>0)
1685 .
CALL c_nloads(cep,p-1,loads%NLOAD_CLOAD,ncload_l)
1686
1687
1688
1689 npload_l = 0
1690 IF (loads%NLOAD_PLOAD>0)
1691 .
CALL c_nloads(cep,p-1,loads%NLOAD_PLOAD,npload_l)
1692
1693
1694
1695 ninivelt_l = 0
1696 IF (loads%NINIVELT>0) THEN
1697 CALL c_inivell(
1698 . ngrnod, ngrbric, ngrquad, ngrsh3n,
1699 . igrnod, igrbric, igrquad, igrsh3n,
1700 . p-1 , cep, scep, nodlocal,
1701 . numnod,loads%NINIVELT,loads%INIVELT,ninivelt_l)
1702 ENDIF
1703
1704
1705
1706 ndamp_vrel_l = 0
1707 idamp_vrel_l(1:ndamp) = 0
1708 IF (ndamp > 0)
CALL c_dampvrel(dampr,igrnod,p,idamp_vrel_l,ndamp_vrel_l,
1709 . ngrnod,ndamp,nrdamp)
1710
1711
1712
1713 len_ia = 0
1714 len_am = 0
1715 ir_ = p
1716 WRITE(chrun,'(I4.4)')irun
1717 WRITE(procnam,'(I4.4)')p
1718 filnam = rootnam(1:rootlen)//'_'//chrun//'_'//procnam//'.rst'
1721
1722 DO i=1,len_tmp_name
1723 ifilnam(i)=ichar(tmp_name(i:i))
1724 ENDDO
1725 DO i=1,rootlen+14
1726 ifilnam2(i)=ichar(filnam(i:i))
1727 ENDDO
1729 CALL open_c(ifilnam,len_tmp_name,0)
1730#ifdef DEBUG_RST
1731 IF(flush_rst_to_txt) THEN
1732 OPEN(unit=777+itask,file=trim(filnam)//'.txt'
1733 . ,status='UNKNOWN',form='FORMATTED')
1734 ENDIF
1735#endif
1737 len_ia = len_ia + rootlen+14
1738
1739
1740 skippon_l = numnod_l+1 + lcne_l + lcni2_l +
1741 . 8*numels_l + 6*numels10_l + 8*numels16_l + 12*numels20_l +
1742 . 4*numelq_l + 4*numelc_l + 2*numelt_l + 2*numelp_l +
1743 . 3*numelr_l + 3*numeltg_l + 3*numeltg6_l +
1744 . 4*nnmv_l + 4*nconld_l + 4*nconv_l + nskyrw_l + nskyrbk_l +
1745 . niskyi2_l +
1746 . nnmv_l + nnmvc_l + nskyll_l + nskyrbm_l + nskyi18_l +
1747 . nskyrbmk_l + 4*nradia_l + 4*nfxflux_l + 4*llloadp_l
1748
1749 IF (i2nsnt>0) THEN
1750 skippon_l = skippon_l + numnod_l +1
1751 ENDIF
1752
1753
1754
1755
1756
1758 1 lmxvint ,lvarint ,tabvint ,ngroup_l ,lbufel_l ,
1759 2 lenwa_l ,intbag_l ,numelq_l ,numels_l ,numelc_l ,
1760 3 numelt_l ,numelr_l ,numelp_l ,numelx_l ,isumnx_l ,
1761 4 numels10_l,numels20_l,numels8_l ,numels16_l,lnom_opt ,
1762 5 numeltg_l ,numeltg6_l,nslarb_l ,numnod_l ,
1763 6 numel_l ,nsvois ,nqvois ,ntgvois, lenlas ,
1764 7 nllink_l ,llgrav_l ,llbvel_l ,nslaw_l ,
1765 8 neslaw_l ,nskyll_l ,nstrf_l ,ljoint_l ,
1766 9 lenvolu ,lenthgt ,lbufmat ,lbufgeo ,lbufsf ,
1767 a lenxlas ,lwsav_l ,lsecbuf_l ,numpor_l ,
1768 b npts ,nbddnod ,nfxvel_l ,nbddnrb ,
1769 c lcne_l ,nskyrw_l ,nskyrbk_l ,nbddi2m ,lcni2_l ,
1770 d niskyi2_l ,i2nsnt ,nconld_l ,nnmv_l ,nnmvc_l ,
1771 e nbddncj ,nbddnrbm ,nskyrbm_l ,nnodt_l ,nnodl_l ,
1772 f nmadsh4_l ,nmadsh3_l ,nmadsol_l ,nmadnod_l ,imaximp_l,
1773 g isp0 ,num16shift_l ,numsph_l ,lwasph_l ,
1774 h sphshift_l,nrcvvois ,nsndvois ,nervois ,
1775 i nesvois ,ilaw11 ,nsegfl_l ,
1776 j nbi18_l ,nskyi18_l ,leibuf_l ,
1777 k lenthg ,nfasolfr_l,lennod_l ,lenmod_l ,lenelm_l ,
1778 l lensig_l ,lenglm_l ,lencp_l ,lenlm_l ,lenfls_l ,
1779 m lendls_l ,lenmcd_l ,lengrvi_l ,lengrvr_l ,nlagf_l ,
1780 n lrbagale ,skippon_l ,nconv_l ,nfxtemp_l ,nfxflux_l ,
1781 o nrbe3_l ,llrbe3_l ,nbddrbe3m ,nskyrbe3_l,nslarbm_l ,
1782 n nskyrbmk_l,nbddnrbym ,madcl_nmadnod_l,nradia_l,nrbe2_l,
1783 q llrbe2_l ,nbddrbe2 ,numelcpxfe_l,
1784 r numnodpxfe_l,lcnepxfem_l,llcfield_l,
1785 s llloadp_l,numelcrkxfe_l,numnodcrkxfe_l,lcnecrkxfem_l,
1786 t slonfsph_l,slprtsph_l,ssphveln_l,i2nsn25_l,numelccrkxfe_l,
1787 u numeltgcrkxfe_l,numedges_l,nbddedge_l,sdd_r2r_elem,nod_xfe_l,
1788 v nsphsol_l,first_sphsol_l,ncluster_l,lenthgr,numnor_l,
1789 w nbddnort_l,nbddnor_max_l,nbccnor_l,nbccfr25_l,ns10e_l,
1790 x lcncnd_l,nbddcndm,
nebcs,iebcslgth,multi_fvm,nsegquadfr_l,
1791 y nbddedgt_l,nbddedg_max_l,nrtmx25_l,lenigrnod_l,lenigrbric_l,
1792 z lenigrquad_l,lenigrsh4n_l,lenigrtrus_l,lenigrbeam_l,lenigrspri_l,
1793 1 lenigrsh3n_l,lenisurf_l,lenislin_l, ne_nervois, ne_nesvois,
1794 2 ne_nsvois, ne_nqvois, ne_ntgvois,nbcscyc_l,llbcscyc_l,
1795 3 ale_connectivity,n_slipring_l,n_retractor_l,n_anchor_remote_l,
1796 4 n_anchor_remote_send_l,n_seatbelt_l,n_seatbelt_2d_l,dynain_data,
1797 5 numsh4n_l,numsh3n_l,interfaces%PARAMETERS,sensors,loads_per_proc%NLOAD_CYL,
1798 6 ncload_l,npload_l,ndamp_vrel_l, unitab,
1799 7 lwamp_l,lwanmp_l,ninivelt_l,glob_therm,pblast)
1800
1801
1802 CALL wrcomr(lmxvrea,lvarrea,tabvrea,msndp(p),p,interfaces%PARAMETERS,
1803 . unitab ,glob_therm, output)
1804
1805
1806
1808 ititle(i) = ichar( names_and_titles%TITLE(i:i) )
1809 ENDDO
1811
1812
1813
1814
1815 tabhead(1) =iradios
1816
1817 tabhead(2) =iresfil
1818
1819 tabhead(3) =itestv
1820
1821 tabhead(4) =irun
1822
1823 IF(irun==0)THEN
1824 icodrun =0
1825 ELSE
1826 icodrun =2
1827 ENDIF
1828 tabhead(5) =icodrun
1829
1830 tabhead(6) =codvers
1831
1832 tabhead(7) =iminver
1833
1834 tabhead(8) =isrcver
1835
1836 tabhead(9) =invers
1837
1838 IF(irun==0)THEN
1839 scodver=codvers
1840 sminver=iminver
1841 ssrcver=isrcver
1842 ENDIF
1843
1844 tabhead(10)=scodver
1845
1846 tabhead(11)=sminver
1847
1848 tabhead(12)=ssrcver
1849
1850 tabhead(13)=invstr
1851
1852 tabhead(14)=lvarint
1853 tabhead(15)=lvarrea
1854
1857 len_ia = len_ia + lheader + 1
1858
1860 len_ia = len_ia + lvarint
1861
1862 CALL checksum_write_starter_restart(output)
1863#ifdef dnc
1864 CALL wrdum_info()
1865#endif
1866
1867
1869 len_ia = len_ia + numnod_l
1871 len_ia = len_ia + 2*numnod_l
1872
1873
1874
1875 len_g = npropgi*numgeo
1876 len_m = npropmi*nummat
1877 CALL w_inloc(icode,nodglob,numnod_l,len_ia)
1878
1879
1880 IF(numsph>0.AND.nspcond>0)THEN
1881 CALL w_iskewsp(iskew,nodglob,numnod_l,numsph_l,cepsp,p-1,len_ia)
1882 ELSE
1883 CALL w_inloc(iskew,nodglob,numnod_l,len_ia)
1884 END IF
1886 1 iskn,numskw,
min(iun,nspcond)*numsph_l,iframe,numfram,nodlocal,
1887 2 p ,numnod,cepsp ,len_ia )
1889 len_ia = len_ia + 5*nbcslag
1890 CALL write_i_c(ipart,lipart1*(npart+nthpart))
1891 len_ia = len_ia + (npart+nthpart)
1892 CALL write_i_c(iparth,2*9*(npart+nthpart))
1893 len_ia
1894
1895
1896
1897 off = 0
1898 CALL w_ieloc(iparts,cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_ia)
1899 off = off + numels
1900 CALL w_ieloc(ipartq,cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_ia)
1901 off = off + numelq
1902 CALL w_ieloc(ipartc,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_ia)
1903 off = off + numelc
1904 CALL w_ieloc(ipartt,cep(
min(off+1,len_cep)),p-1,numelt,numelt_l,len_ia)
1905 off = off + numelt
1906 CALL w_ieloc(ipartp,cep(
min(off+1,len_cep)),p-1,numelp,numelp_l,len_ia)
1907 off = off + numelp
1908 CALL w_ieloc(ipartr,cep(
min(off+1,len_cep)),p-1,numelr,numelr_l,len_ia)
1909 off = off + numelr
1910 CALL w_ieloc(iparttg,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_ia)
1911 off = off + numeltg
1912 CALL w_ieloc(ipartx,cep(
min(off+1,len_cep)),p-1,numelx,numelx_l,len_ia)
1913 off = off + numelx
1914 CALL w_ieloc(ipartsp,cepsp,p-1,numsph,numsph_l,len_ia)
1915
1916 CALL w_ieloc(ipartig3d,cep(
min(off+1,len_cep)),p-1,numelig3d,numelig3d_l,len_ia)
1917
1918 IF(p==1)THEN
1920 len_ia = len_ia + lnom_opt
1921 ENDIF
1922
1923 CALL python_serialize(python,buffer, buffer_size)
1925
1927 len_ia = len_ia + 3*nfunct+1
1928
1929
1930
1931
1932 off = numels+numelq+numelc+numelt+numelp+numelr
1933 CALL w_ixloc(ixtg,nixtg,3,cep(
min(off+1,len_cep)),p-1,
1934 + numeltg,numeltg_l,nodlocal,len_ia)
1935
1936
1937
1938 ishadow = 0
1939 IF(detonators%IS_SHADOWING_REQUIRED) ishadow = 1
1940 IF (iale+ieuler+glob_therm%ITHERM+ialelag +ishadow > 0) THEN
1941 IF(numels_l+numelq_l+numeltg_l>0) THEN
1942 ALLOCATE(idglob_l(numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois))
1943 ALLOCATE(uidglob_l(numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois))
1944 ALLOCATE( id_global_vois(numels_l*6+numelq_l*4+3*numeltg_l) )
1945 id_global_vois(1:numels_l*6+numelq_l*4+3*numeltg_l) = 0
1946 ALLOCATE( face_vois(numels_l*6+numelq_l*4+3*numeltg_l) )
1947 face_vois(1:numels_l*6+numelq_l*4+3*numeltg_l) = -1
1948 ELSE
1949 ALLOCATE( id_global_vois(0) )
1950 ALLOCATE(idglob_l(0))
1951 ALLOCATE(uidglob_l(0))
1952 ALLOCATE( face_vois(0) )
1953 ENDIF
1954 numel =
max(numels,numelq,numeltg)
1955 IF(nsvois>0)
1956 + ALLOCATE(ixsf(nsvois*nixs))
1957 IF(nqvois>0)
1958 + ALLOCATE(ixqf(nqvois*nixq))
1959 IF(ntgvois>0)
1960 + ALLOCATE(ixtgf(ntgvois*nixtg))
1961 CALL c_ixfloc(numel,ixsf,ixqf,ixtgf,nsvois,
1962 + nqvois,ntgvois,p-1,iparg,cep,cel,
1963 + ale_connectivity,ee_connect_l,ixs,ixq,ixtg,nodlocal,numels_l,numelq_l,numeltg_l,multi_fvm,
1964 + id_global_vois,indx_s,indx_q,indx_tg,face_elm_s,face_elm_q,face_elm_tg,face_vois,
1965 + detonators%IS_SHADOWING_REQUIRED)
1966
1968 len_ia = len_ia + nixtg * ntgvois
1969 IF (ntgvois > 0)
1970 + DEALLOCATE(ixtgf)
1971 IF (multi_fvm%NS_DIFF) THEN
1972 CALL c_idglob(numel, numels_l, numelq_l, numeltg_l, numels, numelq, numeltg,
1973 . p - 1, cel, cep, iparg, ale_connectivity, ixs,ixq,ixtg, idglob_l, uidglob_l, n2d, ngroup, nparg)
1974 ENDIF
1975 ENDIF
1976
1977
1978
1979 off = off+numeltg3
1980 CALL w_ixbloc(ixtg6,3,4,cep(
min(off+1,len_cep)),p-1,
1981 + numeltg6,numeltg6_l,nodlocal,len_ia)
1982
1983
1984
1985
1986 off = 0
1987 CALL w_ixloc(ixs,nixs,8,cep(
min(off+1,len_cep)),p-1,
1988 + numels,numels_l,nodlocal,len_ia)
1989
1990 IF (iale+ieuler+glob_therm%ITHERM+ialelag > 0) THEN
1992 len_ia = len_ia + nixs*nsvois
1993 IF(nsvois>0)
1994 + DEALLOCATE(ixsf)
1995 ENDIF
1996
1997
1998
1999 off = off+numels8
2000 CALL w_ixaloc(ixs10,6,cep(
min(off+1,len_cep)),p-1,
2001 + numels10,numels10_l,nodlocal,len_ia)
2002 off = off+numels10
2003 CALL w_ixaloc(ixs20,12,cep(
min(off+1,len_cep)),p-1,
2004 + numels20,numels20_l,nodlocal,len_ia)
2005 off = off+numels20
2006 CALL w_ixaloc(ixs16,8,cep(
min(off+1,len_cep)),p-1,
2007 + numels16,numels16_l,nodlocal,len_ia)
2008 off = off+numels16
2009 CALL w_ixloc(ixq,nixq,4,cep(
min(off+1,len_cep)),p-1,
2010 + numelq,numelq_l,nodlocal,len_ia)
2011 off = off+numelq
2012
2013
2014
2015 IF (iale+ieuler+glob_therm%ITHERM+ialelag > 0) THEN
2017 len_ia = len_ia + nixq*nqvois
2018 IF(nqvois>0)
2019 + DEALLOCATE(ixqf)
2020 ENDIF
2021
2022 CALL w_ixloc(ixc,nixc,4,cep(
min(off+1,len_cep)),p-1,
2023 + numelc,numelc_l,nodlocal,len_ia)
2024 off = off+numelc
2025 CALL w_ixloc(ixt,nixt,2,cep(
min(off+1,len_cep)),p-1,
2026 + numelt,numelt_l,nodlocal,len_ia)
2027 off = off+numelt
2028 CALL w_ixloc(ixp,nixp,3,cep(
min(off+1,len_cep)),p-1,
2029 + numelp,numelp_l,nodlocal,len_ia)
2030 off = off+numelp
2031 CALL w_ixloc(ixr,nixr,3,cep(
min(off+1,len_cep)),p-1,
2032 + numelr,numelr_l,nodlocal,len_ia)
2033
2034
2035
2036
2037 CALL w_inloc(itab,nodglob,numnod_l,len_ia)
2038 CALL w_itabm1(itabm1,itabm1(numnod+1),nodglob,nodlocal,numnod_l,
2039 . itab,len_ia)
2040
2041
2042
2043 IF(ngjoint/=0 .AND. p == 1) THEN
2044 CALL w_gjoint(gjbufi,ngjoint,lkjni,nodlocal,len_ia)
2045 END IF
2046
2047
2048
2049 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0) THEN
2050 IF(iale+ieuler+ialelag/=0)
2051 .
CALL w_inloc(nale,nodglob,numnod_l,len_ia)
2052
2053 itmp = SIZE(ee_connect_l%iad_connect)
2055 len_ia = len_ia + 1
2056 CALL write_i_c(ee_connect_l%iad_connect, itmp)
2057 len_ia = len_ia + itmp
2058
2059 itmp = SIZE(ee_connect_l%connected)
2061 len_ia = len_ia + 1
2062 CALL write_i_c(ee_connect_l%connected, itmp)
2063 len_ia = len_ia + itmp
2064
2065 itmp = SIZE(ee_connect_l%type)
2067 len_ia = len_ia + 1
2069 len_ia = len_ia + itmp
2070
2071 itmp = SIZE(ee_connect_l%iface2)
2073 len_ia = len_ia + 1
2074 CALL write_i_c(ee_connect_l%iface2, itmp)
2075 len_ia = len_ia + itmp
2076
2077
2078 CALL write_i_c(id_global_vois,numels_l*6+numelq_l*4+3*numeltg_l)
2079 len_ia = len_ia + numels_l*6+numelq_l*4+3*numeltg_l
2080
2081 CALL write_i_c(face_vois,numels_l*6+numelq_l*4+3*numeltg_l)
2082 len_ia = len_ia + numels_l*6+numelq_l*4+3*numeltg_l
2083
2084
2085 DEALLOCATE(id_global_vois)
2086 DEALLOCATE(face_vois)
2087
2088 ALLOCATE(elemid_l(numel))
2089
2090
2091
2092 IF(ale_connectivity%has_ne_connect)THEN
2094 . nodglob, nodlocal,
2095 . numel, numnod, numel_l, numnod_l,
2096 . numels_l, numelq_l, numeltg_l,
2097 . ne_nervois, ne_nesvois,
2098 . ne_nsvois, ne_nqvois, ne_ntgvois, elemid_l, len_ia, ixs)
2099 ENDIF
2100
2101 IF(ale_connectivity%has_nn_connect .OR. ale_connectivity%has_ne_connect)THEN
2103 . elemid_l,numnod,nodglob,nodlocal,numnod_l,len_ia,
ale%GRID%NWALE)
2104 ENDIF
2105
2106 DEALLOCATE(elemid_l)
2107 ENDIF
2108
2109 ns_diff = 0
2110 IF (multi_fvm%NS_DIFF) ns_diff = 1
2112 len_ia = len_ia + 1
2113 IF (multi_fvm%NS_DIFF) THEN
2114 CALL write_i_c(idglob_l, numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois)
2115 len_ia = len_ia + numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois
2116 CALL write_i_c(uidglob_l, numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois)
2117 len_ia = len_ia + numels_l + nsvois + numelq_l + nqvois + numeltg_l + ntgvois
2118 ENDIF
2119
2120
2121
2122 IF(nmult > 0) THEN
2125 len_ia = len_ia +sifill + sims
2126 END IF
2127
2128
2129
2131 CALL w_group_str(len_ia ,igrnod ,igrbric ,igrquad ,igrsh4n ,
2132 . igrsh3n ,igrtruss ,igrbeam ,igrspring ,igrpart ,
2133 . cep ,cel ,nodlocal,p-1 ,frontb_r2r,
2134 . numnod_l )
2136 . numelq,numelc,numelt,numelp,numelr,
2137 . nodlocal,scel,cel,ltitr,lenisurf_l,
2138 . nspmd,igrsurf,igrsurf_proc)
2139
2141
2142
2143
2144 IF (numelx>0)
2145 .
CALL w_elmx(kxx,numelx_l,isumnx_l,ixx,cep,
2146 + p-1,nodlocal,len_ia)
2147
2148
2149
2150
2151 IF (numsph>0) THEN
2152 CALL w_isph(kxsp ,ixsp ,numsph_l,cepsp ,p-1 ,
2153 + nodlocal,numnod_l,ispcond ,iparg ,isphio ,
2154 + len_ia, slonfsph_l,slprtsph_l,ipartsp,
2155 + lonfsph,lprtsph, ibufssg_io,celsph,
2156 + nsphsol_l,first_sphsol_l,sph2sol ,sol2sph,
2157 + irst , numels8_l,cep ,cel ,sol2sph_typ)
2158 ENDIF
2159
2160
2161
2162 IF (nconld>0)THEN
2163 CALL w_ibcl(ibcl,cep,p-1,nodlocal,nconld_l,len_ia)
2164 ENDIF
2165
2166
2167
2168 IF (nintloadp>0) THEN
2170 len_ia = len_ia + ninter + 1
2171 CALL write_i_c(loadpinter,s_loadpinter )
2172 len_ia = len_ia + s_loadpinter
2173 ENDIF
2174
2175
2176
2177 IF (nfxvel>0)
2178 .
CALL w_ibfv(ibfv,nfxvel,nodlocal,len_ia,
2179 . nfxvel_l,p-1)
2180
2181
2182
2183 IF (nlaser>0.AND.p==1)
2184 .
CALL w_las(las,nlaser,nodlocal,len_ia)
2185
2186
2187
2188 nebcs_fvm = 0
2190 CALL write_i_c(ebcs_tab_loc%nebcs_fvm, 1)
2193
2194
2196 CALL ebcs_tab%write_type_data(len_ia, len_am)
2197 ENDIF
2198
2199
2200
2201
2203 IF (ebcs_tab%tab(ii)%poly%is_multifluid) THEN
2204 nebcs_fvm = nebcs_fvm + 1
2205 CALL ebcs_tab_loc%tab(nebcs_fvm)%poly%write_common_data(len_ia, len_am)
2206 CALL ebcs_tab_loc%tab(nebcs_fvm)%poly%write_data(len_ia, len_am)
2207 ENDIF
2208 ENDDO
2209
2210
2211 CALL ebcs_tab_loc%destroy()
2212
2213
2214
2215
2216 nebcs_parallel = 0
2218
2219
2220 is_ebcs_parallel = .false.
2221 IF(ebcs_tab%tab(ii)%poly%type==10 .OR. ebcs_tab%tab(ii)%poly%type==11)is_ebcs_parallel=.true.
2222 IF(.NOT.ebcs_tab%tab(ii)%poly%is_multifluid .AND. is_ebcs_parallel) THEN
2223 nebcs_parallel = nebcs_parallel + 1
2224 DO jj = 1, ebcs_tab_loc_2%tab(nebcs_parallel)%poly%nb_node
2225 IF( nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj)) > 0 .AND.
2226 . nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj)) <= numnod ) THEN
2227 ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj) =
2228 . nodlocal(ebcs_tab_loc_2%tab(nebcs_parallel)%poly%node_list(jj))
2229 ENDIF
2230 ENDDO
2231 IF (.NOT. ebcs_tab%tab(ii)%poly%is_multifluid) THEN
2232 CALL ebcs_tab_loc_2%tab(nebcs_parallel)%poly%write_common_data(len_ia, len_am)
2233 CALL ebcs_tab_loc_2%tab(nebcs_parallel)%poly%write_data(len_ia, len_am)
2234 ENDIF
2235
2236
2237 ELSEIF (.NOT.(ebcs_tab%tab(ii)%poly%is_multifluid).AND.p == 1) THEN
2238 DO jj = 1, ebcs_tab%tab(ii)%poly%nb_node
2239 ebcs_tab%tab(ii)%poly%node_list(jj) = nodlocal(ebcs_tab%tab(ii)%poly%node_list(jj))
2240 ENDDO
2241 IF (.NOT. ebcs_tab%tab(ii)%poly%is_multifluid) THEN
2242 CALL ebcs_tab%tab(ii)%poly%write_common_data(len_ia, len_am)
2243 CALL ebcs_tab%tab(ii)%poly%write_data(len_ia, len_am)
2244 ENDIF
2245 ENDIF
2246
2247 ENDDO
2248
2249
2250
2251
2252 IF (naccelm>0)
2253 .
CALL w_lacc(laccelm,naccelm,nodlocal,len_ia,cel,cep,p-1)
2254
2255
2256
2257 IF (nbgauge>0)
2258 .
CALL w_lgau(lgauge,nbgauge,nodlocal,len_ia,cel,cep,p-1)
2259
2260
2261
2262 IF (nlink>0)
2263 .
CALL w_llink(nnlink,lllink,nodlocal,p-1,nllink_l,len_ia)
2264
2265
2266
2267
2269
2270
2271
2272 CALL w_iparg(iparg,p-1,ngroup_l,len_ia)
2273
2274
2275
2276 CALL write_i_c(dd_iad,(nspmd+1)*nspgroup)
2277 len_ia = len_ia + (nspmd+1)*nspgroup
2278
2279
2280
2281 IF (ngrav>0)
2282 .
CALL w_igrav(igrav,lgrav,nodlocal,p-1,llgrav_l,len_ia,numnod_l)
2283
2284
2285
2286 IF (nr2rlnk>0) THEN
2288 len_ia = len_ia + nr2r*nr2rlnk
2289 END IF
2290
2291
2292
2293 IF (nibvel>0)
2294 .
CALL w_ibvel(ibvel,lbvel,nodlocal,p-1,llbvel_l,len_ia)
2295
2296
2297
2298 IF (nrbe2>0) THEN
2299 IF(nbddrbe2>0) THEN
2300 ALLOCATE(itabrbe2m(numnod_l))
2301 ELSE
2302 ALLOCATE(itabrbe2m(1))
2303 ENDIF
2304 CALL w_irbe2(irbe2 ,lrbe2 ,nodlocal ,p-1 ,
2305 . llrbe2_l,itabrbe2m,nbddrbe2,numnod_l,len_ia )
2306 ELSE
2307 ALLOCATE(itabrbe2m(1))
2308 ENDIF
2309
2310
2311
2312 IF (nrbe3>0) THEN
2313 IF(nbddrbe3m>0) THEN
2314 ALLOCATE(itabrbe3m(numnod_l))
2315 ELSE
2316 ALLOCATE(itabrbe3m(1))
2317 ENDIF
2318 CALL w_irbe3(irbe3 ,lrbe3 ,nodlocal ,p-1 ,
2319 . llrbe3_l,itabrbe3m,nbddrbe3m,numnod_l,len_ia)
2320 ELSE
2321 ALLOCATE(itabrbe3m(1))
2322 ENDIF
2323
2324
2325
2326 IF (nactiv>0)
2328 len_ia = len_ia + lactiv*nactiv
2329
2330
2331
2332 IF (nummpc>0.AND.p==1)THEN
2333 CALL w_ibmpc(ibmpc,nummpc,lmpc,nodlocal,lag_sec,len_ia)
2334 END IF
2335
2336
2337
2338 CALL w_inloc(kinet,nodglob,numnod_l,len_ia)
2339
2340
2341
2342 IF(nfasolfr_l/=0)THEN
2343 CALL w_fasolfr(fasolfr ,cep ,p-1 ,cel, nfasolfr_l,
2344 . len_ia )
2345 ENDIF
2346
2347
2348
2349 IF(nsegquadfr_l/=0)THEN
2350 CALL w_segquadfr(segquadfr ,cep ,p-1 ,cel, nsegquadfr_l,
2351 . len_ia )
2352 ENDIF
2353
2354
2355
2356 IF(ninter>0) THEN
2357 IF(nbddi2m>0)THEN
2358 ALLOCATE(itabi2m(numnod_l))
2359 ELSE
2360 ALLOCATE(itabi2m(1))
2361 ENDIF
2362
2363
2365
2366
2367 ALLOCATE(intbuf_tab_l(ninter))
2368
2369
2371
2372
2373 flag_allocate = 0
2374
2375
2377 . i11flag, flag_allocate, p-1,intbuf_fric_tab)
2378
2379 !write local ipari_l
2381
2383
2384 IF (i22len_l>0)THEN
2385
2387 ENDIF
2388
2389
2392 . ipari_l , intercep, nodlocal,
2393 . itab , itabi2m , nbddi2m , numnod_l ,
2394 . len_cep,cep , cel , igrbric , t8, multi_fvm,
2395 . tag_nm ,nindx_nm ,indx_nm ,tag_scratch,nindx_scrt,
2396 . indx_scrt ,flag_24_25,i24maxnsne,intbuf_fric_tab)
2397
2398
2399 DEALLOCATE(intbuf_tab_l)
2400
2402 ELSE
2403 ALLOCATE(itabi2m(1))
2404 ENDIF
2405
2406
2407
2408
2409 IF(nrwall > 0)
2410 +
CALL w_rwall(nprw ,lprw ,rwl ,
2411 + cep ,cel ,nodlocal,p-1 ,
2412 + nslaw_l,neslaw_l,numnod_l,len_ia)
2413
2414
2415
2416 IF(nconx+nexmad/=0)
2417 +
CALL w_mad(iexmad ,nmadsh4_l,nmadsh3_l,nmadsol_l,nmadnod_l,
2418 + madcl_nmadnod_l,cep ,p-1 ,nodlocal ,cel ,
2419 + numels_l,numelc_l ,numeltg_l,len_ia )
2420
2421
2422
2423 IF(nrbykin+nrbylag>0)
2424 +
CALL w_rbyk(npby,lpby,nodlocal,p-1,nslarb_l,len_ia)
2425
2426
2427
2428 IF(nrivet>0)
2429 +
CALL w_irivet(ixri,nodlocal,p-1,len_ia)
2430
2431
2432
2433 IF(nsect>0)
2434 +
CALL w_sectio(nstrf ,cep ,cel,p-1,
2435 2 nstrf_l,nodlocal,len_ia)
2436 IF(nsect>0) THEN
2438 len_ia = len_ia + snom_sect
2439 ENDIF
2440
2441
2442
2443 IF(njoint>0) THEN
2445 . nodlocal,ljoint_l,len_ia,numnod_l)
2447 + nodlocal,ljoint_l,len_ia)
2448 ENDIF
2449
2450
2451
2452 IF(numpor>0)THEN
2454 ENDIF
2455
2456
2457
2458 IF(nvolu>0)THEN
2459
2460 CALL w_monvol(monvol,lenvolu,nodlocal,len_ia,monvol_l,itab,t_monvol,p)
2461 ENDIF
2462
2463
2464
2465 IF(lag_ncf>0.AND.p==1) THEN
2466 CALL write_i_c(lagbuf,lag_nhf+3*lag_ncf+2)
2467 len_ia = len_ia + lag_nhf+3*lag_ncf+2
2468 END IF
2469
2470
2471
2472 IF (ns10e_l > 0) THEN
2473 IF(nbddcndm > 0) THEN
2474 ALLOCATE(itabcndm(numnod_l))
2475 ELSE
2476 ALLOCATE(itabcndm(1))
2477 ENDIF
2478 CALL w_icnds10(icnds10,itagnd,p-1,nodlocal,ns10e_l,
2479 . itabcndm,nbddcndm,numnod_l,len_ia ,itab)
2480 ELSE
2481 ALLOCATE(itabcndm(1))
2482 ENDIF
2483
2484
2485
2487 2 nthgrp0 ,nthgrp ,nthgrp01 ,nthgrp1 ,
2488 3 scel ,numsph ,numnod ,ncluster ,
2489 4 celsph ,numloccluster ,nbr_th_monvol)
2490
2491 CALL thsurf_write_restart(output%TH%TH_SURF,1)
2492 IF (output%TH%TH_SURF%PLOAD_FLAG > 0) THEN
2493 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr+numelx
2495 . output%TH%TH_SURF,numnod ,nibcld,nconld ,len_cep,
2496 . off )
2497 ENDIF
2498 IF (output%TH%TH_SURF%LOADP_FLAG > 0) THEN
2499 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr+numelx+nconld
2500 . + glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX
2502 . output%TH%TH_SURF,numnod ,sizloadp,nloadp,len_cep,
2503 . off )
2504 ENDIF
2505
2506
2507
2508
2509 numel =
max(numels,numelq)
2510 numel_l2 =
max(numels_l,numelq_l)
2511 IF (multi_fvm%IS_USED .AND. n2d /= 0 .AND. numeltg /= 0) THEN
2512 numel =
max(numel, numeltg)
2513 numel_l2 =
max(numel_l2, numeltg_l)
2514 ENDIF
2515 nbcfd =
max(nrcvvois,nsndvois,nervois,nesvois,nsegfl_l)
2516 IF(numskw>0)
CALL split_skew(p,iskwp_l,iskwp,tag_skn,multiple_skew)
2517
2519 1 p ,nbddacc ,nbddkin ,nodlocal,
2520 2 nbddproc,nbddboun,nodglob ,numnod_l,nbddnrb ,
2521 3 npby ,lpby ,nprw ,lprw ,len_ia ,
2522 4 dd_rby2 ,itabi2m ,nbddi2m ,cep ,monvol ,
2523 5 nnlink ,lllink ,ljoint ,
2524 6 nbddncj ,ibvel ,lbvel ,nbddnrbm,dd_rbm2 ,
2525 7 nstrf ,nnodt_l ,nnodl_l ,iexmad
2526 8 nrcvvois
2527 9 nsegfl_l,iparg ,
2528 a numel ,ale_connectivity ,nbcfd ,ixs ,ixq ,ixtg,
2529 b numels_l,numelq_l,numeltg_l,cel ,geo ,
pornod ,
2530 c numpor_l,numel_l2,ipari ,intbuf_tab,nbi18_l ,
2531 d iexlnk ,igrnod ,dd_lagf ,nlagf_l ,iadll ,
2532 e lll ,iskwp ,nskwp ,isensp ,nsensp ,
2533 f iaccp ,naccp ,irbe3 ,lrbe3 ,itabrbe3m,
2534 g nbddrbe3m,irbym ,lcrbym ,front_rm ,dd_rbym2,
2535 h nbddnrbym,irbe2 ,lrbe2 ,nbddrbe2,itabrbe2m,
2536 i iedge_tmp,nodedge,edgelocal,nbddedge_l,
2537 j igaup ,ngaup ,frontb_r2r,sdd_r2r_elem,addcsrect,
2538 k csrect ,nbddnort_l,nbddnor_max_l,nbccfr25_l,nbccnor_l,
2539 l numnor_l ,nbddedgt_l,nbddedg_max_l,intercep ,nbddcndm,
2540 m itabcndm,multi_fvm,igrsurf,iskwp_l,ale_elm,
2541 n size_ale_elm,sensors%NSENSOR,nloc_dmg,constraint_struct,glob_therm%ITHERM)
2542 DEALLOCATE(itabi2m)
2543 DEALLOCATE(itabrbe3m)
2544 DEALLOCATE(itabrbe2m)
2545 DEALLOCATE(itabcndm)
2546 DEALLOCATE(iskwp_l)
2547
2548
2549
2550 IF(ipari0/=0)
2552 1 addcne ,cne ,lcne ,numnod_l ,nodglob ,
2553 2 lcne_l ,cep ,cel ,ixs ,ixs10 ,
2554 3 ixs20 ,ixs16 ,ixq ,ixc ,ixt ,
2555 4 ixp ,ixr ,ixtg ,monvol ,
2556 5 ibcl ,geo ,igeo ,p ,
2557 6 numels_l ,numels8_l,numels10_l,numels16_l,numels20_l,
2558 7 numelq_l ,numelc_l ,numelt_l ,numelp_l ,numelr_l ,
2559 8 numeltg_l,nskyrw_l ,nprw ,lprw ,
2560 9 nskyrbk_l,npby ,lpby ,dd_rby2 ,
2561 a i2nsnt ,i2nsn_l ,ipari ,nir ,
2562 b lcni2_l ,niskyi2_l,cepi2 ,celi2 ,cni2 ,
2563 c addcni2 ,nbddi2m ,nconld_l ,ixtg6 ,numeltg6_l,
2564 d nnmv_l ,nnmvc_l ,nskyll_l ,nnlink ,lllink ,
2565 e nskyrbm_l,dd_rbm2 ,ibvel ,lbvel ,nbi18_l ,
2566 f nskyi18_l,len_ia ,nconv_l ,ibcv ,nskyrbe3_l,
2567 g irbe3 ,lrbe3 ,nskyrbmk_l,irbym ,lcrbym ,
2568 h front_rm ,dd_rbym2 ,ibcr ,nradia_l ,addcne_pxfem,
2569 i cne_pxfem ,cel_pxfem ,lcnepxfem_l,inod_pxfem,iel_pxfem,
2570 j numelcpxfe_l , numnodpxfe_l ,lloadp ,iloadp ,
2571 k llloadp_l,addcne_crkxfem,cne_crkxfem,cel_crkxfem,
2572 l lcnecrkxfem_l,inod_crkxfem,iel_crkxfem,numelccrkxfe_l,
2573 m numnodcrkxfe_l,numeltgcrkxfe_l,cep_crkxfem,incrkxfem_l,
2574 n crknodiad ,intbuf_tab,numelig3d_l,kxig3d,ixig3d,
2575 o ibfflux ,nfxflux_l ,cepcnd ,celcnd ,addcncnd ,
2576 p cncnd ,ns10e_l ,icnds10 ,lcncnd_l ,itagnd ,igrsurf,
2577 q igrsurf_proc ,nebcs_parallel, ebcs_tab_loc_2,
2578 r number_load_cyl,loads,loads_per_proc,glob_therm)
2579
2580
2581 CALL ebcs_tab_loc_2%destroy()
2582
2584 len_ia = len_ia + len_g
2586 len_ia = len_ia + len_m
2587
2588
2589
2590 IF(kcontact/=0)THEN
2591 CALL w_inloc(icontact,nodglob,numnod_l,len_ia)
2592 ENDIF
2593
2594 len_s=npart
2596 len_ia = len_ia + len_s
2597
2598
2599
2600 IF(nadmesh /= 0)THEN
2602 len_ia = len_ia + ksh4tree*numelc
2603 CALL write_i_c(sh3tree,ksh3tree*numeltg)
2604 len_ia = len_ia + ksh3tree*numeltg
2605 CALL write_i_c(ipadmesh,kipadmesh*npart)
2606 len_ia = len_ia + kipadmesh*npart
2607 len_adm=abs(lsh4trim)
2609 len_ia = len_ia + len_adm
2610 len_adm=abs(lsh3trim)
2612 len_ia = len_ia + len_adm
2613 END IF
2614
2615
2616
2618 CALL w_fi(ipari,p-1,len_ia,
2619 1 intercep ,intbuf_tab,itab,multi_fvm,tag_scratch,
2620 2 nindx_scrt,indx_scrt ,nodlocal,numnod_l,len_cep,cep)
2621
2622
2624
2625 IF(numsph>0.AND.nspmd>1)THEN
2627 ENDIF
2628
2629
2630
2631 IF(nintstamp /= 0)THEN
2633 len_ia=len_ia+lintstamp
2634 END IF
2635
2636
2637
2638 IF(ninterfric > 0) THEN
2639 CALL intfric_wresti(intbuf_fric_tab,ninterfric)
2640 ENDIF
2641
2642
2643
2644 IF(ntable /= 0)THEN
2646 len_ia=len_ia+ltable
2647 END IF
2648
2649
2651 len_ia = len_ia + sithvar
2652
2653
2654
2655 IF (nloadc>0)
CALL w_icfield(icfield,lcfield,nodlocal,p-1,llcfield_l,len_ia,p,numnod_l)
2656 IF (nloadp>0)
CALL w_iloadp(iloadp,lloadp,nodlocal,p-1,llloadp_l,len_ia,p,cep,itab,
2657 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX)
2658
2659
2660
2661 IF(pblast%NLOADP_B>0)THEN
2662 CALL pblast_write_starter(pblast,glob_therm,p-1,cep,scep,
2663 * numelc,numeltg,numels,
2664 * numelq,numelt,numelp,
2665 * numelr,numelx,nconld)
2666 ENDIF
2667
2668
2669
2670
2671 IF (loads_per_proc%NLOAD_CYL > 0) THEN
2672 CALL write_pcyl(loads_per_proc%LOAD_CYL,loads_per_proc%NLOAD_CYL,nodlocal)
2673 ENDIF
2674
2675
2676 IF(icrack3d > 0)THEN
2677
2678
2679
2680 CALL w_inloc(ibordnode,nodglob,numnod_l,len_ia)
2681
2682
2683
2684 CALL write_i_c(iedgesh4_l,4*numelccrkxfe_l)
2685 len_ia = len_ia + 4*numelccrkxfe_l
2686 CALL write_i_c(iedgesh3_l,3*numeltgcrkxfe_l)
2687 len_ia = len_ia + 3*numeltgcrkxfe_l
2688
2690 len_ia = len_ia + 2*numedges_l
2692 len_ia = len_ia + numedges_l
2693
2694
2695
2697 len_ia = len_ia + nod_xfe_l
2698 IF(ALLOCATED(nodglobxfe))DEALLOCATE(nodglobxfe)
2699 END IF
2700
2701
2702
2703 IF (numelig3d>0)
CALL w_elig3d(kxig3d,numelig3d,isumnig3d_l,ixig3d,p-1,nodlocal,len_ia)
2704
2705
2706
2707 CALL w_ieloc(tag_skins6,cep,p-1,numels,numels_l,len_ia)
2708
2709
2710
2711 IF (nbcscyc_l > 0)
CALL w_ibcscyc(ibcscyc,lbcscyc,nodlocal ,p-1,llbcscyc_l,nbcscyc_l,len_ia )
2712
2713
2714
2715 CALL w_bcs_proc(bcs_per_proc,cel,scel,len_ia,len_am)
2716
2717
2718
2719 len_am = 0
2721 len_am = len_am + lvarrea
2722
2723
2724
2725
2726
2727 CALL w_r3nloc(x,nodglob,numnod_l,len_am)
2728 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
2729 .
CALL w_bid(3*nrcvvois,len_am)
2730 CALL w_r3nloc(d,nodglob,numnod_l,len_am)
2731 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
2732 .
CALL w_bid(3*nrcvvois,len_am)
2733 CALL w_r3nloc(v,nodglob,numnod_l,len_am)
2734 IF(iale+ieuler+glob_therm%ITHERM+ialelag > 0)
2735 .
CALL w_bid(3*nrcvvois,len_am)
2736 IF(iroddl>0) THEN
2737 CALL w_r3nloc(vr,nodglob,numnod_l,len_am)
2738 IF(isecut > 0 .OR. iisrot > 0 .OR. impose_dr /= 0 .OR. idrot == 1)
CALL w_r3nloc(dr,nodglob,numnod_l,len_am)
2739 ENDIF
2740
2741
2742
2743 off = numels + numelq
2744 CALL w_reloc(thke,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2745 off = off + numelc + numelt + numelp + numelr
2747 . thke(numelc+1),cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_am)
2748
2749
2750
2751 IF (ndamp>0) THEN
2753 len_am = len_am + nrdamp*ndamp
2754 IF (sdamp > 0) THEN
2755 IF(iroddl>0)THEN
2756 CALL w_rnnloc(damp,nodglob,numnod_l,6,len_am)
2757 ELSE
2758 CALL w_r3nloc(damp,nodglob,numnod_l,len_am)
2759 ENDIF
2760 ENDIF
2761 ENDIF
2762
2763
2764
2765 CALL w_rnloc(ms,nodglob,numnod_l,len_am)
2766
2767
2768 IF(n2d>0)THEN
2769 CALL w_rnloc(ms,nodglob,numnod_l,len_am)
2770 ENDIF
2771
2772 IF(iroddl>0)
2773 .
CALL w_rnloc(in,nodglob,numnod_l,len_am)
2774
2775
2776
2777 IF(nfunct/=0)THEN
2779 len_am = len_am + npts
2780 ENDIF
2781
2782
2783
2785 len_am = len_am + npropm*nummat
2786
2788
2789
2790
2791
2792
2793
2794
2795
2796
2798 len_am = len_am + len
2799
2800
2801
2802 CALL write_db(skew,lskew*(numskw+1))
2803 len_am = len_am + lskew*(numskw+1)
2804 IF(numsph>0.AND.nspcond>0)THEN
2806 . skew(lskew*(numskw+1)+1),numsph_l,cepsp,p-1,len_am)
2809 . skew(lskew*(numskw+1+numsph_l)+1),len_am)
2812 . skew(lskew*(numskw+1)+1),len_am)
2813 ENDIF
2814 CALL write_db(xframe,nxframe*(numfram+1))
2815 len_am = len_am + nxframe*(numfram+1)
2816
2817
2818
2819 IF(numpor==0)THEN
2821 ELSE
2822 CALL w_geo(geo,nodlocal)
2823 END IF
2824 len_am = len_am + npropg*numgeo
2825
2826
2827
2828 off = 0
2829 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_am)
2830 off = off + numels
2831 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_am)
2832 off = off + numelq
2833 CALL w_reloc(eani(off+1),cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2834 shf = off + numelc
2835 off = off + numelc + numelt + numelp + numelr
2836 CALL w_reloc(eani(shf+1),cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,len_am)
2837
2838
2839
2841 len_am = len_am + lbufmat
2842 IF(iresp == 1)THEN
2843
2844 ALLOCATE (rbufgeo(lbufgeo))
2845 rbufgeo(1:lbufgeo)=bufgeo(1:lbufgeo)
2847 ELSE
2849 ENDIF
2850 len_am = len_am + lbufgeo
2852 len_am = len_am + lbufsf
2853
2854 IF(nummpc>0.AND.p==1)THEN
2856 len_am = len_am + lmpc
2857 END IF
2858 IF(ngjoint>0.AND.p==1)THEN
2859 CALL write_db(gjbufr,lkjnr*ngjoint)
2860 len_am = len_am + lkjnr*ngjoint
2861 END IF
2862
2863
2864
2865 IF(iale/=0) THEN
2866 CALL w_r3nloc(w,nodglob,numnod_l,len_am)
2867 ENDIF
2868 IF(ieuler * (1 - imulti_fvm)/=0)THEN
2869 IF(n2d==0) THEN
2870 off = 0
2872 . veul,lveul,cep(
min(off+1,len_cep)),p-1,numels,numels_l,len_am)
2873 ELSE
2874 off = numels
2875 CALL w_reloc2(veul,10,cep(
min(off+1,len_cep)),p-1,numelq,numelq_l,len_am)
2876 ENDIF
2877 ENDIF
2878
2879
2880
2881 IF (multi_fvm%IS_USED) THEN
2882 CALL write_db(multi_fvm%PRES_SHIFT, 1)
2883 IF (n2d == 0) THEN
2884 CALL write_db(multi_fvm_vel_l(1, 1:numels_l),
2885 . numels_l)
2886 CALL write_db(multi_fvm_vel_l(2, 1:numels_l),
2887 . numels_l)
2888 CALL write_db(multi_fvm_vel_l(3, 1:numels_l),
2889 . numels_l)
2890 ELSE
2891 CALL write_db(multi_fvm_vel_l(1, 1:numelq_l + numeltg_l),
2892 . numelq_l + numeltg_l)
2893 CALL write_db(multi_fvm_vel_l(2, 1:numelq_l + numeltg_l),
2894 . numelq_l + numeltg_l)
2895 CALL write_db(multi_fvm_vel_l(3, 1:numelq_l + numeltg_l),
2896 . numelq_l + numeltg_l)
2897 ENDIF
2898 ENDIF
2899
2900
2901
2902 IF(nmult > 0) THEN
2903 CALL w_rfilloc(fill,nodglob,numnod,numnod_l,nmult,len_am)
2904 CALL w_rfilloc(dfill,nodglob,numnod,numnod_l,nmult,len_am)
2906 len_am = len_am + salph
2907 END IF
2908 IF(
ale%GRID%NWALE==2)
THEN
2909 CALL w_r3nloc(wb,nodglob,numnod_l,len_am)
2910 ELSEIF(
ale%GRID%NWALE==4)
THEN
2911 CALL w_r3nloc(wb,nodglob,numnod_l,len_am)
2912 CALL w_rnloc(wma,nodglob,numnod_l,len_am)
2913 ENDIF
2914 IF(ilag==1.AND.(iale+ieuler)/=0)THEN
2915 CALL w_r3nloc(dsav,nodglob,numnod_l,len_am)
2916 CALL w_r3nloc(asav,nodglob,numnod_l,len_am)
2917 ENDIF
2918
2919
2920
2921 IF (numsph>0)THEN
2922 CALL w_rsph(spbuf ,numsph_l,cepsp,p-1,vsphio,len_am, ssphveln_l )
2923 ENDIF
2924
2925
2926
2927 IF(iale == 1 .OR. ieuler == 1 .OR. ialelag == 1) THEN
2928 CALL w_rnloc(msnf,nodglob,numnod_l,len_am)
2929 ENDIF
2930
2931
2932
2933
2934
2935 IF(nconld>0)
CALL w_fac(fac,cep,p-1,nconld_l,len_am)
2936
2937
2938
2939 IF(nfxvel_l>0)
CALL w_fixvel(vel,nfxvel,ibfv,nfxvel_l,len_am,p-1)
2940
2941
2942
2943 CALL write_db(fsav,nthvki*(ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu+nfxbody+nintsub))
2944 len_am = len_am + nthvki*(ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu+ nfxbody+nintsub)
2945
2946
2947
2949
2951
2953 . poin_part_shell,poin_part_tri,poin_part_sol,
2954 . mid_pid_shell,mid_pid_tri,mid_pid_sol,
2955 . ipartc,iparttg,iparts)
2956
2957
2958
2959 IF(isigi==2.OR.isigi==4)
2960 .
CALL w_r3nloc(fzero,nodglob,numnod_l,len_am)
2961 IF(iabs(isigi)==5)THEN
2962 off = numels+numelq
2963 CALL w_reloc2(fzero,3*4,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,len_am)
2964 off = off + numelc + numelt + numelp + numelr
2965 shf = numelc*3*4
2966 CALL w_reloc2(fzero(shf+1),3*4,cep(
min(off+1,len_cep)),p-1,numeltg,
2967 . numeltg_l,len_am)
2968 ENDIF
2969
2970
2971
2972 IF(nlaser>0.AND.p==1)THEN
2974 len_am = len_am + lenxlas
2975 ENDIF
2976
2977
2978
2979 IF(naccelm>0)THEN
2980 CALL write_db(accelm,naccelm*llaccelm)
2981 len_am = len_am + naccelm*llaccelm
2982 ENDIF
2983
2984
2985
2986 IF(nbgauge>0)THEN
2987 CALL write_db(gauge,nbgauge*llgauge)
2988 len_am = len_am + nbgauge*llgauge
2989 ENDIF
2990
2991
2992
2994
2995
2996
2997 IF(nibvel>0)
2999 len_am = len_am + 3*nibvel
3000
3001
3002
3003 IF(nrbe3>0)
3004 .
CALL w_frbe3(irbe3 ,lrbe3 ,p-1 ,llrbe3_l,
3005 . frbe3 ,frbe3(3*slrbe3+1),len_am,nrbe3pen_l )
3006
3007
3008
3009 IF (nactiv > 0) THEN
3010 CALL write_db(factiv,lractiv*nactiv)
3011 len_am = len_am + lractiv*nactiv
3012 ENDIF
3013
3014
3015
3016 IF(ngrav>0)
3017 .
CALL write_db(gravfac,lfacgrv*ngrav)
3018 len_am = len_am + lfacgrv*ngrav
3019
3020
3021
3022 IF(ifrwv>0)
3023 .
CALL w_rnloc(fr_wave,nodglob,numnod_l,len_am)
3024
3025
3026
3027 CALL w_failwave(failwave,nodglob,numnod,numnod_l,len_am,itab)
3028
3029
3030
3031
3033 . nloc_dmg ,numnod_l ,nodglob ,nodlocal ,cel ,
3034 . cep ,p ,ixs ,ixc ,ixtg ,
3035 . numels_l ,numelc_l ,numeltg_l)
3036
3037
3038
3039
3041 len_am = len_am + npart
3042
3043
3044
3045 CALL w_bufel(iparg,p-1,lbufel_l,elbuf,len_am)
3046
3047 flag_xfem = 0
3048 CALL w_elbuf_str(p-1,iparg,elbuf_tab,len_am,flag_xfem)
3049
3050 IF (icrack3d > 0) THEN
3051 DO ixel=1,nxel
3052 flag_xfem = 1
3053 CALL w_elbuf_str(p-1,iparg,xfem_tab(1:ngroup,ixel),len_am,flag_xfem)
3054 ENDDO
3055 ENDIF
3056
3057
3058
3059 IF (ncluster > 0)
CALL w_cluster(clusters,
3060 . iparg,nodlocal,
3061 . ncluster_l,cep,p-1,
3062 . numlocgroup,
3063 . len_ia,len_am)
3064
3065
3066
3067 CALL w_rwar(nprw,lprw ,rwl, rwsav,
3068 + lwsav_l,cep,p-1,len_am)
3069
3070
3071
3073 len_am = len_am + nrby*nrbykin
3074 IF(p == 1 .AND. nrbylag > 0) THEN
3075 CALL write_db(rby(nrby*nrbykin+1),nrby*nrbylag)
3076 len_am = len_am + nrby*nrbylag
3077 END IF
3078
3079
3080
3082 len_am = len_am + nrivet*nrivf
3083
3084
3085
3086 IF(nsect>0)
3087 +
CALL w_secbuf(secbuf,lsecbuf_l,nstrf,p-1,len_am)
3088
3089
3090
3091 CALL write_db(rvolu,nrvolu*nvolu+lrcbag+lrbagjet+lrbaghol
3092 . +lrbagale)
3093 len_am = len_am + nrvolu*nvolu+lrcbag+lrbagjet+lrbaghol
3094 . + lrbagale
3095
3096
3097
3098 ncmax = lag_ncf + lag_ncl
3099 IF(ncmax>0.AND.p==1)THEN
3101 len_am = len_am + ncmax
3102 END IF
3103
3104
3105
3106 IF(nconx>0.AND.p==1)THEN
3108 len_am = len_am + nconx*nrcnx
3109 END IF
3110
3111
3112
3113 IF(nadmesh /= 0)THEN
3114 CALL w_rnloc(rcontact,nodglob,numnod_l,len_am)
3115 CALL w_rnloc(acontact,nodglob,numnod_l,len_am)
3116 CALL w_rnloc(pcontact,nodglob,numnod_l,len_am)
3117 END IF
3118
3119
3120
3121 IF (npsav>=25)THEN
3122 IF (p==1) THEN
3124 len_am = len_am + npsav*npart
3125 ELSE
3126 rdpartsav= 0
3127 CALL write_db(rdpartsav,npsav*npart)
3128 len_am = len_am + npsav*npart
3129 ENDIF
3130 ENDIF
3131
3132
3133
3134 my_ilen = 0
3135 my_rlen = 0
3138 len_ia=len_ia+2
3139
3140
3141
3142 IF(nadmesh /= 0 .OR. irest_mselt /= 0)THEN
3143 off = numels + numelq
3144 CALL w_reloc2(msc,1,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,
3145 . len_am )
3146 CALL w_reloc2(inc,1,cep(
min(off+1,len_cep)),p-1,numelc,numelc_l,
3147 . len_am )
3148 off = off + numelc + numelt + numelp + numelr
3149 CALL w_reloc2(mstg,1,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3150 . len_am )
3151 CALL w_reloc2(intg,1,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3152 . len_am )
3153 CALL w_reloc2(ptg,3,cep(
min(off+1,len_cep)),p-1,numeltg,numeltg_l,
3154 . len_am )
3155 END IF
3156
3157 IF(irest_mselt /= 0)THEN
3158 off = 0
3159 CALL w_reloc2(mssa,1,cep(
min(off+1,len_cep)),p-1,numels,numels_l,
3160 . len_am )
3161 off = numels+numelq+numelc
3162 CALL w_reloc2(mstr,1,cep(
min(off+1,len_cep)),p-1,numelt,numelt_l,
3163 . len_am )
3164 off = off+numelt
3165 CALL w_reloc2(msp,1,cep(
min(off+1,len_cep)),p-1,numelp,numelp_l,
3166 . len_am )
3167 off = off+numelp
3168 CALL w_reloc2(msrt,1,cep(
min(off+1,len_cep)),p-1,numelr,numelr_l,
3169 . len_am )
3170 END IF
3171
3172
3173
3174 IF(nadmesh /= 0)THEN
3175 CALL write_db(padmesh,kpadmesh*npart)
3176 len_am = len_am + kpadmesh*npart
3177 IF (glob_therm%ITHERM_FE > 0)THEN
3179 len_am = len_am + numelc
3181 len_am = len_am + numeltg
3182 END IF
3183 END IF
3184
3185
3186
3187
3189 CALL write_db(pinch_data%VPINCH,3*numnod_l)
3190 len_am = len_am + 3*numnod_l
3191 DEALLOCATE(pinch_data%VPINCH)
3192
3193 CALL write_db(pinch_data%DPINCH,3*numnod_l)
3194 len_am = len_am + 3*numnod_l
3195 DEALLOCATE(pinch_data%DPINCH)
3196
3197 CALL write_db(pinch_data%XPINCH,3*numnod_l)
3198 len_am = len_am + 3*numnod_l
3199 DEALLOCATE(pinch_data%XPINCH)
3200
3201 CALL write_db(pinch_data%MSPINCH,numnod_l)
3202 len_am = len_am + numnod_l
3203 DEALLOCATE(pinch_data%MSPINCH)
3204 ENDIF
3205
3206 IF(istatcnd /= 0)THEN
3207 CALL w_rnloc(mscnd,nodglob,numnod_l,len_am)
3208 CALL w_rnloc(incnd,nodglob,numnod_l,len_am)
3209 END IF
3210
3211
3212
3213 IF(nintstamp /= 0)THEN
3215 len_am=len_am+lintstamp
3216 END IF
3217
3218
3219
3220 IF(ninterfric > 0) THEN
3221 CALL intfric_wrestr(intbuf_fric_tab,ninterfric)
3222 ENDIF
3223
3224 CALL w_rnloc(ms0,nodglob,numnod_l,len_am)
3225 IF(sin > 0)
CALL w_rnloc(in,nodglob,numnod_l,len_am)
3226
3227
3228
3229 IF(idtmins==1)THEN
3230 CALL w_rnloc (admsms,nodglob,numnod_l,len_am)
3231 CALL w_r3nloc(res_sms,nodglob,numnod_l,len_am)
3232 ELSEIF(idtmins==2)THEN
3233 CALL w_rnloc (dmelc ,nodglob,numelc_l,len_am)
3234 CALL w_rnloc (dmeltg ,nodglob,numeltg_l,len_am)
3235 CALL w_rnloc (dmels ,nodglob,numels_l,len_am)
3236 CALL w_rnloc (dmeltr ,nodglob,numelt_l,len_am)
3237 CALL w_rnloc (dmelp ,nodglob,numelp_l,len_am)
3238 CALL w_rnloc (dmelrt ,nodglob,numelr_l,len_am)
3239 CALL w_r3nloc(res_sms,nodglob,numnod_l,len_am)
3240 END IF
3241 IF(idtmins==2.OR.idtmins_int/=0) THEN
3242 CALL w_rnloc(diag_sms,nodglob,numnod_l,len_am)
3243 END IF
3244 IF(isms_selec /= 0) THEN
3245 CALL w_inloc(nativ_sms,nodglob,numnod_l,len_ia)
3246 ENDIF
3247
3248
3249
3250 IF(ntable /= 0)THEN
3252 len_am=len_am+ltable
3253 END IF
3254#ifdef DNC
3255
3256
3257
3258 CALL mds_restart()
3259#endif
3260
3261
3262
3263 IF(nalelk>0.AND.slinale>0)THEN
3265 ENDIF
3266
3267
3268
3269 CALL write_ale_grid()
3270
3271
3272
3273 IF (nfxbody>0) THEN
3275 . fxbipm_l, fxbrpm, fxbnod_l, fxbmod_l, fxbglm_l,
3276 . fxbcpm_l, fxbcps_l, fxblm_l, fxbfls_l, fxbdls_l,
3277 . fxbdep, fxbvit, fxbacc, fxbelm_l, fxbsig_l,
3278 . fxbgrvi_l, fxbgrvr_l, lennod_l, lenmod_l, lenglm_l,
3279 . lencp_l, lenlm_l, lenfls_l, lendls_l, lenelm_l,
3280 . lensig_l, lengrvi_l, lengrvr_l, len_am, itask)
3281
3282 DEALLOCATE(fxbnod_l, fxbmod_l, fxbglm_l, fxbcpm_l, fxbcps_l,
3283 . fxblm_l, fxbfls_l, fxbdls_l, fxbelm_l, fxbsig_l,
3284 . fxbgrvi_l, fxbgrvr_l)
3285 ENDIF
3286
3287
3288
3289 IF (neig>0)THEN
3290 CALL eigwrestp(eigipm_l, eigibuf_l, eigrpm, leibuf_l,len_am)
3291 ENDIF
3292
3293
3294
3295 IF (nslipring + nretractor > 0) THEN
3296 CALL w_seatbelts(len_ia,len_am,p,nodlocal,n_anchor_remote_l,
3297 . n_anchor_remote_send_l,anchor_remote_l,anchor_remote_send_l)
3298 ENDIF
3299
3300
3301
3305
3306
3307
3308 IF (nconld_l > 0) THEN
3309 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr
3310 . + numelx
3312 . off ,len_cep,nconld)
3314 . off ,len_cep,nconld)
3315 ENDIF
3316
3317
3318
3319 IF (ndamp_vrel_l>0) THEN
3320 CALL w_dampvrel(dampr,igrnod,idamp_vrel_l,ndamp_vrel_l,len_ia,
3321 . ngrnod,ndamp,nrdamp,nspmd)
3322 ENDIF
3323
3324
3325
3326 IF (nflow>0)
CALL nfwrestp(iflow_l,rflow,len_ia,len_am)
3327
3328
3329
3331
3332
3333
3334 IF(glob_therm%ITHERM_FE > 0 ) THEN
3335 CALL w_rnloc(mcp,nodglob,numnod_l,len_am)
3336 CALL w_rnloc(temp,nodglob,numnod_l,len_am)
3337 ENDIF
3338
3339
3340
3341 IF(nitsche > 0 ) THEN
3342 ALLOCATE(forneqs(3*numnod_l))
3343 forneqs(1:3*numnod_l) = zero
3345 len_am = len_am + 3*numnod_l
3346 DEALLOCATE(forneqs)
3347 ENDIF
3348
3349
3350
3352
3353
3354
3355 IF(nrbym > 0)THEN
3356
3358 len_am = len_am + nfrbym*nrbym
3359
3360 CALL w_rbymk(irbym,lcrbym,front_rm,nodlocal,p-1,
3361 . nslarbm_l,len_ia)
3363 ENDIF
3364
3365
3366
3367 IF (glob_therm%NUMCONV > 0 )THEN
3368
3369 CALL w_fconv(fconv,cep,p-1,nconv_l,len_am,
3370 . glob_therm%NUMCONV,glob_therm%LFACTHER)
3371
3372 CALL w_iconv(ibcv,cep,p-1,nodlocal,nconv_l,len_ia,
3373 . cel,iparg,numlocgroup,glob_therm%NUMCONV,glob_therm%NICONV)
3374
3375 ENDIF
3376
3377
3378
3379 IF (glob_therm%NUMRADIA > 0 )THEN
3380
3381 CALL w_fradia(fradia,cep,p-1,nradia_l,len_am,
3382 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%LFACTHER)
3383
3384 CALL w_iradia(ibcr,cep,p-1,nodlocal,nradia_l,len_ia,
3385 . cel,iparg,numlocgroup,
3386 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NIRADIA)
3387 ENDIF
3388
3389
3390
3391 IF (glob_therm%NFXFLUX > 0 )THEN
3392
3393 CALL w_fthflux(fbfflux,cep,p-1,nfxflux_l,len_am,
3394 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%LFACTHER)
3395
3396 CALL w_ithflux(ibfflux,cep,p-1,nodlocal,nfxflux_l,len_ia,cel,ixs,
3397 . glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,glob_therm%NITFLUX)
3398 ENDIF
3399
3400
3401
3402 IF(glob_therm%NFXTEMP > 0) THEN
3403
3404 CALL w_fbft(fbft,glob_therm%NFXTEMP,ibft,nfxtemp_l,len_am,p-1,
3405 . glob_therm%NIFT,glob_therm%LFACTHER)
3406
3407 CALL w_ibft(ibft,glob_therm%NFXTEMP,nodlocal,len_ia,
3408 . nfxtemp_l,p-1,glob_therm%NIFT)
3409 ENDIF
3410
3411
3412
3413
3414 IF(iplyxfem > 0 ) THEN
3415 off = numels + numelq
3416
3417 CALL w_pxfem(iepxfem_l,inpxfem_l ,index_pxfem,
3418 . ms_ply,zi_ply ,numelc_l, numnod_l ,
3419 . numelcpxfe_l,numnodpxfe_l,len_am,len_ia,msz2)
3420
3421 IF(iplybcs > 0) THEN
3422 CALL w_inloc(icodply,nodglob,numnod_l,len_ia)
3423 CALL w_inloc(iskwply,nodglob,numnod_l,len_ia)
3424 ENDIF
3425
3426 off = numels + numelq
3428 * numnod_l, cel(off+1), cep(
min(off+1,len_cep)), p-1)
3429
3431 ENDIF
3432
3433
3434
3435 IF(nloadc>0)
3436 .
CALL write_db(cfield,lfacload*nloadc)
3437 len_am = len_am + lfacload*nloadc
3438
3439
3440
3441 IF(nloadp>0)
3442 .
CALL write_db(loadp,lfacload*nloadp)
3443 len_am = len_am + lfacload*nloadp
3444
3445
3446
3447 IF (nintloadp>0) THEN
3448 CALL write_db(dgaploadint, s_loadpinter )
3449 len_am = len_am + s_loadpinter
3450 ENDIF
3451
3452
3453
3454 IF (loads%NINIVELT>0) THEN
3455 CALL w_inivel_str(
3456 . ngrnod, ngrbric, ngrquad, ngrsh3n,
3457 . igrnod, igrbric, igrquad, igrsh3n,
3458 . p-1 , cep, scep, nodlocal,
3459 . numnod,loads%NINIVELT,loads%INIVELT, len_ia,
3460 . len_am)
3461 ENDIF
3462
3463
3464
3465 IF(icrack3d > 0)THEN
3466
3467 CALL w_crkxfem(ielxfemc_l,ielxfemtg_l,incrkxfem_l,numelc_l,
3468 . numeltg_l,numnod_l,len_ia,numnodcrkxfe_l,
3469 . nodlevxf_l)
3470
3472 . ixc ,ixtg ,numelc_l,numeltg_l,nodlocal,
3473 . numnod_l ,incrkxfem_l,cel ,cep_crkxfem ,p-1 ,
3474 . iedgecrk_l,ibordedge_l,numedges_l,index_crkxfem ,
3475 . inod_crkxfem,lcnecrkxfem_l,edgeglobal,cep,crklvset,
3476 . ncrkpart, indx_crk,crkshell,crksky,crkavx,
3477 . crkedge ,xfem_phantom,numnodcrkxfe_l)
3478
3479 ALLOCATE(elcutc_l(2*numelc_l))
3480 ALLOCATE(elcuttg_l(2*numeltg_l))
3481 ALLOCATE(nodenr_l(numnodcrkxfe_l))
3482 ALLOCATE(kxfenod2elc_l(numnodcrkxfe_l))
3483 ALLOCATE(enrtag_l(numnod_l*ienrnod))
3484 elcutc_l = 0
3485 elcuttg_l = 0
3486 nodenr_l = 0
3487 kxfenod2elc_l = 0
3488 enrtag_l = 0
3489
3491 . elcutc ,nodenr ,kxfenod2elc ,enrtag ,
3492 . elcutc_l ,nodenr_l ,kxfenod2elc_l,enrtag_l,
3493 . numelc_l ,numeltg_l ,numnod_l ,nodglob ,inod_crkxfem ,
3494 . p-1 ,cep ,elcuttg_l ,incrkxfem_l,index_crkxfem)
3495
3496
3497
3499 len_ia = len_ia + 2*numelc_l
3501 len_ia = len_ia + 2*numeltg_l
3503 len_ia = len_ia + numnodcrkxfe_l
3504 CALL write_i_c(kxfenod2elc_l,numnodcrkxfe_l)
3505 len_ia = len_ia + numnodcrkxfe_l
3506 CALL write_i_c(enrtag_l,numnod_l*ienrnod)
3507 len_ia
3508
3509 DEALLOCATE(elcutc_l,elcuttg_l,nodenr_l,kxfenod2elc_l,enrtag_l)
3510 DEALLOCATE(iedgecrk_l,ibordedge_l,nodedge_l,tagedge,iedge_l)
3511 DEALLOCATE(edgelocal,edgeglobal)
3512 DEALLOCATE(iedgesh4_l,iedgesh3_l)
3513 DEALLOCATE(index_crkxfem,nodlevxf_l)
3514 ELSE
3515 ALLOCATE(elcutc_l(0))
3516 ALLOCATE(elcuttg_l(0))
3517 ALLOCATE(nodenr_l(0))
3518 ALLOCATE(kxfenod2elc_l(0))
3519 ALLOCATE(enrtag_l(0))
3520 ENDIF
3521
3522
3523
3525
3526
3527 IF(ialelag > 0) THEN
3528 CALL w_alelag(dflow,vflow,wflow,nodglob,numnod_l,len_am)
3529 ENDIF
3530
3531
3532
3533 IF(lenthgr > 0) THEN
3535 len_am = len_am + lenthgr
3536 ENDIF
3537
3538
3539
3540 IF(sknot > 0)
CALL write_db(knot,sknot)
3541 IF(sknotlocpc > 0 .AND. sknotlocel > 0) THEN
3542 CALL w_knotloc(kxig3d,numelig3d_l,isumnig3d_l,ixig3d,cep,
3543 . proc,nodlocal,len_ia,knotlocpc,knotlocel,numnod_l,
3544 . glob_therm%NUMCONV,glob_therm%NUMRADIA)
3545 ENDIF
3546
3547
3548
3549 IF(numelig3d > 0)
CALL w_rnloc(wige,nodglob,numnod,len_am)
3550
3551
3552
3553 IF(ipart_stack > 0 .OR. ipart_pcompp > 0 ) THEN
3554 len_ig = (4*npt_stack + 2)*ns_stack
3555 len_g = (6*npt_stack + 1)*ns_stack
3556 len_pm = 20*ns_stack
3557 CALL w_stack(stack%IGEO,stack%GEO,len_ig,len_g,len_ia,len_am,
3558 . stack%PM, len_pm)
3559 ENDIF
3560
3561
3562
3563 IF (ndrape > 0) THEN
3564
3565 off = numels + numelq
3567 .
CALL w_drape(drape,drapeg%INDX,cep(
min(off+1,len_cep)),p-1,
3568 . numelc,numelc_l,numsh4n_l,len_ia,len_am)
3569 off = off + numelc + numelt + numelp + numelr
3571 .
CALL w_drape(drape,drapeg%INDX(numelc +1),cep(
min(off+1,len_cep)),p-1,
3572 . numeltg,numeltg_l,numsh3n_l,len_ia,len_am)
3573 ENDIF
3574
3575
3576
3577 IF (numply>0)
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3596
3597
3598
3599
3600
3604#ifdef DEBUG_RST
3605 IF(flush_rst_to_txt) CLOSE(777+itask)
3606#endif
3607 IF(numnod_l>0) DEALLOCATE(nodglob)
3608
3609 DEALLOCATE(monvol_l)
3610
3611
3612 DEALLOCATE(nodlocal)
3613 DEALLOCATE(iepxfem_l)
3614 DEALLOCATE(inpxfem_l)
3615 DEALLOCATE(ielxfemc_l)
3616 DEALLOCATE(ielxfemtg_l)
3617 DEALLOCATE(incrkxfem_l)
3618 DEALLOCATE(numlocgroup)
3619 DEALLOCATE(numloccluster)
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650 ddstat(1) = numnod_l
3651 ddstat(2) = numel_l
3652 ddstat(3) = numels_l
3653 ddstat(4) = numelq_l
3654 ddstat(5) = numelc_l
3655 ddstat(6) = numelp_l
3656 ddstat(7) = numelt_l
3657 ddstat(8) = numelr_l
3658 ddstat(9) = 0
3659 ddstat(10)= numeltg_l
3660 ddstat(11)= numelx_l
3661 ddstat(12)= nbddproc
3662 ddstat(13)= nbddboun
3663 ddstat(14)= nbddnod
3664 ddstat(15)= nbddnrb
3665 ddstat(16)= nrbykin_l
3666 ddstat(17)= numsph_l
3667 ddstat(20)= nsnt_l
3668 ddstat(21)= nmnt_l
3669 ddstat(22)= nsnt2_l
3670 ddstat(23)= nmnt2_l
3671 ddstat(24)= nslarb_l
3672
3673
3674
3675 IF(ipari0/=0)THEN
3676 nisky0_l=nisky0_l+4*nconv_l+4*nradia_l+4*nfxflux_l
3677 END IF
3678
3679 i_eval = numnod_l+2*numnod_l*
max(iale,ieuler,ialelag)+numnod_l*iroddl
3680 r_eval = lenwa_l+nfunct
3681 IF(ipari0/=0)THEN
3682 lskyi = nint(5*
max(4*numnod_l,imaximp_l)*probint)+4*numsph_l+nskyi18_l
3683 r_eval = r_eval+8*numnod_l+npsav*npart
3684 r_eval = r_eval+8*lcne_l
3685 IF (n2d==0.AND.iale+ieuler+glob_therm%ITHERM+ialelag > 0) r_eval = r_eval+ lcne_l
3686
3687 r_eval = r_eval+5*lskyi
3688 i_eval = i_eval+lskyi+numnod_l+1+lcni2_l
3689 + + nisky0_l+nskyrw_l+nskyrbk_l+niskyi2_l
3690 + + nnmv_l+nnmvc_l+nskyll_l+nskyrbm_l+nskyrbe3_l
3691 + + nnmv_l+nnmvc_l+nskyll_l+nskyrbm_l
3692 IF(ivector==1)i_eval = i_eval+ numnod_l
3693 IF(i2nsnt>0)i_eval = i_eval+ numnod_l+1
3694 IF(i2nsnt>0.AND.ivector==1)i_eval = i_eval+ numnod_l
3695 ELSE
3696 r_eval = r_eval+7*numnod_l+numnod_l*iroddl+npsav*npart
3697 r_eval = r_eval+2*
max(iale,glob_therm%ITHERM,ieuler)*(numels_l+numelq_l)
3698 END IF
3699
3700 r_eval = r_eval+numnod_l
3701 r_eval = r_eval+
3702 + lwasph_l+7*numnod_l*nsect*isecut+5*ninter+21*nibvel
3703 i_eval = i_eval+numnod_l
3704 ddstat(18)= len_ia + i_eval
3705 ddstat(19)= len_am + r_eval
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715 DEALLOCATE(multi_fvm_vel_l)
3716 DEALLOCATE(iebcs_listelem_l)
3717 DEALLOCATE(iebcs_listfac_l)
3718 DEALLOCATE(ipari_l)
3719 DEALLOCATE(rdpartsav)
3720 DEALLOCATE(dd_rbym2)
3721 DEALLOCATE(dd_rby2)
3722
3723
3724 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)
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, 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, 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)