533
534
535
536 USE my_alloc_mod
547 USE elbufdef_mod
553 USE intbufdef_mod
559 USE int8_mod
561 USE multi_fvm_mod
566 USE intbuf_fric_mod
578 USE skew_mod
580 USE mat_elem_mod
592 USE sensor_mod
597 USE ebcs_mod
601 USE loads_mod
604 USE user_sensor_mod
606 USE output_mod
607 USE interfaces_mod
608 USE read_funct_python_mod
609 USE python_funct_mod
612 USE damping_rby_spmdset_mod
613 USE hm_read_preload_axial_mod
614 USE bcs_mod, ONLY : bcs, bcs_struct_
615 USE defaults_mod
616 USE shell_offset_ini_mod,ONLY: shell_offset_ini
617 USE inter_offset_itag_mod, ONLY:inter_offset_itag
618 USE chk_shell_offset_mod, ONLY:chk_shell_offset
619 USE shell_offsetp_mod, ONLY:shell_offsetp
620 USE updfail_mod
621 USE random_walk_def_mod
622 use constraint_mod , only : constraint_,alloc_constraint_struct,dealloc_constraint_struct
623 use split_rwall_mod , only : split_rwall
624 use stifint_icontrol_mod, only : stifint_icontrol
625 use fractal_elem_renum_mod
626 use hm_preread_inivel_mod, only : hm_preread_inivel
627 use brokmann_random_def_mod
628 use brokmann_elem_renum_mod
629 use glob_therm_mod
630 use hm_read_inivol_mod
631 use pblast_mod
632 use iniebcs_propellant_
634 use python_duplicate_nodes_mod
635
636
637
638#include "implicit_f.inc"
639
640
641
642 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
643 TYPE(SUBMODEL_DATA) :: LSUBMODEL(NSUBMOD)
644 INTEGER,INTENT(IN) :: IS_DYNA
645 TYPE(),TARGET :: DETONATORS
646 TYPE(T_EBCS_TAB), INTENT(INOUT) :: EBCS_TAB
647 INTEGER,INTENT(IN) :: NB_SEATBELT_SHELLS
648 INTEGER,INTENT(INOUT) :: SEATBELT_CONVERTED_ELEMENTS(3,NB_SEATBELT_SHELLS)
649 INTEGER,INTENT(IN) :: NB_DYNA_INCLUDE
650 TYPE(USER_WINDOWS_), INTENT(INOUT) :: USER_WINDOWS
651 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
652 TYPE(NAMES_AND_TITLES_),INTENT(INOUT) :: NAMES_AND_TITLES
653 TYPE(DEFAULTS_),INTENT(INOUT) :: DEFAULTS
654 type(glob_therm_) ,intent(inout) :: glob_therm
655 TYPE(PBLAST_),INTENT(INOUT) :: PBLAST
656 TYPE(SENSOR_USER_STRUCT_) :: SENSOR_USER_STRUCT
657
658
659
660#include "r4r8_p.inc"
661
662
663
664#include "hash_id.inc"
665#include "com01_c.inc"
666#include "com04_c.inc"
667#include "com06_c.inc"
668#include "com09_c.inc"
669#include "com10_c.inc"
670#include "com_engcards_c.inc"
671#include "com_xfem1.inc"
672#include "eigcom.inc"
673#include "flowcom.inc"
674#include "fxbcom.inc"
675#include "intstamp_c.inc"
676#include "lagmult.inc"
677#include "sphcom.inc"
678#include "param_c.inc"
679#include "remesh_c.inc"
680#include "tabsiz_c.inc"
681#include "tablen_c.inc"
682#include "scr03_c.inc"
683#include "scr05_c.inc"
684#include "scr06_c.inc"
685#include "scr10_c.inc"
686#include "scr12_c.inc"
687#include "scr14_c.inc"
688#include "scr15_c.inc"
689#include "scr16_c.inc"
690#include "scr17_c.inc"
691#include "scr19_c.inc"
692#include "scr23_c.inc"
693#include "scry_c.inc"
694#include "sms_c.inc"
695#include "spmd_c.inc"
696#include "ddspmd_c.inc"
697#include "sysunit.inc"
698#include "titr_c.inc"
699#include "units_c.inc"
700#include "warn_c.inc"
701#include "r2r_c.inc"
702#include "intread_c.inc"
703#include "elbuf_c.inc"
704#include "userlib.inc"
705#include "drape_c.inc"
706#include "boltpr_c.inc"
707#include "inigrav_c.inc"
708#include "inter18.inc"
709#include "inter22.inc"
710#include "ige3d_c.inc"
711#include "random_c.inc"
712
713
714
715 INTEGER NLOCAL
717 INTEGER SET_USRTOS
719
720
721
722 TYPE intermasurfep
723 INTEGER, DIMENSION(:), POINTER :: P
724 END TYPE intermasurfep
725
726 INTEGER II,I,J,KK,N, NPTS, NMNT, NRTMT_25,MLW,
727 . NUMEL, IFIP, IS_EULER,NB_EULER_GROUPS,
728 . NAIRWA,NTHWA, LWASPIO, LEN_G,LEN_M,LEN,
729 . IADBUF, IADGEO, NUVAR, NUVARI,
730 . NS_I7,NEL,ND,AUX,NS_I21,
731 . NPT,NS_I11,
732 . SVOLMON0,FLAG_GOTO,
733 . INNOD,INSEG,NSIGI, NSIGS, NSIGSH, NSIGSPH,
734 . LB_MAX, P, NG,
735 . IINU ,NEL3D,NEL2D,NEL1D,IMAX,JMAX,
736 . OFF, NELEM, IDDLEVEL, NELEMINT,
737 . IFIXIN,IFIEND,ICO,
738 . IDS,IUN,L_MUL_LAG,NCMAX,NKMAX,
739 . MAXRTMS,MAXNSNE,
740 . MAXRTM,LWAT, L_MUL_LAG1,ISHIF,LIBAGALE,
741 . LENTHG, LBUFMAT, LBUFGEO, LBUFSF,
742 . LNOM_OPT, LENVOLU, ILEN, LCNE, LCNI2G,LENPOR,
743 . PM1SHF, NFX, AIPM, ANOD, AMOD, NBNO, NBMO,
744 . ALM, NELS, NELC, NELTG, NLGRAV, AGRVI, AGRVR,
745 . NNT, RCLEN,PM1SPH, STAT, NELDMAX, VERSDD,
746 . DSNISM, NSLEVEL,NSDEC,NSVMAX,NSPRI,DSARCH,NELT,NELP,NSEGS,
747 . NNFT, NDOFMIN, NMANIM, DSANIM,NRCVVOIS0,NSIGRS,
748 . LRBAGALE,FLAGG,ICOUNT,SWAFT, SWA4, SMATER, SEL2FA,
749 . SNFACPTX,SIXEDGE,SOFFX1,SNUMX1,SXNORM,SINVERT,SFUNC1,SIAD,
750 . SMAS,LEN_RM,LAG_NCF0,LAG_NKF0,
751 . LAG_NHF0,LAG_NCL0,LAG_NKL0,MAXNNOD, IBID,
752 . SRTRANS,LCNE_CRKXFEM,NSEGSMAX,XFEMON,
753 . IN10,IN20,SNOM_OPT_OLD,LENI,FLAG_ALLOCATE,
754 . PROC_BID,FLG_R2R_ERR,NSPCOND0,LENTHGR,FLAG_XFEM,
755 . IADTABIGE,NDOUBLONIGE,DECALIGEO,HM_NSENSOR,
756 . IPARSENS,NBT8,
757 . TAB_SOL(6),ISTR_24,IDEL_SOLID,
758 . LCNCND,I24MAXNSNE,NSIGBEAM,NSIGTRUSS,S_LOADPINTER,
759 . FLAGF,ITHFLAG,MAXRTM_T2,NS_I2,SITAGE,NCTRLMAX,INLIN,SVR_1
760 INTEGER (KIND=8) EMAX
761 INTEGER (KIND=8) K0,K1,K2,K3,K4,K5,K6,K7,K8
762
763 INTEGER(KIND=8) NUMELCK8
764 INTEGER(KIND=8) NUMELTGK8
765 INTEGER(KIND=8) NUMELSK8
766 INTEGER(KIND=8) NUMELRK8
767 INTEGER(KIND=8) NUMELPK8
768 INTEGER(KIND=8) NUMELTK8
769 INTEGER(KIND=8) NUMELQK8
770 INTEGER(KIND=8) NUMELXK8
771 INTEGER(KIND=8) NUMELIG3DK8
772 INTEGER(KIND=8) NUMSPHK8
773 INTEGER(KIND=8) SVEUL8
774
775 integer
777 . iuparam(100),ddstat(50,parasiz),igrnrb2(nrbe2),
778 . lcne_pxfem
779 INTEGER NSNT,NMNT_2
780
781 INTEGER, DIMENSION(:), ALLOCATABLE :: POIN_UMP_OLD
782 INTEGER, DIMENSION(:,:), ALLOCATABLE :: TAB_UMP_OLD
783 my_real,
DIMENSION(:),
ALLOCATABLE :: cputime_mp_old
784
785 INTEGER, DIMENSION(:,:), ALLOCATABLE :: POIN_PART_SHELL,POIN_PART_TRI
786 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: POIN_PART_SOL
787 TYPE(MID_PID_TYPE), DIMENSION(:), ALLOCATABLE :: MID_PID_SHELL,MID_PID_TRI
788 TYPE(MID_PID_TYPE), DIMENSION(:,:), ALLOCATABLE :: MID_PID_SOL
789 LOGICAL MARQUEUR3
790
791 INTEGER, DIMENSION(:),ALLOCATABLE ::
792 * IWCONT, IWCIN2 , IKINE1LAG ,DSDOF, TAGXREF,
793 * ADDCNE, ADDCNE_PXFEM, FXBTAG ,ADDCNE_CRKXFEM,
794 * TAGREFSTA,CSRECT
795
796 INTEGER, DIMENSION(:),ALLOCATABLE ::
797 * ISOLNOD,ISOLOFF,ISHEOFF,ITRUOFF,IPOUOFF,
798 * IRESOFF,ITRIOFF,IGRNRBY,IQUAOFF
799C
800 INTEGER(KIND=8) :: KVOISPH8,NUMSPH8,SIXSP8,LIMIT8
801 INTEGER :: INTEGER_LIMIT32
802
803 INTEGER, DIMENSION(:),ALLOCATABLE :: CEP,CEL,CNE,
804 . CNI2, CELI2, CEPI2,
805 . CEPSP, CELSPH, ITAGSH,
806 . CNE_PXFEM,CEL_PXFEM
807 INTEGER, DIMENSION(:), ALLOCATABLE :: FXBIPM, FXBNOD, FXBELM,
808 . FXBGRVI, EIGIPM, EIGIBUF,
809 . IMERGE,INTIDS,
810 . IMERGE2,IADMERGE2,
811 . NSLNRBM, SLNRBM,
812 . IGEO_STACK
813 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: ELDOM
814 INTEGER, DIMENSION(:), ALLOCATABLE :: CEPTMP, NELDOM
815 INTEGER, DIMENSION(:), ALLOCATABLE :: LLL
816 INTEGER, DIMENSION(:,:), ALLOCATABLE :: ELSUB
817 INTEGER(KIND=8) ,TARGET :: DSMEMORY(7,NSPMD)
818 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FXANI,IWORKSH, FXB_MATRIX_ADD
819 INTEGER, DIMENSION(:), ALLOCATABLE :: FASTAG,SEGTAG
820 INTEGER(KIND=8),TARGET :: MEMFLOW(2,NSPMD)
821 INTEGER, DIMENSION(:), ALLOCATABLE :: IFLOW
822
823 INTEGER, DIMENSION(:), ALLOCATABLE :: KINWORK
824
825 INTEGER, DIMENSION(:), ALLOCATABLE :: CNE_CRKXFEM,CEL_CRKXFEM,ITAGN,ITAGE,CEP_CRKXFEM,IEDGE_TMP0,CRKNODIAD
826 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IEDGE_TMP
827
828 INTEGER, DIMENSION(:), ALLOCATABLE :: NALE_R2R
829 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FRONTB_R2R
830
831 INTEGER, DIMENSION(:), ALLOCATABLE :: IXS_S ,IXS_S_IND,
832 2 IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
833 3 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
834 4 IXTG_S,IXTG_S_IND
835
836
837 INTEGER, DIMENSION(:), ALLOCATABLE :: IBUFSSG_IO, RESERVEP
838
839 INTEGER, DIMENSION(:), ALLOCATABLE :: IXR_KJ,R_SKEW
840
841
842 INTEGER, DIMENSION(:), ALLOCATABLE :: IBEAM_VECTOR
843 my_real,
DIMENSION(:,:),
ALLOCATABLE :: rbeam_vector
844
845
846 INTEGER, DIMENSION(:), ALLOCATABLE :: SOL2SPH_TYP
847
848 INTEGER, DIMENSION(:), ALLOCATABLE :: IBCSCYC,LBCSCYC,ITAGCYC
849
850 INTEGER, DIMENSION(:,:), ALLOCATABLE :: QP_IPERTURB,RBY_MSN
852 . , DIMENSION(:,:), ALLOCATABLE :: qp_rperturb,rby_iniaxis
853
855 . eanit2(10),cost_r2r,totmas
856 TARGET :: eanit2
857
858 INTEGER ITASK, NP
859#if defined(_OPENMP)
860 INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS
861 EXTERNAL omp_get_thread_num, omp_get_num_threads
862#endif
863
865 . , DIMENSION(:), ALLOCATABLE ::
866 . fxbrpm, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm,
867 . fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbsig,
868 . fxbgrvr, eigrpm ,rmstifn, rmstifr,stiffn,
869 . ms_ply0, zi_ply0,msz20,msz2,lelx,fxb_matrix
871 . , DIMENSION(:,:), ALLOCATABLE :: mbufel, mdepl,rnoise
873 . , DIMENSION(:), ALLOCATABLE :: rflow,cmerge,dnull
875 . probint, flrec6(6), dscutfrq
876 my_real,
DIMENSION(:),
ALLOCATABLE ::
877 . xfiltr,stfac,fric_p,frigap,
i2rupt,areasl,thk_part,
878 . geo_stack
879
880 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: xrefc,xreftg,xrefs
881 my_real,
DIMENSION(:),
ALLOCATABLE :: xyzref
882
883 my_real,
DIMENSION(:),
ALLOCATABLE :: dt_r2r
884 TYPE(INTERSURFP) , DIMENSION(:,:), ALLOCATABLE :: INTERCEP
886 my_real,
DIMENSION(:),
ALLOCATABLE :: sh4ang,sh3ang
887 my_real,
DIMENSION(:),
ALLOCATABLE :: ms_b,in_b,dtelem
888
889 TYPE (STACK_PLY) :: STACK
890
891 INTEGER, DIMENSION(:), ALLOCATABLE :: IDRAPEID,PERTURB
892 TYPE (FVM_INIVEL_STRUCT), DIMENSION(:), ALLOCATABLE :: FVM_INIVEL
893 TYPE (FAILWAVE_STR_) :: FAILWAVE
894 TYPE (NLOCAL_STR_) :: NLOC_DMG
895 TYPE (PINCH) :: PINCH_DATA
896 TYPE (DRAPE_) ,DIMENSION(:), ALLOCATABLE :: DRAPE,DRAPE_WRK
897 TYPE (DRAPEG_) :: DRAPEG
898 TYPE(DRAPE_WORK_) ,DIMENSION(:), ALLOCATABLE :: IWORK_T
899
900 INTEGER, DIMENSION(:), ALLOCATABLE :: ITAGOSET
901 my_real,
DIMENSION(:),
ALLOCATABLE,
TARGET :: xyz
902 my_real,
DIMENSION(:),
POINTER :: x_c
903
904 INTEGER, DIMENSION(:), ALLOCATABLE :: EBCS_TAG_CELL_SPMD
905
906 TYPE (DYNAIN_DATABASE) :: DYNAIN_DATA
907 TYPE (INTERFACES_) ::
908 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
909 INTEGER LWAMP_L
910 INTEGER LWANMP_L
911
912 CHARACTER(LEN=4096) :: SCR_FILE_NAME
913 CHARACTER(LEN=ncharline) :: RLINE
914 CHARACTER (LEN=4) :: CWIN
915 LOGICAL :: IS_AVAILABLE
916 INTEGER NLINES,NUSERWI,USERWI_ID
917 INTEGER SCR_FILE_NAME_LEN
918 CHARACTER(LEN=ncharkey) :: KEY
919 INTEGER NUSPHCEL
920 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IXSPS
921 LOGICAL MAT20_DISCRETE_FILL
922 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FLAG_ELEM_INTER25
923 INTEGER, DIMENSION(:), ALLOCATABLE :: LIST_NIN25
924
925
926 DATA iun/1/
927
928
929
930 TYPE :: int_ptr_array
931 INTEGER, DIMENSION(:), POINTER :: ptr
932 END TYPE int_ptr_array
933 TYPE(int_ptr_array) :: IBUFTMP(0:1),NIGE_TMP(0:1)
934 TYPE :: real_ptr_array
935 my_real,
DIMENSION(:),
POINTER :: ptr2
936 END TYPE real_ptr_array
937 TYPE(real_ptr_array) :: RIGE_TMP(0:1),XIGE_TMP(0:1),
938 . VIGE_TMP(0:1)
939 INTEGER, DIMENSION(:), ALLOCATABLE ::
940 . FR_IAD,FUNCRYPT,
941 . IWORK,ITRI,KSYSUSR,PTSHEL,PTSH3N,PTSOL,PTQUAD,
942 . PTSPH,ISPTAG,DD_TMP,ITAG,ITAGND_SHXFEM,
943 . ITHPART,ITHSUB,ITHBUFTMP,DD_TMP2,
944 . IADHF,JCIHF,JLL,IWA,WEIGHT_RM,
945 . PTSPRI,PTBEAM,PTTRUSS
946 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IPARGTMP
947 TARGET :: iwork
948
949 INTEGER, DIMENSION(:,:), ALLOCATABLE :: TAB_UMP_LOC
950 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: TAB_UMP_LOC2
951 INTEGER, DIMENSION(:), POINTER ::
952 . IPARTTH,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,IPARTR,
953 . IPARTG,IPARTX,IPARTSP,NPC1,IXS10,IXS20,IXS16,IPRES,
954 . IBMPC2,IBMPC3,IBMPC4,IWORK2,
955 . ITRI1,ITRI2,ITRI3,INDEX,
956 . INDEX1,INDEX2,IWD,IWEIG,INUM,EADD,ITR1,ITR2,XEP,
957 . IPARTTHI,IPARTIG3D,IEDGESH4,IEDGESH3,IELCRK4,IELCRK3
958 INTEGER BID13(1),SNPC1
959 INTEGER L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,SIXTG0,
960 . SIXS0,SIXS10,SIXS20,SIXS16,SIWORK,SIWORK2,SIEXTAG,
961 . NUMCLD,NUMPRES,NUMLINK,NUMGRAV,NUMRBYMOU,
962 . SNRBODY,SLRBODY,LITHPART,LITHSUB,IDX,IDX1,IDX2,IDXCNT,
963 . LITHBUFI,LITHBUFMX,NTHGRPMX,SINDEX,SITRI,LDD_IAD,
964 . LSIGI,LSIGSH,LSIGSP,LSIGSPH,SINSCR,
965 . SIPART0,SIPARTTH,SIPARTS,SIPARTQ,SIPARTC,SIPARTT,SIPARTP,
966 . SIPARTR,SIPARTG,SIPARTX,SIPARTSP,ITER,
967 . LIXINT,SBUFALE,NVARTOT,
968 . NVARTOT0,NVARTOTMAX,NVARABF,
969 . PIXS10,PIXS16,PIXS20,NUMCFIELD,NUMLOADP,IXEL,
970 . SIPARTIG3D,IDXIGE1,IDXIGE2,
971 . IDXIGECNT,TAGSURFIGE,LSIGRS,LSIGBEAM,LSIGTRUSS,NSETFRICTOT,
972 . IORTHFRICMAX,COEFSLEN,NPFRICORTH,NGRPF,LENG,
973 . NIMPDISP,NIMPVEL,NIMPACC,NIMPV_LAGM,NFV0,NSETMAX,NFXVEL0
974 TYPE(CLUSTER_),DIMENSION(:),ALLOCATABLE :: CLUSTERS
975 TYPE(INTBUF_STRUCT_),DIMENSION(:),ALLOCATABLE :: INTBUF_TAB
976 TYPE(SCRATCH_STRUCT_),DIMENSION(:),ALLOCATABLE :: INSCR
977
978 INTEGER SIPRELOAD, SPRELOAD
979
980
981 TYPE(ELBUF_STRUCT_),DIMENSION(:) ,ALLOCATABLE :: ELBUF_TAB
982 TYPE(ELBUF_STRUCT_),DIMENSION(:,:),ALLOCATABLE :: XFEM_TAB
983 TYPE(MLAW_TAG_) ,DIMENSION(:) ,ALLOCATABLE, TARGET :: MTAG_INI,MTAG_R2R
984 TYPE(MLAW_TAG_) ,DIMENSION(:) ,POINTER :: MLAW_TAG
985 TYPE(EOS_TAG_) ,DIMENSION(:) ,ALLOCATABLE :: EOS_TAG
986 TYPE(PROP_TAG_) ,DIMENSION(0:MAXPROP) :: PROP_TAG
987 TYPE(FAIL_TAG_) ,DIMENSION(0:MAXFAIL) :: FAIL_TAG
988
989 TYPE (XFEM_SHELL_) ,DIMENSION(:), ALLOCATABLE :: CRKSHELL
990 TYPE (XFEM_LVSET_) ,DIMENSION(:), ALLOCATABLE :: CRKLVSET
991 TYPE (XFEM_SKY_) ,DIMENSION(:), ALLOCATABLE :: CRKSKY
992 TYPE (XFEM_AVX_) ,DIMENSION(:), ALLOCATABLE :: CRKAVX
993 TYPE (XFEM_EDGE_) ,DIMENSION(:), ALLOCATABLE :: CRKEDGE
994 TYPE(XFEM_PHANTOM_),DIMENSION(:), ALLOCATABLE :: XFEM_PHANTOM
995
996
997 TYPE(INT8_STRUCT_) , DIMENSION(:,:), ALLOCATABLE :: INTERT8
998 INTEGER NCRKPART
999 INTEGER, DIMENSION(:), ALLOCATABLE :: INDX_CRK
1000 INTEGER, DIMENSION(:), ALLOCATABLE :: PERMIGE
1001 TYPE(TABCONPATCH_IG3D_), DIMENSION(:), ALLOCATABLE :: TABCONPATCH
1002
1003 TYPE(MATPARAM_STRUCT_) , DIMENSION(:), ALLOCATABLE , TARGET :: MPARAM_INI,MPARAM_R2R
1004
1005 TYPE(GROUP_PARAM_) , DIMENSION(:), ALLOCATABLE :: GROUP_PARAM_TAB
1006
1007 INTEGER, ALLOCATABLE, DIMENSION(:,:) :: T2MAIN_SMS
1008
1009 INTEGER :: SRNOISE1,SRNOISE2
1010
1011 INTEGER NSN_MULTI_CONNEC
1012 INTEGER, ALLOCATABLE, DIMENSION(:) :: T2_NB_CONNEC
1013
1014 INTEGER, DIMENSION(:), ALLOCATABLE :: MGRBY
1015
1016 INTEGER SPINCH
1017
1018 INTEGER, ALLOCATABLE, DIMENSION(:) :: TAG_SKINS6
1019 INTEGER, ALLOCATABLE, DIMENSION(:,:) :: SEATBELT_SHELL_TO_SPRING
1020
1021 INTEGER :: NPRELOAD_A
1022 INTEGER, ALLOCATABLE, DIMENSION(:) :: ITAGPRLD_SPRING
1023 INTEGER, ALLOCATABLE, DIMENSION(:) :: ITAGPRLD_BEAM
1024 INTEGER, ALLOCATABLE, DIMENSION(:) :: ITAGPRLD_TRUSS
1025 TYPE(PREL1D_), DIMENSION(:), ALLOCATABLE :: PRELOAD_A
1026
1027
1028
1029 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: DBRWORK
1030 my_real,
DIMENSION(:),
ALLOCATABLE ::
1031 . rwork,stifint,mwa,mss,mssx,mssf,msq,msr,
1032 . inp,inr,ins,vns,vnsx,stc,stt,stp,str,sttg,stur,
1033 . bns,bnsx,volnod,bvolnod,etnod,nshnod,xelemwa,
1034 . xnum,xtmp,rtrans,msig3d,stifintr,strc,
strr,strp,strtg,
1035 . vnige,bnige
1036 TARGET ::
1037 . rwork
1038 my_real,
DIMENSION(:),
POINTER ::
1039 . thkec,eanit,pres,wma
1040 INTEGER SRWORK
1041 INTEGER
1043 CHARACTER(LEN=NCHARLINE) ::ERR_MSG
1044 INTEGER, DIMENSION(:), ALLOCATABLE :: IBORDEDGE,INOM_OPT
1045 DOUBLE PRECISION RSIBUFSSG,RNIGE,RRIGE,RXIGE,RVIGE
1046 INTEGER INTMAX, LLINAL,ITET4_10
1047
1048 INTEGER, DIMENSION(:), ALLOCATABLE :: ICNDS10,ITAGND,ADDCNCND,
1049 . CNCND, CELCND, CEPCND
1050
1051
1052 INTEGER(KIND=8) ,POINTER :: pMEMFLOW
1053
1054 DATA intmax /2147483647/
1056 . DIMENSION(:), ALLOCATABLE :: fillsol
1057
1058
1059 CHARACTER FILNAM*512,CLAW*4
1060 INTEGER LEN_FILNAM
1061 INTEGER IADBOXMAX
1062 INTEGER, DIMENSION(:), ALLOCATABLE :: IADBOXMAX_NODE,IADBOXMAX_SURF,
1063 . IADBOXMAX_LINE,IADBOXMAX_ELEM
1064
1065 my_real,
DIMENSION(:,:),
ALLOCATABLE ::
1066 . sigi,sigsh,sigsp,sigsph,sigrs,sigbeam,sigtruss
1067 INTEGER, DIMENSION(:), ALLOCATABLE ::
1068 . STRSGLOB,STRAGLOB,ORTHOGLOB
1069 INTEGER ISIGSH,IYLDINI,KSIGSH3,FAIL_INI(5),IUSOLYLD,IUSERL
1070
1071 INTEGER FVMAIN(NVOLU + NMONVOL),NBSUBMAT
1072
1073 INTEGER :: MEM_MARGIN
1074 parameter(mem_margin = 250000)
1075
1076 TYPE(INTBUF_FRIC_STRUCT_), DIMENSION(:), ALLOCATABLE :: INTBUF_FRIC_TAB
1077 INTEGER, DIMENSION(:), ALLOCATABLE ::TABCOUPLEPARTS_FRIC_TMP,TABPARTS_FRIC_TMP,
1078 . TAGPRT_FRIC,NSETINIT,IFRICORTH_TMP,
1079 . PFRICORTH ,IREPFORTH ,LENGRPF
1080 my_real,
DIMENSION(:),
ALLOCATABLE ::tabcoef_fric_tmp , vforth ,phiforth
1081 TYPE(INIMAP1D_STRUCT), DIMENSION(:), ALLOCATABLE :: INIMAP1D
1082 TYPE(INIMAP2D_STRUCT), DIMENSION(:), ALLOCATABLE :: INIMAP2D
1083 TYPE(FUNC2D_STRUCT), DIMENSION(:), ALLOCATABLE :: FUNC2D
1084 TYPE(PYTHON_) :: PYTHON
1085
1086 LOGICAL :: FLAG_24_25
1087 INTEGER :: NINDX_NM,NINDX_SCRT,I24MAXNSNE2
1088 INTEGER, DIMENSION(NSPMD) :: NUMNOD_L
1089 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_NM,INDX_NM
1090 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_SCRATCH,INDX_SCRT
1091
1092 INTEGER FXB_LAST_ADRESS(10)
1093 CHARACTER, DIMENSION(:), ALLOCATABLE :: FXBFILE_TAB*2148
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_SKN
1109 TYPE(SKEW_) :: SKEWS
1110 TYPE (SENSOR_STR_) ,DIMENSION(:) ,ALLOCATABLE :: SENSOR_TMP
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123 TYPE(SURF_), DIMENSION(:,:), ALLOCATABLE :: IGRSURF_PROC
1124
1125
1126
1127
1128
1129
1130
1131 INTEGER :: GRNOD_UID
1132 INTEGER, DIMENSION(NSPMD) :: SIZE_ALE_ELM
1133 TYPE(split_cfd_type), DIMENSION(:),ALLOCATABLE :: ALE_ELM
1134
1135
1136
1137
1138
1139 INTEGER :: LEN_TMP_NAME
1140 CHARACTER(len=4096) :: TMP_NAME
1141
1142
1143
1144
1145
1146 TYPE(MONVOL_STRUCT_), DIMENSION(:), ALLOCATABLE :: T_MONVOL
1147 TYPE(MONVOL_METADATA_) :: T_MONVOL_METADATA
1148 TYPE(t_ale_connectivity) :: ALE_CONNECTIVITY
1149
1150 INTEGER :: NBR_TH_MONVOL,NBR_TH_MONVOL01(9)
1151
1152 INTEGER,DIMENSION(:),ALLOCATABLE :: IRAND
1153 my_real,
DIMENSION(:),
ALLOCATABLE :: alea,xseed
1154
1155
1156
1157
1158
1159
1160
1161
1162 LOGICAL :: BOOL_ALE_TG
1163 INTEGER, DIMENSION(:), ALLOCATABLE :: INDX_S,INDX_Q
1164INTEGER, DIMENSION(:,:), ALLOCATABLE :: FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG
1165
1166
1167
1168 TYPE(INVERTGROUP_STRUCT_) :: INV_GROUP
1169 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
1170
1171
1172 TYPE (LOADS_) :: LOADS
1173 TYPE (LOADS_), DIMENSION(NSPMD) :: LOADS_PER_PROC
1174
1175
1176 TYPE (bcs_struct_), DIMENSION(NSPMD) :: BCS_PER_PROC
1177
1178 INTEGER NINIVELT
1179 INTEGER NINTEMP
1180 INTEGER ALE_EULER
1181
1182
1183 INTEGER NMERGE_NODE_CAND,NMERGE_NODE_DEST,NMERGE_TOT
1184 INTEGER, DIMENSION(:), ALLOCATABLE :: MERGE_NODE_TAB
1185 my_real,
DIMENSION(:),
ALLOCATABLE :: merge_node_tol
1186
1187 my_real,
DIMENSION(:),
ALLOCATABLE :: dgapint, intgaploadp ,dgaploadint
1188
1189 INTEGER NB_MAT_SEATBELT,NB_MAT
1190
1191 INTEGER :: NUMSH3,NUMSH4, NSLICE,NPT_DRAPE,JJ,ISL, IP,IE, IDSHEL
1192 INTEGER , DIMENSION(:), ALLOCATABLE :: INDXSH
1193 INTEGER :: NUMBER_LOAD_CYL
1194 INTEGER :: S_NOD2ELS,S_NOD2ELTG,S_NOD2EL1D
1195
1196 INTEGER :: NDAMP_VREL_RBY
1197 INTEGER :: NDAMP_FREQ_RANGE
1198 INTEGER , DIMENSION(:), ALLOCATABLE :: DAMP_RANGE_PART
1199
1200 INTEGER :: PRE_SEARCH,SZ_INTP_DIST
1202
1203 TYPE(INTER_CAND_) :: INTER_CAND
1204 TYPE (FAIL_FRACTAL_) :: FAIL_FRACTAL
1205 TYPE (FAIL_BROKMANN_) :: FAIL_BROKMANN
1206 INTEGER DEF_INTER(100)
1207
1208 type(constraint_) :: constraint_struct
1209
1210 ireac = 0
1211 python%NB_FUNCTS = 0
1212 python%NB_SENSORS = 0
1213
1214 ddstat(1:50,1:parasiz)=0
1215 i22len_l = 0
1216 fvmain(1:nvolu + nmonvol) = 0
1217 m51_iflg6 = 0
1218 nvartotmax = 0
1219 err_msg='BEGINNING'
1220 err_category='INTERNAL'
1221 CALL trace_in1(err_msg,len_trim(err_msg))
1222 flag_goto = 0
1224 nvarabf = 1
1225 intbag=0
1226 l_mul_lag=0
1227 lag_ncf = 0
1228 lag_nkf = 0
1229 lag_nhf = 0
1230 lag_ncl = 0
1231 lag_nkl = 0
1232 lag_nhl = 0
1233 numels8a = 0
1234 nairwa = 0
1235 nmanim=0
1236 dsanim=0
1237 impl_s0 = 0
1238 flg_split = 0
1239 nvartotmax = 0
1240 nxlaymax = 0
1241
1242 ndamp_vrel_rby = 0
1243
1244 ndamp_freq_range = 0
1245
1246 iplyxfem = 0
1247 nplyxfe = 0
1248 eplyxfe = 0
1249 intplyxfem = 0
1250
1251 inter_ithknod=0
1252 irigid_mat = 0
1253
1254
1255 ialelag = 0
1256
1257 totaddmas = zero
1258 ipart_stack = 0
1259 ipart_pcompp = 0
1260
1261 sfrontb_r2r = 1
1262
1263 user_grp_domain=0
1264 nsnt=0
1265 nmnt_2=0
1266 def_inter(1:100) = defaults%interface%DEF_INTER(1:100)
1267
1268 itask=0
1269
1270
1271
1272
1273 i11flag=0
1274 inter18_autoparam = 0
1275 inter18_is_variable_gap_defined = .false.
1276 nbpreld = 10
1277 ALLOCATE(ebcs_tag_cell_spmd(numelq+numeltg+numels))
1278
1279 ALLOCATE(eos_tag(0:
maxeos))
1280
1281
1282
1283 ALLOCATE(intercep(3,ninter))
1284
1285 DO i=1,ninter
1286 NULLIFY(intercep(1,i)%P)
1287 NULLIFY(intercep(2,i)%P)
1288 NULLIFY(intercep(3,i)%P)
1289 ENDDO
1290
1291
1292
1293 nnoise_sav = 0
1294 sinoise = 0
1295 sfnoise = 0
1297 ALLOCATE(fnoise(0))
1298
1299
1300
1301 nusphcel = 0
1302
1303
1304
1305
1306 ALLOCATE(iwcont(5*numnod),stat=stat)
1307 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1308 . msgtype=msgerror,
1309 . c1='IWCONT')
1310
1311 ALLOCATE(iwcin2(2*numnod),stat=stat)
1312 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1313 . msgtype=msgerror,
1314 . c1='IWCIN2')
1315
1316
1317 ALLOCATE(ikine1lag(3*numnod),stat=stat)
1318 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1319 . msgtype=msgerror,
1320 . c1='IKINE1LAG')
1321 ikine1lag(1:3*numnod)=0
1322
1323 ALLOCATE(dsdof(numnod),stat=stat)
1324 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1325 . msgtype=msgerror,
1326 . c1='DSDOF')
1327 dsdof(1:numnod)=0
1328
1329 ALLOCATE( addcne(0:numnod+1),stat=stat)
1330 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1331 . msgtype=msgerror,
1332 . c1='ADDCNE')
1333
1334 ALLOCATE(addcne_pxfem(0:numnod +1),stat=stat)
1335 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1336 . msgtype=msgerror,
1337 . c1='ADDCNE_PXFEM')
1338
1339 IF(nfxbody>0) THEN
1340 nbipm = 45
1341 ALLOCATE(fxbtag(numnod),fxbipm(nbipm*nfxbody),stat=stat)
1342 fxbipm(1:nbipm*nfxbody) = zero
1343 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1344 . msgtype=msgerror,
1345 . c1='FXBTAG')
1346
1347 ALLOCATE(fxbfile_tab(nfxbody))
1348 ELSE
1349 nbipm = 1
1350 ALLOCATE(fxbtag(1),fxbipm(1),stat=stat)
1351 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1352 . msgtype=msgerror,
1353 . c1='FXBTAG')
1354 ALLOCATE(fxbfile_tab(0))
1355 ENDIF
1356
1357 ALLOCATE(isolnod(numels),stat=stat)
1358 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1359 . msgtype=msgerror,
1360 . c1='ISOLNOD')
1361 ALLOCATE(isoloff(numels),stat=stat)
1362 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1363 . msgtype=msgerror,
1364 . c1='ISOLOFF')
1365 ALLOCATE(isheoff(numelc),stat=stat)
1366 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1367 . msgtype=msgerror,
1368 . c1='ISHEOFF')
1369 ALLOCATE(itruoff(numelt),stat=stat)
1370 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1371 . msgtype=msgerror,
1372 . c1='ITRUOFF')
1373 ALLOCATE(ipouoff(numelp),stat=stat)
1374 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1375 . msgtype=msgerror,
1376 . c1='IPOUOFF')
1377 ALLOCATE(iresoff(numelr),stat=stat)
1378 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1379 . msgtype=msgerror,
1380 . c1='IRESOFF')
1381 ALLOCATE(itrioff(numeltg),stat=stat)
1382 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1383 . msgtype=msgerror,
1384 . c1='ITRIOFF')
1385 ALLOCATE(igrnrby(nrbody),stat=stat)
1386 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1387 . msgtype=msgerror,
1388 . c1='IGRNRBY')
1389 igrnrby(1:nrbody) = 0
1390 ALLOCATE(iquaoff(numelq),stat=stat)
1391 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1392 . msgtype=msgerror,
1393 . c1='IQUAOFF')
1394
1395
1396
1397
1398 len_g = npropgi*numgeo
1399 len_m = npropmi*nummat
1400 ALLOCATE(
igeo(len_g),stat=stat)
1401 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1402 . msgtype=msgerror,
1403 . c1='IGEO')
1404 ALLOCATE(
ipm(len_m),stat=stat)
1405 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1406 . msgtype=msgerror,
1407 . c1='IPM')
1410
1411
1412
1414
1416 IF(stat /= 0) THEN
1417 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1418 . c1='IPART_STATE')
1419 ELSE
1421 END IF
1423
1424
1425
1426 err_category='INTERNAL'
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1438
1439
1440
1441
1442
1444 ALLOCATE(
ifront%IENTRY(numnod),stat=stat)
1445
1446
1447 ALLOCATE(
ientry2(numnod),stat=stat)
1448 IF(stat/=0) THEN
1449 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1450 . c1='IFRONT')
1451 ENDIF
1452
1453
1454 ALLOCATE(
flagkin(numnod),stat=stat)
1455 IF(stat/=0) THEN
1456 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1457 . c1='FLAGKIN')
1458 ENDIF
1459
1463
1464
1465
1466
1467
1468 isecut=0
1470
1471
1472
1473 impose_dr=0
1475
1476
1477
1478 ifrwv=0
1479208 sx = 3*numnod
1480 sd = 5*numnod
1481 sv = 3*numnod
1482 svr = 3*numnod*
max(iroddl,iroddl0)
1483 svr_1 = numnod*
max(iroddl,iroddl0)
1484 sthke = numelc+numeltg
1485 sms = numnod
1487 sin = numnod*
max(iroddl,iroddl0)
1488 IF(isecut>0 .OR. iisrot>0 .OR. impose_dr>0 .OR. idrot == 1) THEN
1489 sdr = 3*numnod*
max(iroddl,iroddl0)
1490 ELSE
1491 sdr = 0
1492 ENDIF
1493 IF(flag_goto == 1) GOTO 258
1494
1495 IF(ndamp > 0) THEN
1496 sdampr = nrdamp*ndamp
1497 sdamp = 3*(1+
max(iroddl,iroddl0))*numnod
1499 IF (ndamp == ndamp_freq_range) sdamp = 0
1500 ALLOCATE(dampr(sdampr+sdamp) ,stat=stat)
1501 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1502 . msgtype=msgerror,
1503 . c1='DAMPR')
1504 damp => dampr(sdampr+1:sdampr+sdamp)
1505 dampr = 0
1506 ELSE
1507 sdampr = 0
1508 sdamp = 0
1509 ALLOCATE(dampr(sdampr) ,stat=stat)
1510 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1511 . msgtype=msgerror,
1512 . c1='DAMPR')
1513 ALLOCATE(damp(sdamp) ,stat=stat)
1514 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1515 . msgtype=msgerror,
1516 . c1='DAMP')
1517 ENDIF
1518 ALLOCATE(damp_range_part(npart),stat=stat)
1519 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1520 . msgtype=msgerror,
1521 . c1='DAMP_RANGE_PART')
1522 damp_range_part = 0
1523 ALLOCATE(x(sx) ,stat=stat)
1524 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1525 . msgtype=msgerror,
1526 . c1='X')
1527 ALLOCATE(d(sd) ,stat=stat)
1528 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1529 . msgtype=msgerror,
1530 . c1='D')
1531 ALLOCATE(v(sv) ,stat=stat)
1532 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1533 . msgtype=msgerror,
1534 . c1='V')
1535 ALLOCATE(vr(svr) ,stat=stat)
1536 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1537 . msgtype=msgerror,
1538 . c1='VR')
1539 ALLOCATE(dr(sdr) ,stat=stat)
1540 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1541 . msgtype=msgerror)
1542 ALLOCATE(thke(sthke) ,stat=stat)
1543 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1544 . msgtype=msgerror,
1545 . c1='THKE')
1546 ALLOCATE(ms(sms) ,stat=stat)
1547 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1548 . msgtype=msgerror,
1549 . c1='MS')
1550 ALLOCATE(in(sin) ,stat=stat)
1551 ALLOCATE(xyzref(sx) ,stat=stat)
1552 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1553 . msgtype=msgerror,
1554 . c1='XYZREF')
1555 ALLOCATE(sh4ang(numelc) ,stat=stat)
1556 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1557 . msgtype=msgerror,
1558 . c1='SH4ANG')
1559 ALLOCATE(sh3ang(numeltg) ,stat=stat)
1560 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1561 . msgtype=msgerror,
1562 . c1='SH3ANG')
1563 IF(numnod > 0) THEN
1564 x = 0
1565 d = 0
1566 v = 0
1567 ms = 0
1568 ENDIF
1569 IF(svr > 0) vr = 0
1570 IF(sdr > 0) dr = 0
1571 IF(sin > 0) in = 0
1572
1573258 IF(numelc<sthke) THEN
1574 thkec => thke(numelc+1:sthke)
1575 ELSE
1576 thkec => thke
1577 END IF
1578 IF(sthke > 0) thke = 0
1579 IF(numelc > 0) sh4ang = 0
1580 IF(numeltg > 0) sh3ang = 0
1581
1582 CALL nbfunct(nfunct,ntable,npts,lsubmodel)
1583
1584
1585
1586
1587 sicode = numnod
1588 siskew = numnod
1589 siskwn = liskn*((numskw+1)+
min(iun,nspcond)*numsph+(numfram+1)+
nsubmod)
1590 siframe = liskn*(numfram+1)
1591
1592 sibcslag= 5*nbcslag
1593 sipart0 = lipart1*npart+lipart1*nthpart
1594 sipartth= 2*9*npart+2*9*nthpart
1595 siparts = numels
1596 sipartq = numelq
1597 sipartc = numelc
1598 sipartt = numelt
1599 sipartp = numelp
1600 sipartr = numelr
1601 sipartg = numeltg
1602 sipartx = numelx
1603 sipartsp= numsph
1604 sipartig3d = numelig3d
1605 sipart = sipart0+sipartth+siparts+sipartq+sipartc+sipartt+sipartp
1606 . + sipartr+sipartg+sipartx+sipartig3d+sipartsp
1607 numel = numels+numelq+numelc+numelt+numelp+numelr
1608 . + numeltg+numelx+numsph+numelig3d
1609
1610 snpc = 3*nfunct+1
1611 sixtg0 = nixtg*numeltg
1612 sixtg = sixtg0
1613 sixs0 = nixs*numels
1614 sixs10 = numels10*6
1615 sixs20 = numels20*12
1616 sixs16 = numels16*8
1617 sixs = sixs0+sixs10+sixs20+sixs16
1618 sixq = nixq*numelq
1619 sixc = nixc*numelc
1620 sixt = nixt*numelt
1621 sixp = nixp*numelp
1622 sixr = nixr*numelr
1623 sitab = numnod
1624 sitabm1 = 2*numnod
1625 sgjbufi = lkjni*ngjoint
1626
1627 slaccelm= 3*naccelm
1628 snom_opt1= nrbody+naccelm+nvolu+nmonvol+ninter+nintsub+
1629 + nrwall+njoint+nsect+nlink+
1630 + numskw+1+numfram+1+nfxbody+nflow+nrbe2+
1631 + nrbe3+
nsubmod+nfxvel+numbcs+nummpc+
1632 + ngjoint+nunit0+nfunct+nadmesh+
1633 + nsphio+nspcond+nrbykin+
nebcs+
1634 + ninicrack+nodmas+nbgauge+ncluster+ninterfric+
1635 + nrbmerge+numbcsn+nslipring+nretractor
1636 snom_opt = snom_opt1*lnopt1+1
1637 sinom_opt= 33
1639 IF(flag_goto==1) GOTO 209
1640
1641
1642 ALLOCATE(
icode(sicode) ,stat=stat)
1643 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1644 . msgtype=msgerror,
1645 . c1='ICODE')
1646 ALLOCATE(
iskew(siskew) ,stat=stat)
1647 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1648 . msgtype=msgerror,
1649 . c1='ISKEW')
1650 ALLOCATE(
iskwn(siskwn) ,stat=stat)
1651 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1652 . msgtype=msgerror,
1653 . c1='ISKWN')
1654 ALLOCATE(
ibcslag(sibcslag) ,stat=stat)
1655 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1656 . msgtype=msgerror,
1657 . c1='IBCSLAG')
1658 ALLOCATE(
ipart(sipart) ,stat=stat)
1659 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1660 . msgtype=msgerror,
1661 . c1='IPART')
1662 ALLOCATE(
npc(snpc) ,stat=stat)
1663 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1664 . msgtype=msgerror,
1665 . c1='NPC')
1666 ALLOCATE(
ixtg(sixtg) ,stat=stat)
1667 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1668 . msgtype=msgerror,
1669 . c1='IXTG')
1670 ALLOCATE(
ixs(sixs) ,stat=stat)
1671 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1672 . msgtype=msgerror,
1673 . c1='IXS')
1674 ALLOCATE(
ixq(sixq) ,stat=stat)
1675 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1676 . msgtype=msgerror,
1677 . c1='IXQ')
1678 ALLOCATE(
ixc(sixc) ,stat=stat)
1679 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1680 . msgtype=msgerror,
1681 . c1='IXC')
1682 ALLOCATE(
ixt(sixt) ,stat=stat)
1683 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1684 . msgtype=msgerror,
1685 . c1='IXT')
1686 ALLOCATE(
ixp(sixp) ,stat=stat)
1687 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1688 . msgtype=msgerror,
1689 . c1='IXP')
1690 ALLOCATE(
ixr(sixr) ,stat=stat)
1691 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1692 . msgtype=msgerror,
1693 . c1='IXR')
1694 ALLOCATE(
itab(sitab) ,stat=stat)
1695 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1696 . msgtype=msgerror,
1697 . c1='ITAB')
1698 ALLOCATE(
itabm1(sitabm1) ,stat=stat)
1699 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1700 . msgtype=msgerror,
1701 . c1='ITABM1')
1702 ALLOCATE(
gjbufi(sgjbufi) ,stat=stat)
1703 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1704 . msgtype=msgerror,
1705 . c1='GJBUFI')
1706 ALLOCATE(
laccelm(slaccelm) ,stat=stat)
1707 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1708 . msgtype=msgerror,
1709 . c1='LACCELM')
1710
1711 ALLOCATE(
nom_opt(snom_opt) ,stat=stat)
1712 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1713 . msgtype=msgerror,
1714 . c1='NOM_OPT')
1715 ALLOCATE(inom_opt(0:sinom_opt) ,stat=stat)
1716 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1717 . msgtype=msgerror,
1718 . c1='INOM_OPT')
1719 ALLOCATE(
nom_sect(snom_sect) ,stat=stat)
1720 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1721 . msgtype=msgerror,
1722 . c1='NOM_SECT')
1723 ALLOCATE(ixr_kj(5*(numelr+1)) ,stat=stat)
1724 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1725 . msgtype=msgerror,
1726 . c1='IXR_KJ')
1727 ALLOCATE(iworksh(3,numelc+numeltg) ,stat=stat)
1728 IF(stat /= 0
CALL ancmsg(msgid=268,anmode=aninfo,
1729 . msgtype=msgerror,
1730 . c1='IXC')
1731 IF(numelig3d > 0) THEN
1732 ALLOCATE(wige(numnod) ,stat=stat)
1733 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1734 . msgtype=msgerror,
1735 . c1='WIGE')
1736 deg_max=0
1737 ELSE
1738 ALLOCATE(wige(0) ,stat=stat)
1739 ENDIF
1740 ALLOCATE(r_skew(numelr) ,stat=stat)
1741 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1742 . msgtype=msgerror,
1743 . c1='R_SKEW')
1744
1745 ALLOCATE(ibeam_vector(numelp) ,stat=stat)
1746 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1747 . msgtype=msgerror,
1748 . c1='IBEAM_VECTOR')
1749 ALLOCATE(rbeam_vector(3,numelp) ,stat=stat)
1750 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1751 . msgtype=msgerror,
1752 . c1='RBEAM_VECTOR')
1753
1754 IF(abs(isigi)==3.OR.abs(isigi)== 4.OR.abs(isigi)==5)THEN
1755 ALLOCATE (ptshel(numelc) ,stat=stat)
1756 ptshel = 0
1757 ALLOCATE (ptsh3n(numeltg) ,stat=stat)
1758 ptsh3n = 0
1759 ELSE
1760 ALLOCATE (ptshel(0) ,stat=stat)
1761 ALLOCATE (ptsh3n(0) ,stat=stat)
1762 END IF
1763
1764 IF(sicode > 0)
icode = 0
1765 IF(siskew > 0)
iskew = 0
1766 IF(siskwn > 0)
iskwn = 0
1768 IF(sipart > 0)
ipart = 0
1769 IF(snpc > 0)
npc = 0
1770 IF(sitab > 0)
itab = 0
1771 IF(sitabm1 > 0)
itabm1 = 0
1772 IF(sgjbufi > 0)
gjbufi = 0
1775 IF(sinom_opt > 0) inom_opt = 0
1776 IF(numelr > 0) ixr_kj = 0
1777 IF(numelc+numeltg > 0) iworksh = 0
1778 IF(numelr > 0) r_skew = 0
1779 IF(numelp > 0) ibeam_vector(1:numelp) = zero
1780 IF(numelp > 0) rbeam_vector(1:3,1:numelp) = zero
1781
1782
1783 IF(siskwn-siframe<siskwn) THEN
1785 ELSE
1787 END IF
1788
1789
1790 inter_cand%S_IXINT_2 = 0
1791 ALLOCATE( inter_cand%ADDRESS(ninter+1) )
1792 inter_cand%ADDRESS(1:ninter+1) = 0
1793
1794
1795
1808 ALLOCATE(igrsurf_proc(nsurf+
nsets,nspmd))
1818
1819
1820
1829
1841
1849
1850
1851
1852216 l0 = sipart0
1853 l1 = l0 + sipartth
1854 l2 = l1 + siparts
1855 l3 = l2 + sipartq
1856 l4 = l3 + sipartc
1857 l5 = l4 + sipartt
1858 l6 = l5 + sipartp
1859 l7 = l6 + sipartr
1860 l8 = l7 + 0
1861 l9 = l8 + sipartg
1862 l10= l9 + sipartx
1863 l11= l10+ sipartsp
1864 l12= l11+ sipartig3d
1865 IF(l1>l0) THEN
1866 ipartth =>
ipart(l0+1:l1)
1867 ELSE
1869 END IF
1870 IF(l2>l1) THEN
1871 iparts =>
ipart(l1+1:l2)
1872 ELSE
1874 END IF
1875 IF(l3>l2) THEN
1876 ipartq =>
ipart(l2+1:l3)
1877 ELSE
1879 END IF
1880 IF(l4>l3) THEN
1881 ipartc =>
ipart(l3+1:l4)
1882 ELSE
1884 END IF
1885 IF(l5>l4) THEN
1886 ipartt =>
ipart(l4+1:l5)
1887 ELSE
1889 END IF
1890 IF(l6>l5) THEN
1891 ipartp =>
ipart(l5+1:l6)
1892 ELSE
1894 END IF
1895 IF(l7>l6) THEN
1896 ipartr =>
ipart(l6+1:l7)
1897 ELSE
1899 END IF
1900 IF(l9>l8) THEN
1901 ipartg =>
ipart(l8+1:l9)
1902 ELSE
1904 END IF
1905 IF(l10>l9) THEN
1906 ipartx =>
ipart(l9+1:l10)
1907 ELSE
1909 END IF
1910 IF(l11>l10) THEN
1911 ipartsp=>
ipart(l10+1:l11)
1912 ELSE
1914 END IF
1915 IF(l12>l11) THEN
1916 ipartig3d=>
ipart(l11+1:l12)
1917 ELSE
1919 END IF
1920 IF(flag_goto==1) GOTO 217
1921
1922 IF(nfunct+2<=snpc-nfunct) THEN
1923 npc1 =>
npc(nfunct+2:snpc-nfunct)
1924 snpc1 = snpc-2*nfunct+1
1925 ELSE
1927 snpc1 = snpc
1928 END IF
1929
1930212 IF(sixs0+sixs10>sixs0) THEN
1931 ixs10 =>
ixs(sixs0+1:sixs0+sixs10)
1932 ELSE
1933
1934
1935 ALLOCATE(ixs10(1))
1936 END IF
1937 IF(sixs0+sixs10+sixs20>sixs0+sixs10) THEN
1938 ixs20 =>
ixs(sixs0+sixs10+1:sixs0+sixs10+sixs20)
1939 ELSE
1940
1941 ALLOCATE(ixs20(1))
1942 END IF
1943 IF(sixs>sixs0+sixs10+sixs20) THEN
1944 ixs16 =>
ixs(sixs0+sixs10+sixs20+1:sixs)
1945 ELSE
1946
1947
1948 ALLOCATE(ixs16(1))
1949 END IF
1950 pixs10 =
min(sixs,sixs0+1 )
1951 pixs20 =
min(sixs,sixs0+sixs10+1 )
1952 pixs16 =
min(sixs,sixs0+sixs10+sixs20+1)
1953
1954 IF(flag_goto==1) GOTO 213
1955
1956
1957210 inom_opt(1) = nrbody
1958 inom_opt(2) = inom_opt(1) + naccelm
1959 inom_opt(3) = inom_opt(2) + nvolu + nmonvol
1960 inom_opt(4) = inom_opt(3) + ninter
1961 inom_opt(5) = inom_opt(4) + nintsub
1962 inom_opt(6) = inom_opt(5) + nrwall
1963 inom_opt(7) = inom_opt(6) + 0
1964 inom_opt(8) = inom_opt(7) + njoint
1965 inom_opt(9) = inom_opt(8) + nsect
1966 inom_opt(10)= inom_opt(9) + nlink
1967 inom_opt(11)= inom_opt(10)+ numskw+1+numfram+1+
nsubmod
1968 inom_opt(12)= inom_opt(11)+ nfxbody
1969 inom_opt(13)= inom_opt(12)+ nflow
1970 inom_opt(14)= inom_opt(13)+ nrbe2
1971 inom_opt(15)= inom_opt(14)+ nrbe3
1972
1973 inom_opt(16)= inom_opt(15)+ nfxvel
1974 inom_opt(17)= inom_opt(16)+ numbcs + numbcsn
1975 inom_opt(18)= inom_opt(17)+ nummpc
1976 inom_opt(19)= inom_opt(18)+ ngjoint
1977 inom_opt(20)= inom_opt(19)+ nunit0
1978 inom_opt(21)= inom_opt(20)+ nfunct
1979 inom_opt(22)= inom_opt(21)+ nadmesh
1980 inom_opt(23)= inom_opt(22)+ nsphio
1981 inom_opt(24)= inom_opt(23)+ nspcond
1982 inom_opt(25)= inom_opt(24)+
nebcs
1983 inom_opt(26)= inom_opt(25)+ ninicrack
1984 inom_opt(27)= inom_opt(26)+ nodmas
1985 inom_opt(28)= inom_opt(27)+ nbgauge
1986 inom_opt(29)= inom_opt(28)+ ncluster
1987 inom_opt(30)= inom_opt(29)+ ninterfric
1988 inom_opt(31)= inom_opt(30)+ nrbmerge
1989 inom_opt(32)= inom_opt(31)+ nslipring
1990 inom_opt(33)= inom_opt(32)+ nretractor
1991
1992 IF(flag_goto==1) GOTO 211
1993
1995 IF(npart==0) THEN
1997 ELSE
1999 END IF
2000
2001
2002
2003 err_msg='FUNCTIONS & TABLES'
2004 err_category='FUNCTIONS & TABLES'
2005 CALL trace_in1(err_msg,len_trim(err_msg))
2006
2007 python%nb_functs = 0
2008 IF(nfunct > 0 .OR. ntable > 0) THEN
2009
2010
2011 WRITE(istdo,'(A)')' .. FUNCTIONS & TABLES'
2012 ALLOCATE(
table(ntable) ,stat=stat)
2013 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2014 . msgtype=msgerror,
2015 . c1='TABLE')
2017 IF(nfunct > 0) THEN
2018 err_msg='FUNCTIONS'
2019 CALL trace_in1(err_msg,len_trim(err_msg))
2020 ALLOCATE(tf(npts) ,stat=stat)
2021 ALLOCATE(funcrypt(nfunct) ,stat=stat)
2022 funcrypt = 0
2023 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2024 . msgtype=msgerror,
2025 . c1='TF')
2026 IF(npts > 0) tf = 0
2028 .
nom_opt(lnopt1*inom_opt(20)+1) ,funcrypt,
unitab, lsubmodel)
2030 END IF
2031
2032 err_msg='TABLES 1'
2033 CALL trace_in1(err_msg,len_trim(err_msg))
2036
2037 CALL hm_read_funct_python(python,
npc,snpc,nfunct,lsubmodel,
nsubmod,tf,npts,
table, ntable)
2039 IF(nfunct > 0) THEN
2041 DEALLOCATE(funcrypt)
2042 END IF
2045 ELSE
2046
2047 err_msg='TABLES 0'
2048 CALL trace_in1(err_msg,len_trim(err_msg))
2049 npts = 0
2050 ALLOCATE(tf(npts) ,stat=stat)
2051 ALLOCATE(
table(0) ,stat=stat)
2053 ENDIF
2054
2055
2056 stf = npts
2057
2059
2060
2061
2062 ALLOCATE(func2d(nfunc2d))
2063 IF(nfunc2d > 0) THEN
2065 ENDIF
2066
2067
2068
2069 err_msg='DYNAMIC STORAGE'
2070 err_msg='INTERNAL'
2071 CALL trace_in1(err_msg,len_trim(err_msg))
2072 spm = nummat*npropm
2073 sskew = lskew*(numskw+1)
2074 IF(nspcond > 0) sskew = sskew + lskew*numsph
2076 sxframe = nxframe*(numfram+1)
2077 sskew = sskew + sxframe
2078 sgeo = numgeo*npropg
2079 seani = numels+numelq+numelc+numeltg
2080 ishif = numels+numelq+numelc
2081
2082 ALLOCATE(pm(spm) ,stat=stat)
2083 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'PM')
2084 ALLOCATE(geo(sgeo),stat=stat)
2085 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'GEO')
2086
2087 ALLOCATE(skew(sskew) ,stat=stat)
2088 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'SKEW')
2089 IF(sskew-sxframe<sskew) THEN
2090 xframe => skew(sskew-sxframe+1:sskew)
2091 ELSE
2092 xframe => skew
2093 END IF
2094
2095 ALLOCATE(eani(seani) ,stat=stat)
2096 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'EANI')
2097 IF(seani > 0) eani = 0
2098 IF(numeltg > 0) THEN
2099 eanit => eani(ishif+1:seani)
2100 ELSE
2101 eanit => eanit2
2102 ENDIF
2103 pm = 0
2104 skew = 0
2105 geo = 0
2106 ishif =numels+numelq+numelc
2108
2109 err_msg='KINEMATIC INITIALIZATION'
2110 CALL trace_in1(err_msg,len_trim(err_msg))
2113
2114
2115
2116 err_msg='MATERIALS'
2117 err_category='MATERIALS'
2118 CALL trace_in1(err_msg,len_trim(err_msg))
2121 WRITE(istdo,'(A)')titre(11)
2122 srwork =
max(nummat*10000,1000000)
2123 sbufmat = 0
2124 ALLOCATE(rwork(srwork) ,stat=stat)
2125 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'RWORK')
2126 IF(srwork > 0) rwork = zero
2127
2128 ALLOCATE(mtag_ini(nummat))
2129 ALLOCATE(mparam_ini(nummat))
2131 mat_elem%MAT_PARAM(1:nummat) => mparam_ini(1:nummat)
2132 mlaw_tag(1:nummat) => mtag_ini(1:nummat)
2134
2136 . mat_elem ,mlaw_tag ,fail_tag ,eos_tag ,
2139 . ltitr ,userl_avail,mat_number,
2140 .
npc ,tf ,snpc ,npts ,sbufmat )
2141
2142 ALLOCATE(bufmat(sbufmat) ,stat=stat)
2143 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2144 . msgtype=msgerror,
2145 . c1='BUFMAT')
2146 bufmat = rwork(1:sbufmat)
2147 IF(ALLOCATED(rwork)) DEALLOCATE(rwork)
2149
2150 err_msg='STORAGE'
2151 err_msg='INTERNAL'
2152 CALL trace_in1(err_msg,len_trim(err_msg))
2153
2155
2156
2157
2161
2162
2168
2169
2170
2171
2172 err_msg='NODES'
2173 err_category='NODES'
2174 CALL trace_in1(err_msg,len_trim(err_msg))
2175 ALLOCATE(cmerge(numcnod),stat=stat)
2176 IF(stat /= 0) THEN
2177 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
2178 . c1='CMERGE')
2179 ENDIF
2180 cmerge = zero
2181
2182 WRITE(istdo,'(A)')titre(12)
2184 . wige ,lsubmodel,is_dyna)
2185
2187
2188
2189
2190 err_msg='SUBMODELS'
2191 err_category='SUBMODELS'
2192 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2193 . msgtype=msgerror)
2194 CALL trace_in1(err_msg,len_trim(err_msg))
2195 srtrans = nrtrans * ntransf
2196 ALLOCATE(rtrans(srtrans) ,stat=stat)
2197 IF(srtrans > 0) rtrans = zero
2198
2200 WRITE(istdo,'(A)')' .. SUBMODELS'
2201 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2202 . msgtype=msgerror,
2203 . c1='RTRANS')
2205 . rtrans ,lsubmodel,is_dyna)
2207 ENDIF
2208
2210
2211
2212
2213
2214
2215 err_msg='SKEWS'
2216 err_category='SKEWS'
2217 CALL trace_in1(err_msg,len_trim(err_msg))
2218 IF(numskw/=0)WRITE(istdo,'(A)')titre(14)
2221 . lsubmodel,rtrans,
2223
2225 . lsubmodel,rtrans,
2228
2229
2230
2231 IF(ndrape > 0) THEN
2232 ALLOCATE(idrapeid(ndrape) ,stat=stat)
2233 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2234 . msgtype=msgerror,
2235 . c1='DRAPE')
2236 idrapeid = 0
2238 ELSE
2239 ALLOCATE(idrapeid(0))
2240 ENDIF
2241
2242
2243
2244 IF(nsphsol/=0)THEN
2246 END IF
2247
2248 nrbag=0
2249 sbufgeo = 0
2250
2251 err_msg='PROPERTIES'
2252 err_category='PROPERTIES'
2253 CALL trace_in1(err_msg,len_trim(err_msg))
2254
2255 IF(numgeo > 0)THEN
2256 WRITE(istdo,'(A)')titre(31)
2257 srwork = numgeo*(bgeosize+maxfunc+maxmat+maxpid+maxtab)
2258 sbufgeo = 0
2259 ALLOCATE(dbrwork(srwork) ,stat=stat)
2260 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2261 . msgtype=msgerror,
2262 . c1='DBRWORK')
2263 dbrwork = zero
2264 ALLOCATE(knot(sknot) ,stat=stat)
2265 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2266 . msgtype=msgerror,
2267 . c1='KNOT')
2269
2270 iadgeo=1
2273 .
npc , tf ,
unitab , rtrans ,lsubmodel ,
2276
2277 ALLOCATE(
bufgeo(sbufgeo) ,stat=stat)
2278 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2279 . msgtype=msgerror,
2280 . c1='BUFGEO')
2281 bufgeo(1:sbufgeo) = dbrwork(1:sbufgeo)
2282 DEALLOCATE(dbrwork)
2284 ELSE
2285 ALLOCATE(
bufgeo(sbufgeo) ,stat=stat)
2286 ENDIF
2287
2288 IF(numply /= 0) THEN
2289 ALLOCATE(
ply_info(3,numply),stat=stat)
2290 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2291 . msgtype=msgerror,
2292 . c1='PLY')
2294 ELSE
2296 ENDIF
2297
2298 IF(numstack > 0) THEN
2299
2300 len_g = npropgi*(numstack + numply)
2301 ALLOCATE(igeo_stack(len_g),stat=stat)
2302 igeo_stack = 0
2303 len_g = npropg*(numstack + numply )
2304 ALLOCATE(geo_stack(len_g),stat=stat)
2305 geo_stack = zero
2310 . defaults )
2311 ELSE
2312 ALLOCATE(igeo_stack(0),stat=stat)
2313 ALLOCATE(geo_stack(0),stat=stat)
2314 ENDIF
2315
2316 IF(sdr==0 .AND. idrot == 1) THEN
2317 sdr = 3*numnod*
max(iroddl,iroddl0)
2318 IF(ALLOCATED(dr)) DEALLOCATE(dr)
2319 ALLOCATE(dr(sdr) ,stat=stat)
2320 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2321 . msgtype=msgerror)
2322 dr = zero
2323 ENDIF
2324
2325
2326
2328
2329 ALLOCATE(pinch_data%XPINCH(3,spinch) ,stat=stat)
2330 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2331 . msgtype=msgerror,
2332 . c1='XPINCH')
2333 ALLOCATE(pinch_data%DPINCH(3,spinch) ,stat=stat)
2334 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2335 . msgtype=msgerror,
2336 . c1='DPINCH')
2337 ALLOCATE(pinch_data%VPINCH(3,spinch) ,stat=stat)
2338 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2339 . msgtype=msgerror,
2340 . c1='VPINCH')
2341 ALLOCATE(pinch_data%MSPINCH(spinch) ,stat=stat)
2342 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2343 . msgtype=msgerror,
2344 . c1='MSPINCH')
2345
2347 pinch_data%XPINCH(1:3,1:spinch) = zero
2348 pinch_data%DPINCH(1:3,1:spinch) = zero
2349 pinch_data%VPINCH(1:3,1:spinch) = zero
2350 pinch_data%MSPINCH(1:spinch) = zero
2351 ENDIF
2352
2354
2355
2356
2357
2358
2359
2360 err_msg='PARTS'
2361 err_category='PARTS'
2362 CALL trace_in1(err_msg,len_trim(err_msg))
2363 siwork =
max(2*numels,2*numelq,3*(npart+nthpart),3*numskw,numels,
2364 * numelc,numeltg,nummat+numgeo,numelt+numelp+numelr+
2365 * numelx+numelig3d)
2366 ALLOCATE(iwork(siwork) ,stat=stat)
2367 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2368 . msgtype=msgerror,
2369 . c1='IWORK')
2370 iwork = 0
2371 ALLOCATE(thk_part(npart) ,stat=stat)
2372
2374 .
unitab,lsubmodel,multi_fvm ,mlaw_tag,mat_elem%MAT_PARAM,glob_therm)
2375
2377
2378
2379
2380
2381 ale%GLOBAL%SNALE =
max(iale,ieuler,ialelag)*numnod
2382 ale%GLOBAL%SIELVS = 6*numels+
max(iale,glob_therm%ITHERM,ieuler,ialelag)* (4 * numelq + 3 * numeltg)
2383 sifill = nmult*numnod
2384 sims = nmult*numnod
2385
2386 ALLOCATE(
ifill(sifill),stat=stat)
2387 IF(stat /= 0)
CALL ancmsg(msgid = 268,
2388 . anmode = aninfo,
2389 . msgtype = msgerror,
2390 . c1 = 'IFILL')
2391
2392 ALLOCATE(
ims(sims),stat=stat)
2393 IF(stat /= 0)
CALL ancmsg(msgid = 268,
2394 . anmode = aninfo,
2395 . msgtype = msgerror,
2396 . c1 = 'IMS')
2397
2398
2399 IF(sifill > 0)
ifill = 0
2400 IF(sims > 0)
ims = 0
2401
2402 ALLOCATE(dflow(3*numnod*ialelag) ,stat=stat)
2403 ALLOCATE(vflow(3*numnod*ialelag) ,stat=stat)
2404 ALLOCATE(wflow(3*numnod*ialelag) ,stat=stat)
2405
2406 IF(ialelag > 0) THEN
2407 dflow = zero
2408 vflow = zero
2409 wflow = zero
2410 ENDIF
2411
2415 ENDIF
2416
2417
2418
2419
2420
2421 err_msg='MULTIDOMAINS'
2422 err_category='MULTIDOMAINS'
2423 CALL trace_in1(err_msg,len_trim(err_msg))
2424 nr2r = 5
2425 r2r_siu = 0
2426 siexlnk = nr2r*nr2rlnk
2427 IF((nr2rlnk+nsubdom)>0) THEN
2428 ALLOCATE(
iexlnk(siexlnk) ,stat=stat)
2429 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2430 . msgtype=msgerror,
2431 . c1='IEXLNK')
2433 WRITE(istdo,'(A)') ' .. EXTERNAL COUPLING'
2435 nl_ddr2r = nr2rlnk
2436 ELSE
2438 ENDIF
2439 IF(nsubdom > 0) THEN
2443 nl_ddr2r = 4
2444 r2r_siu = 1
2445
2446 IF(nummat > nummat0) THEN
2447 ALLOCATE(mtag_r2r(nummat))
2448 ALLOCATE(mparam_r2r(nummat))
2450 mtag_r2r(1:nummat0) = mtag_ini(1:nummat0)
2452 mlaw_tag(1:nummat) => mtag_r2r(1:nummat)
2453 mat_elem%MAT_PARAM(1:nummat) => mparam_r2r(1:nummat)
2454 mat_elem%NUMMAT = nummat
2455 DEALLOCATE(mtag_ini)
2456 IF(ALLOCATED(mparam_ini))THEN
2457 DO i=1,nummat0 ; CALL mparam_ini(i)%DESTRUCT() ; ENDDO
2458 DEALLOCATE(mparam_ini)
2459 ENDIF
2460 ENDIF
2461 ELSE
2463 ENDIF
2465
2466
2467
2468
2469
2470 tabmp_l = 10
2471
2472 CALL trace_in1(err_msg,len_trim(err_msg))
2473 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2474 . msgtype=msgerror,
2475 . c1='PARTS')
2476
2477 ALLOCATE( poin_part_shell(2,npart) )
2478 ALLOCATE( poin_part_tri(2,npart) )
2479 ALLOCATE( poin_part_sol(2,npart,7) )
2480 ALLOCATE( mid_pid_shell(nummat),mid_pid_tri(nummat) )
2481 ALLOCATE( mid_pid_sol(nummat,7) )
2482 poin_part_shell(1:2,1:npart) = 0
2483 poin_part_tri(1:2,1:npart) = 0
2484 poin_part_sol(1:2,1:npart,1:7) = 0
2485
2486 ALLOCATE(
poin_ump(nummat), stat=stat)
2488 ALLOCATE(tab_ump_loc(5,npart), stat=stat)
2489 tab_ump_loc(1:5,1:npart) = 0
2490
2493
2494
2495
2496 err_msg='ELEMENTS'
2497 err_category='ELEMENTS'
2498 CALL trace_in1(err_msg,len_trim(err_msg))
2499 IF(numels/=0)THEN
2500 WRITE(istdo,'(A)')titre(15)
2501
2503 .
ipart ,iparts ,eani ,ixs10 ,ixs20 ,ixs16 ,
2504 .
igeo ,lsubmodel,is_dyna,x )
2505
2506 ENDIF
2508
2509
2510
2511 IF(numelq/=0)THEN
2512 WRITE(istdo,'(A)')titre(16)
2515 ENDIF
2516
2517
2518
2519 ALLOCATE(itag(numnod),stat=stat)
2520 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2521 . msgtype=msgerror,
2522 . c1='ITAG')
2523 itag=0
2524
2525 IF(numelc/=0)THEN
2526 WRITE(istdo,'(A)')titre(17)
2529 ENDIF
2530
2531
2532
2533
2534
2535
2536
2537
2538 IF(numelt/=0)THEN
2539 WRITE(istdo,'(A)')titre(18)
2542 ENDIF
2543
2544
2545
2546 IF(numelp/=0)THEN
2547 WRITE(istdo,'(A)')titre(19)
2549 .
ipm ,
igeo ,lsubmodel,ibeam_vector,rbeam_vector)
2550 ENDIF
2551
2552
2553
2554 reint = zero
2555 IF(numelr/=0)THEN
2556 WRITE(istdo,'(A)')titre(20)
2559 ENDIF
2560
2561
2562
2563 IF(numeltg/=0)THEN
2564 IF(n2d==0 .AND. numeltria==0)THEN
2565 WRITE(istdo,'(A)')titre(21)
2567 . thkec ,pm ,geo ,eanit ,
igeo ,
2569 ELSEIF(numeltria==numeltg)THEN
2570 WRITE(istdo,'(A)')titre(23)
2574 ELSE
2575
2576 IF(numeltg>0 .AND. n2d>0 .AND. numeltria==0)THEN
2578 . msgtype=msgerror,
2579 . anmode=aninfo,
2580 . c1='SH3N',
2581 . c2='2D-ANALYSIS'
2582 . )
2583 ELSEIF(numeltg>0 .AND. n2d==0 .AND. numeltria==numeltg)THEN
2585 . msgtype=msgerror,
2586 . anmode=aninfo,
2587 . c1='TRIA',
2588 . c2='3D-ANALYSIS'
2589 . )
2590 ENDIF
2591 numeltg = 0
2592 ENDIF
2593 ENDIF
2594
2595
2596 IF(numeltg + numelc == 0) icrack3d = 0
2597
2598
2599
2600 nctrlmax = 0
2601 IF(numelig3d/=0)THEN
2602
2603 skxig3d = nixig3d*numelig3d
2604 WRITE(istdo,'(A)')titre(22)
2605
2607
2608 ALLOCATE(
kxig3d(skxig3d) ,stat=stat)
2609 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2610 . msgtype=msgerror,
2611 . c1='KXIG3D')
2612 ALLOCATE(
ixig3d(sixig3d+addsixig3d) ,stat=stat)
2613 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2614 . msgtype=msgerror,
2615 . c1='IXIG3D')
2616 ALLOCATE(tabconpatch(nbpart_ig3d),stat=stat)
2617 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2618 . msgtype=msgerror,
2619 . c1='TABCON_PATCH_IG3D')
2625
2626 sknotlocpc = deg_max*3*(numnod+l_tab_newfct)*numgeo
2627
2628 IF(sknotlocpc > intmax .OR. sknotlocpc < zero) THEN
2629 sknotlocpc = intmax
2630 ELSE
2631 sknotlocpc = int(sknotlocpc)
2632 ENDIF
2633 ALLOCATE(knotlocpc(sknotlocpc) ,stat=stat)
2634 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2635 . msgtype=msgerror,
2636 . c1='KNOTLOCPC')
2637 knotlocpc(:)=0
2638
2639 sknotlocel = 2*3*numelig3d
2640 IF(sknotlocel > intmax .OR. sknotlocel < zero) THEN
2641 sknotlocel = intmax
2642 ELSE
2643 sknotlocel = int(sknotlocel)
2644 ENDIF
2645 ALLOCATE(knotlocel(sknotlocel) ,stat=stat)
2646 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2647 . msgtype=msgerror,
2648 . c1='KNOTLOCEL')
2649 knotlocel(:)=0
2650
2653 . ipartig3d,
2654 . x,v,d,ms,wige,tabconpatch,1)
2655
2656 sixig3d=sixig3d+addsixig3d
2657 ALLOCATE(msig3d(numelig3d*nctrlmax) ,stat=stat)
2658 msig3d(1:numelig3d*nctrlmax) = zero
2659 ELSE
2660 ALLOCATE(
kxig3d(0) ,stat=stat)
2661 ALLOCATE(msig3d(0) ,stat=stat)
2662 ALLOCATE(
ixig3d(0) ,stat=stat)
2663 ALLOCATE(knotlocel(0) ,stat=stat)
2664 ALLOCATE(knotlocpc(0) ,stat=stat)
2665 ENDIF
2666
2667
2668
2669 IF(numelx > 0 .AND. ngrnod > 0 )THEN
2670 WRITE(istdo,'(A)')' .. NODENS GROUP '
2672 ENDIF
2673
2674
2675
2676 err_msg='MULTI-PURPOSE ELEMENTS'
2677 err_category='MULTI-PURPOSE ELEMENTS'
2678 CALL trace_in1(err_msg,len_trim(err_msg))
2679 IF(numelx > 0) THEN
2680 skxx = nixx*numelx
2682 ALLOCATE(
kxx(skxx) ,stat=stat)
2683 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2684 . msgtype=msgerror,
2685 . c1='KXX')
2686 ALLOCATE(
ixx(sixx+150) ,stat=stat)
2687 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2688 . msgtype=msgerror,
2689 . c1='IXX')
2692 ALLOCATE(lelx(numelx) ,stat=stat)
2693 lelx(1:numelx) = zero
2696 ELSE
2697 skxx = 0
2698 sixx = 0
2699 ALLOCATE(
kxx(skxx) ,stat=stat)
2700 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2701 . msgtype=msgerror,
2702 . c1='KXX')
2703 ALLOCATE(
ixx(sixx) ,stat=stat)
2704 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2705 . msgtype=msgerror,
2706 . c1='IXX')
2707 ALLOCATE(lelx(numelx) ,stat=stat)
2708 ENDIF
2710
2711
2712
2713 err_msg='ADAPTIVE MESHING'
2714 err_category='ADAPTIVE MESHING'
2715 CALL trace_in1(err_msg,len_trim(err_msg))
2716 levelmax=0
2717 lsh4trim=0
2718 lsh3trim=0
2719 IF(nadmesh/=0)THEN
2720
2721 ALLOCATE(
sh4tree(ksh4tree,numelc),stat=stat)
2722 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2723 . msgtype=msgerror,
2724 . c1='SH4TREE')
2726 ALLOCATE(
sh3tree(ksh3tree,numeltg),stat=stat)
2727 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2728 . msgtype=msgerror,
2729 . c1='SH3TREE')
2731 ALLOCATE(
ipadmesh(kipadmesh,npart),stat=stat)
2732 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2733 . msgtype=msgerror,
2734 . c1='IPADMESH')
2736
2737 ALLOCATE(padmesh(kpadmesh,npart),stat=stat)
2738 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2739 . msgtype=msgerror,
2740 . c1='PADMESH')
2741 padmesh=zero
2742
2744
2745 IF(iadmstat/=0)THEN
2746 lsh4trim=numelc
2747 ALLOCATE(
sh4trim(lsh4trim),stat=stat)
2748 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2749 . msgtype=msgerror,
2750 . c1='SH4TRIM')
2752 lsh3trim=numeltg
2753 ALLOCATE(
sh3trim(lsh3trim),stat=stat)
2754 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2755 . msgtype=msgerror,
2756 . c1='SH3TRIM')
2761 . lsubmodel)
2762 END IF
2767 ELSE
2771 ALLOCATE(padmesh(0,0))
2774 END IF
2775
2776 IF(istatcnd/=0)THEN
2777 ALLOCATE(mscnd(numnod),incnd(numnod),stat=stat)
2778 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2779 . msgtype=msgerror,
2780 . c1='MSCND')
2781 mscnd=zero
2782 incnd=zero
2783 ELSE
2784 ALLOCATE(mscnd(0),incnd(0))
2785 END IF
2787
2788
2789
2790
2791
2792 IF(taille2>0) THEN
2793 ALLOCATE(tab_ump_loc2(7+6,taille2,2),stat=stat)
2794 tab_ump_loc2 = 0
2798
2799 ALLOCATE(
tab_ump(7,taille), stat=stat)
2801 IF(taille>0) THEN
2803 . tab_ump_loc,tab_ump_loc2,
tab_ump,tab_sol,
2805 ENDIF
2806 DEALLOCATE(tab_ump_loc2)
2807 ENDIF
2808 DEALLOCATE(tab_ump_loc)
2809
2810
2811
2812
2813 IF(icrack3d > 0) THEN
2814 nxel = 3
2815 xfemon = 1
2816 IF(ipari0 /= 1) ipari0=1
2817 ELSE
2818 nxel = 0
2819 xfemon = 0
2820 ENDIF
2821
2822 err_msg='XFEM FOR SHELLS - ALLOCATIONS'
2823 err_category='INTERNAL'
2824 CALL trace_in1(err_msg,len_trim(err_msg))
2825
2826 len = xfemon*numnod
2827 ALLOCATE(addcne_crkxfem(0:len+1),stat=stat)
2828 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2829 . msgtype=msgerror,c1='ADDCNE_CRKXFEM')
2830 addcne_crkxfem(0:len+1) = 0
2831
2832 ALLOCATE(itagn(len),stat=stat)
2833 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2834 . msgtype=msgerror,c1='ITAGN')
2836 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2837 . msgtype=msgerror,c1='INOD_CRKXFEM')
2839 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
2840 . msgtype=msgerror,c1='IBORDNODE')
2841 len = xfemon*(numelc+numeltg)
2842 sitage=len
2843 ALLOCATE(itage(len),stat=stat)
2844 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2845 . msgtype=msgerror,c1='ITAGE')
2847 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2848 . msgtype=msgerror,c1='IEL_CRKXFEM')
2849
2850 itagn = 0
2851 itage = 0
2855
2857
2858
2859
2860 err_msg='SPH'
2861 err_category='SPH'
2862 CALL trace_in1(err_msg,len_trim(err_msg))
2863 IF(nsphsol/=0)THEN
2864 ALLOCATE(
sph2sol(numsph) ,stat=stat)
2865 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2866 . msgtype=msgerror,
2867 . c1='SPH2SOL')
2869 ALLOCATE(
sol2sph(2*numels8) ,stat=stat)
2870 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2871 . msgtype=msgerror,
2872 . c1='SOL2SPH')
2874 ALLOCATE(
irst(3*nsphsol) ,stat=stat)
2875 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2876 . msgtype=msgerror,
2877 . c1='IRST')
2880 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2881 . msgtype=msgerror,
2882 . c1='SOL2SPH_TYP')
2884 ELSE
2885 ALLOCATE(
sph2sol(0) ,stat=stat)
2886 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2887 . msgtype=msgerror,
2888 . c1='SPH2SOL')
2889 ALLOCATE(
sol2sph(0) ,stat=stat)
2890 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2891 . msgtype=msgerror,
2892 . c1='SOL2SPH')
2893 ALLOCATE(
irst(0) ,stat=stat)
2894 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2895 . msgtype=msgerror,
2896 . c1='IRST')
2898 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2899 . msgtype=msgerror,
2900 . c1='SOL2SPH_TYP')
2901 END IF
2902 IF(numsph > 0) THEN
2903 sspbuf = nspbuf*numsph
2904 skxsp = nisp*numsph
2905 sixsp = kvoisph*numsph
2906
2907 kvoisph8 = kvoisph
2908 numsph8 = numsph
2909
2910
2911 sixsp8 = (numsph8/(nspmd))*kvoisph8
2912 limit8 = (huge(integer_limit32)-1)*0.95
2913 IF(sixsp8>limit8)THEN
2915 . msgtype=msgerror,
2916 . anmode=anstop)
2917 ENDIF
2918
2919 snod2sp = numnod
2920 ALLOCATE(
kxsp(skxsp) ,stat=stat)
2921 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2922 . msgtype=msgerror,
2923 . c1='KXSP')
2924 ALLOCATE(
ixsp(kvoisph,numsph) ,stat=stat)
2925 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2926 . msgtype=msgerror,
2927 . c1='IXSP')
2928 ALLOCATE(
nod2sp(snod2sp) ,stat=stat)
2929 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2930 . msgtype=msgerror,
2931 . c1='NOD2SP')
2932 ALLOCATE(spbuf(sspbuf) ,stat=stat)
2933 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2934 . msgtype=msgerror,
2935 . c1='SPBUF')
2936
2937 IF(nsphio>0.AND.nbpartinlet>0)THEN
2938 ALLOCATE(reservep(nbpartinlet) ,stat=stat)
2939 IF(stat /= 0)
CALL ancmsg(msgid=268,
2940 . anmode=anstop,
2941 . msgtype=msgerror,
2942 . c1='RESERVEP')
2943 reservep(1:nbpartinlet) = 0
2944 ELSE
2945 ALLOCATE(reservep(1))
2946 reservep(1) = 0
2947 ENDIF
2951 spbuf = zero
2952 WRITE(istdo,'(A)')' .. SPH PARTICLES DEFINITION'
2957 5 lsubmodel,spbuf ,
unitab ,ipri )
2958
2959 ELSE
2960 sspbuf = 0
2961 skxsp = 0
2962 sixsp = 0
2963 snod2sp = 0
2964 ALLOCATE(
kxsp(skxsp) ,stat=stat)
2965 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2966 . msgtype=msgerror,
2967 . c1='KXSP')
2968 ALLOCATE(
ixsp(0,0) ,stat=stat)
2969 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2970 . msgtype=msgerror,
2971 . c1='IXSP')
2972 ALLOCATE(
nod2sp(snod2sp) ,stat=stat)
2973 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2974 . msgtype=msgerror,
2975 . c1='NOD2SP')
2976 ALLOCATE(spbuf(sspbuf) ,stat=stat)
2977 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2978 . msgtype=msgerror,
2979 . c1='SPBUF')
2980 ENDIF
2982
2983
2984
2985
2986 err_msg='CONNECTIVITY'
2987 err_category='CONNECTIVITY'
2988 CALL trace_in1(err_msg,len_trim(err_msg))
2989
2990
2991
2993
2995 . ipartg ,ipartr ,ipartsp ,inv_group,numsph,
2997
2998 IF(numeltg6 ==0 )THEN
2999 sixtg1 = 0
3000 ELSE
3001 sixtg1 = 4*numeltg
3002 ENDIF
3003 ALLOCATE(
ixtg1(sixtg1), stat=stat)
3004 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3005 . msgtype=msgerror,
3006 . c1='IXTG1')
3008
3009214
ALLOCATE(
knod2els(numnod+1),stat=stat)
3010 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3011 . msgtype=msgerror,
3012 . c1='KNOD2ELS')
3014 ALLOCATE(
knod2elc(numnod+1),stat=stat)
3015 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3016 . msgtype=msgerror)
3019 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3020 . msgtype=msgerror,
3021 . c1='KNOD2ELTG')
3024 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3025 . msgtype=msgerror,
3026 . c1='KNOD2EL1D')
3028
3029 ALLOCATE(
knod2elq(numnod+1),stat=stat)
3030 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3031 . msgtype=msgerror)
3033
3034
3035 s_nod2els = 8*numels+6*numels10+12*numels20+8*numels16
3036 ALLOCATE(
nod2els(s_nod2els),stat=stat)
3037 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3038 . msgtype=msgerror,
3039 . c1='NOD2ELS')
3041 ALLOCATE(
nod2elc(4*numelc),stat=stat)
3042 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3043 . msgtype=msgerror,
3044 . c1='NOD2ELC')
3046 s_nod2eltg = 3*numeltg+3*numeltg6
3047 ALLOCATE(
nod2eltg(s_nod2eltg),stat=stat)
3048 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3049 . msgtype=msgerror,
3050 . c1='NOD2ELTG')
3052 s_nod2el1d=2*numelt+2*numelp+3*numelr+2*sixx
3053 ALLOCATE(
nod2el1d(s_nod2el1d),stat=stat)
3054 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3055 . msgtype=msgerror,
3056 . c1='NOD2EL1D')
3059 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3060 . msgtype=msgerror,
3061 . c1='KNOD2ELIG3D')
3064 . stat=stat)
3065 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3066 . msgtype=msgerror,
3067 . c1='NOD2ELIG3D')
3069 ALLOCATE(
nod2elq(4*numelq),stat=stat)
3070 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3071 . msgtype=msgerror,
3072 . c1='NOD2ELQ')
3074
3075 IF(flag_goto==1) GOTO 215
3076
3077
3086 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
3088
3089
3090
3091 tagsurfige = 0
3092 sibufssg = 0
3093
3094 err_msg='SUBSETS'
3095 err_category='SUBSETS'
3096 CALL trace_in1(err_msg,len_trim(err_msg))
3097 IF(nsubs > 0) THEN
3098 WRITE(istdo,'(A)')' .. SUBSETS'
3099
3102
3103 ENDIF
3105
3106
3107
3109
3110 err_msg='BOXES'
3111 err_category='BOXES'
3112 CALL trace_in1(err_msg,len_trim(err_msg))
3113
3114 ALLOCATE(
ibox(nbbox))
3115 IF(nbbox > 0) THEN
3116 WRITE(istdo,'(A)')' .. BOX '
3117
3119 . x ,rtrans ,lsubmodel)
3120
3121 ENDIF
3122
3124
3125
3126
3127 err_msg='GROUPS'
3128 CALL trace_in1(err_msg,len_trim(err_msg))
3129
3130 idxigecnt= 1
3131
3132 WRITE(istdo,'(A)')' .. ELEMENT GROUPS'
3133 err_category='ELEMENT GROUPS'
3134 flagg = 0
3135 iadboxmax = 1
3136
3137 ALLOCATE(ixs_s(numels),ixs_s_ind(numels),ixq_s(numelq),
3138 2 ixq_s_ind(numelq),ixc_s(numelc),ixc_s_ind(numelc),
3139 3 ixt_s(numelt),ixt_s_ind(numelt),ixp_s(numelp),
3140 4 ixp_s_ind(numelp),ixr_s(numelr),ixr_s_ind(numelr),
3141 5 ixtg_s(numeltg),ixtg_s_ind(numeltg))
3142
3147 4 iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
3150 7 ixs10 ,ixs16 ,ixs20 ,rtrans,lsubmodel,
3151 8 ixs_s ,ixs_s_ind,ixq_s,ixq_s_ind,ixc_s,ixc_s_ind,
3152 9 ixt_s ,ixt_s_ind,ixp_s,ixp_s_ind,ixr_s,ixr_s_ind,
3155
3156 leni=
max(numels,numelq,numelc,numelt,numelp,numelr,numeltg)
3157
3159 1 ixs_s ,ixs_s_ind,ixq_s,ixq_s_ind,ixc_s,ixc_s_ind,
3160 2 ixt_s ,ixt_s_ind,ixp_s,ixp_s_ind,ixr_s,ixr_s_ind,
3162
3163 flagg = 1
3168 4 iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
3171 7 ixs10 ,ixs16,ixs20,rtrans,lsubmodel,
3172 8 ixs_s ,ixs_s_ind,ixq_s,ixq_s_ind,ixc_s,ixc_s_ind,
3173 9 ixt_s ,ixt_s_ind,ixp_s,ixp_s_ind,ixr_s,ixr_s_ind,
3176
3177 DEALLOCATE(ixs_s ,ixs_s_ind,ixq_s,ixq_s_ind,ixc_s,ixc_s_ind,
3178 2 ixt_s ,ixt_s_ind,ixp_s,ixp_s_ind,ixr_s,ixr_s_ind,
3179 3 ixtg_s,ixtg_s_ind)
3180
3181
3182
3183 WRITE(istdo,'(A)')' .. PART GROUPS'
3184 err_category='PART GROUPS'
3185
3186 flagg = 0
3188
3189 flagg = 1
3191
3192
3193
3194 err_category='GROUP OF GROUPS'
3195 icount = 1
3196 iter = 0
3197 DO WHILE (icount > 0)
3198 iter = iter + 1
3199 flagg = 0
3200
3202 . flagg ,
3205 . lsubmodel)
3206
3207 flagg = 1
3208
3210 . flagg ,
3213 . lsubmodel)
3214 ENDDO
3215
3216
3217
3218
3219
3220 IF(nrbody > 0) THEN
3221 ALLOCATE(rby_msn(2,nrbody))
3223 ELSE
3224 ALLOCATE(rby_msn(0,0))
3225 ENDIF
3226
3227
3228
3234 * rby_msn)
3235
3236
3237 sbufsf = 0
3238 IF(nsurf+
nsets > 0)
THEN
3239 ALLOCATE(rwork(lisurf1*(nsurf+
nsets)) ,stat=stat)
3240 rwork = zero
3241 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3242 . msgtype=msgerror,
3243 . c1='RWORK')
3244 ENDIF
3245
3246 IF(nsurf > 0)THEN
3247 WRITE(istdo,'(A)')' .. SURFACES '
3248 err_category='SURFACES DEFINITION'
3249
3250
3251 iadtabige = 0
3252 decaligeo = 0
3253 idxige1 = 0
3254 idxige2 = 1
3255 rnige=(1+nsurf*numelig3d*16*6)
3256 IF(rnige > intmax .OR. rnige < zero) THEN
3257 snige = intmax
3258 ELSE
3259 snige = int(rnige)
3260 ENDIF
3261 ALLOCATE(nige_tmp(idxige1)%ptr(snige) ,stat=stat)
3262 IF(stat /= 0) THEN
3264 . msgtype=msgerror,
3265 . anmode=anstop,
3266 . c1='NIGE')
3267 ENDIF
3268 rrige=(1+nsurf*numelig3d*3*16*6)
3269 IF(rrige > intmax .OR. rrige < zero) THEN
3270 srige = intmax
3271 ELSE
3272 srige = int(rrige)
3273 ENDIF
3274 ALLOCATE(rige_tmp(idxige1)%ptr2(srige) ,stat=stat)
3275 IF(stat /= 0) THEN
3277 . msgtype=msgerror,
3278 . anmode=anstop,
3279 . c1='RIGE')
3280 ENDIF
3281 rxige=(1+nsurf*numelig3d*3*16*6)
3282 IF(rxige > intmax .OR. rxige < zero) THEN
3283 sxige = intmax
3284 ELSE
3285 sxige = int(rxige)
3286 ENDIF
3287 ALLOCATE(xige_tmp(idxige1)%ptr2(sxige) ,stat=stat)
3288 IF(stat /= 0) THEN
3290 . msgtype=msgerror,
3291 . anmode=anstop,
3292 . c1='XIGEO')
3293 ENDIF
3294 rvige=(1+nsurf*numelig3d*3*16*6)
3295 IF(rvige > intmax .OR. rvige < zero) THEN
3296 svige = intmax
3297 ELSE
3298 svige = int(rvige)
3299 ENDIF
3300 ALLOCATE(vige_tmp(idxige1)%ptr2(svige) ,stat=stat)
3301 IF(stat /= 0) THEN
3303 . msgtype=msgerror,
3304 . anmode=anstop,
3305 . c1='VIGEO')
3306 ENDIF
3307
3308 snige = 0
3309 srige = 0
3310 sxige = 0
3311 svige = 0
3312 idxigecnt = idxigecnt + 1
3313 idxige1 = mod(idxigecnt,2)
3314 idxige2 = mod(idxigecnt+1,2)
3315 flagg = 0
3316 inseg = 0
3317 numfakenodigeo = 0
3318 iadboxmax = 1
3319
3324 4 ,
ipart ,iparts ,ipartq ,ipartc ,
3325 5 ipartt ,ipartp ,ipartr ,ipartg ,x ,
3326 6 sbufsf ,
iskwn ,skew ,
3329 9 ixs10 ,ixs16 ,ixs20 ,rtrans,
3333 d v ,nige_tmp(idxige1)%ptr,
3334 e rige_tmp(idxige1)%ptr2,xige_tmp(idxige1)%ptr2,
3335 f vige_tmp(idxige1)%ptr2,iadtabige,decaligeo,iadboxmax,
knod2elq,
3337 f knotlocpc ,knotlocel ,
nsets ,map_tables)
3338
3339
3340 ALLOCATE(nige_tmp(idxige2)%ptr(snige+numfakenodigeo) ,stat=stat)
3341 IF(stat /= 0) THEN
3343 . msgtype=msgerror,
3344 . anmode=anstop,
3345 . c1='NIGE')
3346 ENDIF
3347 snige = snige + numfakenodigeo
3348 DEALLOCATE(nige_tmp(idxige1)%ptr)
3349
3350 ALLOCATE(rige_tmp(idxige2)%ptr2(srige+3*numfakenodigeo) ,stat=stat)
3351 IF(stat /= 0) THEN
3353 . msgtype=msgerror,
3354 . anmode=anstop,
3355 . c1='RIGE')
3356 ENDIF
3357 srige = srige + 3*numfakenodigeo
3358 DEALLOCATE(rige_tmp(idxige1)%ptr2)
3359
3360 ALLOCATE(xige_tmp(idxige2)%ptr2(sxige+3*numfakenodigeo) ,stat=stat)
3361 IF(stat /= 0) THEN
3363 . msgtype=msgerror,
3364 . anmode=anstop,
3365 . c1='XIGE')
3366 ENDIF
3367 sxige = sxige + 3*numfakenodigeo
3368 DEALLOCATE(xige_tmp(idxige1)%ptr2)
3369
3370 ALLOCATE(vige_tmp(idxige2)%ptr2(svige+3*numfakenodigeo) ,stat=stat)
3371 IF(stat /= 0) THEN
3373 . msgtype=msgerror,
3374 . anmode=anstop,
3375 . c1='VIGE')
3376 ENDIF
3377 svige = svige + 3*numfakenodigeo
3378 DEALLOCATE(vige_tmp(idxige1)%ptr2)
3379
3380
3381 flagg = 1
3382 inseg = 0
3387 4 ,
ipart ,iparts ,ipartq ,ipartc ,
3388 5 ipartt ,ipartp ,ipartr ,ipartg ,x ,
3389 6 sbufsf ,
iskwn ,skew ,
3392 9 ixs10 ,ixs16 ,ixs20 ,rtrans,
3396 d v ,nige_tmp(idxige2)%ptr,
3397 e rige_tmp(idxige2)%ptr2,xige_tmp(idxige2)%ptr2,
3398 f vige_tmp(idxige2)%ptr2,iadtabige,decaligeo,iadboxmax,
knod2elq,
3400 h knotlocpc ,knotlocel ,
nsets ,map_tables)
3401
3402
3403 IF(numfakenodigeo>0) THEN
3404 ALLOCATE(permige(numfakenodigeo) ,stat=stat)
3405
3406
3408
3409
3410 ALLOCATE(nige_tmp(idxige1)%ptr(snige) ,stat=stat)
3411 IF(stat /= 0) THEN
3413 . msgtype=msgerror,
3414 . anmode=anstop,
3415 . c1='NIGE')
3416 ENDIF
3417
3418 ALLOCATE(rige_tmp(idxige1)%ptr2(srige) ,stat=stat)
3419 IF(stat /= 0) THEN
3421 . msgtype=msgerror,
3422 . anmode=anstop,
3423 . c1='RIGE')
3424 ENDIF
3425
3426 ALLOCATE(xige_tmp(idxige1)%ptr2(sxige) ,stat=stat)
3427 IF(stat /= 0) THEN
3429 . msgtype=msgerror,
3430 . anmode=anstop,
3431 . c1='XIGE')
3432 ENDIF
3433
3434 ALLOCATE(vige_tmp(idxige1)%ptr2(svige) ,stat=stat)
3435 IF(stat /= 0) THEN
3437 . msgtype=msgerror,
3438 . anmode=anstop,
3439 . c1='VIGE')
3440 ENDIF
3441
3442
3443
3444
3445
3446
3447
3448
3450 . nige_tmp(idxige2)%ptr ,nige_tmp(idxige1)%ptr,
3451 . rige_tmp(idxige2)%ptr2 ,rige_tmp(idxige1)%ptr2,
3452 . xige_tmp(idxige2)%ptr2 ,xige_tmp(idxige1)%ptr2,
3453 . vige_tmp(idxige2)%ptr2 ,vige_tmp(idxige1)%ptr2,
3454 . ndoublonige)
3455
3456
3457 DEALLOCATE(rige_tmp(idxige2)%ptr2,xige_tmp(idxige2)%ptr2,vige_tmp(idxige2)%ptr2)
3458
3459 snige = numfakenodigeo
3460 srige = 3*numfakenodigeo
3461 sxige = 3*numfakenodigeo
3462 svige = 3*numfakenodigeo
3463
3464
3465
3466
3467
3468
3469 ALLOCATE(nige_tmp(idxige2)%ptr(snige) ,stat=stat)
3470 IF(stat /= 0) THEN
3472 . msgtype=msgerror,
3473 . anmode=anstop,
3474 . c1='NIGE')
3475 ENDIF
3476 DO i=1,snige
3477 nige_tmp(idxige2)%ptr(i) = nige_tmp(idxige1)%ptr(i)
3478 ENDDO
3479
3480 ALLOCATE(rige_tmp(idxige2)%ptr2(srige) ,stat=stat)
3481 IF(stat /= 0) THEN
3483 . msgtype=msgerror,
3484 . anmode=anstop,
3485 . c1='RIGE')
3486 ENDIF
3487 DO i=1,srige
3488 rige_tmp(idxige2)%ptr2(i) = rige_tmp(idxige1)%ptr2(i)
3489 ENDDO
3490
3491 ALLOCATE(xige_tmp(idxige2)%ptr2(sxige) ,stat=stat)
3492 IF(stat /= 0) THEN
3494 . msgtype=msgerror,
3495 . anmode=anstop,
3496 . c1='XIGE')
3497 ENDIF
3498 DO i=1,sxige
3499 xige_tmp(idxige2)%ptr2(i) = xige_tmp(idxige1)%ptr2(i)
3500 ENDDO
3501
3502 ALLOCATE(vige_tmp(1)%ptr2(svige) ,stat=stat)
3503 IF(stat /= 0) THEN
3505 . msgtype=msgerror,
3506 . anmode=anstop,
3507 . c1='VIGE')
3508 ENDIF
3509 DO i=1,svige
3510 vige_tmp(idxige2)%ptr2(i) = vige_tmp(idxige1)%ptr2(i)
3511 ENDDO
3512
3513 tagsurfige=1
3514 DEALLOCATE(rige_tmp(idxige1)%ptr2,xige_tmp(idxige1)%ptr2,
3515 . vige_tmp(idxige1)%ptr2)
3516 DEALLOCATE(permige)
3517
3518 ENDIF
3519
3520
3521
3522
3523 icount = 1
3524 iter = 0
3525 DO WHILE (icount == 1)
3526 flagg = 0
3527 iter = iter + 1
3528 inseg = 0
3529
3531
3532
3533 flagg = 1
3534
3536
3537 ENDDO
3538 ENDIF
3539
3540 nsegs=npart
3541
3542 nsegsmax=0
3543 DO i = 1,nsurf
3545 ENDDO
3546 DO i = 1,ngrnod
3547 nsegsmax=
max(nsegsmax,
igrnod(i)%NENTITY)
3548 ENDDO
3549 DO i = 1,ngrbric
3551 ENDDO
3552 DO i = 1,ngrquad
3554 ENDDO
3555 DO i = 1,ngrshel
3557 ENDDO
3558 DO i = 1,ngrsh3n
3560 ENDDO
3561 DO i = 1,ngrtrus
3563 ENDDO
3564 DO i = 1,ngrbeam
3566 ENDDO
3567 DO i = 1,ngrspri
3569 ENDDO
3570 DO i = 1,ngrpart
3572 ENDDO
3573 nsegs=nsegs+nsegsmax
3574
3575
3576
3577 IF(nslin > 0) THEN
3578 WRITE(istdo,'(A)')' .. LINES '
3579 err_category='LINES'
3580 flagg = 0
3581 iadboxmax = 1
3582
3588 5 ipartt ,ipartp ,ipartr ,ipartg ,
3589 6 nsegs , flagg ,skew ,
iskwn ,
3593
3594 flagg = 1
3595
3601 5 ipartt ,ipartp ,ipartr ,ipartg ,
3602 6 nsegs , flagg ,skew ,
iskwn ,
3606
3607
3608
3609 icount = 1
3610 iter = 0
3611 DO WHILE (icount == 1)
3612 iter = iter + 1
3613 inseg = 0
3614 flagg = 0
3615
3617
3618 flagg = 1
3620
3621 ENDDO
3622 ENDIF
3623
3624
3625
3626 IF(ninicrack > 0) THEN
3627 WRITE(istdo,'(A)')' .. INITIAL CRACK '
3628 err_category='INITIAL CRACKS'
3629 silevset = ninicrack
3630 ALLOCATE(
inicrack(silevset) ,stat=stat)
3631 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3632 . msgtype=msgerror,
3633 . c1='INICRACK')
3634
3636
3637 ELSE
3638 silevset = 0
3640 ENDIF
3641
3642
3643
3644
3645 IF(ngrnod > 0)THEN
3646 WRITE(istdo,'(A)')' .. NODE GROUP'
3647 err_category='NODE GROUPS'
3648 innod = 0
3649 maxnnod = 1
3650 iadboxmax = 1
3651
3652 flagg = 0
3655 2 isubmod ,x ,geo ,
ixs ,
3658 5 iparts ,ipartq ,ipartc ,ipartt ,ipartp ,
3659 6 ipartr ,ipartg ,ipartsp ,
kxsp ,
3660 7 flagg ,maxnnod ,skew ,
iskwn ,
3662 9 ixs16 ,rtrans ,lsubmodel,
ixx,
3666
3667 flagg = 1
3670 2 isubmod ,x ,geo ,
ixs ,
3673 5 iparts ,ipartq ,ipartc ,ipartt ,ipartp ,
3674 6 ipartr ,ipartg ,ipartsp ,
kxsp ,
3675 7 flagg ,maxnnod ,skew ,
iskwn ,
3677 9 ixs16 ,rtrans ,lsubmodel,
ixx,
3681
3682
3683
3684 icount = 1
3685 iter = 0
3686 DO WHILE (icount == 1)
3687 iter = iter + 1
3688 flagg = 0
3690
3691 flagg =1
3693
3694 ENDDO
3695 ENDIF
3696
3697
3699
3700
3701
3703
3706 WRITE(istdo,'(A)')' .. SET'
3707 err_category='SET'
3708
3718 *
ibox ,skew ,ipartq ,ipartt ,ipartp ,
3720 *
unitab ,rwork ,sbufsf ,siskwn ,sskew ,
3722
3723
3724
3725 ENDIF
3726
3727 IF (nsurf+
nsets > 0)
THEN
3728 IF(sbufsf > 0) THEN
3729 ALLOCATE(bufsf(sbufsf) ,stat=stat)
3730 bufsf = rwork(1:sbufsf)
3731 IF(stat /= 0) THEN
3733 . msgtype=msgerror,
3734 . anmode=anstop,
3735 . c1='BUFSF')
3736 ENDIF
3737 ENDIF
3738 ELSE
3739 ALLOCATE(bufsf(0))
3740 ENDIF
3741 IF(ALLOCATED(rwork)) DEALLOCATE(rwork)
3742
3744
3745
3746
3747 err_msg='DRAPE'
3748 err_category='DRAPE'
3749 CALL trace_in1(err_msg,len_trim(err_msg))
3752 IF(ndrape > 0) THEN
3753 WRITE(istdo,'(A)')' .. DRAPE'
3754 ALLOCATE(drape_wrk(numelc + numeltg),drapeg%INDX(numelc + numeltg))
3755 drapeg%INDX = 0
3756 ALLOCATE(indxsh(numelc + numeltg))
3757 indxsh = 0
3758
3759
3760
3765 IF(ipart_stack > 0 .OR. ipart_pcompp > 0) THEN
3766 ALLOCATE(iwork_t(numelc+numeltg))
3769 .
igeo ,geo ,igeo_stack ,iworksh ,
3770 . iwork_t )
3771 ENDIF
3772
3783 idshel = indxsh(i)
3784 npt_drape = drape_wrk(idshel)%NPLY_DRAPE
3785 drape(i)%NPLY_DRAPE = npt_drape
3786 npt = iworksh(1,idshel)
3787 drape(i)%NPLY = npt
3788 drapeg%INDX(idshel) = i
3789 ALLOCATE(drape(i)%DRAPE_PLY(npt_drape))
3790 ALLOCATE(drape(i)%INDX_PLY(npt))
3791 drape(i)%INDX_PLY = 0
3792 DO jj =1,npt_drape
3793 ip = drape_wrk(idshel)%INDX_PLY(jj)
3794 drape(i)%INDX_PLY(ip) = jj
3795 nslice = drape_wrk(idshel)%DRAPE_PLY(ip)%NSLICE
3796 drape(i)%DRAPE_PLY(jj)%NSLICE = nslice
3797 drape(i)%DRAPE_PLY(jj)%IPID = drape_wrk(idshel)%DRAPE_PLY(ip)%IPID
3798 ALLOCATE(drape(i)%DRAPE_PLY(jj)%RDRAPE(nslice,2))
3799 ALLOCATE(drape(i)%DRAPE_PLY(jj)%IDRAPE(nslice,2))
3800 DO isl = 1,nslice
3801 drape(i)%DRAPE_PLY(jj)%RDRAPE(isl,1) = drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,1)
3802 drape(i)%DRAPE_PLY(jj)%RDRAPE(isl,2) = drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,2)
3803 drape(i)%DRAPE_PLY(jj)%IDRAPE(isl,1) = drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,1)
3804 drape(i)%DRAPE_PLY(jj)%IDRAPE(isl,2) = drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,2)
3805 ENDDO
3806 ENDDO
3807 ENDDO
3808
3810 idshel = indxsh(i)
3811 npt = iworksh(1,idshel)
3812 IF(ALLOCATED(drape_wrk(idshel)%DRAPE_PLY)) THEN
3813 npt_drape = drape_wrk(idshel)%NPLY_DRAPE
3814 DO jj=1,npt_drape
3815 ip = drape_wrk(idshel)%INDX_PLY(jj)
3816 DEALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE,drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE)
3817 ENDDO
3818 DEALLOCATE(drape_wrk(idshel)%DRAPE_PLY)
3819 ENDIF
3820 ENDDO
3821 DEALLOCATE(drape_wrk)
3822 DEALLOCATE(indxsh )
3823 ENDIF
3824 IF(ALLOCATED(idrapeid)) DEALLOCATE(idrapeid)
3825
3826 IF(ipart_stack > 0 .OR. ipart_pcompp > 0) THEN
3829 .
igeo ,geo ,thke , stack ,
3832 ELSE
3833 ALLOCATE(stack%GEO(0,0))
3834 ALLOCATE(stack%IGEO(0,0))
3835 ALLOCATE(stack%PM(0,0))
3836 ENDIF
3837 ELSE
3838 ALLOCATE(drape(0))
3839 ALLOCATE(drapeg%INDX(0))
3840 IF(ipart_stack > 0 .OR. ipart_pcompp > 0) THEN
3843 .
igeo ,geo ,iworksh ,thke ,
3844 . stack ,
ipm ,igeo_stack ,geo_stack ,
3846 ELSE
3847 ALLOCATE(stack%GEO(0,0))
3848 ALLOCATE(stack%IGEO(0,0))
3849 ALLOCATE(stack%PM(0,0))
3850 ENDIF
3851 ENDIF
3852
3853 IF(nsubdom==0) GOTO 218
3854
3855
3856
3857 WRITE(istdo,'(A)')' .. MULTIDOMAINS INTERFACES DETECTION '
3858 idxcnt= 1
3859 iadbuf= 1
3860 idxcnt= idxcnt + 1
3861 idx1 = mod(idxcnt,2)
3862 idx2 = mod(idxcnt+1,2)
3863 flagg = 0
3864 innod = 0
3865 flg_r2r_err = 0
3866 ale_euler = 0
3867 nspcond0 = nspcond
3868
3869 rsibufssg=numnod+nsubdom
3870 IF(rsibufssg > intmax .OR. rsibufssg < zero) THEN
3871 sibufssg = intmax
3872 ELSE
3873 sibufssg = int(rsibufssg)
3874 ENDIF
3875 ALLOCATE(ibuftmp(idx1)%ptr(sibufssg),stat=stat)
3876 IF(stat /= 0) THEN
3878 . msgtype=msgerror,
3879 . anmode=anstop,
3880 . c1='BUFFSG')
3881 ENDIF
3882
3883
3884 ALLOCATE(
tagno(2*numnod+npart),stat=stat)
3885 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3886 . msgtype=msgerror,
3887 . c1='TAGNO')
3889 ALLOCATE(nale_r2r(
ale%GLOBAL%SNALE),stat=stat)
3890 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3891 . msgtype=msgerror,
3892 . c1='NALE_R2R')
3893 nale_r2r(:) = 1
3894 ALLOCATE(dt_r2r(4*nsubdom),stat=stat)
3895 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3896 . msgtype=msgerror,
3897 . c1='DT_R2R')
3898 dt_r2r(:) = 0
3899
3901 1 innod,flagg,iparts,ipartq,ipartc,ipartt,ipartp,
3902 2 ipartr,ipartg,ipartsp,ixs10,ixs20,ixs16,1,
3903 3 ibuftmp(idx1)%ptr,ixr_kj,inom_opt,
ipart,
3904 4 iadbuf,nale_r2r,flg_r2r_err ,
3908 8
nloc_dmg ,detonators,sensors%NSENSOR,seatbelt_shell_to_spring,
3909 9 nb_seatbelt_shells,mat_elem%MAT_PARAM)
3910
3911 ALLOCATE(ibuftmp(idx2)%ptr(sibufssg+innod) ,stat=stat)
3912 IF(stat /= 0) THEN
3914 . msgtype=msgerror,
3915 . anmode=anstop,
3916 . c1='BUFFSG')
3917 ENDIF
3918 ibuftmp(idx2)%ptr = 0
3919 DO i=1,sibufssg
3920 ibuftmp(idx2)%ptr(i) = ibuftmp(idx1)%ptr(i)
3921 ENDDO
3922 sibufssg = sibufssg+innod
3923 DEALLOCATE(ibuftmp(idx1)%ptr)
3924
3925 flagg = 1
3926
3927
3929 1 innod,flagg,iparts,ipartq,ipartc,ipartt,ipartp,
3930 2 ipartr,ipartg,ipartsp,ixs10,ixs20,ixs16,2,
3931 3 ibuftmp(idx2)%ptr,ixr_kj,inom_opt,
ipart,
3932 4 iadbuf,nale_r2r,flg_r2r_err ,
3936 8
nloc_dmg ,detonators,sensors%NSENSOR,seatbelt_shell_to_spring,
3937 9 nb_seatbelt_shells,mat_elem%MAT_PARAM)
3938
3939
3940
3941 WRITE(istdo,'(A)')' .. MULTIDOMAINS DATA SPLIT '
3942
3944 1 nslin,
3945 2 nsurf,0,eani,ibuftmp(idx2)%ptr,ixr_kj,
3946 3 inom_opt,reservep,nale_r2r,nspcond0,
3950 7 seatbelt_shell_to_spring,nb_seatbelt_shells)
3951
3953 1 nslin,
3954 2 nsurf,1,eani,ibuftmp(idx2)%ptr,ixr_kj,
3955 3 inom_opt,reservep,nale_r2r,nspcond0,
3959 7 seatbelt_shell_to_spring,nb_seatbelt_shells)
3960 DEALLOCATE(ibuftmp(idx2)%ptr)
3961
3962
3963
3964
3965 WRITE(istdo,'(A)')' .. MULTIDOMAINS DATA UPDATE '
3968 DEALLOCATE(xyzref)
3969 ALLOCATE(xyzref(3*numnod) ,stat=stat)
3970 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
3971 . msgtype=msgerror,
3972 . c1='XYZREF')
3973 flag_goto = 1
3974
3975
3979
3980
3981 DO i=1,numnod
3984
3985
3987 ENDIF
3988 ENDDO
3989
3991 sfrontb_r2r = numnod
3992 snom_opt_old = snom_opt
3993 in10 = inom_opt(10)
3994 in20 = inom_opt(20)
3995
3996
3997 GOTO 208
3998209 CONTINUE
3999
4000
4001 GOTO 210
4002211 CONTINUE
4004
4005
4006 GOTO 212
4007213 CONTINUE
4008
4009
4010 GOTO 214
4011215 CONTINUE
4012
4013
4014 GOTO 216
4015217 CONTINUE
4016
4017
4018
4027 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
4028
4029
4037
4038
4039
4040218 CONTINUE
4041 IF(.NOT.
ALLOCATED(
tagno))
ALLOCATE(
tagno(0))
4042 IF(.NOT. ALLOCATED(nale_r2r)) ALLOCATE(nale_r2r(0))
4043 IF(.NOT. ALLOCATED(dt_r2r)) ALLOCATE(dt_r2r(0))
4044
4045
4046
4047
4048
4049 IF(nr2rlnk/=0) THEN
4051 ENDIF
4052
4053 ALLOCATE(frontb_r2r(sfrontb_r2r,nspmd),stat=stat)
4054 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4055 . msgtype=msgerror,
4056 . c1='FRONT_R2R')
4057 frontb_r2r = 0
4058
4059
4060
4061
4063
4068 4 ixs10 ,ixs20 ,ixs16 ,
ipart ,
4074
4075
4076
4077 err_msg='TRANSFORMATIONS'
4078 err_category='TRANSFORMATIONS'
4079 CALL trace_in1(err_msg,len_trim(err_msg))
4081 . lsubmodel,rtrans)
4083 CLOSE(unit=iusbm)
4084
4085
4086
4087 err_msg='/MERGE/NODE'
4088 err_category='/MERGE/NODE'
4089
4090 CALL trace_in1(err_msg,len_trim(err_msg))
4091
4092 ALLOCATE(merge_node_tab(4*nb_merge_node),stat=stat)
4093 ALLOCATE(merge_node_tol(nb_merge_node),stat=stat)
4094 merge_node_tab = 0
4095 merge_node_tol = zero
4096 nmerge_node_cand = 0
4097 nmerge_node_dest = 0
4098 IF(stat /= 0) THEN
4099 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
4100 . c1='IMERGE')
4101 ENDIF
4102 IF(nb_merge_node > 0) THEN
4104 . merge_node_tol,nmerge_node_cand,nmerge_node_dest)
4105 ENDIF
4106
4108
4109
4110
4111 err_msg='MERGING NODES'
4112 err_category='MERGING NODES'
4113 CALL trace_in1(err_msg,len_trim(err_msg))
4114
4115 nmerge_tot = numcnod + nmerge_node_dest
4116 ALLOCATE(imerge(3*nmerge_tot),stat=stat)
4117 ALLOCATE(imerge2(numnod+1),stat=stat)
4118 ALLOCATE(iadmerge2(numnod+1),stat=stat)
4119 IF(stat /= 0) THEN
4120 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
4121 . c1='IMERGE')
4122 ENDIF
4123
4124 imerge = 0
4125 imerge2 = 0
4126 iadmerge2 =0
4127 nmerged = 0
4128
4129
4130 IF(numcnod > 0)
4132 . imerge2,iadmerge2,nmerge_tot)
4133 DEALLOCATE(cmerge)
4134
4135
4136 IF(nb_merge_node > 0)
4138 . iadmerge2,nmerge_tot,merge_node_tab,merge_node_tol,
4139 . nmerge_node_cand,nmerge_node_dest,
ixs,ixs10,ixs20,
4142
4144
4145
4146
4147 err_msg='REINIT CONNECTIVITY'
4148 CALL trace_in1(err_msg,len_trim(err_msg))
4149 IF(nmerged > 0) THEN
4151 .
ixs ,ixs10 ,ixs20 ,ixs16 ,
ixq ,
4154 .
iskwn ,imerge ,nmerge_tot)
4155
4176 ENDIF
4178
4179
4180
4181 err_msg='RANDOM NOISE'
4182 err_category='RANDOM NOISE'
4183 CALL trace_in1(err_msg,len_trim(err_msg))
4184
4186
4188 ALLOCATE(irand(nrand),stat=stat)
4189 ALLOCATE(alea(nrand) ,stat=stat)
4190 ALLOCATE(xseed(nrand),stat=stat)
4191
4194
4196
4197
4198
4199 err_msg='SEATBELTS'
4200 err_category='SEATBELTS'
4201 CALL trace_in1(err_msg,len_trim(err_msg))
4202
4203 nb_mat_seatbelt = 0
4205 nb_mat_seatbelt = nb_mat_seatbelt + nb_mat
4207 nb_mat_seatbelt = nb_mat_seatbelt + nb_mat
4209 nb_mat_seatbelt = nb_mat_seatbelt + nb_mat
4211 nb_mat_seatbelt = nb_mat_seatbelt + nb_mat
4212
4213 IF(nslipring + nretractor > 0) WRITE(istdo,'(A)')' .. SLIPRING/RETRACTOR'
4220 2 x,npc1,
nom_opt(lnopt1*inom_opt(32)+1),alea,
ipm)
4222
4223
4224
4225 err_msg='BCS'
4226 err_category='BCS'
4227 CALL trace_in1(err_msg,len_trim(err_msg))
4228 IF(nbcscyc>0) THEN
4230 END IF
4231 sibcscyc = 4*nbcscyc
4234 IF(numbcs /= 0 .OR. nalebcs /= 0 .OR. numbcsn /= 0) THEN
4235 WRITE(istdo,'(A)')titre(13)
4236
4241
4245 . lsubmodel)
4246
4249 . ikine1lag,
iskwn,
nom_opt(lnopt1*inom_opt(16)+1),lsubmodel)
4250
4253 . ikine1lag,
iskwn,
nom_opt(lnopt1*inom_opt(16)+1), nbcslag)
4254 ENDIF
4255
4256
4257
4260
4261 err_msg='ADAPTIVE MESHING BCS'
4262 err_category='ADAPTIVE MESHING BCS'
4263 CALL trace_in1(err_msg,len_trim(err_msg))
4264 IF(nadmesh/=0)THEN
4267 END IF
4269
4270
4271
4272 err_msg='SOLIDS SORT'
4273 err_category='INTERNAL'
4274 CALL trace_in1(err_msg,len_trim(err_msg))
4275 siwork = 2*
max(numels,numelq)
4276 ALLOCATE(iwork(siwork) ,stat=stat)
4277 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4278 . msgtype=msgerror,
4279 . c1='IWORK')
4280 IF(numels /= 0)
4286 IF(numelq /= 0)
4290 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
4292
4293
4294
4295 err_msg='MPCS 1'
4296 err_category='MPCS 1'
4297 CALL trace_in1(err_msg,len_trim(err_msg))
4298 IF(nummpc > 0) THEN
4300 ELSE
4301 lmpc=0
4302 ENDIF
4303 srbmpc = lmpc
4304 ALLOCATE(rbmpc(srbmpc) ,stat=stat)
4305 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4306 . msgtype=msgerror,
4307 . c1='RBMPC')
4308 IF(srbmpc > 0) rbmpc = zero
4310
4311
4312
4313 err_msg='DYNAMIC STORAGE REAL'
4314 err_category='INTERNAL'
4315 CALL trace_in1(err_msg,len_trim(err_msg))
4316 sgjbufr = lkjnr*ngjoint
4317 sw = 3*numnod*iale
4318 numelsk8 = numels
4319 numelqk8 = numelq
4320 sveul = (lveul*numels+10*numelq)*ieuler
4321 sveul8 = (int(lveul,kind(sveul8))*numelsk8+10*numelqk8)*int(ieuler,kind(sveul8))
4322 sfill = nmult*numnod
4323 sdfill = nmult*numnod
4324 salph = 2*nmult*(numelq+numels)
4325 swb = 0
4326 IF(
ale%GRID%NWALE == 2)
THEN
4327 swb = 3*numnod
4328 ELSEIF(
ale%GRID%NWALE == 4)
THEN
4329 swb = 4*numnod
4330 ENDIF
4331 ALLOCATE(wb(swb) ,stat=stat)
4332 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4333 . msgtype=msgerror,
4334 . c1='WB')
4335 IF(swb > 0) wb = zero
4336 IF(
ale%GRID%NWALE == 4)
THEN
4337 wma => wb(3*numnod+1:swb)
4338 ELSE
4339 wma => wb
4340 ENDIF
4341
4342 sdsave = 0
4343 sasave = 0
4344 IF(ilag == 1 .AND. (iale+ieuler) > 0) THEN
4345 sdsave = 3*numnod
4346 sasave = 3*numnod
4347 ENDIF
4348 ALLOCATE(gjbufr(sgjbufr) ,stat=stat)
4349 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4350 . msgtype=msgerror,
4351 . c1='GJBUFR')
4352 ALLOCATE(w(sw) ,stat=stat)
4353 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4354 . msgtype=msgerror,
4355 . c1='W')
4356 ALLOCATE(veul(sveul8) ,stat=stat)
4357 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4358 . msgtype=msgerror,
4359 . c1='VEUL')
4360 ALLOCATE(fill(sfill) ,stat=stat)
4361 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4362 . msgtype=msgerror,
4363 . c1='FILL')
4364 ALLOCATE(dfill(sdfill) ,stat=stat)
4365 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4366 . msgtype=msgerror,
4367 . c1='DFILL')
4368 ALLOCATE(alph(salph) ,stat=stat)
4369 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4370 . msgtype=msgerror,
4371 . c1='ALPH')
4372 ALLOCATE(dsave(sdsave) ,stat=stat)
4373 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4374 . msgtype=msgerror,
4375 . c1='DSAVE')
4376 ALLOCATE(asave(sasave) ,stat=stat)
4377 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4378 . msgtype=msgerror,
4379 . c1='ASAVE')
4380 IF(sgjbufr > 0) gjbufr = zero
4381 IF(sw > 0) w = zero
4382 IF(sveul8 > 0) veul = zero
4383 IF(sfill > 0) fill = zero
4384 IF(sdfill > 0) dfill = zero
4385 IF(salph > 0) alph = zero
4386 IF(sdsave > 0) dsave = zero
4387 IF(sasave > 0) asave = zero
4389
4390
4391
4392 err_msg='GJOINTS'
4393 err_category='GJOINTS'
4394 CALL trace_in1(err_msg,len_trim(err_msg))
4399 2 ms ,in ,lag_ncf ,lag_nkf ,lag_nhf ,
4400 3 d ,
unitab ,ikine1lag,
nom_opt(lnopt1*inom_opt(18)+1),lsubmodel)
4402
4403
4404
4405 err_msg='DETONATORS'
4406 err_category='DETONATORS'
4407 CALL trace_in1(err_msg,len_trim(err_msg))
4408
4411 . lsubmodel,detonators)
4413
4414
4415
4416
4417
4418 CALL ale_connectivity%ALE_CONNECTIVITY_INIT()
4419 err_msg='ALE LINKS'
4420 err_category='ALE'
4421 CALL trace_in1(err_msg,len_trim(err_msg))
4422 IF(nalelk/=0) THEN
4423 WRITE(istdo,'(A)')titre(29)
4424 llinal = 7 * nalelk
4425 slinale=llinal
4426 ALLOCATE(
linale(slinale),stat=stat)
4427 IF(ierr/=0) THEN
4428 WRITE(iout,*) ' ** ERROR IN MEMORY ALLOCATION'
4429 WRITE(istdo,*)' ** ERROR IN MEMORY ALLOCATION'
4430 ENDIF
4434 ELSE
4436 ENDIF
4437 err_msg='ALE NEIGHBOURS'
4438 IF(iale+ieuler+ialelag /= 0)THEN
4439 WRITE(istdo,'(A)')titre(30)
4443 3 nale_r2r ,nsubdom ,multi_fvm ,ale_connectivity,glob_therm%ITHERM,detonators%IS_SHADOWING_REQUIRED)
4444
4445
4446
4447 IF(multi_fvm%IS_USED) THEN
4449 ENDIF
4451
4452
4453
4454
4455 CALL trace_in1(err_msg,len_trim(err_msg))
4456 IF(nmult>0)THEN
4457 WRITE(istdo,'('' .. MULTIMATERIALS'')')
4458 IF(numels>0)
4460 IF(numelq>0)
4462 CALL inimul (pm ,fill ,dfill ,mat20_discrete_fill)
4463 ENDIF
4464 ENDIF
4466
4467
4468
4469 err_msg='CFD BOUNDARY ELEMENTS'
4470 err_category='CFD BOUNDARY ELEMENTS'
4471 CALL trace_in1(err_msg,len_trim(err_msg))
4472 IF(iale+ieuler/=0)
4475
4476
4477
4478
4479
4480 err_msg='MULTI-PURPOSE ELEMENTS'
4481 err_category='MULTI-PURPOSE ELEMENTS'
4482 CALL trace_in1(err_msg,len_trim(err_msg))
4483 IF(numelx > 0) THEN
4484 skxx = nixx*numelx
4486 ALLOCATE(
kxx(skxx) ,stat=stat)
4487 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4488 . msgtype=msgerror,
4489 . c1='KXX')
4490 ALLOCATE(
ixx(sixx+150) ,stat=stat)
4491 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4492 . msgtype=msgerror,
4493 . c1='IXX')
4496 ALLOCATE(lelx(numelx) ,stat=stat)
4497 lelx(1:numelx) = 0
4500 ELSE
4501 skxx = 0
4502 sixx = 0
4503 ALLOCATE(
kxx(skxx) ,stat=stat)
4504 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4505 . msgtype=msgerror,
4506 . c1='KXX')
4507 ALLOCATE(
ixx(sixx) ,stat=stat)
4508 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4509 . msgtype=msgerror,
4510 . c1='IXX')
4511 ALLOCATE(lelx(numelx) ,stat=stat)
4512 ENDIF
4514
4515
4516
4517 err_msg='SPH SYM'
4518 err_category='SPH SYM'
4519 CALL trace_in1(err_msg,len_trim(err_msg))
4520 sispsym = nspcond*numsph
4521 sispcond = nspcond*nispcond
4522 ALLOCATE(
ispsym(sispsym) ,stat=stat)
4523 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4524 . msgtype=msgerror,
4525 . c1='ISPSYM')
4526 ALLOCATE(
ispcond(sispcond) ,stat=stat)
4527 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4528 . msgtype=msgerror,
4529 . c1='ISPCOND')
4530 IF(nspcond > 0) THEN
4533 WRITE(istdo,'(A)')' .. SPH SYMMETRY CONDITIONS'
4536 . lsubmodel)
4537 ENDIF
4539
4540
4541
4542 err_msg='SPH I/O'
4543 err_category='SPH I/O'
4544 CALL trace_in1(err_msg,len_trim(err_msg))
4545 lwaspio=0
4546 sisphio = nisphio*nsphio
4547 ssphveln= nsphio*numsph*2
4548 ALLOCATE(
isphio(sisphio) ,stat=stat)
4549 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4550 . msgtype=msgerror,
4551 . c1='ISPHIO')
4552 ALLOCATE(sphveln(ssphveln) ,stat=stat)
4553 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4554 . msgtype=msgerror,
4555 . c1='SPHVELN')
4556 lvsphio = 0
4557 IF(nsphio > 0)THEN
4558 WRITE(istdo,'(A)')' .. SPH INLET/OUTLET DEFINITION'
4560 nseg_io = 0
4562 .
nom_opt(lnopt1*inom_opt(22)+1),
4563 . lsubmodel)
4564 ALLOCATE(vsphio(svsphio) ,stat=stat)
4565 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4566 . msgtype=msgerror,
4567 . c1='VSPHIO')
4568 vsphio(1:svsphio)=zero
4569
4570
4571
4572
4576 . lsubmodel,rtrans ,nrtrans )
4577
4578
4579
4580 slprtsph = 2*(npart+1)
4581 slonfsph = numsph
4582 ALLOCATE(
lprtsph(slprtsph) ,stat=stat)
4583 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4584 . msgtype=msgerror,
4585 . c1='LPRTSPH')
4586 ALLOCATE(
lonfsph(slonfsph) ,stat=stat)
4587 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4588 . msgtype=msgerror,
4589 . c1='LONFSPH')
4594 sphveln = zero
4595 IF(nspmd > 1)THEN
4596
4597
4598 END IF
4599 ELSE
4600 slprtsph = 0
4601 slonfsph = 0
4602 svsphio = 0
4603
4604 ALLOCATE(
lprtsph(slprtsph) ,stat=stat)
4605 ALLOCATE(
lonfsph(slonfsph) ,stat=stat)
4606 ALLOCATE(vsphio(svsphio) ,stat=stat)
4607
4608 ENDIF
4609 IF(numsph > 0)THEN
4610
4611
4612
4615 . snod2sp ,slonfsph,numnod,npart,
itab)
4616
4617
4618
4619 pre_search = 0
4620 sz_intp_dist = 1
4623 . pre_search)
4624 END IF
4626
4627
4628
4629 err_msg='FLUID NODAL MASSES'
4630 err_category='FLUID NODAL MASSES'
4631 CALL trace_in1(err_msg,len_trim(err_msg))
4632 smsnf = numnod*
max(iale,ieuler,ialelag)
4633 ALLOCATE(msnf(smsnf) ,stat=stat)
4634 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4635 . msgtype=msgerror,
4636 . c1='MSNF')
4637 msnf = zero
4639
4640
4641
4642 err_msg='CONCENTRED LOADS'
4643 err_category='CONCENTRED LOADS'
4644 CALL trace_in1(err_msg,len_trim(err_msg))
4645 numcld = nconld
4646 numpres = npreld
4647 loads%NLOAD_CLOAD = 0
4648 loads%NLOAD_PLOAD = 0
4649 IF(nsubdom>0)
ALLOCATE(
nncl(nconld+npreld))
4652 sibcl = (numcld + numpres)*nibcld
4653 sforc = (numcld + numpres)*lfaccld
4654 ALLOCATE(
ibcl(sibcl) ,stat=stat)
4655 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4656 . msgtype=msgerror,
4657 . c1='IBCL')
4658 ALLOCATE(forc(sforc) ,stat=stat)
4659 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4660 . msgtype=msgerror,
4661 . c1='FORC')
4662 ALLOCATE(dpl0cld(6*(numcld+numpres)) ,stat=stat)
4663 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4664 . msgtype=msgerror,
4665 . c1='DPL0CLD')
4666 ALLOCATE(vel0cld(6*(numcld+numpres)) ,stat=stat)
4667 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4668 . msgtype=msgerror,
4669 . c1='VEL0CLD')
4670 IF(numpres>0) THEN
4671 ipres =>
ibcl(numcld*nibcld+1:sibcl)
4672 ELSE
4674 END IF
4676 forc = zero
4677 dpl0cld = zero
4678 vel0cld = zero
4679
4680
4681
4682 IF(nconld/=0) THEN
4683 WRITE(istdo,'(A)')titre(33)
4684
4687 . loads )
4688 IF(nconld*lfaccld<sforc) THEN
4689 pres => forc(nconld*lfaccld+1:sforc)
4690 ELSE
4691 pres => forc
4692 ENDIF
4693 ENDIF
4694 IF(nconld*lfaccld<sforc) THEN
4695 pres => forc(nconld*lfaccld+1:sforc)
4696 ELSE
4697 pres => forc
4698 END IF
4700
4701
4702
4703 err_msg='PRESSURE LOADS'
4704 err_category='PRESSURE LOADS'
4705 CALL trace_in1(err_msg,len_trim(err_msg))
4706 IF(npreld/=0)THEN
4707 WRITE(istdo,'(A)')titre(34)
4710 nconld=nconld+npreld
4711 ENDIF
4712
4714 IF(nsubdom>0)
DEALLOCATE(
nncl)
4715
4716
4717
4720
4721
4722
4723 err_msg = 'LOAD FIELDS'
4724 err_category = 'LOAD FIELDS'
4725 CALL trace_in1(err_msg,len_trim(err_msg))
4726
4727
4729 scfield = lfacload*nloadc
4730 sicfield = sizfield*nloadc
4731 slcfield = numcfield
4732
4733
4734 numloadp=0
4735 nintloadp=0
4739 nloadp = nloadp_f+pblast%NLOADP_B+nloadp_hyd
4740 sloadp = lfacload*nloadp
4741 siloadp = sizloadp*nloadp
4742 slloadp = numloadp
4743
4745
4746
4747
4748 err_msg='IMPOSED VELOCITIES'
4749 err_category='IMPOSED VELOCITIES'
4750 CALL trace_in1(err_msg,len_trim(err_msg))
4751
4752 nfvlag = 0
4753
4754
4755
4756
4757
4758
4759 IF(nfxvel > 0) THEN
4760 nfv0 = nfxvel
4761
4764
4767
4769
4770 nfxvel = nimpdisp + nimpvel + nimpacc
4771 ELSE
4772 nfv0 = 0
4773 nimpdisp = 0
4774 nimpvel = 0
4775 nimpacc = 0
4776 nimpv_lagm = 0
4777 ENDIF
4778
4779 sibfv = nfxvel * nifv
4780 svel = nfxvel * lfxvelr
4781 nfxvel0 = nfxvel
4782 ALLOCATE(
ibfv(sibfv) ,stat=stat)
4783 ALLOCATE(vel(svel ) ,stat=stat)
4785 vel(1:svel) = zero
4786
4787
4788 IF(nfxvel > 0) THEN
4789
4790 WRITE(istdo,'(A)')titre(44)
4791
4793 . vel ,
ibfv ,d ,ikine1lag,
4796 . nimpdisp ,nimpvel ,
unitab ,lsubmodel)
4797
4798 ENDIF
4799
4800
4801
4802 IF(nimpacc > 0) THEN
4806 . nfxvel ,nimpacc )
4807 ENDIF
4808
4809
4810 IF(nbcscyc > 0) THEN
4811 ALLOCATE(itagcyc(numnod) ,stat=stat)
4813 ELSE
4814 ALLOCATE(itagcyc(0))
4815 END IF
4816
4817 sfsav = nthvki * (ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu+nmonvol+nfxbody+nintsub)
4818 ALLOCATE(fsav(sfsav) ,stat=stat)
4819 fsav = zero
4821
4822
4823
4824
4825
4826
4827
4828 nintemp = glob_therm%NINTEMP
4829 IF (iale + ieuler /= 0) THEN
4830 IF (glob_therm%ITHERM_FE == 0 .AND. (glob_therm%NIMTEMP /= 0 .OR. nintemp /= 0)) THEN
4831 CALL ancmsg(msgid=1724, anmode=aninfo, msgtype=msgwarning)
4832 ENDIF
4833 ENDIF
4834 err_msg='INITIAL TEMPERATURES'
4835 err_category='INITIAL TEMPERATURES'
4836 CALL trace_in1(err_msg,len_trim(err_msg))
4837
4838 IF (glob_therm%NINTEMP > 0) THEN
4839 WRITE(istdo,'(A)')titre(35)
4840 ALLOCATE(temp(numnod))
4841 temp(1:numnod) = zero
4842 ALLOCATE(intids(nintemp))
4845 DEALLOCATE(intids)
4846 END IF
4847
4848 IF (glob_therm%ITHERM_FE > 0 ) THEN
4849 ALLOCATE(mcp(numnod))
4850 IF (.NOT.ALLOCATED(temp)) THEN
4851 ALLOCATE(temp(numnod))
4852 temp(1:numnod) = zero
4853 END IF
4854 mcp(1:numnod) = zero
4855
4857 . glob_therm%NIMTEMP,glob_therm%NFXTEMP)
4858
4860 . glob_therm%NCONVEC ,glob_therm%NUMCONV )
4861
4863 . glob_therm%NRADIA ,glob_therm%NUMRADIA)
4864
4866 . glob_therm%NIMPFLUX,glob_therm%NFXFLUX)
4867
4868
4869 ALLOCATE(
ibcv(glob_therm%NICONV*glob_therm%NUMCONV) ,stat=stat)
4870 ALLOCATE(fconv(glob_therm%LFACTHER*glob_therm%NUMCONV) ,stat=stat)
4871 ALLOCATE(
ibftemp(glob_therm%NIFT*glob_therm%NFXTEMP) ,stat=stat)
4872 ALLOCATE(fbftemp(glob_therm%LFACTHER*glob_therm%NFXTEMP),stat=stat)
4873 ALLOCATE(
ibfflux(glob_therm%NITFLUX*glob_therm%NFXFLUX) ,stat=stat)
4874 ALLOCATE(fbfflux(glob_therm%LFACTHER*glob_therm%NFXFLUX),stat=stat)
4875 ALLOCATE(
ibcr(glob_therm%NIRADIA*glob_therm%NUMRADIA) ,stat=stat)
4876 ALLOCATE(fradia(glob_therm%LFACTHER*glob_therm%NUMRADIA),stat=stat)
4877 .
4878 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4879 . msgtype=msgerror,
4880 . c1='THERMAL DATA')
4881 ibcr(1:glob_therm%NIRADIA*glob_therm%NUMRADIA) = 0
4882
4883 IF (glob_therm%NUMCONV > 0 ) THEN
4885 fconv = zero
4887 . glob_therm%NCONVEC ,glob_therm%NICONV,glob_therm%NUMCONV,glob_therm%LFACTHER)
4888 ENDIF
4889
4890 IF (glob_therm%NUMRADIA > 0 ) THEN
4892 . glob_therm%NRADIA ,glob_therm%NUMRADIA,glob_therm%NIRADIA,glob_therm%LFACTHER)
4893 ENDIF
4894
4895 IF (glob_therm%NFXTEMP > 0) THEN
4897 fbftemp = zero
4900 . glob_therm%NIMTEMP,glob_therm%NIFT,glob_therm%LFACTHER)
4901 ENDIF
4902
4903 IF (glob_therm%NFXFLUX > 0 ) THEN
4905 fbfflux = zero
4908 . glob_therm%NIMPFLUX,glob_therm%NITFLUX,glob_therm%LFACTHER)
4909 ENDIF
4910
4911 ELSE
4912 ALLOCATE(mcp(0))
4915 IF (.NOT. ALLOCATED(temp)) ALLOCATE(temp(0))
4916 ENDIF
4917
4919
4920 IF(isigi==2 .OR. isigi==4) THEN
4921 sfzero = 3*numnod
4922 ELSEIF(iabs(isigi)==5) THEN
4923 sfzero = 3*4*(numelc+numeltg)
4924 ELSE
4925 sfzero = 0
4926 ENDIF
4927 ALLOCATE(fzero(sfzero) ,stat=stat)
4928 IF(sfzero > 0) fzero = zero
4929
4930
4931
4932 err_msg='LASER IMPACTS'
4933 err_category='LASER IMPACTS'
4934 CALL trace_in1(err_msg,len_trim(err_msg))
4937
4938
4939
4940
4941 nfacx=0
4942 err_msg='ELEMENTARY BOUNDARY CONDITIONS'
4943 err_category='ELEMENTARY BOUNDARY CONDITIONS'
4944 CALL trace_in1(err_msg,len_trim(err_msg))
4945 ebcs_tag_cell_spmd(1:numelq+numeltg+numels)=0
4948
4949 IF(.NOT. ALLOCATED(sensor_tmp)) ALLOCATE( sensor_tmp(0) )
4951 . pm,
igeo, x, sensor_tmp,
monvol, multi_fvm%IS_USED,
4952 . ebcs_tab, ebcs_tag_cell_spmd)
4953 DEALLOCATE(sensor_tmp)
4954 ENDIF
4956
4957
4958
4959 err_msg='ACCELEROMETERS'
4960 err_category='ACCELEROMETERS'
4961 CALL trace_in1(err_msg,len_trim(err_msg))
4962 saccelm = naccelm * llaccelm
4963 ALLOCATE(accelm(saccelm) ,stat=stat)
4964 IF(saccelm > 0) accelm = zero
4965 IF(naccelm > 0)
CALL lecacc(
4969
4970
4971
4972 err_msg='GAUGES'
4973 err_category='GAUGES'
4974 CALL trace_in1(err_msg,len_trim(err_msg))
4975 ALLOCATE(
lgauge(3*nbgauge) ,stat=stat)
4976 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4977 . msgtype=msgerror,
4978 . c1='LGAUGE')
4980 ALLOCATE(gauge(llgauge*nbgauge) ,stat=stat)
4981 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4982 . msgtype=msgerror,
4983 . c1='GAUGE')
4984 IF(nbgauge > 0) gauge=zero
4987
4988
4989
4990 err_msg='SENSORS'
4991 err_category='SENSORS'
4992 CALL trace_in1(err_msg,len_trim(err_msg))
4993
4994
4995
4997
4998
4999 python%NB_SENSORS = 0
5004 . sensor_user_struct)
5005
5006
5007
5008
5009 IF(sensor_user_struct%IS_USED) THEN
5010 IF(sensor_user_struct%POINTER_NODE > 0) THEN
5012 .
itabm1,sensor_user_struct%POINTER_NODE,sensor_user_struct%NUMBER_NODE,
5013 . sensor_user_struct%NODE_LIST,1,
ipart)
5014 ENDIF
5015 ENDIF
5016
5018
5019
5020
5021
5022 err_msg='INITIAL VELOCITIES'
5023 err_category='INITIAL VELOCITIES'
5024 CALL trace_in1(err_msg,len_trim(err_msg))
5025
5026 IF(nrbody > 0) THEN
5027 ALLOCATE(rby_iniaxis(7,nrbody))
5028 rby_iniaxis = zero
5029 ELSE
5030 ALLOCATE(rby_iniaxis(0,0))
5031 ENDIF
5032
5033 ninivelt = 0
5034 IF(ninvel > 0 )
CALL hm_preread_inivel(lsubmodel,
unitab,hm_ninvel,ninivelt)
5035 loads%NINIVELT = ninivelt
5036 IF(ninvel/=0.OR.isigi>=3)THEN
5037 siwork = ninvel
5038 ALLOCATE(iwork(siwork) ,stat=stat)
5039 iwork = 0
5040 WRITE(istdo,'(A)')titre(35)
5041 ALLOCATE(fvm_inivel(ninvel))
5042 DO i = 1, ninvel
5043 fvm_inivel(i)%FLAG = .false.
5044 ENDDO
5045 ALLOCATE(loads%INIVELT(ninivelt) ,stat=stat)
5046
5049 . x ,
unitab , lsubmodel, rtrans , xframe ,
5050 .
iframe , vflow , wflow ,
kxsp , multi_fvm ,
5052 . sensors ,ninivelt,loads%INIVELT)
5054
5055 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
5056 ninvel = siwork
5057
5058 ELSE
5059 ALLOCATE(fvm_inivel(0:0))
5060 ENDIF
5061
5062 IF(ALLOCATED(rby_msn)) DEALLOCATE(rby_msn)
5063
5065
5066
5067
5068
5069
5070 IF(bcs%NUM_WALL /= 0) THEN
5071
5072 CALL hm_read_bcs_wall(
unitab, lsubmodel,
igrnod, ngrnod, sensors,
itabm1, numnod, multi_fvm)
5073 ENDIF
5074
5075
5076
5077
5078 err_msg='BOLT PRELOADING'
5079 err_category='BOLT PRELOADING'
5080 CALL trace_in1(err_msg,len_trim(err_msg))
5081
5082 npreload_a = npreload
5083 CALL hm_pre_read_preload_axial(ngrspri,
igrspring,npreload_a,lsubmodel)
5084 numpreload = npreload
5085 IF(npreload > npreload_a) THEN
5086 IF(nsect /= 0)THEN
5089 ALLOCATE(
nstrf(snstrf) ,stat=stat)
5090 ALLOCATE(secbuf(ssecbuf) ,stat=stat)
5092 secbuf = zero
5099 ENDIF
5101 sipreload = 3*numpreload
5102 spreload = 6*numpreload
5103 ALLOCATE(
ipreload(sipreload) ,stat=stat)
5104 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5105 . msgtype=msgerror,
5106 . c1='IPRELOAD')
5107 ALLOCATE(preload(spreload) ,stat=stat)
5108 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5109 . msgtype=msgerror,
5110 . c1='PRELOAD')
5112 IF(stat /= 0)
CALL ancmsg(msgid= 268,anmode=aninfo,
5113 . msgtype= msgerror,
5114 . c1= 'IFLAG_BPRELOAD')
5117 preload = zero
5118
5119 WRITE(istdo,'(A)')titre(34)
5122 . eani ,
itab ,lsubmodel)
5123
5125 IF(ALLOCATED(secbuf)) DEALLOCATE(secbuf)
5126 snstrf = 0
5127 ssecbuf = 0
5128 ELSE
5130 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5131 . msgtype=msgerror,
5132 . c1='IPRELOAD')
5133 ALLOCATE(preload(0) ,stat=stat)
5134 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5135 . msgtype=msgerror,
5136 . c1='PRELOAD')
5138 IF(stat /= 0)
CALL ancmsg(msgid= 268,anmode=aninfo,
5139 . msgtype= msgerror,
5140 . c1= 'IFLAG_BPRELOAD')
5141 ENDIF
5142
5143 ALLOCATE(preload_a(npreload_a) ,stat=stat)
5144 ALLOCATE(itagprld_spring(numelr) ,stat=stat)
5145 ALLOCATE(itagprld_beam(numelp) ,stat=stat)
5146 ALLOCATE(itagprld_truss(numelt) ,stat=stat)
5147 IF(stat /= 0)
CALL ancmsg(msgid= 268,anmode=aninfo,
5148 . msgtype= msgerror,
5149 . c1= 'PRELOAD_AXIAL')
5150
5151 itagprld_spring = 0
5152 itagprld_beam = 0
5153 itagprld_truss = 0
5154 IF (npreload_a > 0) THEN
5155 CALL hm_read_preload_axial(
5156 . npreload_a, ngrspri,
igrspring, itagprld_spring,
5157 .
unitab , lsubmodel, preload_a, numelr ,
5158 . snpc ,
npc , nfunct , sensors ,
5159 . ngrbeam ,
igrbeam , numelp , itagprld_beam ,
5160 . ngrtrus ,
igrtruss , numelt , itagprld_truss ,
5161 . iout )
5162 npreload = npreload - npreload_a
5163 END IF
5165
5166
5167
5168 err_msg='RIGID LINKS'
5169 err_category='RIGID LINKS'
5170 CALL trace_in1(err_msg,len_trim(err_msg))
5172 snnlink = 10*nlink
5173 slnlink = numlink
5174 ALLOCATE(
nnlink(snnlink) ,stat=stat)
5175 ALLOCATE(
lnlink(slnlink) ,stat=stat)
5176 IF(snnlink > 0)
nnlink = 0
5177 IF(slnlink > 0)
lnlink = 0
5178 IF(nlink > 0) THEN
5182 ENDIF
5183
5184 sfbvel = 3*nibvel
5185 sgrav = lfacgrv*ngrav
5186 sfr_wave = numnod*ifrwv
5187 sparts0 = npart
5188 ALLOCATE(fbvel(sfbvel) ,stat=stat)
5189 ALLOCATE(grav(sgrav ) ,stat=stat)
5190 ALLOCATE(fr_wave(sfr_wave) ,stat=stat)
5191 ALLOCATE(parts0(sparts0) ,stat=stat)
5192 IF(sfbvel > 0) fbvel = zero
5193 IF(sgrav > 0) grav = zero
5194 IF(sfr_wave > 0) fr_wave = zero
5195 IF(sparts0 > 0) parts0 = zero
5196
5198
5199
5200
5202 IF(marqueur3) THEN
5203 WRITE(iout,'(A)')' '
5204 WRITE(iout,'(A)')
5205 . ' --------------------------------------'
5206 WRITE(iout,'(A)')
5207 . ' DDW OPTION FOR THE DOMAIN DECOMPOSITION'
5208 WRITE(iout,'(A)')
5209 . ' --------------------------------------'
5210 WRITE(istdo,*)
5211 . '.. DDW OPTION FOR THE DOMAIN DECOMPOSITION'
5212
5213 ALLOCATE(tab_ump_old(7,taille_old),stat=stat)
5214 ALLOCATE(cputime_mp_old(taille_old),stat=stat)
5215 tab_ump_old = 0
5216 cputime_mp_old = zero
5217
5218 CALL lec_ddw(filnam,len_filnam,tab_ump_old,cputime_mp_old)
5219
5221 ALLOCATE(poin_ump_old(nummat_old), stat=stat)
5222 poin_ump_old = 0
5223
5225 ELSE
5226 ALLOCATE(tab_ump_old(0,0),stat=stat)
5227 ALLOCATE(cputime_mp_old(0),stat=stat)
5228 ALLOCATE(poin_ump_old(0), stat=stat)
5229 ENDIF
5230
5231
5232
5233 err_msg='USER WINDOWS'
5234 err_category='USER WINDOWS'
5235 CALL trace_in1(err_msg,len_trim(err_msg))
5236
5237 IF(user_windows%HAS_USER_WINDOW /= 0 ) THEN
5238
5239
5241 * x, v, vr, ms, in)
5242
5243
5244 ENDIF
5246
5247
5248
5249 err_msg='RIGID BODIES ON'
5250 err_category='RIGID BODIES'
5251 CALL trace_in1(err_msg,len_trim(err_msg))
5252 IF(numels /=0) isoloff = 0
5253 IF(numelc /=0) isheoff = 0
5254 IF(numelt /=0) itruoff = 0
5255 IF(numelp /=0) ipouoff = 0
5256 IF(numelr /=0) iresoff = 0
5257 IF(numeltg /=0) itrioff = 0
5258 IF(numelq /=0) iquaoff = 0
5265
5266
5267
5268 err_msg='RBE2 ON'
5269 err_category='RBE2'
5270 CALL trace_in1(err_msg,len_trim(err_msg))
5273 2 igrnrb2,isoloff,isheoff,itrioff,
itabm1,
5274 3 lsubmodel)
5276
5277
5278
5279 err_msg='FLEXIBLE BODIES ON'
5280 err_category='FLEXIBLE BODIES'
5281 CALL trace_in1(err_msg,len_trim(err_msg))
5282 IF(nfxbody > 0)THEN
5283 lenmod=0
5286 2
ixtg,itrioff,fxbipm,lsubmodel)
5287 ENDIF
5289
5290
5291
5292 err_msg='CLUSTERS'
5293 err_category='CLUSTERS'
5294 ALLOCATE(clusters(ncluster), stat=stat)
5298 . lsubmodel)
5299
5300
5301
5304 * n2d ,numeltg,numels,numelq,nummat,
5305 * npart,nsurf,lipart1,npropmi,sipart,sinivol,
5306 * nsubdom,sbufmat,
igrnod,ngrnod)
5307
5308
5309
5310 IF(tagsurfige>0) THEN
5311 snige = iadtabige
5312 nige => nige_tmp(idxige2)%ptr
5313
5314 srige = iadtabige
5315 rige => rige_tmp(idxige2)%ptr2
5316
5317 sxige = iadtabige
5318 xige => xige_tmp(idxige2)%ptr2
5319
5320 svige = iadtabige
5321 vige => vige_tmp(idxige2)%ptr2
5322 ENDIF
5324
5325
5326
5327
5328
5330
5331
5332
5333 err_msg='MONITORED VOLUMES'
5334 err_category='MONITORED VOLUMES'
5335 CALL trace_in1(err_msg,len_trim(err_msg))
5336 ibagsurf = 0
5337 libagale = 0
5338 lrbagale = 0
5339 nventtot = 0
5340 ALLOCATE(t_monvol(nvolu + nmonvol))
5342 IF(nvolu + nmonvol> 0) THEN
5343 WRITE(istdo,'(A)') ' .. MONITORED VOLUMES '
5344
5346 . x, pm, geo,
ixc,
ixtg, sensors,
5348 . lsubmodel)
5349
5353 5 sensors ,
igrbric ,sbufale ,
5354 6
ixs , v ,libagale,
5355 7 lrbagale )
5356
5357 libagjet=0
5358 lrbagjet=0
5359 libaghol=0
5360 lrbaghol=0
5361 lrcbag = 0
5362 licbag = nicbag * nvolu * nvolu
5363 DO ii = 1, nvolu
5364 libagjet = libagjet + nibjet * t_monvol(ii)%NJET
5365 lrbagjet = lrbagjet + nrbjet * t_monvol(ii)%NJET
5366 libaghol = libaghol + nibhol * t_monvol(ii)%NVENT
5367 lrbaghol = lrbaghol + nrbhol * t_monvol(ii)%NVENT
5368 IF(t_monvol(ii)%TYPE == 5 .OR. t_monvol(ii)%TYPE == 9) THEN
5369 lrcbag = lrcbag + t_monvol(ii)%NCA * nrcbag
5370 ENDIF
5371 ENDDO
5372
5373 svolmon0 = nrvolu * nvolu + lrcbag + lrbagjet + lrbaghol
5374 svolmon = svolmon0 + sbufale + 1
5375 ALLOCATE(volmon(svolmon), stat = stat)
5376 volmon(1:svolmon) = zero
5377
5378 smonvol = nimv * nvolu + licbag + libagjet + libaghol + libagale
5379 ALLOCATE(
monvol(smonvol), stat = stat)
5381 ELSE
5383 ALLOCATE(volmon(0))
5384 ENDIF
5386
5387
5388
5389 err_msg='IMPLICIT DOMAIN DECOMPOSITION'
5390 err_category='IMPLICIT DOMAIN DECOMPOSITION'
5391 CALL trace_in1(err_msg,len_trim(err_msg))
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405 iddlevel = 0
5406 nelemint = 0
5407 ifixin = 1
5408 ifiend = 1
5409 DO i = 1, numnod
5410 iwcont(i) = 0
5411 iwcont(numnod+i) = 0
5412 iwcin2(i)= 0
5413 iwcin2(numnod+i)= 0
5414
5415
5416
5418 ENDDO
5419 DO i=0,maxlaw
5420 sol1tnl(i,1)=zero
5421 sol1tnl(i,2)=zero
5422 sol1tnl(i,3)=zero
5423
5424 sol8tnl(i,1)=zero
5425 sol8tnl(i,2)=zero
5426 sol8tnl(i,3)=zero
5427
5428 DO j=0,3
5429 shtnl(i,j,1)=zero
5430 shtnl(i,j,2)=zero
5431 shtnl(i,j,3)=zero
5432
5433 tritnl(i,j,1)=zero
5434 tritnl(i,j,2)=zero
5435 tritnl(i,j,3)=zero
5436 ENDDO
5437 ENDDO
5438 DO i=1,10
5439 soltelt(i)=zero
5440 shtelt(i)=zero
5441 tritelt(i)=zero
5442 ENDDO
5443 tpsref = zero
5444
5445 lag_ncf0 = lag_ncf
5446 lag_nkf0 = lag_nkf
5447 lag_nhf0 = lag_nhf
5448 lag_ncl0 = lag_ncl
5449 lag_nkl0 = lag_nkl
5451
5452
5453
5454 IF(ndrape > 0 .AND. (ipart_stack > 0 .OR. ipart_pcompp > 0)) THEN
5456 .
igeo ,iworksh ,drapeg%INDX)
5457 ENDIF
5458
5459
5460
5461 err_msg='PERTURB'
5462 err_category='PERTURB'
5463 CALL trace_in1(err_msg,len_trim(err_msg))
5464
5465 IF(iperturb /= 0) THEN
5466 srnoise1=nperturb
5467 srnoise2=numelc+numeltg+numels+numsph
5468 ALLOCATE(rnoise(nperturb,numelc+numeltg+numels+numsph))
5469 rnoise(1:nperturb,1:numelc+numeltg+numels+numsph) = zero
5470 ALLOCATE(perturb(nperturb))
5471 perturb(1:nperturb) = 0
5472 ALLOCATE(qp_iperturb(nperturb,6))
5473 qp_iperturb(1:nperturb,1:6) = 0
5474 ALLOCATE(qp_rperturb(nperturb,4))
5475 qp_rperturb(1:nperturb,1:4) = zero
5477 .
ipart ,rnoise ,ipartc ,ipartg ,ipartsp ,
5478 .
igrpart ,
ipm ,iparts ,perturb ,qp_iperturb,
5479 . qp_rperturb ,lsubmodel,
unitab )
5480 ELSE
5481 srnoise1=1
5482 srnoise2=1
5483 ALLOCATE(rnoise(1,1))
5484 rnoise(1,1) = zero
5485 ALLOCATE(perturb(1))
5486 perturb(1) = 0
5487 ALLOCATE(qp_iperturb(0,0))
5488 ALLOCATE(qp_rperturb(0,0))
5489 ENDIF
5490
5492
5493
5494
5495
5496 CALL globmat(
igeo , geo ,pm ,stack%PM, stack%GEO,stack%IGEO)
5497
5498
5499
5500
5501
5502
5509
5510
5511
5512
5513 err_msg='USER TO SYSTEM RENUMBERING'
5514 err_category='INTERNAL'
5515 CALL trace_in1(err_msg,len_trim(err_msg))
5516 CALL fsdcod(python, bufmat ,pm ,geo ,
ibcl ,ipres ,
5522 .
nom_opt(lnopt1*inom_opt(3)+1),
ibfflux ,glob_therm,nimpvel,nimpdisp,
5523 . nimpacc)
5524
5525
5526
5527
5530 . mat_elem%MAT_PARAM)
5531
5532 CALL updfail(mat_elem%MAT_PARAM ,nummat ,nfunct ,ntable ,npc1 ,
table ,
5534 . nixc ,
ixc ,nixtg ,
ixtg ,numelc ,numeltg ,
5536
5538
5539
5540
5541
5542 CALL trace_in1(err_msg,len_trim(err_msg))
5543 IF(nsphio/=0)
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555 100 CONTINUE
5556
5558
5559 IF(iddlevel==1) THEN
5560 totaddmas = zero
5561 ms = zero
5562 in = zero
5563 mcp = zero
5564 msnf = zero
5565
5566 IF((nsubdom>0)) THEN
5567
5568 DO i=1,numnod
5569 IF(
tagno(i+n_part) > 1)
THEN
5570 ms(i)=1e-20
5571 IF(iroddl==1) in(i)=1e-20
5572 ENDIF
5573 END DO
5574 ENDIF
5575
5576 ENDIF
5577
5578
5579
5580
5581
5582 n_seatbelt = 0
5583 IF(nb_mat_seatbelt > 0) THEN
5584 err_msg='SEATBELTS'
5585 err_category='SEATBELTS'
5586 CALL trace_in1(err_msg,len_trim(err_msg))
5587 WRITE(istdo,'(A)')' .. SEATBELT INITIALIZATION'
5589 . x,sensors,bufmat,pm,geo,
5593 ENDIF
5594
5595
5596
5597
5598 IF (ndamp > 0) THEN
5599 IF(iddlevel==0)THEN
5600 err_msg='DAMPING'
5601 err_category='DAMPING'
5602 CALL trace_in1(err_msg,len_trim(err_msg))
5604 . snpc1,npc1,ndamp_vrel_rby,
igrpart,damp_range_part)
5606 ENDIF
5607 ENDIF
5608
5609
5610
5611 IF(isms == 0) THEN
5615 ALLOCATE(t2main_sms(4,0))
5616 ENDIF
5617 ELSEIF(isms/=0)THEN
5618 err_msg='AMS'
5619 err_category='AMS'
5620 WRITE(istdo,'(A)')' .. AMS INITIALIZATION'
5621 IF(iddlevel==0) THEN
5622
5623 err_msg='AMS INITIALIZATION PHASE I'
5624 CALL trace_in1(err_msg,len_trim(err_msg))
5625
5627
5628 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5629 . msgtype=msgerror,
5630 . c1='TAGPRT_SMS / NATIV_SMS / T2MAIN_SMS')
5633 t2main_sms=0
5634
5636 . ipartt ,ipartp ,ipartr ,ipartg ,
5638
5640
5641 ELSE
5642
5643
5644
5645 err_msg='AMS INITIALIZATION PHASE II'
5646 CALL trace_in1(err_msg,len_trim(err_msg))
5647
5648 ALLOCATE(kinwork(numnod),stat=stat)
5649 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5650 . msgtype=msgerror,
5651 . c1='KINWORK')
5654
5663 . stat=stat)
5664 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5665 . msgtype=msgerror,
5666 . c1='TAGREL_SMS')
5667
5668
5672 3 ixs20 ,
iparg ,dsdof ,
5674 5 iparts ,ipartq ,ipartc ,
5675 6 ipartt ,ipartp ,ipartr ,ipartg ,
5680
5684 3 ixs20 ,
iparg ,ms ,ms0 ,dsdof ,
5687 6 ipartc ,ipartt ,ipartp ,ipartr ,
5691
5692
5694 . stat=stat)
5695 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5696 . msgtype=msgerror,
5697 . c1='KDI_SMS')
5698
5705 7
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5706 8 ipartp ,ipartr ,ipartg ,ipartx ,
5709
5711 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5712 . msgtype=msgerror,
5713 . c1='JDI_SMS')
5714
5720 6
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5721 7 ipartp ,ipartr ,ipartg ,ipartx ,
5725
5727
5728 ALLOCATE(
jdi_sms(nnz_sms),stat=stat)
5729 IF(stat/=0) THEN
5730 CALL ancmsg(msgid=268,anmode=aninfo,
5731 . msgtype=msgerror,
5732 . c1='JDI_SMS')
5734 ENDIF
5735
5741 7
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5742 8 ipartp ,ipartr ,ipartg ,ipartx ,
5747 e t2main_sms)
5748
5750
5751 ALLOCATE(
jdi_sms(nnz_sms),stat=stat)
5752 IF(stat/=0) THEN
5753 CALL ancmsg(msgid=268,anmode=aninfo,
5754 . msgtype=msgerror,
5755 . c1='JDI_SMS')
5757 ENDIF
5758 ALLOCATE(
jsm_sms(nnz_sms),stat=stat)
5759 IF(stat/=0) THEN
5760 CALL ancmsg(msgid=268,anmode=aninfo,
5761 . msgtype=msgerror,
5762 . c1='JSM_SMS')
5764 ENDIF
5765
5771 6
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5772 7 ipartp ,ipartr ,ipartg ,ipartx ,
5778
5779 DEALLOCATE(kinwork)
5780 DEALLOCATE(t2main_sms)
5782
5783
5784 IF((isms_selec >= 2).AND.(nnz_sms == 0)) isms_selec = 0
5785
5786 END IF
5787
5788 END IF
5789
5790 nelem = numelc+numeltg+numels+numelr
5791 + + numelp+numelt+numelq+numelx+numelig3d
5792
5793
5794 ALLOCATE(
ielem21(nelem),stat=stat)
5795 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5796 . msgtype=msgerror,
5797 . c1='IELEM21')
5799
5800 err_msg='DOMAIN DECOMPOSITION'
5801 err_category='DOMAIN DECOMPOSITION'
5802 CALL trace_in1(err_msg,len_trim(err_msg))
5803 IF(iddlevel==1) THEN
5804 ngroup = 0
5805 lbufel = 0
5806 segindx=0
5807
5808
5810
5811 DO i=1,numnod
5814 ENDIF
5815 ENDDO
5816
5817
5818
5819 ELSEIF(iddlevel==0) THEN
5820 IF(nelem+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX+slcfield>0) THEN
5821 scep = nelem+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp+number_load_cyl
5822 scel = nelem+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp+number_load_cyl
5823 ALLOCATE(cep(scep))
5824 ALLOCATE(cel(scel))
5825 ELSE
5826 scep = 1
5827 scel = 1
5828 ALLOCATE(cep(scep))
5829 ALLOCATE(cel(scel))
5830 ENDIF
5831 ENDIF
5832 emax =
max(numelc,numeltg,numels,numelr,
5833 . numelp,numelt,numelq,numelx,numelig3d)
5834 k1 = 1
5835 k2 = k1+emax
5836 k3 = k2+emax
5837 k4 = k3+2*emax
5838 k5 = k4+2*emax
5839 k6 = k5 + nelem
5840 k7 = k6 + nelem
5841 k8 = k7 + nelem
5842
5843 ldd_iad = ((nelem+numsph)/nvsiz/2)*(nspmd+1)
5844 ALLOCATE(dd_tmp(ldd_iad) ,stat=stat)
5845 dd_tmp = 0
5846 idx = 1
5847
5848 ALLOCATE(iwork(k8) ,stat=stat)
5849 IF(emax>0) THEN
5850 itri1 => iwork(1:k2)
5851 itri2 => iwork(k2+1:k3)
5852 index1 => iwork(k3+1:k4)
5853 index2 => iwork(k4+1:k5)
5854 ELSE
5855 itri1 => iwork
5856 itri2 => iwork
5857 index1 => iwork
5858 index2 => iwork
5859 END IF
5860 IF(nelem>0) THEN
5861 inum => iwork(k5+1:k6)
5862 iwd => iwork(k6+1:k7)
5863 iweig => iwork(k7+1:k8)
5864 ELSE
5865 inum => iwork
5866 iwd => iwork
5867 iweig => iwork
5868 END IF
5869
5870 IF(.NOT.ALLOCATED(inter_cand%IXINT)) ALLOCATE(inter_cand%IXINT(inter_cand%S_IXINT_1,inter_cand%S_IXINT_2))
5871 IF(.NOT.
ALLOCATED(
npby))
ALLOCATE(
npby(0))
5872 IF(.NOT.
ALLOCATED(
lpby))
ALLOCATE(
lpby(0))
5873 IF(.NOT. ALLOCATED( rby)) ALLOCATE( rby(0))
5874
5878 3 itri1 ,itri2 ,index1 ,index2 ,inum ,
5879 4 iwd ,iwcont ,nelem ,iddlevel,nelemint ,
5880 5 inter_cand,pm ,x ,
kxx ,
ixx ,
5881 6 addcne ,
igeo ,eani ,iwcin2 ,dsdof ,
5882 7 isoloff ,isheoff ,itrioff ,itruoff ,ipouoff ,
5886 2 poin_ump_old,tab_ump_old,cputime_mp_old,
5887 3 nsnt, nmnt_2,tabmp_l,iquaoff,
5890 6 poin_part_shell,poin_part_tri,poin_part_sol,
5891 7 mid_pid_shell,mid_pid_tri,mid_pid_sol,t_monvol,
5892 8 ebcs_tag_cell_spmd,
npby,
lpby,mat_elem%MAT_PARAM)
5893
5894 DEALLOCATE(iwork)
5895
5896
5897
5898 IF(numsph > 0)THEN
5899 IF(iddlevel==0) THEN
5900 ALLOCATE(cepsp(numsph),stat=stat)
5901 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5902 . msgtype=msgerror,
5903 . c1='CEPSP')
5904
5905 ALLOCATE(celsph(numsph),stat=stat)
5906 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5907 . msgtype=msgerror,
5908 . c1='CELSPH')
5909 END IF
5910
5913 ELSE
5914 IF(iddlevel==0) ALLOCATE(celsph(1))
5915 IF(.NOT.(ALLOCATED(cepsp))) ALLOCATE(cepsp(0),stat=stat)
5916 END IF
5917
5918
5919
5920 IF(nlaser>0) THEN
5922 ENDIF
5923 off = 1
5925
5926
5927
5928 err_msg='ELEMENTS GROUPS'
5929 err_category='ELEM/PROP/MAT COMPATIBILITY'
5930 CALL trace_in1(err_msg,len_trim(err_msg))
5931
5932 numelck8 = numelc
5933 numeltgk8 = numeltg
5934 numelsk8 = numels
5935 numelrk8 = numelr
5936 numelpk8 = numelp
5937 numeltk8 = numelt
5938 numelqk8 = numelq
5939 numelxk8 = numelx
5940 numelig3dk8 = numelig3d
5941 numsphk8 = numsph
5942
5943 emax =
max(24*numelck8,25*numeltgk8+1,30*numelsk8+1,19*numelrk8,
5944 . 19*numelpk8+1,17*numeltk8,19*numelqk8,
5945 . 15*numelxk8+1,24*numelig3dk8+1,numsphk8) + 1
5946
5947 ALLOCATE(ipargtmp(nparg,numel) ,stat=stat)
5948 ipargtmp = 0
5949 ALLOCATE(iwork(emax) ,stat=stat)
5950 IF(stat /= 0) THEN
5952 . msgtype=msgerror,
5953 . anmode=anstop,
5954 . c1='IPARG')
5955 ENDIF
5956
5957 IF(iddlevel == 0)
CALL m20dcod(mlaw_tag,
ipm, pm, mat_elem%MAT_PARAM)
5958
5959
5960
5961 nspgroup = 0
5962
5963 lb_max = 0
5964
5965 WRITE(istdo,'(A)')titre(37)
5966
5967
5968
5969 ngr_sol = 0
5970 IF(numels/=0) THEN
5971 k0 = 1
5972 k1 = k0 + numels*16
5973 k2 = k1 + numels
5974 k3 = k2 + numels+1
5975 k4 = k3 + numels*2
5976 k5 = k4 + numels*8
5977
5978 k6 = k5 + numels
5979
5980
5981 iwork = 0
5982 inum => iwork(1:k1)
5983 itri1 => iwork(k1+1:k2)
5984 eadd => iwork(k2+1:k3)
5985 index1 => iwork(k3+1:k4)
5986 itri2 => iwork(k4+1:k5)
5987 itri3 => iwork(k5+1:k6)
5988
5989
5991 1
ixs ,pm ,geo ,inum ,bid13 ,
5992 2 itri1 ,eadd ,index1 ,itri2 ,iparts ,
5994 4 cep(off),itri3 ,ixs10 ,ixs20 ,ixs16 ,
5998 8 rnoise(1,
min(srnoise2,numelc+numeltg+1)),
5999 9 damp_range_part)
6000
6001
6002
6003
6004 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6005 ALLOCATE(dd_tmp2(idx-1))
6006 DO i = 1, idx-1
6007 dd_tmp2(i)=dd_tmp(i)
6008 END DO
6009 DEALLOCATE(dd_tmp)
6010 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6011 DO i = 1, idx-1
6012 dd_tmp(i)=dd_tmp2(i)
6013 END DO
6014 DEALLOCATE(dd_tmp2)
6015 END IF
6016
6017 grsol_id1 = ngroup
6019 1
ixs ,pm ,ipargtmp ,geo ,
6020 2 eadd ,nd ,iparts ,dd_tmp(idx),
6021 3 idx ,eani ,inum ,index1 ,
6023 5 ixs20 ,ixs16 ,
igeo ,iddlevel,
6026 8
iflag_bpreload, clusters ,mat_elem%MAT_PARAM ,rnoise(1,
min(srnoise2,numelc+numeltg+1)),
6027 9 ipri ,damp_range_part)
6028 grsol_id2 = ngroup
6029 ngr_sol = grsol_id2 - grsol_id1
6030
6031 off = off + numels
6032
6033 DO i=1,numels
6036 ENDDO
6037
6038
6042 ENDIF
6043
6044
6045
6046
6047 IF(numelq/=0) THEN
6048 k1 = 9*numelq
6049 k2 = 10*numelq
6050 k3 = 11*numelq+1
6051 k4 = 13*numelq+1
6052 k5 = 18*numelq+1
6053 k6 = 19*numelq+1
6054
6055
6056 iwork = 0
6057 inum => iwork(1:k1)
6058 itr1 => iwork(k1+1:k2)
6059 eadd => iwork(k2+1:k3)
6060 index1 => iwork(k3+1:k4)
6061 itri1 => iwork(k4+1:k5)
6062 xep => iwork(k5+1:k6)
6063
6065 1
ixq ,pm ,geo ,inum ,bid13 ,
6066 2 itr1 ,eadd ,index1 ,itri1 ,ipartq ,
6069
6070
6071
6072
6073 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6074 ALLOCATE(dd_tmp2(idx-1))
6075 DO i = 1, idx-1
6076 dd_tmp2(i)=dd_tmp(i)
6077 END DO
6078 DEALLOCATE(dd_tmp)
6079 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6080 DO i = 1, idx-1
6081 dd_tmp(i)=dd_tmp2(i)
6082 END DO
6083 DEALLOCATE(dd_tmp2)
6084 END IF
6085
6087 1
ixq ,pm ,ipargtmp ,geo ,
6088 2 eadd ,nd ,dd_tmp(idx),idx ,
6089 3 inum ,index1 ,cep(off) ,ipartq ,
6092 off = off + numelq
6093 ENDIF
6094
6095
6096
6097 IF(numelc/=0) THEN
6098
6099
6100
6101 k0 = 1
6102 k1 = 9*numelc
6103 k2 = 11*numelc
6104 k3 = 12*numelc+1
6105 k4 = 14*numelc+1
6106 k5 = 22*numelc+1
6107 k6 = 23*numelc+1
6108 k7 = 24*numelc+1
6109
6110
6111 iwork = 0
6112 inum => iwork(1:k1)
6113 itr1 => iwork(k1+1:k1+numelc)
6114 itr2 => iwork(k1+numelc+1:k2)
6115 eadd => iwork(k2+1:k3)
6116 index1 => iwork(k3+1:k4)
6117 itri1 => iwork(k4+1:k5)
6118 xep => iwork(k5+1:k6)
6119 ALLOCATE(xnum(numelc) ,stat=stat)
6120 xnum = zero
6121
6123 1
ixc ,pm ,geo ,inum ,bid13 ,
6124 2 itr1 ,eadd ,index1 ,itri1 ,xnum ,
6129 7 stack ,drape ,rnoise ,sh4ang,drapeg, ptshel,
6130 8 damp_range_part)
6131
6132
6133
6134
6135
6136 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6137 ALLOCATE(dd_tmp2(idx-1))
6138 DO i = 1, idx-1
6139 dd_tmp2(i)=dd_tmp(i)
6140 END DO
6141 DEALLOCATE(dd_tmp)
6142 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6143 DO i = 1, idx-1
6144 dd_tmp(i)=dd_tmp2(i)
6145 END DO
6146 DEALLOCATE(dd_tmp2)
6147 END IF
6148
6149
6151 1
ixc ,pm ,ipargtmp ,geo ,
6152 2 eadd ,nd ,ipartc ,dd_tmp ,
6153 3 idx ,inum ,itr1 ,
6154 4 index1 ,cep(off) ,thke ,xnum ,
6158 8 stack ,drape ,rnoise ,mat_elem%MAT_PARAM,
6159 9 sh4ang, iddlevel , drapeg,ipri, ptshel,damp_range_part)
6160
6161 off = off + numelc
6162
6163 DO i=1,numelc
6166 ENDDO
6167
6168 DEALLOCATE(xnum)
6169 ENDIF
6170
6171 IF(numelt/=0) THEN
6172 k1 = 7*numelt
6173 k2 = 8*numelt
6174 k3 = 9*numelt+1
6175 k4 = 11*numelt+1
6176 k5 = 16*numelt+1
6177 k6 = 17*numelt+1
6178
6179
6180 iwork = 0
6181 inum => iwork(1:k1)
6182 itr1 => iwork(k1+1:k2)
6183 eadd => iwork(k2+1:k3)
6184 index1 => iwork(k3+1:k4)
6185 itri1 => iwork(k4+1:k5)
6186 xep => iwork(k5+1:k6)
6187
6189 1
ixt ,pm ,geo ,inum ,bid13 ,
6190 2 itr1 ,eadd ,index1 ,itri1 ,
6192 4 cep(off),xep ,itruoff,
6194
6195
6196
6197
6198 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6199 ALLOCATE(dd_tmp2(idx-1))
6200 DO i = 1, idx-1
6201 dd_tmp2(i)=dd_tmp(i)
6202 END DO
6203 DEALLOCATE(dd_tmp)
6204 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6205 DO i = 1, idx-1
6206 dd_tmp(i)=dd_tmp2(i)
6207 END DO
6208 DEALLOCATE(dd_tmp2)
6209 END IF
6210
6212 1
ixt ,ipargtmp,pm ,geo ,
6213 2 eadd ,nd ,dd_tmp ,idx ,
6214 3 inum ,index1 ,cep(off) ,ipartt ,
6217 6 preload_a,npreload_a)
6218 off = off + numelt
6219 ENDIF
6220
6221
6222 IF(numelp > 0) THEN
6223 k1 = 9*numelp
6224 k2 = 10*numelp
6225 k3 = 11*numelp+1
6226 k4 = 13*numelp+1
6227 k5 = 18*numelp+1
6228 k6 = 19*numelp+1
6229
6230
6231 iwork = 0
6232 inum => iwork(1:k1)
6233 itr1 => iwork(k1+1:k2)
6234 eadd => iwork(k2+1:k3)
6235 index1 => iwork(k3+1:k4)
6236 itri1 => iwork(k4+1:k5)
6237 xep => iwork(k5+1:k6)
6238
6239 ALLOCATE(xnum(3*numelp) ,stat=stat)
6240 xnum(1:3*numelp) = zero
6241
6243 1
ixp ,pm ,geo ,inum ,
6244 2 itr1 ,eadd ,index1 ,itri1 ,ipartp ,
6247 5 itagprld_beam,ibeam_vector,rbeam_vector,xnum)
6248
6249
6250
6251
6252 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6253 ALLOCATE(dd_tmp2(idx-1))
6254 DO i = 1, idx-1
6255 dd_tmp2(i)=dd_tmp(i)
6256 END DO
6257 DEALLOCATE(dd_tmp)
6258 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6259 DO i = 1, idx-1
6260 dd_tmp(i)=dd_tmp2(i)
6261 END DO
6262 DEALLOCATE(dd_tmp2)
6263 END IF
6264
6266 1
ixp ,ipargtmp,pm ,geo ,
6267 2 eadd ,nd ,dd_tmp ,idx ,
6268 3 inum ,index1 ,cep(off) ,ipartp ,
6271 6
nod2el1d, ipri ,itagprld_beam,preload_a,
6272 7 npreload_a,ibeam_vector,rbeam_vector,xnum)
6273
6274 off = off + numelp
6275
6276 DEALLOCATE(xnum)
6277 ENDIF
6278
6279
6280
6281 IF(numelr/=0) THEN
6282 k1 = 9*numelr
6283 k2 = 10*numelr
6284 k3 = 11*numelr+1
6285 k4 = 13*numelr+1
6286 k5 = 18*numelr+1
6287 k6 = 19*numelr+1
6288
6289
6290 iwork = 0
6291 inum => iwork(1:k1)
6292 itr1 => iwork(k1+1:k2)
6293 eadd => iwork(k2+1:k3)
6294 index1 => iwork(k3+1:k4)
6295 itri1 => iwork(k4+1:k5)
6296 xep => iwork(k5+1:k6)
6297
6299 1
ixr ,geo ,inum ,bid13 ,
igeo ,
6300 2 itr1 ,eadd ,index1 ,itri1 ,
6302 5 cep(off),xep ,iresoff,
6304
6305
6306
6307
6308 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6309 ALLOCATE(dd_tmp2(idx-1))
6310 DO i = 1, idx-1
6311 dd_tmp2(i)=dd_tmp(i)
6312 END DO
6313 DEALLOCATE(dd_tmp)
6314 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6315 DO i = 1, idx-1
6316 dd_tmp(i)=dd_tmp2(i)
6317 END DO
6318 DEALLOCATE(dd_tmp2)
6319 END IF
6320
6322 1
ixr ,ipargtmp ,geo ,eadd ,
igeo ,
6323 2 nd ,dd_tmp ,idx ,inum ,
6324 3 index1 ,cep(off) ,ipartr ,itr1 ,
6326 5
ipm , clusters,r_skew,ipri ,itagprld_spring,
6327 6 preload_a,npreload_a)
6328 off = off + numelr
6329 ENDIF
6330
6331 IF(numeltg/=0) THEN
6332
6333
6334
6335 k1 = 10*numeltg
6336 k2 = 12*numeltg
6337 k3 = 13*numeltg+1
6338 k4 = 15*numeltg+1
6339 k5 = 23*numeltg+1
6340 k6 = 24*numeltg+1
6341 k7 = 25*numeltg+1
6342 k8 = 26*numeltg+1
6343
6344
6345 iwork = 0
6346 inum => iwork(1:k1)
6347 itr1 => iwork(k1+1:k2)
6348 eadd => iwork(k2+1:k3)
6349 index1 => iwork(k3+1:k4)
6350 itri1 => iwork(k4+1:k5)
6351 xep => iwork(k5+1:k6)
6352
6353 ALLOCATE(xnum(numeltg) ,stat=stat)
6354 xnum = zero
6355
6356 IF(numeltg6>0) THEN
6358 ENDIF
6359 IF(n2d==0)THEN
6361 1
ixtg ,pm ,geo ,inum ,bid13 ,
6362 2 itr1 ,eadd ,index1 ,itri1 ,xnum ,
6364 4 cep(off),xep ,
ixtg1 ,eanit ,
6367 7 iworksh , stack ,drape ,rnoise(1,
min(srnoise2,numelc+1)),
6368 8 multi_fvm , sh3ang,drapeg,ptsh3n,mat_elem%MAT_PARAM,
6369 9 damp_range_part)
6370 ELSE
6372 1
ixtg ,pm ,geo ,inum ,bid13 ,
6373 2 itr1 ,eadd ,index1 ,itri1 ,xnum ,
6375 4 cep(off),xep ,
ixtg1 ,eanit ,
6378 7 iworksh , stack ,drape ,rnoise(1,
min(srnoise2,numelc+1)),
6379 8 multi_fvm ,sh3ang,drapeg,ptsh3n)
6380 ENDIF
6381
6382
6383
6384
6385 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6386 ALLOCATE(dd_tmp2(idx-1))
6387 DO i = 1, idx-1
6388 dd_tmp2(i)=dd_tmp(i)
6389 END DO
6390 DEALLOCATE(dd_tmp)
6391 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6392 DO i = 1, idx-1
6393 dd_tmp(i)=dd_tmp2(i)
6394 END DO
6395 DEALLOCATE(dd_tmp2)
6396 END IF
6397
6398 IF(n2d==0)THEN
6400 1
ixtg ,pm ,ipargtmp ,geo ,
6401 2 eadd ,nd ,ipartg ,dd_tmp ,
6402 3 idx ,inum ,index1 ,cep(off) ,
6407 8 drape ,rnoise(1,
min(srnoise2,numelc+1)) ,
6408 9 mat_elem%MAT_PARAM,sh3ang,drapeg,ipri ,ptsh3n,damp_range_part)
6409 ELSE
6411 1
ixtg ,pm ,ipargtmp ,geo ,
6412 2 eadd ,nd ,ipartg ,dd_tmp ,
6413 3 idx ,inum ,index1 ,cep(off) ,
6418 8 drape ,rnoise(1,
min(srnoise2,numelc+1)) ,
inivol,
6419 9 mat_elem%MAT_PARAM,sh3ang ,drapeg,ipri,ptsh3n)
6420 ENDIF
6421 off = off + numeltg
6422 DO i=1,numeltg
6425 ENDDO
6426
6427 DEALLOCATE(xnum)
6428 ENDIF
6429
6431
6432
6433 IF(numsph/=0) THEN
6434 if ( .NOT. ALLOCATED(ixsps) ) ALLOCATE(ixsps(kvoisph,numsph),stat=stat)
6435 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6436 . msgtype=msgerror,
6437 . c1='IXSPS')
6438
6439 iwork = 0
6440 eadd => iwork(1:numsph+1)
6442 2 ipartsp ,eadd ,cepsp ,nd ,
ipm ,
6445
6446
6447
6448
6449 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6450 ALLOCATE(dd_tmp2(idx-1))
6451 DO i = 1, idx-1
6452 dd_tmp2(i)=dd_tmp(i)
6453 END DO
6454 DEALLOCATE(dd_tmp)
6455 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6456 DO i = 1, idx-1
6457 dd_tmp(i)=dd_tmp2(i)
6458 END DO
6459 DEALLOCATE(dd_tmp2)
6460 END IF
6461
6463 2 ipartsp ,eadd ,nd ,cepsp,dd_tmp ,
6467 6 ixsps)
6468 IF (ALLOCATED(ixsps)) DEALLOCATE(ixsps)
6469 ENDIF
6470
6471 IF(numelx>0) THEN
6472
6473 k1=6*numelx
6474 k2=k1+numelx
6475 k3=k2+numelx+1
6476 k4=k3+numelx*2
6477 k5=k4+numelx*4
6478 k6=k5+numelx
6479
6480
6481 iwork = 0
6482 inum => iwork(1:k1)
6483 itr1 => iwork(k1+1:k2)
6484 eadd => iwork(k2+1:k3)
6485 index1 => iwork(k3+1:k4)
6486 itri1 => iwork(k4+1:k5)
6487 xep => iwork(k5+1:k6)
6488
6490 1
kxx, geo, inum, itr1,
6491 2 eadd, index1, itri1, ipartx,
6493 4 cep(off), xep,
ipm)
6494
6495
6496
6497
6498 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6499 ALLOCATE(dd_tmp2(idx-1))
6500 DO i = 1, idx-1
6501 dd_tmp2(i)=dd_tmp(i)
6502 END DO
6503 DEALLOCATE(dd_tmp)
6504 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6505 DO i = 1, idx-1
6506 dd_tmp(i)=dd_tmp2(i)
6507 END DO
6508 DEALLOCATE(dd_tmp2)
6509 END IF
6510
6512 1
kxx ,ipargtmp ,geo ,eadd ,
6513 2 nd ,dd_tmp ,idx ,lb_max ,inum ,
6514 3 index1 ,cep(off) ,ipartx ,itr1 ,
igrsurf ,
6516 off = off + numelx
6517 ENDIF
6519
6520
6521
6542
6543
6544 CALL trace_in1(err_msg,len_trim(err_msg))
6545 IF(numelig3d>0) THEN
6546
6547 k1=(nixig3d+1)*numelig3d
6548 k2=k1+numelig3d
6549 k3=k2+numelig3d+1
6550 k4=k3+numelig3d*2
6551 k5=k4+numelig3d*4
6552 k6=k5+numelig3d
6553
6554 iwork = 0
6555 inum => iwork(1:k1)
6556 itr1 => iwork(k1+1:k2)
6557 eadd => iwork(k2+1:k3)
6558 index1 => iwork(k3+1:k4)
6559 itri1 => iwork(k4+1:k5)
6560 xep => iwork(k5+1:k6)
6561
6563 1
kxig3d ,geo ,inum ,itr1 ,eadd ,
6564 2 index1 ,itri1 ,ipartig3d ,nd ,
igrsurf ,
6565 3 cep(off) ,xep ,
igeo ,
6567
6568
6569
6570
6571 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6572 ALLOCATE(dd_tmp2(idx-1))
6573 DO i = 1, idx-1
6574 dd_tmp2(i)=dd_tmp(i)
6575 END DO
6576 DEALLOCATE(dd_tmp)
6577 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6578 DO i = 1, idx-1
6579 dd_tmp(i)=dd_tmp2(i)
6580 END DO
6581 DEALLOCATE(dd_tmp2)
6582 END IF
6583
6585 1
kxig3d ,ipargtmp ,geo ,eadd ,nd ,
6586 2 dd_tmp ,idx ,lb_max ,inum ,index1 ,
6587 3 cep(off) ,ipartig3d ,itr1 ,
igrsurf ,
6589 5 pm ,
nige ,knotlocel, mat_elem%MAT_PARAM)
6590 off = off + numelig3d
6591 ENDIF
6592 DEALLOCATE(iwork)
6594
6595
6596
6597
6598 err_msg='REFERENCE METRICS'
6599 err_category='REFERENCE METRICS'
6600 CALL trace_in1(err_msg,len_trim(err_msg))
6601
6602 xyzref = x
6603
6604 IF(iddlevel==0)THEN
6605
6606 IF(nxref > 0 .OR. neref > 0 .OR. irefsta > 0) THEN
6607 ALLOCATE(xrefc(4,3,numelc))
6608 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6609 . msgtype=msgerror,c1='XREFC')
6610 ALLOCATE(xreftg(3,3,numeltg))
6611 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6612 . msgtype=msgerror,c1='XREFTG')
6613 ALLOCATE(xrefs(8,3,numels8))
6614 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6615 . msgtype=msgerror,c1='XREFS')
6616 ALLOCATE(tagxref(numnod))
6617 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6618 . msgtype=msgerror,c1='TAGXREF')
6619 ALLOCATE(tagrefsta(numnod))
6620 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6621 . msgtype=msgerror,c1='TAGREFSTA')
6622 ELSE
6623 ALLOCATE(xrefc(1,1,1))
6624 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6625 . msgtype=msgerror,c1='XREFC')
6626 ALLOCATE(xreftg(1,1,1))
6627 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6628 . msgtype=msgerror,c1='XREFTG')
6629 ALLOCATE(xrefs(1,1,1))
6630 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6631 . msgtype=msgerror,c1='XREFS')
6632 ALLOCATE(tagxref(1))
6633 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6634 . msgtype=msgerror,c1='TAGXREF')
6635 ALLOCATE(tagrefsta(1))
6636 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6637 . msgtype=msgerror,c1='TAGREFSTA')
6638 ENDIF
6639 ENDIF
6640
6641 tagxref = 0
6642 tagrefsta = 0
6643
6644 IF(nxref > 0) THEN
6645 WRITE(istdo,'(A)')' .. REFERENCE STATE (XREF)'
6648 . xrefc ,xreftg ,xrefs ,rtrans ,lsubmodel ,
6649 . tagxref ,iddlevel ,eani ,
ipm ,
igeo )
6650 ENDIF
6651 IF(irefsta > 0) THEN
6652 WRITE(istdo,'(A)')' .. REFERENCE STATE (REFSTA)'
6654 . xyzref ,xrefc ,xreftg ,xrefs ,tagxref ,
6655 . iddlevel,tagrefsta )
6656
6657 IF(iddlevel==0 .AND. ((ninter > 0).OR.(isms == 1))) THEN
6658 rewind(iin6)
6659 ELSE
6660 IF(ipid /= 0) CLOSE(iin6)
6661 irefsta = 0
6662
6663 nxref = 1
6664 ENDIF
6665 ENDIF
6666 IF(neref > 0 ) THEN
6667 WRITE(istdo,'(A)')' .. REFERENCE STATE (EREF)'
6670 . xreftg ,xrefs ,lsubmodel,iddlevel,
itab ,
6671 . tagxref ,tagrefsta )
6672
6673 IF(iddlevel ==1 .OR. ((ninter == 0).AND.(isms == 0))) nxref = 1
6674 ENDIF
6675
6676
6677 multi_fvm%IS_ASSOCIATED_TO_A_PART = .false.
6678 DO ng=1,ngroup
6679 mlw = ipargtmp(1,ng)
6680 IF(mlw == 151)THEN
6681 multi_fvm%IS_ASSOCIATED_TO_A_PART = .true.
6682 EXIT
6683 ENDIF
6684 ENDDO
6685
6686
6687 multi_fvm%ARE_ALL_PARTS_151 = .true.
6688 nb_euler_groups = 0
6689 DO ng=1,ngroup
6690 mlw = ipargtmp(1,ng)
6691 is_euler = ipargtmp(11,ng)
6692 IF(is_euler == 1 ) nb_euler_groups=nb_euler_groups+1
6693 IF(mlw /= 151 .AND. is_euler == 1)THEN
6694 multi_fvm%ARE_ALL_PARTS_151 = .false.
6695 EXIT
6696 ENDIF
6697 ENDDO
6698 IF(nb_euler_groups == 0)multi_fvm%ARE_ALL_PARTS_151 = .false.
6699
6700
6701 siparg = nparg*ngroup
6703 ALLOCATE(
iparg(siparg) ,stat=stat)
6704 DO j=1,nparg
6705 DO i=1,ngroup
6706 iparg((i-1)*nparg + j) = ipargtmp(j,i)
6707 ENDDO
6708 ENDDO
6709 DEALLOCATE(ipargtmp)
6710
6711
6712 IF(isms/=0)THEN
6713 DO n=1,ngroup
6714 iparg(nparg*(n-1)+52)=1
6715 END DO
6716 END IF
6717 nbr_gpmp = ngroup
6718
6719
6720
6721
6722
6723 call fractal_elem_renum(fail_fractal,numelc,numeltg)
6724
6725
6726
6727
6728 if (iddlevel==1)
call brokmann_elem_renum(
fail_brokmann,numelc,numeltg)
6729
6730
6731
6732 IF(ALLOCATED(group_param_tab)) DEALLOCATE(group_param_tab)
6733 ALLOCATE(group_param_tab(ngroup) ,stat=stat)
6734
6736 .
ipm ,
igeo ,pm ,geo ,bufmat )
6737
6739
6740
6741
6742 IF(numels10>0) THEN
6743 IF(ALLOCATED(itagnd)) DEALLOCATE(itagnd)
6744 ALLOCATE(itagnd(numnod),stat=stat)
6745 itagnd(1:numnod)=0
6747 IF(ns10e>0) THEN
6748 IF(ALLOCATED(icnds10)) DEALLOCATE(icnds10)
6749 ALLOCATE(icnds10(3*ns10e),stat=stat)
6750 icnds10(1:3*ns10e)=0
6751 itagnd(1:numnod)=0
6753 IF(ipari0/=0)
CALL reord_icnd(icnds10, itagnd)
6755 . itagnd,icnds10,
itab,ipri,numnod,ns10e)
6756 END IF
6757 ELSE
6758 IF(ALLOCATED(itagnd)) DEALLOCATE(itagnd)
6759 ALLOCATE(itagnd(0),stat=stat)
6760 END IF
6761
6762
6763
6764
6765
6766 err_msg='DOMAIN DECOMPOSITION ARRAYS'
6767 err_category='DOMAIN DECOMPOSITION'
6768 CALL trace_in1(err_msg,len_trim(err_msg))
6769 sdd_iad = (nspmd+1)*nspgroup
6770 ALLOCATE(
dd_iad(sdd_iad) ,stat=stat)
6775 3 x ,dd_tmp ,ixs10 ,ixs20 ,
6778
6779 DEALLOCATE(dd_tmp)
6781
6782
6783
6784 err_msg='MULTIDOMAINS'
6785 err_category='MULTIDOMAINS'
6786 IF((nsubdom>0).AND.(iddom==0).AND.(flg_r2r_err==0)) THEN
6787 WRITE(istdo,'(A)')' .. MULTIDOMAINS DOMDEC SYNCHRONIZATION '
6789 ENDIF
6790
6791
6792
6793 err_msg='ELEMENT BUFFER ALLOCATION'
6794 err_category='INTERNAL'
6795 CALL trace_in1(err_msg,len_trim(err_msg))
6796 selbuf = lbufel
6797 ALLOCATE(elbuf(selbuf) ,stat=stat)
6798 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6799 . msgtype=msgerror,
6800 . c1='ELBUF')
6801 elbuf = zero
6803
6804
6805
6806 err_msg='GRAVITY'
6807 err_category='GRAVITY'
6808 CALL trace_in1(err_msg,len_trim(err_msg))
6809
6811 sigrv = nigrv*ngrav
6812 slgrav = numgrav
6813 IF(iddlevel==0)THEN
6814 ALLOCATE(
igrv(sigrv) ,stat=stat)
6815 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6816 . msgtype=msgerror,
6817 . c1='IGRV')
6818 ALLOCATE(
lgrav(slgrav) ,stat=stat)
6819 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6820 . msgtype=msgerror,
6821 . c1='LGRAV')
6822 END IF
6826 . itagnd ,lsubmodel)
6828
6829
6830
6831 err_msg='INIGRAV'
6832 err_category='GRAVITY'
6833 CALL trace_in1(err_msg,len_trim(err_msg))
6834 IF(ninigrav > 0) sinigrav = ninigrav
6835 IF(iddlevel == 0) THEN
6836 ALLOCATE(
inigrv(04,sinigrav) ,stat=stat)
6837 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6838 . msgtype=msgerror,
6839 . c1='INIGRV')
6840 ALLOCATE(linigrav(11,sinigrav) ,stat=stat)
6841 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6842 . msgtype=msgerror,
6843 . c1='LINIGRAV')
6844 END IF
6845 IF(ninigrav > 0) THEN
6846 IF(iddlevel == 0) THEN
6848 WRITE(istdo,'(A)') ' .. INITIAL GRAVITY LOADING'
6851 . itagnd ,
igrsurf ,tf ,bufsf ,lsubmodel)
6852 ENDIF
6853 ENDIF
6855
6856
6857
6858 err_msg = 'INIMAP1D'
6859 err_category= 'INITIALIZATION'
6860 CALL trace_in1(err_msg,len_trim(err_msg))
6861
6862 IF(iddlevel==0 .AND. ninimap1d+ninimap2d>0)WRITE(istdo,'(A)')titre(54)
6863
6864 IF(iddlevel==0)THEN
6865 ALLOCATE(inimap1d(ninimap1d))
6866 IF(ninimap1d > 0) THEN
6869 IF(.NOT. multi_fvm%IS_USED) THEN
6870 DO kk = 1, ninimap1d
6871 ALLOCATE(inimap1d(kk)%TAGNODE(numnod))
6872 inimap1d(kk)%TAGNODE(1:numnod) = 0
6873 ENDDO
6874 ENDIF
6875 ENDIF
6876 ENDIF
6878
6879
6880
6881 err_msg = 'INIMAP2D'
6882 err_category= 'INITIALIZATION'
6883 CALL trace_in1(err_msg,len_trim(err_msg))
6884 IF(iddlevel==0)THEN
6885 ALLOCATE(inimap2d(ninimap2d))
6886 IF(ninimap2d > 0) THEN
6889 IF(.NOT. multi_fvm%IS_USED) THEN
6890 DO kk = 1, ninimap2d
6891 ALLOCATE(inimap2d(kk)%TAGNODE(numnod))
6892 inimap2d(kk)%TAGNODE(1:numnod) = 0
6893 ENDDO
6894 ENDIF
6895 ENDIF
6896 ENDIF
6898
6899
6900
6901
6902 err_msg='LOAD FIELDS'
6903 err_category='LOAD FIELDS'
6904 CALL trace_in1(err_msg,len_trim(err_msg))
6905 IF(iddlevel == 0)THEN
6906
6907
6908 ALLOCATE(
icfield(sicfield) ,stat=stat)
6909 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'ICFIELD')
6910 ALLOCATE(
lcfield(slcfield) ,stat=stat)
6911 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LCFIELD')
6912 ALLOCATE(cfield(scfield) ,stat=stat)
6913 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'CFIELD')
6914
6917 IF(ALLOCATED(cfield )) cfield(:) = zero
6918
6919 IF(nloadc/=0)THEN
6922 . lsubmodel)
6923 END IF
6924
6925
6926 ALLOCATE(
iloadp(siloadp) ,stat=stat)
6927 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'ILOADP')
6928 ALLOCATE(
lloadp(slloadp) ,stat=stat)
6929 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LLOADP')
6930 ALLOCATE(loadp(sloadp) ,stat=stat)
6931 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LOADP')
6933 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'INTERLOADP')
6934 ALLOCATE(intgaploadp(nintloadp) ,stat=stat)
6935 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'INTGAPLOADP')
6936
6937 s_loadpinter = 0
6938 IF(nintloadp > 0) THEN
6939 s_loadpinter = ninter*nloadp_hyd
6941 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'KLOADPINTER')
6942 ALLOCATE(
loadpinter(s_loadpinter) ,stat=stat)
6943 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LOADPINTER')
6944 ALLOCATE(dgapint(ninter) ,stat=stat)
6945 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'DGAPINT')
6946 ALLOCATE(dgaploadint(s_loadpinter) ,stat=stat)
6947 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'DGAPLOADINT')
6948 ELSE
6951 ALLOCATE(dgapint(0))
6952 ALLOCATE(dgaploadint(0))
6953 ENDIF
6954
6955
6958 IF(ALLOCATED(loadp )) loadp(:) = zero
6962 IF(ALLOCATED( intgaploadp )) intgaploadp(:)=zero
6963 IF(ALLOCATED( dgapint )) dgapint(:)=zero
6964 IF(ALLOCATED( dgaploadint )) dgaploadint(:)=zero
6965
6966 numloadp=0
6967 nintloadp = 0
6968 nintloadp21 = 0
6969 IF(nloadp_f/=0)THEN
6972 END IF
6973 IF(pblast%NLOADP_B/=0)THEN
6977 . lsubmodel,rtrans)
6978 ENDIF
6979 IF(nloadp_hyd/=0)THEN
6984 . dgaploadint,s_loadpinter,pblast)
6985
6986 END IF
6987
6989 ENDIF
6991
6992
6993
6994 err_msg='RBE2'
6995 err_category='RBE2'
6996 CALL trace_in1(err_msg,len_trim(err_msg))
6998 IF(iddlevel==0)THEN
6999 ALLOCATE(
irbe2(sirbe2) ,stat=stat)
7000 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7001 . msgtype=msgerror,
7002 . c1='IRBE2')
7003 END IF
7004 IF(iddlevel==0)THEN
7005 ALLOCATE(
lrbe2(slrbe2) ,stat=stat)
7006 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7007 . msgtype=msgerror,
7008 . c1='LRBE2')
7009 END IF
7010 IF(sirbe2 > 0) THEN
7015 .
iskwn ,d ,iddlevel ,
nom_opt(lnopt1*inom_opt(13)+1),itagnd,
7016 . icnds10 ,lsubmodel)
7017 ENDIF
7018
7019
7021 DO i=1,ngrnod
7023 ENDDO
7024
7025
7026
7027
7029 err_msg='RBE3'
7030 err_category='RBE3'
7031 CALL trace_in1(err_msg,len_trim(err_msg))
7033 lxintd = 0
7034 slrbe3 = 2*slrbe3
7035 sfrbe3 = (3+1)*slrbe3
7036 IF(iddlevel==0)THEN
7037 ALLOCATE(
irbe3(sirbe3) ,stat=stat)
7038 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7039 . msgtype=msgerror,
7040 . c1='IRBE3')
7041 ALLOCATE(
lrbe3(slrbe3), frbe3(sfrbe3) ,stat=stat)
7042 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7043 . msgtype=msgerror,
7044 . c1='LRBE3')
7045 END IF
7046 IF(sirbe3 > 0) THEN
7049 frbe3 = zero
7052 .
nom_opt(lnopt1*inom_opt(14)+1),itagnd ,
7053 . grnod_uid,
unitab,lsubmodel)
7054 ENDIF
7055
7057
7059
7060
7061
7062
7063 dynain_data%DYNAIN_CHECK = 0
7065
7066
7067
7068
7070
7071
7072
7073 istr_24 = 0
7075
7076
7077
7078 err_msg='ELEMENTS DEACTIVATION'
7079 err_category='ELEMENTS DEACTIVATION'
7080 CALL trace_in1(err_msg,len_trim(err_msg))
7081 siactiv = lactiv*nactiv
7082 IF(iddlevel==0)THEN
7083 ALLOCATE(
iactiv(siactiv), factiv(lractiv*nactiv) ,stat=stat)
7084 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7085 . msgtype=msgerror, c1='IACTIV')
7086 END IF
7091
7092 sibmpc = nummpc + lmpc*3
7093 IF(iddlevel==0)THEN
7094 ALLOCATE(
ibmpc(sibmpc) ,stat=stat)
7095 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7096 . msgtype=msgerror,
7097 . c1='IBMPC')
7098 END IF
7100 IF(lmpc>0) THEN
7101 ibmpc2 =>
ibmpc(nummpc+1:nummpc+lmpc)
7102 ibmpc3 =>
ibmpc(nummpc+lmpc+1:nummpc+lmpc*2)
7103 ibmpc4 =>
ibmpc(nummpc+lmpc*2+1:sibmpc)
7104 ELSE
7108 END IF
7109
7110 skinet = numnod
7111 IF(iddlevel==0)THEN
7112 ALLOCATE(
kinet(skinet) ,stat=stat)
7113 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7114 . msgtype=msgerror,
7115 . c1='KINET')
7116 END IF
7118
7119 sipari = npari*ninter
7120 IF(iddlevel==0)THEN
7121 ALLOCATE(
ipari(sipari) ,stat=stat)
7122 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7123 . msgtype=msgerror,
7124 . c1='IPARI')
7125 END IF
7128
7129
7130
7131 err_msg='SOLID ELEMENTS FACES'
7132 err_category='SOLID ELEMENTS FACES'
7133 CALL trace_in1(err_msg,len_trim(err_msg))
7134 ALLOCATE(fastag(numels) ,stat=stat)
7135 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7136 . msgtype=msgerror,
7137 . c1='FASTAG')
7139 sfasolfr = 2*nfasolfr
7140 IF(iddlevel==0)THEN
7141 ALLOCATE(
fasolfr(sfasolfr),stat=stat)
7142 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7143 . msgtype=msgerror,
7144 . c1='FASOLFR')
7145 END IF
7147 DEALLOCATE(fastag)
7149
7150
7151
7152 err_msg='QUAD ELEMENTS SEGS'
7153 err_category='QUAD ELEMENTS SEGS'
7154 CALL trace_in1(err_msg,len_trim(err_msg))
7155 ALLOCATE(segtag(4*numelq) ,stat=stat)
7156 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7157 . msgtype=msgerror,
7158 . c1='SEGTAG')
7159 segtag(1:4*numelq) = 0
7161 ssegquadfr = 2*nsegquadfr
7162 IF(iddlevel==0)THEN
7163 ALLOCATE(
segquadfr(ssegquadfr),stat=stat)
7164 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7165 . msgtype=msgerror,
7166 . c1='SEGTAG')
7167 END IF
7169 DEALLOCATE(segtag)
7171
7172
7173
7174 err_msg='MPCS 2'
7175 err_category='MPCS'
7176 CALL trace_in1(err_msg,len_trim(err_msg))
7178 1 rbmpc ,
ibmpc ,ibmpc2 ,ibmpc3 ,ibmpc4 ,
7180 3 lag_nhf ,d ,ikine1lag,
7181 4
nom_opt(lnopt1*inom_opt(17)+1),itagnd,
7184
7185
7186
7187 IF(ALLOCATED(tagprt_fric)) DEALLOCATE(tagprt_fric)
7188 ALLOCATE(tagprt_fric(npart),stat=stat)
7189 tagprt_fric(1:npart) = 0
7190
7191
7192
7193
7194 iorthfricmax = 0
7195 npfricorth = 0
7196 IF(ninterfric > 0) THEN
7197
7198 IF(iddlevel == 0) ALLOCATE(intbuf_fric_tab(ninterfric), stat=stat)
7199
7200
7201 ALLOCATE(tabcoupleparts_fric_tmp(1),stat=stat)
7202 ALLOCATE(tabcoef_fric_tmp(1),stat=stat)
7203 ALLOCATE(ifricorth_tmp(1),stat=stat)
7204 ALLOCATE(lengrpf(npart),stat=stat)
7205 lengrpf(1:npart) = 0
7206
7207 leng = 0
7208 DO n=1,ngrpart
7210 ENDDO
7211
7212 flagf = 0
7213 nsetfrictot = 0
7214 coefslen = 0
7215 ngrpf = 0
7216 nsetmax = 0
7217
7220 2 tabcoupleparts_fric_tmp ,tabcoef_fric_tmp ,intbuf_fric_tab,nsetfrictot ,
7221 3 flagf ,coefslen , iorthfricmax ,ifricorth_tmp ,ngrpf ,
7222 4 lengrpf ,leng , nsetmax ,lsubmodel )
7223
7224 DEALLOCATE(tabcoupleparts_fric_tmp)
7225 DEALLOCATE(tabcoef_fric_tmp)
7226 DEALLOCATE(ifricorth_tmp)
7227
7228
7229 ALLOCATE(tabcoupleparts_fric_tmp(2*ninterfric*nsetmax),stat=stat)
7230 coefslen = ninterfric*(2*nsetmax+1)
7231 ALLOCATE(tabcoef_fric_tmp(8*coefslen),stat=stat)
7232 tabcoupleparts_fric_tmp(1:2*ninterfric*nsetmax) = 0
7233 tabcoef_fric_tmp(1:8*coefslen) = zero
7234
7235 ALLOCATE(ifricorth_tmp(ninterfric*nsetmax),stat=stat)
7236 ifricorth_tmp(1:ninterfric*nsetmax) = 0
7237
7238 flagf = 1
7239 nsetfrictot = 0
7240 coefslen = 0
7241 nsetmax = 0
7242
7245 2 tabcoupleparts_fric_tmp ,tabcoef_fric_tmp ,intbuf_fric_tab,nsetfrictot ,
7246 3 flagf ,coefslen , iorthfricmax ,ifricorth_tmp ,ngrpf ,
7247 4 lengrpf ,leng , nsetmax , lsubmodel )
7248
7249
7250
7251 coefslen = ninterfric*(2*nsetmax+1)
7252 ALLOCATE(nsetinit(ninterfric),stat=stat)
7253 ALLOCATE(tabparts_fric_tmp(2*ninterfric*nsetmax),stat=stat)
7254 nsetinit(1:ninterfric) = 0
7255 tabparts_fric_tmp(1:2*ninterfric*nsetmax) = 0
7256
7258 . tabcoupleparts_fric_tmp ,tabcoef_fric_tmp ,intbuf_fric_tab ,
7259 . tabparts_fric_tmp,nsetfrictot,nsetinit,iorthfricmax,ifricorth_tmp,
7260 . nsetmax )
7261
7262
7263
7265
7266
7268 . tabcoupleparts_fric_tmp ,tabcoef_fric_tmp,tabparts_fric_tmp ,
7269 . nsetinit ,ifricorth_tmp , intbuf_fric_tab )
7270
7271 DEALLOCATE(tabcoupleparts_fric_tmp)
7272 DEALLOCATE(tabcoef_fric_tmp)
7273 DEALLOCATE(tabparts_fric_tmp )
7274
7275 DEALLOCATE( nsetinit )
7276 DEALLOCATE(ifricorth_tmp)
7277 DEALLOCATE(lengrpf )
7278
7279
7280
7281 IF(iorthfricmax > 0) THEN
7282
7283 flagf = 0
7284 npfricorth = 0
7285
7286 IF(.NOT.ALLOCATED(pfricorth))ALLOCATE(pfricorth(npart),stat=stat)
7287 IF(.NOT.ALLOCATED(irepforth))ALLOCATE(irepforth(1),stat=stat)
7288 IF(.NOT.ALLOCATED(vforth))ALLOCATE(vforth(1),stat=stat)
7289 IF(.NOT.ALLOCATED(phiforth))ALLOCATE(phiforth(1),stat=stat)
7290
7291 pfricorth(1:npart) = 0
7292
7295 2 irepforth ,
iskwn ,phiforth ,vforth ,skew ,
7296 3 flagf ,tagprt_fric ,rtrans ,lsubmodel ,
unitab )
7297
7298 DEALLOCATE(irepforth,vforth,phiforth)
7299
7300 ALLOCATE(irepforth(npfricorth),stat=stat)
7301 ALLOCATE(vforth(3*npfricorth),stat=stat)
7302 ALLOCATE(phiforth(npfricorth),stat=stat)
7303
7304 irepforth(1:npfricorth) = 0
7305 vforth(1:3*npfricorth) = zero
7306 phiforth(1:npfricorth) = zero
7307
7308 flagf = 1
7311 2 irepforth ,
iskwn ,phiforth ,vforth ,skew ,
7312 3 flagf ,tagprt_fric ,rtrans ,lsubmodel ,
unitab )
7313 ENDIF
7314
7315 ELSEIF(iddlevel == 0) THEN
7316 ALLOCATE(intbuf_fric_tab(0))
7317 ENDIF
7318 IF(.NOT.ALLOCATED(pfricorth))ALLOCATE(pfricorth(0))
7319 IF(.NOT.ALLOCATED(irepforth))ALLOCATE(irepforth(1))
7320 IF(.NOT.ALLOCATED(vforth)) ALLOCATE(vforth(1))
7321 IF(.NOT.ALLOCATED(phiforth)) ALLOCATE(phiforth(1))
7322
7323
7324
7325
7326
7327 CALL ale_connectivity%ALE_CONNECTIVITY_INIT()
7328 IF(ale_connectivity%has_ne_connect) THEN
7329 CALL ale_connectivity%ALE_COMPUTE_CONNECTIVITY(numnod, numelq, numeltg, numels,
7330 . nixq, nixtg, nixs,
7332 ENDIF
7333 CALL ale_connectivity%ALE_COMPUTE_EE_CONNECTIVITY(pm,
igeo,
7334 . npropgi,numgeo, npropm, nummat , numnod, numelq, numeltg, numels, n2d,
7335 . iale , ieuler, glob_therm%ITHERM, ialelag,detonators%IS_SHADOWING_REQUIRED,
7336 . nixq , nixtg , nixs ,
7338
7339 IF(nsubdom > 0) THEN
7340
7341 IF(ale_euler == 0) THEN
7342 iale = 0
7343 ieuler = 0
7344 ENDIF
7345 ENDIF
7346
7347
7348
7349
7350
7351
7352
7353 CALL chk_shell_offset(
7354 . ngroup, nparg,
iparg, npropg,
7355 . numgeo, geo, defaults%SHELL%IOFFSET)
7356 IF (defaults%SHELL%IOFFSET>0) THEN
7357 IF (iddlevel == 0) THEN
7358 NULLIFY(x_c)
7359 IF (defaults%SHELL%IOFFSET==1) THEN
7360 ALLOCATE(itagoset(numelc+numeltg), stat=stat)
7361 itagoset = 0
7362 ALLOCATE(xyz(3*numnod), stat=stat)
7363 xyz(1:3*numnod) = x(1:3*numnod)
7364 x_c=>xyz
7365 ELSE
7366 ALLOCATE(itagoset(0), stat=stat)
7367 x_c=>x
7368 END IF
7369 CALL shell_offsetp(
7370 . ngroup, nparg,
iparg, npropg,
7371 . numgeo, geo, numelc, nixc,
7373 . numnod, x_c, thke, itagoset,
7374 . defaults%SHELL)
7375 END IF
7376 ELSEIF (iddlevel == 0) THEN
7377 NULLIFY(x_c)
7378 x_c=>x
7379 END IF
7380
7381
7382
7383
7384 err_msg='INTERFACES'
7385 err_category='INTERFACES'
7386 CALL trace_in1(err_msg,len_trim(err_msg))
7387 nintstamp=0
7388 nmnt = 0
7389 interfaces%PARAMETERS%ISTIF_DT = 0
7390
7391 probint=half
7392 interfaces%PARAMETERS%INT25_EROSION_SOLID = 0
7393
7394 IF(ninter == 0.AND.ninterfric > 0 )THEN
7396 . msgtype=msgwarning,
7397 . anmode=aninfo_blind_1)
7398 ENDIF
7399
7400 IF(ninter > 0)THEN
7401 IF(iddlevel == 0) THEN
7402 ALLOCATE(xfiltr(ninter) ,stat=stat)
7403 ALLOCATE(stfac(ninter) ,stat=stat)
7404 ALLOCATE(fric_p(10*ninter) ,stat=stat)
7405 ALLOCATE(
i2rupt(6*ninter) ,stat=stat)
7406 ALLOCATE(areasl(ninter) ,stat=stat)
7407 ALLOCATE(frigap(nparir*ninter),stat=stat)
7408 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7409 . msgtype=msgerror,
7410 . c1='XFILTR')
7411 END IF
7412 xfiltr = zero
7413 stfac = zero
7414 fric_p = zero
7415 frigap = zero
7417 areasl = zero
7418
7419 IF(iddlevel == 0)
CALL startime(10,1)
7420 IF(iddlevel == 1)
CALL startime(11,1)
7421
7422 WRITE(istdo,'(A)')titre(38)
7423 IF(nintsub/=0)THEN
7425 END IF
7426 ids = 117
7427 i = 0
7428
7429
7430 nsn_multi_connec = 0
7431 ALLOCATE(t2_nb_connec(numnod))
7432 t2_nb_connec(1:numnod) = 0
7433
7434
7435
7436 ninter25 = 0
7442 5 def_inter ,npc1 ,sensors ,multi_fvm ,
nom_opt(lnopt1*inom_opt(29)+1),
7443 6 intbuf_fric_tab ,lsubmodel,tf ,npts ,npari ,
7444 7
kloadpinter ,dgapint ,interfaces ,sitab ,nparir ,
7445 8 sitabm1 ,siskwn ,liskn ,snpc ,snpc1 ,
7446 9 glob_therm%ITHERM_FE,glob_therm%INTHEAT)
7447
7448 IF(.NOT. ALLOCATED(ale_connectivity%NALE)) ALLOCATE(ale_connectivity%NALE(0))
7449
7450 IF(ninter > 0) THEN
7451 ALLOCATE(list_nin25(ninter))
7452 list_nin25(1:ninter) = 0
7453 ENDIF
7454 IF(ninter25 >0.AND.numels > 0) THEN
7455 ALLOCATE(flag_elem_inter25(ninter25,numels))
7456 flag_elem_inter25(1:ninter25,1:numels) = 0
7457 ELSE
7458 ALLOCATE(flag_elem_inter25(0,0))
7459 ENDIF
7460
7464 .
npc ,probint ,lag_ncf ,
7465 . lag_nkf ,lag_ncl ,lag_nkl ,lag_nhf ,maxrtm ,
7467 . xfiltr ,stfac ,fric_p ,frigap ,
7471 . ixs16 ,ixs20 ,def_inter ,maxnsne ,
7472 . npc1 ,multi_fvm ,
nom_opt(lnopt1*inom_opt(29)+1),intbuf_fric_tab,
7474 . t2_nb_connec,iddlevel ,ale_connectivity%NALE ,interfaces ,snpc1 ,
7475 . flag_elem_inter25 ,list_nin25)
7476
7477
7478 flag_allocate = 1
7479
7480 proc_bid = 0
7481
7482 IF(iddlevel == 0) THEN
7483
7484
7485
7486 ALLOCATE(intbuf_tab(ninter), stat=stat)
7487
7488
7489
7490
7491
7493 . i11flag, flag_allocate, proc_bid ,intbuf_fric_tab)
7494
7495
7497 ALLOCATE(intert8(nspmd,nbt8))
7498 DO p = 1,nspmd
7499 DO i = 1,nbt8
7500 ALLOCATE(intert8(p,i)%BUFFER(nspmd))
7501 DO j=1,nspmd
7502 intert8(p,i)%BUFFER(j)%NBMAIN = -1
7503 intert8(p,i)%BUFFER(j)%NBSECND_TOT = 0
7504 ENDDO
7505 ENDDO
7506 ENDDO
7507
7508
7510
7511 END IF
7512
7513
7514
7515 IF(nintstamp/=0)THEN
7516 IF(iddlevel == 0) THEN
7517 ALLOCATE(
intstamp(nintstamp) ,stat=stat)
7518 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7519 . msgtype=msgerror,
7520 . c1='INTSTAMP')
7522 END IF
7523 ELSE
7524 IF(iddlevel == 0) THEN
7526 ENDIF
7527 END IF
7528
7531 . fric_p ,frigap ,
i2rupt ,areasl ,lixint ,
7532 . x ,ninter ,
ixs ,
nom_opt(lnopt1*inom_opt(3)+1),
7535 . ixs16 ,ixs20 ,
nige ,rige ,xige ,
7536 . vige ,
igrbric ,multi_fvm,ale_connectivity%NALE ,
igeo ,
7537 . interfaces,s_nod2els,s_nod2eltg,flag_elem_inter25 ,list_nin25)
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547 ids = 60
7548
7549 IF(nintsub/=0)THEN
7553 . intbuf_tab,maxrtms ,
igrslin ,maxnsne)
7554 ENDIF
7555
7556 IF(iddlevel == 0) THEN
7557 ALLOCATE(inscr(ninter) ,stat=stat)
7558 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7559 . msgtype=msgerror,
7560 . c1='INSCR')
7561
7562 ENDIF
7563
7565
7566 IF(iddlevel == 0) THEN
7567
7568 DO i=1,ninter
7569 ALLOCATE(inscr(i)%WA(inscr(i)%SINSCR) ,stat=stat)
7570 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7571 . msgtype=msgerror,
7572 . c1='INSCR')
7573 inscr(i)%WA = 0
7574 ENDDO
7575 ELSE
7576 DO i=1,ninter
7577 inscr(i)%WA = 0
7578 ENDDO
7579 END IF
7581
7582 IF(iddlevel == 0)
CALL stoptime(10,1)
7583 IF(iddlevel == 1)
CALL stoptime(11,1)
7584
7585 WRITE(istdo,'(A)')titre(68)
7586
7587 aux =
max( numnod , numelt+numelp+numelr+numeltg+numelc+100 ,
7588 . maxrtm+100 )
7589 ns_i7 = 2*numnod + 2002 + 4*aux
7590
7591 ns_i11 = 2002 + nmnt
7592 aux = 2002 + 8*maxrtms
7593 ns_i11 =
max(ns_i11,aux)
7594
7595
7596 aux =
max( numnod , maxrtm_t2+100 )
7597 ns_i2 = 2*numnod + 2002 + 4*aux
7598
7599 ifip=
max(ns_i7,ns_i11,
7600 . numnod+2+4*numelc+4*numeltg+8*numels
7601 . +2*numelt+2*numelp+2*numelr)
7602
7603 siwork =
max(ns_i7,ns_i11,numnod+2+4*numelc+4*numeltg+8*numels
7604 . + 2*numelt+2*numelp+2*numelr+16*numels10+ 2*(sixx-1)
7605 . + maxnsne,ns_i2)
7606
7607 srwork =
max(6000,numnod)
7608 ALLOCATE(iwork(siwork) ,stat=stat)
7609 ALLOCATE(rwork(srwork) ,stat=stat)
7610 iwork = 0
7611 rwork = zero
7612
7613 IF(lxintd>0.AND.nspmd>1) lixint = lixint + lxintd
7614
7615 inter_cand%S_IXINT_2 = lixint
7616 IF(iddlevel==0)THEN
7617 IF( ALLOCATED(inter_cand%IXINT) ) DEALLOCATE( inter_cand%IXINT )
7618 ALLOCATE(inter_cand%IXINT(inter_cand%S_IXINT_1,inter_cand%S_IXINT_2))
7619 ALLOCATE(xtmp(3*numnod) ,stat=stat)
7620 xtmp = d(1:3*numnod)
7621 ENDIF
7622 ifixin = ifip
7623 ifiend = ifixin
7624 nelemint = 0
7625 lixint = 0
7626
7627
7628 IF(.NOT.ALLOCATED(fillsol)) ALLOCATE(fillsol(numels),stat=stat)
7629 IF(stat/=0)
CALL ancmsg(msgid=268,anmode=aninfo,
7630 . msgtype=msgerror,
7631 . c1='FILLSOL')
7633
7634 IF(iddlevel == 0)
CALL startime(12,1)
7635 IF(iddlevel == 1)
CALL startime(13,1)
7636
7638 1 numnod,numels,ngrbric,
7641 5 multi_fvm%X_APPEND,multi_fvm%V_APPEND,multi_fvm%MASS_APPEND,multi_fvm%KINET_APPEND)
7642
7643
7644
7645
7646
7648
7651 3 iwork ,rwork ,
ixtg ,d ,
ixt ,
7652 4
ixp ,
ixr ,ale_connectivity ,nelemint ,iddlevel ,
7656 9 ipartc ,ipartg ,thke ,thk_part ,
nod2el1d ,
7657 a
knod2el1d ,ixs10 ,inter_cand ,frigap ,ixs16 ,
7658 b ixs20 ,
ipm ,
nom_opt(lnopt1*inom_opt(3)+1),iparts ,siskwn ,
7660 d intbuf_tab,fillsol ,stack%PM ,iworksh ,nsnt ,
7662 f
segquadfr ,tagprt_fric,intbuf_fric_tab ,ipartt ,
7663 g ipartp ,ipartx ,ipartr ,nsn_multi_connec ,t2_nb_connec,
7664 h sicode ,
icode ,
iskew ,multi_fvm ,s_nod2els ,
7665 i sitab ,sitabm1 ,flag_elem_inter25 ,list_nin25 )
7666 IF(iddlevel == 0)
CALL stoptime(12,1)
7667 IF(iddlevel == 1)
CALL stoptime(13,1)
7668
7669 idel_solid = 0
7670 DO i=1,ninter
7671 IF(
ipari(npari*(i-1)+7)==25.AND.
ipari(npari*(i-1)+100)>0)
THEN
7672 idel_solid = idel_solid + 1
7673 ENDIF
7674 ENDDO
7675 IF(idel_solid == 0) interfaces%PARAMETERS%INT25_EROSION_SOLID = 0
7676
7677 DEALLOCATE (flag_elem_inter25)
7678 DEALLOCATE (list_nin25)
7679
7680 DEALLOCATE (t2_nb_connec)
7681 DEALLOCATE (rwork)
7682 DEALLOCATE (iwork)
7683
7684 IF(iddlevel==1) THEN
7685 DEALLOCATE(xfiltr)
7686 DEALLOCATE(fric_p)
7687 DEALLOCATE(frigap)
7688 END IF
7689
7690 IF(lxintd>0.AND.nspmd>1)THEN
7691 IF(lixint+lxintd > inter_cand%S_IXINT_2)THEN
7693 ENDIF
7694
7697 ENDIF
7699
7700 IF(iddlevel==0)THEN
7701 d(1:3*numnod) = xtmp(1:3*numnod)
7702 DEALLOCATE(xtmp)
7703 END IF
7704
7705 ELSEIF(iddlevel == 0) THEN
7706
7707 sinscr = 0
7709
7710
7711
7712
7713 ALLOCATE(intbuf_tab(0), stat=stat)
7714
7715
7716 ENDIF
7717
7718
7719
7720
7721
7722 err_msg='RIGID WALLS'
7723 err_category='RIGID WALLS'
7724 CALL trace_in1(err_msg,len_trim(err_msg))
7725 snprw = nrwall*nnprw
7726 siwork = nrwall*numnod
7727 slprw = 0
7728 IF(iddlevel==0) THEN
7729 ALLOCATE(
nprw(snprw) ,stat=stat)
7730 END IF
7731 ALLOCATE(iwork(siwork) ,stat=stat)
7733 iwork = 0
7734
7735 srwbuf = nrwlp*nrwall
7736 srwsav = 0
7737 srwork = 3*numnod*nrwall+srwbuf
7738 ALLOCATE(rwork(srwork) ,stat=stat)
7739 rwork = zero
7740 nrwlag = 0
7741
7742 IF(nrwall > 0) THEN
7743 WRITE(istdo,'(A)')titre(39)
7745 1 rwork ,
nprw ,iwork ,slprw ,ms ,
7748 4 srwbuf ,imerge ,
unitab ,
7749 5 ikine1lag,iddlevel ,lsubmodel ,rtrans ,
7750 6
nom_opt(lnopt1*inom_opt(5)+1),itagnd)
7751 ENDIF
7752
7753
7754 IF(iddlevel==0) THEN
7755 ALLOCATE(
lprw(slprw) ,stat=stat)
7756 END IF
7757 lprw = iwork(1:slprw)
7758 DEALLOCATE(iwork)
7759 IF(iddlevel==0) THEN
7760 ALLOCATE(rwbuf(srwbuf) ,stat=stat)
7761 IF(stat /= 0) THEN
7763 . msgtype=msgerror,
7764 . anmode=anstop,
7765 . c1='RWBUF')
7766 ENDIF
7767 END IF
7768 rwbuf = rwork(1:srwbuf)
7769 DEALLOCATE(rwork)
7770 IF(ALLOCATED(rwsav)) DEALLOCATE(rwsav)
7771 ALLOCATE(rwsav(srwsav) ,stat=stat)
7773
7774
7775
7776
7777 err_msg='ADDED MASSES'
7778 err_category='ADDED MASSES'
7779 CALL trace_in1(err_msg,len_trim(err_msg))
7780 IF(nodmas > 0)THEN
7781 WRITE(istdo,'(A)')titre(43)
7782 IF(iddlevel==0) THEN
7783 ALLOCATE(
ipmas(nodmas),stat=stat)
7784 ipmas(1:nodmas)%NPART = 0
7785 ipmas(1:nodmas)%WEIGHT_FLAG = 0
7786 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7787 . msgtype=msgerror,
7788 . c1='IPMAS')
7789 ENDIF
7790
7791 flagg = 0
7792
7796 . x ,lsubmodel)
7797
7798 flagg = 1
7799
7803 . x ,lsubmodel)
7804
7805 IF(ns10e>0)
CALL addmast10(icnds10, ms )
7806
7807 ELSE
7808 IF(iddlevel==0) THEN
7810 ENDIF
7811 ENDIF
7813
7814
7815
7816 err_msg='RIGID ENTITIES'
7817 err_category='RIGID BODY'
7818 CALL trace_in1(err_msg,len_trim(err_msg))
7822 snpby = nnpby*nrbykin
7823 snpbyl = nnpby*nrbylag
7824 snrbody = snpby + snpbyl
7825 slrbody = slpby + slpbyl
7826 srby = nrby*nrbody
7827 IF(iddlevel==0) THEN
7828 IF(
ALLOCATED(
npby))
DEALLOCATE(
npby)
7829 IF(
ALLOCATED(
lpby))
DEALLOCATE(
lpby)
7830 IF(ALLOCATED(rby)) DEALLOCATE(rby)
7831 ALLOCATE(
npby(snrbody),stat=stat)
7832 ALLOCATE(
lpby(slrbody),stat=stat)
7833 ALLOCATE(rby(srby) ,stat=stat)
7834 END IF
7835 IF(nrbmerge > 0) THEN
7836 ALLOCATE(mgrby(nmgrby*smgrby),stat=stat)
7837 ELSE
7838 ALLOCATE(mgrby(0),stat=stat)
7839 ENDIF
7842 mgrby = 0
7843 rby = zero
7844 IF(snpby<snrbody) THEN
7846 ELSE
7848 END IF
7849 IF(slpby<slrbody) THEN
7851 ELSE
7853 END IF
7854 IF(nrby *nrbykin<srby) THEN
7855 rbyl => rby(nrby *nrbykin+1:srby)
7856 ELSE
7857 rbyl => rby
7858 END IF
7859
7860 IF(nrbody > 0) WRITE(istdo,'(A)')titre(41)
7861 IF(nrbykin > 0) THEN
7869 ENDIF
7870
7871
7872
7873 IF(nrbmerge > 0) THEN
7875 . mgrby,smgrby ,
npby,
lpby ,slrbody,
7878 . lsubmodel)
7879 ENDIF
7880
7881
7882
7883 IF(nrbykin > 0) THEN
7886 2 d ,iddlevel,
nom_opt,slrbody)
7887 ENDIF
7888
7889
7890
7891 IF(nrbylag > 0) THEN
7894 ENDIF
7896
7897 IF(ninter > 0) THEN
7898
7899
7900 IF(nintstamp/=0)THEN
7901 err_msg='INTERFACES TYPE21'
7902 err_category='INTERFACES'
7903 CALL trace_in1(err_msg,len_trim(err_msg))
7904
7907
7909 END IF
7910
7911
7912
7913 err_category='INTERNAL'
7914 IF(iddlevel==0)THEN
7915 IF(iale+ieuler/=0)
7917 IF(numels/=0)
7919
7920 lag_ncf = lag_ncf0
7921 lag_nkf = lag_nkf0
7922 lag_nhf = lag_nhf0
7923 lag_ncl = lag_ncl0
7924 lag_nkl = lag_nkl0
7925 ENDIF
7926 ENDIF
7927
7928
7929
7930
7931
7932 i11flag = 1
7933
7935
7936
7937 IF((seani > 0).AND.(iddlevel==1)) eani = 0
7938
7939#ifdef DNC
7940
7941
7942
7943
7944 err_msg='MADYMO INTERFACED FEM'
7945 err_category='MADYMO INTERFACED FEM'
7946 CALL trace_in1(err_msg,len_trim(err_msg))
7947 IF(nexmad/=0) THEN
7948 siwork2 =
max(npart,numnod,2*numnod+numelc+numeltg+numels)
7949 siwork = npart+numnod+2*(numelc+numeltg+numels)
7950
7951 ALLOCATE(iwork(siwork+siwork2),stat=stat)
7952 iwork = 0
7953 IF(siwork<siwork+siwork2) THEN
7954 iwork2 => iwork(siwork+1:siwork+siwork2)
7955 ELSE
7956 iwork2 => iwork
7957 ENDIF
7958 ENDIF
7960 IF(nexmad/=0) THEN
7961 WRITE(istdo,'(A)')' .. FEM INTERFACED TO MADYMO'
7962 CALL hm_read_madymo_exfem(iwork(7*nconx+1),
itab ,
itabm1 ,
ipart ,ipartc,
7964 . iwork2 ,geo ,pm ,iwork ,
igeo ,
7966
7967 smadprt = nmadprt
7968 smadsh4 = nmadsh4
7969 smadsh3 = nmadsh3
7970 smadsol = nmadsol
7971 smadnod = nmadnod
7972
7973 smadfail= numelc+numeltg+numels
7974
7975 siextag = 2*nmadnod+nmadsh4+nmadsh3+nmadsol
7976
7977 siexmad = nmadprt+nmadsh4+nmadsh3+nmadsol+nmadnod
7978 . + numelc+numeltg+numels
7979
7980 siconx = 7*nconx+siexmad+siextag
7981 ALLOCATE(
iconx(siconx),stat=stat)
7983 DO i=1,7*nconx+siexmad
7985 ENDDO
7986 ELSE
7987 siconx = 7*nconx
7988 ALLOCATE(
iconx(siconx),stat=stat)
7989 IF(siconx > 0)THEN
7990 iconx(1:7*nconx)=iwork(1:7*nconx)
7991 ENDIF
7992 ENDIF
7993 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
7995#else
7996 IF(.NOT.
ALLOCATED(
iconx))
ALLOCATE(
iconx(0))
7997#endif
7998
7999
8000
8001 err_msg='FLEXIBLE BODIES'
8002 err_category='FLEXIBLE BODIES'
8003 CALL trace_in1(err_msg,len_trim(err_msg))
8004
8005
8006 IF(nfxbody == 0) THEN
8007 IF(iddlevel==0) THEN
8008 ALLOCATE(fxbnod(0),fxb_matrix(0),fxb_matrix_add(4,0))
8009 ALLOCATE(fxbglm(0), fxbcpm(0) , fxbrpm(0),
8010 . fxbcps(0) , fxblm(0) , fxbfls(0),
8011 . fxbdls(0), fxbdep(0), fxbvit(0),
8012 . fxbacc(0), fxbmod(0), fxbelm(0),
8013 . fxbsig(0), fxbgrvi(0), fxbgrvr(0))
8014 ENDIF
8015 ELSE IF(nfxbody>0) THEN
8016
8017 IF(iddlevel==1) THEN
8018
8019 lenglm=0
8020 lencp=0
8021 lenlm=0
8022 lenfls=0
8023 lendls=0
8024 lenvar=0
8025 lenrpm=0
8026 lenmcd=0
8027 lenelm=0
8028 lensig=0
8029 lengrvi=0
8030 lengrvr=0
8031 ENDIF
8032
8033 IF(iddlevel==0) THEN
8034 INQUIRE(iolength=rclen) flrec6
8035 OPEN(unit=ifxm,status='SCRATCH',
8036 . access='DIRECT',recl=rclen)
8037 OPEN(unit=ifxs,status='SCRATCH',
8038 . access='DIRECT',recl=rclen)
8039 WRITE(istdo,'(A)')titre(51)
8040 ALLOCATE(fxbnod(lennod),fxb_matrix(lenmat),fxb_matrix_add(4,lenmat))
8041 ENDIF
8042
8045
8046 DO nfx=1,nfxbody
8047 aipm=(nfx-1)*nbipm
8048 anod=fxbipm(aipm+6)
8049 nbno=fxbipm(aipm+3)
8050 nbmo=fxbipm(aipm+4)+fxbipm(aipm+17)
8051 fxbipm(aipm+19)=lenelm+1
8052 fxbipm(aipm+20)=lensig+1
8053 fxbipm(aipm+26)=lengrvi+1
8054 fxbipm(aipm+27)=lengrvr+1
8055
8057 . fxbnod(anod), nbno, fxbipm(aipm+18),
ibcl , ipres ,
8059 .
ixtg ,
iparg , fxbtag, nbmo, fxbipm(aipm+4),
8061 . nlgrav ,
ipari , intbuf_tab , fxbipm(aipm+29), nelt,
8062 . nelp)
8063 fxbipm(aipm+21)=nels
8064 fxbipm(aipm+22)=nelc
8065 fxbipm(aipm+23)=neltg
8066 fxbipm(aipm+34)=nelt
8067 fxbipm(aipm+35)=nelp
8068 fxbipm(aipm+24)=0
8069 fxbipm(aipm+25)=nlgrav
8070 ENDDO
8071
8072 IF(iddlevel==0) THEN
8073 ALLOCATE(fxbglm(lenglm), fxbcpm(lencp) , fxbrpm(lenrpm),
8074 . fxbcps(lencp) , fxblm(lenlm) , fxbfls(lenfls),
8075 . fxbdls(lendls), fxbdep(lenvar), fxbvit(lenvar),
8076 . fxbacc(lenvar), fxbmod(lenmod*6), fxbelm(lenelm),
8077 . fxbsig(lensig), fxbgrvi(lengrvi), fxbgrvr(lengrvr))
8078 ENDIF
8079
8080 fxbelm(1:lenelm)= 0
8081 DO nfx=1,nfxbody
8082 aipm=(nfx-1)*nbipm
8083 anod=fxbipm(aipm+6)
8084 nbno=fxbipm(aipm+3)
8085 alm=fxbipm(aipm+19)
8086 IF(fxbipm(aipm+4)>0)
CALL fxbelnum(
8087 . fxbnod(anod), nbno,
iparg , fxbtag, fxbelm(alm),
8089 . ipartg ,
ixt ,
ixp , ipartt ,ipartp )
8090 ENDDO
8091
8093 . fxbcpm, fxbcps, fxblm, fxbfls, fxbdls,
8095 . lsubmodel)
8096
8097
8098 ELSEIF(iddlevel==0) THEN
8099 ALLOCATE(fxbnod(0) , fxbmod(0), fxbglm(0), fxbgrvi(0),
8100 . fxbcpm(0) , fxbcps(0), fxblm(0) , fxbfls(0) ,
8101 . fxbdls(0) , fxbdep(0), fxbvit(0), fxbacc(0) ,
8102 . fxbrpm(0) , fxbelm(0), fxbsig(0),
8103 . fxbgrvr(0))
8104 ENDIF
8105
8107 err_msg='EIGEN MODES'
8108 err_category='EIGEN MODES'
8109 CALL trace_in1(err_msg,len_trim(err_msg))
8110 IF(neig>0) THEN
8111
8112 INQUIRE(iolength=rclen) flrec6
8113 OPEN(unit=ieigm,status='SCRATCH',
8114 . access='DIRECT',recl=rclen)
8115
8116 WRITE(istdo,'(A)')titre(52)
8118 neipm=17
8119 nerpm=4
8120 leibuf = nnt
8121 IF(iddlevel==0) THEN
8122 ALLOCATE(eigipm(neipm*neig), eigibuf(nnt))
8123 ALLOCATE(eigrpm(nerpm*neig))
8124 eigipm = 0
8125 eigibuf = 0
8126 eigrpm = zero
8127 ENDIF
8128
8131 ELSEIF(iddlevel==0) THEN
8132 ALLOCATE(eigipm(0), eigibuf(0))
8133 ALLOCATE(eigrpm(0))
8134 ENDIF
8136 CALL trace_in1(err_msg,len_trim(err_msg))
8137 IF(ndsolv==1) THEN
8138 WRITE(6,*) "ERROR Deprecated Linear solver"
8140 ELSEIF(iddlevel==0) THEN
8141 nslevel=0
8142 ALLOCATE(ceptmp(0), neldom(0), eldom(0,0,0),
8143 . elsub(0,0))
8144 ENDIF
8146
8147
8148
8149 err_msg='COMPOSITE SHELLS'
8150 err_category='COMPOSITE SHELLS'
8151 CALL trace_in1(err_msg,len_trim(err_msg))
8152
8153 IF(iddlevel==0) THEN
8154 IF(iplyxfem > 0) THEN
8155 ALLOCATE(ms_ply0(numnod*nplymax),stat=stat)
8156 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8157 . msgtype=msgerror,
8158 . c1='MS_PLY0')
8159 ms_ply0=zero
8160 ALLOCATE(zi_ply0(numnod*nplymax),stat=stat)
8161 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8162 . msgtype=msgerror,
8163 . c1='ZI_PLY0')
8164 zi_ply0=zero
8165 ALLOCATE(msz20(numnod),stat=stat)
8166 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8167 . msgtype=msgerror,
8168 . c1='MSZ20')
8169 msz20=zero
8170 ALLOCATE(itagnd_shxfem(numnod),stat=stat)
8171 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8172 . msgtype=msgerror,
8173 . c1='ITAGND_SHXFEM')
8174 itagnd_shxfem=0
8175 ALLOCATE(itagsh(numelc),stat=stat)
8176 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8177 . msgtype=msgerror,
8178 . c1='ITAGSH')
8179 itagsh=0
8181 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8182 . msgtype=msgerror,
8183 . c1='INOD_PXFEM')
8186 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8187 . msgtype=msgerror,
8188 . c1='IEL_PXFEM')
8190 ELSE
8191 ALLOCATE(ms_ply0(0),zi_ply0(0),itagnd_shxfem(0),
8193 ALLOCATE(ms_ply(0),zi_ply(0),msz20(0))
8194 ENDIF
8195 ENDIF
8196
8198
8199
8200
8201 err_msg='ARRAYS ALLOCATION FOR INTIA'
8202 err_category='INTERNAL'
8203 CALL trace_in1(err_msg,len_trim(err_msg))
8204
8205
8206 IF(iddlevel == 0) THEN
8207 ALLOCATE(msc(numelc) ,stat=stat)
8208 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8209 . msgtype=msgerror,
8210 . c1='MSC')
8211 ALLOCATE(mstg(numeltg) ,stat=stat)
8212 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8213 . msgtype=msgerror,
8214 . c1='MSTG')
8215 ALLOCATE(inc(numelc) ,stat=stat)
8216 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8217 . msgtype=msgerror,
8218 . c1='INC')
8219 ALLOCATE(intg(numeltg) ,stat=stat)
8220 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8221 . msgtype=msgerror,
8222 . c1='INTG')
8223 ALLOCATE(ptg(3,numeltg) ,stat=stat)
8224 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8225 . msgtype=msgerror,
8226 . c1='PTG')
8227 IF(glob_therm%ITHERM_FE > 0)THEN
8228 ALLOCATE(mcpc(numelc) ,stat=stat)
8229 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8230 . msgtype=msgerror,
8231 . c1='MCPC')
8232 ALLOCATE(mcptg(numeltg) ,stat=stat)
8233 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8234 . msgtype=msgerror,
8235 . c1='MCPTG')
8236 ELSE
8237 ALLOCATE(mcpc(0),mcptg(0))
8238 END IF
8239 ENDIF
8240
8241 msc = zero
8242 mstg = zero
8243 inc = zero
8244 intg = zero
8245 ptg = zero
8246 mcpc = zero
8247 mcptg = zero
8248
8249
8250
8251 IF(iddlevel == 0) THEN
8252 IF(irest_mselt/=0)THEN
8253 ALLOCATE(mssa(numels) ,stat=stat)
8254 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8255 . msgtype=msgerror,
8256 . c1='MSSA')
8257 ALLOCATE(msrt(numelr) ,stat=stat)
8258 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8259 . msgtype=msgerror,
8260 . c1='MSRT')
8261 ELSE
8262 ALLOCATE(mssa(0) ,stat=stat)
8263 ALLOCATE(msrt(0) ,stat=stat)
8264 ENDIF
8265
8266 IF(i7stifs/=0)THEN
8267 ALLOCATE(stifint(numnod+numfakenodigeo) ,stat=stat)
8268 ALLOCATE(stifintr(numnod) ,stat=stat)
8269 ELSE
8270 ALLOCATE(stifint(0) ,stat=stat)
8271 ALLOCATE(stifintr(0) ,stat=stat)
8272 ENDIF
8273
8274 IF(irigid_mat > 0) THEN
8275 ALLOCATE(slnrbm(numnod) ,nslnrbm(numnod))
8276 ALLOCATE( rmstifn(numnod), rmstifr(numnod))
8277 ELSE
8278 ALLOCATE( slnrbm(0),nslnrbm(0),rmstifn(0), rmstifr(0))
8280 ENDIF
8281
8282 ALLOCATE(fxani(2,nmanim), mbufel(lbufel,nmanim),
8283 . mdepl(3*numnod,nmanim))
8284 ALLOCATE(stiffn(numnod*2) ,stat=stat)
8285 ENDIF
8286
8287 stifint = zero
8288 stifintr = zero
8289 slnrbm= 0
8290 nslnrbm=0
8291 IF(numnod > 0) stiffn = em20
8292
8294
8295
8297
8299
8300
8301
8302
8303
8304
8305 IF((iddlevel == 1).OR.(isms_selec >= 3).OR.((ninter == 0).AND.(isms == 0))) THEN
8306
8307
8308
8309
8310
8311 err_msg='ELEMENT BUFFER INITIALIZATION'
8312 err_category='INTERNAL'
8313 CALL trace_in1(err_msg,len_trim(err_msg))
8314 WRITE(istdo,'(A)')titre(45)
8315 numel=2*(numelc+numelq+numelt+numels+numelp+numelr+
8316 & numeltg+numelx+numsph+numelig3d)
8317
8318
8319
8320
8321
8322 flag_xfem = 0
8323 ALLOCATE(elbuf_tab(ngroup), stat=stat)
8324
8325 CALL elbuf_ini(elbuf_tab,mat_elem%MAT_PARAM,
8326 . mlaw_tag ,prop_tag ,fail_tag ,
8329 . flag_xfem,ipartig3d,stack ,igeo_stack ,
8331 . eos_tag ,istr_24 ,ipri ,defaults)
8332
8333
8334
8335 IF(icrack3d > 0) THEN
8336 flag_xfem = 1
8337
8338 ALLOCATE(xfem_tab(ngroup,nxel), stat=stat)
8339
8340 DO ixel=1,nxel
8341 CALL elbuf_ini(xfem_tab(1:ngroup,ixel),mat_elem%MAT_PARAM,
8342 . mlaw_tag ,prop_tag ,fail_tag ,
8345 . flag_xfem ,ipartig3d,stack ,igeo_stack,
8347 . eos_tag ,istr_24 ,ipri ,defaults)
8348 ENDDO
8349 ELSE
8350 ALLOCATE(xfem_tab(0,0), stat=stat)
8351 ENDIF
8352
8353
8354
8356 .
ipm ,stack ,
igeo ,nummat ,numgeo ,
8357 . ngroup ,nparg ,npropmi ,npropgi ,npropg )
8358
8359
8360
8363 . ngroup ,nparg ,npropmi ,npropgi ,mat_elem%MAT_PARAM ,
8365 . numelr ,
kxx ,numelx )
8366
8367
8368
8369
8370 IF(numels>0) THEN
8372 END IF
8373
8374 IF (defaults%SHELL%IOFFSET>0) THEN
8375 IF (defaults%SHELL%IOFFSET==1) CALL inter_offset_itag(
8377 . nsurf, numelc, numeltg, itagoset)
8378 CALL shell_offset_ini(
8379 . ngroup, nparg,
iparg, npropg,
8380 . numgeo, geo, numelc, numeltg,
8381 . npropgi,
igeo, itagoset, elbuf_tab,
8382 . defaults%SHELL )
8383 END IF
8384
8385
8386
8387
8388 nsigs =11
8389 lsigsh = 0
8390 lsigsp = 0
8391 lsigsph = 0
8392 lsigi =
max(numels+numelq,numsol+numquad)
8393 lsigrs = 0
8394 lsigbeam = 0
8395 lsigtruss = 0
8396 nsigi = 0
8397 nsigsph= 12
8398 nsigsh = 0
8399 nsigrs = 0
8400 nsigbeam = 0
8401 nsigtruss = 0
8402 IF(isigi/=0)THEN
8403 nsigsh = nvshell
8404 nsigrs = nvspri
8405 nsigbeam = nvbeam
8406 nsigtruss = nvtruss
8407 IF(nubeam > 0) nsigbeam = nsigbeam + nubeam
8408 IF(iushell/=0) nsigsh = nsigsh + nushell
8409 IF(iortshel/=0) nsigsh = nsigsh + nortshel
8410 IF(nvshell1/=0)nsigsh = nsigsh + nvshell1
8411 IF(nvshell2 /= 0)nsigsh = nsigsh + nvshell2 + 3
8412 IF(nusphcel /= 0)nsigsph = nsigsph + nusphcel
8413 nsigi= nvsolid1 + nvsolid2 + nvsolid3 + nusolid + 4 + nvsolid4 +
8414 . nvsolid5 + nvsolid6 + 7
8415
8416
8417 IF(iabs(isigi) == 3 .OR. iabs(isigi) == 4 .OR.
8418 . iabs(isigi) == 5) THEN
8419 lsigsh = numshel+numsh3n
8420 lsigsp =
max(numsol+numquad,numels+numelq)
8421 lsigsph = numsphy
8422 lsigrs = numspri
8423 lsigbeam = numbeam
8424 lsigtruss = numtrus
8425 ELSE
8426 lsigsh = numelc+numeltg
8427 lsigsp = numels+numelq
8428 lsigsph = numsph
8429 lsigrs = numelr
8430 lsigbeam = numelp
8431 lsigtruss = numelt
8432 END IF
8433 END IF
8434
8435 IF(abs(isigi)==3.OR.abs(isigi)==4.OR.abs(isigi)==5)THEN
8436 imax =
max(numels,numelq,numelc,numelt,numelp,numelr,
8437 . numeltg,numsol,numquad,numshel,numsh3n,
8438 . numsphy,numspri,numbeam,numtrus)
8439 ELSE
8440 imax =
max(numels,numelq,numelc,numelt,numelp,numelr,
8441 . numeltg,numelig3d)
8442 END IF
8443 sindex = 2*imax
8444 sitri = imax
8445 IF(abs(isigi)==3.OR.abs(isigi)==4.OR.abs(isigi)==5)THEN
8446 jmax=
max(numelc,numsol,numquad,numshel,numsh3n,numsphy,
8447 . numelr,numspri,numelp,numbeam,numtrus)
8448 ELSE
8449 jmax=0
8450 END IF
8451
8452
8453 IF(abs(isigi)==3.OR.abs(isigi)==4.OR.abs(isigi)==5)THEN
8454 ALLOCATE (ptsol(numels) ,stat=stat)
8455 ALLOCATE (ptquad(numelq) ,stat=stat)
8456 ALLOCATE (ptsph(numsph) ,stat=stat)
8457 ALLOCATE (ptspri(numelr) ,stat=stat)
8458 ALLOCATE (ptbeam(numelp) ,stat=stat)
8459 ALLOCATE (pttruss(numelt) ,stat=stat)
8460 ptsol = 0
8461 ptquad = 0
8462 ptsph = 0
8463 ptspri = 0
8464 ptbeam = 0
8465 pttruss= 0
8466 ELSE
8467 ALLOCATE (ptsol(0) ,stat=stat)
8468 ALLOCATE (ptquad(0) ,stat=stat)
8469 ALLOCATE (ptsph(0) ,stat=stat)
8470 ALLOCATE (ptspri(0) ,stat=stat)
8471 ALLOCATE (ptbeam(0) ,stat=stat)
8472 ALLOCATE (pttruss(0) ,stat=stat)
8473 END IF
8474
8475 ico = 0
8476 itet4_10=0
8478 IF(numels10/=0.OR.numels16/=0.OR.numels20/=0.OR.itet4_10/=0) THEN
8479 ico=12
8480 ENDIF
8481
8482
8483 ALLOCATE(mss(8*numels) ,stat=stat)
8484 ALLOCATE(mssx(ico*numels) ,stat=stat)
8485 ALLOCATE(mssf(8*numels*
max(iale,ieuler,ialelag)) ,stat=stat)
8486 ALLOCATE(msq(numelq) ,stat=stat)
8487 IF(.NOT.ALLOCATED(mstr)) ALLOCATE(mstr(numelt) ,stat=stat)
8488 IF(.NOT.ALLOCATED(msp)) ALLOCATE(msp(numelp) ,stat=stat)
8489 ALLOCATE(msr(numelr*3) ,stat=stat)
8490 ALLOCATE(inp(numelp) ,stat=stat)
8491 ALLOCATE(inr(numelr*3) ,stat=stat)
8492 ALLOCATE(ins(numels*8) ,stat=stat)
8493 mss = zero
8494 mssx = zero
8495 mssf = zero
8496 msq = zero
8497 mstr = zero
8498 msp = zero
8499 msr = zero
8500 inp = zero
8501 inr = zero
8502 ins = zero
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517 ALLOCATE(xelemwa(maxnx*16) ,stat=stat)
8518 xelemwa = zero
8519 IF(i7stifs/=0) THEN
8520 ico = 0
8521 IF(numels10/=0.OR.numels16/=0.OR.numels20/=0.OR.itet4_10/=0) THEN
8522 ico=12
8523 ENDIF
8524 ALLOCATE(vns(numels*8+numelig3d*nctrlmax) ,stat=stat)
8525 ALLOCATE(vnsx(numels*ico) ,stat=stat)
8526 ALLOCATE(stc(numelc) ,stat=stat)
8527 ALLOCATE(stt(numelt) ,stat=stat)
8528 ALLOCATE(stp(numelp) ,stat=stat)
8529 ALLOCATE(str(numelr) ,stat=stat)
8530 ALLOCATE(sttg(numeltg) ,stat=stat)
8531 ALLOCATE(stur(0) ,stat=stat)
8532 ALLOCATE(bns(numels*8+numelig3d*nctrlmax) ,stat=stat)
8533 ALLOCATE(bnsx(numels*ico) ,stat=stat)
8534 ALLOCATE(vnige(numelig3d*nctrlmax) ,stat=stat)
8535 ALLOCATE(bnige(numelig3d*nctrlmax) ,stat=stat)
8536 vns = zero
8537 vnsx = zero
8538 stc = zero
8539 stt = zero
8540 stp = zero
8541 str = zero
8542 sttg = zero
8543 stur = zero
8544 bns = zero
8545 bnsx = zero
8546 vnige = zero
8547 bnige = zero
8548 ELSE
8549 ALLOCATE(vns(0))
8550 ALLOCATE(vnsx(0))
8551 ALLOCATE(stc(0))
8552 ALLOCATE(stt(0))
8553 ALLOCATE(stp(0))
8554 ALLOCATE(str(0))
8555 ALLOCATE(sttg(0))
8556 ALLOCATE(stur(0))
8557 ALLOCATE(bns(0))
8558 ALLOCATE(bnsx(0))
8559 ALLOCATE(vnige(0))
8560 ALLOCATE(bnige(0))
8561 ENDIF
8562 IF(i7stifs/=0)THEN
8563 ALLOCATE(volnod(numnod+numfakenodigeo) ,stat=stat)
8564 ALLOCATE(bvolnod(numnod+numfakenodigeo) ,stat=stat)
8565 ALLOCATE(etnod(numnod) ,stat=stat)
8566 ALLOCATE(nshnod(numnod) ,stat=stat)
8567 volnod = zero
8568 bvolnod = zero
8569 etnod = zero
8570 nshnod = zero
8571 stifint = zero
8572 stifintr = zero
8573 ELSE
8574 ALLOCATE(volnod(0) ,stat=stat)
8575 ALLOCATE(bvolnod(0) ,stat=stat)
8576 ALLOCATE(etnod(0) ,stat=stat)
8577 ALLOCATE(nshnod(0) ,stat=stat)
8578 ENDIF
8579
8580
8581 ALLOCATE(strc(numelc) ,stat=stat)
8582 ALLOCATE(strp(numelp) ,stat=stat)
8583 ALLOCATE(
strr(numelr) ,stat=stat)
8584 ALLOCATE(strtg(numeltg) ,stat=stat)
8585 strc = zero
8586 strp = zero
8588 strtg = zero
8589
8590 ALLOCATE(index(sindex) ,stat=stat)
8591 ALLOCATE(itri(sitri) ,stat=stat)
8592 ALLOCATE(ksysusr(2*jmax) ,stat=stat)
8593 ALLOCATE(isptag(numsph) ,stat=stat)
8594 IF(sindex > 0) index = 0
8595 IF(sitri > 0) itri = 0
8596 IF(jmax > 0) ksysusr = 0
8597 IF(numsph > 0) isptag = 0
8598
8599 IF(nrbykin>0) THEN
8600 ALLOCATE(iwa(numnod),stat=stat)
8601 ELSE
8602 ALLOCATE(iwa(0),stat=stat)
8603 ENDIF
8604
8606
8607 err_msg='INITIALIZATION'
8608 err_category='ELEMENT INITIALIZATION'
8609 CALL trace_in1(err_msg,len_trim(err_msg))
8610
8611
8612
8613
8614
8615 ALLOCATE(sigi(nsigs,lsigi) ,stat=stat)
8616 ALLOCATE(sigsh(
max(1,nsigsh),
max(1,lsigsh)) ,stat=stat)
8617 ALLOCATE(sigsp(nsigi,lsigsp) ,stat=stat)
8618 ALLOCATE(sigsph(nsigsph,lsigsph) ,stat=stat)
8619 ALLOCATE(sigrs(nsigrs,lsigrs) ,stat=stat)
8620 ALLOCATE(sigbeam(nsigbeam,lsigbeam) ,stat=stat)
8621 ALLOCATE(sigtruss(nsigtruss,lsigtruss) ,stat=stat)
8622 ALLOCATE(strsglob(numels) ,stat=stat)
8623 ALLOCATE(straglob(numels) ,stat=stat)
8624 ALLOCATE(orthoglob(numels) ,stat=stat)
8625
8626 IF(lsigi > 0) sigi = zero
8627 IF(lsigsh > 0) sigsh = zero
8628 IF(lsigsp > 0) sigsp = zero
8629 IF(lsigsph > 0) sigsph = zero
8630 IF(lsigrs > 0) sigrs = zero
8631 IF(lsigbeam > 0)sigbeam= zero
8632 IF(lsigtruss > 0)sigtruss= zero
8633 IF(numels > 0) strsglob = -1
8634 IF(numels > 0) straglob = -1
8635 IF(numels > 0) orthoglob = 0
8636
8637
8639
8642 2
ixtg ,index ,itri ,
8643 3 nsigsh ,
igeo ,
ipm ,nsigs ,nsigsph ,
8644 4 ksysusr ,ptshel ,ptsh3n ,ptsol ,ptquad ,
8645 5 ptsph ,numel ,nsigrs ,
unitab ,isolnod ,
8646 6 lsubmodel,rtrans ,
idrape ,nsigi ,
8647 7 ptspri ,nsigbeam,ptbeam ,nsigtruss,pttruss ,
8648 8 sigi ,sigsh ,sigsp ,sigsph ,sigrs ,
8649 9 sigbeam ,sigtruss,strsglob,straglob,orthoglob,
8650 a isigsh ,iyldini ,ksigsh3 ,fail_ini,iusolyld,
8652 c mat_elem%MAT_PARAM,numsph,nisp)
8653
8654
8655
8656
8657
8658 ALLOCATE(dtelem(2*numel) ,stat=stat)
8659 IF(stat/=0) THEN
8660 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
8661 . c1='DTELEM')
8662 ENDIF
8663 IF(numel > 0) dtelem = zero
8664
8666
8669 &
ixp ,
ixr , detonators , geo , pm ,
8671 & tf , veul , ale_connectivity , skew , fill ,
8673 &
ixtg , thke ,
nloc_dmg , group_param_tab ,glob_therm,
8675 & bufmat , xlas ,
ilas , dtelem , mss ,
8676 & msq , msc , mstr , msp , msr ,
8678 & inp , inr , intg , index ,
8679 & itri ,
kxx ,
ixx , xelemwa ,
8683 & spbuf , mssx , nsigi ,
8685 & nsigsh ,
igeo ,
ipm , nsigs ,
8686 & nsigsph , vns , vnsx , stc , stt ,
8687 & stp , str , sttg , stur , bns ,
8688 & bnsx , volnod , bvolnod , etnod , nshnod ,
8689 & stifint , fxbdep , fxbvit , fxbacc , fxbipm ,
8690 & fxbrpm , fxbelm , fxbsig , fxbmod , ins ,
8691 & ptshel , ptsh3n , ptsol , ptquad ,
8692 & wma , ptsph , fxbnod , mbufel , mdepl ,
8693 & fxani , numel , nsigrs ,
8695 & imerge2 , iadmerge2 ,
8696 & slnrbm , nslnrbm , rmstifn , rmstifr ,
8697 & ms_ply0 , zi_ply0 , itagnd_shxfem , itagsh , mcpc ,
8698 & mcptg , xrefc , xreftg , xrefs , mssa ,
8700 & ixs10 , ixs16 , ixs20 , totaddmas ,
8701 &
ipmas , stiffn , msz20 , itagn , sitage ,
8702 & itage , ixr_kj , elbuf_tab ,
8703 &
nom_opt , inom_opt(13) , inom_opt(21) , inom_opt(20),
8706 & wige , stack ,
8707 & rnoise , drape , sh4ang , sh3ang ,
8708 & geo_stack , igeo_stack , stifintr , strc , strp ,
8710 &
iloadp , loadp , ptspri , nsigbeam ,
8711 & ptbeam , nsigtruss , pttruss ,
8712 & multi_fvm , sigi , sigsh , sigsp ,
8713 & sigsph , sigrs , sigbeam , sigtruss , strsglob ,
8714 & straglob , orthoglob , isigsh , iyldini , ksigsh3 ,
8715 & fail_ini , iusolyld , iuserl , iddlevel , inimap1d ,
8718 & knotlocpc , knotlocel , vnige , bnige , fxbglm ,
8719 & fxbcpm , fxbcps , fxblm , fxbfls , fxbdls ,
8720 & fxb_matrix , fxb_matrix_add , fxb_last_adress , inom_opt(11) , r_skew ,
8723 &
ipari , intbuf_tab , interfaces , mat_elem%MAT_PARAM ,
8724 & npreload_a , preload_a , fail_fractal ,
fail_brokmann ,defaults ,
8725 & ndamp_freq_range,dampr , ibeam_vector , rbeam_vector ,d)
8726
8727
8728 IF(ninter>0.AND.numelig3d>0) THEN
8730 IF(i7stifs/=0)THEN
8732 ENDIF
8733 ENDIF
8734
8735
8736
8738
8739
8741
8742
8743
8744
8745 err_msg='GROUP ENTITIES BUFFER INITIALIZATION'
8746 err_category='INTERNAL'
8747 CALL trace_in1(err_msg,len_trim(err_msg))
8748
8749
8754
8756
8757
8758
8759
8760
8761 DEALLOCATE(sigsph)
8762
8763
8764
8765 DEALLOCATE(xelemwa)
8766 DEALLOCATE(strsglob)
8767 DEALLOCATE(straglob)
8768 DEALLOCATE(orthoglob)
8769
8770 IF(ALLOCATED(ptshel))DEALLOCATE(ptshel)
8771 IF(ALLOCATED(ptsh3n))DEALLOCATE(ptsh3n)
8772 DEALLOCATE(ptsol)
8773 DEALLOCATE(ptquad)
8774 DEALLOCATE(ptsph)
8775 DEALLOCATE(ptspri)
8776 DEALLOCATE(ptbeam)
8777 DEALLOCATE(pttruss)
8778 DEALLOCATE(mss)
8779 DEALLOCATE(mssx)
8780 DEALLOCATE(mssf)
8781 DEALLOCATE(msq)
8782 DEALLOCATE(msr)
8783 IF(ALLOCATED(msig3d)) DEALLOCATE(msig3d)
8784 IF(ALLOCATED(tabconpatch)) DEALLOCATE(tabconpatch)
8785 DEALLOCATE(inp)
8786 DEALLOCATE(inr)
8787 DEALLOCATE(ins)
8788 DEALLOCATE(vns)
8789 DEALLOCATE(vnsx)
8790 DEALLOCATE(stc)
8791 DEALLOCATE(stt)
8792 DEALLOCATE(stp)
8793 DEALLOCATE(str)
8794 DEALLOCATE(sttg)
8795 DEALLOCATE(stur)
8796 DEALLOCATE(bns)
8797 DEALLOCATE(bnsx)
8798 DEALLOCATE(volnod)
8799 DEALLOCATE(bvolnod)
8800 DEALLOCATE(etnod)
8801 DEALLOCATE(nshnod)
8802 DEALLOCATE(vnige)
8803 DEALLOCATE(bnige)
8804 DEALLOCATE(strc)
8805 DEALLOCATE(strp)
8807 DEALLOCATE(strtg)
8808 DEALLOCATE(isptag)
8809 DEALLOCATE(index)
8810 DEALLOCATE(itri)
8811 DEALLOCATE(ksysusr)
8812 DEALLOCATE(iwa)
8813 IF (defaults%SHELL%IOFFSET==1) THEN
8814 DEALLOCATE(itagoset)
8815 DEALLOCATE(xyz)
8816 END IF
8817
8818
8819
8820
8821 ENDIF
8822
8823
8824
8825 IF((iddlevel == 0).AND.((ninter > 0).OR.(isms == 1))) THEN
8826 iddlevel = 1
8827 WRITE(istdo,*)
8828 . '.. RETURNS TO DOMAIN DECOMPOSITION FOR OPTIMIZATION'
8829
8830
8831
8832
8833
8834
8837
8838 lag_ncf = lag_ncf0
8839 lag_nkf = lag_nkf0
8840 lag_nhf = lag_nhf0
8841 lag_ncl = lag_ncl0
8842 lag_nkl = lag_nkl0
8843
8844 DEALLOCATE(elbuf)
8846
8847 IF(isms_selec >= 3) THEN
8848
8849
8850
8851 DEALLOCATE(dtelem)
8852 flag_xfem = 0
8856 DEALLOCATE(elbuf_tab)
8857
8858 IF(icrack3d > 0) THEN
8859 flag_xfem = 1
8860 DO ixel=1,nxel
8864 ENDDO
8865 ENDIF
8866
8867 rewind(iin4)
8868 rewind(iin5)
8869
8870 ENDIF
8871
8872 GOTO 100
8873
8874 ENDIF
8875
8876
8877
8878
8879 err_category='INTERFACES'
8882
8883
8884
8886
8887
8888
8889
8890
8891
8892 err_msg='RIGID MATERIALS'
8893 err_category='RIGID MATERIALS'
8894 CALL trace_in1(err_msg,len_trim(err_msg))
8895 IF(irigid_mat > 0) THEN
8896
8897
8898
8899 ALLOCATE(rbym(nfrbym*nrbym),
irbym(nrbym*nirbym),
lnrbym(ngslnrbym))
8900 rbym = 0
8903
8904 CALL rigid_mat(nrbym ,ngslnrbym ,slnrbm, nslnrbm ,rmstifn,
8905 . rmstifr ,x ,v ,ms , in ,
8907
8908 len_rm = nrbym*nspmd
8913 ELSE
8915 ENDIF
8917 err_msg='DEALLOCATION'
8918 err_category='INTERNAL'
8919 CALL trace_in1(err_msg,len_trim(err_msg))
8920 DEALLOCATE(slnrbm,nslnrbm,rmstifn,rmstifr )
8921
8922 IF(ALLOCATED(msig3d)) DEALLOCATE(msig3d)
8923 IF(ALLOCATED(itag)) DEALLOCATE(itag)
8924
8925
8926
8928 err_msg='XFEM FOR COMPOSIT'
8929 err_category='XFEM FOR COMPOSIT'
8930 CALL trace_in1(err_msg,len_trim(err_msg))
8931 IF(iplyxfem > 0) THEN
8932 nplyxfe = 0
8933 eplyxfe = 0
8934 DO i=1,numnod
8935 IF(itagnd_shxfem(i) > 0 )THEN
8936 nplyxfe = nplyxfe + 1
8938 ENDIF
8939 ENDDO
8940
8941 DO i=1,numelc
8942 IF(itagsh(i) > 0) THEN
8943 eplyxfe = eplyxfe + 1
8945 ENDIF
8946 ENDDO
8947 ALLOCATE(ms_ply(nplyxfe*nplymax),stat=stat)
8948 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8949 . msgtype=msgerror,
8950 . c1='MS_PLY')
8951 ms_ply=zero
8952 ALLOCATE(zi_ply(nplyxfe*nplymax),stat=stat)
8953 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8954 . msgtype=msgerror,
8955 . c1='ZI_PLY')
8956 zi_ply=zero
8957
8958 ALLOCATE(msz2(nplyxfe),stat=stat)
8959 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8960 . msgtype=msgerror,
8961 . c1='MSZ2')
8962 msz2=zero
8963
8965 . ms_ply,zi_ply,addcne_pxfem,msz20,msz2)
8966 lcne_pxfem = addcne_pxfem(nplyxfe+1) - 1
8967 ALLOCATE(cne_pxfem(lcne_pxfem),cel_pxfem(eplyxfe))
8968 cne_pxfem = 0
8969 cel_pxfem = 0
8970
8972 . cne_pxfem, cel_pxfem)
8973
8974 ENDIF
8975
8976 DEALLOCATE(ms_ply0,zi_ply0,msz20,itagsh)
8977 DEALLOCATE(itagnd_shxfem)
8979
8980
8981
8982 IF (ndamp_vrel_rby > 0) THEN
8983 CALL damping_rby_spmdset(
igrnod,ngrnod,ndamp,nrdamp,dampr,nnpby,
8984 . nrbody,
npby,nrbmerge)
8985 ENDIF
8986
8987
8988
8989
8990 err_msg='XFEM FOR SHELLS'
8991 err_category='XFEM FOR SHELLS'
8992 CALL trace_in1(err_msg,len_trim(err_msg))
8993
8994
8995 ALLOCATE(crklvset(nlevmax) ,stat=stat)
8996 ALLOCATE(crkshell(nlevmax) ,stat=stat)
8997 ALLOCATE(crksky(nlevmax) ,stat=stat)
8998 ALLOCATE(crkavx(nlevmax) ,stat=stat)
8999 ALLOCATE(indx_crk(nlevmax) ,stat=stat)
9000
9001 indx_crk = 0
9002 ncrkpart = 0
9003 ncrkxfe = 0
9004 ecrkxfe = 0
9005 ecrkxfec = 0
9006 ecrkxfetg= 0
9007
9008 IF(icrack3d > 0) THEN
9009
9010 IF(icrack3d == 1) THEN
9011 WRITE(istdo,'(A)')' .. XFEM MULTI-LAYER SHELL'
9012 ELSEIF(icrack3d == 2)THEN
9013 WRITE(istdo,'(A)')' .. XFEM MONO-LAYER SHELL'
9014 ELSEIF(icrack3d == 3)THEN
9015 WRITE(istdo,'(A)')' .. XFEM MIXED MONO/MULTI-LAYER SHELL'
9016 ENDIF
9017
9018
9019
9020
9021
9022
9024
9025
9028
9029
9030 lcne_crkxfem = addcne_crkxfem(ncrkxfe+1) - 1
9031 ALLOCATE(
crknodiad(lcne_crkxfem) ,stat=stat)
9033 ALLOCATE(cel_crkxfem(ecrkxfe) ,stat=stat)
9034 ALLOCATE(cep_crkxfem(ecrkxfe) ,stat=stat)
9035 ALLOCATE(
nodlevxf(ncrkxfe) ,stat=stat)
9036 ALLOCATE(crkedge(nxlaymax) ,stat=stat)
9037 ALLOCATE(xfem_phantom(nxlaymax) ,stat=stat)
9038 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'NODLEVXF')
9041 cel_crkxfem = 0
9042 cep_crkxfem = 0
9043 numelcrk = 0
9045
9049
9051 . indx_crk,ncrkpart,crkshell)
9052
9053 DEALLOCATE(itagn,itage)
9054
9055 snodglobxfe = 4*ecrkxfe*nlevmax
9056
9057 numedges = 0
9058 siedgesh = 4*ecrkxfec + 3*ecrkxfetg
9059
9060 ALLOCATE(
iedgesh(siedgesh),stat=stat)
9061 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IEDGESH')
9062 ALLOCATE(ibordedge(siedgesh) ,stat=stat)
9063 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IBORDEDGE')
9064 ALLOCATE(
nodedge(2*siedgesh),stat=stat)
9065 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'NODEDGE')
9066 ALLOCATE(
iedge(siedgesh),stat=stat)
9067 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IEDGE')
9068 ALLOCATE(iedge_tmp0(siedgesh),stat=stat)
9069 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IEDGE_TMP0')
9071 ibordedge = 0
9074 iedge_tmp0= 0
9075
9076 IF(ecrkxfec > 0) THEN
9077 iedgesh4 =>
iedgesh(1:4*ecrkxfec)
9079 ELSE
9082 ENDIF
9083
9084 IF(ecrkxfetg > 0) THEN
9085 iedgesh3 =>
iedgesh(1+4*ecrkxfec:siedgesh)
9087 ELSE
9090 ENDIF
9091
9095 . cep_crkxfem,iedge_tmp0)
9096
9098 . crksky ,crkavx,crkedge,xfem_phantom)
9099
9100 IF(ninicrack > 0)
9104 . iedgesh4 ,iedgesh3,
nodedge ,crklvset,
9105 . crkshell,crkedge ,xfem_phantom ,
itab )
9106
9107 ALLOCATE(iedge_tmp(3,numedges),stat=stat)
9108 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9109 . msgtype=msgerror,c1='IEDGE_TMP')
9110 IF(numedges > 0) THEN
9111 DO i=1,numedges
9112 iedge_tmp(1,i) = 0
9113 iedge_tmp(2,i) = 0
9114 iedge_tmp(3,i) = iedge_tmp0(i)
9115 ENDDO
9116 ENDIF
9117 DEALLOCATE(iedge_tmp0)
9118
9119 ALLOCATE(
elcutc(2*(numelc+numeltg)) ,stat=stat)
9120 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9121 . msgtype=msgerror,c1='ELCUTC')
9123
9124 ALLOCATE(
nodenr(ncrkxfe) ,stat=stat)
9125 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9126 . msgtype=msgerror,c1='NODENR')
9128
9130 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9131 . msgtype=msgerror,c1='KXFENOD2ELC')
9133
9134 ALLOCATE(
enrtag(numnod*ienrnod) ,stat=stat)
9135 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9136 . msgtype=msgerror,c1='ENRTAG')
9138
9139 ELSE
9140 numedges = 0
9141 siedgesh = 0
9142 numelcrk= 0
9143 ALLOCATE(
cne_crkxfem(0),cel_crkxfem(0),cep_crkxfem(0))
9145 ALLOCATE(ibordedge(0))
9148 ALLOCATE(iedge_tmp(0,0))
9151 ALLOCATE(crkedge(0))
9152
9157 ENDIF
9158
9160
9161
9162
9163 err_msg='RIGID BODY ELEMENT DEACTIVATION'
9164 err_category='RIGID BODY'
9165 CALL trace_in1(err_msg,len_trim(err_msg))
9168 3 itruoff,ipouoff,iresoff,itrioff,igrnrb2,
9170
9171
9172
9175 3 itruoff,ipouoff,iresoff,itrioff,igrnrby,
9178
9179
9180
9181 err_msg='STAMPING INITIALIZATION'
9182 err_category='INTERFACES'
9183 CALL trace_in1(err_msg,len_trim(err_msg))
9184 IF(ninter/=0)THEN
9185
9186 aux =
max( numnod , numelt+numelp+numelr+numeltg+numelc+100 ,
9187 . maxrtm+100 )
9188 ns_i21 = 2*numnod + 2002 + 4*aux
9189 siwork = ns_i21
9190 srwork =
max(6000,numnod)
9191 ALLOCATE(iwork(siwork) ,stat=stat)
9192 ALLOCATE(rwork(srwork) ,stat=stat)
9193 iwork = 0
9194 rwork = zero
9195
9197 1
ipari ,intbuf_tab ,inscr ,x ,
9199 3 iwork ,rwork ,
ixtg ,d ,
9204 8 ipartc ,ipartg,thk_part,
nom_opt,inom_opt(3))
9205 DEALLOCATE(rwork)
9206 DEALLOCATE(iwork)
9207
9208 END IF
9209
9210
9211 DEALLOCATE(thk_part)
9213
9214
9215
9217
9218
9219
9220 i24maxnsne = 0
9222
9223
9224
9225
9226
9227 err_msg='INTERFACES STIFFNESS'
9228 err_category='INTERFACES'
9229 CALL trace_in1(err_msg,len_trim(err_msg))
9230 IF(ninter>0)THEN
9231 IF (i7stifs/=0) THEN
9232 CALL stifint_icontrol(
9233 1 numnod, stifint, npari, ninter,
9235 3 numels, nixs,
ixs, numels8,
9236 4 numels10, ixs10, numels16, ixs16,
9237 5 numels20, ixs20, npropm, nummat,
9238 6 pm, intbuf_tab)
9240 END IF
9241 DEALLOCATE(stfac)
9242 ENDIF
9244
9245
9246 IF(ninter > 0 .AND.ninterfric >0.AND. iorthfricmax > 0) THEN
9247
9249 a
ipari ,intbuf_tab,intbuf_fric_tab,
igeo ,geo ,
9250 b x ,
ixtg ,
ixc ,ipartg , ipartc ,
9251 c pfricorth,irepforth,phiforth , vforth ,
knod2elc ,
9254
9255
9256
9257 ENDIF
9258
9259 DEALLOCATE(tagprt_fric)
9260
9261
9262
9263 err_msg='LASER IMPACT PHASE 2'
9264 err_msg='LASER'
9265 CALL trace_in1(err_msg,len_trim(err_msg))
9266 IF(nlaser>0) THEN
9268 ENDIF
9270
9271
9272
9273 err_msg='RIVETS'
9274 err_category='RIVETS'
9275 CALL trace_in1(err_msg,len_trim(err_msg))
9276 slrivet = nrivet*4
9277 srivet = nrivet*nrivf
9278 ALLOCATE(
lrivet(slrivet) ,stat=stat)
9279 ALLOCATE(rivet(srivet) ,stat=stat)
9281 rivet = zero
9282
9283 IF(nrivet/=0)THEN
9284 WRITE(istdo,'(A)') ' .. RIVETS '
9288 ENDIF
9289
9291
9292
9293
9294 IF(nb_seatbelt_shells /= 0)THEN
9295 CALL my_alloc(seatbelt_shell_to_spring,numelc,2)
9296 IF(numelc > 0)THEN
9297 seatbelt_shell_to_spring(1:numelc,1) = 0
9298 seatbelt_shell_to_spring(1:numelc,2) = 0
9299 ENDIF
9300
9301 DO i=1,nb_seatbelt_shells
9302
9303 l0 = 0
9304 IF(seatbelt_converted_elements(2,i) /= 0) THEN
9305 l0 =
set_usrtos(seatbelt_converted_elements(1,i),map_tables%ISH4NM,numelc)
9306 ENDIF
9307
9308 l1 = 0
9309 IF(seatbelt_converted_elements(2,i) /= 0) THEN
9310 l1 =
set_usrtos(seatbelt_converted_elements(2,i),map_tables%ISPRINGM,numelr)
9311 ENDIF
9312
9313 l2 = 0
9314 IF(seatbelt_converted_elements(3,i) /= 0) THEN
9315 l2 =
set_usrtos(seatbelt_converted_elements(3,i),map_tables%ISPRINGM,numelr)
9316 ENDIF
9317
9318 IF(l0 /= 0) THEN
9319 seatbelt_shell_to_spring(l0,1) = l1
9320 seatbelt_shell_to_spring(l0,2) = l2
9321 ENDIF
9322
9323 ENDDO
9324 ELSE
9325 CALL my_alloc(seatbelt_shell_to_spring,1,2)
9326 seatbelt_shell_to_spring(1,1) = 0
9327 seatbelt_shell_to_spring(1,2) = 0
9328 ENDIF
9329
9330
9331
9332 err_msg='SECTIONS'
9333 err_category='SECTIONS'
9334 CALL trace_in1(err_msg,len_trim(err_msg))
9335 IF(nsect/=0)THEN
9336 WRITE(istdo,'(A)') ' .. SECTIONS'
9338 1 snstrf ,ssecbuf ,
itabm1 ,0 ,
nom_opt(lnopt1*inom_opt(8)+1),
9341 4 nb_seatbelt_shells)
9342 ALLOCATE(
nstrf(snstrf) ,stat=stat)
9343 ALLOCATE(secbuf(ssecbuf) ,stat=stat)
9345 secbuf = zero
9353 8 nb_seatbelt_shells)
9354 snstrf =
SIZE(
nstrf)
9355 ELSE
9356 snstrf = 0
9357 ssecbuf = 0
9358 ALLOCATE(
nstrf(snstrf) ,stat=stat)
9359 ALLOCATE(secbuf(ssecbuf) ,stat=stat)
9360 ENDIF
9361 IF(ALLOCATED(seatbelt_shell_to_spring)) DEALLOCATE(seatbelt_shell_to_spring)
9363
9364
9365
9366
9368 . inom_opt(8),inom_opt(4),
ixr ,r_skew ,numelr,
9369 . nsect ,ninter ,nintsub ,nrwall ,nrbody )
9370
9371
9372
9373
9374 err_msg='JOINTS'
9375 err_category='JOINTS'
9376 CALL trace_in1(err_msg,len_trim(err_msg))
9378 ALLOCATE(
ljoint(sljoint) ,stat=stat)
9380
9382
9383 IF(njoint/=0)THEN
9384 WRITE(istdo,'(A)') ' .. CYLINDRICAL JOINTS'
9387 .
nom_opt(lnopt1*inom_opt(7)+1),lsubmodel)
9388 ENDIF
9389
9391
9392
9393
9394 err_msg='BLOCK BOUNDARY MATERIAL NODES'
9395 err_category='BLOCK BOUNDARY MATERIAL NODES'
9396 CALL trace_in1(err_msg,len_trim(err_msg))
9397 IF(iale+ieuler /= 0 .AND. numelq+numels > 0) THEN
9399 ENDIF
9401
9402
9403
9404 err_msg='POROUS NODES'
9405 err_category='POROUS NODES'
9406 CALL trace_in1(err_msg,len_trim(err_msg))
9407 IF(iale+ieuler /=0 .AND. numelq+numels >0)THEN
9408 siwork = numnod+4*nfacx
9409 ALLOCATE(iwork(siwork) ,stat=stat)
9410 siwork = 0
9413 snodpor = numpor
9414 ALLOCATE(
nodpor(snodpor) ,stat=stat)
9415 nodpor = iwork(1:snodpor)
9416 DEALLOCATE(iwork)
9417 ELSE
9418 snodpor = 0
9419 ALLOCATE(
nodpor(snodpor) ,stat=stat)
9420 ENDIF
9422
9423 IF(kcontact/=0)THEN
9424 kcontact=1
9425 sicontact=numnod
9428 ELSE
9430 END IF
9431 IF(nadmesh/=0)THEN
9432 srcontact=numnod
9433 ALLOCATE(rcontact(srcontact))
9434 rcontact = ep30
9435 ALLOCATE(acontact(srcontact))
9436 acontact = ep30
9437 ALLOCATE(pcontact(srcontact))
9438 pcontact = zero
9439 ELSE
9440 ALLOCATE(rcontact(0))
9441 ALLOCATE(acontact(0))
9442 ALLOCATE(pcontact(0))
9443 END IF
9444
9445 CALL fvdim(t_monvol)
9447
9448
9449 err_msg='FVMBAG MESHING'
9450 err_category='FVMBAG MESHING'
9451 CALL trace_in1(err_msg,len_trim(err_msg))
9454 ELSE
9456 ENDIF
9457
9458 CALL copy_to_volmon(t_monvol, lrcbag, t_monvol_metadata%RCBAG, svolmon, volmon)
9459
9461
9463 err_msg='BEM FLOW'
9464 err_category='BEM FLOW'
9465 CALL trace_in1(err_msg,len_trim(err_msg))
9466
9467
9468
9469 IF(nflow>0) THEN
9472
9473 ALLOCATE(iflow(liflow), rflow(lrflow))
9474 iflow(1:liflow) = 0
9475 rflow(1:lrflow) = zero
9476
9477 DO i=1,nspmd
9478 memflow(1,i)=0
9479 memflow(2,i)=0
9480 ENDDO
9481
9485
9486 ELSE
9487 ALLOCATE(iflow(0), rflow(0))
9488 ENDIF
9490 err_msg='EULERIAN BOUNDARY CONDITIONS'
9491 err_category='EULERIAN BOUNDARY CONDITIONS'
9492 CALL trace_in1(err_msg,len_trim(err_msg))
9493
9495 segindx = 0
9496
9498 . pm,
igeo, x, sensors,
monvol, multi_fvm%IS_USED, ebcs_tab, ebcs_tag_cell_spmd)
9499
9500 CALL iniebcsp0(x,
iparg, elbuf_tab, ebcs_tab,
ixs,
ixq,
ixtg, iparts, ipartq, ipartg, pm,
ipm, mat_elem%MAT_PARAM)
9501 CALL iniebcs_propellant(
ixs,
ixq,
ixtg,multi_fvm%IS_USED,ebcs_tab,mat_elem%MAT_PARAM,sixs,sixq,sixtg,nummat)
9502 ENDIF
9504
9505
9506
9507 err_msg='LAGRANGE MULTIPLIERS'
9508 err_category='LAGRANGE MULTIPLIERS'
9509 CALL trace_in1(err_msg,len_trim(err_msg))
9510 ncmax = lag_ncf + lag_ncl
9511 nkmax = lag_nkf + lag_nkl
9512 lag_nhl = lag_ncl * 10
9513
9514 IF( ALLOCATED(iadhf) ) DEALLOCATE(iadhf)
9516 IF( ALLOCATED(lll) ) DEALLOCATE(lll)
9517 IF( ALLOCATED(jll) ) DEALLOCATE(jll)
9518 ALLOCATE(iadhf(lag_ncf + 1))
9519 ALLOCATE(
iadll(lag_ncf + 1))
9520 ALLOCATE(lll(lag_nkf))
9521 ALLOCATE(jll(lag_nkf))
9522 IF(lag_ncf > 0) THEN
9523
9527 4 ibmpc3 ,ibmpc4 ,
ibfv ,vel ,
itab ,
9528 5
nom_opt,inom_opt(3),inom_opt(15),inom_opt(16),
9529 6 inom_opt(17),inom_opt(18))
9530 ALLOCATE(jcihf(lag_nhf), stat=stat)
9532
9533 slagbuf = lag_nhf + 3*lag_ncf+2
9534 ALLOCATE(
lagbuf(slagbuf), stat=stat)
9535 l1 = lag_ncf + 1
9536 l2 = l1 + lag_nhf
9537 l3 = l2 + lag_ncf + 1
9538 l4 = l3 + lag_nkf
9539 l5 = l4 + lag_nkf
9541 lagbuf(1:l1) = iadhf(1:lag_ncf + 1)
9542 lagbuf(l1+1:l2) = jcihf(1:lag_nhf)
9543 DEALLOCATE(jll)
9544 DEALLOCATE(iadhf)
9545 DEALLOCATE(jcihf)
9546 ELSE
9547 slagbuf = 0
9548 ALLOCATE(
lagbuf(slagbuf))
9549 ENDIF
9550
9551 IF(nrwlag>0)
9553 .
nom_opt(lnopt1*inom_opt(5)+1))
9554 IF(ninter>0)
9556 .
nom_opt(lnopt1*inom_opt(3)+1))
9557 nhmax = lag_nhf + lag_nhl
9558 lwat = 0
9559 IF(lag_ncl/=0) lwat =
max(6*(numels16+numels20),6*numnod)
9560 l_mul_lag1 = 2*ncmax + 4*nkmax + lwat + numnod + 2
9561 IF(ncmax>0) THEN
9562 l_mul_lag =
max(l_mul_lag1,
9563 . 11*ncmax + 4*nkmax + 3*nhmax + 6*numnod + 2)
9564 ENDIF
9565 slambda = ncmax
9566 ALLOCATE(lambda(slambda), stat=stat)
9567 IF(slambda > 0) lambda = zero
9569
9570
9571
9572 err_msg='GRAVITY NODAL FORCES'
9573 err_category='GRAVITY NODAL FORCES'
9574 CALL trace_in1(err_msg,len_trim(err_msg))
9575 IF(nfxbody>0) THEN
9576 DO nfx=1,nfxbody
9577 aipm=(nfx-1)*nbipm
9578 anod=fxbipm(aipm+6)
9579 nlgrav=fxbipm(aipm+25)
9580 agrvi=fxbipm(aipm+26)
9581 agrvr=fxbipm(aipm+27)
9582 amod=fxbipm(aipm+7)
9583 IF(nlgrav>0)
9585 .
igrv ,
lgrav , fxbipm(aipm+18), fxbnod(anod),
9586 . fxbgrvi(agrvi), fxbgrvr(agrvr), fxbipm(aipm+3), fxbmod(amod),
9587 . fxbipm(aipm+4), fxbipm(aipm+17), ms , grav ,
9588 . skew , fxbipm(aipm+29), nfx , fxbipm(aipm+30))
9589 ENDDO
9590 ENDIF
9592
9593
9594
9595
9596 err_msg='TIME HISTORY PARTS'
9597 err_category='TIME HISTORY'
9598 CALL trace_in1(err_msg,len_trim(err_msg))
9599 IF(nthpart >0) THEN
9602 ENDIF
9604
9610 * ibid )
9611
9612
9613
9614 err_msg='TIME HISTORY GROUPS'
9615 err_category='TIME HISTORY'
9616 CALL trace_in1(err_msg,len_trim(err_msg))
9617
9618
9629 DO i=1,9
9630 nthgrpmx =
max(nthgrp0,nthgrp01(i))
9631 ENDDO
9632
9633
9634 nbr_th_monvol = 0
9635 nbr_th_monvol01(1:9) = 0
9646 DO i=1,9
9647 nbr_th_monvol =
max(nbr_th_monvol,nbr_th_monvol01(i))
9648 ENDDO
9649
9650 output%TH%SITHGRP = (nthgrp0+nbr_th_monvol)*nithgr
9651 lithpart = nthgrpmx*(npart+nthpart)
9652 lithsub = nthgrpmx*nsubs
9653 lithbufmx = 0
9654 lithbufi = 0
9655 nvartot = 0
9656 nvartot0 = 0
9657
9658
9659
9661 DO i=1,9
9663 lithbufmx =
max(lithbufmx,lithbufi,nvartot,nvartot0)
9664 nvartotmax =
max(nvartotmax,nvartot,nvartot0)
9665 ENDDO
9666
9667 sithvar = nvartot0*10+nvartot*10+nvolu*10
9668 ALLOCATE(ithpart(lithpart) , stat=stat)
9669 ALLOCATE(ithsub(lithsub) , stat=stat)
9670 ALLOCATE(ithbuftmp(lithbufmx), stat=stat)
9671 ALLOCATE(
ithvar(sithvar) , stat=stat)
9672 IF(sithvar > 0)
ithvar(1:sithvar) = 0
9673 CALL my_alloc(output%TH%ITHGRP,output%TH%SITHGRP)
9674
9675 output%TH%ITHGRP(1:output%TH%SITHGRP) = 0
9676 ithpart = 0
9677 ithsub = 0
9678 ithbuftmp = 0
9679 output%TH%SITHBUF = 0
9680 ithflag = 10
9681
9682 interfaces%PARAMETERS%INTCAREA =0
9683
9689 5 nthgrp ,ithpart ,ithsub ,fxbipm ,
ipart ,lipart1 ,
9690 6 8 ,12 ,imerge ,
ithvar ,
9691 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9692 8 inom_opt(5),inom_opt(8),inom_opt(7),
9693 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9694 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9696 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9697 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9698 e map_tables, 0,inom_opt(31),inom_opt(32),sensors ,
9699 f interfaces,
ipari ,output%TH%DUMP_THNMS1_FILE,glob_therm%ITHERM_FE,output%CHECKSUM,
9700 g nsubdom,ipri)
9701
9702 CALL my_alloc(output%TH%ITHBUF,output%TH%SITHBUF)
9703 output%TH%ITHBUF(1:output%TH%SITHBUF) = ithbuftmp(1:output%TH%SITHBUF)
9704
9705 If (lithbufmx < output%TH%SITHBUF) then
9706 print*,'Allocation error :LITHBUFMX, SITHBUF=',lithbufmx,output%TH%SITHBUF
9707 endif
9708 ALLOCATE(rthbuf(srthbuf), stat=stat)
9710 1 rthbuf ,output%TH%ITHGRP ,output%TH%ITHBUF,x ,
ixc ,
ixtg ,skew,nthgrp)
9711
9712
9713
9714
9715 IF(nthgrp01(1) > 0) THEN
9716 output%TH%SITHGRPA = (nthgrp01(1)+nbr_th_monvol)*nithgr
9717 CALL my_alloc(output%TH%ITHGRPA,output%TH%SITHGRPA)
9718 output%TH%ITHGRPA = 0
9719 ithpart = 0
9720 ithsub = 0
9721 ithbuftmp = 0
9722 output%TH%SITHBUFA = 0
9723 ithflag = 1
9724
9725 IF(npart+nthpart>0) THEN
9726 ipartthi=>ipartth(1:2*(npart+nthpart))
9727 ELSE
9728 ipartthi=>ipartth
9729 END IF
9735 5 nthgrp1(1),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9737 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9738 8 inom_opt(5),inom_opt(8),inom_opt(7),
9739 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9740 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9742 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9743 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9744 e map_tables, 1,inom_opt(31),inom_opt(32),sensors,
9745 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9746 g nsubdom,ipri)
9747
9748 CALL my_alloc(output%TH%ITHBUFA,output%TH%SITHBUFA)
9749 output%TH%ITHBUFA = ithbuftmp(1:output%TH%SITHBUFA)
9750 ELSE
9751 output%TH%SITHGRPA = 0
9752 output%TH%SITHBUFA = 0
9753 CALL my_alloc(output%TH%ITHGRPA,output%TH%SITHGRPA)
9754 CALL my_alloc(output%TH%ITHBUFA,output%TH%SITHBUFA)
9755 ENDIF
9756
9757
9758
9759 IF(nthgrp01(2) > 0) THEN
9760 output%TH%SITHGRPB = (nthgrp01(2)+nbr_th_monvol)*nithgr
9761 CALL my_alloc(output%TH%ITHGRPB,output%TH%SITHGRPB)
9762 output%TH%ITHGRPB = 0
9763 ithpart = 0
9764 ithsub = 0
9765 ithbuftmp = 0
9766 output%TH%SITHBUFB = 0
9767 ithflag = 2
9768
9769 IF(npart+nthpart>0) THEN
9770 ipartthi=>ipartth(1+2*(npart+nthpart):4*(npart+nthpart))
9771 ELSE
9772 ipartthi=>ipartth
9773 END IF
9779 5 nthgrp1(2),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9781 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9782 8 inom_opt(5),inom_opt(8),inom_opt(7),
9783 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9784 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9786 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9787 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9788 e map_tables, 2,inom_opt(31),inom_opt(32),sensors,
9789 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9790 g nsubdom,ipri)
9791
9792 CALL my_alloc(output%TH%ITHBUFB,output%TH%SITHBUFB)
9793 output%TH%ITHBUFB = ithbuftmp(1:output%TH%SITHBUFB)
9794 ELSE
9795 output%TH%SITHGRPB = 0
9796 output%TH%SITHBUFB = 0
9797 CALL my_alloc(output%TH%ITHGRPB,output%TH%SITHGRPB)
9798 CALL my_alloc(output%TH%ITHBUFB,output%TH%SITHBUFB)
9799 ENDIF
9800
9801
9802
9803 IF(nthgrp01(3) > 0) THEN
9804 output%TH%SITHGRPC = (nthgrp01(3)+nbr_th_monvol)*nithgr
9805 CALL my_alloc(output%TH%ITHGRPC,output%TH%SITHGRPC)
9806 output%TH%ITHGRPC = 0
9807 ithpart = 0
9808 ithsub = 0
9809 ithbuftmp = 0
9810 output%TH%SITHBUFC = 0
9811 ithflag = 3
9812
9813 IF(npart+nthpart>0) THEN
9814 ipartthi=>ipartth(1+4*(npart+nthpart):6*(npart+nthpart))
9815 ELSE
9816 ipartthi=>ipartth
9817 END IF
9823 5 nthgrp1(3),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9825 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9826 8 inom_opt(5),inom_opt(8),inom_opt(7),
9827 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9828 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9830 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9831 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9832 e map_tables, 3,inom_opt(31),inom_opt(32),sensors,
9833 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9834 g nsubdom,ipri)
9835
9836 CALL my_alloc(output%TH%ITHBUFC, output%TH%SITHBUFC)
9837 output%TH%ITHBUFC(1:output%TH%SITHBUFC) = ithbuftmp(1:output%TH%SITHBUFC)
9838 ELSE
9839 output%TH%SITHGRPC = 0
9840 output%TH%SITHBUFC = 0
9841 CALL my_alloc(output%TH%ITHBUFC, output%TH%SITHBUFC)
9842 CALL my_alloc(output%TH%ITHGRPC, output%TH%SITHGRPC)
9843 ENDIF
9844
9845
9846
9847 IF(nthgrp01(4) > 0) THEN
9848 output%TH%SITHGRPD = (nthgrp01(4)+nbr_th_monvol)*nithgr
9849 CALL my_alloc(output%TH%ITHGRPD,output%TH%SITHGRPD)
9850 output%TH%ITHGRPD = 0
9851 ithpart = 0
9852 ithsub = 0
9853 ithbuftmp = 0
9854 output%TH%SITHBUFD = 0
9855 ithflag = 4
9856
9857 IF(npart+nthpart>0) THEN
9858 ipartthi=>ipartth(1+6*(npart+nthpart):8*(npart+nthpart))
9859 ELSE
9860 ipartthi=>ipartth
9861 END IF
9867 5 nthgrp1(4),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9869 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9870 8 inom_opt(5),inom_opt(8),inom_opt(7),
9871 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9872 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9874 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9875 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9876 e map_tables, 4,inom_opt(31),inom_opt(32),sensors,
9877 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9878 g nsubdom,ipri)
9879
9880 CALL my_alloc(output%TH%ITHBUFD,output%TH%SITHBUFD)
9881 output%TH%ITHBUFD(1:output%TH%SITHBUFD) = ithbuftmp(1:output%TH%SITHBUFD)
9882 ELSE
9883 output%TH%SITHGRPD = 0
9884 output%TH%SITHBUFD = 0
9885 ALLOCATE(output%TH%ITHBUFD(output%TH%SITHBUFD), stat=stat)
9886 ALLOCATE(output%TH%ITHGRPD(output%TH%SITHGRPD), stat=stat)
9887 ENDIF
9888
9889
9890
9891 IF(nthgrp01(5) > 0) THEN
9892 output%TH%SITHGRPE = (nthgrp01(5)+nbr_th_monvol)*nithgr
9893 CALL my_alloc(output%TH%ITHGRPE,output%TH%SITHGRPE)
9894 output%TH%ITHGRPE = 0
9895 ithpart = 0
9896 ithsub = 0
9897 ithbuftmp = 0
9898 output%TH%SITHBUFE = 0
9899 ithflag = 5
9900
9901 IF(npart+nthpart>0) THEN
9902 ipartthi=>ipartth(1+8*(npart+nthpart):10*(npart+nthpart))
9903 ELSE
9904 ipartthi=>ipartth
9905 END IF
9906
9912 5 nthgrp1(5),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9914 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9915 8 inom_opt(5),inom_opt(8),inom_opt(7),
9916 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9917 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9919 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9920 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9921 e map_tables, 5,inom_opt(31),inom_opt(32),sensors,
9922 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9923 g nsubdom,ipri)
9924
9925 CALL my_alloc(output%TH%ITHBUFE,output%TH%SITHBUFE)
9926 output%TH%ITHBUFE = ithbuftmp(1:output%TH%SITHBUFE)
9927 ELSE
9928 output%TH%SITHGRPE = 0
9929 output%TH%SITHBUFE = 0
9930 CALL my_alloc(output%TH%ITHBUFE,output%TH%SITHBUFE)
9931 CALL my_alloc(output%TH%ITHGRPE,output%TH%SITHGRPE)
9932 ENDIF
9933
9934
9935
9936 IF(nthgrp01(6) > 0) THEN
9937 output%TH%SITHGRPF = (nthgrp01(6)+nbr_th_monvol)*nithgr
9938 CALL my_alloc(output%TH%ITHGRPF,output%TH%SITHGRPF)
9939 output%TH%ITHGRPF = 0
9940 ithpart = 0
9941 ithsub = 0
9942 ithbuftmp = 0
9943 output%TH%SITHBUFF = 0
9944 ithflag = 6
9945
9946 IF(npart+nthpart>0) THEN
9947 ipartthi=>ipartth(1+10*(npart+nthpart):12*(npart+nthpart))
9948 ELSE
9949 ipartthi=>ipartth
9950 END IF
9956 5 nthgrp1(6),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9958 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9959 8 inom_opt(5),inom_opt(8),inom_opt(7),
9960 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9961 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9963 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9964 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9965 e map_tables, 6,inom_opt(31),inom_opt(32),sensors,
9966 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9967 g nsubdom,ipri)
9968
9969 CALL my_alloc(output%TH%ITHBUFF,output%TH%SITHBUFF)
9970 output%TH%ITHBUFF(1:output%TH%SITHBUFF) = ithbuftmp(1:output%TH%SITHBUFF)
9971 ELSE
9972 output%TH%SITHGRPF = 0
9973 output%TH%SITHBUFF = 0
9974 CALL my_alloc(output%TH%ITHBUFF,output%TH%SITHBUFF)
9975 CALL my_alloc(output%TH%ITHGRPF,output%TH%SITHGRPF)
9976 ENDIF
9977
9978
9979
9980 IF(nthgrp01(7) > 0) THEN
9981 output%TH%SITHGRPG = (nthgrp01(7)+nbr_th_monvol)*nithgr
9982 CALL my_alloc(output%TH%ITHGRPG,output%TH%SITHGRPG)
9983 output%TH%ITHGRPG = 0
9984 output%TH%SITHBUFG = 0
9985 ithpart = 0
9986 ithsub = 0
9987 ithbuftmp = 0
9988 ithflag = 7
9989
9990 IF(npart+nthpart>0) THEN
9991 ipartthi=>ipartth(1+12*(npart+nthpart):14*(npart+nthpart))
9992 ELSE
9993 ipartthi=>ipartth
9994 END IF
10000 5 nthgrp1(7),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10001 6 1 ,1 ,imerge ,
ithvar ,
10002 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10003 8 inom_opt(5),inom_opt(8),inom_opt(7),
10004 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10005 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10007 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10008 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10009 e map_tables, 7,inom_opt(31),inom_opt(32),sensors,
10010 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10011 g nsubdom,ipri)
10012
10013 CALL my_alloc(output%TH%ITHBUFG,output%TH%SITHBUFG)
10014 output%TH%ITHBUFG(1:output%TH%SITHBUFG) = ithbuftmp(1:output%TH%SITHBUFG)
10015 ELSE
10016 output%TH%SITHGRPG = 0
10017 output%TH%SITHBUFG = 0
10018 CALL my_alloc(output%TH%ITHBUFG,output%TH%SITHBUFG)
10019 CALL my_alloc(output%TH%ITHGRPG,output%TH%SITHGRPG)
10020 ENDIF
10021
10022
10023
10024 IF(nthgrp01(8) > 0) THEN
10025 output%TH%SITHGRPH = (nthgrp01(8)+nbr_th_monvol)*nithgr
10026 CALL my_alloc(output%TH%ITHGRPH,output%TH%SITHGRPH)
10027 output%TH%ITHGRPH = 0
10028 ithpart = 0
10029 ithsub = 0
10030 ithbuftmp = 0
10031 output%TH%SITHBUFH = 0
10032 ithflag = 8
10033
10034 IF(npart+nthpart>0) THEN
10035 ipartthi=>ipartth(1+14*(npart+nthpart):16*(npart+nthpart))
10036 ELSE
10037 ipartthi=>ipartth
10038 END IF
10044 5 nthgrp1(8),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10045 6 1 ,1 ,imerge ,
ithvar ,
10046 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10047 8 inom_opt(5),inom_opt(8),inom_opt(7),
10048 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10049 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10051 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10052 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10053 e map_tables, 8,inom_opt(31),inom_opt(32),sensors,
10054 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10055 g nsubdom,ipri)
10056
10057 CALL my_alloc(output%TH%ITHBUFH,output%TH%SITHBUFH)
10058 output%TH%ITHBUFH(1:output%TH%SITHBUFH) = ithbuftmp(1:output%TH%SITHBUFH)
10059 ELSE
10060 output%TH%SITHGRPH = 0
10061 output%TH%SITHBUFH = 0
10062 CALL my_alloc(output%TH%ITHBUFH,output%TH%SITHBUFH)
10063 CALL my_alloc(output%TH%ITHGRPH,output%TH%SITHGRPH)
10064 ENDIF
10065
10066
10067
10068 IF(nthgrp01(9) > 0) THEN
10069 output%TH%SITHGRPI = (nthgrp01(9)+nbr_th_monvol)*nithgr
10070 CALL my_alloc(output%TH%ITHGRPI,output%TH%SITHGRPI)
10071 output%TH%ITHGRPI = 0
10072 ithpart = 0
10073 ithsub = 0
10074 ithbuftmp = 0
10075 output%TH%SITHBUFI = 0
10076 ithflag = 9
10077
10078 IF(npart+nthpart>0) THEN
10079 ipartthi=>ipartth(1+16*(npart+nthpart):18*(npart+nthpart))
10080 ELSE
10081 ipartthi=>ipartth
10082 END IF
10088 5 nthgrp1(9),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10089 6 1 ,1 ,imerge ,
ithvar ,
10090 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10091 8 inom_opt(5),inom_opt(8),inom_opt(7),
10092 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10093 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10095 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10096 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10097 e map_tables, 9,inom_opt(31),inom_opt(32),sensors,
10098 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10099 g nsubdom,ipri)
10100
10101 CALL my_alloc(output%TH%ITHBUFI,output%TH%SITHBUFI)
10102 output%TH%ITHBUFI = ithbuftmp(1:output%TH%SITHBUFI)
10103 ELSE
10104 output%TH%SITHGRPI = 0
10105 output%TH%SITHBUFI = 0
10106 CALL my_alloc(output%TH%ITHBUFI,output%TH%SITHBUFI)
10107 CALL my_alloc(output%TH%ITHGRPI,output%TH%SITHGRPI)
10108 ENDIF
10109
10110
10111 IF(ALLOCATED(ithpart)) DEALLOCATE(ithpart)
10112 IF(ALLOCATED(ithsub)) DEALLOCATE(ithsub)
10113 IF(ALLOCATED(ithbuftmp)) DEALLOCATE(ithbuftmp)
10114
10115
10116
10117
10119 . sizloadp ,nloadp ,slloadp ,nibcld ,npreld ,
10120 . nsurf ,numnod )
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10171 . 0 ,nthgrp )
10172 IF(nthgrp01(1) > 0)
10174 . i ,nthgrp1(1) )
10175 IF(nthgrp01(2) > 0)
10177 . i ,nthgrp1(2) )
10178 IF(nthgrp01(3) > 0)
10180 . i ,nthgrp1(3) )
10181 IF(nthgrp01(4) > 0)
10183 . i ,nthgrp1(4) )
10184 IF(nthgrp01(5) > 0)
10186 . i ,nthgrp1(5) )
10187 IF(nthgrp01(6) > 0)
10189 . i ,nthgrp1(6) )
10190 IF(nthgrp01(7) > 0)
10192 . i ,nthgrp1(7) )
10193 IF(nthgrp01(8) > 0)
10195 . i ,nthgrp1(8) )
10196 IF(nthgrp01(9) > 0)
10198 . i ,nthgrp1(9) )
10200
10201
10202
10203 IF(nsubdom>0) THEN
10206 ENDIF
10207
10208
10209
10210 err_msg='DYNAMIC STORAGE MADYMO LINK'
10211 err_category='DYNAMIC STORAGE MADYMO LINK'
10212 CALL trace_in1(err_msg,len_trim(err_msg))
10213 srconx = nconx*nrcnx
10214 ALLOCATE(rconx(srconx) ,stat=stat)
10215 rconx = zero
10216
10217
10218
10219 IF(nrbmerge > 0) THEN
10220 nrbody = nrbykin + nrbylag
10221 ENDIF
10222
10223
10224
10225
10226 nrcvvois0 = 0
10227
10229 1 lenwa ,nthwa ,nairwa ,numels ,numelq,
10230 2 numelc,numeltg,numelt ,numelp ,numelr,
10231 3 numnod,nmnt ,l_mul_lag1,l_mul_lag,maxnx ,
10232 4 lwasph,numsph ,lwaspio, nrcvvois0,
10233 5 lwamp_l,lwanmp_l ,glob_therm%ITHERM)
10234 lwamp = lwamp_l
10235 lwanmp = lwanmp_l
10236
10237 ALLOCATE(mwa(lenwa) , stat=stat)
10238 mwa = zero
10241
10242
10243
10244
10245
10246 err_msg='INTERFACE INITIALIZATION PHASE 2'
10247 err_category='INTERFACES'
10248 CALL trace_in1(err_msg,len_trim(err_msg))
10249 i2nsnt = 0
10250
10251 ALLOCATE(ms_b(numnod),stat=stat)
10252 ms_b(1:numnod)=ms(1:numnod)
10253 IF(iroddl==1) THEN
10254 ALLOCATE(in_b(numnod),stat=stat)
10255 in_b(1:numnod)=in(1:numnod)
10256 ELSE
10257 ALLOCATE(in_b(1))
10258 ENDIF
10259
10260 IF(ns10e>0.AND.n2d==0)
CALL stifn0_nd(icnds10,stiffn)
10261 IF(ninter > 0) THEN
10265 . mwa ,d ,i2nsnt ,in ,
10267 . intbuf_tab,stifintr,itagnd,icnds10,ms_b,in_b,
nstrf,itagcyc,
10270 . s_nod2els )
10271 ENDIF
10273
10274
10275
10276 IF(ns10e>0.AND.n2d==0)
CALL stifn1_nd(icnds10,stiffn)
10277 IF(ndamp>0)
CALL dampdtnoda(ms_b,in_b,stiffn,stiffn(numnod+1),
10279
10280
10281
10284
10285
10286
10288
10289
10290
10291 err_msg='ADDED MASS ESTIMATION'
10292 err_category='ADDED MASS ESTIMATION'
10293 CALL trace_in1(err_msg,len_trim(err_msg))
10295
10296
10297
10298 IF(nsubdom>0) THEN
10300 . isheoff,itruoff ,ipouoff ,iresoff ,itrioff,
10301 . iquaoff)
10302 ENDIF
10303
10304 DEALLOCATE(stiffn)
10305 DEALLOCATE(stifint)
10306 DEALLOCATE(stifintr)
10307 DEALLOCATE(ms_b)
10308 DEALLOCATE(in_b)
10309 DEALLOCATE(dtelem)
10311
10312
10313
10314 err_msg='RBE3 INITIALIZATION'
10315 err_category='RBE3'
10316 CALL trace_in1(err_msg,len_trim(err_msg))
10317 IF(sirbe3 > 0) THEN
10319 . ms ,in ,
10320 .
nom_opt(lnopt1*inom_opt(14)+1))
10321 ENDIF
10323
10324 err_msg='KINEMATIC CONDITIONS CHECK'
10325 err_category='KINEMATIC CONDITIONS'
10326 CALL trace_in1(err_msg,len_trim(err_msg))
10327
10328
10329
10330 IF(ns10e>0) THEN
10336 END IF
10337
10338
10339
10340
10341
10342
10345 .
nom_opt ,inom_opt(5),inom_opt(13),inom_opt(14) ,
10346 . itagcyc )
10347 IF(ninvel/=0)
10350 2 frbe3,x ,skew ,v ,vr )
10351#ifdef DNC
10352 IF(nexmad/=0)
10353 .
CALL madchk(d ,
itab ,
iconx(7*nconx+1))
10354#endif
10356
10357
10358
10359 err_msg='MASS ARRAY ALLOCATION'
10360 err_category='INIIAL MASS'
10361 CALL trace_in1(err_msg,len_trim(err_msg))
10362 ALLOCATE(ms0(numnod) ,stat=stat)
10363 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
10364 . msgtype=msgerror,
10365 . c1='MS0')
10366 ms0(1:numnod)=ms(1:numnod)
10368
10369
10370
10371
10372 IF(nsphio > 0)THEN
10373 sibufssg_io = 4*nseg_io
10374 ALLOCATE(
ibufssg_io(sibufssg_io) ,stat=stat)
10375 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
10376 . msgtype=msgerror,
10377 . c1='IBUFSSG_IO')
10380 ELSE
10382 sibufssg_io = 0
10383 ENDIF
10384
10385
10386
10387
10388
10389 CALL python_duplicate_nodes(
itab,numnod,nspmd)
10391
10392
10393
10394 err_msg='DOMAIN DECOMPOSITION PHASE 2'
10395 err_category='INTERNAL'
10396 CALL trace_in1(err_msg,len_trim(err_msg))
10397 sfr_iad = (nspmd+1)*2
10398 ALLOCATE(fr_iad(sfr_iad))
10399 IF(i2nsnt>0) THEN
10400 ALLOCATE(celi2(i2nsnt))
10401 ALLOCATE(cepi2(i2nsnt))
10402 ALLOCATE(
addcni2(0:numnod+1))
10403 ENDIF
10404 ALLOCATE(
iskwp(numskw+1))
10405 ALLOCATE(
nskwp(nspmd))
10406 ALLOCATE(
isensp(2*sensors%NSENSOR))
10408 ALLOCATE(
iaccp(naccelm))
10409 ALLOCATE(
naccp(nspmd))
10410 ALLOCATE(
igaup(nbgauge))
10411 ALLOCATE(
ngaup(nspmd))
10412 ALLOCATE(tag_skn(numskw+
nsubmod+1))
10413 ALLOCATE(skews%MULTIPLE_SKEW(numskw+1))
10414 iskwp(1:numskw+1) = 0
10415 tag_skn(1:numskw+
nsubmod+1) = 0
10417
10418 IF(.NOT.
ALLOCATED(
ibvel))
ALLOCATE(
ibvel(0))
10419 IF(.NOT.
ALLOCATED(
lbvel))
ALLOCATE(
lbvel(0))
10420
10427 6
igrsurf,addcne ,lcne ,geo ,
10435 e icnds10,itagnd ,
igeo ,tag_skn ,skews%MULTIPLE_SKEW,
10437 g sensors,scep ,ebcs_tab,loads,
iframe,
10438 h glob_therm%NICONV ,glob_therm%NIRADIA ,glob_therm%NITFLUX,
10439 i glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,
10440 j sensor_user_struct)
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456 IF(ns10e>0) THEN
10457 IF(ipari0/=0) THEN
10458 ALLOCATE(celcnd(ns10e))
10459 ALLOCATE(cepcnd(ns10e))
10460 ALLOCATE(addcncnd(0:numnod+1))
10461 CALL pre_cndpon(icnds10,addcncnd,cepcnd,celcnd ,itagnd )
10462 lcncnd = addcncnd(numnod+1)-addcncnd(1)
10463 IF(lcncnd>0) THEN
10464 ALLOCATE(cncnd(lcncnd))
10465 cncnd(1:lcncnd)=0
10466 CALL fillcncnd(cncnd ,addcncnd,icnds10,itagnd)
10467 END IF
10468 END IF
10469 END IF
10470
10472 err_msg='PROCESS BEM FOR SPMD'
10473 err_category='PROCESS BEM FOR SPMD'
10474 CALL trace_in1(err_msg,len_trim(err_msg))
10475 IF(nflow>0 .AND. nspmd > 1)
CALL flowdec(iflow)
10477
10478
10479
10480 err_msg='CLOSING TMP INPUT FILE'
10481 err_category='INTERNAL'
10482 CALL trace_in1(err_msg,len_trim(err_msg))
10483 IF(ipid/=0) CLOSE (unit=iin)
10485
10486
10487
10488 err_msg='ANIMATION FILE WRITING'
10489 err_category='ANIMATION FILE WRITING'
10490 CALL trace_in1(err_msg,len_trim(err_msg))
10491 WRITE(istdo,'(A)')titre(46)
10492 IF(ioutput>0)
CALL desout(
10495 . geo ,ms ,ixs10 ,
igeo ,
ipm ,
10496 .
kxsp ,
ipart ,ipartsp,names_and_titles )
10497 mwa = zero
10498
10499
10500
10501 ifvani=0
10502 IF(anim_vers>=40.AND.(dsanim==1.OR.
10503 . decani==1.OR.
10504 . nmanim>0.OR.ifvani>0)) THEN
10505 nel3d = numels + numsph + 3*numels16 + 27*numelig3d
10506 nel2d = numelc + numeltg + numelq
10507 nel1d = numelt + numelp + 2*numelr
10508 nel =
max(nel1d,nel2d,nel3d)
10509
10510 siad=npart+1
10511 swaft=
max(3*numnod,6*nel3d,3*nel2d,9*nel1d)
10512 smas=nel+3*numels16
10513 swa4=3*numnod+2*numels16
10514 smater=npart
10515 sel2fa=nel+1
10516 sxnorm=3*numnod+2*numels16
10517 sinvert=nel2d
10518 IF(numelx>0) THEN
10519 snfacptx=npart
10520 sixedge=2*nanim1d
10521 soffx1=nanim1d
10522 snumx1=nanim1d
10523 sfunc1=10*nanim1d
10524 ELSE
10525 snfacptx=1
10526 sixedge=1
10527 soffx1=1
10528 snumx1=1
10529 sfunc1=1
10530 ENDIF
10531
10532 ianim=0
10533 nelem=numelc+numeltg+numels+numelr +
10534 . numelp+numelt +numelq+numelx
10535
10536 CALL my_alloc(dnull,3*numnod)
10537 DO i=1,3*numnod
10538 dnull(i)=zero
10539 ENDDO
10540
10541 DO i=1,mx_ani
10542 anim_n(i)=0
10543 anim_v(i)=0
10544 anim_ce(i)=0
10545 anim_ct(i)=0
10546 anim_se(i)=0
10547 anim_st(i)=0
10548 anim_fe(i)=0
10549 anim_ft(i)=0
10550 ENDDO
10551 anim_m=1
10552 nn_ani=0
10553 nv_ani=nmanim
10554 nce_ani=9*nmanim
10555 nct_ani=2*nmanim
10556 nse_ani=9*nmanim
10557 nst_ani=1*nmanim
10558 nfe_ani=8*nmanim
10559
10565 5
ipart ,iparts ,ipartq ,ipartc ,
10566 6 ipartt ,ipartp ,ipartr ,ipartg ,
10567 7 rby ,swa4 ,
10569 9 ipartsp ,spbuf ,ixs10 ,ixs20 ,ixs16 ,
10570 a
ipm,
igeo, smater, sel2fa, snfacptx,
10571 b sixedge, soffx1, snumx1, sxnorm, sinvert,
10572 c sfunc1, siad , nmanim, dnull, smas,
10573 d ms ,fxani ,mbufel ,mdepl ,nslevel ,
10574 e elsub, dsanim, nelem, cep, cepsp,
10575 f
nom_opt ,inom_opt(5),inom_opt(8),
10577 DEALLOCATE(dnull)
10578
10579 ENDIF
10580
10581
10582
10583
10584 IF((is_dyna /= 0 .OR. nb_dyna_include /= 0) .AND. (ngine+nanim_eng /= 0))THEN
10586 END IF
10587
10588
10589
10602 c skew ,
iskwn ,xframe ,t_monvol ,t_monvol_metadata,
10603 d
i2rupt ,areasl ,intbuf_fric_tab ,npfricorth ,mat_elem ,
10604 e pfricorth ,irepforth ,phiforth ,vforth ,xrefc ,
10605 f xreftg ,xrefs ,tagxref ,
ixs ,
ixc ,
10610 p mgrby ,ixs10 ,isolnod ,
ixr ,r_skew ,
10611 o
ixp ,
ixt ,x ,thke ,sh4ang ,
10612 q thkec ,sh3ang ,
set ,lsubmodel ,
igrnod ,
10619 x xyzref ,sensors ,func2d ,
10621 z ibmpc2 ,ibmpc3 ,ibmpc4 ,rbmpc ,
ljoint ,
10624 c liflow ,lrflow ,iflow ,rflow ,
10627 f gjbufr ,ms ,in ,
lgauge ,gauge ,
10629 h
iconx ,fxbipm ,fxbfile_tab ,eigipm ,eigrpm ,
10630 i
isphio ,vsphio ,ebcs_tab ,inimap1d ,inimap2d ,
10631 j nsigsh ,sigsh ,nsigi ,sigsp ,nsigs ,
10632 k sigi ,nsigbeam ,sigbeam ,nsigtruss ,sigtruss ,
10633 l nsigrs ,sigrs ,merge_node_tab ,merge_node_tol,
10634 m imerge ,nmerge_tot ,
iexlnk ,drapeg ,user_windows ,output ,
10635 n defaults ,glob_therm ,pblast ,ibeam_vector ,rbeam_vector ,
10636 o damp_range_part)
10637
10638 DEALLOCATE(sigi)
10639 DEALLOCATE(sigsh)
10640 DEALLOCATE(sigsp)
10641 DEALLOCATE(sigrs)
10642 DEALLOCATE(sigbeam)
10643 DEALLOCATE(sigtruss)
10644 DEALLOCATE(ibeam_vector)
10645 DEALLOCATE(rbeam_vector)
10646
10647
10648
10649 CALL cpp_delete_model()
10650
10651 IF(ninter > 0) THEN
10653 DEALLOCATE(areasl)
10654 ENDIF
10655 IF(nrbmerge > 0) THEN
10656 DEALLOCATE(mgrby)
10657 ENDIF
10658
10659
10660
10661 IF(nfunc2d > 0) THEN
10662 DO kk = 1, nfunc2d
10663 DEALLOCATE(func2d(kk)%XVAL, func2d(kk)%FVAL)
10664 ENDDO
10665 DEALLOCATE(func2d)
10666 ENDIF
10667 IF(ALLOCATED(rnoise)) DEALLOCATE(rnoise)
10668 IF(ALLOCATED(perturb)) DEALLOCATE(perturb)
10669 IF(ALLOCATED(qp_iperturb)) DEALLOCATE(qp_iperturb)
10670 IF(ALLOCATED(qp_rperturb)) DEALLOCATE(qp_rperturb)
10671
10672
10673 IF(ninter > 0 .AND.ninterfric >0.AND. iorthfricmax > 0) THEN
10674
10675 DEALLOCATE(pfricorth ,irepforth , vforth ,phiforth )
10676
10677 ENDIF
10678
10679
10681 err_msg='RESTART FILE(S) WRITING'
10682 err_category='RESTART FILE(S) WRITING'
10683 CALL trace_in1(err_msg,len_trim(err_msg))
10684 IF(ierr==0) THEN
10685
10686
10687
10690
10691
10692
10693 ilen =
max(numels,numelq,numelc,numelt,numelp,numelr,numeltg)
10694 IF(lcne>0) ALLOCATE(cne(lcne),stat=stat)
10695 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'CNE')
10697 1 cne ,lcne ,
ixs ,ixs10 ,ixs20 ,
10703 7 glob_therm%NICONV ,glob_therm%NIRADIA ,glob_therm%NITFLUX,
10704 8 glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX)
10705 IF(i2nsnt>0) THEN
10706 IF(lcni2g>0) ALLOCATE(cni2(lcni2g))
10709 ENDIF
10710
10711
10713
10714 lenvolu = nimv*nvolu+licbag+libagjet+libaghol+libagale
10715
10716 lnom_opt=snom_opt
10717 lenpor = snodpor
10718
10719 lenthg = output%TH%SITHBUF
10720 lenthgr = srthbuf
10721
10722 lbufmat = sbufmat
10723 lbufgeo = sbufgeo
10724 lbufsf = sbufsf
10725 pm1shf = 1
10726 pm1sph = 1
10727
10728
10729
10731
10734
10736
10739
10741 ENDIF
10742
10743
10744
10745 IF((nsubdom>0).AND.(flg_r2r_err==0)) THEN
10747 IF(iddom>0) THEN
10748 WRITE(istdo,'(A)')' .. MULTIDOMAINS DOMDEC SYNCHRONIZATION '
10750 ELSE
10752 ENDIF
10753 ENDIF
10754
10755
10756
10757
10758
10759 DEALLOCATE(ikine1lag)
10760 DEALLOCATE(iwcont)
10761 DEALLOCATE(iwcin2)
10762 DEALLOCATE(dsdof)
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10776
10777
10778
10779 IF(nspmd > 1 .AND. iddlevel > 0) THEN
10781 ENDIF
10782
10783
10784
10785
10786
10787
10790
10791
10792 ALLOCATE(
addcsrect(numnor+1),csrect(4*nrtmt_25),stat=stat)
10793 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
10794 . msgtype=msgerror,
10795 . c1='CSRECT')
10797
10798 IF(ninter25 /= 0)
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10820
10821
10822
10823
10824
10825
10826
10827
10829 IF(nplymax > 0)THEN
10831 . ipartc,ipartq,ipartg ,stack )
10832 ENDIF
10833
10834
10835
10837
10839
10841
10842 ALLOCATE( ale_elm(nspmd) )
10843 IF( (numels>0).AND.(iale+ieuler+glob_therm%ITHERM+ialelag/=0) ) THEN
10845 ELSE
10846 size_ale_elm(1:nspmd) = 0
10847 ENDIF
10848
10849
10850 IF(iale+ieuler+glob_therm%ITHERM+ialelag/=0) THEN
10851 ALLOCATE( indx_s(numels) )
10852 ALLOCATE( indx_q(numelq) )
10853 ALLOCATE( indx_tg(numeltg) )
10854 ALLOCATE( face_elm_s(6*numels,2) )
10855 ALLOCATE( face_elm_q(4*numelq,2) )
10856 ALLOCATE( face_elm_tg(3*numeltg,2) )
10857
10858 indx_s(1:numels) = 0
10859 indx_q(1:numelq) = 0
10860 indx_tg(1:numeltg) = 0
10861 face_elm_s(1:6*numels,1:2) = 0
10862 face_elm_q(1:4*numelq,1:2) = 0
10863 face_elm_tg(1:3*numeltg,1:2) = 0
10864 bool_ale_tg = (n2d/=0.AND.multi_fvm%IS_USED)
10866 1 face_elm_s,face_elm_q,face_elm_tg,
10867 2
ixs,
ixq,
ixtg,cep,ale_connectivity,bool_ale_tg)
10868
10869 ELSE
10870 ALLOCATE( indx_s(0) )
10871 ALLOCATE( indx_q(0) )
10872 ALLOCATE( indx_tg(0) )
10873 ALLOCATE( face_elm_s(0,0) )
10874 ALLOCATE( face_elm_q(0,0) )
10875 ALLOCATE( face_elm_tg(0,0) )
10876 ENDIF
10877
10878
10879
10880
10881 CALL split_pcyl(loads%NLOAD_CYL,loads,loads_per_proc)
10882
10883
10884
10885
10886 CALL split_bcs_wall(bcs_per_proc, cep, scep, nspmd)
10887
10888
10889
10890
10891 call alloc_constraint_struct(nrwall,nspmd,constraint_struct)
10892 call split_rwall(nrwall,nspmd,nnprw,slprw,
nprw,
lprw,constraint_struct)
10893
10894
10895
10896
10897
10898
10899
10900
10901
10903
10904
10907 p=0
10908 np=p
10909 IF(.NOT. ALLOCATED(partsav)) ALLOCATE(partsav(0))
10910 IF(.NOT. ALLOCATED(admsms)) ALLOCATE(admsms(0))
10911 IF(.NOT. ALLOCATED(dmelc)) ALLOCATE(dmelc(0))
10912 IF(.NOT. ALLOCATED(dmels)) ALLOCATE(dmels(0))
10913 IF(.NOT. ALLOCATED(dmeltg)) ALLOCATE(dmeltg(0))
10914 IF(.NOT. ALLOCATED(dmeltr)) ALLOCATE(dmeltr(0))
10915 IF(.NOT. ALLOCATED(dmelp)) ALLOCATE(dmelp(0))
10916 IF(.NOT. ALLOCATED(dmelrt)) ALLOCATE(dmelrt(0))
10917 IF(.NOT. ALLOCATED(res_sms)) ALLOCATE(res_sms(0))
10918 IF(.NOT. ALLOCATED(diag_sms)) ALLOCATE(diag_sms(0))
10919 IF(.NOT. ALLOCATED(cne_pxfem)) ALLOCATE(cne_pxfem(0))
10920 IF(.NOT. ALLOCATED(cel_pxfem)) ALLOCATE(cel_pxfem(0))
10921 IF(.NOT. ALLOCATED(msz2)) ALLOCATE(msz2(0))
10922 IF(.NOT. ALLOCATED(xfem_phantom)) ALLOCATE(xfem_phantom(0))
10923
10924
10925 nindx_nm = 0
10926 nindx_scrt = 0
10927 IF(ninter>0) THEN
10928 ALLOCATE( tag_nm(numnod) )
10929 ALLOCATE( indx_nm(numnod) )
10930 ALLOCATE( tag_scratch(i24maxnsne2+numnod+numels+numfakenodigeo) )
10931 ALLOCATE(indx_scrt(i24maxnsne2+numnod+numels+numfakenodigeo) )
10932 tag_nm(1:numnod) = 0
10933 indx_nm(1:numnod) = 0
10934 tag_scratch(1:i24maxnsne2+numnod+numels+numfakenodigeo) = 0
10935 indx_scrt(1:i24maxnsne2+numnod+numels+numfakenodigeo) = 0
10936 ELSE
10937 ALLOCATE(tag_nm(0))
10938 ALLOCATE(indx_nm(0))
10939 ALLOCATE( tag_scratch(0) )
10940 ALLOCATE(indx_scrt(0) )
10941 ENDIF
10942
10943 220 CONTINUE
10944
10945
10946 np=np+1
10947 p=np
10948
10949
10950#if defined(_OPENMP)
10951 itask = omp_get_thread_num()
10952#endif
10953
10954 IF(p > nspmd) GOTO 221
10955
10956 NULLIFY(pmemflow) ; IF(nspmd > 0) pmemflow => memflow(1,p)
10957
10958
10960 1 p ,cep ,cel ,
igeo ,mat_elem ,
10963 4 ipartt ,ipartp ,ipartr ,ipartg ,detonators ,
10964 5 ipartx ,
npc ,
ixtg ,group_param_tab,
10965 6
ixtg1 ,
ixs ,ixs10 ,ixs20 ,ixs16 ,
10968 9 ale_connectivity,
10976 h fr_iad ,x ,d ,v ,vr ,
10977 i dr ,thke ,dampr ,damp ,ms ,
10978 j in ,tf ,pm ,skew ,xframe ,
10979 k geo ,eani ,bufmat ,
bufgeo ,bufsf ,
10980 l rbmpc ,gjbufr ,w ,veul ,fill ,
10981 m dfill ,wb ,dsave ,asave ,msnf ,
10982 n spbuf ,forc ,vel ,fsav ,fzero ,
10983 o xlas ,accelm ,fbvel ,grav ,
10984 p fr_wave ,
failwave ,parts0 ,elbuf ,
10985 q rwbuf ,rwsav ,rby ,rivet ,
10986 r secbuf ,volmon ,rconx ,
nloc_dmg ,
10987 s fvmain ,libagale ,lenthg ,lbufmat ,lbufgeo ,
10988 t lbufsf ,sxlas ,lnom_opt ,silas ,
10989 u lenvolu ,npts ,cne ,lcne ,
10990 v addcne ,cni2 ,lcni2g ,
addcni2 ,cepi2 ,
10991 w celi2 ,i2nsnt ,probint ,ddstat(1,p) ,pm1shf,
10994 a nthwa ,nairwa ,nmnt ,l_mul_lag1 ,l_mul_lag ,
10995 b lwaspio ,ipartsp ,
ispcond ,pm1sph ,
10996 c wma ,
10997 d eigipm ,eigibuf ,eigrpm ,
10999 f ipartth ,
11000 j fxbipm ,fxbrpm ,fxbnod ,fxbmod ,fxbglm ,
11001 k fxbcpm ,fxbcps ,fxblm ,fxbfls ,fxbdls ,
11002 l fxbdep ,fxbvit ,fxbacc ,fxbelm ,fxbsig ,
11013 w inc ,intg ,ptg ,mcpc ,mcptg ,
11014 x rcontact ,acontact ,pcontact ,mscnd ,incnd ,
11015 y mssa ,mstr ,msp ,msrt ,
ibcr ,
11016 z fradia ,dmelc ,dmeltg ,dmels ,dmeltr ,
11017 1 dmelp ,dmelrt ,res_sms ,
isphio ,
11020 8 ms_ply,
11024 c msz2 ,itask ,diag_sms,
11033 m i11flag ,xfem_tab ,lenthgr ,rthbuf ,
11035 o ncrkpart ,indx_crk ,crklvset ,crkshell ,crksky ,
11036 p crkavx ,crkedge ,sensors ,
11039 s itagnd ,icnds10 ,addcncnd ,
11040 t cepcnd ,celcnd ,cncnd ,
nativ_sms ,i24maxnsne ,
11044 x poin_part_shell,poin_part_tri,poin_part_sol,mid_pid_shell,mid_pid_tri ,
11045 y mid_pid_sol , tag_nm ,nindx_nm ,indx_nm ,tag_scratch ,
11046 z nindx_scrt , indx_scrt ,flag_24_25 ,numnod_l(p) ,tag_skn ,
11047 a skews%MULTIPLE_SKEW, igrsurf_proc,knotlocpc ,knotlocel ,ale_elm(p),
11049 c indx_s,indx_q,indx_tg,face_elm_s,face_elm_q,face_elm_tg,nbr_th_monvol, ebcs_tab,
11051 e drapeg ,user_windows ,output ,interfaces ,number_load_cyl ,
11052 f loads_per_proc(p), python,dpl0cld,vel0cld ,names_and_titles,
11053 g bcs_per_proc(p),constraint_struct,glob_therm,pblast)
11054 GOTO 220
11055 221 CONTINUE
11056
11057 DEALLOCATE(tag_nm,tag_scratch)
11058 DEALLOCATE(indx_nm,indx_scrt)
11059
11061 ENDIF
11062
11063
11065 DEALLOCATE( igrsurf_proc )
11066
11068
11069 CALL bcs%DEALLOCATE()
11070 DO p=1,nspmd
11071 CALL bcs_per_proc(p)%DEALLOCATE()
11072 ENDDO
11073
11074 DEALLOCATE( ale_elm )
11075
11076 DEALLOCATE( indx_s )
11077 DEALLOCATE( indx_q )
11078 DEALLOCATE( indx_tg )
11079 DEALLOCATE( face_elm_s )
11080 DEALLOCATE( face_elm_q )
11081 DEALLOCATE( face_elm_tg )
11082
11084
11086 err_msg='CLOSING STARTER'
11087 CALL trace_in1(err_msg,len_trim(err_msg))
11088
11089
11090
11091
11093
11094 IF(ALLOCATED(cep)) DEALLOCATE(cep)
11095 IF(ALLOCATED(cel)) DEALLOCATE(cel)
11096
11097 IF(lcne>0)THEN
11098 DEALLOCATE(cne)
11099 END IF
11100
11101 IF(i2nsnt>0) THEN
11102 DEALLOCATE(celi2)
11103 DEALLOCATE(cepi2)
11105 END IF
11115 DEALLOCATE(eigipm, eigibuf, eigrpm)
11116 DEALLOCATE(tag_skn)
11117 DEALLOCATE(skews%MULTIPLE_SKEW)
11118 IF(iddlevel ==1 .OR. ((ninter == 0).AND.(isms == 0))) THEN
11119 DEALLOCATE(tagxref)
11120 DEALLOCATE(tagrefsta)
11121 ENDIF
11122
11123 IF(numsph>0) THEN
11124 DEALLOCATE(cepsp)
11125 END IF
11126 IF(nsphio>0)THEN
11128 DEALLOCATE(reservep)
11129 ENDIF
11130 DEALLOCATE(celsph)
11131
11132 IF(lag_ncf > 0) THEN
11134 DEALLOCATE(lll)
11135 END IF
11136
11137
11138
11140 DEALLOCATE(csrect)
11141 DEALLOCATE(igeo_stack,geo_stack)
11143 IF(ALLOCATED(fxbfile_tab)) DEALLOCATE(fxbfile_tab)
11144
11146 IF(ALLOCATED(tab_ump_old)) DEALLOCATE(tab_ump_old)
11148 IF(ALLOCATED(poin_ump_old)) DEALLOCATE(poin_ump_old)
11149
11150 DEALLOCATE( poin_part_shell )
11151 DEALLOCATE( poin_part_tri )
11152 DEALLOCATE( poin_part_sol )
11153 DO i=1,nummat
11154 IF(ALLOCATED(mid_pid_shell(i)%PID1D))DEALLOCATE( mid_pid_shell(i)%PID1D )
11155 IF(ALLOCATED(mid_pid_shell(i)%COST1D))DEALLOCATE( mid_pid_shell(i)%COST1D )
11156
11157 IF(ALLOCATED(mid_pid_shell(i)%PID1D))DEALLOCATE( mid_pid_tri(i)%PID1D )
11158 IF(ALLOCATED(mid_pid_tri(i)%COST1D))DEALLOCATE( mid_pid_tri(i)%COST1D )
11159 DO j=1,7
11160 IF(ALLOCATED(mid_pid_sol(i,j)%PID1D)) DEALLOCATE( mid_pid_sol(i,j)%PID1D )
11161 IF(ALLOCATED(mid_pid_sol(i,j)%COST1D)) DEALLOCATE( mid_pid_sol(i,j)%COST1D )
11162 ENDDO
11163 ENDDO
11164 DEALLOCATE( mid_pid_shell,mid_pid_tri )
11165 DEALLOCATE( mid_pid_sol )
11166
11167
11170 IF(ALLOCATED(msig3d)) DEALLOCATE(msig3d)
11171 IF(ns10e>0.AND.ipari0/=0) THEN
11172 DEALLOCATE(celcnd)
11173 DEALLOCATE(cepcnd)
11174 DEALLOCATE(addcncnd)
11175 IF(lcncnd>0) DEALLOCATE(cncnd)
11176 END IF
11177 IF(ALLOCATED(itagnd)) DEALLOCATE(itagnd)
11178 IF(ns10e>0) DEALLOCATE(icnds10)
11180 IF(ALLOCATED(t_monvol)) DEALLOCATE(t_monvol)
11182 IF(nbcscyc>0) DEALLOCATE(itagcyc)
11183 IF(ALLOCATED(fvm_inivel)) DEALLOCATE(fvm_inivel)
11184
11185
11186 IF(n_seatbelt > 0) THEN
11187 DO i=1,n_seatbelt
11189 ENDDO
11191 ENDIF
11192
11193 IF(nslipring > 0) THEN
11194 DO i=1,nslipring
11196 ENDDO
11198 ENDIF
11199
11200 IF(nretractor > 0) THEN
11201 DO i=1,nretractor
11203 DO j=1,2
11205 DEALLOCATE(
retractor(i)%TABLE(j)%X(1)%VALUES)
11207 DEALLOCATE(
retractor(i)%TABLE(j)%Y%VALUES)
11209 ENDIF
11210 ENDDO
11211 ENDDO
11213 ENDIF
11214 IF((ipart_stack > 0 .OR. ipart_pcompp > 0) .AND. ndrape > 0) DEALLOCATE(iwork_t)
11215
11216 IF(ALLOCATED(mparam_r2r))THEN
11217 DO i=1,nummat ; CALL mparam_r2r(i)%DESTRUCT() ; ENDDO
11218 DEALLOCATE(mparam_r2r)
11219 ENDIF
11220
11221
11222
11223 call dealloc_constraint_struct(nrwall,constraint_struct)
11224
11225
11226
11227
11228
11230
11231
11232
11233
11235 CALL ddprint(ddstat, memflow)
11236 ELSE
11237 WRITE(iout,*)
11239 ENDIF
11240
11241
11242 ELSE
11243 WRITE(istdo,'(A)')titre(48)
11244 ENDIF
11245
11250
11251 DEALLOCATE(msc,mstg,mssa,mstr,msp,msrt)
11252
11253 DEALLOCATE(mcp,temp)
11255
11258
11259 IF(ALLOCATED(knotlocpc))DEALLOCATE(knotlocpc)
11260 IF(ALLOCATED(knotlocel))DEALLOCATE(knotlocel)
11261
11264
11265 IF(icrack3d > 0) THEN
11268 DEALLOCATE(cel_crkxfem)
11269 DEALLOCATE(cep_crkxfem)
11271 DEALLOCATE(ibordedge)
11275 END IF
11276 IF(ALLOCATED(iedge_tmp)) DEALLOCATE(iedge_tmp)
11281 IF(ALLOCATED(addcne_crkxfem))DEALLOCATE(addcne_crkxfem)
11282
11283
11284
11285 DEALLOCATE(addcne)
11286 DEALLOCATE(addcne_pxfem)
11287 DEALLOCATE(fxbtag)
11288
11289 DEALLOCATE(isolnod)
11290 DEALLOCATE(isoloff)
11291 DEALLOCATE(isheoff)
11292 DEALLOCATE(itruoff)
11293 DEALLOCATE(ipouoff)
11294 DEALLOCATE(iresoff)
11295 DEALLOCATE(itrioff)
11296 DEALLOCATE(igrnrby)
11297 DEALLOCATE(iquaoff)
11298
11299 DEALLOCATE(xrefc)
11300 DEALLOCATE(xreftg)
11301 DEALLOCATE(xrefs)
11303 DEALLOCATE(dflow,vflow,wflow)
11305 IF(ALLOCATED(fillsol)) DEALLOCATE(fillsol)
11306 IF(ALLOCATED(sh3ang)) DEALLOCATE(sh3ang)
11307 IF(ALLOCATED(sh4ang)) DEALLOCATE(sh4ang)
11309 IF(ALLOCATED(multi_fvm%VEL)) DEALLOCATE(multi_fvm%VEL)
11310 IF(ALLOCATED(multi_fvm%ACC)) DEALLOCATE(multi_fvm%ACC)
11311 CALL ale_connectivity%ALE_DEALLOCATE_CONNECTIVITY()
11312 IF(ipart_stack > 0 .OR. ipart_pcompp > 0)
DEALLOCATE(
stack_info)
11314 IF(ALLOCATED(preload)) DEALLOCATE(preload)
11316 IF(ALLOCATED(eos_tag))DEALLOCATE(eos_tag)
11319 IF(ALLOCATED(xseed)) DEALLOCATE(xseed)
11320 IF(ALLOCATED(alea)) DEALLOCATE(alea)
11321 IF(ALLOCATED(irand)) DEALLOCATE(irand)
11322 IF(ALLOCATED(sensors%SENSOR_TAB)) DEALLOCATE(sensors%SENSOR_TAB )
11323 IF(ALLOCATED(sensors%LOGICAL_SENSORS_LIST)) DEALLOCATE(sensors%LOGICAL_SENSORS_LIST)
11324 IF(ALLOCATED(damp_range_part)) DEALLOCATE(damp_range_part)
11325
11326 CALL ebcs_tab%destroy()
11327 IF(ninimap1d > 0 .AND. .NOT. multi_fvm%IS_USED) THEN
11328 DO kk = 1, ninimap1d
11329 DEALLOCATE(inimap1d(kk)%TAGNODE)
11330 ENDDO
11331 ENDIF
11332 DEALLOCATE(inimap1d)
11333
11334 IF(ninimap2d > 0 .AND. .NOT. multi_fvm%IS_USED) THEN
11335 DO kk = 1, ninimap2d
11336 DEALLOCATE(inimap2d(kk)%TAGNODE)
11337 ENDDO
11338 ENDIF
11339 DEALLOCATE(inimap2d)
11340
11341
11343
11345
11346 IF(nfxbody>0) THEN
11347 CLOSE(ifxm)
11348 CLOSE(ifxs)
11349 ENDIF
11350
11351 IF(ALLOCATED( dgapint )) DEALLOCATE(dgapint)
11352
11353 IF(ALLOCATED(dpl0cld)) DEALLOCATE(dpl0cld)
11354 IF(ALLOCATED(vel0cld)) DEALLOCATE(vel0cld)
11355 IF(ALLOCATED(ebcs_tag_cell_spmd)) DEALLOCATE(ebcs_tag_cell_spmd)
11356
11357
11358 RETURN
subroutine add_mass_stat(ms, in, stifn, stifr, itab, totmas)
subroutine addmast10(icnds10, ms)
subroutine admbcs(ixc, ipartc, ixtg, iparttg, ipart, icode, iskew, itab, sh4tree, sh3tree)
subroutine alelec(icode, ixs, ixq, ixc, ixt, ixtg, pm, igeo, itab, geo, nale_r2r, flag_r2r, multi_fvm, ale_connectivity, itherm, ishadow)
subroutine allocxfem(ixc, ixtg, iparg, lcne_crkxfem, crklvset, crksky, crkavx, crkedge, xfem_phantom)
subroutine ani_fasolfr2(fastag, fasolfr, isolnod)
subroutine ani_fasolfr1(ixs, ixc, ixtg, fastag, isolnod)
subroutine ani_segquadfr1(ixq, segtag, knod2elq, nod2elq, x, nseg)
subroutine ani_segquadfr2(segtag, segquadfr)
subroutine build_addcnel_sub(addcnel, cnel, addcnel_sub, indx, subsize)
subroutine build_admesh(ipart, ipartc, iparttg, ixc, ixtg, x, itab, itabm1, sh4tree, sh3tree, ipadmesh, padmesh)
subroutine build_cnel(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixs10, ixs20, ixs16, ixtg1, igeo, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, cnel, addcnel, kxx, ixx, x, lelx, ixig3d, kxig3d, knod2elig3d, nod2elig3d, knod2elq, nod2elq)
subroutine prepare_int25(intbuf_tab, ipari, intercep, nrtmt_25)
subroutine build_csrect(intbuf_tab, ipari, csrect, addcsrect)
subroutine build_cnel_sub(cnel_sub, addcnel_sub, cnel, addcnel, indx, subsize)
subroutine bulkfakeigeo3(elbuf_tab, iparg, pm, kxig3d, igrsurf, stifint)
subroutine c3grhead(ixtg, pm, geo, inum, isel, itr1, eadd, index, itri, xnum, iparttg, nd, thk, igrsurf, igrsh3n, cep, xep, ixtg1, icnod, igeo, ipm, ipart, sh3tree, nod2eltg, itrioff, sh3trim, tagprt_sms, iworksh, stack, drape, rnoise, multi_fvm, sh3ang, drapeg, ptsh3n, mat_param, damp_range_part)
subroutine c3grtails(ixtg, pm, iparg, geo, eadd, nd, iparttg, dd_iad, idx, inum, index, cep, thk, xnum, itr1, igrsurf, igrsh3n, icnod, igeo, ipm, ixtg1, ipart, sh3tree, nod2eltg, itrioff, sh3trim, tagprt_sms, iworksh, stack, drape, rnoise, mat_param, sh3ang, drapeg, print_flag, ptsh3n, damp_range_part)
void c_new_hash(int *map, int *count)
void c_delete_hash(int *map)
void c_hash_insert(int *map, int *key, int *val)
subroutine cdk6inx(ixtg, ixtg1, icnod)
subroutine cgrhead(ixc, pm, geo, inum, isel, itr1, eadd, index, itri, xnum, ipartc, nd, thk, igrsurf, igrsh4n, cep, xep, igeo, ipm, ipart, sh4tree, nod2elc, isheoff, sh4trim, tagprt_sms, lgauge, iworksh, mat_param, stack, drape, rnoise, sh4ang, drapeg, ptshel, damp_range_part)
subroutine cgrtails(ixc, pm, iparg, geo, eadd, nd, ipartc, dd_iad, idx, inum, itr1, index, cep, thk, xnum, igrsurf, igrsh4n, igeo, ipm, ipart, sh4tree, nod2elc, isheoff, sh4trim, tagprt_sms, lgauge, iworksh, stack, drape, rnoise, mat_param, sh4ang, iddlevel, drapeg, print_flag, ptshel, damp_range_part)
subroutine check_dynain(ipart, ipartc, iparttg, ixc, ixtg, dynain_check)
subroutine check_mat_elem_prop_compatibility(elbuf_str, iparg, ipm, igeo, nummat, numgeo, ngroup, nparg, npropmi, npropgi, mat_param, n2d, ixt, numelt, ixp, numelp, ixr, numelr, kxx, numelx)
subroutine check_pthickfail(elbuf_str, mat_param, iparg, geo, ipm, stack, igeo, nummat, numgeo, ngroup, nparg, npropmi, npropgi, npropg)
subroutine check_qeph_stra(istr_24)
subroutine check_surf(igrsurf)
subroutine checkrby(rby, npby, lpby, itab, ikine, iddlevel, nom_opt, numsl)
subroutine chktyp2(ipari, itab, nom_opt, intbuf_tab, nativ_sms)
subroutine compute_connect_partelm(iparts, ipartq, ipartc, ipartt, ipartp, iparttg, ipartr, ipartsp, inv_group, numsph, nisp, kxsp)
subroutine ini_h3dtmax_engine(iparg, ipart, iparts, ipartc, ipartg, iddlevel)
subroutine create_seatbelt(ixr, itab, knod2el1d, nod2el1d, ipm, x, sensors, bufmat, pm, geo, iddlevel, knod2elc, nod2elc, ixc, igeo, iskn, tf, npc)
subroutine dampdtnoda(ms, in, stifn, stifr, igrnod, dampr)
subroutine ddsplit(p, cep, cel, igeo, mat_elem, ipm, icode, iskew, iskn, insel, ibcslag, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, detonators, ipartx, npc, ixtg, group_param_tab, ixtg6, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, itab, itabm1, gjbufi, nale, ale_connectivity, kxx, ixx, ibcl, ibfv, las, laccelm, nnlink, lllink, iparg, igrav, lgrav, ibvel, lbvel, iactiv, factiv, kinet, ipari, nprw, lprw, iexmad, npby, lpby, ixri, nstrf, ljoint, pornod, monvol, icontact, lagbuf, fr_iad, x, d, v, vr, dr, thke, dampr, damp, ms, in, tf, pm, skew, xframe, geo, eani, bufmat, bufgeo, bufsf, brmpc, gjbufr, w, veul, fill, dfill, wb, dsav, asav, msnf, spbuf, fac, vel, fsav, fzero, xlas, accelm, fbvel, gravfac, fr_wave, failwave, parts0, elbuf, rwl, rwsav, rby, rivet, secbuf, rvolu, rconx, nloc_dmg, fvmain, libagale, lenthg, lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt, lenlas, lenvolu, npts, cne, lcne, addcne, cni2, lcni2g, addcni2, cepi2, celi2, i2nsnt, probint, ddstat, pm1shf, dd_iad, kxsp, ixsp, nod2sp, cepsp, nthwa, nairwa, nmnt, l_mul_lag1, l_mul_lag, lwaspio, ipartsp, ispcond, pm1sph, wma, eigipm, eigibuf, eigrpm, iflow, rflow, memflow, iexlnk, fasolfr, iparth, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, iadll, lll, ibmpc, lambda, lrbagale, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, mcp, temp, unitab, intstamp, iframe, clusters, partsav, ibft, fbft, ibcv, fconv, irbe3, lrbe3, frbe3, front_rm, rbym, irbym, lcrbym, inoise, fnoise, ms0, admsms, nom_sect, ispsym, sh4tree, sh3tree, ipadmesh, ibfflux, fbfflux, sh4trim, sh3trim, padmesh, msc, mstg, inc, intg, ptg, mcpc, mcptg, rcontact, acontact, pcontact, mscnd, incnd, mssa, mstr, msp, msrt, ibcr, fradia, dmelc, dmeltg, dmels, dmeltr, dmelp, dmelrt, res_sms, isphio, lprtsph, lonfsph, vsphio, sphveln, alph, ifill, ims, irbe2, lrbe2, ms_ply, zi_ply, inod_pxfem, iel_pxfem, icodply, iskwply, addcne_pxfem, cne_pxfem, cel_pxfem, ithvar, xdp, table, celsph, icfield, lcfield, cfield, msz2, itask, diag_sms, iloadp, lloadp, loadp, inod_crkxfem, iel_crkxfem, addcne_crkxfem, cne_crkxfem, cel_crkxfem, ibufssg_io, intercep, ibordnode, iedgesh, ibordedge, linale, nodedge, iedge, cep_crkxfem, iedge_tmp, crknodiad, elbuf_tab, nom_opt, lgauge, gauge, igaup, ngaup, nodlevxf, frontb_r2r, dflow, vflow, wflow, sph2sol, sol2sph, irst, elcutc, nodenr, kxfenod2elc, enrtag, intbuf_tab, i11flag, xfem_tab, lenthgr, rthbuf, ixig3d, kxig3d, knot, ipartig3d, wige, ncrkpart, indx_crk, crklvset, crkshell, crksky, crkavx, crkedge, sensors, stack, xfem_phantom, t8, tab_ump, poin_ump, sol2sph_typ, addcsrect, csrect, drape, loads, itagnd, icnds10, addcncnd, cepcnd, celcnd, cncnd, nativ_sms, i24maxnsne, multi_fvm, segquadfr, intbuf_fric_tab, subset, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, igrslin, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, numnod_l, tag_skn, multiple_skew, igrsurf_proc, knotlocpc, knotlocel, ale_elm, size_ale_elm, pinch_data, tag_skins6, ibcscyc, lbcscyc, t_monvol, indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, nbr_th_monvol, ebcs_tab, kloadpinter, loadpinter, dgaploadint, s_loadpinter, len_cep, dynain_data, drapeg, user_windows, output, interfaces, number_load_cyl, loads_per_proc, python, dpl0cld, vel0cld, names_and_titles, bcs_per_proc, constraint_struct, glob_therm, pblast)
subroutine deallocate_elbuf(elbuf_tab, igeo, iparg, ixs, ixc, ixtg, flag_xfem, ixt, ixp, ixr, kxx)
subroutine deallocate_igrsurf_split(t_monvol, igrsurf_proc)
This routine deallocates the local IGSURF_PROC arrays.
subroutine desout(x, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, itab, pm, geo, ms, ixs10, igeo, ipm, kxsp, ipart, ipartsp, names_and_titles)
subroutine fillcncnd(cncnd, addcncnd, icnds10, itagnd)
subroutine bcscycmodif_nd(ibcscyc, lbcscyc, itagnd, itab)
subroutine pre_cndpon(icnds10, adskycnd, cepcnd, celcnd, itagnd)
subroutine bcsmodif_nd(icode, itagnd, icnds10, itab)
subroutine ind_s10edg(icnds10, ixs, ixs10, iparg, itagnd)
subroutine stifn1_nd(icnds10, stifn)
subroutine reord_icnd(icnds10, itagnd)
subroutine rigmodif1_nd(npby, lpby, itagnd)
subroutine stifn0_nd(icnds10, stifn)
subroutine rbe2modif1_nd(irbe2, lrbe2, itagnd)
subroutine dim_s10edg(nedg, ixs10, iparg, itagnd)
subroutine fixmodif_nd(ibfv, itagnd, icnds10, itab)
subroutine domdec1(iparg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, dd_iad, x, dd_iad_prev, ixs10, ixs20, ixs16, kxx, ixx, kxsp, ixsp, cepsp, ixtg6)
subroutine domdec2(dd_iad, ipari, ib, npby, lpby, ixri, ibvel, lbvel, iparg, cel, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg6, t_monvol, igrsurf, adsky, lcne, geo, nprw, lprw, lcni2, adskyi2, cepi2, celi2, i2nsnt, iskn, iskwp, nskwp, isensp, nsensp, iaccp, naccp, laccelm, ibcv, irbe3, lrbe3, front_rm, irbym, lcrbym, cep, ibcr, irbe2, lrbe2, cepsp, celsph, iloadp, lloadp, lgauge, igaup, ngaup, intbuf_tab, ibfflux, icnds10, itagnd, igeo, tag_skn, multiple_skew, ibfv, ibcscyc, lbcscyc, r_skew, ipm, sensors, len_cep, ebcs_tab, loads, iframe, niconv, niradia, nitflux, numconv, numradia, nfxflux, sensor_user_struct)
subroutine fillcni2(cni2, lcni2, addcni2, ipari, intbuf_tab)
subroutine ddprint(ddstat, memflow)
subroutine fillcne(cne, lcne, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg6, t_monvol, igrsurf, ib, addcne, cep, ilen, geo, ibcv, ibcr, ibfflux, iloadp, lloadp, cel, ebcs_tab, loads, niconv, niradia, nitflux, numconv, numradia, nfxflux)
subroutine dsdim0(ndof, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, kxx, ixx, geo)
subroutine dtnoda(nodft, nodlt, neltst, ityptst, itab, ms, in, stifn, stifr, dt2t, dmast, dinert, adt, adm, imsch, weight, a, ar, igrnod, nodadt_therm, adi, rbym, arby, arrby, weight_md, mcp, mcp_off, condn, nale, h3d_data)
void sav_buf_point(int *buf, int *i)
subroutine fail_brokmann(nel, nuparam, nuvar, time, timestep, uparam, ngl, signxx, signyy, signxy, uvar, off, ipt, nindxf, indxf, tdel)
subroutine failwave_init(failwave, iparg, ixc, ixtg, numnod)
subroutine fillcne_xfem(lcne_crkxfem, iparg, iel_crkxfem, inod_crkxfem, ixc, ixtg, cep, addcne_crkxfem, cne_xfe, cel_xfe, cep_xfe, crknodiad)
subroutine flowdec(iflow)
subroutine ifrontplus(n, p)
subroutine fsdcod(python, bufmat, pm, geo, ibcl, ipres, ibfv, iskew, iskn, sensors, mat_param, itabm1, skew, laccelm, insel, bufgeo, ibcslag, igeo, ipm, ibft, ibcv, ibfvel, ibcr, table, npc1, npc, pld, nom_opt, ibfflux, glob_therm, nimpvel, nimpdisp, nimpacc)
subroutine m20dcod(mlaw_tag, ipm, pm, mat_param)
subroutine fxbelnum(fxbnod, nsn, iparg, itag, fxbelm, ixs, ixc, ixtg, iparts, ipartc, iparttg, ixt, ixp, ipartt, ipartp)
subroutine fxbgrav(igrv, ibuf, nsni, fxbnod, fxbgrvi, fxbgrvr, nsn, fxbmod, nbml, nbme, ms, grav, skew, ifile, nfx, ircm0)
subroutine fxbtagn(fxbnod, nsn, ntag, ibcld, ibprl, ixs, ixc, ixt, ixp, ixr, ixtg, iparg, itag, nbmo, nbml, nels, nelc, neltg, igrv, ibuf, nlgrav, ipari, intbuf_tab, ifile, nelt, nelp)
subroutine genani1(x, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, iparg, pm, geo, skew, itab, lpby, npby, nstrf, rwbuf, nprw, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, rby, swa4, igrsurf, bufsf, ipartx, kxsp, ixsp, ipartsp, spbuf, ixs10, ixs20, ixs16, ipm, igeo, smater, sel2fa, snfacptx, sixedge, soffx1, snumx1, sxnorm, sinvert, sfunc1, siad, nmanim, d, smas, ms, fxani, mbufel, mdepl, nlevel, elsub, dsanim, nelem, cep, cepsp, nom_opt, ptr_nopt_rwall, ptr_nopt_sect, elbuf_tab, sph2sol, subset)
subroutine get_size_inter24(i24maxnsne, ninter, npari, ipari, flag_24_25)
subroutine get_size_numnod_local(numnod, numnod_l)
subroutine globmat(igeo, geo, pm, pm_stack, geo_stack, igeo_stack)
subroutine globvars(igeo, ixr, nstrf)
subroutine lec_ddw(filnam, len_filnam, tab_ump_old, cputime_mp_old)
subroutine prelec_ddw_poin(filnam, len_filnam)
subroutine lec_ddw_poin(filnam, len_filnam, poin_ump_old)
subroutine reini_matprop2(taille, taille2, tab_ump_loc, tab_ump_loc2, tab_ump, tab_sol, poin_ump)
subroutine dometis(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, cep, geo, itri1, itri2, index1, index2, num, wd, iwcont, nelem, iddlevel, nelemint, inter_cand, pm, x, kxx, ixx, adsky, igeo, isolnod, iwcin2, dsdof, isoloff, isheoff, itrioff, itruoff, ipouoff, iresoff, ielem21, ipm, ixs10, ikine, clusters, kxig3d, ixig3d, cost_r2r, bufmat, taille, poin_ump, tab_ump, poin_ump_old, tab_ump_old, cputime_mp_old, nsnt, nmnt, tabmp_l, iquaoff, igrsurf, fvmain, itab, ipart, ipartc, ipartg, iparts, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, t_monvol, ebcs_tag_cell_spmd, npby, lpby, mat_param)
subroutine reini_matprop(taille, taille2, tab_ump_loc, tab_ump_loc2, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, isolnod, poin_ump)
subroutine spdometis(kxsp, ixsp, nod2sp, cepsp, reservep, sph2sol, cep)
subroutine prelec_ddw(filnam, len_filnam, marqueur3)
subroutine hm_grogronod(igrnod, icount, flag, iter, elkey, lsubmodel)
subroutine hm_lecgrn(itab, itabm1, igrnod, isubmod, x, geo, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartg, ipartsp, kxsp, flag, maxnnod, skew, iskn, unitab, ibox, ixs10, ixs20, ixs16, rtrans, lsubmodel, ixx, kxx, ipartx, iadboxmax, igrslin, subset, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrsurf, nsets)
subroutine hm_lines_of_lines(igrslin, inseg, flag, icount, iter, nsets, lsubmodel)
subroutine hm_option_count(entity_type, hm_option_number)
subroutine hm_pre_read_preload(nstrf, lsubmodel)
subroutine hm_pre_read_link(num, igrnod, lsubmodel)
subroutine hm_prelecgrns(itabm1, igrnod, lsubmodel)
subroutine hm_prelecjoi(num, igrnod, lsubmodel)
subroutine hm_preread_cload(numcld, igrnod, igrsurf, lsubmodel)
subroutine hm_preread_convec(igrsurf, igrnod, igrbric, unitab, lsubmodel, nconvec, numconv)
subroutine hm_preread_grav(num, igrnod, lsubmodel)
subroutine hm_preread_impacc(num, igrnod, lsubmodel)
subroutine hm_preread_impdisp(nimpdisp, igrnod, ipart, ipartr, unitab, lsubmodel)
subroutine hm_preread_impflux(igrsurf, igrnod, igrbric, unitab, lsubmodel, nimpflux, nfxflux)
subroutine hm_preread_imptemp(igrsurf, igrnod, igrbric, unitab, lsubmodel, nimtemp, nfxtemp)
subroutine hm_preread_impvel0(impose_dr, unitab, lsubmodel)
subroutine hm_preread_impvel(nimpvel, igrnod, ipart, ipartr, nfvlag, unitab, lsubmodel)
subroutine hm_preread_load_centri(numcentri, igrnod, igrsurf, lsubmodel)
subroutine hm_preread_load_pressure(numloadp, igrsurf, lsubmodel)
subroutine hm_preread_merge(smgrby, slpby, igrnod, lsubmodel)
subroutine hm_preread_pblast(pblast, numloadp, igrsurf, lsubmodel, nsurf)
subroutine hm_preread_pfluid(numloadp, igrnod, igrsurf, lsubmodel)
subroutine hm_preread_pload(numpres, igrnod, igrsurf, lsubmodel)
subroutine hm_preread_radiation(igrsurf, igrnod, igrbric, unitab, lsubmodel, nradia, numradia)
subroutine hm_preread_rbe3(lnum, lreal, igrnod, grnod_uid, lsubmodel)
subroutine hm_preread_rbody(slpby, igrnod, lsubmodel)
subroutine hm_preread_sphio(igrsurf, svsphio, nom_opt, lsubmodel)
subroutine hm_preread_xelem(num, igrnod, lsubmodel)
subroutine hm_read_activ(iactiv, factiv, sensors, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, lsubmodel, unitab)
subroutine hm_read_admas(ms, itabm1, igrnod, unitab, igrsurf, ipart, ipmas, totaddmas, flag, igrpart, x, lsubmodel)
subroutine hm_read_ale_link(icode, iskew, itab, itabm1, ikine, igrnod, ibcslag, lag_ncf, lag_nkf, lag_nhf, ikine1lag, linale, lsubmodel, unitab)
subroutine hm_read_alebcs(icode, iskew, itab, itabm1, ikine, igrnod, ibcslag, lag_ncf, lag_nkf, lag_nhf, ikine1lag, iskn, nom_opt, lsubmodel)
subroutine hm_read_bcs(icode, iskew, itab, itabm1, ikine, igrnod, ibcslag, lag_ncf, lag_nkf, lag_nhf, ikine1lag, iskn, nom_opt, unitab, lsubmodel, ibcscyc, lbcscyc)
subroutine hm_read_beam(ixp, itab, itabm1, ipart, ipartp, ipm, igeo, lsubmodel, ibeam_vector, rbeam_vector)
subroutine hm_read_bem(igrsurf, iflow, rflow, npc, igrnod, memflow, unitab, x, nom_opt, lgauge, igrv, lsubmodel, iresp)
subroutine hm_preread_bem(igrsurf, igrnod, nnft, unitab, nom_opt, lsubmodel)
subroutine hm_read_box(ibox, unitab, itabm1, iskn, skew, x, rtrans, lsubmodel)
subroutine hm_read_cload(ibcl, forc, num, itab, itabm1, igrnod, nwork, unitab, iskn, lsubmodel, loads)
subroutine hm_read_cluster(clusters, unitab, iskn, igrbric, igrspring, ixs, ixr, nom_opt, lsubmodel)
subroutine hm_read_convec(ib, fac, itab, ixs, igrsurf, unitab, lsubmodel, nconvec, niconv, numconv, lfacther)
subroutine hm_read_cyljoint(ljoint, itabm1, ikine, itab, igrnod, nom_opt, lsubmodel)
subroutine hm_read_damp(dampr, igrnod, iskn, lsubmodel, unitab, snpc1, npc1, ndamp_vrel_rby, igrpart, damp_range_part)
subroutine hm_read_prelecdrape(idrapeid, lsubmodel)
subroutine hm_read_drape(drape_wrk, iwork_t, iworksh, igrsh3n, igrsh4n, ixc, ixtg, igeo, igeo_stack, lsubmodel, unitab, indxsh)
subroutine hm_preread_eig(igrnod, nnt, lsubmodel)
subroutine hm_read_eig(eigipm, eigibuf, eigrpm, igrnod, itabm1, unitab, lsubmodel)
subroutine hm_read_eref(itabm1, ipart, ipartc, ipartg, iparts, ixc, ixtg, ixs, x, xrefc, xreftg, xrefs, lsubmodel, iddlevel, itab, tagxref, tagrefsta)
subroutine hm_read_friction_models(nom_opt, unitab, igrpart, ipart, tagprt_fric, tabcoupleparts_fric_tmp, tabcoef_fric_tmp, intbuf_fric_tab, nsetfrictot, iflag, coefslen, iorthfricmax, ifricorth_tmp, ngrpf, lengrpf, leng, nsetmax, lsubmodel)
subroutine hm_read_friction_orientations(intbuf_fric_tab, npfricorth, igrpart, ipart, pfricorth, irepforth, iskn, phiforth, vforth, skew, iflag, tagprt_fric, rtrans, lsubmodel, unitab)
subroutine hm_read_frm(iskn, x, itab, itabm1, xframe, lsubmodel, rtrans, nom_opt, unitab)
subroutine hm_read_func2d(func2d, lsubmodel, unitab)
subroutine hm_read_funct(npc, pld, nfunct, table, npts_alloc, nom_opt, funcrypt, unitab, lsubmodel)
subroutine hm_read_fxb1(nom_opt, fxbnod, fxbipm, fxb_matrix, fxb_matrix_add, nmanim, itab, itabm1, fxbfile_tab, lsubmodel)
subroutine hm_read_fxb2(fxbipm, fxbrpm, fxbnod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbmod, itab, itabm1, nom_opt, fxb_last_adress, lsubmodel)
subroutine hm_read_gauge(lgauge, gauge, itabm1, unitab, ixc, nom_opt, lsubmodel)
subroutine hm_read_gjoint(gjbufi, gjbufr, itab, itabm, x, mass, iner, lag_ncf, lag_nkf, lag_nhf, ikine, unitab, ikine1lag, nom_opt, lsubmodel)
subroutine hm_read_grav(igrv, lgrav, grav, itab, itabm1, igrnod, npc, sensors, unitab, iskn, itagnd, lsubmodel)
subroutine hm_read_grpart(igrpart, ipart, isubmod, flag, ngrprt, lsubmodel, subset)
subroutine hm_read_impacc(fac, ibfv, nfxvel0, itab, itabm1, ikine, igrnod, iskn, unitab, lsubmodel, num, nimpacc)
subroutine hm_read_impflux(ib, fac, itab, ixs, igrsurf, unitab, igrnod, igrbric, lsubmodel, nimpflux, nitflux, lfacther)
subroutine hm_read_imptemp(ibft, fac, num, itabm1, igrnod, nwork, itab, unitab, lsubmodel, nimtemp, nift, lfacther)
subroutine hm_read_impvel(fbfvel, ibfvel, ikine, ikine1lag, itab, itabm1, igrnod, x0, ixr, ipart, ipartr, iskn, nom_opt, nimpdisp, nimpvel, unitab, lsubmodel)
subroutine hm_read_inicrack(itabm1, inicrack, unitab, lsubmodel)
subroutine hm_read_inigrav(igrv, ibuf, agrv, itab, itabm1, igrpart, npc, unitab, iskn, itagnd, igrsurf, pld, bufsf, lsubmodel)
subroutine hm_read_inimap1d(inimap1d, npc, itabm1, x, igrbric, igrquad, igrsh3n, multi_fvm, unitab, lsubmodel)
subroutine hm_read_inimap2d(inimap2d, func2d, itabm1, xgrid, igrbric, igrquad, igrsh3n, unitab, lsubmodel)
subroutine hm_read_initemp(temp, nintemp, itherm_fe, itab, itabm1, igrnod, initids, unitab, lsubmodel)
subroutine hm_read_inivel(v, w, itab, itabm1, vr, igrnod, igrbric, iskn, skew, inivids, x, unitab, lsubmodel, rtrans, xframe, iframe, vflow, wflow, kxsp, multi_fvm, fvm_inivel, igrquad, igrsh3n, rby_msn, rby_iniaxis, sensors, ninivelt, inivel_t)
subroutine hm_read_interfaces(ipari, frigap, itab, itabm1, igrnod, igrsurf, igrslin, igrbric, igrsh3n, igrtruss, npc, iskn, xfiltr, stfac, fric_p, i2rupt, areasl, unitab, nom_opt, def_inter, npc1, sensors, multi_fvm, nom_optfric, intbuf_fric_tab, lsubmodel, tf, npts, npari, kloadpinter, dgapint, interfaces, sitab, nparir, sitabm1, siskwn, liskn, snpc, snpc1, itherm_fe, intheat)
subroutine hm_read_intsub(igrnod, igrsurf, nom_opt, igrslin, lsubmodel)
subroutine hm_read_lines(itab, itabm1, isubmod, igrslin, igrsurf, x, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, nsegs, flag, skew, iskn, unitab, ibox, rtrans, lsubmodel, ipartx, kxx, ixx, iadboxmax, subset, igrtruss, igrbeam, igrspring, nsets, map_tables)
subroutine hm_read_load_centri(icfield, lcfield, cfield, itab, itabm1, igrnod, npc, sensors, unitab, iframe, lsubmodel)
subroutine hm_read_load_pressure(numloadp, iloadp, lloadp, interloadp, facloadp, kloadpinter, loadpinter, npc, sensors, igrsurf, unitab, iskn, lsubmodel, dgapint, intgaploadp, dgaploadint, s_loadpinter, pblast)
subroutine hm_read_merge(mgrby, smgrby, npby, lpby, slrbody, rby, nom_opt, ptr_nopt_rbmerge, igrnod, itab, itabm1, ibgr, igrv, lsubmodel)
subroutine hm_read_merge_node(x, lsubmodel, unitab, igrnod, merge_node_tab, merge_node_tol, nmerge_node_cand, nmerge_node_dest)
subroutine hm_read_move_funct(npc, pld, nfunct, table, ntable, funcrypt, unitab, lsubmodel)
subroutine hm_read_mpc0(len, lsubmodel)
subroutine hm_read_mpc(rbuf, ibufnc, ibufnn, ibufdl, ibufsk, iskn, itab, itabm, lag_ncf, lag_nkf, lag_nhf, ikine, ikine1lag, nom_opt, itagnd, lsubmodel, unitab)
subroutine hm_read_nbcs(icode, iskew, itab, itabm1, ikine, igrnod, ibcslag, lag_ncf, lag_nkf, lag_nhf, ikine1lag, iskn, nom_opt, lsubmodel)
subroutine hm_read_node(x, itab, itabm1, cmerge, unitab, wige, lsubmodel, is_dyna)
subroutine hm_preread_part(ipart, igeo, lsubmodel)
subroutine hm_read_part(ipart, pm, geo, ipm, igeo, iwa, thk_part, unitab, lsubmodel, multi_fvm, mlaw_tag, mat_param, glob_therm)
subroutine hm_read_pblast(pblast, itab, itabm1, unitab, igrsurf, numloadp, iloadp, lloadp, facloadp, x, bufsf, lsubmodel, rtrans)
subroutine hm_read_pcyl(loads, igrsurf, nsensor, sensor_tab, table, iframe, unitab, lsubmodel, number_load_cyl)
subroutine hm_read_perturb(mat_param, ipart, rnoise, ipartc, ipartg, ipartsp, igrpart, ipm, iparts, perturb, qp_iperturb, qp_rperturb, lsubmodel, unitab)
subroutine hm_read_pfluid(numloadp, iloadp, lloadp, facloadp, npc, sensors, igrsurf, unitab, iframe, lsubmodel)
subroutine hm_read_pload(ipres, pres, nprel, itab, itabm1, igrsurf, unitab, lsubmodel, loads)
subroutine hm_read_preload(ixs, ixs10, ipreload, preload, iflag_bpreload, nstrf, sensors, unitab, x, isolnod, itab, lsubmodel)
subroutine hm_read_prethgrou(ifi, nvartot, lsubmodel, iflag, output)
subroutine hm_read_properties(geo, x, ix, pm, itabm1, bufgeo, lbufgeo, iskn, igeo, ipm, npc, pld, unitab, rtrans, lsubmodel, prop_tag, ipart, knot, idrapeid, stack_info, numgeo_stack, nprop_stack, multi_fvm, iadbuf, defaults)
subroutine hm_read_quad(ixq, itab, itabm1, ipart, ipartq, ipm, igeo, unitab, lsubmodel)
subroutine hm_read_radiation(ib, fac, itab, ixs, igrsurf, unitab, lsubmodel, nradia, numradia, niradia, lfacther)
subroutine hm_read_rand(x, igrnod, itab, irand, alea, xseed, unitab, lsubmodel)
subroutine setrb2on(ixs, ixc, ixtg, igrnod, igrnrb2, isoloff, isheoff, itrioff, itabm1, lsubmodel)
subroutine seteloff2(ixs, ixc, ixt, ixp, ixr, ixtg, iparg, isoloff, isheoff, itruoff, ipouoff, iresoff, itrioff, igrnrb2, igrnod, irbe2)
subroutine hm_read_rbe2(irbe2, lrbe2, itab, itabm1, igrnod, iskn, ikine, iddlevel, nom_opt, itagnd, icdns10, lsubmodel)
subroutine hm_preread_rbe2(lnum, lreal, igrnod, lsubmodel)
subroutine inirbe3(irbe3, lrbe3, frbe3, skew, x, ms, in, nom_opt)
subroutine hm_read_rbe3(irbe3, lrbe3, frbe3, itab, itabm1, igrnod, iskn, lxintd, ikine, iddlevel, nom_opt, itagnd, grnod_uid, unitab, lsubmodel)
subroutine setrbyon(ixs, ixc, ixtg, igrnod, igrnrby, isoloff, isheoff, itrioff, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, ixq, iquaoff, knod2elq, nod2elq, lsubmodel)
subroutine seteloff(ixs, ixc, ixt, ixp, ixr, ixtg, iparg, isoloff, isheoff, itruoff, ipouoff, iresoff, itrioff, igrnrby, igrnod, elbuf_str, iquaoff, ixq)
subroutine hm_read_rbody(rby, npby, lpby, itab, itabm1, igrnod, igrsurf, ibfv, igrv, ibgr, sensors, imerge, unitab, iskn, nom_opt, numsl, knod2els, knod2elc, knod2eltg, knod2el1d, knod2elq, itagnd, icdns10, lsubmodel, icfield, lcfield)
subroutine hm_read_rbody_lagmul(rbyl, npbyl, lpbyl, igrnod, lsubmodel, itab, itabm1, ikine, ikine1lag, nom_opt)
subroutine hm_read_retractor(lsubmodel, itabm1, ixr, itab, unitab, x, func_id, nom_opt, alea, ipm)
subroutine hm_read_rivet(ixri, v, vr, ms, in, rivet, geo, itab, itabm1, ikine, ipart, igeo, lsubmodel)
subroutine hm_read_link(nnlink, lllink, itab, itabm1, ikine, igrnod, iskn, iframe, nom_opt, lsubmodel)
subroutine lecsec42(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, x0, itab, itabm1, igrnod, secbuf, ipari, ixs10, ixs20, ixs16, unitab, iskn, xframe, isolnod, nom_sect, rtrans, lsubmodel, nom_opt, igrbric, igrquad, igrsh4n, igrtruss, igrbeam, igrspring, igrsh3n, seatbelt_shell_to_spring, nb_seatbelt_shells)
subroutine lecsec0(lsubmodel)
subroutine hm_read_sensors(python, sensors, laccelm, itabm1, ipart, lgauge, subset, nsets, igrsurf, igrnod, bufsf, skew, iskwn, unitab, lsubmodel, hm_nsens, sensor_user_struct)
subroutine hm_read_sh3n(ixtg, itab, itabm1, ipart, iparttg, thk, pm, geo, icnod, igeo, ipm, unitab, angle, lsubmodel)
subroutine hm_read_shell(ixc, itab, itabm1, ipart, ipartc, thk, ipm, igeo, unitab, itag, angle, lsubmodel)
subroutine hm_read_skw(skew, iskn, x, itab, itabm1, nsn, lsubmodel, rtrans, nom_opt, unitab)
subroutine hm_read_slipring(lsubmodel, itabm1, ixr, itab, unitab, x, func_id, nom_opt, alea, igrnod, igrsh4n, ixc, ipm)
subroutine inisms(igrpart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, tagprt_sms)
subroutine hm_read_solid(ixs, pm, itab, itabm1, ipart, iparts, isolnod, ixs10, ixs20, ixs16, igeo, lsubmodel, is_dyna, x)
subroutine lce16s4(ixs, pm, icode)
subroutine lce16s3(ixs, isel, pm, ipoint, itab, itabm1, icode, iparts, igrbric, geo, isolnod, ixs10, ipart, ixs20, ixs16, knod2els, nod2els, igrsurf, sph2sol, sol2sph)
subroutine hm_read_spcnd(ispcond, iskew, itab, itabm1, ikine, igrnod, nod2sp, iframe, nom_opt, lsubmodel)
subroutine hm_read_sphcel(itab, itabm1, ipart, ipartsp, ipm, igeo, kxsp, ixsp, nod2sp, reservep, ixs, iparts, isolnod, sph2sol, sol2sph, irst, x, sol2sph_typ, lsubmodel, spbuf, unitab, ipri)
subroutine hm_read_sphio(isphio, vsphio, ipart, igrsurf, nod2sp, ipartsp, itab, x, mfi, lwaspio, itabm1, unitab, lsubmodel, rtrans, nrtrans)
subroutine hm_read_spring(ixr, itab, itabm1, ipart, ipartr, igeo, ixr_kj, lsubmodel, iskn, r_skew, ipm)
subroutine hm_read_subset(subset, ipart, nsubs, npart, lsubmodel)
subroutine hm_read_surf(itab, itabm1, igrsurf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, x, mfi, iskn, skew, bufsf, knod2els, nod2els, sh4tree, sh3tree, isubmod, flag, unitab, ibox, ixs10, ixs16, ixs20, rtrans, lsubmodel, knod2elc, nod2elc, knod2eltg, nod2eltg, kxig3d, ixig3d, ipartig3d, knot, igeo, wige, knod2elig3d, nod2elig3d, v, nige, rige, xige, vige, iadtabige, decaligeo, iadboxmax, knod2elq, nod2elq, subset, igrbric, igrsh4n, igrsh3n, knotlocpc, knotlocel, nsets, map_tables)
subroutine hm_read_surfsurf(igrsurf, inseg, flag, icount, iter, nsets, lsubmodel)
subroutine hm_read_table2(ntable, table, nfunct, unitab, lsubmodel)
subroutine hm_read_table1(ntable, table, nfunct, npc, pld, nom_opt, unitab, lsubmodel)
subroutine hm_read_thgrou(ithgrp, ithbuf, itab, itabm1, ixtg, ixs, ixq, ixc, ixt, ixp, ixr, kxx, ixx, ipart, ifi, nthwa, kxsp, ixri, iskwn, iframe, nthgrp2, pathid, suthid, fxbipm, iparth, nparth, nvparth, nvsubth, imerge, ithvar, flagabf, nvarabf, nom_opt, ptr_nopt_fxby, ptr_nopt_inter, ptr_nopt_rwall, ptr_nopt_sect, ptr_nopt_joint, ptr_nopt_monv, ptr_nopt_acc, ptr_nopt_skw, ptr_nopt_gau, ptr_nopt_clus, ptr_nopt_sphio, isphio, rfi, t_monvol, igrsurf, subset, ithflag, npby, lsubmodel, iparg, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartg, ipartx, ipartsp, ipartig3d, lithbufmx, map_tables, iflag, ptr_nopt_slipring, ptr_nopt_retractor, sensors, interfaces, ipari, dump_thnms1_file, itherm_fe, checksum, nsubdom, ipri)
subroutine hm_read_thpart(ipart, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, lsubmodel)
subroutine hm_read_tria(ixtg, itab, itabm1, ipart, iparttg, pm, geo, icnod, igeo, ipm, unitab, lsubmodel)
subroutine hm_read_truss(ixt, itab, itabm1, ipart, ipartt, ipm, igeo, lsubmodel)
subroutine hm_read_window_user(user_windows, lsubmodel, itab, x, v, vr, ms, in)
subroutine hm_read_xelem(igrnod, itab, itabm1, ipart, ipartx, ipm, igeo, kxx, ixx, lsubmodel)
subroutine hm_read_xref(itabm1, ipart, ipartc, ipartg, iparts, unitab, ixc, ixtg, ixs, x, xrefc, xreftg, xrefs, rtrans, lsubmodel, tagxref, iddlevel, isolnod, ipm, igeo)
subroutine hm_set(set, lsubmodel, inv_group, map_tables, ipart, igrsurf, igrnod, igrslin, igrpart, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, ixs, ixs10, ixc, ixtg, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, ipartc, ipartg, iparts, sh4tree, sh3tree, ixq, knod2elq, nod2elq, x, ixt, ixp, ixr, ixx, kxx, kxsp, ixs20, ixs16, geo, itabm1, ibox, skew, ipartq, ipartt, ipartp, ipartr, subset, rby_msn, iskn, rtrans, unitab, bufsf, iad, siskwn, sskew, rootnam, rootlen, infile_name, infile_name_len)
subroutine hm_setfxrbyon(itabm1, ixs, isoloff, ixc, isheoff, ixt, itruoff, ixp, ipouoff, ixr, iresoff, ixtg, itrioff, fxbipm, lsubmodel)
subroutine hm_yctrl(unitab, lsubmodel, igrbric, ixc, ixtg, ptshel, ptsh3n, nusphcel)
subroutine i24setnodes(ipari, intbuf_tab, intercep, itab, i24maxnsne)
subroutine iedge_xfem(ibordnode, ixc, ixtg, iedgesh4, iedgesh3, ibordedge, nodedge, ielcrkc, ielcrktg, iedge, cep_crk, iedge_tmp0)
subroutine ig3dgrhead(kxig3d, geo, inum, itr1, eadd, index, itri, ipartig3d, nd, igrsurf, cep, xep, igeo, ipm, pm, nige, knotlocel)
subroutine ig3dgrtails(kxig3d, iparg, geo, eadd, nd, dd_iad, idx, lb_max, inum, index, cep, ipartig3d, itr1, igrsurf, ixig3d, igeo, pm, nige, knotlocel, matparam_tab)
subroutine igrsurf_split(scep, cep, t_monvol, igrsurf, igrsurf_proc)
subroutine inicrkfill(elbuf_tab, xfem_tab, ixc, ixtg, iparg, inicrack, x, iel_crk, inod_crk, xrefc, xreftg, iedgesh4, iedgesh3, nodedge, crklvset, crkshell, crkedge, xfem_phantom, itab)
subroutine iniebcs(ale_connectivity, iflag, igrsurf, ixs, ixq, ixtg, pm, igeo, x, sensors, ivolu, multi_fvm_is_used, ebcs_tab, ebcs_tag_cell_spmd)
subroutine iniebcsp0(x, iparg, elbuf_str, ebcs_tab, ixs, ixq, ixtg, iparts, ipartq, iparttg, pm, ipm, mat_param)
subroutine inimu2(pm, ix, f, df)
subroutine inimu3(pm, ix, f, df)
subroutine inimul(pm, f, df, m20_discrete_fill)
subroutine inintr1(ipari, stifint, intbuf_tab, stfac)
subroutine inintr2(ipari, inscr, x, ixs, ixq, ixc, pm, geo, intc, itab, ms, npby, lpby, mwa, ikine, i2nsnt, in, stifn, stifint, nom_opt, inod_pxfem, ms_ply, intbuf_tab, stifintr, itagnd, icnds10, ms_b, in_b, nstrf, itagcyc, irbe2, irbe3, lrbe3, knod2els, nod2els, ixs10, ixs16, ixs20, s_nod2els)
subroutine inintr(ipari, inscr, x, v, ixs, ixq, ixc, pm, geo, itab, ms, mwa, rwa, ixtg, ikine, ixt, ixp, ixr, ale_connectivity, nelemint, iddlevel, ifiend, igrbric, iwcont, iwcin2, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf, ielem21, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, nod2el1d, knod2el1d, ixs10, inter_cand, frigap, ixs16, ixs20, ipm, nom_opt, iparts, siskwn, kxx, ixx, igeo, intercep, lelx, intbuf_tab, fillsol, pm_stack, iworksh, nsnt, nmnt, kxig3d, ixig3d, knod2elq, nod2elq, segquadfr, tagprt_fric, intbuf_fric_tab, ipartt, ipartp, ipartx, ipartr, nsn_multi_connec, t2_nb_connec, sicode, icode, iskew, multi_fvm, s_nod2els, sitab, sitabm1, flag_elem_inter25, list_nin25)
subroutine inintr_orthdirfric(ipari, intbuf_tab, intbuf_fric_tab, igeo, geo, x, ixtg, ixc, iparttg, ipartc, pfricorth, irepforth, phiforth, vforth, knod2elc, knod2eltg, nod2eltg, nod2elc, iworksh, pm, pm_stack, thk, skew, itab, ipart)
subroutine inintr_thkvar(elbuf_tab, ipari, intbuf_tab, inscr, x, ixs, ixc, pm, geo, itab, mwa, rwa, ixtg, ikine, iparg, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, intstamp, skew, ms, in, v, vr, rby, npby, lpby, iparts, ipartc, ipartg, thk_part, nom_opt, ptr_nopt_inter)
subroutine inintsub(itab, igrnod, igrsurf, ipari, maxrtm, nom_opt, intbuf_tab, maxrtms, igrslin, maxnsne)
subroutine inisen(sensors, ipari, nom_opt, ptr_nopt_rwall, ptr_nopt_sect, ptr_nopt_inter, ixr, r_skew, numelr, nsect, ninter, nintsub, nrwall, nrbody)
subroutine init_joint(njoint)
subroutine init_mlaw_tag(mlaw_tag, my_size)
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine)
subroutine inivel(v, vr, svr, itabm1)
subroutine int18_law151_alloc(npari, ninter, numnod, numels, multi_fvm, ipari)
subroutine i2rupt(x, v, a, ms, in, stifn, fsav, weight, irect, nsv, msr, irtl, irupt, crst, mmass, miner, smass, siner, area, uvar, xsm0, dsm, fsm, prop, ipari, nsn, nmn, nuvar, igtyp, pid, npf, tf, itab, fncont, pdama2, isym, inorm, h3d_data, fncontp, ftcontp)
subroutine intbuf_fric_ini_starter(intbuf_fric_tab)
subroutine intbuf_fric_copy(tabcoupleparts_fric_tmp, tabcoef_fric_tmp, tabparts_fric_tmp, nsetinit, ifricorth_tmp, intbuf_fric_tab)
subroutine int8_ini(intbuf_tab, ipari, nbt8)
subroutine intbuf_ini_starter(intbuf_tab, ipari, numn, i11flag, flag_allocate, proc, intbuf_fric_tab)
subroutine inverted_group_dealloc(inv_group)
subroutine inverted_group_init(mode, inv_group, numsph)
integer function set_usrtos(iu, ipartm1, npart)
subroutine islin_ini(igrslin)
subroutine isurf_ini(igrsurf)
subroutine kinchk(ikine, rwl, itab, nprw, lprw, kinet, npby, lpby, irbe2, lrbe2, irbe3, lrbe3, nom_opt, ptr_nopt_rwall, ptr_nopt_rbe2, ptr_nopt_rbe3, itagcyc)
subroutine inivchk(ikine, rwl, itab, nprw, lprw, kinet, npby, lpby, irbe2, lrbe2, irbe3, lrbe3, frbe3, x, skew, v, vr)
subroutine kinrem(ikine, ikinew, rwl, itab, nprw, lprw, npby, lpby)
subroutine lagm_ini(nhf, iadhf, iadll, jll, lll, ipari, intbuf_tab, igrnod, ibcslag, mass, iner, gjbufi, ibufnc, ibufnn, ibufdl, ibufsk, ibfv, vel, itab, nom_opt, ptr_nopt_inter, ptr_nopt_fxv, ptr_nopt_bcs, ptr_nopt_mpc, ptr_nopt_gjoint)
subroutine lagm_nhf(ncf, iadll, jll, lll, jcihf)
subroutine laserp1(las, cep, ixq)
subroutine laserp3(las, iparg)
subroutine lce16q3(ixq, isel, pm, ipoint, itab, itabm1, icode, ipartq, igrquad, ipm, igeo)
subroutine lec_inistate(ixs, ixq, ixc, ixt, ixp, ixr, geo, pm, kxsp, ixtg, index, itri, nsigsh, igeo, ipm, nsigs, nsigsph, ksysusr, ptshel, ptsh3n, ptsol, ptquad, ptsph, numel, nsigrs, unitab, isolnodd00, lsubmodel, rtrans, idrape, nsigi, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, igrbric, map_tables, iparg, stack, iworksh, mat_param, numsph, nisp)
subroutine lecacc(laccelm, accelm, itabm1, unitab, ixc, iskn, nom_opt, lsubmodel)
subroutine ini_bcscyc(ibcscyc, lbcscyc, skew, x, itab, icode, ibfv, itagcyc)
subroutine hm_preread_bcscyc(igrnod, nom_opt, lsubmodel, nbcscynn)
subroutine lecextlnk(iexter, ipart, lsubmodel)
subroutine lecfill(ixs, fillsol, unitab, lsubmodel)
subroutine lecggroup(flagg, icount, iter, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, lsubmodel)
subroutine lecgroup(itab, itabm1, isubmod, x, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartg, flagg, sh4tree, sh3tree, skew, iskn, unitab, ibox, ixs10, ixs16, ixs20, rtrans, lsubmodel, ixs_s, ixs_s_ind, ixq_s, ixq_s_ind, ixc_s, ixc_s_ind, ixt_s, ixt_s_ind, ixp_s, ixp_s_ind, ixr_s, ixr_s_ind, ixtg_s, ixtg_s_ind, iadboxmax, subset, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring)
subroutine lecig3d(itab, ipart, ipartig3d, ipm, igeo, kxig3d, ixig3d, itabm1, nctrlmax, tabconpatch)
subroutine lecins(ipari, itab, pm, ipm, bufmat, igrnod, igrsurf, igrslin, xfiltr, stfac, fric_p, frigap, i2rupt, areasl, lixint, x, linter, ixs, nom_opt, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, intbuf_tab, knod2els, nod2els, ixs10, ixs16, ixs20, nige, rige, xige, vige, igrbric, multi_fvm, nale, igeo, interfaces, s_nod2els, s_nod2eltg, flag_elem_inter25, list_nin25)
subroutine lecint(ipari, linter, ipm, bufmat, nmnt, itab, itabm1, geo, pm, x, igrnod, igrsurf, igrslin, npc, probint, lag_ncf, lag_nkf, lag_ncl, lag_nkl, lag_nhf, maxrtm, iskn, maxrtms, igeo, xfiltr, stfac, fric_p, frigap, i2rupt, areasl, unitab, ixs, nom_opt, itag, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, knod2els, nod2els, ixs10, ixs16, ixs20, def_inter, maxnsne, npc1, multi_fvm, nom_optfric, intbuf_fric_tab, igrbric, igrsh3n, igrtruss, maxrtm_t2, nsn_multi_connec, t2_nb_connec, iddlevel, nale, interfaces, snpc1, flag_elem_inter25, list_nin25)
subroutine leclas(lsubmodel)
subroutine lecrefsta(itabm1, unitab, ixc, ixtg, ixs, xyzref, xrefc, xreftg, xrefs, tagnod, iddlevel, tagref)
subroutine lecsec4bolt(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, x0, nstrf, itab, itabm1, igrnod, secbuf, ipari, ixs10, ixs20, ixs16, unitab, iskn, xframe, isolnod, nom_sect, rtrans, lsubmodel, nom_opt, igrbric)
subroutine lecstack_ply(geo_stack, x, ix, pm, itabm1, iskn, igeo_stack, ipm, npc, pld, unitab, rtrans, lsubmodel, ipart, idrapeid, ply_info, stack_info, numgeo_stack, nprop_stack, defaults)
subroutine lecstamp(ipari, intstamp, unitab, npby, icode, nom_opt, lsubmodel)
subroutine lecsubmod(isubmod, x, unitab, itabm1, rtrans, itab, lsubmodel, is_dyna)
subroutine lectrans(x, igrnod, itab, itabm1, unitab, lsubmodel, rtrans)
subroutine lectranssub(x, igrnod, itab, itabm1, unitab, rtrans, lsubmodel, is_dyna)
subroutine lgmini_i7(ipari, intbuf_tab, mass, itab, igrnod, nom_opt)
subroutine lgmini_rwl(nprw, lprw, mass, itab, nom_opt)
subroutine line_decomp(igrslin)
subroutine create_map_tables(map_tables, mode, lsubmodel, subset, ipart, ixs, ixq, ixc, ixtg, ixt, ixp, ixr, kxsp, lrivet, rby_msn)
subroutine merge(x, itab, itabm1, cmerge, imerge, imerge2, iadmerge2, nmerge_tot)
subroutine merge_node(x, itab, itabm1, imerge, imerge2, iadmerge2, nmerge_tot, merge_node_tab, merge_node_tol, nmerge_node_cand, nmerge_node_dest, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, eani, igrnod)
subroutine multi_connectivity(indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, ixs, ixq, ixtg, cep, ale_connectivity, bool_ale_tg)
subroutine multi_unplug_neighbors(ale_connectivity, ixs, ixq, ixtg)
type(alefvm_buffer_), target alefvm_buffer
type(alefvm_param_), target alefvm_param
integer, dimension(:), allocatable iflag_bpreload
integer, dimension(:), allocatable ipreload
character(len=2048), dimension(check_message_size) check_message
subroutine deallocate_detonators(detonators)
integer, dimension(:), allocatable flagkin
integer, dimension(:), allocatable ientry2
type(fvbag_data), dimension(:), allocatable fvdata
integer, dimension(:), allocatable ixs_temp
type(group_), dimension(:), allocatable, target igrsh4n
type(group_), dimension(:), allocatable, target igrquad
type(group_), dimension(:), allocatable, target igrbeam
type(surf_), dimension(:), allocatable, target igrsurf
type(group_), dimension(:), allocatable, target igrpart
type(group_), dimension(:), allocatable, target igrtruss
type(group_), dimension(:), allocatable, target igrsh3n
type(group_), dimension(:), allocatable, target igrspring
type(group_), dimension(:), allocatable, target igrbric
type(surf_), dimension(:), allocatable, target igrslin
type(subset_), dimension(:), allocatable, target subsets
type(group_), dimension(:), allocatable, target igrnod
integer, dimension(:,:), allocatable inigrv
subroutine init_monvol(t_monvol, t_monvol_metadata, ixc, ixtg, x, npc, itab, igrsurf, sensors, igrbric, mfi, ixs, v, libagale, lrbagale)
type(inivol_struct_), dimension(:), allocatable inivol
character(len=infile_char_len) infile_name
integer, dimension(:), allocatable ielem21
type(intstamp_data), dimension(:), allocatable intstamp
type(joint_type), dimension(:), allocatable cyl_join
subroutine copy_to_monvol(t_monvol, licbag, icbag, smonvol, monvol)
subroutine monvol_allocate(nvolu, t_monvol, t_monvol_metadata)
subroutine copy_to_volmon(t_monvol, lrcbag, rcbag, svolmon, volmon)
subroutine monvol_deallocate(nvolu, t_monvol)
integer, parameter ncharline
integer, dimension(:), allocatable knod2elc
integer, dimension(:), allocatable knod2els
integer, dimension(:), allocatable nod2elig3d
integer, dimension(:), allocatable knod2el1d
integer, dimension(:), allocatable nod2elq
integer, dimension(:), allocatable nod2el1d
integer, dimension(:), allocatable knod2elig3d
integer, dimension(:), allocatable nod2eltg
integer, dimension(:), allocatable nod2elc
integer, dimension(:), allocatable nod2els
integer, dimension(:), allocatable knod2elq
integer, dimension(:), allocatable knod2eltg
type(box_), dimension(:), allocatable, target ibox
type(admas_), dimension(:), allocatable, target ipmas
type(inicrack_), dimension(:), allocatable, target inicrack
integer, dimension(:), allocatable tagno
integer, dimension(:), allocatable tagrby
integer, dimension(:), allocatable tagrb2
integer, dimension(:), allocatable tagrb3
integer, dimension(:), allocatable tag_part
integer, dimension(:), allocatable tag_mat
integer, dimension(:), allocatable flagkin_r2r
integer, dimension(:), allocatable tagint
integer, dimension(:), allocatable taglnk
integer, dimension(:), allocatable front_r2r
integer, dimension(:), allocatable tagjoin
integer, dimension(:), allocatable tagmon
integer, dimension(:), allocatable nncl
integer, dimension(:,:), allocatable ipart_r2r
integer, dimension(:), allocatable tagmpc
integer, dimension(:), allocatable tagcyl
type(random_struct) rand_struct
integer, dimension(:), allocatable irbe3
integer, dimension(:), allocatable poin_ump
integer, dimension(:), allocatable iconx
integer, dimension(:), allocatable, target igrv
integer, dimension(:), allocatable ibcv
integer, dimension(:), allocatable lagbuf
integer, dimension(:), allocatable ixx
integer, dimension(:), allocatable iskewp
integer, dimension(:), allocatable, target lpby
integer, dimension(:), allocatable, target ixs
integer, dimension(:), allocatable icode
integer, dimension(:), allocatable interloadp
integer, dimension(:), allocatable lgrav
integer, dimension(:), allocatable, target npby
integer, dimension(:), allocatable kxig3d
integer, dimension(:), pointer iframe
integer, dimension(:), allocatable nodenr
integer, dimension(:), pointer nige
integer, dimension(:), allocatable nodpor
integer, dimension(:), allocatable front_rm
integer, dimension(:), allocatable lrbe3
integer, dimension(:,:), allocatable ipadmesh
integer, dimension(:), allocatable lbvel
integer, dimension(:), allocatable lprtsph
integer, dimension(:), allocatable ibcr
integer, dimension(:), allocatable ixig3d
integer, dimension(:), allocatable linale
integer, dimension(:), allocatable icodep
integer, dimension(:), allocatable iactiv
integer, dimension(:), allocatable crknodiad
integer, dimension(:), allocatable ibcslag
integer, dimension(:), allocatable ibufssg_io
integer, dimension(:,:), allocatable sh4tree
integer, dimension(:), allocatable ispsym
integer, dimension(:), allocatable sh4trim
integer, dimension(:), allocatable addcsrect
integer, dimension(:), allocatable ipm
integer, dimension(:), allocatable, target ipart
integer, dimension(:), allocatable isphio
integer, dimension(:), allocatable, target ipari
integer, dimension(:), allocatable igaup
type(failwave_str_) failwave
integer, dimension(:), allocatable ispcond
integer, dimension(:), allocatable ibordnode
integer, dimension(:), allocatable sh3trim
integer, dimension(:), allocatable iskew
integer, dimension(:), allocatable, target iedgesh
integer, dimension(:), allocatable ixt
integer, dimension(:), allocatable lnlink
integer, dimension(:), allocatable ibftemp
integer, dimension(:), allocatable ibfv
integer, dimension(:), allocatable inoise
integer, dimension(:), allocatable iaccp
integer, dimension(:), allocatable, target iel_crkxfem
integer, dimension(:), allocatable inod_pxfem
integer, dimension(:), allocatable kloadpinter
integer, dimension(:), allocatable ixr
integer, dimension(:,:), allocatable sh3tree
integer, dimension(:), allocatable lonfsph
double precision, dimension(:), allocatable xdp
integer, dimension(:), allocatable iexlnk
integer, dimension(:), allocatable, target ixtg
integer, dimension(:), pointer lpbyl
integer, dimension(:), allocatable nnlink
integer, dimension(:), allocatable, target ibcl
integer, dimension(:), allocatable monvol
integer, dimension(:), allocatable ifill
integer, dimension(:), allocatable kxfenod2elc
integer, dimension(:), allocatable iskwp
integer, dimension(:), allocatable isensp
integer, dimension(:), allocatable idrape
integer, dimension(:), allocatable irbe2
integer, dimension(:), allocatable inod_crkxfem
integer, dimension(:), allocatable kxsp
integer, dimension(:), allocatable enrtag
integer, dimension(:), allocatable nodlevxf
integer, dimension(:), allocatable loadpinter
integer, dimension(:), allocatable elcutc
integer, dimension(:), allocatable nsensp
integer, dimension(:), allocatable dd_iad
integer, dimension(:), allocatable gjbufi
integer, dimension(:), allocatable, target itabm1
integer, dimension(:), allocatable, target iskwn
integer, dimension(:), allocatable cne_crkxfem
integer, dimension(:), allocatable, target iloadp
integer, dimension(:), allocatable itab
integer, dimension(:), allocatable nprw
integer, dimension(:), allocatable ngaup
integer, dimension(:), allocatable lnrbym
integer, dimension(:), allocatable nod2sp
integer, dimension(:), allocatable weight_rm
integer, dimension(:), allocatable ixp
integer, dimension(:), allocatable laccelm
integer, dimension(:), allocatable, target nom_opt
double precision, dimension(:), allocatable bufgeo
integer, dimension(:), allocatable fasolfr
integer, dimension(:), allocatable, target npc
integer, dimension(:), allocatable igeo
integer, dimension(:), allocatable, target ibmpc
integer, dimension(:), allocatable ixtg1
integer, dimension(:), allocatable ims
integer, dimension(:), allocatable addcni2
integer, dimension(:), allocatable lbcscyc
integer, dimension(:), allocatable ibvel
integer, dimension(:), allocatable lrivet
integer, dimension(:), pointer npbyl
integer, dimension(:), allocatable, target icfield
integer, dimension(:), allocatable kinet
integer, dimension(:), allocatable icodt
integer, dimension(:), allocatable lgauge
integer, dimension(:), allocatable nstrf
integer, dimension(:), allocatable ibcscyc
integer, dimension(:), allocatable tag_skins6
integer, dimension(:), allocatable irbym
integer, dimension(:,:), allocatable ixsp
integer, dimension(:), allocatable iparg
integer, dimension(:), allocatable ixq
integer, dimension(:), allocatable iedge
integer, dimension(:), allocatable ibfflux
integer, dimension(:), allocatable nodedge
integer, dimension(:), allocatable ilas
integer, dimension(:), allocatable lloadp
integer, dimension(:), allocatable segquadfr
integer, dimension(:), allocatable lcfield
integer, dimension(:), allocatable kxx
integer, dimension(:), allocatable nskwp
integer, dimension(:), allocatable nom_sect
integer, dimension(:), allocatable lprw
integer, dimension(:), allocatable icodr
type(nlocal_str_) nloc_dmg
integer, dimension(:), allocatable iel_pxfem
integer, dimension(:), allocatable lrbe2
integer, dimension(:), allocatable ixc
integer, dimension(:), allocatable ljoint
integer, dimension(:,:), allocatable tab_ump
integer, dimension(:), allocatable naccp
integer, dimension(:), allocatable ithvar
integer, dimension(:), allocatable iadll
integer, dimension(:), allocatable icontact
integer, dimension(:), allocatable ipart_state
type(retractor_struct), dimension(:), allocatable retractor
type(seatbelt_struct), dimension(:), allocatable seatbelt_tab
type(slipring_struct), dimension(:), allocatable slipring
type(set_), dimension(:), allocatable, target set
integer, dimension(:), allocatable tagslv_rby_sms
integer, dimension(:), allocatable tagprt_sms
integer, dimension(:), allocatable tagmsr_rby_sms
integer, dimension(:), allocatable nativ_sms
integer, dimension(:), allocatable tagrel_sms
integer, dimension(:), allocatable kad_sms
integer, dimension(:), allocatable lad_sms
integer, dimension(:), allocatable jadrb_sms
integer, dimension(:), allocatable jsm_sms
integer, dimension(:), allocatable jadc_sms
integer, dimension(:), allocatable jadt_sms
integer, dimension(:), allocatable jad_sms
integer, dimension(:), allocatable kdi_sms
integer, dimension(:), allocatable jadtg_sms
integer, dimension(:), allocatable pk_sms
integer, dimension(:), allocatable iad_sms
integer, dimension(:), allocatable jadp_sms
integer, dimension(:), allocatable idi_sms
integer, dimension(:), allocatable jads10_sms
integer, dimension(:), allocatable jads_sms
integer, dimension(:), allocatable jdi_sms
integer, dimension(:), allocatable jadr_sms
integer, dimension(:), allocatable sph2sol
integer, dimension(:), allocatable irst
integer, dimension(:), allocatable sol2sph_typ
integer, dimension(:), allocatable sol2sph
integer, dimension(:), allocatable numgeostack
integer, dimension(:,:), allocatable ply_info
type(stack_info_), dimension(:), pointer stack_info
type(ttable), dimension(:), allocatable table
subroutine nbfunct(nfunct, ntable, npts, lsubmodel)
subroutine sortgroup(ixs_s, ixs_s_ind, ixq_s, ixq_s_ind, ixc_s, ixc_s_ind, ixt_s, ixt_s_ind, ixp_s, ixp_s_ind, ixr_s, ixr_s_ind, ixtg_s, ixtg_s_ind, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, leni)
subroutine nodm11(pm, ixs, ixq, icode)
subroutine outrin(ms, in, stifn, stifr, itab, dtnoda)
subroutine outri(dtelem, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, kxx, kxsp, kxig3d, igeo, numel)
subroutine paroi(pm, ixs, ixq, icode, nale)
subroutine pgrhead(ixp, pm, geo, inum, itr1, eadd, index, itri, ipartp, nd, igrsurf, igrbeam, cep, xep, igeo, ipouoff, tagprt_sms, ipm, itagprld_beam, ibeam_vector, rbeam_vector, xnum)
subroutine pgrtails(mat_param, ixp, iparg, pm, geo, eadd, nd, dd_iad, idx, inum, index, cep, ipartp, itr1, igrsurf, igrbeam, igeo, ipm, ipouoff, tagprt_sms, nod2el1d, print_flag, itagprld_beam, preload_a, npreload_a, ibeam_vector, rbeam_vector, xnum)
subroutine pornod(geo, ixs, ixq, nodpor, icode, itab, npby, lpby, igeo)
subroutine precrkxfem(iparg, ixc, ixtg, ncrkxfe, iel_crkxfem, inod_crkxfem, addcne_crkxfem)
subroutine prelecig3d(num)
subroutine prelecsec4bolt(snstrf, ssecbuf, igrnod, itabm1, flag_r2r, nom_opt, igrbric, lsubmodel)
subroutine prelecsec(snstrf, ssecbuf, itabm1, flag_r2r, nom_opt, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrnod, lsubmodel, seatbelt_shell_to_spring, nb_seatbelt_shells)
subroutine prepare_split_i25e2e(nspmd, intbuf_tab, ipari, intercep)
subroutine fillcne_pxfem(iel, inod, ixc, cep, addcne, cne, cel)
subroutine preplyxfem(ms_ply0, zi_ply0, iel, inod, ixc, ms_ply, zi_ply, addcne, msz20, msz2)
subroutine prerafig3d(knot, knotlocpc, knotlocel, kxig3d, ixig3d, igeo, ipartig3d, x, v, d, ms, wige, tabconpatch, flag_pre)
subroutine preread_rbody_lagmul(slpbyl, igrnod, lsubmodel)
subroutine preread_rbody_set(lsubmodel, itabm1, rby_msn)
subroutine pre_stackgroup(igrsh3n, igrsh4n, ixc, ixtg, igeo, geo, igeo_stack, iworksh, iwork_t)
subroutine prescrint(ipari, intbuf_tab, inscr)
subroutine pretag_xfem(iparg, itage, iel_crkxfem, itagn, inod_crkxfem)
subroutine printbcs(icode, iskew, itab, itabm1, ikine, igrnod, ibcslag, lag_ncf, lag_nkf, lag_nhf, ikine1lag, iskn, nom_opt, nbcslag)
subroutine printgroup(itab, itabm1, igrnod, ninicrack, bufsf, igrsurf, igrslin, inicrack, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixs10, ixs20, ixs16, ipart, kxx, ixig3d, kxig3d, igrquad, igrbric, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart)
subroutine qgrhead(ixq, pm, geo, inum, isel, itr1, eadd, index, itri, ipartq, nd, igrsurf, igrquad, cep, mat_param, xep, igeo, ipm, iquaoff)
subroutine qgrtails(ixq, pm, iparg, geo, eadd, nd, dd_iad, idx, inum, index, cep, ipartq, itr1, igrsurf, igrquad, mat_param, igeo, ipm, iquaoff, inivol, print_flag)
subroutine r2r_check(iexter, igrnod, ipartl)
subroutine r2r_clean_inter(ipari2, intbuf_tab, ipartc, ipartg, iparts, isolnod)
subroutine r2r_domdec(iexter, igrnod, frontb_r2r, dt_r2r, flag)
subroutine r2r_group(ngrou, innod, flag, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartg, ipartsp, ixs10, ixs20, ixs16, kk, buf_nod, ixr_kj, inom_opt, ipart_l, iad, nale_r2r, flg_r2r_err, pm_stack, iworksh, igrbric2, igrquad2, igrsh4n2, igrsh3n2, igrtruss2, igrbeam2, igrspring2, igrnod2, igrsurf2, igrslin2, lsubmodel, ale_euler, igeo_, nloc_dmg, detonators, nsensor, seatbelt_shell_to_spring, nb_seatbelt_shells, mat_param)
subroutine r2r_matparam_copy(matparam_tab, matparam_ini, nummat0, nummat)
subroutine r2r_speedup(dtelem, dtnoda, dt_r2r, cost_r2r, isoloff, isheoff, itruoff, ipouoff, iresoff, itrioff, iquaoff)
subroutine r2r_split(nb_line, nb_surf, flag, eani2, buf_nod, ixr_kj, inom_opt, reservep, nale_r2r, nspcond0, subset, igrsurf, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrslin, lsubmodel, rby_msn, iworksh, seatbelt_shell_to_spring, nb_seatbelt_shells)
subroutine r2r_void(ipartl)
subroutine read_detonators(itabm1, itab, igrnod, pm, ipm, x, unitab, lsubmodel, detonators)
subroutine read_ebcs(igrsurf, multi_fvm, npc1, lsubmodel, ebcs_tab)
subroutine read_engine_driver(igrpart, is_dyna, nb_dyna_include)
subroutine read_material_models(mat_elem, mlaw_tag, fail_tag, eos_tag, bufmat, sbufmat, ipm, pm, unitab, multi_fvm, failwave, nloc_dmg, lsubmodel, table, ltitr, userl_avail, mat_number, npc, tf, snpc, npts, buflen)
subroutine read_monvol(t_monvol, t_monvol_metadata, itab, itabm1, ipm, igeo, x, pm, geo, ixc, ixtg, sensors, unitab, npc, npt, pld, igrsurf, igrbric, nom_opt, iframe, xframe, lsubmodel)
subroutine read_rwall(rwl, nprw, lprw, ifi, ms, v, itab, itabm1, x, ixs, ixq, npc, ikine, igrnod, mfi, imerge, unitab, ikine1lag, iddlevel, lsubmodel, rtrans, nom_opt, itagnd)
subroutine reconnect(ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, igrnod, igrsurf, igrslin, iskn, imerge, nmerge_tot)
subroutine rgrhead(ixr, geo, inum, isel, igeo, itr1, eadd, index, itri, ipartr, nd, igrsurf, igrspring, cep, xep, iresoff, tagprt_sms, clusters, ipm, r_skew, itagprld_spring)
subroutine rgrtails(ixr, iparg, geo, eadd, igeo, nd, dd_iad, idx, inum, index, cep, ipartr, itr1, igrsurf, igrspring, iresoff, tagprt_sms, nod2el1d, ipm, clusters, r_skew, print_flag, itagprld_spring, preload_a, npreload_a)
subroutine rigid_mat(nrb, gnsl, lsn, nslnrm, stifn, stifr, x, v, ms, in, rbym, irbym, lcrbm, nom_opt)
subroutine r2r_nom_opt(nom_opt, inom_opt, in10, in20, snom_opt_old)
subroutine s10edg_rlink(nlink, numlink, nnlink, lnlink, itagnd, icnds10, itab, ipri, numnod, ns10e)
subroutine chk_dttsh(elbuf_str, ixs, iparg, ikine)
subroutine scrint(ipari, inscr, intbuf_tab)
subroutine presearchigeo3d(igrsurf, xigetmp, permige)
subroutine searchigeo3d(igrsurf, iadtabigeini, perm, nigetmp, nige, rigetmp, rige, xigetmp, xige, vigetmp, vige, ndoublonstot)
subroutine sensor_user_convert_local_id(itabm1, pointer_entity, number_entity, list_entity, mode0, ipart)
subroutine sensor_user_init(sensor_user_struct)
subroutine set_admesh(ipart, ipadmesh, padmesh, unitab, lsubmodel)
subroutine init_mat_weight(nummat)
subroutine set_elgroup_param(group_param_tab, iparg, ngroup, n2d, ipm, igeo, pm, geo, bufmat)
subroutine set_poin_ump(ipart, ipm, tab_ump, poin_ump, taille)
subroutine setmulti(ipari)
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 sgrhead(ixs, pm, geo, inum, isel, itr1, eadd, index, itri, iparts, nd, igrsurf, igrbric, isolnod, cep, xep, ixs10, ixs20, ixs16, igeo, ipm, nod2els, isoloff, tagprt_sms, sph2sol, sol2sph, mat_param, sol2sph_typ, iflag_bpreload, clusters, rnoise, damp_range_part)
subroutine sgrtails(ixs, pm, iparg, geo, eadd, nd, iparts, dd_iad, idx, isolnod, inum, index, cep, itr1, ixs10, igrsurf, igrbric, ixs20, ixs16, igeo, iddlevel, ipm, nod2els, isoloff, isolnod1, tagprt_sms, inivol, sph2sol, sol2sph, sol2sph_typ, iflag_bpreload, clusters, matparam_tab, rnoise, print_flag, damp_range_part)
subroutine shellthk_upd(drape, stack, thk, ixc, ixtg, igeo, iworksh, indx)
subroutine sort_surf(igrsurf, ixs, ixc, ixtg, ixq, ixp, ixr, ixt, kxx, nixx)
subroutine spgrhead(kxsp, ixsp, iparg, pm, ipart, ipartsp, eadd, cepsp, nd, ipm, igeo, spbuf, sph2sol, sol2sph, irst, mat_param, ixsps)
subroutine spgrtails(kxsp, iparg, pm, ipart, ipartsp, eadd, nd, cepsp, dd_iad, idx, ixsp, ipm, igeo, spbuf, sph2sol, sol2sph, irst, nod2sp, print_flag, mat_param, ixsps)
subroutine sphdcod(npc, isphio, nom_opt)
subroutine sphonf0(kxsp, ixsp, nod2sp, ipart, ipartsp, lprtsph, lonfsph)
subroutine spinih(kxsp, ipart, ipartsp, spbuf, pm, ixsp, nod2sp, x, lprtsph, lonfsph, snod2sp, slonfsph, numnod, npart, itab)
subroutine split_cfd_solide(numels, ale_connectivity, ixs, ale_elm, size_ale_elm)
subroutine deallocate_split_cfd_solide(ale_elm)
subroutine split_pcyl(total_number_pcyl, loads, loads_per_proc)
subroutine sptri(kxsp, ixsp, nod2sp, x, spbuf, lprtsph, lonfsph, ipartsp, sz_intp_dist, max_intp_dist_part, pre_search)
subroutine surfext_tagn(ixs, knod2els, nod2els, ixs10, fastag, itab)
subroutine fictivmassigeo(intbuf_tab, nctrlmax, msig3d, kxig3d)
subroutine printstsz(detonators)
subroutine st_qaprint_driver(igeo, geo, bufgeo, ipm, pm, bufmat, nom_opt, inom_opt, numloadp, iloadp, lloadp, loadp, ibcl, forc, ipres, pres, npby, lpby, rby, ibcr, fradia, ibcv, fconv, ibftemp, fbftemp, igrv, lgrv, agrv, ibfflux, fbfflux, itab, v, vr, w, icode, iskew, icfield, lcfield, cfield, dampr, temp, ibcslag, ipari, intbuf_tab, clusters, ibox, ipmas, ibfvel, fbfvel, nimpacc, laccelm, accelm, nom_sect, nstrf, secbuf, skew, iskwn, xframe, t_monvol, t_monvol_metadata, i2rupt, areasl, intbuf_fric_tab, npfricorth, mat_elem, pfricorth, irepforth, phiforth, vforth, xrefc, xreftg, xrefs, tagxref, ixs, ixc, ixtg, rwbuf, nprw, lprw, ithvar, ipart, subsets, ipartth, nthgrpmx, nimpdisp, nimpvel, detonators, ibcscyc, npc, pld, table, npts, irbe3, lrbe3, frbe3, mgrby, ixs10, isolnod, ixr, r_skew, ixp, ixt, x, thke, sh4ang, thkec, sh3ang, set, lsubmodel, igrnod, igrpart, igrbric, igrsh4n, igrsh3n, igrquad, igrbeam, igrtruss, igrspring, igrsurf, igrslin, ixq, ispcond, rtrans, irand, alea, xseed, xlas, las, irbe2, lrbe2, kxsp, ipartsp, drape, ixr_kj, iactiv, factiv, unitab, npbyl, lpbyl, rbyl, xyzref, sensors, func2d, inicrack, ipreload, preload, iflag_bpreload, ibmpc, ibmpc2, ibmpc3, ibmpc4, rbmpc, ljoint, nnlink, lnlink, bufsf, sbufsf_, pm_stack, geo_stack, igeo_stack, iparg, ipadmesh, padmesh, liflow, lrflow, iflow, rflow, sh4tree, sh3tree, sh4trim, sh3trim, qp_iperturb, qp_rperturb, llinal, linale, fvm_inivel, gjbufi, gjbufr, ms, in, lgauge, gauge, kxx, ixx, ipartx, ixri, ixs16, iexmad, fxbipm, fxbfile_tab, eigipm, eigrpm, isphio, vsphio, ebcs_tab, inimap1d, inimap2d, nsigsh, sigsh, nsigi, sigsp, nsigs, sigi, nsigbeam, sigbeam, nsigtruss, sigtruss, nsigrs, sigrs, merge_node_tab, merge_node_tol, imerge, nmerge_tot, iexlnk, drapeg, user_windows, output, defaults, glob_therm, pblast, ibeam_vector, rbeam_vector, damp_range_part)
subroutine stackgroup(igrsh3n, igrsh4n, ixc, ixtg, igeo, geo, iworksh, thk, stack, ipm, igeo_stack, geo_stack, stack_info, numgeo_stack, nprop_stack)
subroutine stackgroup_drape(drape, drapeg, iwork_t, iworksh, igrsh3n, igrsh4n, ixc, ixtg, igeo, geo, thk, stack, igeo_stack, geo_stack, stack_info, numgeo_stack, nprop_stack, ply_info)
subroutine applysort2fvm(t_monvol)
subroutine fvmesh0(t_monvol, xyzini, ixs, ixc, ixtg, pm, ipm, igrsurf, xyzref, nb_node)
subroutine fvdim(t_monvol)
subroutine sms_ini_jad_1(ixc, iparg, ixs, ixt, ixp, ixr, ixtg, ixs10, nodnx_sms, jadc_sms, jads_sms, jads10_sms, jadt_sms, jadp_sms, jadr_sms, jadtg_sms, tagprt_sms, kad_sms, kdi_sms, pk_sms, tagrel_sms, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, npby, lpby, kinet, tagslv_rby_sms, ipari, intbuf_tab, lad_sms, ipart, igeo, nativ_sms, iad_sms, idi_sms, jad_sms, jdi_sms, t2main_sms)
subroutine sms_ini_jad_2(ixc, iparg, ixs, ixt, ixp, ixr, ixtg, ixs10, nodnx_sms, jadc_sms, jads_sms, jads10_sms, jadt_sms, jadp_sms, jadr_sms, jadtg_sms, tagprt_sms, kad_sms, kdi_sms, tagrel_sms, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, npby, lpby, kinet, tagslv_rby_sms, ipari, intbuf_tab, lad_sms, nprw, lprw, tagmsr_rby_sms, intstamp, ipart, igeo, nativ_sms, irbe2, lrbe2, iad_sms, idi_sms, jad_sms, jdi_sms, t2main_sms)
subroutine sms_ini_kdi(ixc, iparg, ixs, ixt, ixp, ixr, ixtg, ixs10, nodnx_sms, kad_sms, kdi_sms, jadc_sms, jads_sms, jads10_sms, jadt_sms, jadp_sms, jadr_sms, jadtg_sms, tagprt_sms, iad_sms, tagrel_sms, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, npby, lpby, kinet, tagslv_rby_sms, ipari, intbuf_tab, lad_sms, ipart, igeo, nativ_sms)
subroutine sms_ini_kad(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs16, ixs20, iparg, ms, ms0, nodnx_sms, icodt, icodr, kinet, kad_sms, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, tagprt_sms, tagrel_sms, itab, irbe2, irbe3, lrbe2, lrbe3, nprw, lprw, ipart, igeo, nativ_sms)
subroutine sms_ini_jad_3(ixc, iparg, ixs, ixt, ixp, ixr, ixtg, ixs10, nodnx_sms, jadc_sms, jads_sms, jads10_sms, jadt_sms, jadp_sms, jadr_sms, jadtg_sms, tagprt_sms, kad_sms, kdi_sms, tagrel_sms, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, npby, lpby, kinet, tagslv_rby_sms, ipari, intbuf_tab, lad_sms, jsm_sms, intstamp, ipart, igeo, tagmsr_rby_sms, nativ_sms, iad_sms, idi_sms, jad_sms, jdi_sms, t2main_sms)
subroutine sms_init(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs16, ixs20, iparg, nodnx_sms, icodt, icodr, kinet, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipartx, tagprt_sms, itab, irbe2, irbe3, lrbe2, lrbe3, nprw, lprw, ipart, igeo, ipm, nativ_sms, npby, lpby, tagmsr_rby_sms, tagslv_rby_sms, nom_opt)
subroutine deallocate_joint()
subroutine elbuf_ini(elbuf_tab, mat_param, mlaw_tag, prop_tag, fail_tag, igeo, ipm, pm, iparg, ipart, ipartsp, ixs, ixq, ixc, ixtg, flag_xfem, ipartig3d, stack, igeo_stack, ixt, ixp, ixr, kxx, geo, eos_tag, istr_24, print_flag, defaults)
subroutine int18_law151_init(s_append_array, ninter, npari, numnod, numels, ngrbric, multi_fvm, igrbric, ipari, ixs, x, v, ms, kinet, x_append, v_append, mass_append, kinet_append)
subroutine group_ini(igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart)
subroutine subset_ini(subset)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine spmd_anim_ply_init(igeo, geo, iparg, ixc, ixtg, ipartc, ipartq, iparttg, stack)
subroutine tet4_10(igeo, itet4_10)
subroutine set_ibufssg_io(isphio, igrsurf, ibufssg_io)
subroutine init_permutation()
subroutine startime(event, itask)
subroutine stoptime(event, itask)
subroutine trace_in1(my_char, ilen)
subroutine state_admesh(ipart, ipartc, iparttg, ixc, ixtg, sh4tree, sh3tree, sh4trim, sh3trim, lsubmodel)
subroutine t3grhead(ixtg, pm, geo, inum, isel, itr1, eadd, index, itri, xnum, iparttg, nd, thk, igrsurf, igrsh3n, cep, xep, ixtg1, icnod, igeo, ipm, ipart, sh3tree, nod2eltg, itrioff, sh3trim, tagprt_sms, mat_param, iworksh, stack, drape, rnoise, multi_fvm, sh3ang, drapeg, ptsh3n)
subroutine t3grtails(ixtg, pm, iparg, geo, eadd, nd, iparttg, dd_iad, idx, inum, index, cep, thk, xnum, itr1, igrsurf, igrsh3n, icnod, igeo, ipm, ixtg1, ipart, sh3tree, nod2eltg, itrioff, sh3trim, tagprt_sms, iworksh, stack, drape, rnoise, inivol, mat_param, sh3ang, drapeg, print_flag, ptsh3n)
subroutine tgrhead(ixt, pm, geo, inum, isel, itr1, eadd, index, itri, ipartt, nd, igrsurf, igrtruss, cep, xep, itruoff, tagprt_sms, itagprld_truss)
subroutine tgrtails(ixt, iparg, pm, geo, eadd, nd, dd_iad, idx, inum, index, cep, ipartt, itr1, igrsurf, igrtruss, itruoff, tagprt_sms, nod2el1d, print_flag, itagprld_truss, preload_a, npreload_a)
subroutine th_surf_load_pressure(igrsurf, th_surf, ipres, iloadp, lloadp, sizloadp, nloadp, slloadp, nibcld, npreld, nsurf, numnod)
OPTION /TH/SURF output for P and A.
subroutine thpinit(ithgrp, ithbuf, iparg, dd_iad, ixri, iflag, nthgrp2)
subroutine thskewc(rthbuf, ithgrp, ithbuf, x, ixc, ixtg, skew, nthgrp)
subroutine triintfric(tabcoupleparts_fric_tmp, tabcoef_fric_tmp, intbuf_fric_tab, tabparts_fric_tmp, nsetfrictot, nsetinit, iorthfricmax, ifricorth_tmp, nsetmax)
subroutine update_weight_rbe3(nelemint, ifiend, s_lrbe3, nrbe3l, nrbe3, lrbe3, irbe3, inter_cand)
subroutine updmat(bufmat, pm, ipm, table, func_id, npc, pld, sensors, nloc_dmg, mlaw_tag, mat_param)
subroutine upgrade_ixint(inter_cand, nelemint, new_size)
subroutine applysort2flux(ibfflux, siz1, siz2, permutations)
subroutine xfem_crack_init(iparg, ixc, ixtg, inod_crk, nodlevxf, indx_crk, ncrkpart, crkshell)
subroutine xgrhead(kxx, geo, inum, itr1, eadd, index, itri, ipartx, nd, igrsurf, cep, xep, ipm)
subroutine xgrtails(kxx, iparg, geo, eadd, nd, dd_iad, idx, lb_max, inum, index, cep, ipartx, itr1, igrsurf, ixx, igeo)
subroutine yctrl(igrbric)