544
545
546
547 USE my_alloc_mod
558 USE elbufdef_mod
564 USE intbufdef_mod
570 USE int8_mod
572 USE multi_fvm_mod
577 USE intbuf_fric_mod
589 USE skew_mod
591 USE mat_elem_mod
603 USE sensor_mod
608 USE ebcs_mod
612 USE loads_mod
615 USE user_sensor_mod
617 USE output_mod
618 USE interfaces_mod
619 USE read_funct_python_mod
620 USE python_funct_mod
623 USE damping_rby_spmdset_mod
624 USE hm_read_preload_axial_mod
625 USE bcs_mod, ONLY : bcs, bcs_struct_
626 USE defaults_mod
627 USE shell_offset_ini_mod,ONLY: shell_offset_ini
628 USE inter_offset_itag_mod, ONLY:inter_offset_itag
629 USE chk_shell_offset_mod, ONLY:chk_shell_offset
630 USE shell_offsetp_mod, ONLY:shell_offsetp
631 USE updfail_mod
632 USE random_walk_def_mod
633 use constraint_mod , only : constraint_,alloc_constraint_struct,dealloc_constraint_struct
634 use split_rwall_mod , only : split_rwall
635 use stifint_icontrol_mod, only : stifint_icontrol
636 use fractal_elem_renum_mod
637 use hm_preread_inivel_mod, only : hm_preread_inivel
638 use brokmann_random_def_mod
639 use brokmann_elem_renum_mod
640 use glob_therm_mod
641 use hm_read_inivol_mod
642 use pblast_mod
643 use iniebcs_propellant_
645 use python_duplicate_nodes_mod
646 use split_bcs_wall_mod , only : split_bcs_wall
647 use split_bcs_nrf_mod , only : split_bcs_nrf
648 use hm_read_bcs_wall_mod , only : hm_read_bcs_wall
649 use hm_read_bcs_nrf_mod , only : hm_read_bcs_nrf
650 use element_mod , only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
651 use hm_preread_skw_mod, ONLY : hm_preread_skw
652 use hierarchy_rbody_mod
653
654
655
656#include "implicit_f.inc"
657
658
659
660 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
661 TYPE(SUBMODEL_DATA) :: LSUBMODEL(NSUBMOD)
662 INTEGER,INTENT(IN) :: IS_DYNA
663 TYPE(DETONATORS_STRUCT_),TARGET :: DETONATORS
664 TYPE(T_EBCS_TAB), INTENT(INOUT) :: EBCS_TAB
665 INTEGER,INTENT(IN) :: NB_SEATBELT_SHELLS
666 INTEGER,INTENT(INOUT) :: SEATBELT_CONVERTED_ELEMENTS(3,NB_SEATBELT_SHELLS)
667 INTEGER,INTENT(IN) :: NB_DYNA_INCLUDE
668 TYPE(USER_WINDOWS_), INTENT(INOUT) :: USER_WINDOWS
669 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
670 TYPE(NAMES_AND_TITLES_),INTENT(INOUT) :: NAMES_AND_TITLES
671 TYPE(DEFAULTS_),INTENT(INOUT) :: DEFAULTS
672 type(glob_therm_) ,intent(inout) :: glob_therm
673 TYPE(PBLAST_),INTENT(INOUT) :: PBLAST
674 TYPE(SENSOR_USER_STRUCT_) :: SENSOR_USER_STRUCT
675 INTEGER,INTENT(IN) :: CHECK_USED
676
677
678
679#include "r4r8_p.inc"
680
681
682
683#include "hash_id.inc"
684#include "com01_c.inc"
685#include "com04_c.inc"
686#include "com06_c.inc"
687#include "com09_c.inc"
688#include "com10_c.inc"
689#include "com_engcards_c.inc"
690#include "com_xfem1.inc"
691#include "eigcom.inc"
692#include "flowcom.inc"
693#include "fxbcom.inc"
694#include "intstamp_c.inc"
695#include "lagmult.inc"
696#include "sphcom.inc"
697#include "param_c.inc"
698#include "remesh_c.inc"
699#include "tabsiz_c.inc"
700#include "tablen_c.inc"
701#include "scr03_c.inc"
702#include "scr05_c.inc"
703#include "scr06_c.inc"
704#include "scr10_c.inc"
705#include "scr12_c.inc"
706#include "scr14_c.inc"
707#include "scr15_c.inc"
708#include "scr16_c.inc"
709#include "scr17_c.inc"
710#include "scr19_c.inc"
711#include "scr23_c.inc"
712#include "scry_c.inc"
713#include "sms_c.inc"
714#include "spmd_c.inc"
715#include "ddspmd_c.inc"
716#include "sysunit.inc"
717#include "titr_c.inc"
718#include "units_c.inc"
719#include "warn_c.inc"
720#include "r2r_c.inc"
721#include "intread_c.inc"
722#include "elbuf_c.inc"
723#include "userlib.inc"
724#include "drape_c.inc"
725# "boltpr_c.inc"
726#include "inigrav_c.inc"
727# "inter18.inc"
728#include "inter22.inc"
729#include "ige3d_c.inc"
730#include "random_c.inc"
731
732
733
734 INTEGER NLOCAL
736 INTEGER SET_USRTOS
738
739
740
741 TYPE intermasurfep
742 INTEGER, DIMENSION(:), POINTER :: P
743 END TYPE intermasurfep
744
745 INTEGER II,I,J,KK,N, NPTS, NMNT, NRTMT_25,MLW,
746 . NUMEL, IFIP, IS_EULER,NB_EULER_GROUPS,
747 . NAIRWA,NTHWA, LWASPIO, LEN_G,LEN_M,LEN,
748 . IADBUF, IADGEO, NUVAR, NUVARI,
749 . NS_I7,NEL,ND,AUX,NS_I21,
750 . NPT,NS_I11,
751 . SVOLMON0,FLAG_GOTO,
752 . INNOD,INSEG,NSIGI, NSIGS, NSIGSH, NSIGSPH,
753 . LB_MAX, P, NG,
754 . IINU ,NEL3D,NEL2D,NEL1D,IMAX,JMAX,
755 . OFF, NELEM, IDDLEVEL, NELEMINT,
756 . IFIXIN,IFIEND,ICO,
757 . IDS,IUN,L_MUL_LAG,NCMAX,NKMAX,
758 . MAXRTMS,MAXNSNE,
759 . MAXRTM,LWAT, L_MUL_LAG1,ISHIF,LIBAGALE,
760 . LENTHG, LBUFMAT, LBUFGEO, LBUFSF,
761 . LNOM_OPT, LENVOLU, ILEN, LCNE, LCNI2G,LENPOR,
762 . PM1SHF, NFX, AIPM, ANOD, AMOD, NBNO, NBMO,
763 . ALM, NELS, NELC, NELTG, NLGRAV, AGRVI, AGRVR,
764 . NNT, RCLEN,PM1SPH, STAT, NELDMAX, VERSDD,
765 . DSNISM, NSLEVEL,NSDEC,NSVMAX,NSPRI,DSARCH,NELT,NELP,NSEGS,
766 . NNFT, NDOFMIN, NMANIM, DSANIM,NRCVVOIS0,NSIGRS,
767 . LRBAGALE,FLAGG,ICOUNT,SWAFT, SWA4, SMATER, SEL2FA,
768 . SNFACPTX,SIXEDGE,SOFFX1,SNUMX1,SXNORM,SINVERT,SFUNC1,SIAD,
769 . SMAS,LEN_RM,LAG_NCF0,LAG_NKF0,
770 . LAG_NHF0,LAG_NCL0,LAG_NKL0,MAXNNOD, IBID,
771 . SRTRANS,LCNE_CRKXFEM,NSEGSMAX,XFEMON,
772 . IN10,IN20,SNOM_OPT_OLD,LENI,FLAG_ALLOCATE,
773 . PROC_BID,FLG_R2R_ERR,NSPCOND0,LENTHGR,FLAG_XFEM,
774 . IADTABIGE,NDOUBLONIGE,DECALIGEO,HM_NSENSOR,
775 . IPARSENS,,
776 . TAB_SOL(6),ISTR_24,IDEL_SOLID,
777 . LCNCND,I24MAXNSNE,NSIGBEAM,NSIGTRUSS,S_LOADPINTER,
778 . FLAGF,ITHFLAG,,NS_I2,SITAGE,NCTRLMAX,INLIN,SVR_1
779 INTEGER (KIND=8) EMAX
780 INTEGER (KIND=8) K0,K1,K2,K3,K4,K5,K6,K7,K8
781
782 INTEGER(KIND=8) NUMELCK8
783 INTEGER(KIND=8) NUMELTGK8
784 INTEGER(KIND=8) NUMELSK8
785 INTEGER(KIND=8) NUMELRK8
786 INTEGER(KIND=8) NUMELPK8
787 INTEGER(KIND=8) NUMELTK8
788 INTEGER(KIND=8) NUMELQK8
789 INTEGER(KIND=8) NUMELXK8
790 INTEGER(KIND=8) NUMELIG3DK8
791 INTEGER(KIND=8) NUMSPHK8
792 INTEGER(KIND=8) SVEUL8
793
794 integer
796 . iuparam(100),ddstat(50,parasiz),igrnrb2(nrbe2),
797 . lcne_pxfem
798 INTEGER NSNT,NMNT_2
799
800 INTEGER, DIMENSION(:), ALLOCATABLE :: POIN_UMP_OLD
801 INTEGER, DIMENSION(:,:), ALLOCATABLE :: TAB_UMP_OLD
802 my_real,
DIMENSION(:),
ALLOCATABLE :: cputime_mp_old
803
804 INTEGER, DIMENSION(:,:), ALLOCATABLE :: POIN_PART_SHELL,POIN_PART_TRI
805 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: POIN_PART_SOL
806 TYPE(MID_PID_TYPE), DIMENSION(:), ALLOCATABLE :: MID_PID_SHELL,MID_PID_TRI
807 TYPE(MID_PID_TYPE), DIMENSION(:,:), ALLOCATABLE :: MID_PID_SOL
808 LOGICAL MARQUEUR3
809
810 INTEGER, DIMENSION(:),ALLOCATABLE ::
811 * IWCONT, IWCIN2 , IKINE1LAG ,DSDOF, TAGXREF,
812 * ADDCNE, ADDCNE_PXFEM, FXBTAG ,ADDCNE_CRKXFEM,
813 * TAGREFSTA,CSRECT
814
815 INTEGER, DIMENSION(:),ALLOCATABLE ::
816 * ISOLNOD,ISOLOFF,ISHEOFF,ITRUOFF,IPOUOFF,
817 * IRESOFF,ITRIOFF,IGRNRBY,IQUAOFF
818
819 INTEGER(KIND=8) :: KVOISPH8,NUMSPH8,SIXSP8,LIMIT8
820 INTEGER :: INTEGER_LIMIT32
821
822 INTEGER, DIMENSION(:),ALLOCATABLE :: CEP,CEL,CNE,
823 . CNI2, CELI2, CEPI2,
824 . CEPSP, CELSPH, ITAGSH,
825 . CNE_PXFEM,CEL_PXFEM
826 INTEGER, DIMENSION(:), ALLOCATABLE :: FXBIPM, FXBNOD, FXBELM,
827 . FXBGRVI, EIGIPM, EIGIBUF,
828 . IMERGE,INTIDS,
829 . IMERGE2,IADMERGE2,
830 . NSLNRBM, ,
831 . IGEO_STACK
832 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: ELDOM
833 INTEGER, DIMENSION(:), ALLOCATABLE :: CEPTMP, NELDOM
834 INTEGER, DIMENSION(:), ALLOCATABLE :: LLL
835 INTEGER, DIMENSION(:,:), ALLOCATABLE :: ELSUB
836 INTEGER(KIND=8) ,TARGET :: DSMEMORY(7,NSPMD)
837 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FXANI,IWORKSH, FXB_MATRIX_ADD
838 INTEGER, DIMENSION(:), ALLOCATABLE :: FASTAG,SEGTAG
839 INTEGER(KIND=8),TARGET :: MEMFLOW(2,NSPMD)
840 INTEGER, DIMENSION(:), ALLOCATABLE :: IFLOW
841
842 INTEGER, DIMENSION(:), ALLOCATABLE :: KINWORK
843
844 INTEGER, DIMENSION(:), ALLOCATABLE :: CNE_CRKXFEM,CEL_CRKXFEM,ITAGN,ITAGE,CEP_CRKXFEM,IEDGE_TMP0,CRKNODIAD
845 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IEDGE_TMP
846
847 INTEGER, DIMENSION(:), ALLOCATABLE :: NALE_R2R
848 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FRONTB_R2R
849
850 INTEGER, DIMENSION(:), ALLOCATABLE :: IXS_S ,IXS_S_IND,
851 2 IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
852 3 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
853 4 IXTG_S,IXTG_S_IND
854
855
856 INTEGER, DIMENSION(:), ALLOCATABLE :: IBUFSSG_IO, RESERVEP
857
858 INTEGER, DIMENSION(:), ALLOCATABLE :: IXR_KJ,R_SKEW
859
860
861 INTEGER, DIMENSION(:), ALLOCATABLE :: IBEAM_VECTOR
862 my_real,
DIMENSION(:,:),
ALLOCATABLE :: rbeam_vector
863
864
865 INTEGER, DIMENSION(:), ALLOCATABLE :: SOL2SPH_TYP
866
867 INTEGER, DIMENSION(:), ALLOCATABLE :: IBCSCYC,LBCSCYC,ITAGCYC
868
869 INTEGER, DIMENSION(:,:), ALLOCATABLE :: QP_IPERTURB,RBY_MSN
871 . , DIMENSION(:,:), ALLOCATABLE :: qp_rperturb,rby_iniaxis
872
874 . eanit2(10),cost_r2r,totmas
875 TARGET :: eanit2
876
877 INTEGER ITASK, NP
878#if defined(_OPENMP)
879 INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS
880 EXTERNAL omp_get_thread_num, omp_get_num_threads
881#endif
882
884 . , DIMENSION(:), ALLOCATABLE ::
885 . fxbrpm, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm,
886 . fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbsig,
887 . fxbgrvr, eigrpm ,rmstifn, rmstifr,stiffn,
888 . ms_ply0, zi_ply0,msz20,msz2,lelx,fxb_matrix
890 . , DIMENSION(:,:), ALLOCATABLE :: mbufel, mdepl,rnoise
892 . , DIMENSION(:), ALLOCATABLE :: rflow,cmerge,dnull
894 . probint, flrec6(6), dscutfrq
895 my_real,
DIMENSION(:),
ALLOCATABLE ::
896 . xfiltr,stfac,fric_p,frigap,
i2rupt,areasl,thk_part,
897 . geo_stack
898
899 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: xrefc,xreftg,xrefs
900 my_real,
DIMENSION(:),
ALLOCATABLE :: xyzref
901
902 my_real,
DIMENSION(:),
ALLOCATABLE :: dt_r2r
903 TYPE(INTERSURFP) , DIMENSION(:,:), ALLOCATABLE :: INTERCEP
905 my_real,
DIMENSION(:),
ALLOCATABLE :: sh4ang,sh3ang
906 my_real,
DIMENSION(:),
ALLOCATABLE :: ms_b,in_b,dtelem
907
908 TYPE (STACK_PLY) :: STACK
909C
910 INTEGER, DIMENSION(:), ALLOCATABLE :: IDRAPEID,PERTURB
911 TYPE (FVM_INIVEL_STRUCT), DIMENSION(:), ALLOCATABLE :: FVM_INIVEL
912 TYPE () :: FAILWAVE
913 TYPE (NLOCAL_STR_) :: NLOC_DMG
914 TYPE (PINCH) :: PINCH_DATA
915 TYPE (
drape_) ,
DIMENSION(:),
ALLOCATABLE :: drape,drape_wrk
916 TYPE (DRAPEG_) :: DRAPEG
917 TYPE(DRAPE_WORK_) ,DIMENSION(:), ALLOCATABLE :: IWORK_T
918
919 INTEGER, DIMENSION(:), ALLOCATABLE :: ITAGOSET
920 my_real,
DIMENSION(:),
ALLOCATABLE,
TARGET :: xyz
921 my_real,
DIMENSION(:),
POINTER :: x_c
922
923 INTEGER, DIMENSION(:), ALLOCATABLE :: EBCS_TAG_CELL_SPMD
924
925 TYPE (DYNAIN_DATABASE) :: DYNAIN_DATA
926 TYPE (INTERFACES_) :: INTERFACES
927 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
928 INTEGER LWAMP_L
929 INTEGER LWANMP_L
930
931 CHARACTER(LEN=4096) :: SCR_FILE_NAME
932 CHARACTER(LEN=ncharline) :: RLINE
933 CHARACTER (LEN=4) :: CWIN
934 LOGICAL :: IS_AVAILABLE
935 INTEGER NLINES,NUSERWI,USERWI_ID
936 INTEGER SCR_FILE_NAME_LEN
937 CHARACTER(LEN=ncharkey) :: KEY
938 INTEGER NUSPHCEL
939 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IXSPS
940 LOGICAL MAT20_DISCRETE_FILL
941 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FLAG_ELEM_INTER25
942 INTEGER, DIMENSION(:), ALLOCATABLE :: LIST_NIN25
943 INTEGER, DIMENSION(:), ALLOCATABLE :: ISKEW_TMP
944 my_real,
DIMENSION(:),
ALLOCATABLE :: skew_tmp
945
946
947 DATA iun/1/
948
949
950
951 TYPE :: int_ptr_array
952 INTEGER, DIMENSION(:), POINTER :: ptr
953 END TYPE int_ptr_array
954 TYPE(int_ptr_array) :: IBUFTMP(0:1),NIGE_TMP(0:1)
955 TYPE :: real_ptr_array
956 my_real,
DIMENSION(:),
POINTER :: ptr2
957 END TYPE real_ptr_array
958 TYPE(real_ptr_array) :: RIGE_TMP(0:1),XIGE_TMP(0:1),
959 . VIGE_TMP(0:1)
960 INTEGER, DIMENSION(:), ALLOCATABLE ::
961 . FR_IAD,FUNCRYPT,
962 . IWORK,ITRI,KSYSUSR,PTSHEL,PTSH3N,PTSOL,PTQUAD,
963 . PTSPH,ISPTAG,DD_TMP,ITAG,ITAGND_SHXFEM,
964 . ITHPART,ITHSUB,ITHBUFTMP,DD_TMP2,
965 . IADHF,JCIHF,JLL,IWA,WEIGHT_RM,
966 . PTSPRI,PTBEAM,PTTRUSS
967 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IPARGTMP
968 TARGET :: iwork
969
970 INTEGER, DIMENSION(:,:), ALLOCATABLE :: TAB_UMP_LOC
971 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: TAB_UMP_LOC2
972 INTEGER, DIMENSION(:), POINTER ::
973 . IPARTTH,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,IPARTR,
974 . IPARTG,IPARTX,IPARTSP,NPC1,IXS10,IXS20,IXS16,IPRES,
975 . IBMPC2,IBMPC3,IBMPC4,IWORK2,
976 . ITRI1,ITRI2,ITRI3,INDEX,
977 . INDEX1,INDEX2,IWD,IWEIG,INUM,EADD,ITR1,ITR2,XEP,
978 . IPARTTHI,IPARTIG3D,IEDGESH4,IEDGESH3,IELCRK4,IELCRK3
979 INTEGER BID13(1),SNPC1
980 INTEGER L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,SIXTG0,
981 . SIXS0,SIXS10,SIXS20,SIXS16,SIWORK,SIWORK2,SIEXTAG,
982 . NUMCLD,NUMPRES,NUMLINK,NUMGRAV,NUMRBYMOU,
983 . SNRBODY,SLRBODY,LITHPART,LITHSUB,IDX,IDX1,IDX2,IDXCNT,
984 . LITHBUFI,LITHBUFMX,NTHGRPMX,SINDEX,SITRI,LDD_IAD,
985 . LSIGI,LSIGSH,LSIGSP,LSIGSPH,SINSCR,
986 . SIPART0,SIPARTTH,SIPARTS,SIPARTQ,SIPARTC,SIPARTT,SIPARTP,
987 . SIPARTR,SIPARTG,SIPARTX,SIPARTSP,ITER,
988 . LIXINT,SBUFALE,NVARTOT,
989 . NVARTOT0,NVARTOTMAX,NVARABF,
990 . PIXS10,PIXS16,PIXS20,NUMCFIELD,NUMLOADP,IXEL,
991 . SIPARTIG3D,IDXIGE1,IDXIGE2,
992 . IDXIGECNT,TAGSURFIGE,LSIGRS,LSIGBEAM,LSIGTRUSS,NSETFRICTOT,
993 . IORTHFRICMAX,COEFSLEN,NPFRICORTH,NGRPF,LENG,
994 . NIMPDISP,NIMPVEL,NIMPACC,NIMPV_LAGM,NFV0,NSETMAX,NFXVEL0
995 TYPE(CLUSTER_),DIMENSION(:),ALLOCATABLE :: CLUSTERS
996 TYPE(INTBUF_STRUCT_),DIMENSION(:),ALLOCATABLE :: INTBUF_TAB
997 TYPE(SCRATCH_STRUCT_),DIMENSION(:),ALLOCATABLE :: INSCR
998
999 INTEGER SIPRELOAD, SPRELOAD
1000
1001
1002 TYPE(ELBUF_STRUCT_),DIMENSION(:) ,ALLOCATABLE :: ELBUF_TAB
1003 TYPE(ELBUF_STRUCT_),DIMENSION(:,:),ALLOCATABLE :: XFEM_TAB
1004 TYPE(MLAW_TAG_) ,DIMENSION(:) ,ALLOCATABLE, TARGET :: MTAG_INI,MTAG_R2R
1005 TYPE(MLAW_TAG_) ,DIMENSION(:) ,POINTER :: MLAW_TAG
1006 TYPE(EOS_TAG_) ,DIMENSION(:) ,ALLOCATABLE :: EOS_TAG
1007 TYPE(PROP_TAG_) ,DIMENSION(0:MAXPROP) :: PROP_TAG
1008 TYPE(FAIL_TAG_) ,DIMENSION(0:MAXFAIL) :: FAIL_TAG
1009
1010 TYPE (XFEM_SHELL_) ,DIMENSION(:), ALLOCATABLE :: CRKSHELL
1011 TYPE (XFEM_LVSET_) ,DIMENSION(:), ALLOCATABLE :: CRKLVSET
1012 TYPE (XFEM_SKY_) ,DIMENSION(:), ALLOCATABLE :: CRKSKY
1013 TYPE (XFEM_AVX_) ,DIMENSION(:), ALLOCATABLE :: CRKAVX
1014 TYPE (XFEM_EDGE_) ,DIMENSION(:), ALLOCATABLE :: CRKEDGE
1015 TYPE(XFEM_PHANTOM_),DIMENSION(:), ALLOCATABLE :: XFEM_PHANTOM
1016
1017
1018 TYPE(INT8_STRUCT_) , DIMENSION(:,:), ALLOCATABLE :: INTERT8
1019 INTEGER NCRKPART
1020 INTEGER, DIMENSION(:), ALLOCATABLE :: INDX_CRK
1021 INTEGER, DIMENSION(:), ALLOCATABLE :: PERMIGE
1022 TYPE(TABCONPATCH_IG3D_), DIMENSION(:), ALLOCATABLE :: TABCONPATCH
1023
1024 TYPE(MATPARAM_STRUCT_) , DIMENSION(:), ALLOCATABLE , TARGET :: MPARAM_INI,MPARAM_R2R
1025
1026 TYPE(GROUP_PARAM_) , DIMENSION(:), ALLOCATABLE :: GROUP_PARAM_TAB
1027
1028 INTEGER, ALLOCATABLE, DIMENSION(:,:) :: T2MAIN_SMS
1029
1030 INTEGER :: SRNOISE1,SRNOISE2
1031
1032 INTEGER NSN_MULTI_CONNEC
1033 INTEGER, ALLOCATABLE, DIMENSION(:) :: T2_NB_CONNEC
1034
1035 INTEGER, DIMENSION(:), ALLOCATABLE :: MGRBY
1036
1037 INTEGER SPINCH
1038
1039 INTEGER, ALLOCATABLE, DIMENSION(:) :: TAG_SKINS6
1040 INTEGER, ALLOCATABLE, DIMENSION(:,:) :: SEATBELT_SHELL_TO_SPRING
1041
1042 INTEGER :: NPRELOAD_A
1043 INTEGER, ALLOCATABLE, DIMENSION(:) :: ITAGPRLD_SPRING
1044 INTEGER, ALLOCATABLE, DIMENSION(:) :: ITAGPRLD_BEAM
1045 INTEGER, ALLOCATABLE, DIMENSION(:) :: ITAGPRLD_TRUSS
1046 TYPE(PREL1D_), DIMENSION(:), ALLOCATABLE :: PRELOAD_A
1047 INTEGER, ALLOCATABLE, DIMENSION(:) :: IPRELOAD_FUN
1048
1049
1050
1051 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: DBRWORK
1052 my_real,
DIMENSION(:),
ALLOCATABLE ::
1053 . rwork,stifint,mwa,mss,mssx,mssf,msq,msr,
1054 . inp,inr,ins,vns,vnsx,stc,stt,stp,str,sttg,stur,
1055 . bns,bnsx,volnod,bvolnod,etnod,nshnod,xelemwa,
1056 . xnum,xtmp,rtrans,msig3d,stifintr,strc,
strr,strp,strtg,
1057 . vnige,bnige
1058 TARGET ::
1059 . rwork
1060 my_real,
DIMENSION(:),
POINTER ::
1061 . thkec,eanit,pres,wma
1062 INTEGER SRWORK
1063 INTEGER LXINTD
1065 CHARACTER(LEN=NCHARLINE) ::ERR_MSG
1066 INTEGER, DIMENSION(:), ALLOCATABLE :: IBORDEDGE,INOM_OPT
1067 DOUBLE PRECISION RSIBUFSSG,RNIGE,RRIGE,RXIGE,RVIGE
1068 INTEGER INTMAX, LLINAL,ITET4_10
1069
1070 INTEGER, DIMENSION(:), ALLOCATABLE :: ICNDS10,ITAGND,ADDCNCND,
1071 . CNCND, CELCND, CEPCND
1072
1073
1074 INTEGER(KIND=8) ,POINTER :: pMEMFLOW
1075
1076 DATA intmax /2147483647/
1078 . DIMENSION(:), ALLOCATABLE :: fillsol
1079
1080
1081 CHARACTER FILNAM*512,CLAW*4
1082 INTEGER LEN_FILNAM
1083 INTEGER IADBOXMAX
1084 INTEGER, DIMENSION(:), ALLOCATABLE :: IADBOXMAX_NODE,IADBOXMAX_SURF,
1085 . IADBOXMAX_LINE,IADBOXMAX_ELEM
1086
1087 my_real,
DIMENSION(:,:),
ALLOCATABLE ::
1088 . sigi,sigsh,sigsp,sigsph,sigrs,sigbeam,sigtruss
1089 INTEGER, DIMENSION(:), ALLOCATABLE ::
1090 . STRSGLOB,STRAGLOB,ORTHOGLOB
1091 INTEGER ISIGSH,IYLDINI,KSIGSH3,FAIL_INI(5),IUSOLYLD,
1092
1093 INTEGER FVMAIN(NVOLU + NMONVOL),NBSUBMAT
1094
1095 INTEGER :: MEM_MARGIN
1096 parameter(mem_margin = 250000)
1097
1098 TYPE(INTBUF_FRIC_STRUCT_), DIMENSION(:), ALLOCATABLE :: INTBUF_FRIC_TAB
1099 INTEGER, DIMENSION(:), ALLOCATABLE ::TABCOUPLEPARTS_FRIC_TMP,TABPARTS_FRIC_TMP,
1100 . TAGPRT_FRIC,NSETINIT,IFRICORTH_TMP,
1101 . PFRICORTH ,IREPFORTH ,LENGRPF
1102 my_real,
DIMENSION(:),
ALLOCATABLE ::tabcoef_fric_tmp , vforth ,phiforth
1103 TYPE(INIMAP1D_STRUCT), DIMENSION(:), ALLOCATABLE :: INIMAP1D
1104 TYPE(INIMAP2D_STRUCT), DIMENSION(:), ALLOCATABLE :: INIMAP2D
1105 TYPE(FUNC2D_STRUCT), DIMENSION(:), ALLOCATABLE :: FUNC2D
1106 TYPE(PYTHON_) :: PYTHON
1107
1108 LOGICAL :: FLAG_24_25
1109 INTEGER :: NINDX_NM,NINDX_SCRT,I24MAXNSNE2
1110 INTEGER, DIMENSION(NSPMD) :: NUMNOD_L
1111 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_NM,INDX_NM
1112 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_SCRATCH,INDX_SCRT
1113
1114 INTEGER FXB_LAST_ADDRESS(10)
1115 CHARACTER, DIMENSION(:), ALLOCATABLE :: FXBFILE_TAB*2148
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_SKN
1131 TYPE(SKEW_) :: SKEWS
1132 TYPE (SENSOR_STR_) ,DIMENSION(:) ,ALLOCATABLE :: SENSOR_TMP
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
1145 TYPE(SURF_), DIMENSION(:,:), ALLOCATABLE :: IGRSURF_PROC
1146
1147
1148
1149
1150
1151
1152! -*-*-*-*
1153INTEGER :: GRNOD_UID
1154 INTEGER, DIMENSION(NSPMD) :: SIZE_ALE_ELM
1155 TYPE(split_cfd_type), DIMENSION(:),ALLOCATABLE :: ALE_ELM
1156
1157
1158
1159
1160! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
1161 INTEGER :: LEN_TMP_NAME
1162 CHARACTER(len=4096) :: TMP_NAME
1163
1164
1165
1166
1167
1168 TYPE(MONVOL_STRUCT_), DIMENSION(:), ALLOCATABLE :: T_MONVOL
1169 TYPE(MONVOL_METADATA_) :: T_MONVOL_METADATA
1170 TYPE() :: ALE_CONNECTIVITY
1171
1172 INTEGER :: NBR_TH_MONVOL,NBR_TH_MONVOL01(9)
1173
1174 INTEGER,DIMENSION(:),ALLOCATABLE :: IRAND
1175 my_real,
DIMENSION(:),
ALLOCATABLE :: alea,xseed
1176
1177
1178
1179
1180! of
the remote connected element
1181
1182
1183
1184 LOGICAL :: BOOL_ALE_TG
1185 INTEGER, DIMENSION(:), ALLOCATABLE :: INDX_S,INDX_Q,INDX_TG
1186 INTEGER, DIMENSION(:,:), ALLOCATABLE :: FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG
1187
1188
1189
1190 TYPE(INVERTGROUP_STRUCT_) :: INV_GROUP
1191 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
1192
1193
1194 TYPE (LOADS_) ::
1195 TYPE (LOADS_), DIMENSION(NSPMD) :: LOADS_PER_PROC
1196
1197
1198 TYPE (bcs_struct_), DIMENSION(NSPMD) :: BCS_PER_PROC
1199
1200 INTEGER NINIVELT
1201 INTEGER NINTEMP
1202 INTEGER ALE_EULER
1203
1204
1205 INTEGER NMERGE_NODE_CAND,NMERGE_NODE_DEST,NMERGE_TOT
1206 INTEGER, DIMENSION(:), ALLOCATABLE :: MERGE_NODE_TAB
1207 my_real,
DIMENSION(:),
ALLOCATABLE :: merge_node_tol
1208
1209 my_real,
DIMENSION(:),
ALLOCATABLE :: dgapint, intgaploadp ,dgaploadint
1210
1211 INTEGER NB_MAT_SEATBELT,NB_MAT
1212
1213 INTEGER :: NUMSH3,NUMSH4, ,NPT_DRAPE,,ISL, IP,IE, IDSHEL
1214 INTEGER , DIMENSION(:), ALLOCATABLE :: INDXSH
1215 INTEGER :: NUMBER_LOAD_CYL
1216 INTEGER :: S_NOD2ELS,S_NOD2ELTG,S_NOD2EL1D
1217
1218 INTEGER :: NDAMP_VREL_RBY
1219 INTEGER :: NDAMP_FREQ_RANGE
1220 INTEGER , DIMENSION(:), ALLOCATABLE ::
1221
1222 INTEGER :: PRE_SEARCH,SZ_INTP_DIST
1224
1225 TYPE(INTER_CAND_) ::
1226 TYPE (FAIL_FRACTAL_) :: FAIL_FRACTAL
1227 TYPE (FAIL_BROKMANN_) :: FAIL_BROKMANN
1228 INTEGER DEF_INTER(100)
1229
1230 type(constraint_) :: constraint_struct
1231
1232 INTEGER ::
1233 my_real,
DIMENSION(:),
ALLOCATABLE :: rwstif_pen
1234
1235 ireac = 0
1236 python%NB_FUNCTS = 0
1237 python%NB_SENSORS = 0
1238
1239 ddstat(1:50,1:parasiz)=0
1240 i22len_l = 0
1241 fvmain(1:nvolu + nmonvol) = 0
1242 m51_iflg6 = 0
1243 nvartotmax = 0
1244 err_msg='BEGINNING'
1245 err_category='INTERNAL'
1246 CALL trace_in1(err_msg,len_trim(err_msg))
1247 flag_goto = 0
1249 nvarabf = 1
1250 intbag=0
1251 l_mul_lag=0
1252 lag_ncf = 0
1253 lag_nkf = 0
1254 lag_nhf = 0
1255 lag_ncl = 0
1256 lag_nkl = 0
1257 lag_nhl = 0
1258 numels8a = 0
1259 nairwa = 0
1260 nmanim=0
1261 dsanim=0
1262 impl_s0 = 0
1263 flg_split = 0
1264 nvartotmax = 0
1265 nxlaymax = 0
1266
1267 ndamp_vrel_rby = 0
1268
1269 ndamp_freq_range = 0
1270
1271 iplyxfem = 0
1272 nplyxfe = 0
1273 eplyxfe = 0
1274 intplyxfem = 0
1275
1276 inter_ithknod=0
1277 irigid_mat = 0
1278
1279
1280 ialelag = 0
1281
1282 totaddmas = zero
1283 ipart_stack = 0
1284 ipart_pcompp = 0
1285
1286 sfrontb_r2r = 1
1287
1288 user_grp_domain=0
1289 nsnt=0
1290 nmnt_2=0
1291 def_inter(1:100) = defaults%interface%DEF_INTER(1:100)
1292
1293 itask=0
1294
1295
1296
1297
1298 i11flag=0
1299 inter18_autoparam = 0
1300 inter18_is_variable_gap_defined = .false.
1301 nbpreld = 10
1302 ALLOCATE(ebcs_tag_cell_spmd(numelq+numeltg+numels))
1303
1304 ALLOCATE(eos_tag(0:
maxeos))
1305
1306
1307
1308 ALLOCATE(intercep(3,ninter))
1309
1310 DO i=1,ninter
1311 NULLIFY(intercep(1,i)%P)
1312 NULLIFY(intercep(2,i)%P)
1313 NULLIFY(intercep(3,i)%P)
1314 ENDDO
1315
1316
1317
1318 nnoise_sav = 0
1319 sinoise = 0
1320 sfnoise = 0
1322 ALLOCATE(fnoise(0))
1323
1324
1325
1326 nusphcel = 0
1327
1328
1329
1330
1331 ALLOCATE(iwcont(5*numnod),stat=stat)
1332 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1333 . msgtype=msgerror,
1334 . c1='IWCONT')
1335
1336 ALLOCATE(iwcin2(2*numnod),stat=stat)
1337 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1338 . msgtype=msgerror,
1339 . c1='IWCIN2')
1340
1341
1342 ALLOCATE(ikine1lag(3*numnod),stat=stat)
1343 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1344 . msgtype=msgerror,
1345 . c1='IKINE1LAG')
1346 ikine1lag(1:3*numnod)=0
1347
1348 ALLOCATE(dsdof(numnod),stat=stat)
1349 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1350 . msgtype=msgerror,
1351 . c1='DSDOF')
1352 dsdof(1:numnod)=0
1353
1354 ALLOCATE( addcne(0:numnod+1),stat=stat)
1355 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1356 . msgtype=msgerror,
1357 . c1='ADDCNE')
1358
1359 ALLOCATE(addcne_pxfem(0:numnod +1),stat=stat)
1360 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1361 . msgtype=msgerror,
1362 . c1='ADDCNE_PXFEM')
1363
1364 IF(nfxbody>0) THEN
1365 nbipm = 45
1366 ALLOCATE(fxbtag(numnod),fxbipm(nbipm*nfxbody),stat=stat)
1367 fxbipm(1:nbipm*nfxbody) = zero
1368 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1369 . msgtype=msgerror,
1370 . c1='FXBTAG')
1371
1372 ALLOCATE(fxbfile_tab(nfxbody))
1373 ELSE
1374 nbipm = 1
1375 ALLOCATE(fxbtag(1),fxbipm(1),stat=stat)
1376 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1377 . msgtype=msgerror,
1378 . c1='FXBTAG')
1379 ALLOCATE(fxbfile_tab(0))
1380 ENDIF
1381
1382 ALLOCATE(isolnod(numels),stat=stat)
1383 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1384 . msgtype=msgerror,
1385 . c1='ISOLNOD')
1386 ALLOCATE(isoloff(numels),stat=stat)
1387 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1388 . msgtype=msgerror,
1389 . c1='ISOLOFF')
1390 ALLOCATE(isheoff(numelc),stat=stat)
1391 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1392 . msgtype=msgerror,
1393 . c1='ISHEOFF')
1394 ALLOCATE(itruoff(numelt),stat=stat)
1395 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1396 . msgtype=msgerror,
1397 . c1='ITRUOFF')
1398 ALLOCATE(ipouoff(numelp),stat=stat)
1399 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1400 . msgtype=msgerror,
1401 . c1='IPOUOFF')
1402 ALLOCATE(iresoff(numelr),stat=stat)
1403 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1404 . msgtype=msgerror,
1405 . c1='IRESOFF')
1406 ALLOCATE(itrioff(numeltg),stat=stat)
1407 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1408 . msgtype=msgerror,
1409 . c1='ITRIOFF')
1410 ALLOCATE(igrnrby(nrbody),stat=stat)
1411 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1412 . msgtype=msgerror,
1413 . c1='IGRNRBY')
1414 igrnrby(1:nrbody) = 0
1415 ALLOCATE(iquaoff(numelq),stat=stat)
1416 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1417 . msgtype=msgerror,
1418 . c1='IQUAOFF')
1419
1420
1421
1422
1423 len_g = npropgi*numgeo
1424 len_m = npropmi*nummat
1425 ALLOCATE(
igeo(len_g),stat=stat)
1426 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1427 . msgtype=msgerror,
1428 . c1='IGEO')
1429 ALLOCATE(
ipm(len_m),stat=stat)
1430 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1431 . msgtype=msgerror,
1432 . c1='IPM')
1435
1436
1437
1439
1441 IF(stat /= 0) THEN
1442 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1443 . c1='IPART_STATE')
1444 ELSE
1446 END IF
1448
1449
1450
1451 err_category='INTERNAL'
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1463
1464
1465
1466
1467
1469 ALLOCATE(
ifront%IENTRY(numnod),stat=stat)
1470
1471
1472 ALLOCATE(
ientry2(numnod),stat=stat)
1473 IF(stat/=0) THEN
1474 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1475 . c1='IFRONT')
1476 ENDIF
1477
1478
1479 ALLOCATE(
flagkin(numnod),stat=stat)
1480 IF(stat/=0) THEN
1481 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1482 . c1='FLAGKIN')
1483 ENDIF
1484
1488
1489
1490
1491
1492
1493 isecut=0
1495
1496
1497
1498 impose_dr=0
1500
1501
1502
1503 ifrwv=0
1504208 sx = 3*numnod
1505 sd = 5*numnod
1506 sv = 3*numnod
1507 svr = 3*numnod*
max(iroddl,iroddl0)
1508 svr_1 = numnod*
max(iroddl,iroddl0)
1509 sthke = numelc+numeltg
1510 sms = numnod
1512 sin = numnod*
max(iroddl,iroddl0)
1513 IF(isecut>0 .OR. iisrot>0 .OR. impose_dr>0 .OR. idrot == 1) THEN
1514 sdr = 3*numnod*
max(iroddl,iroddl0)
1515 ELSE
1516 sdr = 0
1517 ENDIF
1518 IF(flag_goto == 1) GOTO 258
1519
1520 IF(ndamp > 0) THEN
1521 sdampr = nrdamp*ndamp
1522 sdamp = 3*(1+
max(iroddl,iroddl0))*numnod
1524 IF (ndamp == ndamp_freq_range) sdamp = 0
1525 ALLOCATE(dampr(sdampr+sdamp) ,stat=stat)
1526 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1527 . msgtype=msgerror,
1528 . c1='DAMPR')
1529 damp => dampr(sdampr+1:sdampr+sdamp)
1530 dampr = 0
1531 ELSE
1532 sdampr = 0
1533 sdamp = 0
1534 ALLOCATE(dampr(sdampr) ,stat=stat)
1535 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1536 . msgtype=msgerror,
1537 . c1='DAMPR')
1538 ALLOCATE(damp(sdamp) ,stat=stat)
1539 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1540 . msgtype=msgerror,
1541 . c1='DAMP')
1542 ENDIF
1543 ALLOCATE(damp_range_part(npart),stat=stat)
1544 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1545 . msgtype=msgerror,
1546 . c1='DAMP_RANGE_PART')
1547 damp_range_part = 0
1548 ALLOCATE(x(sx) ,stat=stat)
1549 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1550 . msgtype=msgerror,
1551 . c1='X')
1552 ALLOCATE(d(sd) ,stat=stat)
1553 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1554 . msgtype=msgerror,
1555 . c1='D')
1556 ALLOCATE(v(sv) ,stat=stat)
1557 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1558 . msgtype=msgerror,
1559 . c1='V')
1560 ALLOCATE(vr(svr) ,stat=stat)
1561 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1562 . msgtype=msgerror,
1563 . c1='VR')
1564 ALLOCATE(dr(sdr) ,stat=stat)
1565 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1566 . msgtype=msgerror)
1567 ALLOCATE(thke(sthke) ,stat=stat)
1568 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1569 . msgtype=msgerror,
1570 . c1='THKE')
1571 ALLOCATE(ms(sms) ,stat=stat)
1572 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1573 . msgtype=msgerror,
1574 . c1='MS')
1575 ALLOCATE(in(sin) ,stat=stat)
1576 ALLOCATE(xyzref(sx) ,stat=stat)
1577 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1578 . msgtype=msgerror,
1579 . c1='XYZREF')
1580 ALLOCATE(sh4ang(numelc) ,stat=stat)
1581 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1582 . msgtype=msgerror,
1583 . c1='SH4ANG')
1584 ALLOCATE(sh3ang(numeltg) ,stat=stat)
1585 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1586 . msgtype=msgerror,
1587 . c1='SH3ANG')
1588 IF(numnod > 0) THEN
1589 x = 0
1590 d = 0
1591 v = 0
1592 ms = 0
1593 ENDIF
1594 IF(svr > 0) vr = 0
1595 IF(sdr > 0) dr = 0
1596 IF(sin > 0) in = 0
1597
1598258 IF(numelc<sthke) THEN
1599 thkec => thke(numelc+1:sthke)
1600 ELSE
1601 thkec => thke
1602 END IF
1603 IF ((sthke > 0).AND.(flag_goto==0)) thke = 0
1604 IF(numelc > 0) sh4ang = 0
1605 IF(numeltg > 0) sh3ang = 0
1606
1607 CALL nbfunct(nfunct,ntable,npts,lsubmodel)
1608
1609
1610
1611
1612 sicode = numnod
1613 siskew = numnod
1614 siskwn = liskn*((numskw+1)+
min(iun,nspcond)*numsph+(numfram+1)+
nsubmod)
1615 siframe = liskn*(numfram+1)
1616
1617 sibcslag= 5*nbcslag
1618 sipart0 = lipart1*npart+lipart1*nthpart
1619 sipartth= 2*9*npart+2*9*nthpart
1620 siparts = numels
1621 sipartq = numelq
1622 sipartc = numelc
1623 sipartt = numelt
1624 sipartp = numelp
1625 sipartr = numelr
1626 sipartg = numeltg
1627 sipartx = numelx
1628 sipartsp= numsph
1629 sipartig3d = numelig3d
1630 sipart = sipart0+sipartth+siparts+sipartq+sipartc+sipartt+sipartp
1631 . + sipartr+sipartg+sipartx+sipartig3d+sipartsp
1632 numel = numels+numelq+numelc+numelt+numelp+numelr
1633 . + numeltg+numelx+numsph+numelig3d
1634
1635 snpc = 3*nfunct+1
1636 sixtg0 = nixtg*numeltg
1637 sixtg = sixtg0
1638 sixs0 = nixs*numels
1639 sixs10 = numels10*6
1640 sixs20 = numels20*12
1641 sixs16 = numels16*8
1642 sixs = sixs0+sixs10+sixs20+sixs16
1643 sixq = nixq*numelq
1644 sixc = nixc*numelc
1645 sixt = nixt*numelt
1646 sixp = nixp*numelp
1647 sixr = nixr*numelr
1648 sitab = numnod
1649 sitabm1 = 2*numnod
1650 sgjbufi = lkjni*ngjoint
1651!---------
1652 slaccelm= 3*naccelm
1653 snom_opt1= nrbody+naccelm+nvolu+nmonvol+ninter+nintsub+
1654 + nrwall+njoint+nsect+nlink+
1655 + numskw+1+numfram+1+nfxbody+nflow+nrbe2+
1656 + nrbe3+
nsubmod+nfxvel+numbcs+nummpc+
1657 + ngjoint+nunit0+nfunct+nadmesh+
1658 + nsphio+nspcond+nrbykin+
nebcs+
1659 + ninicrack+nodmas+nbgauge+ncluster+ninterfric+
1660 + nrbmerge+numbcsn+nslipring+nretractor
1661 snom_opt = snom_opt1*lnopt1+1
1662 sinom_opt= 33
1664 IF(flag_goto==1) GOTO 209
1665
1666
1667 ALLOCATE(
icode(sicode) ,stat=stat)
1668 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1669 . msgtype=msgerror,
1670 . c1='ICODE')
1671 ALLOCATE(
iskew(siskew) ,stat=stat)
1672 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1673 . msgtype=msgerror,
1674 . c1='ISKEW')
1675 ALLOCATE(
iskwn(siskwn) ,stat=stat)
1676 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1677 . msgtype=msgerror,
1678 . c1='ISKWN')
1679 ALLOCATE(
ibcslag(sibcslag) ,stat=stat)
1680 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1681 . msgtype=msgerror,
1682 . c1='IBCSLAG')
1683 ALLOCATE(
ipart(sipart) ,stat=stat)
1684 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1685 . msgtype=msgerror,
1686 . c1='IPART')
1687 ALLOCATE(
npc(snpc) ,stat=stat)
1688 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1689 . msgtype
1690 . c1='NPC')
1691 ALLOCATE(
ixtg(sixtg) ,stat=stat)
1692 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1693 . msgtype=msgerror,
1694 . c1='IXTG')
1695 ALLOCATE(
ixs(sixs) ,stat=stat)
1696 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1697 . msgtype=msgerror,
1698 . c1='IXS')
1699 ALLOCATE(
ixq(sixq) ,stat=stat)
1700 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1701 . msgtype=msgerror,
1702 . c1='IXQ')
1703 ALLOCATE(
ixc(sixc) ,stat=stat)
1704 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1705 . msgtype=msgerror,
1706 . c1='IXC')
1707 ALLOCATE(
ixt(sixt) ,stat=stat)
1708 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1709 . msgtype=msgerror,
1710 . c1='IXT')
1711 ALLOCATE(
ixp(sixp) ,stat=stat)
1712 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1713 . msgtype=msgerror,
1714 . c1='IXP')
1715 ALLOCATE(
ixr(sixr) ,stat=stat)
1716 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1717 . msgtype=msgerror,
1718 . c1='IXR')
1719 ALLOCATE(
itab(sitab) ,stat=stat)
1720 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1721 . msgtype=msgerror,
1722 . c1='ITAB')
1723 ALLOCATE(
itabm1(sitabm1) ,stat=stat)
1724 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1725 . msgtype=msgerror,
1726 . c1='ITABM1'
1727 ALLOCATE(
gjbufi(sgjbufi) ,stat=stat)
1728 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1729 . msgtype=msgerror,
1730 . c1='GJBUFI')
1731 ALLOCATE(
laccelm(slaccelm) ,stat=stat)
1732 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1733 . msgtype=msgerror,
1734 . c1='LACCELM')
1735
1736 ALLOCATE(
nom_opt(snom_opt) ,stat=stat)
1737 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1738 . msgtype=msgerror,
1739 . c1='NOM_OPT')
1740 ALLOCATE(inom_opt(0:sinom_opt) ,stat=stat)
1741 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1742 . msgtype=msgerror,
1743 . c1='INOM_OPT')
1744 ALLOCATE(
nom_sect(snom_sect) ,stat=stat)
1745 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1746 . msgtype=msgerror,
1747 . c1='NOM_SECT')
1748 ALLOCATE(ixr_kj(5*(numelr+1)) ,stat=stat)
1749 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1750 . msgtype=msgerror,
1751 . c1='IXR_KJ')
1752 ALLOCATE(iworksh(3,numelc+numeltg) ,stat=stat)
1753 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1754 . msgtype=msgerror,
1755 . c1='IXC')
1756 IF(numelig3d > 0) THEN
1757 ALLOCATE(wige(numnod) ,stat=stat)
1758 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1759 . msgtype=msgerror,
1760 . c1='WIGE')
1761 deg_max=0
1762 ELSE
1763 ALLOCATE(wige(0) ,stat=stat)
1764 ENDIF
1765 ALLOCATE(r_skew(numelr) ,stat=stat)
1766 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1767 . msgtype=msgerror,
1768 . c1='R_SKEW')
1769
1770 ALLOCATE(ibeam_vector(numelp) ,stat=stat)
1771 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1772 . msgtype=msgerror,
1773 . c1='IBEAM_VECTOR')
1774 ALLOCATE(rbeam_vector(3,numelp) ,stat=stat)
1775 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1776 . msgtype=msgerror,
1777 . c1='RBEAM_VECTOR')
1778
1779 IF(abs(isigi)==3.OR.abs(isigi)== 4.OR.abs(isigi)==5)THEN
1780 ALLOCATE (ptshel(numelc) ,stat=stat)
1781 ptshel = 0
1782 ALLOCATE (ptsh3n(numeltg) ,stat=stat)
1783 ptsh3n = 0
1784 ELSE
1785 ALLOCATE (ptshel(0) ,stat=stat)
1786 ALLOCATE (ptsh3n(0) ,stat=stat)
1787 END IF
1788
1789 IF(sicode > 0)
icode = 0
1790 IF(siskew > 0)
iskew = 0
1791 IF(siskwn > 0)
iskwn = 0
1793 IF(sipart > 0)
ipart = 0
1794 IF(snpc > 0)
npc = 0
1795 IF(sitab > 0)
itab = 0
1796 IF(sitabm1 > 0)
itabm1 = 0
1797 IF(sgjbufi > 0)
gjbufi = 0
1800 IF(sinom_opt > 0) inom_opt = 0
1801 IF(numelr > 0) ixr_kj = 0
1802 IF(numelc+numeltg > 0) iworksh = 0
1803 IF(numelr > 0) r_skew = 0
1804 IF(numelp > 0) ibeam_vector(1:numelp) = zero
1805 IF(numelp > 0) rbeam_vector(1:3,1:numelp) = zero
1806
1807
1808 IF(siskwn-siframe<siskwn) THEN
1810 ELSE
1812 END IF
1813
1814
1815 inter_cand%S_IXINT_2 = 0
1816 ALLOCATE( inter_cand%ADDRESS(ninter+1) )
1817 inter_cand%ADDRESS(1:ninter+1) = 0
1818
1819
1820
1833 ALLOCATE(igrsurf_proc(nsurf+
nsets,nspmd))
1843
1844
1845
1854
1866
1874
1875
1876
1877216 l0
1878 l1 = l0 + sipartth
1879 l2 = l1 + siparts
1880 l3 = l2 + sipartq
1881 l4 = l3 + sipartc
1882 l5 = l4 + sipartt
1883 l6 = l5 + sipartp
1884 l7 = l6 + sipartr
1885 l8 = l7 + 0
1886 l9 = l8 + sipartg
1887 l10= l9 + sipartx
1888 l11= l10+ sipartsp
1889 l12= l11+ sipartig3d
1890 IF(l1>l0) THEN
1891 ipartth =>
ipart(l0+1:l1)
1892 ELSE
1894 END IF
1895 IF(l2>l1) THEN
1896 iparts =>
ipart(l1+1:l2)
1897 ELSE
1899 END IF
1900 IF(l3>l2) THEN
1901 ipartq =>
ipart(l2+1:l3)
1902 ELSE
1904 END IF
1905 IF(l4>l3) THEN
1906 ipartc =>
ipart(l3+1:l4)
1907 ELSE
1909 END IF
1910 IF(l5>l4) THEN
1911 ipartt =>
ipart(l4+1:l5)
1912 ELSE
1914 END IF
1915 IF(l6>l5) THEN
1916 ipartp =>
ipart(l5+1:l6)
1917 ELSE
1919 END IF
1920 IF(l7>l6) THEN
1921 ipartr =>
ipart(l6+1:l7)
1922 ELSE
1924 END IF
1925 IF(l9>l8) THEN
1926 ipartg =>
ipart(l8+1:l9)
1927 ELSE
1929 END IF
1930 IF(l10>l9) THEN
1931 ipartx =>
ipart(l9+1:l10)
1932 ELSE
1934 END IF
1935 IF(l11>l10) THEN
1936 ipartsp=>
ipart(l10+1:l11)
1937 ELSE
1939 END IF
1940 IF(l12>l11) THEN
1941 ipartig3d=>
ipart(l11+1:l12)
1942 ELSE
1944 END IF
1945 IF(flag_goto==1) GOTO 217
1946
1947 IF(nfunct+2<=snpc-nfunct) THEN
1948 npc1 =>
npc(nfunct+2:snpc-nfunct)
1949 snpc1 = snpc-2*nfunct+1
1950 ELSE
1952 snpc1 = snpc
1953 END IF
1954
1955212 IF(sixs0+sixs10>sixs0) THEN
1956 ixs10 =>
ixs(sixs0+1:sixs0+sixs10)
1957 ELSE
1958
1959
1960 ALLOCATE(ixs10(1))
1961 END IF
1962 IF(sixs0+sixs10+sixs20>sixs0+sixs10) THEN
1963 ixs20 =>
ixs(sixs0+sixs10+1:sixs0+sixs10+sixs20)
1964 ELSE
1965
1966 ALLOCATE(ixs20(1))
1967 END IF
1968 IF(sixs>sixs0+sixs10+sixs20) THEN
1969 ixs16 =>
ixs(sixs0+sixs10+sixs20+1:sixs)
1970 ELSE
1971
1972
1973 ALLOCATE(ixs16(1))
1974 END IF
1975 pixs10 =
min(sixs,sixs0+1 )
1976 pixs20 =
min(sixs,sixs0+sixs10+1 )
1977 pixs16 =
min(sixs,sixs0+sixs10+sixs20+1)
1978
1979 IF(flag_goto==1) GOTO 213
1980
1981
1982210 inom_opt(1) = nrbody
1983 inom_opt(2) = inom_opt(1) + naccelm
1984 inom_opt(3) = inom_opt(2) + nvolu + nmonvol
1985 inom_opt(4) = inom_opt(3) + ninter
1986 inom_opt(5) = inom_opt(4) + nintsub
1987 inom_opt(6) = inom_opt(5) + nrwall
1988 inom_opt(7) = inom_opt(6) + 0
1989 inom_opt(8) = inom_opt(7) + njoint
1990 inom_opt(9) = inom_opt(8) + nsect
1991 inom_opt(10)= inom_opt(9) + nlink
1992 inom_opt(11)= inom_opt(10)+ numskw+1+numfram+1+
nsubmod
1993 inom_opt(12)= inom_opt(11)+ nfxbody
1994 inom_opt(13)= inom_opt(12)+ nflow
1995 inom_opt(14)= inom_opt(13)+ nrbe2
1996 inom_opt(15)= inom_opt(14)+ nrbe3
1997
1998 inom_opt(16)= inom_opt(15)+ nfxvel
1999 inom_opt(17)= inom_opt(16)+ numbcs + numbcsn
2000 inom_opt(18)= inom_opt(17)+ nummpc
2001 inom_opt(19)= inom_opt(18)+ ngjoint
2002 inom_opt(20)= inom_opt(19)+ nunit0
2003 inom_opt(21)= inom_opt(20)+ nfunct
2004 inom_opt(22)= inom_opt(21)+ nadmesh
2005 inom_opt(23)= inom_opt(22)+ nsphio
2006 inom_opt(24)= inom_opt(23)+ nspcond
2007 inom_opt(25)= inom_opt(24)+
nebcs
2008 inom_opt(26)= inom_opt(25)+ ninicrack
2009 inom_opt(27)= inom_opt(26)+ nodmas
2010 inom_opt(28)= inom_opt(27)+ nbgauge
2011 inom_opt(29)= inom_opt(28)+ ncluster
2012 inom_opt(30)= inom_opt(29)+ ninterfric
2013 inom_opt(31)= inom_opt(30)+ nrbmerge
2014 inom_opt(32)= inom_opt(31)+ nslipring
2015 inom_opt(33)= inom_opt(32)+ nretractor
2016
2017 IF(flag_goto==1) GOTO 211
2018
2020 IF(npart==0) THEN
2022 ELSE
2024 END IF
2025
2026
2027
2028 err_msg='FUNCTIONS & TABLES'
2029 err_category='FUNCTIONS & TABLES'
2030 CALL trace_in1(err_msg,len_trim(err_msg))
2031
2032 python%nb_functs = 0
2033 IF(nfunct > 0 .OR. ntable > 0) THEN
2034
2035
2036 WRITE(istdo,'(A)')' .. FUNCTIONS & TABLES'
2037 ALLOCATE(
table(ntable) ,stat=stat)
2038 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2039 . msgtype=msgerror,
2040 . c1='TABLE')
2042 IF(nfunct > 0) THEN
2043 err_msg='FUNCTIONS'
2044 CALL trace_in1(err_msg,len_trim(err_msg))
2045 ALLOCATE(tf(npts) ,stat=stat)
2046 ALLOCATE(funcrypt(nfunct) ,stat=stat)
2047 funcrypt = 0
2048 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2049 . msgtype=msgerror,
2050 . c1='TF')
2051 IF(npts > 0) tf = 0
2053 .
nom_opt(lnopt1*inom_opt(20)+1) ,funcrypt,
unitab, lsubmodel)
2055 END IF
2056
2057 err_msg='TABLES 1'
2058 CALL trace_in1(err_msg,len_trim(err_msg))
2061
2062 CALL hm_read_funct_python(python,
npc,snpc,nfunct,lsubmodel,
nsubmod,tf,npts,
table, ntable)
2064 IF(nfunct > 0) THEN
2066 DEALLOCATE(funcrypt)
2067 END IF
2070 ELSE
2071
2072 err_msg='TABLES 0'
2073 CALL trace_in1(err_msg,len_trim(err_msg))
2074 npts = 0
2075 ALLOCATE(tf(npts) ,stat=stat)
2076 ALLOCATE(
table(0) ,stat=stat)
2078 ENDIF
2079
2080
2081 stf = npts
2082
2084
2085
2086
2087 ALLOCATE(func2d(nfunc2d))
2088 IF(nfunc2d > 0) THEN
2090 ENDIF
2091
2092
2093
2094 err_msg='DYNAMIC STORAGE'
2095 err_msg='INTERNAL'
2096 CALL trace_in1(err_msg,len_trim(err_msg))
2097 spm = nummat*npropm
2098 sskew = lskew*(numskw+1)
2099 IF(nspcond > 0) sskew = sskew + lskew*numsph
2101 sxframe = nxframe*(numfram+1)
2102 sskew = sskew + sxframe
2103 sgeo = numgeo*npropg
2104 seani = numels+numelq+numelc+numeltg
2105 ishif = numels+numelq+numelc
2106
2107 ALLOCATE(pm(spm) ,stat=stat)
2108 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'PM')
2109 ALLOCATE(geo(sgeo),stat=stat)
2110 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'GEO')
2111
2112 ALLOCATE(skew(sskew) ,stat=stat)
2113 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'SKEW')
2114 IF(sskew-sxframe<sskew) THEN
2115 xframe => skew(sskew-sxframe+1:sskew)
2116 ELSE
2117 xframe => skew
2118 END IF
2119
2120 ALLOCATE(eani(seani) ,stat=stat)
2121 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'EANI')
2122 IF(seani > 0) eani = 0
2123 IF(numeltg > 0) THEN
2124 eanit => eani(ishif+1:seani)
2125 ELSE
2126 eanit => eanit2
2127 ENDIF
2128 pm = 0
2129 skew = 0
2130 geo = 0
2131 ishif =numels+numelq+numelc
2133
2134 err_msg='KINEMATIC INITIALIZATION'
2135 CALL trace_in1(err_msg,len_trim(err_msg))
2138
2139
2140
2141 err_msg='MATERIALS'
2142 err_category='MATERIALS'
2143 CALL trace_in1(err_msg,len_trim(err_msg))
2146 WRITE(istdo,'(A)')titre(11)
2147 srwork =
max(nummat*10000,1000000)
2148 sbufmat = 0
2149 ALLOCATE(rwork(srwork) ,stat=stat)
2150 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'RWORK')
2151 IF(srwork > 0) rwork = zero
2152
2153 ALLOCATE(mtag_ini(nummat))
2154 ALLOCATE(mparam_ini(nummat))
2156 mat_elem%MAT_PARAM(1:nummat) => mparam_ini(1:nummat)
2157 mlaw_tag(1:nummat) => mtag_ini(1:nummat)
2159
2161 . mat_elem ,mlaw_tag ,fail_tag ,eos_tag ,
2164 . ltitr ,userl_avail,mat_number,
2165 .
npc ,tf ,snpc ,npts ,sbufmat )
2166
2167 ALLOCATE(bufmat(sbufmat) ,stat=stat)
2168 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2169 . msgtype=msgerror,
2170 . c1='BUFMAT')
2171 bufmat = rwork(1:sbufmat
2172IFALLOCATED(rwork)) DEALLOCATE(rwork)
2174
2175 err_msg='STORAGE'
2176 err_msg='INTERNAL'
2177 CALL trace_in1(err_msg,len_trim(err_msg))
2178
2180
2181
2182
2186
2187
2193
2194
2195
2196
2197 err_msg='NODES'
2198 err_category='NODES'
2199 CALL trace_in1(err_msg,len_trim(err_msg))
2200 ALLOCATE(cmerge(numcnod),stat=stat)
2201 IF(stat /= 0) THEN
2202 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
2203 . c1='CMERGE')
2204 ENDIF
2205 cmerge = zero
2206
2207 WRITE(istdo,'(A)')titre(12)
2209 . wige ,lsubmodel,is_dyna)
2210
2212
2213
2214
2215 IF(numskw > 0) THEN
2216 ALLOCATE(iskew_tmp(siskwn) ,stat=stat)
2217 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2218 . msgtype=msgerror,
2219 . c1='SKEW')
2220 ALLOCATE(skew_tmp(sskew) ,stat=stat)
2221 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2222 . msgtype=msgerror,
2223 . c1='SKEW')
2224 skew_tmp = 0
2225 CALL hm_preread_skw(skew_tmp ,iskew_tmp ,x ,
itab ,
itabm1 ,
2226 . lsubmodel ,
unitab ,numnod ,numskw ,check_used,
2227 . liskn ,lskew ,n2d ,siskwn ,sskew )
2228 ELSE
2229 ALLOCATE(iskew_tmp(0))
2230 ALLOCATE(skew_tmp(0))
2231 ENDIF
2232
2233
2234
2235 err_msg='SUBMODELS'
2236 err_category='SUBMODELS'
2237 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2238 . msgtype=msgerror)
2239 CALL trace_in1(err_msg,len_trim(err_msg))
2240 srtrans = nrtrans * ntransf
2241 ALLOCATE(rtrans(srtrans) ,stat=stat)
2242 IF(srtrans > 0) rtrans = zero
2243
2245 WRITE(istdo,'(A)')' .. SUBMODELS'
2246 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2247 . msgtype=msgerror,
2248 . c1='RTRANS')
2250 . rtrans ,lsubmodel,is_dyna,iskew_tmp,liskn ,
2251 . nspcond ,numsph ,siskwn )
2253 .
itab ,lsubmodel ,is_dyna ,iskew_tmp ,liskn ,
2254 . skew_tmp ,lskew ,siskwn ,sskew )
2255 ENDIF
2256
2258
2259
2260
2261
2262
2263 IF(ALLOCATED(iskew_tmp)) DEALLOCATE(iskew_tmp)
2264 IF(ALLOCATED(skew_tmp)) DEALLOCATE(skew_tmp)
2265 err_msg='SKEWS'
2266 err_category='SKEWS'
2267 CALL trace_in1(err_msg,len_trim(err_msg))
2268 IF(numskw/=0)WRITE(istdo,'(A)')titre(14)
2271 . lsubmodel,rtrans,
2273
2275 . lsubmodel,rtrans,
2278
2279
2280
2281 IF(ndrape > 0) THEN
2282 ALLOCATE(idrapeid(ndrape) ,stat=stat)
2283 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2284 . msgtype=msgerror,
2285 . c1='DRAPE')
2286 idrapeid = 0
2288 ELSE
2289 ALLOCATE(idrapeid(0))
2290 ENDIF
2291
2292
2293
2294 IF(nsphsol/=0)THEN
2296 END IF
2297
2298 nrbag=0
2299 sbufgeo = 0
2300
2301 err_msg='PROPERTIES'
2302 err_category='PROPERTIES'
2303 CALL trace_in1(err_msg,len_trim(err_msg))
2304
2305 IF(numgeo > 0)THEN
2306 WRITE(istdo,'(A)')titre(31)
2307 srwork = numgeo*(bgeosize+maxfunc+maxmat+maxpid+maxtab)
2308 sbufgeo = 0
2309 ALLOCATE(dbrwork(srwork) ,stat=stat)
2310 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2311 . msgtype=msgerror,
2312 . c1='DBRWORK')
2313 dbrwork = zero
2314 ALLOCATE(knot(sknot) ,stat=stat)
2315 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2316 . msgtype=msgerror,
2317 . c1='KNOT')
2319
2320 iadgeo=1
2323 .
npc , tf ,
unitab , rtrans ,lsubmodel ,
2326 . mat_elem%MAT_PARAM)
2327
2328 ALLOCATE(
bufgeo(sbufgeo) ,stat=stat)
2329 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2330 . msgtype=msgerror,
2331 . c1='BUFGEO')
2332 bufgeo(1:sbufgeo) = dbrwork(1:sbufgeo)
2333 DEALLOCATE(dbrwork)
2335 ELSE
2336 ALLOCATE(
bufgeo(sbufgeo) ,stat=stat)
2337 ENDIF
2338
2339 IF(numply /= 0) THEN
2340 ALLOCATE(
ply_info(3,numply),stat=stat)
2341 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2342 . msgtype=msgerror,
2343 . c1='PLY')
2345 ELSE
2347 ENDIF
2348
2349 IF(numstack > 0) THEN
2350
2351 len_g = npropgi*(numstack + numply)
2352 ALLOCATE(igeo_stack(len_g),stat=stat)
2353 igeo_stack = 0
2354 len_g = npropg*(numstack + numply )
2355 ALLOCATE(geo_stack(len_g),stat=stat)
2356 geo_stack = zero
2361 . defaults )
2362 ELSE
2363 ALLOCATE(igeo_stack(0),stat=stat)
2364 ALLOCATE(geo_stack(0),stat=stat)
2365 ENDIF
2366
2367 IF(sdr==0 .AND. idrot == 1) THEN
2368 sdr = 3*numnod*
max(iroddl,iroddl0)
2369 IF(ALLOCATED(dr)) DEALLOCATE(dr)
2370 ALLOCATE(dr(sdr) ,stat=stat)
2371 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2372 . msgtype=msgerror)
2373 dr = zero
2374 ENDIF
2375
2376
2377
2379
2380 ALLOCATE(pinch_data%XPINCH(3,spinch) ,stat=stat)
2381 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2382 . msgtype=msgerror,
2383 . c1='XPINCH')
2384 ALLOCATE(pinch_data%DPINCH(3,spinch) ,stat=stat)
2385 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2386 . msgtype=msgerror,
2387 . c1='DPINCH')
2388 ALLOCATE(pinch_data%VPINCH(3,spinch) ,stat=stat)
2389 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2390 . msgtype=msgerror,
2391 . c1='VPINCH')
2392 ALLOCATE(pinch_data%MSPINCH(spinch) ,stat=stat)
2393 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2394 . msgtype=msgerror,
2395 . c1='MSPINCH')
2396
2398 pinch_data%XPINCH(1:3,1:spinch) = zero
2399 pinch_data%DPINCH(1:3,1:spinch) = zero
2400 pinch_data%VPINCH(1:3,1:spinch) = zero
2401 pinch_data%MSPINCH(1:spinch) = zero
2402 ENDIF
2403
2405
2406
2407
2408
2409
2410
2411 err_msg='PARTS'
2412 err_category='PARTS'
2413 CALL trace_in1(err_msg,len_trim(err_msg))
2414 siwork =
max(2*numels,2*numelq,3*(npart+nthpart),3*numskw,numels,
2415 * numelc,numeltg,nummat+numgeo,numelt+numelp+numelr+
2416 * numelx+numelig3d)
2417 ALLOCATE(iwork(siwork) ,stat=stat)
2418 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2419 . msgtype=msgerror,
2420 . c1='IWORK')
2421 iwork = 0
2422 ALLOCATE(thk_part(npart) ,stat=stat)
2423
2425 .
unitab,lsubmodel,multi_fvm ,mlaw_tag,mat_elem%MAT_PARAM,glob_therm)
2426
2428
2429
2430
2431
2432 ale%GLOBAL%SNALE =
max(iale,ieuler,ialelag)*numnod
2433 ale%GLOBAL%SIELVS = 6*numels+
max(iale,glob_therm%ITHERM,ieuler,ialelag)* (4 * numelq + 3 * numeltg)
2434 sifill = nmult*numnod
2435 sims = nmult*numnod
2436
2437 ALLOCATE(
ifill(sifill),stat=stat)
2438 IF(stat /= 0)
CALL ancmsg(msgid = 268,
2439 . anmode = aninfo,
2440 . msgtype = msgerror,
2441 . c1 = 'IFILL')
2442
2443 ALLOCATE(
ims(sims),stat=stat)
2444 IF(stat /= 0)
CALL ancmsg(msgid = 268,
2445 . anmode = aninfo,
2446 . msgtype = msgerror,
2447 . c1 = 'IMS')
2448
2449
2450 IF(sifill > 0)
ifill = 0
2451 IF(sims > 0)
ims = 0
2452
2453 ALLOCATE(dflow(3*numnod*ialelag) ,stat=stat)
2454 ALLOCATE(vflow(3*numnod*ialelag) ,stat=stat)
2455 ALLOCATE(wflow(3*numnod*ialelag) ,stat=stat)
2456
2457 IF(ialelag > 0) THEN
2458 dflow = zero
2459 vflow = zero
2460 wflow = zero
2461 ENDIF
2462
2466 ENDIF
2467
2468
2469
2470
2471
2472 err_msg='MULTIDOMAINS'
2473 err_category='MULTIDOMAINS'
2474 CALL trace_in1(err_msg,len_trim(err_msg))
2475 nr2r = 5
2476 r2r_siu = 0
2477 siexlnk = nr2r*nr2rlnk
2478 IF((nr2rlnk+nsubdom)>0) THEN
2479 ALLOCATE(
iexlnk(siexlnk) ,stat=stat)
2480 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2481 . msgtype=msgerror,
2482 . c1='IEXLNK')
2484 WRITE(istdo,'(A)') ' .. EXTERNAL COUPLING'
2486 nl_ddr2r = nr2rlnk
2487 ELSE
2489 ENDIF
2490 IF(nsubdom > 0) THEN
2494 nl_ddr2r = 4
2495 r2r_siu = 1
2496
2497
2498 IF(nummat > nummat0) THEN
2499 ALLOCATE(mtag_r2r(nummat))
2500 ALLOCATE(mparam_r2r(nummat))
2502 mtag_r2r(1:nummat0) = mtag_ini(1:nummat0)
2504 mlaw_tag(1:nummat) => mtag_r2r(1:nummat)
2505 mat_elem%MAT_PARAM(1:nummat) => mparam_r2r(1:nummat)
2506 mat_elem%NUMMAT = nummat
2507 DEALLOCATE(mtag_ini)
2508 IF(ALLOCATED(mparam_ini))THEN
2509 DO i=1,nummat0 ; CALL mparam_ini(i)%DESTRUCT() ; ENDDO
2510 DEALLOCATE(mparam_ini)
2511 ENDIF
2512 ENDIF
2513 ELSE
2515 ENDIF
2517
2518
2519
2520
2521
2522 tabmp_l = 10
2523
2524 CALL trace_in1(err_msg,len_trim(err_msg))
2525 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2526 . msgtype=msgerror,
2527 . c1='PARTS')
2528
2529 ALLOCATE( poin_part_shell(2,npart) )
2530 ALLOCATE( poin_part_tri(2,npart) )
2531 ALLOCATE( poin_part_sol(2,npart,7) )
2532 ALLOCATE( mid_pid_shell(nummat),mid_pid_tri(nummat) )
2533 ALLOCATE( mid_pid_sol(nummat,7) )
2534 poin_part_shell(1:2,1:npart) = 0
2535 poin_part_tri(1:2,1:npart) = 0
2536 poin_part_sol(1:2,1:npart,1:7) = 0
2537
2538 ALLOCATE(
poin_ump(nummat), stat=stat)
2540 ALLOCATE(tab_ump_loc(5,npart), stat=stat)
2541 tab_ump_loc(1:5,1:npart) = 0
2542
2545
2546
2547
2548 err_msg='ELEMENTS'
2549 err_category='ELEMENTS'
2550 CALL trace_in1(err_msg,len_trim(err_msg))
2551 IF(numels/=0)THEN
2552 WRITE(istdo,'(A)')titre(15)
2553
2555 .
ipart ,iparts ,eani ,ixs10 ,ixs20 ,ixs16 ,
2556 .
igeo ,lsubmodel,is_dyna,x )
2557
2558 ENDIF
2560
2561
2562
2563 IF(numelq/=0)THEN
2564 WRITE(istdo,'(A)')titre(16)
2567 ENDIF
2568
2569
2570
2571 ALLOCATE(itag(numnod),stat=stat)
2572 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
2573 . msgtype=msgerror,
2574 . c1='itag')
2575 ITAG=0
2576
2577 IF(NUMELC/=0)THEN
2578 WRITE(ISTDO,'(a)')TITRE(17)
2579 CALL HM_READ_SHELL(IXC ,ITAB ,ITABM1 ,IPART ,IPARTC ,
2580 . THKE ,IPM ,IGEO ,UNITAB ,ITAG ,SH4ANG, LSUBMODEL)
2581 ENDIF
2582
2583
2584
2585
2586
2587
2588
2589
2590 IF(NUMELT/=0)THEN
2591 WRITE(ISTDO,'(a)')TITRE(18)
2592 CALL HM_READ_TRUSS(IXT ,ITAB ,ITABM1 ,IPART ,IPARTT ,
2593 . IPM ,IGEO ,LSUBMODEL)
2594 ENDIF
2595
2596
2597
2598 IF(NUMELP/=0)THEN
2599 WRITE(ISTDO,'(a)')TITRE(19)
2600 CALL HM_READ_BEAM(IXP ,ITAB ,ITABM1 ,IPART ,IPARTP ,
2601 . IPM ,IGEO ,LSUBMODEL,IBEAM_VECTOR,RBEAM_VECTOR)
2602 ENDIF
2603
2604
2605
2606 REINT = ZERO
2607 IF(NUMELR/=0)THEN
2608 WRITE(ISTDO,'(a)')TITRE(20)
2609 CALL HM_READ_SPRING(IXR ,ITAB ,ITABM1 ,IPART ,IPARTR ,
2610 . IGEO ,IXR_KJ ,LSUBMODEL,ISKWN,R_SKEW,IPM)
2611 ENDIF
2612
2613
2614
2615 IF(NUMELTG/=0)THEN
2616.AND. IF(N2D==0 NUMELTRIA==0)THEN
2617 WRITE(ISTDO,'(a)')TITRE(21)
2618 CALL HM_READ_SH3N( IXTG ,ITAB ,ITABM1 ,IPART ,IPARTG ,
2619 . THKEC ,PM ,GEO ,EANIT ,IGEO ,
2620 . IPM ,UNITAB ,SH3ANG , LSUBMODEL)
2621 ELSEIF(NUMELTRIA==NUMELTG)THEN
2622 WRITE(ISTDO,'(a)')TITRE(23)
2623 CALL HM_READ_TRIA(IXTG ,ITAB ,ITABM1 ,IPART ,IPARTG ,
2624 . PM ,GEO ,EANIT ,IGEO ,IPM ,
2625 . UNITAB , LSUBMODEL)
2626 ELSE
2627 !check is IXTG array is used with proper modeling : 2D-TRIA or 3D-SH3N
2628.AND..AND. IF(NUMELTG>0 N2D>0 NUMELTRIA==0)THEN
2629 CALL ANCMSG(MSGID=66,
2630 . MSGTYPE=MSGERROR,
2631 . ANMODE=ANINFO,
2632 . C1='sh3n',
2633 . C2='2d-analysis'
2634 . )
2635.AND..AND. ELSEIF(NUMELTG>0 N2D==0 NUMELTRIA==NUMELTG)THEN
2636 CALL ANCMSG(MSGID=66,
2637 . MSGTYPE=MSGERROR,
2638 . ANMODE=ANINFO,
2639 . C1='tria',
2640 . C2='3d-analysis'
2641 . )
2642 ENDIF
2643 NUMELTG = 0
2644 ENDIF
2645 ENDIF
2646
2647
2648 IF(NUMELTG + NUMELC == 0) ICRACK3D = 0
2649
2650
2651
2652 NCTRLMAX = 0
2653 IF(NUMELIG3D/=0)THEN
2654
2655 SKXIG3D = NIXIG3D*NUMELIG3D
2656 WRITE(ISTDO,'(a)')TITRE(22)
2657
2658 CALL PRELECIG3D(SIXIG3D)
2659
2660 ALLOCATE(KXIG3D(SKXIG3D) ,STAT=stat)
2661 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2662 . MSGTYPE=MSGERROR,
2664 ALLOCATE(IXIG3D(SIXIG3D+ADDSIXIG3D) ,STAT=stat)
2665 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2666 . MSGTYPE=MSGERROR,
2668 ALLOCATE(TABCONPATCH(NBPART_IG3D),STAT=stat)
2669 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2670 . MSGTYPE=MSGERROR,
2671 . C1='tabcon_patch_ig3d')
2672 KXIG3D = 0
2673 IXIG3D = 0
2674 CALL LECIG3D(
2675 . ITAB ,IPART ,IPARTIG3D ,IPM ,IGEO ,
2676 . KXIG3D ,IXIG3D ,ITABM1 ,NCTRLMAX,TABCONPATCH)
2677
2678 SKNOTLOCPC = DEG_MAX*3*(NUMNOD+L_TAB_NEWFCT)*NUMGEO ! THERE SHOULD BE A NUMBER OF IGE POINTS AND INDICES
2679
2680.OR. IF(SKNOTLOCPC > INTMAX SKNOTLOCPC < ZERO) THEN ! L_TAB_NEWFCT to allow for workspace size
2681 SKNOTLOCPC = INTMAX
2682 ELSE
2683 SKNOTLOCPC = INT(SKNOTLOCPC)
2684 ENDIF
2685 ALLOCATE(KNOTLOCPC(SKNOTLOCPC) ,STAT=stat)
2686 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2687 . MSGTYPE=MSGERROR,
2688 . C1='knotlocpc')
2689 KNOTLOCPC(:)=0
2690
2691 SKNOTLOCEL = 2*3*NUMELIG3D
2692.OR. IF(SKNOTLOCEL > INTMAX SKNOTLOCEL < ZERO) THEN
2693 SKNOTLOCEL = INTMAX
2694 ELSE
2695 SKNOTLOCEL = INT(SKNOTLOCEL)
2696 ENDIF
2697 ALLOCATE(KNOTLOCEL(SKNOTLOCEL) ,STAT=stat)
2698 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2699 . MSGTYPE=MSGERROR,
2700 . C1='knotlocel')
2701 KNOTLOCEL(:)=0
2702
2703 CALL PRERAFIG3D(KNOT,KNOTLOCPC,KNOTLOCEL,
2704 . KXIG3D,IXIG3D,IGEO,
2705 . IPARTIG3D,
2706 . X,V,D,MS,WIGE,TABCONPATCH,1)
2707
2708 SIXIG3D=SIXIG3D+ADDSIXIG3D
2709 ALLOCATE(MSIG3D(NUMELIG3D*NCTRLMAX) ,STAT=stat)
2710 MSIG3D(1:NUMELIG3D*NCTRLMAX) = ZERO
2711 ELSE
2712 ALLOCATE(KXIG3D(0) ,STAT=stat)
2713 ALLOCATE(MSIG3D(0) ,STAT=stat)
2714 ALLOCATE(IXIG3D(0) ,STAT=stat)
2715 ALLOCATE(KNOTLOCEL(0) ,STAT=stat)
2716 ALLOCATE(KNOTLOCPC(0) ,STAT=stat)
2717 ENDIF
2718
2719
2720
2721.AND. IF(NUMELX > 0 NGRNOD > 0 )THEN
2722 WRITE(ISTDO,'(a)')' .. nodens group '
2723 CALL HM_PRELECGRNS(ITABM1 ,IGRNOD, LSUBMODEL)
2724 ENDIF
2725
2726
2727
2728 ERR_MSG='multi-purpose elements'
2729 ERR_CATEGORY='multi-purpose elements'
2730 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2731 IF(NUMELX > 0) THEN
2732 SKXX = NIXX*NUMELX
2733 CALL HM_PREREAD_XELEM(SIXX, IGRNOD,LSUBMODEL)
2734 ALLOCATE(KXX(SKXX) ,STAT=stat)
2735 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2736 . MSGTYPE=MSGERROR,
2738 ALLOCATE(IXX(SIXX+150) ,STAT=stat)
2739 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2740 . MSGTYPE=MSGERROR,
2742 KXX = 0
2743 IXX = 0
2744 ALLOCATE(LELX(NUMELX) ,STAT=stat)
2745 LELX(1:NUMELX) = ZERO
2746 CALL HM_READ_XELEM(IGRNOD ,ITAB ,ITABM1 ,IPART ,IPARTX,
2747 . IPM ,IGEO ,KXX ,IXX ,LSUBMODEL)
2748 ELSE
2749 SKXX = 0
2750 SIXX = 0
2751 ALLOCATE(KXX(SKXX) ,STAT=stat)
2752 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2753 . MSGTYPE=MSGERROR,
2755 ALLOCATE(IXX(SIXX) ,STAT=stat)
2756 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2757 . MSGTYPE=MSGERROR,
2759 ALLOCATE(LELX(NUMELX) ,STAT=stat)
2760 ENDIF
2761 CALL TRACE_OUT1()
2762
2763
2764
2765 ERR_MSG='adaptive meshing'
2766 ERR_CATEGORY='adaptive meshing'
2767 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2768 LEVELMAX=0
2769 LSH4TRIM=0
2770 LSH3TRIM=0
2771 IF(NADMESH/=0)THEN
2772
2773 ALLOCATE(SH4TREE(KSH4TREE,NUMELC),STAT=stat)
2774 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2775 . MSGTYPE=MSGERROR,
2777 SH4TREE=0
2778 ALLOCATE(SH3TREE(KSH3TREE,NUMELTG),STAT=stat)
2779 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2780 . MSGTYPE=MSGERROR,
2782 SH3TREE=0
2783 ALLOCATE(IPADMESH(KIPADMESH,NPART),STAT=stat)
2784 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2785 . MSGTYPE=MSGERROR,
2787 IPADMESH=0
2788
2789 ALLOCATE(PADMESH(KPADMESH,NPART),STAT=stat)
2790 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2791 . MSGTYPE=MSGERROR,
2792 . C1='padmesh')
2793 PADMESH=ZERO
2794
2795 CALL SET_ADMESH(IPART ,IPADMESH,PADMESH,UNITAB,LSUBMODEL )
2796
2797 IF(IADMSTAT/=0)THEN
2798 LSH4TRIM=NUMELC
2799 ALLOCATE(SH4TRIM(LSH4TRIM),STAT=stat)
2800 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2801 . MSGTYPE=MSGERROR,
2803 SH4TRIM=0
2804 LSH3TRIM=NUMELTG
2805 ALLOCATE(SH3TRIM(LSH3TRIM),STAT=stat)
2806 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2807 . MSGTYPE=MSGERROR,
2809 SH3TRIM=0
2810 CALL STATE_ADMESH(
2811 . IPART ,IPARTC ,IPARTG ,IXC ,IXTG ,
2812 . SH4TREE, SH3TREE, SH4TRIM, SH3TRIM,
2813 . LSUBMODEL)
2814 END IF
2815 CALL BUILD_ADMESH(
2816 . IPART ,IPARTC ,IPARTG ,IXC ,IXTG ,
2817 . X ,ITAB ,ITABM1 ,SH4TREE, SH3TREE,
2818 . IPADMESH,PADMESH)
2819 ELSE
2820 ALLOCATE(SH4TREE(0,0))
2821 ALLOCATE(SH3TREE(0,0))
2822 ALLOCATE(IPADMESH(0,0))
2823 ALLOCATE(PADMESH(0,0))
2824 ALLOCATE(SH4TRIM(0))
2825 ALLOCATE(SH3TRIM(0))
2826 END IF
2827
2828 IF(ISTATCND/=0)THEN
2829 ALLOCATE(MSCND(NUMNOD),INCND(NUMNOD),STAT=stat)
2830 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2831 . MSGTYPE=MSGERROR,
2832 . C1='mscnd')
2833 MSCND=ZERO
2834 INCND=ZERO
2835 ELSE
2836 ALLOCATE(MSCND(0),INCND(0))
2837 END IF
2838 CALL TRACE_OUT1()
2839
2840
2841
2842
2843
2844 IF(TAILLE2>0) THEN
2845 ALLOCATE(TAB_UMP_LOC2(7+6,TAILLE2,2),STAT=stat)
2846 TAB_UMP_LOC2 = 0
2847 CALL REINI_MATPROP(TAILLE,TAILLE2,TAB_UMP_LOC,TAB_UMP_LOC2,
2848 . IXS,IXQ,IXC,IXT,IXP,IXR,
2849 . IXTG,EANI,POIN_UMP)
2850
2851 ALLOCATE( TAB_UMP(7,TAILLE), STAT=stat)
2852 TAB_UMP = 0
2853 IF(TAILLE>0) THEN
2854 CALL REINI_MATPROP2(TAILLE,TAILLE2,
2855 . TAB_UMP_LOC,TAB_UMP_LOC2,TAB_UMP,TAB_SOL,
2856 . POIN_UMP)
2857 ENDIF
2858 DEALLOCATE(TAB_UMP_LOC2)
2859 ENDIF
2860 DEALLOCATE(TAB_UMP_LOC)
2861
2862
2863
2864
2865 IF(ICRACK3D > 0) THEN
2866 NXEL = 3 ! nb of phantom elements within one layer (change to NXEL=3)
2867 XFEMON = 1
2868 IF(IPARI0 /= 1) IPARI0=1 ! force flag parith/on pour XFEM (pareil engine)
2869 ELSE
2870 NXEL = 0
2871 XFEMON = 0
2872 ENDIF
2873
2874 ERR_MSG='xfem
for shells - allocations
'
2875 ERR_CATEGORY='internal'
2876 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2877
2878 LEN = XFEMON*NUMNOD
2879 ALLOCATE(ADDCNE_CRKXFEM(0:LEN+1),STAT=stat)
2880 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2881 . MSGTYPE=MSGERROR,C1='addcne_crkxfem')
2882 ADDCNE_CRKXFEM(0:LEN+1) = 0
2883
2884 ALLOCATE(ITAGN(LEN),STAT=stat)
2885 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2886 . MSGTYPE=MSGERROR,C1='itagn')
2887 ALLOCATE(INOD_CRKXFEM(LEN),STAT=stat)
2888 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2890 ALLOCATE(IBORDNODE(LEN),STAT=stat)
2891 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
2893 LEN = XFEMON*(NUMELC+NUMELTG)
2894 SITAGE=LEN
2895 ALLOCATE(ITAGE(LEN),STAT=stat)
2896 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2897 . MSGTYPE=MSGERROR,C1='itage')
2898 ALLOCATE(IEL_CRKXFEM(LEN),STAT=stat)
2899 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2901
2902 ITAGN = 0
2903 ITAGE = 0
2904 INOD_CRKXFEM = 0
2905 IEL_CRKXFEM = 0
2906 IBORDNODE = 0
2907
2908 CALL TRACE_OUT1()
2909
2910
2911
2912 ERR_MSG='sph'
2913 ERR_CATEGORY='sph'
2914 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2915 IF(NSPHSOL/=0)THEN
2916 ALLOCATE(SPH2SOL(NUMSPH) ,STAT=stat)
2917 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2918 . MSGTYPE=MSGERROR,
2920 SPH2SOL=0
2921 ALLOCATE(SOL2SPH(2*NUMELS8) ,STAT=stat)
2922 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2923 . MSGTYPE=MSGERROR,
2925 SOL2SPH=0
2926 ALLOCATE(IRST(3*NSPHSOL) ,STAT=stat)
2927 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2928 . MSGTYPE=MSGERROR,
2930 IRST=0
2931 ALLOCATE(SOL2SPH_TYP(NUMELS8) ,STAT=stat)
2932 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2933 . MSGTYPE=MSGERROR,
2935 SOL2SPH_TYP=0
2936 ELSE
2937 ALLOCATE(SPH2SOL(0) ,STAT=stat)
2938 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2939 . MSGTYPE=MSGERROR,
2941 ALLOCATE(SOL2SPH(0) ,STAT=stat)
2942 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2943 . MSGTYPE=MSGERROR,
2945 ALLOCATE(IRST(0) ,STAT=stat)
2946 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2947 . MSGTYPE=MSGERROR,
2949 ALLOCATE(SOL2SPH_TYP(0) ,STAT=stat)
2950 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2951 . MSGTYPE=MSGERROR,
2953 END IF
2954 IF(NUMSPH > 0) THEN
2955 SSPBUF = NSPBUF*NUMSPH
2956 SKXSP = NISP*NUMSPH
2957 SIXSP = KVOISPH*NUMSPH
2958
2959 KVOISPH8 = KVOISPH
2960 NUMSPH8 = NUMSPH
2961
2962
2963 SIXSP8 = (NUMSPH8/(NSPMD))*KVOISPH8
2964 LIMIT8 = (HUGE(INTEGER_LIMIT32)-1)*0.95!((2**31)-1)*0.95
2965 IF(SIXSP8>LIMIT8)THEN
2966 CALL ANCMSG(MSGID=981,
2967 . MSGTYPE=MSGERROR,
2968 . ANMODE=ANSTOP)
2969 ENDIF
2970
2971 SNOD2SP = NUMNOD
2972 ALLOCATE(KXSP(SKXSP) ,STAT=stat)
2973 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2974 . MSGTYPE=MSGERROR,
2976 ALLOCATE(IXSP(KVOISPH,NUMSPH) ,STAT=stat)
2977 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2978 . MSGTYPE=MSGERROR,
2980 ALLOCATE(NOD2SP(SNOD2SP) ,STAT=stat)
2981 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2982 . MSGTYPE=MSGERROR,
2984 ALLOCATE(SPBUF(SSPBUF) ,STAT=stat)
2985 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2986 . MSGTYPE=MSGERROR,
2987 . C1='spbuf')
2988
2989.AND. IF(NSPHIO>0NBPARTINLET>0)THEN
2990 ALLOCATE(RESERVEP(NBPARTINLET) ,STAT=stat)
2991 IF(STAT /= 0) CALL ANCMSG(MSGID=268,
2992 . ANMODE=ANSTOP,
2993 . MSGTYPE=MSGERROR,
2994 . C1='reservep')
2995 RESERVEP(1:NBPARTINLET) = 0
2996 ELSE
2997 ALLOCATE(RESERVEP(1))
2998 RESERVEP(1) = 0
2999 ENDIF
3000 KXSP = 0
3001 IXSP = 0
3002 NOD2SP = 0
3003 SPBUF = ZERO
3004 WRITE(ISTDO,'(a)')' .. sph particles definition'
3005 CALL HM_READ_SPHCEL(ITAB ,ITABM1 ,IPART ,
3006 2 IPARTSP ,IPM ,IGEO ,KXSP ,IXSP ,
3007 3 NOD2SP, RESERVEP,IXS ,IPARTS ,EANI ,
3008 4 SPH2SOL,SOL2SPH ,IRST ,X ,SOL2SPH_TYP,
3009 5 LSUBMODEL,SPBUF ,UNITAB ,IPRI )
3010
3011 ELSE
3012 SSPBUF = 0
3013 SKXSP = 0
3014 SIXSP = 0
3015 SNOD2SP = 0
3016 ALLOCATE(KXSP(SKXSP) ,STAT=stat)
3017 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3018 . MSGTYPE=MSGERROR,
3020 ALLOCATE(IXSP(0,0) ,STAT=stat)
3021 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3022 . MSGTYPE=MSGERROR,
3024 ALLOCATE(NOD2SP(SNOD2SP) ,STAT=stat)
3025 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3026 . MSGTYPE=MSGERROR,
3028 ALLOCATE(SPBUF(SSPBUF) ,STAT=stat)
3029 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3030 . MSGTYPE=MSGERROR,
3031 . C1='spbuf')
3032 ENDIF
3033 CALL TRACE_OUT1()
3034
3035
3036
3037
3038 ERR_MSG='connectivity'
3039 ERR_CATEGORY='connectivity'
3040 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3041 ! -------------------
3042 ! initialisation of invert_group structure, used in
3043 ! HM_READ_SET and in HM_READ_SENSORS for user sensor
3044 CALL INVERTED_GROUP_INIT(0,INV_GROUP,NUMSPH)
3045 ! example :
3046 CALL COMPUTE_CONNECT_PARTELM(IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP,
3047 . IPARTG ,IPARTR ,IPARTSP ,INV_GROUP,NUMSPH,
3048 . NISP ,KXSP )
3049 ! -------------------
3050 IF(NUMELTG6 ==0 )THEN
3051 SIXTG1 = 0
3052 ELSE
3053 SIXTG1 = 4*NUMELTG
3054 ENDIF
3055 ALLOCATE(IXTG1(SIXTG1), STAT=stat)
3056 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3057 . MSGTYPE=MSGERROR,
3059 IXTG1 = 0
3060
3061214 ALLOCATE(KNOD2ELS(NUMNOD+1),STAT=stat)
3062 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3063 . MSGTYPE=MSGERROR,
3065 KNOD2ELS=0
3066 ALLOCATE(KNOD2ELC(NUMNOD+1),STAT=stat)
3067 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3068 . MSGTYPE=MSGERROR)
3069 KNOD2ELC=0
3070 ALLOCATE(KNOD2ELTG(NUMNOD+1),STAT=stat)
3071 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3072 . MSGTYPE=MSGERROR,
3074 KNOD2ELTG=0
3075 ALLOCATE(KNOD2EL1D(NUMNOD+1),STAT=stat)
3076 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3077 . MSGTYPE=MSGERROR,
3079 KNOD2EL1D=0
3080
3081 ALLOCATE(KNOD2ELQ(NUMNOD+1),STAT=stat)
3082 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3083 . MSGTYPE=MSGERROR)
3084 KNOD2ELQ=0
3085
3086
3087 S_NOD2ELS = 8*NUMELS+6*NUMELS10+12*NUMELS20+8*NUMELS16
3088 ALLOCATE(NOD2ELS(S_NOD2ELS),STAT=stat)
3089 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3090 . MSGTYPE=MSGERROR,
3092 NOD2ELS=0
3093 ALLOCATE(NOD2ELC(4*NUMELC),STAT=stat)
3094 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3095 . MSGTYPE=MSGERROR,
3097 NOD2ELC=0
3098 S_NOD2ELTG = 3*NUMELTG+3*NUMELTG6
3099 ALLOCATE(NOD2ELTG(S_NOD2ELTG),STAT=stat)
3100 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3101 . MSGTYPE=MSGERROR,
3103 NOD2ELTG=0
3104 S_NOD2EL1D=2*NUMELT+2*NUMELP+3*NUMELR+2*SIXX
3105 ALLOCATE(NOD2EL1D(S_NOD2EL1D),STAT=stat)
3106 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3107 . MSGTYPE=MSGERROR,
3109 NOD2EL1D=0
3110 ALLOCATE(KNOD2ELIG3D(NUMNOD+1),STAT=stat)
3111 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3112 . MSGTYPE=MSGERROR,
3114 KNOD2ELIG3D=0
3115 ALLOCATE(NOD2ELIG3D(NCTRLMAX*NUMELIG3D),
3116 . STAT=stat)
3117 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3118 . MSGTYPE=MSGERROR,
3120 NOD2ELIG3D=0
3121 ALLOCATE(NOD2ELQ(4*NUMELQ),STAT=stat)
3122 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3123 . MSGTYPE=MSGERROR,
3125 NOD2ELQ=0
3126
3127 IF(FLAG_GOTO==1) GOTO 215
3128
3129
3130 CALL BUILD_CNEL(
3131 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
3132 3 IXR ,IXTG ,IXS10 ,IXS20 ,
3133 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
3134 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
3135 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
3136 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
3137 8 NOD2ELQ )
3138 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
3139 CALL TRACE_OUT1()
3140
3141
3142
3143 TAGSURFIGE = 0
3144 SIBUFSSG = 0 ! to be removed
3145!
3148 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3149 IF(NSUBS > 0) THEN
3150 WRITE(ISTDO,'(a)
')' ..
subsets'
3151!
3152 CALL HM_READ_SUBSET(SUBSETS,IPART,NSUBS,NPART,LSUBMODEL)
3153 CALL SUBSET_INI(SUBSETS)
3154!
3155 ENDIF
3156 CALL TRACE_OUT1()
3157
3158
3159
3160 CALL STARTIME(19,1)
3161
3162 ERR_MSG='boxes'
3163 ERR_CATEGORY='boxes'
3164 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3165
3166 ALLOCATE(IBOX (NBBOX))
3167 IF(NBBOX > 0) THEN
3168 WRITE(ISTDO,'(a)')' .. box '
3169
3170 CALL HM_READ_BOX(IBOX ,UNITAB ,ITABM1 ,ISKWN ,SKEW ,
3171 . X ,RTRANS ,LSUBMODEL)
3172
3173 ENDIF
3174
3175 CALL TRACE_OUT1()
3176
3177
3178
3179 ERR_MSG='groups'
3180 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3181!
3182 IDXIGECNT= 1
3183!
3184 WRITE(ISTDO,'(a)')' .. element groups'
3185 ERR_CATEGORY='element groups'
3186 FLAGG = 0
3187 IADBOXMAX = 1
3188
3189 ALLOCATE(IXS_S(NUMELS),IXS_S_IND(NUMELS),IXQ_S(NUMELQ),
3190 2 IXQ_S_IND(NUMELQ),IXC_S(NUMELC),IXC_S_IND(NUMELC),
3191 3 IXT_S(NUMELT),IXT_S_IND(NUMELT),IXP_S(NUMELP),
3192 4 IXP_S_IND(NUMELP),IXR_S(NUMELR),IXR_S_IND(NUMELR),
3193 5 IXTG_S(NUMELTG),IXTG_S_IND(NUMELTG))
3194
3195 CALL LECGROUP(
3196 1 ITAB ,ITABM1 ,ISUBMOD ,
3197 2 X ,IXS ,IXQ ,IXC ,IXT ,IXP ,
3198 3 IXR ,IXTG , IPART ,
3199 4 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
3200 5 IPARTG ,FLAGG ,SH4TREE ,SH3TREE ,
3201 6 SKEW ,ISKWN ,UNITAB ,IBOX ,
3202 7 IXS10 ,IXS16 ,IXS20 ,RTRANS,LSUBMODEL,
3203 8 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3204 9 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3205 A IXTG_S,IXTG_S_IND,IADBOXMAX,SUBSETS,IGRBRIC,IGRQUAD,
3206 B IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING)
3207
3208 LENI=MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,NUMELTG)
3209!
3210 CALL SORTGROUP(
3211 1 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3212 2 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3213 3 IXTG_S,IXTG_S_IND,IXS,IXQ,IXC,IXT,IXP,IXR,IXTG,LENI)
3214!
3215 FLAGG = 1
3216 CALL LECGROUP(
3217 1 ITAB ,ITABM1 ,ISUBMOD ,
3218 2 X ,IXS ,IXQ ,IXC ,IXT ,IXP ,
3219 3 IXR ,IXTG , IPART ,
3220 4 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
3221 5 IPARTG ,FLAGG ,SH4TREE ,SH3TREE ,
3222 6 SKEW ,ISKWN ,UNITAB ,IBOX ,
3223 7 IXS10 ,IXS16,IXS20,RTRANS,LSUBMODEL,
3224 8 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3225 9 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3226 A IXTG_S,IXTG_S_IND,IADBOXMAX,SUBSETS,IGRBRIC,IGRQUAD,
3227 B IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING)
3228!
3229 DEALLOCATE(IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3230 2 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3231 3 IXTG_S,IXTG_S_IND)
3232
3233
3234
3235 WRITE(ISTDO,'(a)')' .. part groups'
3236 ERR_CATEGORY='part groups'
3237
3238 FLAGG = 0 !TAG ENTITY & ALLOCATE
3239 CALL HM_READ_GRPART(IGRPART , IPART, ISUBMOD, FLAGG ,NGRPART,LSUBMODEL, SUBSETS )
3240
3241 FLAGG = 1 !BUILD GROUPS
3242 CALL HM_READ_GRPART(IGRPART , IPART, ISUBMOD, FLAGG ,NGRPART,LSUBMODEL, SUBSETS )
3243
3244
3245
3246 ERR_CATEGORY='group of groups'
3247 ICOUNT = 1
3248 ITER = 0
3249 DO WHILE (ICOUNT > 0)
3250 ITER = ITER + 1
3251 FLAGG = 0
3252
3253 CALL LECGGROUP(
3254 . FLAGG ,
3255 . ICOUNT ,ITER ,IGRBRIC,IGRQUAD ,IGRSH4N,
3256 . IGRSH3N ,IGRTRUSS,IGRBEAM,IGRSPRING,IGRPART,
3257 . LSUBMODEL)
3258
3259 FLAGG = 1
3260
3261 CALL LECGGROUP(
3262 . FLAGG ,
3263 . ICOUNT ,ITER ,IGRBRIC,IGRQUAD ,IGRSH4N,
3264 . IGRSH3N ,IGRTRUSS,IGRBEAM,IGRSPRING,IGRPART,
3265 . LSUBMODEL)
3266 ENDDO
3267
3268
3269
3270
3271 ! allocation for pre-read of Rbody needed for /SET
3272 IF(NRBODY > 0) THEN
3273 ALLOCATE(RBY_MSN(2,NRBODY))
3274 CALL PREREAD_RBODY_SET(LSUBMODEL,ITABM1,RBY_MSN)
3275 ELSE
3276 ALLOCATE(RBY_MSN(0,0))
3277 ENDIF
3278
3279 ! PART UID to Internal ID conversion
3280
3281 CALL CREATE_MAP_TABLES ( MAP_TABLES ,1 ,
3282 * LSUBMODEL ,SUBSETS,
3283 * IPART,
3284 * IXS ,IXQ ,IXC ,IXTG ,
3285 * IXT ,IXP ,IXR ,KXSP,IBID,
3286 * RBY_MSN)
3287
3288
3289 SBUFSF = 0
3290 IF(NSURF+NSETS > 0)THEN
3291 ALLOCATE(RWORK(LISURF1*(NSURF+NSETS)) ,STAT=stat)
3292 RWORK = ZERO
3293 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3294 . MSGTYPE=MSGERROR,
3295 . C1='rwork')
3296 ENDIF
3297
3298 IF(NSURF > 0)THEN
3299 WRITE(ISTDO,'(a)')' .. surfaces '
3300 ERR_CATEGORY='surfaces definition'
3301
3302
3303 IADTABIGE = 0
3304 DECALIGEO = 0
3305 IDXIGE1 = 0
3306 IDXIGE2 = 1
3307 RNIGE=(1+NSURF*NUMELIG3D*16*6)
3308.OR. IF(RNIGE > INTMAX RNIGE < ZERO) THEN
3309 SNIGE = INTMAX
3310 ELSE
3311 SNIGE = INT(RNIGE)
3312 ENDIF
3313 ALLOCATE(NIGE_TMP(IDXIGE1)%ptr(SNIGE) ,STAT=stat)
3314 IF(STAT /= 0) THEN
3315 CALL ANCMSG(MSGID=727,
3316 . MSGTYPE=MSGERROR,
3317 . ANMODE=ANSTOP,
3319 ENDIF
3320 RRIGE=(1+NSURF*NUMELIG3D*3*16*6)
3321.OR. IF(RRIGE > INTMAX RRIGE < ZERO) THEN
3322 SRIGE = INTMAX
3323 ELSE
3324 SRIGE = INT(RRIGE)
3325 ENDIF
3326 ALLOCATE(RIGE_TMP(IDXIGE1)%ptr2(SRIGE) ,STAT=stat)
3327 IF(STAT /= 0) THEN
3328 CALL ANCMSG(MSGID=727,
3329 . MSGTYPE=MSGERROR,
3330 . ANMODE=ANSTOP,
3331 . C1='rige')
3332 ENDIF
3333 RXIGE=(1+NSURF*NUMELIG3D*3*16*6)
3334.OR. IF(RXIGE > INTMAX RXIGE < ZERO) THEN
3335 SXIGE = INTMAX
3336 ELSE
3337 SXIGE = INT(RXIGE)
3338 ENDIF
3339 ALLOCATE(XIGE_TMP(IDXIGE1)%ptr2(SXIGE) ,STAT=stat)
3340 IF(STAT /= 0) THEN
3341 CALL ANCMSG(MSGID=727,
3342 . MSGTYPE=MSGERROR,
3343 . ANMODE=ANSTOP,
3344 . C1='xigeo')
3345 ENDIF
3346 RVIGE=(1+NSURF*NUMELIG3D*3*16*6)
3347.OR. IF(RVIGE > INTMAX RVIGE < ZERO) THEN
3348 SVIGE = INTMAX
3349 ELSE
3350 SVIGE = INT(RVIGE)
3351 ENDIF
3352 ALLOCATE(VIGE_TMP(IDXIGE1)%ptr2(SVIGE) ,STAT=stat)
3353 IF(STAT /= 0) THEN
3354 CALL ANCMSG(MSGID=727,
3355 . MSGTYPE=MSGERROR,
3356 . ANMODE=ANSTOP,
3357 . C1='vigeo')
3358 ENDIF
3359
3360 SNIGE = 0
3361 SRIGE = 0
3362 SXIGE = 0
3363 SVIGE = 0
3364 IDXIGECNT = IDXIGECNT + 1
3365 IDXIGE1 = MOD(IDXIGECNT,2)
3366 IDXIGE2 = MOD(IDXIGECNT+1,2)
3367 FLAGG = 0
3368 INSEG = 0
3369 NUMFAKENODIGEO = 0
3370 IADBOXMAX = 1
3371
3372 CALL HM_READ_SURF(
3373 1 ITAB ,ITABM1 ,
3374 2 IGRSURF ,IXS ,IXQ ,IXC ,IXT ,
3375 3 IXP ,IXR ,IXTG
3376 4 ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3377 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,X ,
3378 6 SBUFSF ,ISKWN ,SKEW ,
3379 7 RWORK ,KNOD2ELS ,NOD2ELS ,SH4TREE ,SH3TREE ,
3380 8 ISUBMOD ,FLAGG ,UNITAB ,IBOX ,
3381 9 IXS10 ,IXS16 ,IXS20 ,RTRANS,
3382 A LSUBMODEL ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG,
3383 B KXIG3D ,IXIG3D ,IPARTIG3D ,
3384 C KNOT ,IGEO ,WIGE ,KNOD2ELIG3D,NOD2ELIG3D,
3385 D V ,NIGE_TMP(IDXIGE1)%ptr,
3386 E RIGE_TMP(IDXIGE1)%ptr2,XIGE_TMP(IDXIGE1)%ptr2,
3387 F VIGE_TMP(IDXIGE1)%ptr2,IADTABIGE,DECALIGEO,IADBOXMAX,KNOD2ELQ,
3388 G NOD2ELQ ,SUBSETS ,IGRBRIC ,IGRSH4N ,IGRSH3N ,
3389 F KNOTLOCPC ,KNOTLOCEL ,NSETS ,MAP_TABLES)
3390
3391
3392 ALLOCATE(NIGE_TMP(IDXIGE2)%ptr(SNIGE+NUMFAKENODIGEO) ,STAT=stat)
3393 IF(STAT /= 0) THEN
3394 CALL ANCMSG(MSGID=727,
3395 . MSGTYPE=MSGERROR,
3396 . ANMODE=ANSTOP,
3398 ENDIF
3399 SNIGE = SNIGE + NUMFAKENODIGEO
3400 DEALLOCATE(NIGE_TMP(IDXIGE1)%ptr)
3401
3402 ALLOCATE(RIGE_TMP(IDXIGE2)%ptr2(SRIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3403 IF(STAT /= 0) THEN
3404 CALL ANCMSG(MSGID=727,
3405 . MSGTYPE=MSGERROR,
3406 . ANMODE=ANSTOP,
3407 . C1='rige')
3408 ENDIF
3409 SRIGE = SRIGE + 3*NUMFAKENODIGEO
3410 DEALLOCATE(RIGE_TMP(IDXIGE1)%ptr2)
3411
3412 ALLOCATE(XIGE_TMP(IDXIGE2)%ptr2(SXIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3413 IF(STAT /= 0) THEN
3414 CALL ANCMSG(MSGID=727,
3415 . MSGTYPE=MSGERROR,
3416 . ANMODE=ANSTOP,
3417 . C1='xige')
3418 ENDIF
3419 SXIGE = SXIGE + 3*NUMFAKENODIGEO
3420 DEALLOCATE(XIGE_TMP(IDXIGE1)%ptr2)
3421
3422 ALLOCATE(VIGE_TMP(IDXIGE2)%ptr2(SVIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3423 IF(STAT /= 0) THEN
3424 CALL ANCMSG(MSGID=727,
3425 . MSGTYPE=MSGERROR,
3426 . ANMODE=ANSTOP,
3427 . C1='vige')
3428 ENDIF
3429 SVIGE = SVIGE + 3*NUMFAKENODIGEO
3430 DEALLOCATE(VIGE_TMP(IDXIGE1)%ptr2)
3431
3432
3433 FLAGG = 1
3434 INSEG = 0
3435 CALL HM_READ_SURF(
3436 1 ITAB ,ITABM1 ,
3437 2 IGRSURF ,IXS ,IXQ ,IXC ,IXT ,
3438 3 IXP ,IXR ,IXTG
3439 4 ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3440 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,X ,
3441 6 SBUFSF ,ISKWN ,SKEW ,
3442 7 RWORK ,KNOD2ELS ,NOD2ELS ,SH4TREE ,SH3TREE ,
3443 8 ISUBMOD ,FLAGG ,UNITAB ,IBOX ,
3444 9 IXS10 ,IXS16 ,IXS20 ,RTRANS,
3445 A LSUBMODEL ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG ,
3446 B KXIG3D ,IXIG3D ,IPARTIG3D ,
3447 C KNOT ,IGEO ,WIGE ,KNOD2ELIG3D,NOD2ELIG3D,
3448 D V ,NIGE_TMP(IDXIGE2)%ptr,
3449 E RIGE_TMP(IDXIGE2)%ptr2,XIGE_TMP(IDXIGE2)%ptr2,
3450 F VIGE_TMP(IDXIGE2)%ptr2,IADTABIGE,DECALIGEO,IADBOXMAX,KNOD2ELQ,
3451 G NOD2ELQ ,SUBSETS ,IGRBRIC ,IGRSH4N ,IGRSH3N ,
3452 H KNOTLOCPC ,KNOTLOCEL ,NSETS ,MAP_TABLES)
3453
3454
3455 IF(NUMFAKENODIGEO>0) THEN
3456 ALLOCATE(PERMIGE(NUMFAKENODIGEO) ,STAT=stat)
3457
3458
3459 CALL PRESEARCHIGEO3D(IGRSURF,XIGE_TMP(IDXIGE2)%ptr2,PERMIGE)
3460
3461
3462 ALLOCATE(NIGE_TMP(IDXIGE1)%ptr(SNIGE) ,STAT=stat)
3463 IF(STAT /= 0) THEN
3464 CALL ANCMSG(MSGID=727,
3465 . MSGTYPE=MSGERROR,
3466 . ANMODE=ANSTOP,
3468 ENDIF
3469
3470 ALLOCATE(RIGE_TMP(IDXIGE1)%ptr2(SRIGE) ,STAT=stat)
3471 IF(STAT /= 0) THEN
3472 CALL ANCMSG(MSGID=727,
3473 . MSGTYPE=MSGERROR,
3474 . ANMODE=ANSTOP,
3475 . C1='rige')
3476 ENDIF
3477
3478 ALLOCATE(XIGE_TMP(IDXIGE1)%ptr2(SXIGE) ,STAT=stat)
3479 IF(STAT /= 0) THEN
3480 CALL ANCMSG(MSGID=727,
3481 . MSGTYPE=MSGERROR,
3482 . ANMODE=ANSTOP,
3483 . C1='xige')
3484 ENDIF
3485
3486 ALLOCATE(VIGE_TMP(IDXIGE1)%ptr2(SVIGE) ,STAT=stat)
3487 IF(STAT /= 0) THEN
3488 CALL ANCMSG(MSGID=727,
3489 . MSGTYPE=MSGERROR,
3490 . ANMODE=ANSTOP,
3491 . C1='vige')
3492 ENDIF
3493
3494
3495
3496
3497
3498
3499
3500
3501 CALL SEARCHIGEO3D(IGRSURF ,IADTABIGE ,PERMIGE ,
3502 . NIGE_TMP(IDXIGE2)%ptr ,NIGE_TMP(IDXIGE1)%ptr,
3503 . RIGE_TMP(IDXIGE2)%ptr2 ,RIGE_TMP(IDXIGE1)%ptr2,
3504 . XIGE_TMP(IDXIGE2)%ptr2 ,XIGE_TMP(IDXIGE1)%ptr2,
3505 . VIGE_TMP(IDXIGE2)%ptr2 ,VIGE_TMP(IDXIGE1)%ptr2,
3506 . NDOUBLONIGE)
3507
3508
3509 DEALLOCATE(RIGE_TMP(IDXIGE2)%ptr2,XIGE_TMP(IDXIGE2)%ptr2,VIGE_TMP(IDXIGE2)%ptr2)
3510
3511 SNIGE = NUMFAKENODIGEO
3512 SRIGE = 3*NUMFAKENODIGEO
3513 SXIGE = 3*NUMFAKENODIGEO
3514 SVIGE = 3*NUMFAKENODIGEO
3515
3516
3517
3518
3519
3520
3521 ALLOCATE(NIGE_TMP(IDXIGE2)%ptr(SNIGE) ,STAT=stat)
3522 IF(STAT /= 0) THEN
3523 CALL ANCMSG(MSGID=727,
3524 . MSGTYPE=MSGERROR,
3525 . ANMODE=ANSTOP,
3527 ENDIF
3528 DO I=1,SNIGE
3529 NIGE_TMP(IDXIGE2)%ptr(I) = NIGE_TMP(IDXIGE1)%ptr(I)
3530 ENDDO
3531
3532 ALLOCATE(RIGE_TMP(IDXIGE2)%ptr2(SRIGE) ,STAT=stat)
3533 IF(STAT /= 0) THEN
3534 CALL ANCMSG(MSGID=727,
3535 . MSGTYPE=MSGERROR,
3536 . ANMODE=ANSTOP,
3537 . C1='rige')
3538 ENDIF
3539 DO I=1,SRIGE
3540 RIGE_TMP(IDXIGE2)%ptr2(I) = RIGE_TMP(IDXIGE1)%ptr2(I)
3541 ENDDO
3542
3543 ALLOCATE(XIGE_TMP(IDXIGE2)%ptr2(SXIGE) ,STAT=stat)
3544 IF(STAT /= 0) THEN
3545 CALL ANCMSG(MSGID=727,
3546 . MSGTYPE=MSGERROR,
3547 . ANMODE=ANSTOP,
3548 . C1='xige')
3549 ENDIF
3550 DO I=1,SXIGE
3551 XIGE_TMP(IDXIGE2)%ptr2(I) = XIGE_TMP(IDXIGE1)%ptr2(I)
3552 ENDDO
3553
3554 ALLOCATE(VIGE_TMP(1)%ptr2(SVIGE) ,STAT=stat)
3555 IF(STAT /= 0) THEN
3556 CALL ANCMSG(MSGID=727,
3557 . MSGTYPE=MSGERROR,
3558 . ANMODE=ANSTOP,
3559 . C1='vige')
3560 ENDIF
3561 DO I=1,SVIGE
3562 VIGE_TMP(IDXIGE2)%ptr2(I) = VIGE_TMP(IDXIGE1)%ptr2(I)
3563 ENDDO
3564
3565 TAGSURFIGE=1
3566 DEALLOCATE(RIGE_TMP(IDXIGE1)%ptr2,XIGE_TMP(IDXIGE1)%ptr2,
3567 . VIGE_TMP(IDXIGE1)%ptr2)
3568 DEALLOCATE(PERMIGE)
3569
3570 ENDIF
3571
3572
3573
3574
3575 ICOUNT = 1
3576 ITER = 0
3577 DO WHILE (ICOUNT == 1)
3578 FLAGG = 0
3579 ITER = ITER + 1
3580 INSEG = 0
3581
3582 CALL HM_READ_SURFSURF(IGRSURF, INSEG, FLAGG, ICOUNT, ITER, NSETS, LSUBMODEL)
3583
3584
3585 FLAGG = 1
3586
3587 CALL HM_READ_SURFSURF(IGRSURF, INSEG, FLAGG, ICOUNT, ITER, NSETS, LSUBMODEL)
3588
3589 ENDDO
3590 ENDIF
3591
3592 NSEGS=NPART
3593!
3594 NSEGSMAX=0
3595 DO I = 1,NSURF
3596 NSEGS=NSEGS+IGRSURF(I)%NSEG
3597 ENDDO
3598 DO I = 1,NGRNOD
3599 NSEGSMAX= MAX(NSEGSMAX,IGRNOD(I)%NENTITY)
3600 ENDDO
3601 DO I = 1,NGRBRIC
3602 NSEGSMAX= MAX(NSEGSMAX,IGRBRIC(I)%NENTITY)
3603 ENDDO
3604 DO I = 1,NGRQUAD
3605 NSEGSMAX= MAX(NSEGSMAX,IGRQUAD(I)%NENTITY)
3606 ENDDO
3607 DO I = 1,NGRSHEL
3608 NSEGSMAX= MAX(NSEGSMAX,IGRSH4N(I)%NENTITY)
3609 ENDDO
3610 DO I = 1,NGRSH3N
3611 NSEGSMAX= MAX(NSEGSMAX,IGRSH3N(I)%NENTITY)
3612 ENDDO
3613 DO I = 1,NGRTRUS
3614 NSEGSMAX= MAX(NSEGSMAX,IGRTRUSS(I)%NENTITY)
3615 ENDDO
3616 DO I = 1,NGRBEAM
3617 NSEGSMAX= MAX(NSEGSMAX,IGRBEAM(I)%NENTITY)
3618 ENDDO
3619 DO I = 1,NGRSPRI
3620 NSEGSMAX= MAX(NSEGSMAX,IGRSPRING(I)%NENTITY)
3621 ENDDO
3622 DO I = 1,NGRPART
3623 NSEGSMAX= MAX(NSEGSMAX,IGRPART(I)%NENTITY)
3624 ENDDO
3625 NSEGS=NSEGS+NSEGSMAX
3626
3627
3628
3629 IF(NSLIN > 0) THEN
3630 WRITE(ISTDO,'(a)')' .. lines '
3631 ERR_CATEGORY='lines'
3632 FLAGG = 0
3633 IADBOXMAX = 1
3634!
3635 CALL HM_READ_LINES(
3636 1 ITAB ,ITABM1 ,
3637 2 ISUBMOD ,IGRSLIN ,IGRSURF ,X ,IXS ,
3638 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3639 4 IXTG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3640 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
3641 6 NSEGS , FLAGG ,SKEW ,ISKWN ,
3642 7 UNITAB ,IBOX ,RTRANS ,LSUBMODEL,
3643 8 IPARTX ,KXX ,IXX ,IADBOXMAX,SUBSETS,
3644 9 IGRTRUSS,IGRBEAM,IGRSPRING,NSETS ,MAP_TABLES)
3645
3646 FLAGG = 1
3647
3648 CALL HM_READ_LINES(
3649 1 ITAB ,ITABM1 ,
3650 2 ISUBMOD ,IGRSLIN ,IGRSURF ,X ,IXS ,
3651 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3652 4 IXTG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3653 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
3654 6 NSEGS , FLAGG ,SKEW ,ISKWN ,
3655 7 UNITAB ,IBOX ,RTRANS ,LSUBMODEL,
3656 8 IPARTX ,KXX ,IXX ,IADBOXMAX,SUBSETS,
3657 9 IGRTRUSS,IGRBEAM,IGRSPRING,NSETS ,MAP_TABLES)
3658
3659
3660
3661 ICOUNT = 1
3662 ITER = 0
3663 DO WHILE (ICOUNT == 1)
3664 ITER = ITER + 1
3665 INSEG = 0
3666 FLAGG = 0
3667
3668 CALL HM_LINES_OF_LINES(IGRSLIN ,INSEG ,FLAGG ,ICOUNT ,ITER ,NSETS, LSUBMODEL)
3669
3670 FLAGG = 1
3671 CALL HM_LINES_OF_LINES(IGRSLIN ,INSEG ,FLAGG ,ICOUNT ,ITER ,NSETS, LSUBMODEL)
3672
3673 ENDDO
3674 ENDIF
3675
3676
3677
3678 IF(NINICRACK > 0) THEN
3679 WRITE(ISTDO,'(a)')' .. initial crack '
3680 ERR_CATEGORY='initial cracks'
3681 SILEVSET = NINICRACK
3682 ALLOCATE(INICRACK(SILEVSET) ,STAT=stat)
3683 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3684 . MSGTYPE=MSGERROR,
3686 ! Reading /INICRACK cards
3687 CALL HM_READ_INICRACK(ITABM1 ,INICRACK ,UNITAB ,LSUBMODEL)
3688
3689 ELSE
3690 SILEVSET = 0
3691 ALLOCATE(INICRACK(SILEVSET))
3692 ENDIF
3693
3694
3695
3696
3697 IF(NGRNOD > 0)THEN
3698 WRITE(ISTDO,'(a)')' .. node group'
3699 ERR_CATEGORY='node groups'
3700 INNOD = 0
3701 MAXNNOD = 1
3702 IADBOXMAX = 1
3703
3704 FLAGG = 0 !TAGNODES & ALLOCATE
3705 CALL HM_LECGRN(
3706 1 ITAB ,ITABM1 ,IGRNOD ,
3707 2 ISUBMOD ,X ,GEO ,IXS ,
3708 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3709 4 IXTG ,IPART ,
3710 5 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
3711 6 IPARTR ,IPARTG ,IPARTSP ,KXSP ,
3712 7 FLAGG ,MAXNNOD ,SKEW ,ISKWN ,
3713 8 UNITAB ,IBOX ,IXS10 ,IXS20 ,
3714 9 IXS16 ,RTRANS ,LSUBMODEL,IXX,
3715 A KXX ,IPARTX ,IADBOXMAX,IGRSLIN,SUBSETS ,
3716 B IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
3717 C IGRBEAM ,IGRSPRING,IGRSURF,NSETS )
3718!
3719 FLAGG = 1 !BUILD GROUPS
3720 CALL HM_LECGRN(
3721 1 ITAB ,ITABM1 ,IGRNOD ,
3722 2 ISUBMOD ,X ,GEO ,IXS ,
3723 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3724 4 IXTG ,IPART ,
3725 5 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
3726 6 IPARTR ,IPARTG ,IPARTSP ,KXSP ,
3727 7 FLAGG ,MAXNNOD ,SKEW ,ISKWN ,
3728 8 UNITAB ,IBOX ,IXS10 ,IXS20 ,
3729 9 IXS16 ,RTRANS ,LSUBMODEL,IXX,
3730 A KXX ,IPARTX ,IADBOXMAX,IGRSLIN,SUBSETS ,
3731 B IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
3732 C IGRBEAM ,IGRSPRING,IGRSURF,NSETS )
3733
3734
3735
3736 ICOUNT = 1
3737 ITER = 0
3738 DO WHILE (ICOUNT == 1)
3739 ITER = ITER + 1
3740 FLAGG = 0
3741 CALL HM_GROGRONOD(IGRNOD ,ICOUNT ,FLAGG ,ITER,'node',LSUBMODEL)
3742
3743 FLAGG =1
3744 CALL HM_GROGRONOD(IGRNOD ,ICOUNT ,FLAGG ,ITER,'node',LSUBMODEL)
3745
3746 ENDDO
3747 ENDIF
3748
3749
3750 CALL STOPTIME(19,1)
3751
3752
3753
3754 CALL STARTIME(17,1)
3755
3756 ALLOCATE(SET (NSETS))
3757 IF(NSETS > 0)THEN
3758 WRITE(ISTDO,'(a)
')' ..
set'
3760
3761 CALL HM_SET(SET ,LSUBMODEL ,INV_GROUP ,MAP_TABLES ,IPART ,
3762 * IGRSURF ,IGRNOD ,IGRSLIN ,IGRPART ,IGRBRIC ,
3763 * IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,IGRBEAM ,
3764 * IGRSPRING,IXS ,IXS10 ,IXC ,IXTG ,
3765 * KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,
3766 * NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,SH4TREE ,
3767 * SH3TREE ,IXQ ,KNOD2ELQ ,NOD2ELQ ,X ,
3768 * IXT ,IXP ,IXR ,IXX ,KXX ,
3769 * KXSP ,IXS20 ,IXS16 ,GEO ,ITABM1 ,
3770 * IBOX ,SKEW ,IPARTQ ,IPARTT ,IPARTP ,
3771 * IPARTR ,SUBSETS ,RBY_MSN ,ISKWN ,RTRANS ,
3772 * UNITAB ,RWORK ,SBUFSF ,SISKWN ,SSKEW ,
3773 * ROOTNAM ,ROOTLEN ,INFILE_NAME ,INFILE_NAME_LEN )
3774
3775
3776
3777 ENDIF
3778
3779 IF (NSURF+NSETS > 0) THEN
3780 IF(SBUFSF > 0) THEN
3781 ALLOCATE(BUFSF(SBUFSF) ,STAT=stat)
3782 BUFSF = RWORK(1:SBUFSF)
3783 IF(STAT /= 0) THEN
3784 CALL ANCMSG(MSGID=727,
3785 . MSGTYPE=MSGERROR,
3786 . ANMODE=ANSTOP,
3787 . C1='bufsf')
3788 ENDIF
3789 ENDIF
3790 ELSE
3791 ALLOCATE(BUFSF(0))
3792 ENDIF
3793 IF(ALLOCATED(RWORK)) DEALLOCATE(RWORK)
3794
3795 CALL STOPTIME(17,1)
3796
3797
3798
3799 ERR_MSG='drape'
3800 ERR_CATEGORY='drape'
3801 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3802 NUMELC_DRAPE = 0
3803 NUMELTG_DRAPE = 0
3804 stack%s_pm2 = 0
3805 IF(NDRAPE > 0) THEN
3806 WRITE(ISTDO,'(a)')' .. drape'
3807 ALLOCATE(DRAPE_WRK(NUMELC + NUMELTG),DRAPEG%INDX(NUMELC + NUMELTG))
3808 DRAPEG%INDX = 0
3809 ALLOCATE(INDXSH(NUMELC + NUMELTG))
3810 INDXSH = 0
3811
3812
3813
3814 NUMELC_DRAPE = 0
3815 NUMELTG_DRAPE = 0
3816 STDRAPE = 0
3817 SCDRAPE = 0
3818.OR. IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3819 ALLOCATE(IWORK_T(NUMELC+NUMELTG))
3820 CALL PRE_STACKGROUP(
3821 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3822 . IGEO ,GEO ,IGEO_STACK ,IWORKSH ,
3823 . IWORK_T )
3824 ENDIF
3825 !!
3826 CALL HM_READ_DRAPE(DRAPE_WRK ,IWORK_T ,IWORKSH ,IGRSH3N ,IGRSH4N ,
3827 . IXC ,IXTG ,IGEO ,IGEO_STACK,LSUBMODEL,
3828 . UNITAB ,INDXSH )
3829 IF( NUMELC_DRAPE > 0) SCDRAPE = NUMELC
3830 IF( NUMELTG_DRAPE > 0) STDRAPE = NUMELTG
3831 ALLOCATE(DRAPE(NUMELC_DRAPE +NUMELTG_DRAPE) )
3832 IF( (NUMELC_DRAPE + NUMELTG_DRAPE )> 0) THEN
3833 DRAPEG%NUMSH4 = NUMELC_DRAPE
3834 DRAPEG%NUMSH3 = NUMELTG_DRAPE
3835 DO I=1,NUMELC_DRAPE + NUMELTG_DRAPE
3836 IDSHEL = INDXSH(I)
3837 NPT_DRAPE = DRAPE_WRK(IDSHEL)%NPLY_DRAPE
3838 DRAPE(I)%NPLY_DRAPE = NPT_DRAPE
3839 NPT = IWORKSH(1,IDSHEL)
3840 DRAPE(I)%NPLY = NPT
3841 DRAPEG%INDX(IDSHEL) = I
3842 ALLOCATE(DRAPE(I)%DRAPE_PLY(NPT_DRAPE))
3843 ALLOCATE(DRAPE(I)%INDX_PLY(NPT))
3844 DRAPE(I)%INDX_PLY = 0
3845 DO JJ =1,NPT_DRAPE
3846 IP = DRAPE_WRK(IDSHEL)%INDX_PLY(JJ)
3847 DRAPE(I)%INDX_PLY(IP) = JJ
3848 NSLICE = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%NSLICE
3849 DRAPE(I)%DRAPE_PLY(JJ)%NSLICE = NSLICE
3850 DRAPE(I)%DRAPE_PLY(JJ)%IPID = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IPID
3851 ALLOCATE(DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(NSLICE,2))
3852 ALLOCATE(DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(NSLICE,2))
3853 DO ISL = 1,NSLICE
3854 DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(ISL,1) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE(ISL,1)
3855 DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(ISL,2) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE(ISL,2)
3856 DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(ISL,1) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE(ISL,1)
3857 DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(ISL,2) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE(ISL,2)
3858 ENDDO ! nbre of slice
3859 ENDDO
3860 ENDDO
3861 !! Deallocation of work drape memory
3862 DO I=1,NUMELC_DRAPE + NUMELTG_DRAPE
3863 IDSHEL = INDXSH(I)
3864 NPT = IWORKSH(1,IDSHEL)
3865 IF(ALLOCATED(DRAPE_WRK(IDSHEL)%DRAPE_PLY)) THEN
3866 NPT_DRAPE = DRAPE_WRK(IDSHEL)%NPLY_DRAPE
3867 DO JJ=1,NPT_DRAPE
3868 IP = DRAPE_WRK(IDSHEL)%INDX_PLY(JJ)
3869 DEALLOCATE(DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE,DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE)
3870 ENDDO
3871 DEALLOCATE(DRAPE_WRK(IDSHEL)%DRAPE_PLY)
3872 ENDIF
3873 ENDDO
3874 DEALLOCATE(DRAPE_WRK)
3875 DEALLOCATE(INDXSH )
3876 ENDIF
3877 IF(ALLOCATED(IDRAPEID)) DEALLOCATE(IDRAPEID)
3878
3879.OR. IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3880 CALL STACKGROUP_DRAPE(DRAPE, DRAPEG , IWORK_T , IWORKSH ,
3881 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3882 . IGEO ,GEO ,THKE , STACK ,
3883 . IGEO_STACK ,GEO_STACK , STACK_INFO ,
3884 . NUMGEOSTACK,NPROP_STACK,PLY_INFO)
3885 stack%s_pm2 = size(stack%pm,dim=2)
3886 ELSE
3887 ALLOCATE(STACK%GEO(0,0))
3888 ALLOCATE(STACK%IGEO(0,0))
3889 ALLOCATE(STACK%PM(stack_s_pm1,stack%s_pm2))
3890 ENDIF
3891 ELSE ! with out drape
3892 ALLOCATE(DRAPE(0))
3893 ALLOCATE(DRAPEG%INDX(0))
3894.OR. IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3895 CALL STACKGROUP(
3896 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3897 . IGEO ,GEO ,IWORKSH ,THKE ,
3898 . STACK ,IPM ,IGEO_STACK ,GEO_STACK ,
3899 . STACK_INFO ,NUMGEOSTACK,NPROP_STACK)
3900 stack%s_pm2 = size(stack%pm,dim=2)
3901 ELSE
3902 ALLOCATE(STACK%GEO(0,0))
3903 ALLOCATE(STACK%IGEO(0,0))
3904 ALLOCATE(STACK%PM(stack_s_pm1,stack%s_pm2))
3905 ENDIF
3906 ENDIF
3907
3908 IF(NSUBDOM==0) GOTO 218
3909
3910
3911
3912 WRITE(ISTDO,'(a)')' .. multidomains interfaces detection '
3913 IDXCNT= 1 ! used by temporary local array "IBUFTMP"
3914 IADBUF= 1
3915 IDXCNT= IDXCNT + 1
3916 IDX1 = MOD(IDXCNT,2)
3917 IDX2 = MOD(IDXCNT+1,2)
3918 FLAGG = 0
3919 INNOD = 0
3920 FLG_R2R_ERR = 0
3921 ALE_EULER = 0
3922 NSPCOND0 = NSPCOND
3923! tmp +++
3924 RSIBUFSSG=NUMNOD+NSUBDOM
3925.OR. IF(RSIBUFSSG > INTMAX RSIBUFSSG < ZERO) THEN
3926 SIBUFSSG = INTMAX
3927 ELSE
3928 SIBUFSSG = INT(RSIBUFSSG)
3929 ENDIF
3930 ALLOCATE(IBUFTMP(IDX1)%ptr(SIBUFSSG),STAT=stat)
3931 IF(STAT /= 0) THEN
3932 CALL ANCMSG(MSGID=727,
3933 . MSGTYPE=MSGERROR,
3934 . ANMODE=ANSTOP,
3935 . C1='buffsg')
3936 ENDIF
3937! tmp ---
3938
3939 ALLOCATE(TAGNO(2*NUMNOD+NPART),STAT=stat)
3940 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3941 . MSGTYPE=MSGERROR,
3943 TAGNO(:) = 0
3944 ALLOCATE(NALE_R2R(ALE%GLOBAL%SNALE),STAT=stat)
3945 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3946 . MSGTYPE=MSGERROR,
3947 . C1='nale_r2r')
3948 NALE_R2R(:) = 1
3949 ALLOCATE(DT_R2R(4*NSUBDOM),STAT=stat)
3950 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3951 . MSGTYPE=MSGERROR,
3952 . C1='dt_r2r')
3953 DT_R2R(:) = 0
3954
3955 CALL R2R_GROUP(NGRNOD,
3956 1 INNOD,FLAGG,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,
3957 2 IPARTR,IPARTG,IPARTSP,IXS10,IXS20,IXS16,1,
3958 3 IBUFTMP(IDX1)%ptr,IXR_KJ,INOM_OPT,IPART,
3959 4 IADBUF,NALE_R2R,FLG_R2R_ERR ,
3960 5 STACK%PM ,IWORKSH ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
3961 6 IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRNOD ,
3962 7 IGRSURF ,IGRSLIN, LSUBMODEL,ALE_EULER ,IGEO ,
3963 8 NLOC_DMG ,DETONATORS,SEATBELT_SHELL_TO_SPRING,
3964 9 NB_SEATBELT_SHELLS,MAT_ELEM%MAT_PARAM,NEBCS)
3965
3966 ALLOCATE(IBUFTMP(IDX2)%ptr(SIBUFSSG+INNOD) ,STAT=stat)
3967 IF(STAT /= 0) THEN
3968 CALL ANCMSG(MSGID=727,
3969 . MSGTYPE=MSGERROR,
3970 . ANMODE=ANSTOP,
3971 . C1='buffsg')
3972 ENDIF
3973 IBUFTMP(IDX2)%ptr = 0
3974 DO I=1,SIBUFSSG
3975 IBUFTMP(IDX2)%ptr(I) = IBUFTMP(IDX1)%ptr(I)
3976 ENDDO
3977 SIBUFSSG = SIBUFSSG+INNOD
3978 DEALLOCATE(IBUFTMP(IDX1)%ptr)
3979
3980 FLAGG = 1
3981
3982
3983 CALL R2R_GROUP(NGRNOD,
3984 1 INNOD,FLAGG,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,
3985 2 IPARTR,IPARTG,IPARTSP,IXS10,IXS20,IXS16,2,
3986 3 IBUFTMP(IDX2)%ptr,IXR_KJ,INOM_OPT,IPART,
3987 4 IADBUF,NALE_R2R,FLG_R2R_ERR ,
3988 5 STACK%PM ,IWORKSH ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
3989 6 IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRNOD ,
3990 7 IGRSURF ,IGRSLIN, LSUBMODEL,ALE_EULER ,IGEO ,
3991 8 NLOC_DMG ,DETONATORS,SEATBELT_SHELL_TO_SPRING,
3992 9 NB_SEATBELT_SHELLS,MAT_ELEM%MAT_PARAM,NEBCS)
3993
3994
3995
3996 WRITE(ISTDO,'(a)
')' .. multidomains
DATA split '
3997
3998 CALL R2R_SPLIT(
3999 1 NSLIN,
4000 2 NSURF,0,EANI,IBUFTMP(IDX2)%ptr,IXR_KJ,
4001 3 INOM_OPT,RESERVEP,NALE_R2R,NSPCOND0,
4002 4 SUBSETS,IGRSURF,IGRNOD,IGRBRIC,IGRQUAD,
4003 5 IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING,
4004 6 IGRPART,IGRSLIN,LSUBMODEL,RBY_MSN,IWORKSH,
4005 7 SEATBELT_SHELL_TO_SPRING,NB_SEATBELT_SHELLS)
4006
4007 CALL R2R_SPLIT(
4008 1 NSLIN,
4009 2 NSURF,1,EANI,IBUFTMP(IDX2)%ptr,IXR_KJ,
4010 3 INOM_OPT,RESERVEP,NALE_R2R,NSPCOND0,
4011 4 SUBSETS,IGRSURF,IGRNOD,IGRBRIC,IGRQUAD,
4012 5 IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING,
4013 6 IGRPART,IGRSLIN,LSUBMODEL,RBY_MSN,IWORKSH,
4014 7 SEATBELT_SHELL_TO_SPRING,NB_SEATBELT_SHELLS)
4015 DEALLOCATE(IBUFTMP(IDX2)%ptr)
4016
4017
4018
4019
4020 WRITE(ISTDO,'(a)')' .. multidomains DATA update '
4021 DEALLOCATE(KNOD2ELS,KNOD2ELC,KNOD2ELTG,KNOD2EL1D,KNOD2ELIG3D,KNOD2ELQ)
4022 DEALLOCATE(NOD2ELS,NOD2ELC,NOD2ELTG,NOD2EL1D,NOD2ELIG3D,NOD2ELQ)
4023 DEALLOCATE(XYZREF)
4024 ALLOCATE(XYZREF(3*NUMNOD) ,STAT=stat)
4025 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4026 . MSGTYPE=MSGERROR,
4027 . C1='xyzref')
4028 FLAG_GOTO = 1
4029
4030
4031 CALL INI_IFRONT()
4032 IENTRY2(1:NUMNOD) = -1
4033 FLAGKIN(1:NUMNOD) = 0
4034
4035
4036 DO I=1,NUMNOD
4037 IF(FRONT_R2R(I)==1)THEN
4038 CALL IFRONTPLUS(I,1)
4039 !FLAGKIN array to identify boundary nodes with
4040 !kinematic constraints (old FRONT TAG=10)
4041 IF(FLAGKIN_R2R(I)==1)FLAGKIN(I)=1
4042 ENDIF
4043 ENDDO
4044
4045 DEALLOCATE(FRONT_R2R,FLAGKIN_R2R)
4046 SFRONTB_R2R = NUMNOD
4047 SNOM_OPT_OLD = SNOM_OPT
4048 IN10 = INOM_OPT(10)
4049 IN20 = INOM_OPT(20)
4050
4051
4052 GOTO 208
4053209 CONTINUE
4054
4055
4056 GOTO 210
4057211 CONTINUE
4058 CALL R2R_NOM_OPT(NOM_OPT,INOM_OPT,IN10,IN20,SNOM_OPT_OLD)
4059
4060
4061 GOTO 212
4062213 CONTINUE
4063
4064
4065 GOTO 214
4066215 CONTINUE
4067
4068
4069 GOTO 216
4070217 CONTINUE
4071
4072
4073
4074 CALL BUILD_CNEL(
4075 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
4076 3 IXR ,IXTG ,IXS10 ,IXS20 ,
4077 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
4078 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
4079 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
4080 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
4081 8 NOD2ELQ )
4082 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
4083
4084
4085 CALL SAV_BUF_POINT(PM ,1)
4086 CALL SAV_BUF_POINT(BUFMAT ,2)
4087 CALL SAV_BUF_POINT(GEO ,3)
4088 CALL SAV_BUF_POINT(ISKWN ,7)
4089 CALL SAV_BUF_POINT(SKEW ,8)
4090 CALL SAV_BUF_POINT(IPM ,11)
4091 CALL SAV_BUF_POINT(IGEO,12)
4092
4093
4094
4095218 CONTINUE
4096.NOT. IF( ALLOCATED(TAGNO)) ALLOCATE(TAGNO(0))
4097.NOT. IF( ALLOCATED(NALE_R2R)) ALLOCATE(NALE_R2R(0))
4098.NOT. IF( ALLOCATED(DT_R2R)) ALLOCATE(DT_R2R(0))
4099
4100
4101
4102
4103
4104 IF(NR2RLNK/=0) THEN
4105 CALL R2R_CHECK(IEXLNK,IGRNOD,IPART)
4106 ENDIF
4107
4108 ALLOCATE(FRONTB_R2R(SFRONTB_R2R,NSPMD),STAT=stat)
4109 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4110 . MSGTYPE=MSGERROR,
4112 FRONTB_R2R = 0
4113
4114
4115
4116
4117 CALL SORT_SURF(IGRSURF,IXS,IXC,IXTG,IXQ,IXP,IXR,IXT, KXX,NIXX)
4118
4119 CALL PRINTGROUP(
4120 1 ITAB ,ITABM1 ,IGRNOD ,NINICRACK,BUFSF ,
4121 2 IGRSURF ,IGRSLIN ,INICRACK ,IXS ,IXQ ,
4122 3 IXC ,IXT ,IXP ,IXR ,IXTG ,
4123 4 IXS10 ,IXS20 ,IXS16 ,IPART ,
4124 5 KXX ,IXIG3D ,KXIG3D ,
4125 6 IGRQUAD ,IGRBRIC ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
4126 7 IGRBEAM ,IGRSPRING,IGRPART )
4127 CALL TRACE_OUT1()
4128 DEALLOCATE(KXX,IXX,LELX)
4129
4130
4131
4132 ERR_MSG='transformations'
4133 ERR_CATEGORY='transformations'
4134 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4135 CALL LECTRANS(X ,IGRNOD ,ITAB ,ITABM1 ,UNITAB,
4136 . LSUBMODEL,RTRANS ,IGRSURF,ISKWN ,SKEW ,
4137 . LISKN ,LSKEW ,NSPCOND,NUMSPH ,SISKWN,
4138 . SSKEW )
4139 CALL TRACE_OUT1()
4140 CLOSE(UNIT=IUSBM)
4141
4142
4143
4144 ERR_MSG='/
merge/node
'
4145 ERR_CATEGORY='/
merge/node
'
4146
4147 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4148
4149 ALLOCATE(MERGE_NODE_TAB(4*NB_MERGE_NODE),STAT=stat)
4150 ALLOCATE(MERGE_NODE_TOL(NB_MERGE_NODE),STAT=stat)
4151 MERGE_NODE_TAB = 0
4152 MERGE_NODE_TOL = ZERO
4153 NMERGE_NODE_CAND = 0
4154 NMERGE_NODE_DEST = 0
4155 IF(STAT /= 0) THEN
4156 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4157 . C1='imerge')
4158 ENDIF
4159 IF(NB_MERGE_NODE > 0) THEN
4160 CALL HM_READ_MERGE_NODE(X,LSUBMODEL,UNITAB,IGRNOD,MERGE_NODE_TAB,
4161 . MERGE_NODE_TOL,NMERGE_NODE_CAND,NMERGE_NODE_DEST)
4162 ENDIF
4163
4164 CALL TRACE_OUT1()
4165
4166
4167
4168 ERR_MSG='merging nodes'
4169 ERR_CATEGORY='merging nodes'
4170 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4171
4172 NMERGE_TOT = NUMCNOD + NMERGE_NODE_DEST
4173 ALLOCATE(IMERGE(3*NMERGE_TOT),STAT=stat)
4174 ALLOCATE(IMERGE2(NUMNOD+1),STAT=stat)
4175 ALLOCATE(IADMERGE2(NUMNOD+1),STAT=stat)
4176 IF(STAT /= 0) THEN
4177 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4178 . C1='imerge')
4179 ENDIF
4180
4181 IMERGE = 0
4182 IMERGE2 = 0
4183 IADMERGE2 =0
4184 NMERGED = 0
4185
4186
4187 IF(NUMCNOD > 0)
4188 . CALL MERGE(X ,ITAB ,ITABM1 ,CMERGE ,IMERGE,
4189 . IMERGE2,IADMERGE2,NMERGE_TOT)
4190 DEALLOCATE(CMERGE)
4191
4192
4193 IF(NB_MERGE_NODE > 0)
4194 . CALL MERGE_NODE(X ,ITAB ,ITABM1 ,IMERGE,IMERGE2,
4195 . IADMERGE2,NMERGE_TOT,MERGE_NODE_TAB,MERGE_NODE_TOL,
4196 . NMERGE_NODE_CAND,NMERGE_NODE_DEST,IXS,IXS10,IXS20,
4197 . IXS16,IXQ,IXC,IXT,IXP,
4198 . IXR,IXTG,EANI,IGRNOD)
4199
4200 CALL TRACE_OUT1()
4201
4202
4203
4204 ERR_MSG='reinit connectivity'
4205 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4206 IF(NMERGED > 0) THEN
4207 CALL RECONNECT(
4208 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
4209 . IXC ,IXT ,IXP ,IXR ,IXTG ,
4210 . IGRNOD ,IGRSURF ,IGRSLIN ,
4211 . ISKWN ,IMERGE ,NMERGE_TOT)
4212
4213 KNOD2ELS = 0
4214 KNOD2ELC = 0
4215 KNOD2ELTG = 0
4216 KNOD2EL1D = 0
4217 KNOD2ELIG3D = 0
4218 NOD2ELS = 0
4219 NOD2ELC = 0
4220 NOD2ELTG = 0
4221 NOD2EL1D = 0
4222 NOD2ELIG3D = 0
4223 KNOD2ELQ = 0
4224 NOD2ELQ = 0
4225 CALL BUILD_CNEL(
4226 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
4227 3 IXR ,IXTG ,IXS10 ,IXS20 ,
4228 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
4229 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
4230 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
4231 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
4232 8 NOD2ELQ )
4233 ENDIF
4234 CALL TRACE_OUT1()
4235
4236
4237
4238 ERR_MSG='random
noise'
4239 ERR_CATEGORY='random
noise'
4240 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4241
4242 CALL INIT_RANDOM( )
4243
4244 IF(RAND_STRUCT%CMD) NRAND = NRAND + 1
4245 ALLOCATE(IRAND(NRAND),STAT=stat)
4246 ALLOCATE(ALEA(NRAND) ,STAT=stat)
4247 ALLOCATE(XSEED(NRAND),STAT=stat)
4248
4249 CALL HM_READ_RAND(X ,IGRNOD ,ITAB,IRAND,ALEA,XSEED,
4250 . UNITAB,LSUBMODEL)
4251
4252 CALL TRACE_OUT1()
4253
4254
4255
4256 ERR_MSG='seatbelts'
4257 ERR_CATEGORY='seatbelts'
4258 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4259
4260 NB_MAT_SEATBELT = 0
4261 CALL HM_OPTION_COUNT('/mat/law114',NB_MAT)
4262 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4263 CALL HM_OPTION_COUNT('/mat/spr_seatbelt',NB_MAT)
4264 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4265 CALL HM_OPTION_COUNT('/mat/law119',NB_MAT)
4266 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4267 CALL HM_OPTION_COUNT('/mat/sh_seatbelt',NB_MAT)
4268 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4269
4271 IF(NSLIPRING > 0) CALL HM_READ_SLIPRING(
4272 1 LSUBMODEL,ITABM1,IXR,ITAB,UNITAB,
4273 2 X,NPC1,NOM_OPT(LNOPT1*INOM_OPT(31)+1),ALEA,IGRNOD,
4274 2 IGRSH4N,IXC,IPM)
4275 IF(NRETRACTOR > 0) CALL HM_READ_RETRACTOR(
4276 1 LSUBMODEL,ITABM1,IXR,ITAB,UNITAB,
4277 2 X,NPC1,NOM_OPT(LNOPT1*INOM_OPT(32)+1),ALEA,IPM)
4278 CALL TRACE_OUT1()
4279
4280
4281
4282 ERR_MSG='bcs'
4283 ERR_CATEGORY='bcs'
4284 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4285 IF(NBCSCYC>0) THEN
4286 CALL HM_PREREAD_BCSCYC(IGRNOD ,NOM_OPT(LNOPT1*INOM_OPT(16)+1),LSUBMODEL,SLBCSCYC)
4287 END IF
4288 SIBCSCYC = 4*NBCSCYC
4289 ALLOCATE(IBCSCYC(SIBCSCYC),LBCSCYC(SLBCSCYC),STAT=stat)
4290 LBCSCYC = 0
4291.OR..OR. IF(NUMBCS /= 0 NALEBCS /= 0 NUMBCSN /= 0) THEN
4292 WRITE(ISTDO,'(a)')TITRE(13)
4293
4294 CALL HM_READ_BCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4295 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4296 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),
4297 . UNITAB ,LSUBMODEL,IBCSCYC,LBCSCYC)
4298
4299 CALL HM_READ_ALEBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4300 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4301 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),
4302 . LSUBMODEL)
4303
4304 CALL HM_READ_NBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4305 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4306 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),LSUBMODEL)
4307
4308 CALL PRINTBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4309 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4310 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1), NBCSLAG)
4311 ENDIF
4312
4313
4314
4315 ALLOCATE(ICODEP(0),ISKEWP(0))
4316 CALL TRACE_OUT1()
4317
4318 ERR_MSG='adaptive meshing bcs'
4319 ERR_CATEGORY='adaptive meshing bcs'
4320 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4321 IF(NADMESH/=0)THEN
4322 CALL ADMBCS(IXC ,IPARTC,IXTG,IPARTG,IPART ,
4323 . ICODE,ISKEW,ITAB,SH4TREE,SH3TREE)
4324 END IF
4325 CALL TRACE_OUT1()
4326
4327
4328
4329 ERR_MSG='solids sort'
4330 ERR_CATEGORY='internal'
4331 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4332 SIWORK = 2*MAX(NUMELS,NUMELQ)
4333 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
4334 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4335 . MSGTYPE=MSGERROR,
4336 . C1='iwork')
4337 IF(NUMELS /= 0)
4338 . CALL LCE16S3(
4339 . IXS ,BID13 ,PM ,IWORK ,ITAB ,ITABM1 ,
4340 . ICODE ,IPARTS ,IGRBRIC ,GEO ,EANI ,
4341 . IXS10 ,IPART ,IXS20 ,IXS16 ,KNOD2ELS,NOD2ELS ,
4342 . IGRSURF,SPH2SOL ,SOL2SPH )
4343 IF(NUMELQ /= 0)
4344 . CALL LCE16Q3(
4345 . IXQ ,BID13 ,PM ,IWORK ,ITAB ,ITABM1 ,
4346 . ICODE ,IPARTQ ,IGRQUAD ,IPM ,IGEO )
4347 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
4348 CALL TRACE_OUT1()
4349
4350
4351
4352 ERR_MSG='mpcs 1'
4353 ERR_CATEGORY='mpcs 1'
4354 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4355 IF(NUMMPC > 0) THEN
4356 CALL HM_READ_MPC0 (LMPC,LSUBMODEL)
4357 ELSE
4358 LMPC=0
4359 ENDIF
4360 SRBMPC = LMPC
4361 ALLOCATE(RBMPC(SRBMPC) ,STAT=stat)
4362 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4363 . MSGTYPE=MSGERROR,
4364 . C1='rbmpc')
4365 IF(SRBMPC > 0) RBMPC = ZERO
4366 CALL TRACE_OUT1()
4367
4368
4369
4370 ERR_MSG='dynamic storage real'
4371 ERR_CATEGORY='internal'
4372 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4373 SGJBUFR = LKJNR*NGJOINT
4374 SW = 3*NUMNOD*IALE
4375 NUMELSK8 = NUMELS
4376 NUMELQK8 = NUMELQ
4377 SVEUL = (LVEUL*NUMELS+10*NUMELQ)*IEULER
4378 SVEUL8 = (INT(LVEUL,KIND(SVEUL8))*NUMELSK8+10*NUMELQK8)*INT(IEULER,KIND(SVEUL8))
4379 SFILL = NMULT*NUMNOD
4380 SDFILL = NMULT*NUMNOD
4381 SALPH = 2*NMULT*(NUMELQ+NUMELS)
4382 SWB = 0
4383 IF(ALE%GRID%NWALE == 2) THEN
4384 SWB = 3*NUMNOD
4385 ELSEIF(ALE%GRID%NWALE == 4) THEN
4386 SWB = 4*NUMNOD
4387 ENDIF
4388 ALLOCATE(WB(SWB) ,STAT=stat)
4389 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4390 . MSGTYPE=MSGERROR,
4391 . C1='wb')
4392 IF(SWB > 0) WB = ZERO
4393 IF(ALE%GRID%NWALE == 4) THEN
4394 WMA => WB(3*NUMNOD+1:SWB)
4395 ELSE
4396 WMA => WB
4397 ENDIF
4398
4399 SDSAVE = 0
4400 SASAVE = 0
4401.AND. IF(ILAG == 1 (IALE+IEULER) > 0) THEN
4402 SDSAVE = 3*NUMNOD
4403 SASAVE = 3*NUMNOD
4404 ENDIF
4405 ALLOCATE(GJBUFR(SGJBUFR) ,STAT=stat)
4406 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4407 . MSGTYPE=MSGERROR,
4408 . C1='gjbufr')
4409 ALLOCATE(w(sw) ,stat=stat)
4410 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4411 . msgtype=msgerror,
4412 . c1='W')
4413 ALLOCATE(veul(sveul8) ,stat=stat)
4414 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4415 . msgtype=msgerror,
4416 . c1='VEUL')
4417 ALLOCATE(fill(sfill) ,stat=stat)
4418 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4419 . msgtype=msgerror,
4420 . c1='FILL')
4421 ALLOCATE(dfill(sdfill) ,stat=stat)
4422 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4423 . msgtype=msgerror,
4424 . c1='DFILL')
4425 ALLOCATE(alph(salph) ,stat=stat)
4426 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4427 . msgtype=msgerror,
4428 . c1='ALPH')
4429 ALLOCATE(dsave(sdsave) ,stat=stat)
4430 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4431 . msgtype=msgerror,
4432 . c1='DSAVE')
4433 ALLOCATE(asave(sasave) ,stat=stat)
4434 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4435 . msgtype=msgerror,
4436 . c1='ASAVE')
4437 IF(sgjbufr > 0) gjbufr = zero
4438 IF(sw > 0) w = zero
4439 IF(sveul8 > 0) veul = zero
4440 IF(sfill > 0) fill = zero
4441 IF(sdfill > 0) dfill = zero
4442 IF(salph > 0) alph = zero
4443 IF(sdsave > 0) dsave = zero
4444 IF(sasave > 0) asave = zero
4446
4447
4448
4449 err_msg='GJOINTS'
4450 err_category='GJOINTS'
4451 CALL trace_in1(err_msg,len_trim(err_msg))
4456 2 ms ,in ,lag_ncf ,lag_nkf ,lag_nhf ,
4457 3 d ,
unitab ,ikine1lag,
nom_opt(lnopt1*inom_opt(18)+1),lsubmodel)
4459
4460
4461
4462 err_msg='DETONATORS'
4463 err_category='DETONATORS'
4464 CALL trace_in1(err_msg,len_trim(err_msg))
4465
4468 . lsubmodel,detonators)
4470
4471
4472
4473
4474
4475 CALL ale_connectivity%ALE_CONNECTIVITY_INIT()
4476 err_msg='ALE LINKS'
4478 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4479 IF(NALELK/=0) THEN
4480 WRITE(ISTDO,'(a)')TITRE(29)
4481 LLINAL = 7 * NALELK
4482 SLINALE=LLINAL
4483 ALLOCATE(LINALE(SLINALE),STAT=stat)
4484 IF(IERR/=0) THEN
4485 WRITE(IOUT,*) ' ** error in memory allocation'
4486 WRITE(istdo,*)' ** ERROR IN MEMORY ALLOCATION'
4487 ENDIF
4491 ELSE
4493 ENDIF
4494 err_msg='ALE NEIGHBOURS'
4495 IF(iale+ieuler+ialelag /= 0)THEN
4496 WRITE(istdo,'(A)')titre(30)
4500 3 nale_r2r ,nsubdom ,multi_fvm ,ale_connectivity,glob_therm%ITHERM,detonators%IS_SHADOWING_REQUIRED)
4501
4502
4503
4504 IF(multi_fvm%IS_USED) THEN
4506 ENDIF
4508
4509
4510
4511
4512 CALL trace_in1(err_msg,len_trim(err_msg))
4513 IF(nmult>0)THEN
4514 WRITE(istdo,'('' .. MULTIMATERIALS'')')
4515 IF(numels>0)
4517 IF(numelq>0)
4519 CALL inimul (pm ,fill ,dfill ,mat20_discrete_fill)
4520 ENDIF
4521 ENDIF
4523
4524
4525
4526 err_msg='CFD BOUNDARY ELEMENTS'
4527 err_category='CFD BOUNDARY ELEMENTS'
4528 CALL trace_in1(err_msg,len_trim(err_msg))
4529 IF(iale+ieuler/=0)
4532
4533
4534
4535
4536
4537 err_msg='MULTI-PURPOSE ELEMENTS'
4538 err_category='MULTI-PURPOSE ELEMENTS'
4539 CALL trace_in1(err_msg,len_trim(err_msg))
4540 IF(numelx > 0) THEN
4541 skxx = nixx*numelx
4543 ALLOCATE(
kxx(skxx) ,stat=stat)
4544 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4545 . msgtype=msgerror,
4546 . c1='KXX')
4547 ALLOCATE(
ixx(sixx+150) ,stat=stat)
4548 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4549 . msgtype=msgerror,
4550 . c1='IXX')
4553 ALLOCATE(lelx(numelx) ,stat=stat)
4554 lelx(1:numelx) = 0
4557 ELSE
4558 skxx = 0
4559 sixx = 0
4560 ALLOCATE(
kxx(skxx) ,stat=stat)
4561 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4562 . msgtype=msgerror,
4563 . c1='KXX')
4564 ALLOCATE(
ixx(sixx) ,stat=stat)
4565 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4566 . msgtype=msgerror,
4567 . c1='IXX')
4568 ALLOCATE(lelx(numelx) ,stat=stat)
4569 ENDIF
4571
4572
4573
4574 err_msg='SPH SYM'
4575 err_category='SPH SYM'
4576 CALL trace_in1(err_msg,len_trim(err_msg))
4577 sispsym = nspcond*numsph
4578 sispcond = nspcond*nispcond
4579 ALLOCATE(
ispsym(sispsym) ,stat=stat)
4580 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4581 . msgtype=msgerror,
4582 . c1='ISPSYM')
4583 ALLOCATE(
ispcond(sispcond) ,stat=stat)
4584 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4585 . msgtype=msgerror,
4586 . c1='ISPCOND')
4587 IF(nspcond > 0) THEN
4590 WRITE(istdo,'(A)')' .. SPH SYMMETRY CONDITIONS'
4593 . lsubmodel)
4594 ENDIF
4596
4597
4598
4599 err_msg='SPH I/O'
4600 err_category='SPH I/O'
4601 CALL trace_in1(err_msg,len_trim(err_msg))
4602 lwaspio=0
4603 sisphio = nisphio*nsphio
4604 ssphveln= nsphio*numsph*2
4605 ALLOCATE(
isphio(sisphio) ,stat=stat)
4606 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4607 . msgtype=msgerror,
4608 . c1='ISPHIO')
4609 ALLOCATE(sphveln(ssphveln) ,stat=stat)
4610 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4611 . msgtype=msgerror,
4612 . c1='SPHVELN')
4613 lvsphio = 0
4614 IF(nsphio > 0)THEN
4615 WRITE(istdo,'(A)')' .. SPH INLET/OUTLET DEFINITION'
4617 nseg_io = 0
4619 .
nom_opt(lnopt1*inom_opt(22)+1),
4620 . lsubmodel)
4621 ALLOCATE(vsphio(svsphio) ,stat=stat)
4622 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4623 . msgtype=msgerror,
4624 . c1='VSPHIO')
4625 vsphio(1:svsphio)=zero
4626
4627
4628
4629
4633 . lsubmodel,rtrans ,nrtrans )
4634
4635
4636
4637 slprtsph = 2*(npart+1)
4638 slonfsph = numsph
4639 ALLOCATE(
lprtsph(slprtsph) ,stat=stat)
4640 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4641 . msgtype=msgerror,
4642 . c1='LPRTSPH')
4643 ALLOCATE(
lonfsph(slonfsph) ,stat=stat)
4644 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4645 . msgtype=msgerror,
4646 . c1='LONFSPH')
4651 sphveln = zero
4652 IF(nspmd > 1)THEN
4653
4654
4655 END IF
4656 ELSE
4657 slprtsph = 0
4658 slonfsph = 0
4659 svsphio = 0
4660
4661 ALLOCATE(
lprtsph(slprtsph) ,stat=stat)
4662 ALLOCATE(
lonfsph(slonfsph) ,stat=stat)
4663 ALLOCATE(vsphio(svsphio) ,stat=stat)
4664
4665 ENDIF
4666 IF(numsph > 0)THEN
4667
4668
4669
4672 . snod2sp ,slonfsph,numnod,npart,
itab)
4673
4674
4675
4676 pre_search = 0
4677 sz_intp_dist = 1
4680 . pre_search)
4681 END IF
4683
4684
4685
4686 err_msg='FLUID NODAL MASSES'
4687 err_category='FLUID NODAL MASSES'
4688 CALL trace_in1(err_msg,len_trim(err_msg))
4689 smsnf = numnod*
max(iale,ieuler,ialelag)
4690 ALLOCATE(msnf(smsnf) ,stat=stat)
4691 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4692 . msgtype=msgerror,
4693 . c1='MSNF')
4694 msnf = zero
4696
4697
4698
4699 err_msg='CONCENTRED LOADS'
4700 err_category='CONCENTRED LOADS'
4701 CALL trace_in1(err_msg,len_trim(err_msg))
4702 numcld = nconld
4703 numpres = npreld
4704 loads%NLOAD_CLOAD = 0
4705 loads%NLOAD_PLOAD = 0
4706 IF(nsubdom>0)
ALLOCATE(
nncl(nconld+npreld))
4709 sibcl = (numcld + numpres)*nibcld
4710 sforc = (numcld + numpres)*lfaccld
4711 ALLOCATE(
ibcl(sibcl) ,stat=stat)
4712 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4713 . msgtype=msgerror,
4714 . c1='IBCL')
4715 ALLOCATE(forc(sforc) ,stat=stat)
4716 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4717 . msgtype=msgerror,
4718 . c1='FORC')
4719 ALLOCATE(dpl0cld(6*(numcld+numpres)) ,stat=stat)
4720 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4721 . msgtype=msgerror,
4722 . c1='DPL0CLD')
4723 ALLOCATE(vel0cld(6*(numcld+numpres)) ,stat=stat)
4724 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4725 . msgtype=msgerror,
4726 . c1='VEL0CLD')
4727 IF(numpres>0) THEN
4728 ipres =>
ibcl(numcld*nibcld+1:sibcl)
4729 ELSE
4731 END IF
4733 forc = zero
4734 dpl0cld = zero
4735 vel0cld = zero
4736
4737
4738
4739 IF(nconld/=0) THEN
4740 WRITE(istdo,'(A)')titre(33)
4741
4744 . loads )
4745 IF(nconld*lfaccld<sforc) THEN
4746 pres => forc(nconld*lfaccld+1:sforc)
4747 ELSE
4748 pres => forc
4749 ENDIF
4750 ENDIF
4751 IF(nconld*lfaccld<sforc) THEN
4752 pres => forc(nconld*lfaccld+1:sforc)
4753 ELSE
4754 pres => forc
4755 END IF
4757
4758
4759
4760 err_msg='PRESSURE LOADS'
4761 err_category='PRESSURE LOADS'
4762 CALL trace_in1(err_msg,len_trim(err_msg))
4763 IF(npreld/=0)THEN
4764 WRITE(istdo,'(A)')titre(34)
4767 nconld=nconld+npreld
4768 ENDIF
4769
4771 IF(nsubdom>0)
DEALLOCATE(
nncl)
4772
4773
4774
4777
4778
4779
4780 err_msg = 'LOAD FIELDS'
4781 err_category = 'LOAD FIELDS'
4782 CALL trace_in1(err_msg,len_trim(err_msg))
4783
4784
4786 scfield = lfacload*nloadc
4787 sicfield = sizfield*nloadc
4788 slcfield = numcfield
4789
4790
4791 numloadp=0
4792 nintloadp=0
4796 nloadp = nloadp_f+pblast%NLOADP_B+nloadp_hyd
4797 sloadp = lfacload*nloadp
4798 siloadp = sizloadp*nloadp
4799 slloadp = numloadp
4800
4802
4803
4804
4805 err_msg='IMPOSED VELOCITIES'
4806 err_category='IMPOSED VELOCITIES'
4807 CALL trace_in1(err_msg,len_trim(err_msg))
4808
4809 nfvlag = 0
4810
4811
4812
4813
4814
4815
4816 IF(nfxvel > 0) THEN
4817 nfv0 = nfxvel
4818
4821
4824
4826
4827 nfxvel = nimpdisp + nimpvel + nimpacc
4828 ELSE
4829 nfv0 = 0
4830 nimpdisp = 0
4831 nimpvel = 0
4832 nimpacc = 0
4833 nimpv_lagm = 0
4834 ENDIF
4835
4836 sibfv = nfxvel * nifv
4837 svel = nfxvel * lfxvelr
4838 nfxvel0 = nfxvel
4839 ALLOCATE(
ibfv(sibfv) ,stat=stat)
4840 ALLOCATE(vel(svel ) ,stat=stat)
4842 vel(1:svel) = zero
4843
4844
4845 IF(nfxvel > 0) THEN
4846
4847 WRITE(istdo,'(A)')titre(44)
4848
4850 . vel ,
ibfv ,d ,ikine1lag,
4853 . nimpdisp ,nimpvel ,
unitab ,lsubmodel)
4854
4855 ENDIF
4856
4857
4858
4859 IF(nimpacc > 0) THEN
4863 . nfxvel ,nimpacc )
4864 ENDIF
4865
4866
4867 IF(nbcscyc > 0) THEN
4868 ALLOCATE(itagcyc(numnod) ,stat=stat)
4870 ELSE
4871 ALLOCATE(itagcyc(0))
4872 END IF
4873
4874 sfsav = nthvki * (ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu+nmonvol+nfxbody+nintsub)
4875 ALLOCATE(fsav(sfsav) ,stat=stat)
4876 fsav = zero
4878
4879
4880
4881
4882
4883
4884
4885 nintemp = glob_therm%NINTEMP
4886 IF (iale + ieuler /= 0) THEN
4887 IF (glob_therm%ITHERM_FE == 0 .AND. (glob_therm%NIMTEMP /= 0 .OR. nintemp /= 0)) THEN
4888 CALL ancmsg(msgid=1724, anmode=aninfo, msgtype=msgwarning)
4889 ENDIF
4890 ENDIF
4891 err_msg='INITIAL TEMPERATURES'
4892 err_category='INITIAL TEMPERATURES'
4893 CALL trace_in1(err_msg,len_trim(err_msg))
4894
4895 IF (glob_therm%NINTEMP > 0) THEN
4896 WRITE(istdo,'(A)')titre(35)
4897 ALLOCATE(temp(numnod))
4898 temp(1:numnod) = zero
4899 ALLOCATE(intids(nintemp))
4902 DEALLOCATE(intids)
4903 END IF
4904
4905 IF (glob_therm%ITHERM_FE > 0 ) THEN
4906 ALLOCATE(mcp(numnod))
4907 IF (.NOT.ALLOCATED(temp)) THEN
4908 ALLOCATE(temp(numnod))
4909 temp(1:numnod) = zero
4910 END IF
4911 mcp(1:numnod) = zero
4912
4914 . glob_therm%NIMTEMP,glob_therm%NFXTEMP)
4915
4917 . glob_therm%NCONVEC ,glob_therm%NUMCONV )
4918
4920 . glob_therm%NRADIA ,glob_therm%NUMRADIA)
4921
4923 . glob_therm%NIMPFLUX,glob_therm%NFXFLUX)
4924
4925
4926 ALLOCATE(
ibcv(glob_therm%NICONV*glob_therm%NUMCONV) ,stat=stat)
4927 ALLOCATE(fconv(glob_therm%LFACTHER*glob_therm%NUMCONV) ,stat=stat)
4928 ALLOCATE(
ibftemp(glob_therm%NIFT*glob_therm%NFXTEMP) ,stat=stat)
4929 ALLOCATE(fbftemp(glob_therm%LFACTHER*glob_therm%NFXTEMP),stat=stat)
4930 ALLOCATE(
ibfflux(glob_therm%NITFLUX*glob_therm%NFXFLUX) ,stat=stat)
4931 ALLOCATE(fbfflux(glob_therm%LFACTHER*glob_therm%NFXFLUX),stat=stat)
4932 ALLOCATE(
ibcr(glob_therm%NIRADIA*glob_therm%NUMRADIA) ,stat=stat)
4933 ALLOCATE(fradia(glob_therm%LFACTHER*glob_therm%NUMRADIA),stat=stat)
4934 .
4935 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4936 . msgtype=msgerror,
4937 . c1='THERMAL DATA')
4938 ibcr(1:glob_therm%NIRADIA*glob_therm%NUMRADIA) = 0
4939
4940 IF (glob_therm%NUMCONV > 0 ) THEN
4942 fconv = zero
4944 . glob_therm%NCONVEC ,glob_therm%NICONV,glob_therm%NUMCONV,glob_therm%LFACTHER)
4945 ENDIF
4946
4947 IF (glob_therm%NUMRADIA > 0 ) THEN
4949 . glob_therm%NRADIA ,glob_therm%NUMRADIA,glob_therm%NIRADIA,glob_therm%LFACTHER)
4950 ENDIF
4951
4952 IF (glob_therm%NFXTEMP > 0) THEN
4954 fbftemp = zero
4957 . glob_therm%NIMTEMP,glob_therm%NIFT,glob_therm%LFACTHER)
4958 ENDIF
4959
4960 IF (glob_therm%NFXFLUX > 0 ) THEN
4962 fbfflux = zero
4965 . glob_therm%NIMPFLUX,glob_therm%NITFLUX,glob_therm%LFACTHER)
4966 ENDIF
4967
4968 ELSE
4969 ALLOCATE(mcp(0))
4972 IF (.NOT. ALLOCATED(temp)) ALLOCATE(temp(0))
4973 ENDIF
4974
4976
4977 IF(isigi==2 .OR. isigi==4) THEN
4978 sfzero = 3*numnod
4979 ELSEIF(iabs(isigi)==5) THEN
4980 sfzero = 3*4*(numelc+numeltg)
4981 ELSE
4982 sfzero = 0
4983 ENDIF
4984 ALLOCATE(fzero(sfzero) ,stat=stat)
4985 IF(sfzero > 0) fzero = zero
4986
4987
4988
4989 err_msg='LASER IMPACTS'
4990 err_category='LASER IMPACTS'
4991 CALL trace_in1(err_msg,len_trim(err_msg))
4994
4995
4996
4997
4998 nfacx=0
4999 err_msg='ELEMENTARY BOUNDARY CONDITIONS'
5000 err_category='ELEMENTARY BOUNDARY CONDITIONS'
5001 CALL trace_in1(err_msg,len_trim(err_msg))
5002 ebcs_tag_cell_spmd(1:numelq+numeltg+numels)=0
5005
5006 IF(.NOT. ALLOCATED(sensor_tmp)) ALLOCATE( sensor_tmp(0) )
5008 . pm,
igeo, x, sensor_tmp,
monvol, multi_fvm%IS_USED,
5009 . ebcs_tab, ebcs_tag_cell_spmd,
itabm1)
5010 DEALLOCATE(sensor_tmp)
5011 ENDIF
5013
5014
5015
5016 err_msg='ACCELEROMETERS'
5017 err_category='ACCELEROMETERS'
5018 CALL trace_in1(err_msg,len_trim(err_msg))
5019 saccelm = naccelm * llaccelm
5020 ALLOCATE(accelm(saccelm) ,stat=stat)
5021 IF(saccelm > 0) accelm = zero
5022 IF(naccelm > 0)
CALL lecacc(
5026
5027
5028
5029 err_msg='GAUGES'
5030 err_category='GAUGES'
5031 CALL trace_in1(err_msg,len_trim(err_msg))
5032 ALLOCATE(
lgauge(3*nbgauge) ,stat=stat)
5033 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5034 . msgtype=msgerror,
5035 . c1='LGAUGE')
5037 ALLOCATE(gauge(llgauge*nbgauge) ,stat=stat)
5038 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5039 . msgtype=msgerror,
5040 . c1='GAUGE')
5041 IF(nbgauge > 0) gauge=zero
5044
5045
5046
5047 err_msg='SENSORS'
5048 err_category='SENSORS'
5049 CALL trace_in1(err_msg,len_trim(err_msg))
5050
5051
5052
5054
5055
5056 python%NB_SENSORS = 0
5061 . sensor_user_struct)
5062
5063
5064
5065
5066 IF(sensor_user_struct%IS_USED) THEN
5067 IF(sensor_user_struct%POINTER_NODE > 0) THEN
5069 .
itabm1,sensor_user_struct%POINTER_NODE,sensor_user_struct%NUMBER_NODE,
5070 . sensor_user_struct%NODE_LIST,1,
ipart)
5071 ENDIF
5072 ENDIF
5073
5075
5076
5077
5078
5079 err_msg='INITIAL VELOCITIES'
5080 err_category='INITIAL VELOCITIES'
5081 CALL trace_in1(err_msg,len_trim(err_msg))
5082
5083 IF(nrbody > 0) THEN
5084 ALLOCATE(rby_iniaxis(7,nrbody))
5085 rby_iniaxis = zero
5086 ELSE
5087 ALLOCATE(rby_iniaxis(0,0))
5088 ENDIF
5089
5090 ninivelt = 0
5091 IF(ninvel > 0 )
CALL hm_preread_inivel(lsubmodel,
unitab,hm_ninvel,ninivelt)
5092 loads%NINIVELT = ninivelt
5093 IF(ninvel/=0.OR.isigi>=3)THEN
5094 siwork = ninvel
5095 ALLOCATE(iwork(siwork) ,stat=stat)
5096 iwork = 0
5097 WRITE(istdo,'(A)')titre(35)
5098 ALLOCATE(fvm_inivel(ninvel))
5099 DO i = 1, ninvel
5100 fvm_inivel(i)%FLAG = .false.
5101 ENDDO
5102 ALLOCATE(loads%INIVELT(ninivelt) ,stat=stat)
5103
5106 . x ,
unitab , lsubmodel, rtrans , xframe ,
5107 .
iframe , vflow , wflow ,
kxsp , multi_fvm ,
5109 . sensors ,ninivelt,loads%INIVELT)
5111
5112 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
5113 ninvel = siwork
5114
5115 ELSE
5116 ALLOCATE(fvm_inivel(0:0))
5117 ENDIF
5118
5119 IF(ALLOCATED(rby_msn)) DEALLOCATE(rby_msn)
5120
5122
5123
5124
5125
5126
5127 IF(bcs%NUM_WALL /= 0) THEN
5128
5129 CALL hm_read_bcs_wall(
unitab, lsubmodel,
igrnod, ngrnod, sensors,
itabm1, numnod, multi_fvm)
5130 ENDIF
5131
5132
5133
5134 IF(bcs%NUM_NRF /= 0) THEN
5135
5136 CALL hm_read_bcs_nrf(lsubmodel,
igrnod, ngrnod,
itabm1, numnod, multi_fvm)
5137 ENDIF
5138
5139
5140
5141
5142 err_msg='BOLT PRELOADING'
5143 err_category='BOLT PRELOADING'
5144 CALL trace_in1(err_msg,len_trim(err_msg))
5145
5146 npreload_a = npreload
5147 CALL hm_pre_read_preload_axial(ngrspri,
igrspring,npreload_a,lsubmodel)
5148 numpreload = npreload
5149 IF(npreload > npreload_a) THEN
5150 IF(nsect /= 0)THEN
5153 ALLOCATE(
nstrf(snstrf) ,stat=stat)
5154 ALLOCATE(secbuf(ssecbuf) ,stat=stat)
5156 secbuf = zero
5163 ENDIF
5165 sipreload = 3*numpreload
5166 spreload = 6*numpreload
5167 ALLOCATE(
ipreload(sipreload) ,stat=stat)
5168 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5169 . msgtype=msgerror,
5170 . c1='IPRELOAD')
5171 ALLOCATE(preload(spreload) ,stat=stat)
5172 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5173 . msgtype=msgerror,
5174 . c1='PRELOAD')
5176 IF(stat /= 0)
CALL ancmsg(msgid= 268,anmode=aninfo,
5177 . msgtype= msgerror,
5178 . c1= 'IFLAG_BPRELOAD')
5179 ALLOCATE(ipreload_fun(2*numpreload) ,stat=stat)
5180 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5181 . msgtype=msgerror,
5182 . c1='IPRELOAD_FUN')
5185 preload = zero
5186 ipreload_fun = 0
5187
5188 WRITE(istdo,'(A)')titre(34)
5191 . eani ,
itab ,lsubmodel,
5192 . snpc ,
npc ,ipreload_fun)
5193
5195 IF(ALLOCATED(secbuf)) DEALLOCATE(secbuf)
5196 snstrf = 0
5197 ssecbuf = 0
5198 ELSE
5200 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5201 . msgtype=msgerror,
5202 . c1='IPRELOAD')
5203 ALLOCATE(preload(0) ,stat=stat)
5204 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5205 . msgtype=msgerror,
5206 . c1='PRELOAD')
5208 IF(stat /= 0)
CALL ancmsg(msgid= 268,anmode=aninfo,
5209 . msgtype= msgerror,
5210 . c1= 'IFLAG_BPRELOAD')
5211 ALLOCATE(ipreload_fun(0))
5212 ENDIF
5213
5214 ALLOCATE(preload_a(npreload_a) ,stat=stat)
5215 ALLOCATE(itagprld_spring(numelr) ,stat=stat)
5216 ALLOCATE(itagprld_beam(numelp) ,stat=stat)
5217 ALLOCATE(itagprld_truss(numelt) ,stat=stat)
5218 IF(stat /= 0)
CALL ancmsg(msgid= 268,anmode=aninfo,
5219 . msgtype= msgerror,
5220 . c1= 'PRELOAD_AXIAL')
5221
5222 itagprld_spring = 0
5223 itagprld_beam = 0
5224 itagprld_truss = 0
5225 IF (npreload_a > 0) THEN
5226 CALL hm_read_preload_axial(
5227 . npreload_a, ngrspri,
igrspring, itagprld_spring,
5228 .
unitab , lsubmodel, preload_a, numelr ,
5229 . snpc ,
npc , nfunct , sensors ,
5230 . ngrbeam ,
igrbeam , numelp , itagprld_beam ,
5231 . ngrtrus ,
igrtruss , numelt , itagprld_truss ,
5232 . iout )
5233 npreload = npreload - npreload_a
5234 END IF
5236
5237
5238
5239 err_msg='RIGID LINKS'
5240 err_category='RIGID LINKS'
5241 CALL trace_in1(err_msg,len_trim(err_msg))
5243 snnlink = 10*nlink
5244 slnlink = numlink
5245 ALLOCATE(
nnlink(snnlink) ,stat=stat)
5246 ALLOCATE(
lnlink(slnlink) ,stat=stat)
5247 IF(snnlink > 0)
nnlink = 0
5248 IF(slnlink > 0)
lnlink = 0
5249 IF(nlink > 0) THEN
5253 ENDIF
5254
5255 sfbvel = 3*nibvel
5256 sgrav = lfacgrv*ngrav
5257 sfr_wave = numnod*ifrwv
5258 sparts0 = npart
5259 ALLOCATE(fbvel(sfbvel) ,stat=stat)
5260 ALLOCATE(grav(sgrav ) ,stat=stat)
5261 ALLOCATE(fr_wave(sfr_wave) ,stat=stat)
5262 ALLOCATE(parts0(sparts0) ,stat=stat)
5263 IF(sfbvel > 0) fbvel = zero
5264 IF(sgrav > 0) grav = zero
5265 IF(sfr_wave > 0) fr_wave = zero
5266 IF(sparts0 > 0) parts0 = zero
5267
5269
5270
5271
5273 IF(marqueur3) THEN
5274 WRITE(iout,'(A)')' '
5275 WRITE(iout,'(A)')
5276 . ' --------------------------------------'
5277 WRITE(iout,'(A)')
5278 . ' DDW OPTION FOR THE DOMAIN DECOMPOSITION'
5279 WRITE(iout,'(A)')
5280 . ' --------------------------------------'
5281 WRITE(istdo,*)
5282 . '.. DDW OPTION FOR THE DOMAIN DECOMPOSITION'
5283
5284 ALLOCATE(tab_ump_old(7,taille_old),stat=stat)
5285 ALLOCATE(cputime_mp_old(taille_old),stat=stat)
5286 tab_ump_old = 0
5287 cputime_mp_old = zero
5288
5289 CALL lec_ddw(filnam,len_filnam,tab_ump_old,cputime_mp_old)
5290
5292 ALLOCATE(poin_ump_old(nummat_old), stat=stat)
5293 poin_ump_old = 0
5294
5296 ELSE
5297 ALLOCATE(tab_ump_old(0,0),stat=stat)
5298 ALLOCATE(cputime_mp_old(0),stat=stat)
5299 ALLOCATE(poin_ump_old(0), stat=stat)
5300 ENDIF
5301
5302
5303
5304 err_msg='USER WINDOWS'
5305 err_category='USER WINDOWS'
5306 CALL trace_in1(err_msg,len_trim(err_msg))
5307
5308 IF(user_windows%HAS_USER_WINDOW /= 0 ) THEN
5309
5310
5312 * x, v, vr, ms, in)
5313
5314
5315 ENDIF
5317
5318
5319
5320 err_msg='RIGID BODIES ON'
5321 err_category='RIGID BODIES'
5322 CALL trace_in1(err_msg,len_trim(err_msg))
5323 IF(numels /=0) isoloff = 0
5324 IF(numelc /=0) isheoff = 0
5325 IF(numelt /=0) itruoff = 0
5326 IF(numelp /=0) ipouoff = 0
5327 IF(numelr /=0) iresoff = 0
5328 IF(numeltg /=0) itrioff = 0
5329 IF(numelq /=0) iquaoff = 0
5336
5337
5338
5339 err_msg='RBE2 ON'
5340 err_category='RBE2'
5341 CALL trace_in1(err_msg,len_trim(err_msg))
5344 2 igrnrb2,isoloff,isheoff,itrioff,
itabm1,
5345 3 lsubmodel)
5347
5348
5349
5350 err_msg='FLEXIBLE BODIES ON'
5351 err_category='FLEXIBLE BODIES'
5352 CALL trace_in1(err_msg,len_trim(err_msg))
5353 IF(nfxbody > 0)THEN
5354 lenmod=0
5357 2
ixtg,itrioff,fxbipm,lsubmodel)
5358 ENDIF
5360
5361
5362
5363 err_msg='CLUSTERS'
5364 err_category='CLUSTERS'
5365 ALLOCATE(clusters(ncluster), stat=stat)
5369 . lsubmodel)
5370
5371
5372
5375 * n2d ,numeltg,numels,numelq,nummat,
5376 * npart,nsurf,lipart1,npropmi,sipart,sinivol,
5377 * nsubdom,sbufmat,
igrnod,ngrnod)
5378
5379
5380
5381 IF(tagsurfige>0) THEN
5382 snige = iadtabige
5383 nige => nige_tmp(idxige2)%ptr
5384
5385 srige = iadtabige
5386 rige => rige_tmp(idxige2)%ptr2
5387
5388 sxige = iadtabige
5389 xige => xige_tmp(idxige2)%ptr2
5390
5391 svige = iadtabige
5392 vige => vige_tmp(idxige2)%ptr2
5393 ENDIF
5395
5396
5397
5398
5399
5401
5402
5403
5404 err_msg='MONITORED VOLUMES'
5405 err_category='MONITORED VOLUMES'
5406 CALL trace_in1(err_msg,len_trim(err_msg))
5407 ibagsurf = 0
5408 libagale = 0
5409 lrbagale = 0
5410 nventtot = 0
5411 ALLOCATE(t_monvol(nvolu + nmonvol))
5413 IF(nvolu + nmonvol> 0) THEN
5414 WRITE(istdo,'(A)') ' .. MONITORED VOLUMES '
5415
5417 . x, pm, geo,
ixc,
ixtg, sensors,
5419 . lsubmodel)
5420
5424 5 sensors ,
igrbric ,sbufale ,
5425 6
ixs , v ,libagale,
5426 7 lrbagale )
5427
5428 libagjet=0
5429 lrbagjet=0
5430 libaghol=0
5431 lrbaghol=0
5432 lrcbag = 0
5433 licbag = nicbag * nvolu * nvolu
5434 DO ii = 1, nvolu
5435 libagjet = libagjet + nibjet * t_monvol(ii)%NJET
5436 lrbagjet = lrbagjet + nrbjet * t_monvol(ii)%NJET
5437 libaghol = libaghol + nibhol * t_monvol(ii)%NVENT
5438 lrbaghol = lrbaghol + nrbhol * t_monvol(ii)%NVENT
5439 IF(t_monvol(ii)%TYPE == 5 .OR. t_monvol(ii)%TYPE == 9) THEN
5440 lrcbag = lrcbag + t_monvol(ii)%NCA * nrcbag
5441 ENDIF
5442 ENDDO
5443
5444 svolmon0 = nrvolu * nvolu + lrcbag + lrbagjet + lrbaghol
5445 svolmon = svolmon0 + sbufale + 1
5446 ALLOCATE(volmon(svolmon), stat = stat)
5447 volmon(1:svolmon) = zero
5448
5449 smonvol = nimv * nvolu + licbag + libagjet + libaghol + libagale
5450 ALLOCATE(
monvol(smonvol), stat = stat)
5452 ELSE
5454 ALLOCATE(volmon(0))
5455 ENDIF
5457
5458
5459
5460 err_msg='IMPLICIT DOMAIN DECOMPOSITION'
5461 err_category='IMPLICIT DOMAIN DECOMPOSITION'
5462 CALL trace_in1(err_msg,len_trim(err_msg))
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476 iddlevel = 0
5477 nelemint = 0
5478 ifixin = 1
5479 ifiend = 1
5480 DO i = 1, numnod
5481 iwcont(i) = 0
5482 iwcont(numnod+i) = 0
5483 iwcin2(i)= 0
5484 iwcin2(numnod+i)= 0
5485
5486
5487
5489 ENDDO
5490 DO i=0,maxlaw
5491 sol1tnl(i,1)=zero
5492 sol1tnl(i,2)=zero
5493 sol1tnl(i,3)=zero
5494
5495 sol8tnl(i,1)=zero
5496 sol8tnl(i,2)=zero
5497 sol8tnl(i,3)=zero
5498
5499 DO j=0,3
5500 shtnl(i,j,1)=zero
5501 shtnl(i,j,2)=zero
5502 shtnl(i,j,3)=zero
5503
5504 tritnl(i,j,1)=zero
5505 tritnl(i,j,2)=zero
5506 tritnl(i,j,3)=zero
5507 ENDDO
5508 ENDDO
5509 DO i=1,10
5510 soltelt(i)=zero
5511 shtelt(i)=zero
5512 tritelt(i)=zero
5513 ENDDO
5514 tpsref = zero
5515
5516 lag_ncf0 = lag_ncf
5517 lag_nkf0 = lag_nkf
5518 lag_nhf0 = lag_nhf
5519 lag_ncl0 = lag_ncl
5520 lag_nkl0 = lag_nkl
5522
5523
5524
5525 IF(ndrape > 0 .AND. (ipart_stack > 0 .OR. ipart_pcompp > 0)) THEN
5527 .
igeo ,iworksh ,drapeg%INDX)
5528 ENDIF
5529
5530
5531
5532 err_msg='PERTURB'
5533 err_category='PERTURB'
5534 CALL trace_in1(err_msg,len_trim(err_msg))
5535
5536 IF(iperturb /= 0) THEN
5537 srnoise1=nperturb
5538 srnoise2=numelc+numeltg+numels+numsph
5539 ALLOCATE(rnoise(nperturb,numelc+numeltg+numels+numsph))
5540 rnoise(1:nperturb,1:numelc+numeltg+numels+numsph) = zero
5541 ALLOCATE(perturb(nperturb))
5542 perturb(1:nperturb) = 0
5543 ALLOCATE(qp_iperturb(nperturb,6))
5544 qp_iperturb(1:nperturb,1:6) = 0
5545 ALLOCATE(qp_rperturb(nperturb,4))
5546 qp_rperturb(1:nperturb,1:4) = zero
5548 .
ipart ,rnoise ,ipartc ,ipartg ,ipartsp ,
5549 .
igrpart ,
ipm ,iparts ,perturb ,qp_iperturb,
5550 . qp_rperturb ,lsubmodel,
unitab )
5551 ELSE
5552 srnoise1=1
5553 srnoise2=1
5554 ALLOCATE(rnoise(1,1))
5555 rnoise(1,1) = zero
5556 ALLOCATE(perturb(1))
5557 perturb(1) = 0
5558 ALLOCATE(qp_iperturb(0,0))
5559 ALLOCATE(qp_rperturb(0,0))
5560 ENDIF
5561
5563
5564
5565
5566
5567 CALL globmat(
igeo , geo ,pm ,stack%PM, stack%GEO,stack%IGEO,
5568 . mat_elem%MAT_PARAM)
5569
5570
5571
5572
5573
5574
5581
5582
5583
5584
5585 err_msg='USER TO SYSTEM RENUMBERING'
5586 err_category='INTERNAL'
5587 CALL trace_in1(err_msg,len_trim(err_msg))
5588 CALL fsdcod(python, bufmat ,pm ,geo ,
ibcl ,ipres ,
5594 .
nom_opt(lnopt1*inom_opt(3)+1),
ibfflux ,glob_therm,nimpvel,nimpdisp,
5595 . nimpacc)
5596
5597
5598
5599
5602 . mat_elem%MAT_PARAM)
5603
5604 CALL updfail(mat_elem%MAT_PARAM ,nummat ,nfunct ,ntable ,npc1 ,
table ,
5606 . nixc ,
ixc ,nixtg ,
ixtg ,numelc ,numeltg ,
5607 . iworksh ,stack ,
igeo ,npropgi ,numgeo ,fail_brokmann)
5608
5610
5611
5612
5613
5614 CALL trace_in1(err_msg,len_trim(err_msg))
5615 IF(nsphio/=0)
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627 100 CONTINUE
5628
5630
5631 IF(iddlevel==1) THEN
5632 totaddmas = zero
5633 ms = zero
5634 in = zero
5635 mcp = zero
5636 msnf = zero
5637
5638 IF((nsubdom>0)) THEN
5639
5640 DO i=1,numnod
5641 IF(
tagno(i+n_part) > 1)
THEN
5642 ms(i)=1e-20
5643 IF(iroddl==1) in(i)=1e-20
5644 ENDIF
5645 END DO
5646 ENDIF
5647
5648 ENDIF
5649
5650
5651
5652
5653
5654 n_seatbelt = 0
5655 IF(nb_mat_seatbelt > 0) THEN
5656 err_msg='SEATBELTS'
5657 err_category='SEATBELTS'
5658 CALL trace_in1(err_msg,len_trim(err_msg))
5659 WRITE(istdo,'(A)')' .. SEATBELT INITIALIZATION'
5661 . x,sensors,bufmat,pm,geo,
5665 ENDIF
5666
5667
5668
5669
5670 IF (ndamp > 0) THEN
5671 IF(iddlevel==0)THEN
5672 err_msg='DAMPING'
5673 err_category='DAMPING'
5674 CALL trace_in1(err_msg,len_trim(err_msg))
5676 . snpc1,npc1,ndamp_vrel_rby,
igrpart,damp_range_part)
5678 ENDIF
5679 ENDIF
5680
5681
5682
5683 IF(isms == 0) THEN
5687 ALLOCATE(t2main_sms(4,0))
5688 ENDIF
5689 ELSEIF(isms/=0)THEN
5690 err_msg='AMS'
5691 err_category='AMS'
5692 WRITE(istdo,'(A)')' .. AMS INITIALIZATION'
5693 IF(iddlevel==0) THEN
5694
5695 err_msg='AMS INITIALIZATION PHASE I'
5696 CALL trace_in1(err_msg,len_trim(err_msg))
5697
5699
5700 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5701 . msgtype=msgerror,
5702 . c1='TAGPRT_SMS / NATIV_SMS / T2MAIN_SMS')
5705 t2main_sms=0
5706
5708 . ipartt ,ipartp ,ipartr ,ipartg ,
5710
5712
5713 ELSE
5714
5715
5716
5717 err_msg='AMS INITIALIZATION PHASE II'
5718 CALL trace_in1(err_msg,len_trim(err_msg))
5719
5720 ALLOCATE(kinwork(numnod),stat=stat)
5721 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5722 . msgtype=msgerror,
5723 . c1='KINWORK')
5726
5735 . stat=stat)
5736 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5737 . msgtype=msgerror,
5738 . c1='TAGREL_SMS')
5739
5740
5744 3 ixs20 ,
iparg ,dsdof ,
5746 5 iparts ,ipartq ,ipartc ,
5747 6 ipartt ,ipartp ,ipartr ,ipartg ,
5752
5756 3 ixs20 ,
iparg ,ms ,ms0 ,dsdof ,
5759 6 ipartc ,ipartt ,ipartp ,ipartr ,
5763
5764
5766 . stat=stat)
5767 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5768 . msgtype=msgerror,
5769 . c1='KDI_SMS')
5770
5777 7
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5778 8 ipartp ,ipartr ,ipartg ,ipartx ,
5781
5783 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5784 . msgtype=msgerror,
5785 . c1='JDI_SMS')
5786
5792 6
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5793 7 ipartp ,ipartr ,ipartg ,ipartx ,
5797
5799
5800 ALLOCATE(
jdi_sms(nnz_sms),stat=stat)
5801 IF(stat/=0) THEN
5802 CALL ancmsg(msgid=268,anmode=aninfo,
5803 . msgtype=msgerror,
5804 . c1='JDI_SMS')
5806 ENDIF
5807
5813 7
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5814 8 ipartp ,ipartr ,ipartg ,ipartx ,
5819 e t2main_sms)
5820
5822
5823 ALLOCATE(
jdi_sms(nnz_sms),stat=stat)
5824 IF(stat/=0) THEN
5825 CALL ancmsg(msgid=268,anmode=aninfo,
5826 . msgtype=msgerror,
5827 . c1='JDI_SMS')
5829 ENDIF
5830 ALLOCATE(
jsm_sms(nnz_sms),stat=stat)
5831 IF(stat/=0) THEN
5832 CALL ancmsg(msgid=268,anmode=aninfo,
5833 . msgtype=msgerror,
5834 . c1='JSM_SMS')
5836 ENDIF
5837
5843 6
tagrel_sms,iparts ,ipartq ,ipartc ,ipartt ,
5844 7 ipartp ,ipartr ,ipartg ,ipartx ,
5850
5851 DEALLOCATE(kinwork)
5852 DEALLOCATE(t2main_sms)
5854
5855
5856 IF((isms_selec >= 2).AND.(nnz_sms == 0)) isms_selec = 0
5857
5858 END IF
5859
5860 END IF
5861
5862 nelem = numelc+numeltg+numels+numelr
5863 + + numelp+numelt+numelq+numelx+numelig3d
5864
5865
5866 ALLOCATE(
ielem21(nelem),stat=stat)
5867 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5868 . msgtype=msgerror,
5869 . c1='IELEM21')
5871
5872 err_msg='DOMAIN DECOMPOSITION'
5873 err_category='DOMAIN DECOMPOSITION'
5874 CALL trace_in1(err_msg,len_trim(err_msg))
5875 IF(iddlevel==1) THEN
5876 ngroup = 0
5877 lbufel = 0
5878 segindx=0
5879
5880
5882
5883 DO i=1,numnod
5886 ENDIF
5887 ENDDO
5888
5889
5890
5891 ELSEIF(iddlevel==0) THEN
5892 IF(nelem+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX+slcfield>0) THEN
5893 scep = nelem+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp+number_load_cyl
5894 scel = nelem+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp+number_load_cyl
5895 ALLOCATE(cep(scep))
5896 ALLOCATE(cel(scel))
5897 ELSE
5898 scep = 1
5899 scel = 1
5900 ALLOCATE(cep(scep))
5901 ALLOCATE(cel(scel))
5902 ENDIF
5903 ENDIF
5904 emax =
max(numelc,numeltg,numels,numelr,
5905 . numelp,numelt,numelq,numelx,numelig3d)
5906 k1 = 1
5907 k2 = k1+emax
5908 k3 = k2+emax
5909 k4 = k3+2*emax
5910 k5 = k4+2*emax
5911 k6 = k5 + nelem
5912 k7 = k6 + nelem
5913 k8 = k7 + nelem
5914
5915 ldd_iad = ((nelem+numsph)/nvsiz/2)*(nspmd+1)
5916 ALLOCATE(dd_tmp(ldd_iad) ,stat=stat)
5917 dd_tmp = 0
5918 idx = 1
5919
5920 ALLOCATE(iwork(k8) ,stat=stat)
5921 IF(emax>0) THEN
5922 itri1 => iwork(1:k2)
5923 itri2 => iwork(k2+1:k3)
5924 index1 => iwork(k3+1:k4)
5925 index2 => iwork(k4+1:k5)
5926 ELSE
5927 itri1 => iwork
5928 itri2 => iwork
5929 index1 => iwork
5930 index2 => iwork
5931 END IF
5932 IF(nelem>0) THEN
5933 inum => iwork(k5+1:k6)
5934 iwd => iwork(k6+1:k7)
5935 iweig => iwork(k7+1:k8)
5936 ELSE
5937 inum => iwork
5938 iwd => iwork
5939 iweig => iwork
5940 END IF
5941
5942 IF(.NOT.ALLOCATED(inter_cand%IXINT)) ALLOCATE(inter_cand%IXINT(inter_cand%S_IXINT_1,inter_cand%S_IXINT_2))
5943 IF(.NOT.
ALLOCATED(
npby))
ALLOCATE(
npby(0))
5944 IF(.NOT.
ALLOCATED(
lpby))
ALLOCATE(
lpby(0))
5945 IF(.NOT. ALLOCATED( rby)) ALLOCATE( rby(0))
5946
5950 3 itri1 ,itri2 ,index1 ,index2 ,inum ,
5951 4 iwd ,iwcont ,nelem ,iddlevel,nelemint ,
5952 5 inter_cand,pm ,x ,
kxx ,
ixx ,
5953 6 addcne ,
igeo ,eani ,iwcin2 ,dsdof ,
5954 7 isoloff ,isheoff ,itrioff ,itruoff ,ipouoff ,
5958 2 poin_ump_old,tab_ump_old,cputime_mp_old,
5959 3 nsnt, nmnt_2,tabmp_l,iquaoff,
5962 6 poin_part_shell,poin_part_tri,poin_part_sol,
5963 7 mid_pid_shell,mid_pid_tri,mid_pid_sol,t_monvol,
5964 8 ebcs_tag_cell_spmd,
npby,
lpby,mat_elem%MAT_PARAM)
5965
5966 DEALLOCATE(iwork)
5967
5968
5969
5970 IF(numsph > 0)THEN
5971 IF(iddlevel==0) THEN
5972 ALLOCATE(cepsp(numsph),stat=stat)
5973 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5974 . msgtype=msgerror,
5975 . c1='CEPSP')
5976
5977 ALLOCATE(celsph(numsph),stat=stat)
5978 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
5979 . msgtype=msgerror,
5980 . c1='CELSPH')
5981 END IF
5982
5985 ELSE
5986 IF(iddlevel==0) ALLOCATE(celsph(1))
5987 IF(.NOT.(ALLOCATED(cepsp))) ALLOCATE(cepsp(0),stat=stat)
5988 END IF
5989
5990
5991
5992 IF(nlaser>0) THEN
5994 ENDIF
5995 off = 1
5997
5998
5999
6000 err_msg='ELEMENTS GROUPS'
6001 err_category='ELEM/PROP/MAT COMPATIBILITY'
6002 CALL trace_in1(err_msg,len_trim(err_msg))
6003
6004 numelck8 = numelc
6005 numeltgk8 = numeltg
6006 numelsk8 = numels
6007 numelrk8 = numelr
6008 numelpk8 = numelp
6009 numeltk8 = numelt
6010 numelqk8 = numelq
6011 numelxk8 = numelx
6012 numelig3dk8 = numelig3d
6013 numsphk8 = numsph
6014
6015 emax =
max(24*numelck8,25*numeltgk8+1,30*numelsk8+1,19*numelrk8,
6016 . 19*numelpk8+1,17*numeltk8,19*numelqk8,
6017 . 15*numelxk8+1,24*numelig3dk8+1,numsphk8) + 1
6018
6019 ALLOCATE(ipargtmp(nparg,numel) ,stat=stat)
6020 ipargtmp = 0
6021 ALLOCATE(iwork(emax) ,stat=stat)
6022 IF(stat /= 0) THEN
6024 . msgtype=msgerror,
6025 . anmode=anstop,
6026 . c1='IPARG')
6027 ENDIF
6028
6029 IF(iddlevel == 0)
CALL m20dcod(mlaw_tag,
ipm, pm, mat_elem%MAT_PARAM)
6030
6031
6032
6033 nspgroup = 0
6034
6035 lb_max = 0
6036
6037 WRITE(istdo,'(A)')titre(37)
6038
6039
6040
6041 ngr_sol = 0
6042 IF(numels/=0) THEN
6043 k0 = 1
6044 k1 = k0 + numels*16
6045 k2 = k1 + numels
6046 k3 = k2 + numels+1
6047 k4 = k3 + numels*2
6048 k5 = k4 + numels*8
6049
6050 k6 = k5 + numels
6051
6052
6053 iwork = 0
6054 inum => iwork(1:k1)
6055 itri1 => iwork(k1+1:k2)
6056 eadd => iwork(k2+1:k3)
6057 index1 => iwork(k3+1:k4)
6058 itri2 => iwork(k4+1:k5)
6059 itri3 => iwork(k5+1:k6)
6060
6061
6063 1
ixs ,pm ,geo ,inum ,bid13 ,
6064 2 itri1 ,eadd ,index1 ,itri2 ,iparts ,
6066 4 cep(off),itri3 ,ixs10 ,ixs20 ,ixs16 ,
6070 8 rnoise(1,
min(srnoise2,numelc+numeltg+1)),
6071 9 damp_range_part,trimat)
6072
6073
6074
6075
6076 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6077 ALLOCATE(dd_tmp2(idx-1))
6078 DO i = 1, idx-1
6079 dd_tmp2(i)=dd_tmp(i)
6080 END DO
6081 DEALLOCATE(dd_tmp)
6082 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6083 DO i = 1, idx-1
6084 dd_tmp(i)=dd_tmp2(i)
6085 END DO
6086 DEALLOCATE(dd_tmp2)
6087 END IF
6088
6089 grsol_id1 = ngroup
6091 1
ixs ,pm ,ipargtmp ,geo ,
6092 2 eadd ,nd ,iparts ,dd_tmp(idx),
6093 3 idx ,eani ,inum ,index1 ,
6095 5 ixs20 ,ixs16 ,
igeo ,iddlevel,
6098 8
iflag_bpreload, clusters ,mat_elem%MAT_PARAM ,rnoise(1,
min(srnoise2,numelc+numeltg+1)),
6099 9 ipri ,damp_range_part,ipreload_fun)
6100 grsol_id2 = ngroup
6101 ngr_sol = grsol_id2 - grsol_id1
6102
6103 off = off + numels
6104
6105 DO i=1,numels
6108 ENDDO
6109
6110
6114 ENDIF
6115
6116
6117
6118
6119 IF(numelq/=0) THEN
6120 k1 = 9*numelq
6121 k2 = 10*numelq
6122 k3 = 11*numelq+1
6123 k4 = 13*numelq+1
6124 k5 = 18*numelq+1
6125 k6 = 19*numelq+1
6126
6127
6128 iwork = 0
6129 inum => iwork(1:k1)
6130 itr1 => iwork(k1+1:k2)
6131 eadd => iwork(k2+1:k3)
6132 index1 => iwork(k3+1:k4)
6133 itri1 => iwork(k4+1:k5)
6134 xep => iwork(k5+1:k6)
6135
6137 1
ixq ,pm ,geo ,inum ,bid13 ,
6138 2 itr1 ,eadd ,index1 ,itri1 ,ipartq ,
6140 5 xep ,
igeo ,
ipm ,iquaoff ,trimat)
6141
6142
6143
6144
6145 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6146 ALLOCATE(dd_tmp2(idx-1))
6147 DO i = 1, idx-1
6148 dd_tmp2(i)=dd_tmp(i)
6149 END DO
6150 DEALLOCATE(dd_tmp)
6151 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6152 DO i = 1, idx-1
6153 dd_tmp(i)=dd_tmp2(i)
6154 END DO
6155 DEALLOCATE(dd_tmp2)
6156 END IF
6157
6159 1
ixq ,pm ,ipargtmp ,geo ,
6160 2 eadd ,nd ,dd_tmp(idx),idx ,
6161 3 inum ,index1 ,cep(off) ,ipartq ,
6164 off = off + numelq
6165 ENDIF
6166
6167
6168
6169 IF(numelc/=0) THEN
6170
6171
6172
6173 k0 = 1
6174 k1 = 9*numelc
6175 k2 = 11*numelc
6176 k3 = 12*numelc+1
6177 k4 = 14*numelc+1
6178 k5 = 22*numelc+1
6179 k6 = 23*numelc+1
6180 k7 = 24*numelc+1
6181
6182
6183 iwork = 0
6184 inum => iwork(1:k1)
6185 itr1 => iwork(k1+1:k1+numelc)
6186 itr2 => iwork(k1+numelc+1:k2)
6187 eadd => iwork(k2+1:k3)
6188 index1 => iwork(k3+1:k4)
6189 itri1 => iwork(k4+1:k5)
6190 xep => iwork(k5+1:k6)
6191 ALLOCATE(xnum(numelc) ,stat=stat)
6192 xnum = zero
6193
6195 1
ixc ,pm ,geo ,inum ,bid13 ,
6196 2 itr1 ,eadd ,index1 ,itri1 ,xnum ,
6201 7 stack ,drape ,rnoise ,sh4ang,drapeg, ptshel,
6202 8 damp_range_part)
6203
6204
6205
6206
6207
6208 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6209 ALLOCATE(dd_tmp2(idx-1))
6210 DO i = 1, idx-1
6211 dd_tmp2(i)=dd_tmp(i)
6212 END DO
6213 DEALLOCATE(dd_tmp)
6214 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6215 DO i = 1, idx-1
6216 dd_tmp(i)=dd_tmp2(i)
6217 END DO
6218 DEALLOCATE(dd_tmp2)
6219 END IF
6220
6221
6223 1
ixc ,pm ,ipargtmp ,geo ,
6224 2 eadd ,nd ,ipartc ,dd_tmp ,
6225 3 idx ,inum ,itr1 ,
6226 4 index1 ,cep(off) ,thke ,xnum ,
6230 8 stack ,drape ,rnoise ,mat_elem%MAT_PARAM,
6231 9 sh4ang, iddlevel , drapeg,ipri, ptshel,damp_range_part)
6232
6233 off = off + numelc
6234
6235 DO i=1,numelc
6238 ENDDO
6239
6240 DEALLOCATE(xnum)
6241 ENDIF
6242
6243 IF(numelt/=0) THEN
6244 k1 = 7*numelt
6245 k2 = 8*numelt
6246 k3 = 9*numelt+1
6247 k4 = 11*numelt+1
6248 k5 = 16*numelt+1
6249 k6 = 17*numelt+1
6250
6251
6252 iwork = 0
6253 inum => iwork(1:k1)
6254 itr1 => iwork(k1+1:k2)
6255 eadd => iwork(k2+1:k3)
6256 index1 => iwork(k3+1:k4)
6257 itri1 => iwork(k4+1:k5)
6258 xep => iwork(k5+1:k6)
6259
6261 1
ixt ,pm ,geo ,inum ,bid13 ,
6262 2 itr1 ,eadd ,index1 ,itri1 ,
6264 4 cep(off),xep ,itruoff,
6266
6267
6268
6269
6270 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6271 ALLOCATE(dd_tmp2(idx-1))
6272 DO i = 1, idx-1
6273 dd_tmp2(i)=dd_tmp(i)
6274 END DO
6275 DEALLOCATE(dd_tmp)
6276 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6277 DO i = 1, idx-1
6278 dd_tmp(i)=dd_tmp2(i)
6279 END DO
6280 DEALLOCATE(dd_tmp2)
6281 END IF
6282
6284 1
ixt ,ipargtmp,pm ,geo ,
6285 2 eadd ,nd ,dd_tmp ,idx ,
6286 3 inum ,index1 ,cep(off) ,ipartt ,
6289 6 preload_a,npreload_a)
6290 off = off + numelt
6291 ENDIF
6292
6293
6294 IF(numelp > 0) THEN
6295 k1 = 9*numelp
6296 k2 = 10*numelp
6297 k3 = 11*numelp+1
6298 k4 = 13*numelp+1
6299 k5 = 18*numelp+1
6300 k6 = 19*numelp+1
6301
6302
6303 iwork = 0
6304 inum => iwork(1:k1)
6305 itr1 => iwork(k1+1:k2)
6306 eadd => iwork(k2+1:k3)
6307 index1 => iwork(k3+1:k4)
6308 itri1 => iwork(k4+1:k5)
6309 xep => iwork(k5+1:k6)
6310
6311 ALLOCATE(xnum(3*numelp) ,stat=stat)
6312 xnum(1:3*numelp) = zero
6313
6315 1
ixp ,pm ,geo ,inum ,
6316 2 itr1 ,eadd ,index1 ,itri1 ,ipartp ,
6319 5 itagprld_beam,ibeam_vector,rbeam_vector,xnum)
6320
6321
6322
6323
6324 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6325 ALLOCATE(dd_tmp2(idx-1))
6326 DO i = 1, idx-1
6327 dd_tmp2(i)=dd_tmp(i)
6328 END DO
6329 DEALLOCATE(dd_tmp)
6330 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6331 DO i = 1, idx-1
6332 dd_tmp(i)=dd_tmp2(i)
6333 END DO
6334 DEALLOCATE(dd_tmp2)
6335 END IF
6336
6338 1
ixp ,ipargtmp,pm ,geo ,
6339 2 eadd ,nd ,dd_tmp ,idx ,
6340 3 inum ,index1 ,cep(off) ,ipartp ,
6343 6
nod2el1d, ipri ,itagprld_beam,preload_a,
6344 7 npreload_a,ibeam_vector,rbeam_vector,xnum)
6345
6346 off = off + numelp
6347
6348 DEALLOCATE(xnum)
6349 ENDIF
6350
6351
6352
6353 IF(numelr/=0) THEN
6354 k1 = 9*numelr
6355 k2 = 10*numelr
6356 k3 = 11*numelr+1
6357 k4 = 13*numelr+1
6358 k5 = 18*numelr+1
6359 k6 = 19*numelr+1
6360
6361
6362 iwork = 0
6363 inum => iwork(1:k1)
6364 itr1 => iwork(k1+1:k2)
6365 eadd => iwork(k2+1:k3)
6366 index1 => iwork(k3+1:k4)
6367 itri1 => iwork(k4+1:k5)
6368 xep => iwork(k5+1:k6)
6369
6371 1
ixr ,geo ,inum ,bid13 ,
igeo ,
6372 2 itr1 ,eadd ,index1 ,itri1 ,
6374 5 cep(off),xep ,iresoff,
6376
6377
6378
6379
6380 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6381 ALLOCATE(dd_tmp2(idx-1))
6382 DO i = 1, idx-1
6383 dd_tmp2(i)=dd_tmp(i)
6384 END DO
6385 DEALLOCATE(dd_tmp)
6386 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6387 DO i = 1, idx-1
6388 dd_tmp(i)=dd_tmp2(i)
6389 END DO
6390 DEALLOCATE(dd_tmp2)
6391 END IF
6392
6394 1
ixr ,ipargtmp ,geo ,eadd ,
igeo ,
6395 2 nd ,dd_tmp ,idx ,inum ,
6396 3 index1 ,cep(off) ,ipartr ,itr1 ,
6398 5
ipm , clusters,r_skew,ipri ,itagprld_spring,
6399 6 preload_a,npreload_a)
6400 off = off + numelr
6401 ENDIF
6402
6403 IF(numeltg/=0) THEN
6404
6405
6406
6407 k1 = 10*numeltg
6408 k2 = 12*numeltg
6409 k3 = 13*numeltg+1
6410 k4 = 15*numeltg+1
6411 k5 = 23*numeltg+1
6412 k6 = 24*numeltg+1
6413 k7 = 25*numeltg+1
6414 k8 = 26*numeltg+1
6415
6416
6417 iwork = 0
6418 inum => iwork(1:k1)
6419 itr1 => iwork(k1+1:k2)
6420 eadd => iwork(k2+1:k3)
6421 index1 => iwork(k3+1:k4)
6422 itri1 => iwork(k4+1:k5)
6423 xep => iwork(k5+1:k6)
6424
6425 ALLOCATE(xnum(numeltg) ,stat=stat)
6426 xnum = zero
6427
6428 IF(numeltg6>0) THEN
6430 ENDIF
6431 IF(n2d==0)THEN
6433 1
ixtg ,pm ,geo ,inum ,bid13 ,
6434 2 itr1 ,eadd ,index1 ,itri1 ,xnum ,
6436 4 cep(off),xep ,
ixtg1 ,eanit ,
6439 7 iworksh , stack ,drape ,rnoise(1,
min(srnoise2,numelc+1)),
6440 8 multi_fvm , sh3ang,drapeg,ptsh3n,mat_elem%MAT_PARAM,
6441 9 damp_range_part)
6442 ELSE
6444 1
ixtg ,pm ,geo ,inum ,bid13 ,
6445 2 itr1 ,eadd ,index1 ,itri1 ,xnum ,
6447 4 cep(off),xep ,
ixtg1 ,eanit ,
6450 7 iworksh , stack ,drape ,rnoise(1,
min(srnoise2,numelc+1)),
6451 8 multi_fvm ,sh3ang,drapeg,ptsh3n)
6452 ENDIF
6453
6454
6455
6456
6457 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6458 ALLOCATE(dd_tmp2(idx-1))
6459 DO i = 1, idx-1
6460 dd_tmp2(i)=dd_tmp(i)
6461 END DO
6462 DEALLOCATE(dd_tmp)
6463 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6464 DO i = 1, idx-1
6465 dd_tmp(i)=dd_tmp2(i)
6466 END DO
6467 DEALLOCATE(dd_tmp2)
6468 END IF
6469
6470 IF(n2d==0)THEN
6472 1
ixtg ,pm ,ipargtmp ,geo ,
6473 2 eadd ,nd ,ipartg ,dd_tmp ,
6474 3 idx ,inum ,index1 ,cep(off) ,
6479 8 drape ,rnoise(1,
min(srnoise2,numelc+1)) ,
6480 9 mat_elem%MAT_PARAM,sh3ang,drapeg,ipri ,ptsh3n,damp_range_part)
6481 ELSE
6483 1
ixtg ,pm ,ipargtmp ,geo ,
6484 2 eadd ,nd ,ipartg ,dd_tmp ,
6485 3 idx ,inum ,index1 ,cep(off) ,
6490 8 drape ,rnoise(1,
min(srnoise2,numelc+1)) ,
inivol,
6491 9 mat_elem%MAT_PARAM,sh3ang ,drapeg,ipri,ptsh3n)
6492 ENDIF
6493 off = off + numeltg
6494 DO i=1,numeltg
6497 ENDDO
6498
6499 DEALLOCATE(xnum)
6500 ENDIF
6501
6503
6504
6505 IF(numsph/=0) THEN
6506 if ( .NOT. ALLOCATED(ixsps) ) ALLOCATE(ixsps(kvoisph,numsph),stat=stat)
6507 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6508 . msgtype=msgerror,
6509 . c1='IXSPS')
6510
6511 iwork = 0
6512 eadd => iwork(1:numsph+1)
6514 2 ipartsp ,eadd ,cepsp ,nd ,
ipm ,
6517
6518
6519
6520
6521 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6522 ALLOCATE(dd_tmp2(idx-1))
6523 DO i = 1, idx-1
6524 dd_tmp2(i)=dd_tmp(i)
6525 END DO
6526 DEALLOCATE(dd_tmp)
6527 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6528 DO i = 1, idx-1
6529 dd_tmp(i)=dd_tmp2(i)
6530 END DO
6531 DEALLOCATE(dd_tmp2)
6532 END IF
6533
6535 2 ipartsp ,eadd ,nd ,cepsp,dd_tmp ,
6539 6 ixsps)
6540 IF (ALLOCATED(ixsps)) DEALLOCATE(ixsps)
6541 ENDIF
6542
6543 IF(numelx>0) THEN
6544
6545 k1=6*numelx
6546 k2=k1+numelx
6547 k3=k2+numelx+1
6548 k4=k3+numelx*2
6549 k5=k4+numelx*4
6550 k6=k5+numelx
6551
6552
6553 iwork = 0
6554 inum => iwork(1:k1)
6555 itr1 => iwork(k1+1:k2)
6556 eadd => iwork(k2+1:k3)
6557 index1 => iwork(k3+1:k4)
6558 itri1 => iwork(k4+1:k5)
6559 xep => iwork(k5+1:k6)
6560
6562 1
kxx, geo, inum, itr1,
6563 2 eadd, index1, itri1, ipartx,
6565 4 cep(off), xep,
ipm)
6566
6567
6568
6569
6570 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6571 ALLOCATE(dd_tmp2(idx-1))
6572 DO i = 1, idx-1
6573 dd_tmp2(i)=dd_tmp(i)
6574 END DO
6575 DEALLOCATE(dd_tmp)
6576 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6577 DO i = 1, idx-1
6578 dd_tmp(i)=dd_tmp2(i)
6579 END DO
6580 DEALLOCATE(dd_tmp2)
6581 END IF
6582
6584 1
kxx ,ipargtmp ,geo ,eadd ,
6585 2 nd ,dd_tmp ,idx ,lb_max ,inum ,
6586 3 index1 ,cep(off) ,ipartx ,itr1 ,
igrsurf ,
6588 off = off + numelx
6589 ENDIF
6591
6592
6593
6614
6615
6616 CALL trace_in1(err_msg,len_trim(err_msg))
6617 IF(numelig3d>0) THEN
6618
6619 k1=(nixig3d+1)*numelig3d
6620 k2=k1+numelig3d
6621 k3=k2+numelig3d+1
6622 k4=k3+numelig3d*2
6623 k5=k4+numelig3d*4
6624 k6=k5+numelig3d
6625
6626 iwork = 0
6627 inum => iwork(1:k1)
6628 itr1 => iwork(k1+1:k2)
6629 eadd => iwork(k2+1:k3)
6630 index1 => iwork(k3+1:k4)
6631 itri1 => iwork(k4+1:k5)
6632 xep => iwork(k5+1:k6)
6633
6635 1
kxig3d ,geo ,inum ,itr1 ,eadd ,
6636 2 index1 ,itri1 ,ipartig3d ,nd ,
igrsurf ,
6637 3 cep(off) ,xep ,
igeo ,
6639
6640
6641
6642
6643 IF(idx+nd*(nspmd+1)>ldd_iad)THEN
6644 ALLOCATE(dd_tmp2(idx-1))
6645 DO i = 1, idx-1
6646 dd_tmp2(i)=dd_tmp(i)
6647 END DO
6648 DEALLOCATE(dd_tmp)
6649 ALLOCATE(dd_tmp(idx+nd*(nspmd+1)))
6650 DO i = 1, idx-1
6651 dd_tmp(i)=dd_tmp2(i)
6652 END DO
6653 DEALLOCATE(dd_tmp2)
6654 END IF
6655
6657 1
kxig3d ,ipargtmp ,geo ,eadd ,nd ,
6658 2 dd_tmp ,idx ,lb_max ,inum ,index1 ,
6659 3 cep(off) ,ipartig3d ,itr1 ,
igrsurf ,
6661 5 pm ,
nige ,knotlocel, mat_elem%MAT_PARAM)
6662 off = off + numelig3d
6663 ENDIF
6664 DEALLOCATE(iwork)
6666
6667
6668
6669
6670 err_msg='REFERENCE METRICS'
6671 err_category='REFERENCE METRICS'
6672 CALL trace_in1(err_msg,len_trim(err_msg))
6673
6674 xyzref = x
6675
6676 IF(iddlevel==0)THEN
6677
6678 IF(nxref > 0 .OR. neref > 0 .OR. irefsta > 0) THEN
6679 ALLOCATE(xrefc(4,3,numelc))
6680 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6681 . msgtype=msgerror,c1='XREFC')
6682 ALLOCATE(xreftg(3,3,numeltg))
6683 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6684 . msgtype=msgerror,c1='XREFTG')
6685 ALLOCATE(xrefs(8,3,numels8))
6686 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6687 . msgtype=msgerror,c1='XREFS')
6688 ALLOCATE(tagxref(numnod))
6689 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6690 . msgtype=msgerror,c1='TAGXREF')
6691 ALLOCATE(tagrefsta(numnod))
6692 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6693 . msgtype=msgerror,c1='TAGREFSTA')
6694 ELSE
6695 ALLOCATE(xrefc(1,1,1))
6696 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6697 . msgtype=msgerror,c1='XREFC')
6698 ALLOCATE(xreftg(1,1,1))
6699 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6700 . msgtype=msgerror,c1='XREFTG')
6701 ALLOCATE(xrefs(1,1,1))
6702 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6703 . msgtype=msgerror,c1='XREFS')
6704 ALLOCATE(tagxref(1))
6705 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6706 . msgtype=msgerror,c1='TAGXREF')
6707 ALLOCATE(tagrefsta(1))
6708 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6709 . msgtype=msgerror,c1='TAGREFSTA')
6710 ENDIF
6711 ENDIF
6712
6713 tagxref = 0
6714 tagrefsta = 0
6715
6716 IF(nxref > 0) THEN
6717 WRITE(istdo,'(A)')' .. REFERENCE STATE (XREF)'
6720 . xrefc ,xreftg ,xrefs ,rtrans ,lsubmodel ,
6721 . tagxref ,iddlevel ,eani ,
ipm ,
igeo )
6722 ENDIF
6723 IF(irefsta > 0) THEN
6724 WRITE(istdo,'(A)')' .. REFERENCE STATE (REFSTA)'
6726 . xyzref ,xrefc ,xreftg ,xrefs ,tagxref ,
6727 . iddlevel,tagrefsta )
6728
6729 IF(iddlevel==0 .AND. ((ninter > 0).OR.(isms == 1))) THEN
6730 rewind(iin6)
6731 ELSE
6732 IF(ipid /= 0) CLOSE(iin6)
6733 irefsta = 0
6734
6735 nxref = 1
6736 ENDIF
6737 ENDIF
6738 IF(neref > 0 ) THEN
6739 WRITE(istdo,'(A)')' .. REFERENCE STATE (EREF)'
6742 . xreftg ,xrefs ,lsubmodel,iddlevel,
itab ,
6743 . tagxref ,tagrefsta )
6744
6745 IF(iddlevel ==1 .OR. ((ninter == 0).AND.(isms == 0))) nxref = 1
6746 ENDIF
6747
6748
6749 multi_fvm%IS_ASSOCIATED_TO_A_PART = .false.
6750 DO ng=1,ngroup
6751 mlw = ipargtmp(1,ng)
6752 IF(mlw == 151)THEN
6753 multi_fvm%IS_ASSOCIATED_TO_A_PART = .true.
6754 EXIT
6755 ENDIF
6756 ENDDO
6757
6758
6759 multi_fvm%ARE_ALL_PARTS_151 = .true.
6760 nb_euler_groups = 0
6761 DO ng=1,ngroup
6762 mlw = ipargtmp(1,ng)
6763 is_euler = ipargtmp(11,ng)
6764 IF(is_euler == 1 ) nb_euler_groups=nb_euler_groups+1
6765 IF(mlw /= 151 .AND. is_euler == 1)THEN
6766 multi_fvm%ARE_ALL_PARTS_151 = .false.
6767 EXIT
6768 ENDIF
6769 ENDDO
6770 IF(nb_euler_groups == 0)multi_fvm%ARE_ALL_PARTS_151 = .false.
6771
6772
6773 siparg = nparg*ngroup
6775 ALLOCATE(
iparg(siparg) ,stat=stat)
6776 DO j=1,nparg
6777 DO i=1,ngroup
6778 iparg((i-1)*nparg + j) = ipargtmp(j,i)
6779 ENDDO
6780 ENDDO
6781 DEALLOCATE(ipargtmp)
6782
6783
6784 IF(isms/=0)THEN
6785 DO n=1,ngroup
6786 iparg(nparg*(n-1)+52)=1
6787 END DO
6788 END IF
6789 nbr_gpmp = ngroup
6790
6791
6792
6793
6794
6795 call fractal_elem_renum(fail_fractal,numelc,numeltg)
6796
6797
6798
6799
6800 if (iddlevel==1) call brokmann_elem_renum(fail_brokmann,numelc,numeltg)
6801
6802
6803
6804 IF(ALLOCATED(group_param_tab)) DEALLOCATE(group_param_tab)
6805 ALLOCATE(group_param_tab(ngroup) ,stat=stat)
6806
6808 .
ipm ,
igeo ,pm ,geo ,bufmat )
6809
6811
6812
6813
6814 IF(numels10>0) THEN
6815 IF(ALLOCATED(itagnd)) DEALLOCATE(itagnd)
6816 ALLOCATE(itagnd(numnod),stat=stat)
6817 itagnd(1:numnod)=0
6819 IF(ns10e>0) THEN
6820 IF(ALLOCATED(icnds10)) DEALLOCATE(icnds10)
6821 ALLOCATE(icnds10(3*ns10e),stat=stat)
6822 icnds10(1:3*ns10e)=0
6823 itagnd(1:numnod)=0
6825 IF(ipari0/=0)
CALL reord_icnd(icnds10, itagnd)
6827 . itagnd,icnds10,
itab,ipri,numnod,ns10e)
6828 END IF
6829 ELSE
6830 IF(ALLOCATED(itagnd)) DEALLOCATE(itagnd)
6831 ALLOCATE(itagnd(0),stat=stat)
6832 END IF
6833
6834
6835
6836
6837
6838 err_msg='DOMAIN DECOMPOSITION ARRAYS'
6839 err_category='DOMAIN DECOMPOSITION'
6840 CALL trace_in1(err_msg,len_trim(err_msg))
6841 sdd_iad = (nspmd+1)*nspgroup
6842 ALLOCATE(
dd_iad(sdd_iad) ,stat=stat)
6847 3 x ,dd_tmp ,ixs10 ,ixs20 ,
6850
6851 DEALLOCATE(dd_tmp)
6853
6854
6855
6856 err_msg='MULTIDOMAINS'
6857 err_category='MULTIDOMAINS'
6858 IF((nsubdom>0).AND.(iddom==0).AND.(flg_r2r_err==0)) THEN
6859 WRITE(istdo,'(A)')' .. MULTIDOMAINS DOMDEC SYNCHRONIZATION '
6861 ENDIF
6862
6863
6864
6865 err_msg='ELEMENT BUFFER ALLOCATION'
6866 err_category='INTERNAL'
6867 CALL trace_in1(err_msg,len_trim(err_msg))
6868 selbuf = lbufel
6869 ALLOCATE(elbuf(selbuf) ,stat=stat)
6870 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6871 . msgtype=msgerror,
6872 . c1='ELBUF')
6873 elbuf = zero
6875
6876
6877
6878 err_msg='GRAVITY'
6879 err_category='GRAVITY'
6880 CALL trace_in1(err_msg,len_trim(err_msg))
6881
6883 sigrv = nigrv*ngrav
6884 slgrav = numgrav
6885 IF(iddlevel==0)THEN
6886 ALLOCATE(
igrv(sigrv) ,stat=stat)
6887 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6888 . msgtype=msgerror,
6889 . c1='IGRV')
6890 ALLOCATE(
lgrav(slgrav) ,stat=stat)
6891 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6892 . msgtype=msgerror,
6893 . c1='LGRAV')
6894 END IF
6898 . itagnd ,lsubmodel)
6900
6901
6902
6903 err_msg='INIGRAV'
6904 err_category='GRAVITY'
6905 CALL trace_in1(err_msg,len_trim(err_msg))
6906 IF(ninigrav > 0) sinigrav = ninigrav
6907 IF(iddlevel == 0) THEN
6908 ALLOCATE(
inigrv(04,sinigrav) ,stat=stat)
6909 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6910 . msgtype=msgerror,
6911 . c1='INIGRV')
6912 ALLOCATE(linigrav(11,sinigrav) ,stat=stat)
6913 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
6914 . msgtype=msgerror,
6915 . c1='LINIGRAV')
6916 END IF
6917 IF(ninigrav > 0) THEN
6918 IF(iddlevel == 0) THEN
6920 WRITE(istdo,'(A)') ' .. INITIAL GRAVITY LOADING'
6923 . itagnd ,
igrsurf ,tf ,bufsf ,lsubmodel)
6924 ENDIF
6925 ENDIF
6927
6928
6929
6930 err_msg = 'INIMAP1D'
6931 err_category= 'INITIALIZATION'
6932 CALL trace_in1(err_msg,len_trim(err_msg))
6933
6934 IF(iddlevel==0 .AND. ninimap1d+ninimap2d>0)WRITE(istdo,'(A)')titre(54)
6935
6936 IF(iddlevel==0)THEN
6937 ALLOCATE(inimap1d(ninimap1d))
6938 IF(ninimap1d > 0) THEN
6941 IF(.NOT. multi_fvm%IS_USED) THEN
6942 DO kk = 1, ninimap1d
6943 ALLOCATE(inimap1d(kk)%TAGNODE(numnod))
6944 inimap1d(kk)%TAGNODE(1:numnod) = 0
6945 ENDDO
6946 ENDIF
6947 ENDIF
6948 ENDIF
6950
6951
6952
6953 err_msg = 'INIMAP2D'
6954 err_category= 'INITIALIZATION'
6955 CALL trace_in1(err_msg,len_trim(err_msg))
6956 IF(iddlevel==0)THEN
6957 ALLOCATE(inimap2d(ninimap2d))
6958 IF(ninimap2d > 0) THEN
6961 IF(.NOT. multi_fvm%IS_USED) THEN
6962 DO kk = 1, ninimap2d
6963 ALLOCATE(inimap2d(kk)%TAGNODE(numnod))
6964 inimap2d(kk)%TAGNODE(1:numnod) = 0
6965 ENDDO
6966 ENDIF
6967 ENDIF
6968 ENDIF
6970
6971
6972
6973
6974 err_msg='LOAD FIELDS'
6975 err_category='LOAD FIELDS'
6976 CALL trace_in1(err_msg,len_trim(err_msg))
6977 IF(iddlevel == 0)THEN
6978
6979
6980 ALLOCATE(
icfield(sicfield) ,stat=stat)
6981 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'ICFIELD')
6982 ALLOCATE(
lcfield(slcfield) ,stat=stat)
6983 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LCFIELD')
6984 ALLOCATE(cfield(scfield) ,stat=stat)
6985 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'CFIELD')
6986
6989 IF(ALLOCATED(cfield )) cfield(:) = zero
6990
6991 IF(nloadc/=0)THEN
6994 . lsubmodel)
6995 END IF
6996
6997
6998 ALLOCATE(
iloadp(siloadp) ,stat=stat)
6999 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'ILOADP')
7000 ALLOCATE(
lloadp(slloadp) ,stat=stat)
7001 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LLOADP')
7002 ALLOCATE(loadp(sloadp) ,stat=stat)
7003 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LOADP')
7005 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'INTERLOADP')
7006 ALLOCATE(intgaploadp(nintloadp) ,stat=stat)
7007 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'INTGAPLOADP')
7008
7009 s_loadpinter = 0
7010 IF(nintloadp > 0) THEN
7011 s_loadpinter = ninter*nloadp_hyd
7013 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'KLOADPINTER')
7014 ALLOCATE(
loadpinter(s_loadpinter) ,stat=stat)
7015 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'LOADPINTER')
7016 ALLOCATE(dgapint(ninter) ,stat=stat)
7017 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'DGAPINT')
7018 ALLOCATE(dgaploadint(s_loadpinter) ,stat=stat)
7019 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'DGAPLOADINT')
7020 ELSE
7023 ALLOCATE(dgapint(0))
7024 ALLOCATE(dgaploadint(0))
7025 ENDIF
7026
7027
7030 IF(ALLOCATED(loadp )) loadp(:) = zero
7034 IF(ALLOCATED( intgaploadp )) intgaploadp(:)=zero
7035 IF(ALLOCATED( dgapint )) dgapint(:)=zero
7036 IF(ALLOCATED( dgaploadint )) dgaploadint(:)=zero
7037
7038 numloadp=0
7039 nintloadp = 0
7040 nintloadp21 = 0
7041 IF(nloadp_f/=0)THEN
7044 END IF
7045 IF(pblast%NLOADP_B/=0)THEN
7049 . lsubmodel,rtrans)
7050 ENDIF
7051 IF(nloadp_hyd/=0)THEN
7056 . dgaploadint,s_loadpinter,pblast)
7057
7058 END IF
7059
7061 ENDIF
7063
7064
7065
7066 err_msg='RBE2'
7067 err_category='RBE2'
7068 CALL trace_in1(err_msg,len_trim(err_msg))
7070 IF(iddlevel==0)THEN
7071 ALLOCATE(
irbe2(sirbe2) ,stat=stat)
7072 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7073 . msgtype=msgerror,
7074 . c1='IRBE2')
7075 END IF
7076 IF(iddlevel==0)THEN
7077 ALLOCATE(
lrbe2(slrbe2) ,stat=stat)
7078 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7079 . msgtype=msgerror,
7080 . c1='LRBE2')
7081 END IF
7082 IF(sirbe2 > 0) THEN
7087 .
iskwn ,d ,iddlevel ,
nom_opt(lnopt1*inom_opt(13)+1),itagnd,
7088 . icnds10 ,lsubmodel)
7089 ENDIF
7090
7091
7093 DO i=1,ngrnod
7095 ENDDO
7096
7097
7098
7099
7101 err_msg='RBE3'
7102 err_category='RBE3'
7103 CALL trace_in1(err_msg,len_trim(err_msg))
7105 lxintd = 0
7106 slrbe3 = 2*slrbe3
7107 sfrbe3 = (3+1)*slrbe3
7108 IF(iddlevel==0)THEN
7109 ALLOCATE(
irbe3(sirbe3) ,stat=stat)
7110 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7111 . msgtype=msgerror,
7112 . c1='IRBE3')
7113 ALLOCATE(
lrbe3(slrbe3), frbe3(sfrbe3) ,stat=stat)
7114 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7115 . msgtype=msgerror,
7116 . c1='LRBE3')
7117 END IF
7118 IF(sirbe3 > 0) THEN
7121 frbe3 = zero
7124 .
nom_opt(lnopt1*inom_opt(14)+1),itagnd ,
7125 . grnod_uid,
unitab,lsubmodel)
7126 ENDIF
7127
7129
7131
7132
7133
7134
7135 dynain_data%DYNAIN_CHECK = 0
7137
7138
7139
7140
7142
7143
7144
7145 istr_24 = 0
7147 IF (isigi < 0) istr_24=1
7148
7149
7150
7151 err_msg='ELEMENTS DEACTIVATION'
7152 err_category='ELEMENTS DEACTIVATION'
7153 CALL trace_in1(err_msg,len_trim(err_msg))
7154 siactiv = lactiv*nactiv
7155 IF(iddlevel==0)THEN
7156 ALLOCATE(
iactiv(siactiv), factiv(lractiv*nactiv) ,stat=stat)
7157 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7158 . msgtype=msgerror, c1='IACTIV')
7159 END IF
7164
7165 sibmpc = nummpc + lmpc*3
7166 IF(iddlevel==0)THEN
7167 ALLOCATE(
ibmpc(sibmpc) ,stat=stat)
7168 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7169 . msgtype=msgerror,
7170 . c1='IBMPC')
7171 END IF
7173 IF(lmpc>0) THEN
7174 ibmpc2 =>
ibmpc(nummpc+1:nummpc+lmpc)
7175 ibmpc3 =>
ibmpc(nummpc+lmpc+1:nummpc+lmpc*2)
7176 ibmpc4 =>
ibmpc(nummpc+lmpc*2+1:sibmpc)
7177 ELSE
7181 END IF
7182
7183 skinet = numnod
7184 IF(iddlevel==0)THEN
7185 ALLOCATE(
kinet(skinet) ,stat=stat)
7186 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7187 . msgtype=msgerror,
7188 . c1='KINET')
7189 END IF
7191
7192 sipari = npari*ninter
7193 IF(iddlevel==0)THEN
7194 ALLOCATE(
ipari(sipari) ,stat=stat)
7195 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7196 . msgtype=msgerror,
7197 . c1='IPARI')
7198 END IF
7201
7202
7203
7204 err_msg='SOLID ELEMENTS FACES'
7205 err_category='SOLID ELEMENTS FACES'
7206 CALL trace_in1(err_msg,len_trim(err_msg))
7207 ALLOCATE(fastag(numels) ,stat=stat)
7208 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7209 . msgtype=msgerror,
7210 . c1='FASTAG')
7212 sfasolfr = 2*nfasolfr
7213 IF(iddlevel==0)THEN
7214 ALLOCATE(
fasolfr(sfasolfr),stat=stat)
7215 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7216 . msgtype=msgerror,
7217 . c1='FASOLFR')
7218 END IF
7220 DEALLOCATE(fastag)
7222
7223
7224
7225 err_msg='QUAD ELEMENTS SEGS'
7226 err_category='QUAD ELEMENTS SEGS'
7227 CALL trace_in1(err_msg,len_trim(err_msg))
7228 ALLOCATE(segtag(4*numelq) ,stat=stat)
7229 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7230 . msgtype=msgerror,
7231 . c1='SEGTAG')
7232 segtag(1:4*numelq) = 0
7234 ssegquadfr = 2*nsegquadfr
7235 IF(iddlevel==0)THEN
7236 ALLOCATE(
segquadfr(ssegquadfr),stat=stat)
7237 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7238 . msgtype=msgerror,
7239 . c1='SEGTAG')
7240 END IF
7242 DEALLOCATE(segtag)
7244
7245
7246
7247 err_msg='MPCS 2'
7248 err_category='MPCS'
7249 CALL trace_in1(err_msg,len_trim(err_msg))
7251 1 rbmpc ,
ibmpc ,ibmpc2 ,ibmpc3 ,ibmpc4 ,
7253 3 lag_nhf ,d ,ikine1lag,
7254 4
nom_opt(lnopt1*inom_opt(17)+1),itagnd,
7257
7258
7259
7260 IF(ALLOCATED(tagprt_fric)) DEALLOCATE(tagprt_fric)
7261 ALLOCATE(tagprt_fric(npart),stat=stat)
7262 tagprt_fric(1:npart) = 0
7263
7264
7265
7266
7267 iorthfricmax = 0
7268 npfricorth = 0
7269 IF(ninterfric > 0) THEN
7270
7271 IF(iddlevel == 0) ALLOCATE(intbuf_fric_tab(ninterfric), stat=stat)
7272
7273
7274 ALLOCATE(tabcoupleparts_fric_tmp(1),stat=stat)
7275 ALLOCATE(tabcoef_fric_tmp(1),stat=stat)
7276 ALLOCATE(ifricorth_tmp(1),stat=stat)
7277 ALLOCATE(lengrpf(npart),stat=stat)
7278 lengrpf(1:npart) = 0
7279
7280 leng = 0
7281 DO n=1,ngrpart
7283 ENDDO
7284
7285 flagf = 0
7286 nsetfrictot = 0
7287 coefslen = 0
7288 ngrpf = 0
7289 nsetmax = 0
7290
7293 2 tabcoupleparts_fric_tmp ,tabcoef_fric_tmp ,intbuf_fric_tab,nsetfrictot ,
7294 3 flagf ,coefslen , iorthfricmax ,ifricorth_tmp ,ngrpf ,
7295 4 lengrpf ,leng , nsetmax ,lsubmodel )
7296
7297 DEALLOCATE(tabcoupleparts_fric_tmp)
7298 DEALLOCATE(tabcoef_fric_tmp)
7299 DEALLOCATE(ifricorth_tmp)
7300
7301
7302 ALLOCATE(tabcoupleparts_fric_tmp(2*ninterfric*nsetmax),stat=stat)
7303 coefslen = ninterfric*(2*nsetmax+1)
7304 ALLOCATE(tabcoef_fric_tmp(8*coefslen),stat=stat)
7305 tabcoupleparts_fric_tmp(1:2*ninterfric*nsetmax) = 0
7306 tabcoef_fric_tmp(1:8*coefslen) = zero
7307
7308 ALLOCATE(ifricorth_tmp(ninterfric*nsetmax),stat=stat)
7309 ifricorth_tmp(1:ninterfric*nsetmax) = 0
7310
7311 flagf = 1
7312 nsetfrictot = 0
7313 coefslen = 0
7314 nsetmax = 0
7315
7318 2 tabcoupleparts_fric_tmp ,tabcoef_fric_tmp ,intbuf_fric_tab,nsetfrictot ,
7319 3 flagf ,coefslen , iorthfricmax ,ifricorth_tmp ,ngrpf ,
7320 4 lengrpf ,leng , nsetmax , lsubmodel )
7321
7322
7323
7324 coefslen = ninterfric*(2*nsetmax+1)
7325 ALLOCATE(nsetinit(ninterfric),stat=stat)
7326 ALLOCATE(tabparts_fric_tmp(2*ninterfric*nsetmax),stat=stat)
7327 nsetinit(1:ninterfric) = 0
7328 tabparts_fric_tmp(1:2*ninterfric*nsetmax) = 0
7329
7331 . tabcoupleparts_fric_tmp ,tabcoef_fric_tmp ,intbuf_fric_tab ,
7332 . tabparts_fric_tmp,nsetfrictot,nsetinit,iorthfricmax,ifricorth_tmp,
7333 . nsetmax )
7334
7335
7336
7338
7339
7341 . tabcoupleparts_fric_tmp ,tabcoef_fric_tmp,tabparts_fric_tmp ,
7342 . nsetinit ,ifricorth_tmp , intbuf_fric_tab )
7343
7344 DEALLOCATE(tabcoupleparts_fric_tmp)
7345 DEALLOCATE(tabcoef_fric_tmp)
7346 DEALLOCATE(tabparts_fric_tmp )
7347
7348 DEALLOCATE( nsetinit )
7349 DEALLOCATE(ifricorth_tmp)
7350 DEALLOCATE(lengrpf )
7351
7352
7353
7354 IF(iorthfricmax > 0) THEN
7355
7356 flagf = 0
7357 npfricorth = 0
7358
7359 IF(.NOT.ALLOCATED(pfricorth))ALLOCATE(pfricorth(npart),stat=stat)
7360 IF(.NOT.ALLOCATED(irepforth))ALLOCATE(irepforth(1),stat=stat)
7361 IF(.NOT.ALLOCATED(vforth))ALLOCATE(vforth(1),stat=stat)
7362 IF(.NOT.ALLOCATED(phiforth))ALLOCATE(phiforth(1),stat=stat)
7363
7364 pfricorth(1:npart) = 0
7365
7368 2 irepforth ,
iskwn ,phiforth ,vforth ,skew ,
7369 3 flagf ,tagprt_fric ,rtrans ,lsubmodel ,
unitab )
7370
7371 DEALLOCATE(irepforth,vforth,phiforth)
7372
7373 ALLOCATE(irepforth(npfricorth),stat=stat)
7374 ALLOCATE(vforth(3*npfricorth),stat=stat)
7375 ALLOCATE(phiforth(npfricorth),stat=stat)
7376
7377 irepforth(1:npfricorth) = 0
7378 vforth(1:3*npfricorth) = zero
7379 phiforth(1:npfricorth) = zero
7380
7381 flagf = 1
7384 2 irepforth ,
iskwn ,phiforth ,vforth ,skew ,
7385 3 flagf ,tagprt_fric ,rtrans ,lsubmodel ,
unitab )
7386 ENDIF
7387
7388 ELSEIF(iddlevel == 0) THEN
7389 ALLOCATE(intbuf_fric_tab(0))
7390 ENDIF
7391 IF(.NOT.ALLOCATED(pfricorth))ALLOCATE(pfricorth(0))
7392 IF(.NOT.ALLOCATED(irepforth))ALLOCATE(irepforth(1))
7393 IF(.NOT.ALLOCATED(vforth)) ALLOCATE(vforth(1))
7394 IF(.NOT.ALLOCATED(phiforth)) ALLOCATE(phiforth(1))
7395
7396
7397
7398
7399
7400 CALL ale_connectivity%ALE_CONNECTIVITY_INIT()
7401 IF(ale_connectivity%has_ne_connect) THEN
7402 CALL ale_connectivity%ALE_COMPUTE_CONNECTIVITY(numnod, numelq, numeltg, numels,
7403 . nixq, nixtg, nixs,
7405 ENDIF
7406 CALL ale_connectivity%ALE_COMPUTE_EE_CONNECTIVITY(pm,
igeo,
7407 . npropgi,numgeo, npropm, nummat , numnod, numelq, numeltg, numels, n2d,
7408 . iale , ieuler, glob_therm%ITHERM, ialelag,detonators%IS_SHADOWING_REQUIRED,
7409 . nixq , nixtg , nixs ,
7411
7412 IF(nsubdom > 0) THEN
7413
7414 IF(ale_euler == 0) THEN
7415 iale = 0
7416 ieuler = 0
7417 ENDIF
7418 ENDIF
7419
7420
7421
7422
7423
7424
7425
7426 CALL chk_shell_offset(
7427 . ngroup, nparg,
iparg, npropg,
7428 . numgeo, geo, defaults%SHELL%IOFFSET)
7429 IF (defaults%SHELL%IOFFSET>0) THEN
7430
7431 IF (iddlevel == 0) THEN
7432 NULLIFY(x_c)
7433 IF (defaults%SHELL%IOFFSET==1) THEN
7434 ALLOCATE(itagoset(numelc+numeltg), stat=stat)
7435 ALLOCATE(xyz(3*numnod), stat=stat)
7436 ELSE
7437 ALLOCATE(itagoset(0), stat=stat)
7438 END IF
7439 END IF
7440
7441 NULLIFY(x_c)
7442 IF (defaults%SHELL%IOFFSET==1) THEN
7443 xyz(1:3*numnod) = x(1:3*numnod)
7444 x_c=>xyz
7445 ELSE
7446 x_c=>x
7447 END IF
7448
7449
7450 itagoset = 0
7451 CALL shell_offsetp(
7452 . ngroup, nparg,
iparg, npropg,
7453 . numgeo, geo, numelc, nixc,
7455 . numnod, x_c, thke, itagoset,
7456 . defaults%SHELL)
7457 ELSEIF (iddlevel == 0) THEN
7458 NULLIFY(x_c)
7459 x_c=>x
7460 END IF
7461
7462
7463
7464
7465 err_msg='INTERFACES'
7466 err_category='INTERFACES'
7467 CALL trace_in1(err_msg,len_trim(err_msg))
7468 nintstamp=0
7469 nmnt = 0
7470 interfaces%PARAMETERS%ISTIF_DT = 0
7471
7472 probint=half
7473 interfaces%PARAMETERS%INT25_EROSION_SOLID = 0
7474
7475 IF(ninter == 0.AND.ninterfric > 0 )THEN
7477 . msgtype=msgwarning,
7478 . anmode=aninfo_blind_1)
7479 ENDIF
7480
7481 IF(ninter > 0)THEN
7482 IF(iddlevel == 0) THEN
7483 ALLOCATE(xfiltr(ninter) ,stat=stat)
7484 ALLOCATE(stfac(ninter) ,stat=stat)
7485 ALLOCATE(fric_p(10*ninter) ,stat=stat)
7486 ALLOCATE(
i2rupt(6*ninter) ,stat=stat)
7487 ALLOCATE(areasl(ninter) ,stat=stat)
7488 ALLOCATE(frigap(nparir*ninter),stat=stat)
7489 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7490 . msgtype=msgerror,
7491 . c1='XFILTR')
7492 END IF
7493 xfiltr = zero
7494 stfac = zero
7495 fric_p = zero
7496 frigap = zero
7498 areasl = zero
7499
7500 IF(iddlevel == 0)
CALL startime(10,1)
7501 IF(iddlevel == 1)
CALL startime(11,1)
7502
7503 WRITE(istdo,'(A)')titre(38)
7504 IF(nintsub/=0)THEN
7506 END IF
7507 ids = 117
7508 i = 0
7509
7510
7511 nsn_multi_connec = 0
7512 ALLOCATE(t2_nb_connec(numnod))
7513 t2_nb_connec(1:numnod) = 0
7514
7515
7516
7517 ninter25 = 0
7523 5 def_inter ,npc1 ,sensors ,multi_fvm ,
nom_opt(lnopt1*inom_opt(29)+1),
7524 6 intbuf_fric_tab ,lsubmodel,tf ,npts ,npari ,
7525 7
kloadpinter ,dgapint ,interfaces ,sitab ,nparir ,
7526 8 sitabm1 ,siskwn ,liskn ,snpc ,snpc1 ,
7527 9 glob_therm%ITHERM_FE,glob_therm%INTHEAT)
7528
7529 IF(.NOT. ALLOCATED(ale_connectivity%NALE)) ALLOCATE(ale_connectivity%NALE(0))
7530
7531 IF(ninter > 0) THEN
7532 ALLOCATE(list_nin25(ninter))
7533 list_nin25(1:ninter) = 0
7534 ENDIF
7535 IF(ninter25 >0.AND.numels > 0) THEN
7536 ALLOCATE(flag_elem_inter25(ninter25,numels))
7537 flag_elem_inter25(1:ninter25,1:numels) = 0
7538 ELSE
7539 ALLOCATE(flag_elem_inter25(0,0))
7540 ENDIF
7541
7545 .
npc ,probint ,lag_ncf ,
7546 . lag_nkf ,lag_ncl ,lag_nkl ,lag_nhf ,maxrtm ,
7548 . xfiltr ,stfac ,fric_p ,frigap ,
7552 . ixs16 ,ixs20 ,def_inter ,maxnsne ,
7553 . npc1 ,multi_fvm ,
nom_opt(lnopt1*inom_opt(29)+1),intbuf_fric_tab,
7555 . t2_nb_connec,iddlevel ,ale_connectivity%NALE ,interfaces ,snpc1 ,
7556 . flag_elem_inter25 ,list_nin25)
7557
7558
7559 flag_allocate = 1
7560
7561 proc_bid = 0
7562
7563 IF(iddlevel == 0) THEN
7564
7565
7566
7567 ALLOCATE(intbuf_tab(ninter), stat=stat)
7568
7569
7570
7571
7572
7574 . i11flag, flag_allocate, proc_bid ,intbuf_fric_tab)
7575
7576
7578 ALLOCATE(intert8(nspmd,nbt8))
7579 DO p = 1,nspmd
7580 DO i = 1,nbt8
7581 ALLOCATE(intert8(p,i)%BUFFER(nspmd))
7582 DO j=1,nspmd
7583 intert8(p,i)%BUFFER(j)%NBMAIN = -1
7584 intert8(p,i)%BUFFER(j)%NBSECND_TOT = 0
7585 ENDDO
7586 ENDDO
7587 ENDDO
7588
7589
7591
7592 END IF
7593
7594
7595
7596 IF(nintstamp/=0)THEN
7597 IF(iddlevel == 0) THEN
7598 ALLOCATE(
intstamp(nintstamp) ,stat=stat)
7599 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7600 . msgtype=msgerror,
7601 . c1='INTSTAMP')
7603 END IF
7604 ELSE
7605 IF(iddlevel == 0) THEN
7607 ENDIF
7608 END IF
7609
7612 . fric_p ,frigap ,
i2rupt ,areasl ,lixint ,
7613 . x ,ninter ,
ixs ,
nom_opt(lnopt1*inom_opt(3)+1),
7616 . ixs16 ,ixs20 ,
nige ,rige ,xige ,
7617 . vige ,
igrbric ,multi_fvm,ale_connectivity%NALE ,
igeo ,
7618 . interfaces,s_nod2els,s_nod2eltg,flag_elem_inter25 ,list_nin25)
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628 ids = 60
7629
7630 IF(nintsub/=0)THEN
7634 . intbuf_tab,maxrtms ,
igrslin ,maxnsne)
7635 ENDIF
7636
7637 IF(iddlevel == 0) THEN
7638 ALLOCATE(inscr(ninter) ,stat=stat)
7639 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7640 . msgtype=msgerror,
7641 . c1='INSCR')
7642
7643 ENDIF
7644
7646
7647 IF(iddlevel == 0) THEN
7648
7649 DO i=1,ninter
7650 ALLOCATE(inscr(i)%WA(inscr(i)%SINSCR) ,stat=stat)
7651 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7652 . msgtype=msgerror,
7653 . c1='INSCR')
7654 inscr(i)%WA = 0
7655 ENDDO
7656 ELSE
7657 DO i=1,ninter
7658 inscr(i)%WA = 0
7659 ENDDO
7660 END IF
7662
7663 IF(iddlevel == 0)
CALL stoptime(10,1)
7664 IF(iddlevel == 1)
CALL stoptime(11,1)
7665
7666 WRITE(istdo,'(A)')titre(68)
7667
7668 aux =
max( numnod , numelt+numelp+numelr+numeltg+numelc+100 ,
7669 . maxrtm+100 )
7670 ns_i7 = 2*numnod + 2002 + 4*aux
7671
7672 ns_i11 = 2002 + nmnt
7673 aux = 2002 + 8*maxrtms
7674 ns_i11 =
max(ns_i11,aux)
7675
7676
7677 aux =
max( numnod , maxrtm_t2+100 )
7678 ns_i2 = 2*numnod + 2002 + 4*aux
7679
7680 ifip=
max(ns_i7,ns_i11,
7681 . numnod+2+4*numelc+4*numeltg+8*numels
7682 . +2*numelt+2*numelp+2*numelr)
7683
7684 siwork =
max(ns_i7,ns_i11,numnod+2+4*numelc+4*numeltg+8*numels
7685 . + 2*numelt+2*numelp+2*numelr+16*numels10+ 2*(sixx-1)
7686 . + maxnsne,ns_i2)
7687
7688 srwork =
max(6000,numnod)
7689 ALLOCATE(iwork(siwork) ,stat=stat)
7690 ALLOCATE(rwork(srwork) ,stat=stat)
7691 iwork = 0
7692 rwork = zero
7693
7694 IF(lxintd>0.AND.nspmd>1) lixint = lixint + lxintd
7695
7696 inter_cand%S_IXINT_2 = lixint
7697 IF(iddlevel==0)THEN
7698 IF( ALLOCATED(inter_cand%IXINT) ) DEALLOCATE( inter_cand%IXINT )
7699 ALLOCATE(inter_cand%IXINT(inter_cand%S_IXINT_1,inter_cand%S_IXINT_2))
7700 ALLOCATE(xtmp(3*numnod) ,stat=stat)
7701 xtmp = d(1:3*numnod)
7702 ENDIF
7703 ifixin = ifip
7704 ifiend = ifixin
7705 nelemint = 0
7706 lixint = 0
7707
7708
7709 IF(.NOT.ALLOCATED(fillsol)) ALLOCATE(fillsol(numels),stat=stat)
7710 IF(stat/=0)
CALL ancmsg(msgid=268,anmode=aninfo,
7711 . msgtype=msgerror,
7712 . c1='FILLSOL')
7714
7715 IF(iddlevel == 0)
CALL startime(12,1)
7716 IF(iddlevel == 1)
CALL startime(13,1)
7717
7719 1 numnod,numels,ngrbric,
7722 5 multi_fvm%X_APPEND,multi_fvm%V_APPEND,multi_fvm%MASS_APPEND,multi_fvm%KINET_APPEND)
7723
7724
7725
7726
7727
7729
7732 3 iwork ,rwork ,
ixtg ,d ,
ixt ,
7733 4
ixp ,
ixr ,ale_connectivity ,nelemint ,iddlevel ,
7737 9 ipartc ,ipartg ,thke ,thk_part ,
nod2el1d ,
7738 a
knod2el1d ,ixs10 ,inter_cand ,frigap ,ixs16 ,
7739 b ixs20 ,
ipm ,
nom_opt(lnopt1*inom_opt(3)+1),iparts ,siskwn ,
7741 d intbuf_tab,fillsol ,stack ,iworksh ,nsnt ,
7743 f
segquadfr ,tagprt_fric,intbuf_fric_tab ,ipartt ,
7744 g ipartp ,ipartx ,ipartr ,nsn_multi_connec ,t2_nb_connec,
7745 h sicode ,
icode ,
iskew ,multi_fvm ,s_nod2els ,
7746 i sitab ,sitabm1 ,flag_elem_inter25 ,list_nin25 ,iresp )
7747 IF(iddlevel == 0)
CALL stoptime(12,1)
7748 IF(iddlevel == 1)
CALL stoptime(13,1)
7749
7750 idel_solid = 0
7751 DO i=1,ninter
7752 IF(
ipari(npari*(i-1)+7)==25.AND.
ipari(npari*(i-1)+100)>0)
THEN
7753 idel_solid = idel_solid + 1
7754 ENDIF
7755 ENDDO
7756 IF(idel_solid == 0) interfaces%PARAMETERS%INT25_EROSION_SOLID = 0
7757
7758 DEALLOCATE (flag_elem_inter25)
7759 DEALLOCATE (list_nin25)
7760
7761 DEALLOCATE (t2_nb_connec)
7762 DEALLOCATE (rwork)
7763 DEALLOCATE (iwork)
7764
7765 IF(iddlevel==1) THEN
7766 DEALLOCATE(xfiltr)
7767 DEALLOCATE(fric_p)
7768 DEALLOCATE(frigap)
7769 END IF
7770
7771 IF(lxintd>0.AND.nspmd>1)THEN
7772 IF(lixint+lxintd > inter_cand%S_IXINT_2)THEN
7774 ENDIF
7775
7778 ENDIF
7780
7781 IF(iddlevel==0)THEN
7782 d(1:3*numnod) = xtmp(1:3*numnod)
7783 DEALLOCATE(xtmp)
7784 END IF
7785
7786 ELSEIF(iddlevel == 0) THEN
7787
7788 sinscr = 0
7790
7791
7792
7793
7794 ALLOCATE(intbuf_tab(0), stat=stat)
7795
7796
7797 ENDIF
7798
7799
7800
7801
7802
7803 err_msg='RIGID WALLS'
7804 err_category='RIGID WALLS'
7805 CALL trace_in1(err_msg,len_trim(err_msg))
7806 snprw = nrwall*nnprw
7807 siwork = nrwall*numnod
7808 slprw = 0
7809 IF(iddlevel==0) THEN
7810 ALLOCATE(
nprw(snprw) ,stat=stat)
7811 END IF
7812 ALLOCATE(iwork(siwork) ,stat=stat)
7814 iwork = 0
7815
7816 srwbuf = nrwlp*nrwall
7817 srwsav = 0
7818 srwork = 3*numnod*nrwall+srwbuf
7819 ALLOCATE(rwork(srwork) ,stat=stat)
7820 rwork = zero
7821 nrwlag = 0
7822 sln_pen = 0
7823
7824 IF(nrwall > 0) THEN
7825 WRITE(istdo,'(A)')titre(39)
7827 1 rwork ,
nprw ,iwork ,slprw ,ms ,
7830 4 srwbuf ,imerge ,
unitab ,
7831 5 ikine1lag,iddlevel ,lsubmodel ,rtrans ,
7832 6
nom_opt(lnopt1*inom_opt(5)+1),itagnd ,sln_pen )
7833 ENDIF
7834
7835
7836 IF(iddlevel==0) THEN
7837 ALLOCATE(
lprw(slprw) ,stat=stat)
7838 CALL my_alloc(rwstif_pen,sln_pen)
7839 rwstif_pen = zero
7840 END IF
7841 lprw = iwork(1:slprw)
7842 DEALLOCATE(iwork)
7843 IF(iddlevel==0) THEN
7844 ALLOCATE(rwbuf(srwbuf) ,stat=stat)
7845 IF(stat /= 0) THEN
7847 . msgtype=msgerror,
7848 . anmode=anstop,
7849 . c1='RWBUF')
7850 ENDIF
7851 END IF
7852 rwbuf = rwork(1:srwbuf)
7853 DEALLOCATE(rwork)
7854 IF(ALLOCATED(rwsav)) DEALLOCATE(rwsav)
7855 ALLOCATE(rwsav(srwsav) ,stat=stat)
7857
7858
7859
7860
7861 err_msg='ADDED MASSES'
7862 err_category='ADDED MASSES'
7863 CALL trace_in1(err_msg,len_trim(err_msg))
7864 IF(nodmas > 0)THEN
7865 WRITE(istdo,'(A)')titre(43)
7866 IF(iddlevel==0) THEN
7867 ALLOCATE(
ipmas(nodmas),stat=stat)
7868 ipmas(1:nodmas)%NPART = 0
7869 ipmas(1:nodmas)%WEIGHT_FLAG = 0
7870 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
7871 . msgtype=msgerror,
7872 . c1='IPMAS')
7873 ENDIF
7874
7875 flagg = 0
7876
7880 . x ,lsubmodel)
7881
7882 flagg = 1
7883
7887 . x ,lsubmodel)
7888
7889 IF(ns10e>0)
CALL addmast10(icnds10, ms )
7890
7891 ELSE
7892 IF(iddlevel==0) THEN
7894 ENDIF
7895 ENDIF
7897
7898
7899
7900 err_msg='RIGID ENTITIES'
7901 err_category='RIGID BODY'
7902 CALL trace_in1(err_msg,len_trim(err_msg))
7906 snpby = nnpby*nrbykin
7907 snpbyl = nnpby*nrbylag
7908 snrbody = snpby + snpbyl
7909 slrbody = slpby + slpbyl
7910 srby = nrby*nrbody
7911 IF(iddlevel==0) THEN
7912 IF(
ALLOCATED(
npby))
DEALLOCATE(
npby)
7913 IF(
ALLOCATED(
lpby))
DEALLOCATE(
lpby)
7914 IF(ALLOCATED(rby)) DEALLOCATE(rby)
7915 ALLOCATE(
npby(snrbody),stat=stat)
7916 ALLOCATE(
lpby(slrbody),stat=stat)
7917 ALLOCATE(rby(srby) ,stat=stat)
7918 END IF
7919 IF(nrbmerge > 0) THEN
7920 ALLOCATE(mgrby(nmgrby*smgrby),stat=stat)
7921 ELSE
7922 ALLOCATE(mgrby(0),stat=stat)
7923 ENDIF
7926 mgrby = 0
7927 rby = zero
7928 IF(snpby<snrbody) THEN
7930 ELSE
7932 END IF
7933 IF(slpby<slrbody) THEN
7935 ELSE
7937 END IF
7938 IF(nrby *nrbykin<srby) THEN
7939 rbyl => rby(nrby *nrbykin+1:srby)
7940 ELSE
7941 rbyl => rby
7942 END IF
7943
7944 IF(nrbody > 0) WRITE(istdo,'(A)')titre(41)
7945 IF(nrbykin > 0) THEN
7953 ENDIF
7954
7955
7956
7957 IF(nrbmerge > 0) THEN
7959 . mgrby,smgrby ,
npby,
lpby ,slrbody,
7962 . lsubmodel)
7963 ENDIF
7964
7965
7966
7967 IF(nrbykin > 0) THEN
7968 call hierarchy_rbody(nrbykin ,nnpby ,
npby ,slrbody ,
lpby ,
7969 . nrby ,rby ,numnod,iout )
7970 ENDIF
7971
7972
7973
7974 IF(nrbykin > 0) THEN
7977 2 d ,iddlevel,
nom_opt,slrbody)
7978 ENDIF
7979
7980
7981
7982 IF(nrbylag > 0) THEN
7985 ENDIF
7987
7988 IF(ninter > 0) THEN
7989
7990
7991 IF(nintstamp/=0)THEN
7992 err_msg='INTERFACES TYPE21'
7993 err_category='INTERFACES'
7994 CALL trace_in1(err_msg,len_trim(err_msg))
7995
7998
8000 END IF
8001
8002
8003
8004 err_category='INTERNAL'
8005 IF(iddlevel==0)THEN
8006 IF(iale+ieuler/=0)
8008 IF(numels/=0)
8010
8011 lag_ncf = lag_ncf0
8012 lag_nkf = lag_nkf0
8013 lag_nhf = lag_nhf0
8014 lag_ncl = lag_ncl0
8015 lag_nkl = lag_nkl0
8016 ENDIF
8017 ENDIF
8018
8019
8020
8021
8022
8023 i11flag = 1
8024
8026
8027
8028 IF((seani > 0).AND.(iddlevel==1)) eani = 0
8029
8030#ifdef DNC
8031
8032
8033
8034
8035 err_msg='MADYMO INTERFACED FEM'
8036 err_category='MADYMO INTERFACED FEM'
8037 CALL trace_in1(err_msg,len_trim(err_msg))
8038 IF(nexmad/=0) THEN
8039 siwork2 =
max(npart,numnod,2*numnod+numelc+numeltg+numels)
8040 siwork = npart+numnod+2*(numelc+numeltg+numels)
8041
8042 ALLOCATE(iwork(siwork+siwork2),stat=stat)
8043 iwork = 0
8044 IF(siwork<siwork+siwork2) THEN
8045 iwork2 => iwork(siwork+1:siwork+siwork2)
8046 ELSE
8047 iwork2 => iwork
8048 ENDIF
8049 ENDIF
8051 IF(nexmad/=0) THEN
8052 WRITE(istdo,'(A)')' .. FEM INTERFACED TO MADYMO'
8053 CALL hm_read_madymo_exfem(iwork(7*nconx+1),
itab ,
itabm1 ,
ipart ,ipartc,
8055 . iwork2 ,geo ,pm ,iwork ,
igeo ,
8057
8058 smadprt = nmadprt
8059 smadsh4 = nmadsh4
8060 smadsh3 = nmadsh3
8061 smadsol = nmadsol
8062 smadnod = nmadnod
8063
8064 smadfail= numelc+numeltg+numels
8065
8066 siextag = 2*nmadnod+nmadsh4+nmadsh3+nmadsol
8067
8068 siexmad = nmadprt+nmadsh4+nmadsh3+nmadsol+nmadnod
8069 . + numelc+numeltg+numels
8070
8071 siconx = 7*nconx+siexmad+siextag
8072 ALLOCATE(
iconx(siconx),stat=stat)
8074 DO i=1,7*nconx+siexmad
8076 ENDDO
8077 ELSE
8078 siconx = 7*nconx
8079 ALLOCATE(
iconx(siconx),stat=stat)
8080 IF(siconx > 0)THEN
8081 iconx(1:7*nconx)=iwork(1:7*nconx)
8082 ENDIF
8083 ENDIF
8084 IF(ALLOCATED(iwork)) DEALLOCATE(iwork)
8086#else
8087 IF(.NOT.
ALLOCATED(
iconx))
ALLOCATE(
iconx(0))
8088#endif
8089
8090
8091
8092 err_msg='FLEXIBLE BODIES'
8093 err_category='FLEXIBLE BODIES'
8094 CALL trace_in1(err_msg,len_trim(err_msg))
8095
8096
8097 IF(nfxbody == 0) THEN
8098 IF(iddlevel==0) THEN
8099 ALLOCATE(fxbnod(0),fxb_matrix(0),fxb_matrix_add(4,0))
8100 ALLOCATE(fxbglm(0), fxbcpm(0) , fxbrpm(0),
8101 . fxbcps(0) , fxblm(0) , fxbfls(0),
8102 . fxbdls(0), fxbdep(0), fxbvit(0),
8103 . fxbacc(0), fxbmod(0), fxbelm(0),
8104 . fxbsig(0), fxbgrvi(0), fxbgrvr(0))
8105 ENDIF
8106 ELSE IF(nfxbody>0) THEN
8107
8108 IF(iddlevel==1) THEN
8109
8110 lenglm=0
8111 lencp=0
8112 lenlm=0
8113 lenfls=0
8114 lendls=0
8115 lenvar=0
8116 lenrpm=0
8117 lenmcd=0
8118 lenelm=0
8119 lensig=0
8120 lengrvi=0
8121 lengrvr=0
8122 ENDIF
8123
8124 IF(iddlevel==0) THEN
8125 INQUIRE(iolength=rclen) flrec6
8126 OPEN(unit=ifxm,status='SCRATCH',
8127 . access='DIRECT',recl=rclen)
8128 OPEN(unit=ifxs,status='SCRATCH',
8129 . access='DIRECT',recl=rclen)
8130 WRITE(istdo,'(A)')titre(51)
8131 ALLOCATE(fxbnod(lennod),fxb_matrix(lenmat),fxb_matrix_add(4,lenmat))
8132 ENDIF
8133
8136
8137 DO nfx=1,nfxbody
8138 aipm=(nfx-1)*nbipm
8139 anod=fxbipm(aipm+6)
8140 nbno=fxbipm(aipm+3)
8141 nbmo=fxbipm(aipm+4)+fxbipm(aipm+17)
8142 fxbipm(aipm+19)=lenelm+1
8143 fxbipm(aipm+20)=lensig+1
8144 fxbipm(aipm+26)=lengrvi+1
8145 fxbipm(aipm+27)=lengrvr+1
8146
8148 . fxbnod(anod), nbno, fxbipm(aipm+18),
ibcl , ipres ,
8150 .
ixtg ,
iparg , fxbtag, nbmo, fxbipm(aipm+4),
8152 . nlgrav ,
ipari , intbuf_tab , fxbipm(aipm+29), nelt,
8153 . nelp)
8154 fxbipm(aipm+21)=nels
8155 fxbipm(aipm+22)=nelc
8156 fxbipm(aipm+23)=neltg
8157 fxbipm(aipm+34)=nelt
8158 fxbipm(aipm+35)=nelp
8159 fxbipm(aipm+24)=0
8160 fxbipm(aipm+25)=nlgrav
8161 ENDDO
8162
8163 IF(iddlevel==0) THEN
8164 ALLOCATE(fxbglm(lenglm), fxbcpm(lencp) , fxbrpm(lenrpm),
8165 . fxbcps(lencp) , fxblm(lenlm) , fxbfls(lenfls),
8166 . fxbdls(lendls), fxbdep(lenvar), fxbvit(lenvar),
8167 . fxbacc(lenvar), fxbmod(lenmod*6), fxbelm(lenelm),
8168 . fxbsig(lensig), fxbgrvi(lengrvi), fxbgrvr(lengrvr))
8169 ENDIF
8170
8171 fxbelm(1:lenelm)= 0
8172 DO nfx=1,nfxbody
8173 aipm=(nfx-1)*nbipm
8174 anod=fxbipm(aipm+6)
8175 nbno=fxbipm(aipm+3)
8176 alm=fxbipm(aipm+19)
8177 IF(fxbipm(aipm+4)>0)
CALL fxbelnum(
8178 . fxbnod(anod), nbno,
iparg , fxbtag, fxbelm(alm),
8180 . ipartg ,
ixt ,
ixp , ipartt ,ipartp )
8181 ENDDO
8182
8184 . fxbcpm, fxbcps, fxblm, fxbfls, fxbdls,
8186 . lsubmodel)
8187
8188
8189 ELSEIF(iddlevel==0) THEN
8190 ALLOCATE(fxbnod(0) , fxbmod(0), fxbglm(0), fxbgrvi(0),
8191 . fxbcpm(0) , fxbcps(0), fxblm(0) , fxbfls(0) ,
8192 . fxbdls(0) , fxbdep(0), fxbvit(0), fxbacc(0) ,
8193 . fxbrpm(0) , fxbelm(0), fxbsig(0),
8194 . fxbgrvr(0))
8195 ENDIF
8196
8198 err_msg='EIGEN MODES'
8199 err_category='EIGEN MODES'
8200 CALL trace_in1(err_msg,len_trim(err_msg))
8201 IF(neig>0) THEN
8202
8203 INQUIRE(iolength=rclen) flrec6
8204 OPEN(unit=ieigm,status='SCRATCH',
8205 . access='DIRECT',recl=rclen)
8206
8207 WRITE(istdo,'(A)')titre(52)
8209 neipm=17
8210 nerpm=4
8211 leibuf = nnt
8212 IF(iddlevel==0) THEN
8213 ALLOCATE(eigipm(neipm*neig), eigibuf(nnt))
8214 ALLOCATE(eigrpm(nerpm*neig))
8215 eigipm = 0
8216 eigibuf = 0
8217 eigrpm = zero
8218 ENDIF
8219
8222 ELSEIF(iddlevel==0) THEN
8223 ALLOCATE(eigipm(0), eigibuf(0))
8224 ALLOCATE(eigrpm(0))
8225 ENDIF
8227 CALL trace_in1(err_msg,len_trim(err_msg))
8228 IF(ndsolv==1) THEN
8229 WRITE(6,*) "ERROR Deprecated Linear solver"
8231 ELSEIF(iddlevel==0) THEN
8232 nslevel=0
8233 ALLOCATE(ceptmp(0), neldom(0), eldom(0,0,0),
8234 . elsub(0,0))
8235 ENDIF
8237
8238
8239
8240 err_msg='COMPOSITE SHELLS'
8241 err_category='COMPOSITE SHELLS'
8242 CALL trace_in1(err_msg,len_trim(err_msg))
8243
8244 IF(iddlevel==0) THEN
8245 IF(iplyxfem > 0) THEN
8246 ALLOCATE(ms_ply0(numnod*nplymax),stat=stat)
8247 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8248 . msgtype=msgerror,
8249 . c1='MS_PLY0')
8250 ms_ply0=zero
8251 ALLOCATE(zi_ply0(numnod*nplymax),stat=stat)
8252 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8253 . msgtype=msgerror,
8254 . c1='ZI_PLY0')
8255 zi_ply0=zero
8256 ALLOCATE(msz20(numnod),stat=stat)
8257 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8258 . msgtype=msgerror,
8259 . c1='MSZ20')
8260 msz20=zero
8261 ALLOCATE(itagnd_shxfem(numnod),stat=stat)
8262 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8263 . msgtype=msgerror,
8264 . c1='ITAGND_SHXFEM')
8265 itagnd_shxfem=0
8266 ALLOCATE(itagsh(numelc),stat=stat)
8267 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8268 . msgtype=msgerror,
8269 . c1='ITAGSH')
8270 itagsh=0
8272 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8273 . msgtype=msgerror,
8274 . c1='INOD_PXFEM')
8277 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8278 . msgtype=msgerror,
8279 . c1='IEL_PXFEM')
8281 ELSE
8282 ALLOCATE(ms_ply0(0),zi_ply0(0),itagnd_shxfem(0),
8284 ALLOCATE(ms_ply(0),zi_ply(0),msz20(0))
8285 ENDIF
8286 ENDIF
8287
8289
8290
8291
8292 err_msg='ARRAYS ALLOCATION FOR INTIA'
8293 err_category='INTERNAL'
8294 CALL trace_in1(err_msg,len_trim(err_msg))
8295
8296
8297 IF(iddlevel == 0) THEN
8298 ALLOCATE(msc(numelc) ,stat=stat)
8299 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8300 . msgtype=msgerror,
8301 . c1='MSC')
8302 ALLOCATE(mstg(numeltg) ,stat=stat)
8303 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8304 . msgtype=msgerror,
8305 . c1='MSTG')
8306 ALLOCATE(inc(numelc) ,stat=stat)
8307 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8308 . msgtype=msgerror,
8309 . c1='INC')
8310 ALLOCATE(intg(numeltg) ,stat=stat)
8311 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8312 . msgtype=msgerror,
8313 . c1='INTG')
8314 ALLOCATE(ptg(3,numeltg) ,stat=stat)
8315 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8316 . msgtype=msgerror,
8317 . c1='PTG')
8318 IF(glob_therm%ITHERM_FE > 0)THEN
8319 ALLOCATE(mcpc(numelc) ,stat=stat)
8320 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8321 . msgtype=msgerror,
8322 . c1='MCPC')
8323 ALLOCATE(mcptg(numeltg) ,stat=stat)
8324 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8325 . msgtype=msgerror,
8326 . c1='MCPTG')
8327 ELSE
8328 ALLOCATE(mcpc(0),mcptg(0))
8329 END IF
8330 ENDIF
8331
8332 msc = zero
8333 mstg = zero
8334 inc = zero
8335 intg = zero
8336 ptg = zero
8337 mcpc = zero
8338 mcptg = zero
8339
8340
8341
8342 IF(iddlevel == 0) THEN
8343 IF(irest_mselt/=0)THEN
8344 ALLOCATE(mssa(numels) ,stat=stat)
8345 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8346 . msgtype=msgerror,
8347 . c1='MSSA')
8348 ALLOCATE(msrt(numelr) ,stat=stat)
8349 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
8350 . msgtype=msgerror,
8351 . c1='MSRT')
8352 ELSE
8353 ALLOCATE(mssa(0) ,stat=stat)
8354 ALLOCATE(msrt(0) ,stat=stat)
8355 ENDIF
8356
8357 IF(i7stifs/=0)THEN
8358 ALLOCATE(stifint(numnod+numfakenodigeo) ,stat=stat)
8359 ALLOCATE(stifintr(numnod) ,stat=stat)
8360 ELSE
8361 ALLOCATE(stifint(0) ,stat=stat)
8362 ALLOCATE(stifintr(0) ,stat=stat)
8363 ENDIF
8364
8365 IF(irigid_mat > 0) THEN
8366 ALLOCATE(slnrbm(numnod) ,nslnrbm(numnod))
8367 ALLOCATE( rmstifn(numnod), rmstifr(numnod))
8368 ELSE
8369 ALLOCATE( slnrbm(0),nslnrbm(0),rmstifn(0), rmstifr(0))
8371 ENDIF
8372
8373 ALLOCATE(fxani(2,nmanim), mbufel(lbufel,nmanim),
8374 . mdepl(3*numnod,nmanim))
8375 ALLOCATE(stiffn(numnod*2) ,stat=stat)
8376 ENDIF
8377
8378 stifint = zero
8379 stifintr = zero
8380 slnrbm= 0
8381 nslnrbm=0
8382 IF(numnod > 0) stiffn = em20
8383
8385
8386
8388
8390
8391
8392
8393
8394
8395
8396 IF((iddlevel == 1).OR.(isms_selec >= 3).OR.((ninter == 0).AND.(isms == 0))) THEN
8397
8398
8399
8400
8401
8402 err_msg='ELEMENT BUFFER INITIALIZATION'
8403 err_category='INTERNAL'
8404 CALL trace_in1(err_msg,len_trim(err_msg))
8405 WRITE(istdo,'(A)')titre(45)
8406 numel=2*(numelc+numelq+numelt+numels+numelp+numelr+
8407 & numeltg+numelx+numsph+numelig3d)
8408
8409
8410
8411
8412
8413 flag_xfem = 0
8414 ALLOCATE(elbuf_tab(ngroup), stat=stat)
8415
8416 CALL elbuf_ini(elbuf_tab,mat_elem%MAT_PARAM,
8417 . mlaw_tag ,prop_tag ,fail_tag ,
8420 . flag_xfem,ipartig3d,stack ,igeo_stack ,
8422 . eos_tag ,istr_24 ,ipri ,defaults)
8423
8424
8425
8426 IF(icrack3d > 0) THEN
8427 flag_xfem = 1
8428
8429 ALLOCATE(xfem_tab(ngroup,nxel), stat=stat)
8430
8431 DO ixel=1,nxel
8432 CALL elbuf_ini(xfem_tab(1:ngroup,ixel),mat_elem%MAT_PARAM,
8433 . mlaw_tag ,prop_tag ,fail_tag ,
8436 . flag_xfem ,ipartig3d,stack ,igeo_stack,
8438 . eos_tag ,istr_24 ,ipri ,defaults)
8439 ENDDO
8440 ELSE
8441 ALLOCATE(xfem_tab(0,0), stat=stat)
8442 ENDIF
8443
8444
8445
8447 .
ipm ,stack ,
igeo ,nummat ,numgeo ,
8448 . ngroup ,nparg ,npropmi ,npropgi ,npropg )
8449
8450
8451
8454 . ngroup ,nparg ,npropmi ,npropgi ,mat_elem%MAT_PARAM ,
8456 . numelr ,
kxx ,numelx )
8457
8458
8459
8460
8461 IF(numels>0) THEN
8463 END IF
8464
8465 IF (defaults%SHELL%IOFFSET>0) THEN
8466 IF (defaults%SHELL%IOFFSET==1) CALL inter_offset_itag(
8468 . nsurf, numelc, numeltg, itagoset)
8469 CALL shell_offset_ini(
8470 . ngroup, nparg,
iparg, npropg,
8471 . numgeo, geo, numelc, numeltg,
8472 . npropgi,
igeo, itagoset, elbuf_tab,
8473 . defaults%SHELL )
8474 END IF
8475
8476
8477
8478
8479 nsigs =11
8480 lsigsh = 0
8481 lsigsp = 0
8482 lsigsph = 0
8483 lsigi =
max(numels+numelq,numsol+numquad)
8484 lsigrs = 0
8485 lsigbeam = 0
8486 lsigtruss = 0
8487 nsigi = 0
8488 nsigsph= 12
8489 nsigsh = 0
8490 nsigrs = 0
8491 nsigbeam = 0
8492 nsigtruss = 0
8493 IF(isigi/=0)THEN
8494 nsigsh = nvshell
8495 nsigrs = nvspri
8496 nsigbeam = nvbeam
8497 nsigtruss = nvtruss
8498 IF(nubeam > 0) nsigbeam = nsigbeam + nubeam
8499 IF(iushell/=0) nsigsh = nsigsh + nushell
8500 IF(iortshel/=0) nsigsh = nsigsh + nortshel
8501 IF(nvshell1/=0)nsigsh = nsigsh + nvshell1
8502 IF(nvshell2 /= 0)nsigsh = nsigsh + nvshell2 + 3
8503 IF(nusphcel /= 0)nsigsph = nsigsph + nusphcel
8504 nsigi= nvsolid1 + nvsolid2 + nvsolid3 + nusolid + 4 + nvsolid4 +
8505 . nvsolid5 + nvsolid6 + 7
8506
8507
8508 IF(iabs(isigi) == 3 .OR. iabs(isigi) == 4 .OR.
8509 . iabs(isigi) == 5) THEN
8510 lsigsh = numshel+numsh3n
8511 lsigsp =
max(numsol+numquad,numels+numelq)
8512 lsigsph = numsphy
8513 lsigrs = numspri
8514 lsigbeam = numbeam
8515 lsigtruss = numtrus
8516 ELSE
8517 lsigsh = numelc+numeltg
8518 lsigsp = numels+numelq
8519 lsigsph = numsph
8520 lsigrs = numelr
8521 lsigbeam = numelp
8522 lsigtruss = numelt
8523 END IF
8524 END IF
8525
8526 IF(abs(isigi)==3.OR.abs(isigi)==4.OR.abs(isigi)==5)THEN
8527 imax =
max(numels,numelq,numelc,numelt,numelp,numelr,
8528 . numeltg,numsol,numquad,numshel,numsh3n,
8529 . numsphy,numspri,numbeam,numtrus)
8530 ELSE
8531 imax =
max(numels,numelq,numelc,numelt,numelp,numelr,
8532 . numeltg,numelig3d)
8533 END IF
8534 sindex = 2*imax
8535 sitri = imax
8536 IF(abs(isigi)==3.OR.abs(isigi)==4.OR.abs(isigi)==5)THEN
8537 jmax=
max(numelc,numsol,numquad,numshel,numsh3n,numsphy,
8538 . numelr,numspri,numelp,numbeam,numtrus)
8539 ELSE
8540 jmax=0
8541 END IF
8542
8543
8544 IF(abs(isigi)==3.OR.abs(isigi)==4.OR.abs(isigi)==5)THEN
8545 ALLOCATE (ptsol(numels) ,stat=stat)
8546 ALLOCATE (ptquad(numelq) ,stat=stat)
8547 ALLOCATE (ptsph(numsph) ,stat=stat)
8548 ALLOCATE (ptspri(numelr) ,stat=stat)
8549 ALLOCATE (ptbeam(numelp) ,stat=stat)
8550 ALLOCATE (pttruss(numelt) ,stat=stat)
8551 ptsol = 0
8552 ptquad = 0
8553 ptsph = 0
8554 ptspri = 0
8555 ptbeam = 0
8556 pttruss= 0
8557 ELSE
8558 ALLOCATE (ptsol(0) ,stat=stat)
8559 ALLOCATE (ptquad(0) ,stat=stat)
8560 ALLOCATE (ptsph(0) ,stat=stat)
8561 ALLOCATE (ptspri(0) ,stat=stat)
8562 ALLOCATE (ptbeam(0) ,stat=stat)
8563 ALLOCATE (pttruss(0) ,stat=stat)
8564 END IF
8565
8566 ico = 0
8567 itet4_10=0
8569 IF(numels10/=0.OR.numels16/=0.OR.numels20/=0.OR.itet4_10/=0) THEN
8570 ico=12
8571 ENDIF
8572
8573
8574 ALLOCATE(mss(8*numels) ,stat=stat)
8575 ALLOCATE(mssx(ico*numels) ,stat=stat)
8576 ALLOCATE(mssf(8*numels*
max(iale,ieuler,ialelag)) ,stat=stat)
8577 ALLOCATE(msq(numelq) ,stat=stat)
8578 IF(.NOT.ALLOCATED(mstr)) ALLOCATE(mstr(numelt) ,stat=stat)
8579 IF(.NOT.ALLOCATED(msp)) ALLOCATE(msp(numelp) ,stat=stat)
8580 ALLOCATE(msr(numelr*3) ,stat=stat)
8581 ALLOCATE(inp(numelp) ,stat=stat)
8582 ALLOCATE(inr(numelr*3) ,stat=stat)
8583 ALLOCATE(ins(numels*8) ,stat=stat)
8584 mss = zero
8585 mssx = zero
8586 mssf = zero
8587 msq = zero
8588 mstr = zero
8589 msp = zero
8590 msr = zero
8591 inp = zero
8592 inr = zero
8593 ins = zero
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608 ALLOCATE(xelemwa(maxnx*16) ,stat=stat)
8609 xelemwa = zero
8610 IF(i7stifs/=0) THEN
8611 ico = 0
8612 IF(numels10/=0.OR.numels16/=0.OR.numels20/=0.OR.itet4_10/=0) THEN
8613 ico=12
8614 ENDIF
8615 ALLOCATE(vns(numels*8+numelig3d*nctrlmax) ,stat=stat)
8616 ALLOCATE(vnsx(numels*ico) ,stat=stat)
8617 ALLOCATE(stc(numelc) ,stat=stat)
8618 ALLOCATE(stt(numelt) ,stat=stat)
8619 ALLOCATE(stp(numelp) ,stat=stat)
8620 ALLOCATE(str(numelr) ,stat=stat)
8621 ALLOCATE(sttg(numeltg) ,stat=stat)
8622 ALLOCATE(stur(0) ,stat=stat)
8623 ALLOCATE(bns(numels*8+numelig3d*nctrlmax) ,stat=stat)
8624 ALLOCATE(bnsx(numels*ico) ,stat=stat)
8625 ALLOCATE(vnige(numelig3d*nctrlmax) ,stat=stat)
8626 ALLOCATE(bnige(numelig3d*nctrlmax) ,stat=stat)
8627 vns = zero
8628 vnsx = zero
8629 stc = zero
8630 stt = zero
8631 stp = zero
8632 str = zero
8633 sttg = zero
8634 stur = zero
8635 bns = zero
8636 bnsx = zero
8637 vnige = zero
8638 bnige = zero
8639 ELSE
8640 ALLOCATE(vns(0))
8641 ALLOCATE(vnsx(0))
8642 ALLOCATE(stc(0))
8643 ALLOCATE(stt(0))
8644 ALLOCATE(stp(0))
8645 ALLOCATE(str(0))
8646 ALLOCATE(sttg(0))
8647 ALLOCATE(stur(0))
8648 ALLOCATE(bns(0))
8649 ALLOCATE(bnsx(0))
8650 ALLOCATE(vnige(0))
8651 ALLOCATE(bnige(0))
8652 ENDIF
8653 IF(i7stifs/=0)THEN
8654 ALLOCATE(volnod(numnod+numfakenodigeo) ,stat=stat)
8655 ALLOCATE(bvolnod(numnod+numfakenodigeo) ,stat=stat)
8656 ALLOCATE(etnod(numnod) ,stat=stat)
8657 ALLOCATE(nshnod(numnod) ,stat=stat)
8658 volnod = zero
8659 bvolnod = zero
8660 etnod = zero
8661 nshnod = zero
8662 stifint = zero
8663 stifintr = zero
8664 ELSE
8665 ALLOCATE(volnod(0) ,stat=stat)
8666 ALLOCATE(bvolnod(0) ,stat=stat)
8667 ALLOCATE(etnod(0) ,stat=stat)
8668 ALLOCATE(nshnod(0) ,stat=stat)
8669 ENDIF
8670
8671
8672 ALLOCATE(strc(numelc) ,stat=stat)
8673 ALLOCATE(strp(numelp) ,stat=stat)
8674 ALLOCATE(
strr(numelr) ,stat=stat)
8675 ALLOCATE(strtg(numeltg) ,stat=stat)
8676 strc = zero
8677 strp = zero
8679 strtg = zero
8680
8681 ALLOCATE(index(sindex) ,stat=stat)
8682 ALLOCATE(itri(sitri) ,stat=stat)
8683 ALLOCATE(ksysusr(2*jmax) ,stat=stat)
8684 ALLOCATE(isptag(numsph) ,stat=stat)
8685 IF(sindex > 0) index = 0
8686 IF(sitri > 0) itri = 0
8687 IF(jmax > 0) ksysusr = 0
8688 IF(numsph > 0) isptag = 0
8689
8690 IF(nrbykin>0) THEN
8691 ALLOCATE(iwa(numnod),stat=stat)
8692 ELSE
8693 ALLOCATE(iwa(0),stat=stat)
8694 ENDIF
8695
8697
8698 err_msg='INITIALIZATION'
8699 err_category='ELEMENT INITIALIZATION'
8700 CALL trace_in1(err_msg,len_trim(err_msg))
8701
8702
8703
8704
8705
8706 ALLOCATE(sigi(nsigs,lsigi) ,stat=stat)
8707 ALLOCATE(sigsh(
max(1,nsigsh),
max(1,lsigsh)) ,stat=stat)
8708 ALLOCATE(sigsp(nsigi,lsigsp) ,stat=stat)
8709 ALLOCATE(sigsph(nsigsph,lsigsph) ,stat=stat)
8710 ALLOCATE(sigrs(nsigrs,lsigrs) ,stat=stat)
8711 ALLOCATE(sigbeam(nsigbeam,lsigbeam) ,stat=stat)
8712 ALLOCATE(sigtruss(nsigtruss,lsigtruss) ,stat=stat)
8713 ALLOCATE(strsglob(numels) ,stat=stat)
8714 ALLOCATE(straglob(numels) ,stat=stat)
8715 ALLOCATE(orthoglob(numels) ,stat=stat)
8716
8717 IF(lsigi > 0) sigi = zero
8718 IF(lsigsh > 0) sigsh = zero
8719 IF(lsigsp > 0) sigsp = zero
8720 IF(lsigsph > 0) sigsph = zero
8721 IF(lsigrs > 0) sigrs = zero
8722 IF(lsigbeam > 0)sigbeam= zero
8723 IF(lsigtruss > 0)sigtruss= zero
8724 IF(numels > 0) strsglob = -1
8725 IF(numels > 0) straglob = -1
8726 IF(numels > 0) orthoglob = 0
8727
8728
8730
8733 2
ixtg ,index ,itri ,
8734 3 nsigsh ,
igeo ,
ipm ,nsigs ,nsigsph ,
8735 4 ksysusr ,ptshel ,ptsh3n ,ptsol ,ptquad ,
8736 5 ptsph ,numel ,nsigrs ,
unitab ,isolnod ,
8737 6 lsubmodel,rtrans ,
idrape ,nsigi ,
8738 7 ptspri ,nsigbeam,ptbeam ,nsigtruss,pttruss ,
8739 8 sigi ,sigsh ,sigsp ,sigsph ,sigrs ,
8740 9 sigbeam ,sigtruss,strsglob,straglob,orthoglob,
8741 a isigsh ,iyldini ,ksigsh3 ,fail_ini,iusolyld,
8743 c mat_elem%MAT_PARAM,numsph,nisp)
8744
8745
8746
8747
8748
8749 ALLOCATE(dtelem(2*numel) ,stat=stat)
8750 IF(stat/=0) THEN
8751 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
8752 . c1='DTELEM')
8753 ENDIF
8754 IF(numel > 0) dtelem = zero
8755
8757
8760 &
ixp ,
ixr , detonators , geo , pm ,
8762 & tf , veul , ale_connectivity , skew , fill ,
8764 &
ixtg , thke ,
nloc_dmg , group_param_tab ,glob_therm,
8766 & bufmat , xlas ,
ilas , dtelem , mss ,
8767 & msq , msc , mstr , msp , msr ,
8769 & inp , inr , intg , index ,
8770 & itri ,
kxx ,
ixx , xelemwa ,
8774 & spbuf , mssx , nsigi ,
8776 & nsigsh ,
igeo ,
ipm , nsigs ,
8777 & nsigsph , vns , vnsx , stc , stt ,
8778 & stp , str , sttg , stur , bns ,
8779 & bnsx , volnod , bvolnod , etnod , nshnod ,
8780 & stifint , fxbdep , fxbvit , fxbacc , fxbipm ,
8781 & fxbrpm , fxbelm , fxbsig , fxbmod , ins ,
8782 & ptshel , ptsh3n , ptsol , ptquad ,
8783 & wma , ptsph , fxbnod , mbufel , mdepl ,
8784 & fxani , numel , nsigrs ,
8786 & imerge2 , iadmerge2 ,
8787 & slnrbm , nslnrbm , rmstifn , rmstifr ,
8788 & ms_ply0 , zi_ply0 , itagnd_shxfem , itagsh , mcpc ,
8789 & mcptg , xrefc , xreftg , xrefs , mssa ,
8791 & ixs10 , ixs16 , ixs20 , totaddmas ,
8792 &
ipmas , stiffn , msz20 , itagn , sitage ,
8793 & itage , ixr_kj , elbuf_tab ,
8794 &
nom_opt , inom_opt(13) , inom_opt(21) , inom_opt(20),
8797 & wige , stack ,
8798 & rnoise , drape , sh4ang , sh3ang ,
8799 & geo_stack , igeo_stack , stifintr , strc , strp ,
8801 &
iloadp , loadp , ptspri , nsigbeam ,
8802 & ptbeam , nsigtruss , pttruss ,
8803 & multi_fvm , sigi , sigsh , sigsp ,
8804 & sigsph , sigrs , sigbeam , sigtruss , strsglob ,
8805 & straglob , orthoglob , isigsh , iyldini , ksigsh3 ,
8806 & fail_ini , iusolyld , iuserl , iddlevel , inimap1d ,
8809 & knotlocpc , knotlocel , vnige , bnige , fxbglm ,
8810 & fxbcpm , fxbcps , fxblm , fxbfls , fxbdls ,
8811 & fxb_matrix , fxb_matrix_add , fxb_last_address , inom_opt(11) , r_skew ,
8814 &
ipari , intbuf_tab , interfaces , mat_elem%MAT_PARAM ,
8815 & npreload_a , preload_a , fail_fractal ,fail_brokmann ,defaults ,
8816 & ndamp_freq_range,dampr , ibeam_vector , rbeam_vector ,d ,
8817 & lsigi ,lsigsp , srnoise2 ,
nprw ,
lprw ,
8818 & rwstif_pen ,sln_pen )
8819
8820
8821 IF(ninter>0.AND.numelig3d>0) THEN
8823 IF(i7stifs/=0)THEN
8825 ENDIF
8826 ENDIF
8827
8828
8829
8831
8832
8834
8835
8836
8837
8838 err_msg='GROUP ENTITIES BUFFER INITIALIZATION'
8839 err_category='INTERNAL'
8840 CALL trace_in1(err_msg,len_trim(err_msg))
8841
8842
8847
8849
8850
8851
8852
8853
8854 DEALLOCATE(sigsph)
8855
8856
8857
8858 DEALLOCATE(xelemwa)
8859 DEALLOCATE(strsglob)
8860 DEALLOCATE(straglob)
8861 DEALLOCATE(orthoglob)
8862
8863 IF(ALLOCATED(ptshel))DEALLOCATE(ptshel)
8864 IF(ALLOCATED(ptsh3n))DEALLOCATE(ptsh3n)
8865 DEALLOCATE(ptsol)
8866 DEALLOCATE(ptquad)
8867 DEALLOCATE(ptsph)
8868 DEALLOCATE(ptspri)
8869 DEALLOCATE(ptbeam)
8870 DEALLOCATE(pttruss)
8871 DEALLOCATE(mss)
8872 DEALLOCATE(mssx)
8873 DEALLOCATE(mssf)
8874 DEALLOCATE(msq)
8875 DEALLOCATE(msr)
8876 IF(ALLOCATED(msig3d)) DEALLOCATE(msig3d)
8877 IF(ALLOCATED(tabconpatch)) DEALLOCATE(tabconpatch)
8878 DEALLOCATE(inp)
8879 DEALLOCATE(inr)
8880 DEALLOCATE(ins)
8881 DEALLOCATE(vns)
8882 DEALLOCATE(vnsx)
8883 DEALLOCATE(stc)
8884 DEALLOCATE(stt)
8885 DEALLOCATE(stp)
8886 DEALLOCATE(str)
8887 DEALLOCATE(sttg)
8888 DEALLOCATE(stur)
8889 DEALLOCATE(bns)
8890 DEALLOCATE(bnsx)
8891 DEALLOCATE(volnod)
8892 DEALLOCATE(bvolnod)
8893 DEALLOCATE(etnod)
8894 DEALLOCATE(nshnod)
8895 DEALLOCATE(vnige)
8896 DEALLOCATE(bnige)
8897 DEALLOCATE(strc)
8898 DEALLOCATE(strp)
8900 DEALLOCATE(strtg)
8901 DEALLOCATE(isptag)
8902 DEALLOCATE(index)
8903 DEALLOCATE(itri)
8904 DEALLOCATE(ksysusr)
8905 DEALLOCATE(iwa)
8906 IF (defaults%SHELL%IOFFSET==1) THEN
8907 DEALLOCATE(itagoset)
8908 DEALLOCATE(xyz)
8909 END IF
8910
8911
8912
8913
8914 ENDIF
8915
8916
8917
8918 IF((iddlevel == 0).AND.((ninter > 0).OR.(isms == 1))) THEN
8919 iddlevel = 1
8920 WRITE(istdo,*)
8921 . '.. RETURNS TO DOMAIN DECOMPOSITION FOR OPTIMIZATION'
8922
8923
8924
8925
8926
8927
8930
8931 lag_ncf = lag_ncf0
8932 lag_nkf = lag_nkf0
8933 lag_nhf = lag_nhf0
8934 lag_ncl = lag_ncl0
8935 lag_nkl = lag_nkl0
8936
8937 DEALLOCATE(elbuf)
8939
8940 IF(isms_selec >= 3) THEN
8941
8942
8943
8944 DEALLOCATE(dtelem)
8945 flag_xfem = 0
8949 DEALLOCATE(elbuf_tab)
8950
8951 IF(icrack3d > 0) THEN
8952 flag_xfem = 1
8953 DO ixel=1,nxel
8957 ENDDO
8958 ENDIF
8959
8960 rewind(iin4)
8961 rewind(iin5)
8962
8963 ENDIF
8964
8965 GOTO 100
8966
8967 ENDIF
8968
8969
8970
8971
8972 err_category='INTERFACES'
8975
8976
8977
8979
8980
8981
8982
8983
8984
8985 err_msg='RIGID MATERIALS'
8986 err_category='RIGID MATERIALS'
8987 CALL trace_in1(err_msg,len_trim(err_msg))
8988 IF(irigid_mat > 0) THEN
8989
8990
8991
8992 ALLOCATE(rbym(nfrbym*nrbym),
irbym(nrbym*nirbym),
lnrbym(ngslnrbym))
8993 rbym = 0
8996
8997 CALL rigid_mat(nrbym ,ngslnrbym ,slnrbm, nslnrbm ,rmstifn,
8998 . rmstifr ,x ,v ,ms , in ,
9000
9001 len_rm = nrbym*nspmd
9004 ALLOCATE(weight_rm(nrbym))
9005 weight_rm = 1
9006 ELSE
9007 ALLOCATE( rbym(0),
irbym(0),
lnrbym(0), weight_rm(0))
9008 ENDIF
9010 err_msg='DEALLOCATION'
9011 err_category='INTERNAL'
9012 CALL trace_in1(err_msg,len_trim(err_msg))
9013 DEALLOCATE(slnrbm,nslnrbm,rmstifn,rmstifr )
9014
9015 IF(ALLOCATED(msig3d)) DEALLOCATE(msig3d)
9016 IF(ALLOCATED(itag)) DEALLOCATE(itag)
9017
9018
9019
9021 err_msg='XFEM FOR COMPOSIT'
9022 err_category='XFEM FOR COMPOSIT'
9023 CALL trace_in1(err_msg,len_trim(err_msg))
9024 IF(iplyxfem > 0) THEN
9025 nplyxfe = 0
9026 eplyxfe = 0
9027 DO i=1,numnod
9028 IF(itagnd_shxfem(i) > 0 )THEN
9029 nplyxfe = nplyxfe + 1
9031 ENDIF
9032 ENDDO
9033
9034 DO i=1,numelc
9035 IF(itagsh(i) > 0) THEN
9036 eplyxfe = eplyxfe + 1
9038 ENDIF
9039 ENDDO
9040 ALLOCATE(ms_ply(nplyxfe*nplymax),stat=stat)
9041 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
9042 . msgtype=msgerror,
9043 . c1='MS_PLY')
9044 ms_ply=zero
9045 ALLOCATE(zi_ply(nplyxfe*nplymax),stat=stat)
9046 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
9047 . msgtype=msgerror,
9048 . c1='ZI_PLY')
9049 zi_ply=zero
9050
9051 ALLOCATE(msz2(nplyxfe),stat=stat)
9052 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
9053 . msgtype=msgerror,
9054 . c1='MSZ2')
9055 msz2=zero
9056
9058 . ms_ply,zi_ply,addcne_pxfem,msz20,msz2)
9059 lcne_pxfem = addcne_pxfem(nplyxfe+1) - 1
9060 ALLOCATE(cne_pxfem(lcne_pxfem),cel_pxfem(eplyxfe))
9061 cne_pxfem = 0
9062 cel_pxfem = 0
9063
9065 . cne_pxfem, cel_pxfem)
9066
9067 ENDIF
9068
9069 DEALLOCATE(ms_ply0,zi_ply0,msz20,itagsh)
9070 DEALLOCATE(itagnd_shxfem)
9072
9073
9074
9075 IF (ndamp_vrel_rby > 0) THEN
9076 CALL damping_rby_spmdset(
igrnod,ngrnod,ndamp,nrdamp,dampr,nnpby,
9077 . nrbody,
npby,nrbmerge)
9078 ENDIF
9079
9080
9081
9082
9083 err_msg='XFEM FOR SHELLS'
9084 err_category='XFEM FOR SHELLS'
9085 CALL trace_in1(err_msg,len_trim(err_msg))
9086
9087
9088 ALLOCATE(crklvset(nlevmax) ,stat=stat)
9089 ALLOCATE(crkshell(nlevmax) ,stat=stat)
9090 ALLOCATE(crksky(nlevmax) ,stat=stat)
9091 ALLOCATE(crkavx(nlevmax) ,stat=stat)
9092 ALLOCATE(indx_crk(nlevmax) ,stat=stat)
9093
9094 indx_crk = 0
9095 ncrkpart = 0
9096 ncrkxfe = 0
9097 ecrkxfe = 0
9098 ecrkxfec = 0
9099 ecrkxfetg= 0
9100
9101 IF(icrack3d > 0) THEN
9102
9103 IF(icrack3d == 1) THEN
9104 WRITE(istdo,'(A)')' .. XFEM MULTI-LAYER SHELL'
9105 ELSEIF(icrack3d == 2)THEN
9106 WRITE(istdo,'(A)')' .. XFEM MONO-LAYER SHELL'
9107 ELSEIF(icrack3d == 3)THEN
9108 WRITE(istdo,'(A)')' .. XFEM MIXED MONO/MULTI-LAYER SHELL'
9109 ENDIF
9110
9111
9112
9113
9114
9115
9117
9118
9121
9122
9123 lcne_crkxfem = addcne_crkxfem(ncrkxfe+1) - 1
9124 ALLOCATE(
crknodiad(lcne_crkxfem) ,stat=stat)
9126 ALLOCATE(cel_crkxfem(ecrkxfe) ,stat=stat)
9127 ALLOCATE(cep_crkxfem(ecrkxfe) ,stat=stat)
9128 ALLOCATE(
nodlevxf(ncrkxfe) ,stat=stat)
9129 ALLOCATE(crkedge(nxlaymax) ,stat=stat)
9130 ALLOCATE(xfem_phantom(nxlaymax) ,stat=stat)
9131 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'NODLEVXF')
9134 cel_crkxfem = 0
9135 cep_crkxfem = 0
9136 numelcrk = 0
9138
9142
9144 . indx_crk,ncrkpart,crkshell)
9145
9146 DEALLOCATE(itagn,itage)
9147
9148 snodglobxfe = 4*ecrkxfe*nlevmax
9149
9150 numedges = 0
9151 siedgesh = 4*ecrkxfec + 3*ecrkxfetg
9152
9153 ALLOCATE(
iedgesh(siedgesh),stat=stat)
9154 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IEDGESH')
9155 ALLOCATE(ibordedge(siedgesh) ,stat=stat)
9156 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IBORDEDGE')
9157 ALLOCATE(
nodedge(2*siedgesh),stat=stat)
9158 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'NODEDGE')
9159 ALLOCATE(
iedge(siedgesh),stat=stat)
9160 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IEDGE')
9161 ALLOCATE(iedge_tmp0(siedgesh),stat=stat)
9162 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,msgtype=msgerror,c1=
'IEDGE_TMP0')
9164 ibordedge = 0
9167 iedge_tmp0= 0
9168
9169 IF(ecrkxfec > 0) THEN
9170 iedgesh4 =>
iedgesh(1:4*ecrkxfec)
9172 ELSE
9175 ENDIF
9176
9177 IF(ecrkxfetg > 0) THEN
9178 iedgesh3 =>
iedgesh(1+4*ecrkxfec:siedgesh)
9180 ELSE
9183 ENDIF
9184
9188 . cep_crkxfem,iedge_tmp0)
9189
9191 . crksky ,crkavx,crkedge,xfem_phantom)
9192
9193 IF(ninicrack > 0)
9197 . iedgesh4 ,iedgesh3,
nodedge ,crklvset,
9198 . crkshell,crkedge ,xfem_phantom ,
itab )
9199
9200 ALLOCATE(iedge_tmp(3,numedges),stat=stat)
9201 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9202 . msgtype=msgerror,c1='IEDGE_TMP')
9203 IF(numedges > 0) THEN
9204 DO i=1,numedges
9205 iedge_tmp(1,i) = 0
9206 iedge_tmp(2,i) = 0
9207 iedge_tmp(3,i) = iedge_tmp0(i)
9208 ENDDO
9209 ENDIF
9210 DEALLOCATE(iedge_tmp0)
9211
9212 ALLOCATE(
elcutc(2*(numelc+numeltg)) ,stat=stat)
9213 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9214 . msgtype=msgerror,c1='ELCUTC')
9216
9217 ALLOCATE(
nodenr(ncrkxfe) ,stat=stat)
9218 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9219 . msgtype=msgerror,c1='NODENR')
9221
9223 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9224 . msgtype=msgerror,c1='KXFENOD2ELC')
9226
9227 ALLOCATE(
enrtag(numnod*ienrnod) ,stat=stat)
9228 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=anstop,
9229 . msgtype=msgerror,c1='ENRTAG')
9231
9232 ELSE
9233 numedges = 0
9234 siedgesh = 0
9235 numelcrk= 0
9236 ALLOCATE(
cne_crkxfem(0),cel_crkxfem(0),cep_crkxfem(0))
9238 ALLOCATE(ibordedge(0))
9241 ALLOCATE(iedge_tmp(0,0))
9244 ALLOCATE(crkedge(0))
9245
9250 ENDIF
9251
9253
9254
9255
9256 err_msg='RIGID BODY ELEMENT DEACTIVATION'
9257 err_category='RIGID BODY'
9258 CALL trace_in1(err_msg,len_trim(err_msg))
9261 3 itruoff,ipouoff,iresoff,itrioff,igrnrb2,
9263
9264
9265
9268 3 itruoff,ipouoff,iresoff,itrioff,igrnrby,
9271
9272
9273
9274 err_msg='STAMPING INITIALIZATION'
9275 err_category='INTERFACES'
9276 CALL trace_in1(err_msg,len_trim(err_msg))
9277 IF(ninter/=0)THEN
9278
9279 aux =
max( numnod , numelt+numelp+numelr+numeltg+numelc+100 ,
9280 . maxrtm+100 )
9281 ns_i21 = 2*numnod + 2002 + 4*aux
9282 siwork = ns_i21
9283 srwork =
max(6000,numnod)
9284 ALLOCATE(iwork(siwork) ,stat=stat)
9285 ALLOCATE(rwork(srwork) ,stat=stat)
9286 iwork = 0
9287 rwork = zero
9288
9290 1
ipari ,intbuf_tab ,inscr ,x ,
9292 3 iwork ,rwork ,
ixtg ,d ,
9297 8 ipartc ,ipartg,thk_part,
nom_opt,inom_opt(3))
9298 DEALLOCATE(rwork)
9299 DEALLOCATE(iwork)
9300
9301 END IF
9302
9303
9304 DEALLOCATE(thk_part)
9306
9307
9308
9310
9311
9312
9313 i24maxnsne = 0
9315
9316
9317
9318
9319
9320 err_msg='INTERFACES STIFFNESS'
9321 err_category='INTERFACES'
9322 CALL trace_in1(err_msg,len_trim(err_msg))
9323 IF(ninter>0)THEN
9324 IF (i7stifs/=0) THEN
9325 CALL stifint_icontrol(
9326 1 numnod, stifint, npari, ninter,
9328 3 numels, nixs,
ixs, numels8,
9329 4 numels10, ixs10, numels16, ixs16,
9330 5 numels20, ixs20, npropm, nummat,
9331 6 pm, intbuf_tab)
9333 END IF
9334 DEALLOCATE(stfac)
9335 ENDIF
9337
9338
9339 IF(ninter > 0 .AND.ninterfric >0.AND. iorthfricmax > 0) THEN
9340
9342 a
ipari ,intbuf_tab,intbuf_fric_tab,
igeo ,geo ,
9343 b x ,
ixtg ,
ixc ,ipartg , ipartc ,
9344 c pfricorth,irepforth,phiforth , vforth ,
knod2elc ,
9347
9348
9349
9350 ENDIF
9351
9352 DEALLOCATE(tagprt_fric)
9353
9354
9355
9356 err_msg='LASER IMPACT PHASE 2'
9357 err_msg='LASER'
9358 CALL trace_in1(err_msg,len_trim(err_msg))
9359 IF(nlaser>0) THEN
9361 ENDIF
9363
9364
9365
9366 err_msg='RIVETS'
9367 err_category='RIVETS'
9368 CALL trace_in1(err_msg,len_trim(err_msg))
9369 slrivet = nrivet*4
9370 srivet = nrivet*nrivf
9371 ALLOCATE(
lrivet(slrivet) ,stat=stat)
9372 ALLOCATE(rivet(srivet) ,stat=stat)
9374 rivet = zero
9375
9376 IF(nrivet/=0)THEN
9377 WRITE(istdo,'(A)') ' .. RIVETS '
9381 ENDIF
9382
9384
9385
9386
9387 IF(nb_seatbelt_shells /= 0)THEN
9388 CALL my_alloc(seatbelt_shell_to_spring,numelc,2)
9389 IF(numelc > 0)THEN
9390 seatbelt_shell_to_spring(1:numelc,1) = 0
9391 seatbelt_shell_to_spring(1:numelc,2) = 0
9392 ENDIF
9393
9394 DO i=1,nb_seatbelt_shells
9395
9396 l0 = 0
9397 IF(seatbelt_converted_elements(2,i) /= 0) THEN
9398 l0 =
set_usrtos(seatbelt_converted_elements(1,i),map_tables%ISH4NM,numelc)
9399 ENDIF
9400
9401 l1 = 0
9402 IF(seatbelt_converted_elements(2,i) /= 0) THEN
9403 l1 =
set_usrtos(seatbelt_converted_elements(2,i),map_tables%ISPRINGM,numelr)
9404 ENDIF
9405
9406 l2 = 0
9407 IF(seatbelt_converted_elements(3,i) /= 0) THEN
9408 l2 =
set_usrtos(seatbelt_converted_elements(3,i),map_tables%ISPRINGM,numelr)
9409 ENDIF
9410
9411 IF(l0 /= 0) THEN
9412 seatbelt_shell_to_spring(l0,1) = l1
9413 seatbelt_shell_to_spring(l0,2) = l2
9414 ENDIF
9415
9416 ENDDO
9417 ELSE
9418 CALL my_alloc(seatbelt_shell_to_spring,1,2)
9419 seatbelt_shell_to_spring(1,1) = 0
9420 seatbelt_shell_to_spring(1,2) = 0
9421 ENDIF
9422
9423
9424
9425 err_msg='SECTIONS'
9426 err_category='SECTIONS'
9427 CALL trace_in1(err_msg,len_trim(err_msg))
9428 IF(nsect/=0)THEN
9429 WRITE(istdo,'(A)') ' .. SECTIONS'
9431 1 snstrf ,ssecbuf ,
itabm1 ,0 ,
nom_opt(lnopt1*inom_opt(8)+1),
9434 4 nb_seatbelt_shells)
9435 ALLOCATE(
nstrf(snstrf) ,stat=stat)
9436 ALLOCATE(secbuf(ssecbuf) ,stat=stat)
9438 secbuf = zero
9446 8 nb_seatbelt_shells)
9447 snstrf =
SIZE(
nstrf)
9448 ELSE
9449 snstrf = 0
9450 ssecbuf = 0
9451 ALLOCATE(
nstrf(snstrf) ,stat=stat)
9452 ALLOCATE(secbuf(ssecbuf) ,stat=stat)
9453 ENDIF
9454 IF(ALLOCATED(seatbelt_shell_to_spring)) DEALLOCATE(seatbelt_shell_to_spring)
9456
9457
9458
9459
9461 . inom_opt(8),inom_opt(4),
ixr ,r_skew ,numelr,
9462 . nsect ,ninter ,nintsub ,nrwall ,nrbody )
9463
9464
9465
9466
9467 err_msg='JOINTS'
9468 err_category='JOINTS'
9469 CALL trace_in1(err_msg,len_trim(err_msg))
9471 ALLOCATE(
ljoint(sljoint) ,stat=stat)
9473
9475
9476 IF(njoint/=0)THEN
9477 WRITE(istdo,'(A)') ' .. CYLINDRICAL JOINTS'
9480 .
nom_opt(lnopt1*inom_opt(7)+1),lsubmodel)
9481 ENDIF
9482
9484
9485
9486
9487 err_msg='BLOCK BOUNDARY MATERIAL NODES'
9488 err_category='BLOCK BOUNDARY MATERIAL NODES'
9489 CALL trace_in1(err_msg,len_trim(err_msg))
9490 IF(iale+ieuler /= 0 .AND. numelq+numels > 0) THEN
9492 ENDIF
9494
9495
9496
9497 err_msg='POROUS NODES'
9498 err_category='POROUS NODES'
9499 CALL trace_in1(err_msg,len_trim(err_msg))
9500 IF(iale+ieuler /=0 .AND. numelq+numels >0)THEN
9501 siwork = numnod+4*nfacx
9502 ALLOCATE(iwork(siwork) ,stat=stat)
9503 siwork = 0
9506 snodpor = numpor
9507 ALLOCATE(
nodpor(snodpor) ,stat=stat)
9508 nodpor = iwork(1:snodpor)
9509 DEALLOCATE(iwork)
9510 ELSE
9511 snodpor = 0
9512 ALLOCATE(
nodpor(snodpor) ,stat=stat)
9513 ENDIF
9515
9516 IF(kcontact/=0)THEN
9517 kcontact=1
9518 sicontact=numnod
9521 ELSE
9523 END IF
9524 IF(nadmesh/=0)THEN
9525 srcontact=numnod
9526 ALLOCATE(rcontact(srcontact))
9527 rcontact = ep30
9528 ALLOCATE(acontact(srcontact))
9529 acontact = ep30
9530 ALLOCATE(pcontact(srcontact))
9531 pcontact = zero
9532 ELSE
9533 ALLOCATE(rcontact(0))
9534 ALLOCATE(acontact(0))
9535 ALLOCATE(pcontact(0))
9536 END IF
9537
9538 CALL fvdim(t_monvol)
9540
9541
9542 err_msg='FVMBAG MESHING'
9543 err_category='FVMBAG MESHING'
9544 CALL trace_in1(err_msg,len_trim(err_msg))
9547 ELSE
9549 ENDIF
9550
9551 CALL copy_to_volmon(t_monvol, lrcbag, t_monvol_metadata%RCBAG, svolmon, volmon)
9552
9554
9556 err_msg='BEM FLOW'
9557 err_category='BEM FLOW'
9558 CALL trace_in1(err_msg,len_trim(err_msg))
9559
9560
9561
9562 IF(nflow>0) THEN
9565
9566 ALLOCATE(iflow(liflow), rflow(lrflow))
9567 iflow(1:liflow) = 0
9568 rflow(1:lrflow) = zero
9569
9570 DO i=1,nspmd
9571 memflow(1,i)=0
9572 memflow(2,i)=0
9573 ENDDO
9574
9578
9579 ELSE
9580 ALLOCATE(iflow(0), rflow(0))
9581 ENDIF
9583 err_msg='EULERIAN BOUNDARY CONDITIONS'
9584 err_category='EULERIAN BOUNDARY CONDITIONS'
9585 CALL trace_in1(err_msg,len_trim(err_msg))
9586
9588 segindx = 0
9589
9591 . pm,
igeo, x, sensors,
monvol, multi_fvm%IS_USED, ebcs_tab, ebcs_tag_cell_spmd,
itab)
9592
9593 CALL iniebcsp0(x,
iparg, elbuf_tab, ebcs_tab,
ixs,
ixq,
ixtg, iparts, ipartq, ipartg, pm,
ipm, mat_elem%MAT_PARAM)
9594 CALL iniebcs_propellant(
ixs,
ixq,
ixtg,multi_fvm%IS_USED,ebcs_tab,mat_elem%MAT_PARAM,sixs,sixq,sixtg,nummat)
9595 ENDIF
9597
9598
9599
9600 err_msg='LAGRANGE MULTIPLIERS'
9601 err_category='LAGRANGE MULTIPLIERS'
9602 CALL trace_in1(err_msg,len_trim(err_msg))
9603 ncmax = lag_ncf + lag_ncl
9604 nkmax = lag_nkf + lag_nkl
9605 lag_nhl = lag_ncl * 10
9606
9607 IF( ALLOCATED(iadhf) ) DEALLOCATE(iadhf)
9609 IF( ALLOCATED(lll) ) DEALLOCATE(lll)
9610 IF( ALLOCATED(jll) ) DEALLOCATE(jll)
9611 ALLOCATE(iadhf(lag_ncf + 1))
9612 ALLOCATE(
iadll(lag_ncf + 1))
9613 ALLOCATE(lll(lag_nkf))
9614 ALLOCATE(jll(lag_nkf))
9615 IF(lag_ncf > 0) THEN
9616
9620 4 ibmpc3 ,ibmpc4 ,
ibfv ,vel ,
itab ,
9621 5
nom_opt,inom_opt(3),inom_opt(15),inom_opt(16),
9622 6 inom_opt(17),inom_opt(18))
9623 ALLOCATE(jcihf(lag_nhf), stat=stat)
9625
9626 slagbuf = lag_nhf + 3*lag_ncf+2
9627 ALLOCATE(
lagbuf(slagbuf), stat=stat)
9628 l1 = lag_ncf + 1
9629 l2 = l1 + lag_nhf
9630 l3 = l2 + lag_ncf + 1
9631 l4 = l3 + lag_nkf
9632 l5 = l4 + lag_nkf
9634 lagbuf(1:l1) = iadhf(1:lag_ncf + 1)
9635 lagbuf(l1+1:l2) = jcihf(1:lag_nhf)
9636 DEALLOCATE(jll)
9637 DEALLOCATE(iadhf)
9638 DEALLOCATE(jcihf)
9639 ELSE
9640 slagbuf = 0
9641 ALLOCATE(
lagbuf(slagbuf))
9642 ENDIF
9643
9644 IF(nrwlag>0)
9646 .
nom_opt(lnopt1*inom_opt(5)+1))
9647 IF(ninter>0)
9649 .
nom_opt(lnopt1*inom_opt(3)+1))
9650 nhmax = lag_nhf + lag_nhl
9651 lwat = 0
9652 IF(lag_ncl/=0) lwat =
max(6*(numels16+numels20),6*numnod)
9653 l_mul_lag1 = 2*ncmax + 4*nkmax + lwat + 2
9654 IF(ncmax>0) THEN
9655 l_mul_lag =
max(l_mul_lag1+numnod,
9656 . 11*ncmax + 4*nkmax + 3*nhmax + 6*numnod + 2)
9657 ENDIF
9658
9659 slambda = ncmax
9660 ALLOCATE(lambda(slambda), stat=stat)
9661 IF(slambda > 0) lambda = zero
9663
9664
9665
9666 err_msg='GRAVITY NODAL FORCES'
9667 err_category='GRAVITY NODAL FORCES'
9668 CALL trace_in1(err_msg,len_trim(err_msg))
9669 IF(nfxbody>0) THEN
9670 DO nfx=1,nfxbody
9671 aipm=(nfx-1)*nbipm
9672 anod=fxbipm(aipm+6)
9673 nlgrav=fxbipm(aipm+25)
9674 agrvi=fxbipm(aipm+26)
9675 agrvr=fxbipm(aipm+27)
9676 amod=fxbipm(aipm+7)
9677 IF(nlgrav>0)
9679 .
igrv ,
lgrav , fxbipm(aipm+18), fxbnod(anod),
9680 . fxbgrvi(agrvi), fxbgrvr(agrvr), fxbipm(aipm+3), fxbmod(amod),
9681 . fxbipm(aipm+4), fxbipm(aipm+17), ms , grav ,
9682 . skew , fxbipm(aipm+29), nfx , fxbipm(aipm+30))
9683 ENDDO
9684 ENDIF
9686
9687
9688
9689
9690 err_msg='TIME HISTORY PARTS'
9691 err_category='TIME HISTORY'
9692 CALL trace_in1(err_msg,len_trim(err_msg))
9693 IF(nthpart >0) THEN
9696 ENDIF
9698
9704 * ibid )
9705
9706
9707
9708 err_msg='TIME HISTORY GROUPS'
9709 err_category='TIME HISTORY'
9710 CALL trace_in1(err_msg,len_trim(err_msg))
9711
9712
9723 DO i=1,9
9724 nthgrpmx =
max(nthgrp0,nthgrp01(i))
9725 ENDDO
9726
9727
9728 nbr_th_monvol = 0
9729 nbr_th_monvol01(1:9) = 0
9740 DO i=1,9
9741 nbr_th_monvol =
max(nbr_th_monvol,nbr_th_monvol01(i))
9742 ENDDO
9743
9744 output%TH%SITHGRP = (nthgrp0+nbr_th_monvol)*nithgr
9745 lithpart = nthgrpmx*(npart+nthpart)
9746 lithsub = nthgrpmx*nsubs
9747 lithbufmx = 0
9748 lithbufi = 0
9749 nvartot = 0
9750 nvartot0 = 0
9751
9752
9753
9755 DO i=1,9
9757 lithbufmx =
max(lithbufmx,lithbufi,nvartot,nvartot0)
9758 nvartotmax =
max(nvartotmax,nvartot,nvartot0)
9759 ENDDO
9760
9761 sithvar = nvartot0*10+nvartot*10+nvolu*10
9762 ALLOCATE(ithpart(lithpart) , stat=stat)
9763 ALLOCATE(ithsub(lithsub) , stat=stat)
9764 ALLOCATE(ithbuftmp(lithbufmx), stat=stat)
9765 ALLOCATE(
ithvar(sithvar) , stat=stat)
9766 IF(sithvar > 0)
ithvar(1:sithvar) = 0
9767 CALL my_alloc(output%TH%ITHGRP,output%TH%SITHGRP)
9768
9769 output%TH%ITHGRP(1:output%TH%SITHGRP) = 0
9770 ithpart = 0
9771 ithsub = 0
9772 ithbuftmp = 0
9773 output%TH%SITHBUF = 0
9774 ithflag = 10
9775
9776 interfaces%PARAMETERS%INTCAREA =0
9777
9783 5 nthgrp ,ithpart ,ithsub ,fxbipm ,
ipart ,lipart1 ,
9784 6 8 ,12 ,imerge ,
ithvar ,
9785 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9786 8 inom_opt(5),inom_opt(8),inom_opt(7),
9787 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9788 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9790 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9791 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9792 e map_tables, 0,inom_opt(31),inom_opt(32),sensors ,
9793 f interfaces,
ipari ,output%TH%DUMP_THNMS1_FILE,glob_therm%ITHERM_FE,output%CHECKSUM,
9794 g nsubdom,ipri)
9795
9796 CALL my_alloc(output%TH%ITHBUF,output%TH%SITHBUF)
9797 output%TH%ITHBUF(1:output%TH%SITHBUF) = ithbuftmp(1:output%TH%SITHBUF)
9798
9799 If (lithbufmx < output%TH%SITHBUF) then
9800 print*,'Allocation error :LITHBUFMX, SITHBUF=',lithbufmx,output%TH%SITHBUF
9801 endif
9802 ALLOCATE(rthbuf(srthbuf), stat=stat)
9804 1 rthbuf ,output%TH%ITHGRP ,output%TH%ITHBUF,x ,
ixc ,
ixtg ,skew,nthgrp)
9805
9806
9807
9808
9809 IF(nthgrp01(1) > 0) THEN
9810 output%TH%SITHGRPA = (nthgrp01(1)+nbr_th_monvol)*nithgr
9811 CALL my_alloc(output%TH%ITHGRPA,output%TH%SITHGRPA)
9812 output%TH%ITHGRPA = 0
9813 ithpart = 0
9814 ithsub = 0
9815 ithbuftmp = 0
9816 output%TH%SITHBUFA = 0
9817 ithflag = 1
9818
9819 IF(npart+nthpart>0) THEN
9820 ipartthi=>ipartth(1:2*(npart+nthpart))
9821 ELSE
9822 ipartthi=>ipartth
9823 END IF
9829 5 nthgrp1(1),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9831 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9832 8 inom_opt(5),inom_opt(8),inom_opt(7),
9833 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9834 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9836 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9837 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9838 e map_tables, 1,inom_opt(31),inom_opt(32),sensors,
9839 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9840 g nsubdom,ipri)
9841
9842 CALL my_alloc(output%TH%ITHBUFA,output%TH%SITHBUFA)
9843 output%TH%ITHBUFA = ithbuftmp(1:output%TH%SITHBUFA)
9844 ELSE
9845 output%TH%SITHGRPA = 0
9846 output%TH%SITHBUFA = 0
9847 CALL my_alloc(output%TH%ITHGRPA,output%TH%SITHGRPA)
9848 CALL my_alloc(output%TH%ITHBUFA,output%TH%SITHBUFA)
9849 ENDIF
9850
9851
9852
9853 IF(nthgrp01(2) > 0) THEN
9854 output%TH%SITHGRPB = (nthgrp01(2)+nbr_th_monvol)*nithgr
9855 CALL my_alloc(output%TH%ITHGRPB,output%TH%SITHGRPB)
9856 output%TH%ITHGRPB = 0
9857 ithpart = 0
9858 ithsub = 0
9859 ithbuftmp = 0
9860 output%TH%SITHBUFB = 0
9861 ithflag = 2
9862
9863 IF(npart+nthpart>0) THEN
9864 ipartthi=>ipartth(1+2*(npart+nthpart):4*(npart+nthpart))
9865 ELSE
9866 ipartthi=>ipartth
9867 END IF
9873 5 nthgrp1(2),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9875 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9876 8 inom_opt(5),inom_opt(8),inom_opt(7),
9877 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9878 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9880 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9881 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9882 e map_tables, 2,inom_opt(31),inom_opt(32),sensors,
9883 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9884 g nsubdom,ipri)
9885
9886 CALL my_alloc(output%TH%ITHBUFB,output%TH%SITHBUFB)
9887 output%TH%ITHBUFB = ithbuftmp(1:output%TH%SITHBUFB)
9888 ELSE
9889 output%TH%SITHGRPB = 0
9890 output%TH%SITHBUFB = 0
9891 CALL my_alloc(output%TH%ITHGRPB,output%TH%SITHGRPB)
9892 CALL my_alloc(output%TH%ITHBUFB,output%TH%SITHBUFB)
9893 ENDIF
9894
9895
9896
9897 IF(nthgrp01(3) > 0) THEN
9898 output%TH%SITHGRPC = (nthgrp01(3)+nbr_th_monvol)*nithgr
9899 CALL my_alloc(output%TH%ITHGRPC,output%TH%SITHGRPC)
9900 output%TH%ITHGRPC = 0
9901 ithpart = 0
9902 ithsub = 0
9903 ithbuftmp = 0
9904 output%TH%SITHBUFC = 0
9905 ithflag = 3
9906
9907 IF(npart+nthpart>0) THEN
9908 ipartthi=>ipartth(1+4*(npart+nthpart):6*(npart+nthpart))
9909 ELSE
9910 ipartthi=>ipartth
9911 END IF
9917 5 nthgrp1(3),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9919 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9920 8 inom_opt(5),inom_opt(8),inom_opt(7),
9921 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9922 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9924 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9925 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9926 e map_tables, 3,inom_opt(31),inom_opt(32),sensors,
9927 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9928 g nsubdom,ipri)
9929
9930 CALL my_alloc(output%TH%ITHBUFC, output%TH%SITHBUFC)
9931 output%TH%ITHBUFC(1:output%TH%SITHBUFC) = ithbuftmp(1:output%TH%SITHBUFC)
9932 ELSE
9933 output%TH%SITHGRPC = 0
9934 output%TH%SITHBUFC = 0
9935 CALL my_alloc(output%TH%ITHBUFC, output%TH%SITHBUFC)
9936 CALL my_alloc(output%TH%ITHGRPC, output%TH%SITHGRPC)
9937 ENDIF
9938
9939
9940
9941 IF(nthgrp01(4) > 0) THEN
9942 output%TH%SITHGRPD = (nthgrp01(4)+nbr_th_monvol)*nithgr
9943 CALL my_alloc(output%TH%ITHGRPD,output%TH%SITHGRPD)
9944 output%TH%ITHGRPD = 0
9945 ithpart = 0
9946 ithsub = 0
9947 ithbuftmp = 0
9948 output%TH%SITHBUFD = 0
9949 ithflag = 4
9950
9951 IF(npart+nthpart>0) THEN
9952 ipartthi=>ipartth(1+6*(npart+nthpart):8*(npart+nthpart))
9953 ELSE
9954 ipartthi=>ipartth
9955 END IF
9961 5 nthgrp1(4),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
9963 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
9964 8 inom_opt(5),inom_opt(8),inom_opt(7),
9965 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
9966 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
9968 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
9969 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
9970 e map_tables, 4,inom_opt(31),inom_opt(32),sensors,
9971 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
9972 g nsubdom,ipri)
9973
9974 CALL my_alloc(output%TH%ITHBUFD,output%TH%SITHBUFD)
9975 output%TH%ITHBUFD(1:output%TH%SITHBUFD) = ithbuftmp(1:output%TH%SITHBUFD)
9976 ELSE
9977 output%TH%SITHGRPD = 0
9978 output%TH%SITHBUFD = 0
9979 ALLOCATE(output%TH%ITHBUFD(output%TH%SITHBUFD), stat=stat)
9980 ALLOCATE(output%TH%ITHGRPD(output%TH%SITHGRPD), stat=stat)
9981 ENDIF
9982
9983
9984
9985 IF(nthgrp01(5) > 0) THEN
9986 output%TH%SITHGRPE = (nthgrp01(5)+nbr_th_monvol)*nithgr
9987 CALL my_alloc(output%TH%ITHGRPE,output%TH%SITHGRPE)
9988 output%TH%ITHGRPE = 0
9989 ithpart = 0
9990 ithsub = 0
9991 ithbuftmp = 0
9992 output%TH%SITHBUFE = 0
9993 ithflag = 5
9994
9995 IF(npart+nthpart>0) THEN
9996 ipartthi=>ipartth(1+8*(npart+nthpart):10*(npart+nthpart))
9997 ELSE
9998 ipartthi=>ipartth
9999 END IF
10000
10006 5 nthgrp1(5),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10007 6 1 ,1 ,imerge ,
ithvar ,
10008 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10009 8 inom_opt(5),inom_opt(8),inom_opt(7),
10010 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10011 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10013 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10014 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10015 e map_tables, 5,inom_opt(31),inom_opt(32),sensors,
10016 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10017 g nsubdom,ipri)
10018
10019 CALL my_alloc(output%TH%ITHBUFE,output%TH%SITHBUFE)
10020 output%TH%ITHBUFE = ithbuftmp(1:output%TH%SITHBUFE)
10021 ELSE
10022 output%TH%SITHGRPE = 0
10023 output%TH%SITHBUFE = 0
10024 CALL my_alloc(output%TH%ITHBUFE,output%TH%SITHBUFE)
10025 CALL my_alloc(output%TH%ITHGRPE,output%TH%SITHGRPE)
10026 ENDIF
10027
10028
10029
10030 IF(nthgrp01(6) > 0) THEN
10031 output%TH%SITHGRPF = (nthgrp01(6)+nbr_th_monvol)*nithgr
10032 CALL my_alloc(output%TH%ITHGRPF,output%TH%SITHGRPF)
10033 output%TH%ITHGRPF = 0
10034 ithpart = 0
10035 ithsub = 0
10036 ithbuftmp = 0
10037 output%TH%SITHBUFF = 0
10038 ithflag = 6
10039
10040 IF(npart+nthpart>0) THEN
10041 ipartthi=>ipartth(1+10*(npart+nthpart):12*(npart+nthpart))
10042 ELSE
10043 ipartthi=>ipartth
10044 END IF
10050 5 nthgrp1(6),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10051 6 1 ,1 ,imerge ,
ithvar ,
10052 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10053 8 inom_opt(5),inom_opt(8),inom_opt(7),
10054 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10055 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10057 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10058 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10059 e map_tables, 6,inom_opt(31),inom_opt(32),sensors,
10060 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10061 g nsubdom,ipri)
10062
10063 CALL my_alloc(output%TH%ITHBUFF,output%TH%SITHBUFF)
10064 output%TH%ITHBUFF(1:output%TH%SITHBUFF) = ithbuftmp(1:output%TH%SITHBUFF)
10065 ELSE
10066 output%TH%SITHGRPF = 0
10067 output%TH%SITHBUFF = 0
10068 CALL my_alloc(output%TH%ITHBUFF,output%TH%SITHBUFF)
10069 CALL my_alloc(output%TH%ITHGRPF,output%TH%SITHGRPF)
10070 ENDIF
10071
10072
10073
10074 IF(nthgrp01(7) > 0) THEN
10075 output%TH%SITHGRPG = (nthgrp01(7)+nbr_th_monvol)*nithgr
10076 CALL my_alloc(output%TH%ITHGRPG,output%TH%SITHGRPG)
10077 output%TH%ITHGRPG = 0
10078 output%TH%SITHBUFG = 0
10079 ithpart = 0
10080 ithsub = 0
10081 ithbuftmp = 0
10082 ithflag = 7
10083
10084 IF(npart+nthpart>0) THEN
10085 ipartthi=>ipartth(1+12*(npart+nthpart):14*(npart+nthpart))
10086 ELSE
10087 ipartthi=>ipartth
10088 END IF
10094 5 nthgrp1(7),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10095 6 1 ,1 ,imerge ,
ithvar ,
10096 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10097 8 inom_opt(5),inom_opt(8),inom_opt(7),
10098 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10099 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10101 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10102 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10103 e map_tables, 7,inom_opt(31),inom_opt(32),sensors,
10104 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10105 g nsubdom,ipri)
10106
10107 CALL my_alloc(output%TH%ITHBUFG,output%TH%SITHBUFG)
10108 output%TH%ITHBUFG(1:output%TH%SITHBUFG) = ithbuftmp(1:output%TH%SITHBUFG)
10109 ELSE
10110 output%TH%SITHGRPG = 0
10111 output%TH%SITHBUFG = 0
10112 CALL my_alloc(output%TH%ITHBUFG,output%TH%SITHBUFG)
10113 CALL my_alloc(output%TH%ITHGRPG,output%TH%SITHGRPG)
10114 ENDIF
10115
10116
10117
10118 IF(nthgrp01(8) > 0) THEN
10119 output%TH%SITHGRPH = (nthgrp01(8)+nbr_th_monvol)*nithgr
10120 CALL my_alloc(output%TH%ITHGRPH,output%TH%SITHGRPH)
10121 output%TH%ITHGRPH = 0
10122 ithpart = 0
10123 ithsub = 0
10124 ithbuftmp = 0
10125 output%TH%SITHBUFH = 0
10126 ithflag = 8
10127
10128 IF(npart+nthpart>0) THEN
10129 ipartthi=>ipartth(1+14*(npart+nthpart):16*(npart+nthpart))
10130 ELSE
10131 ipartthi=>ipartth
10132 END IF
10138 5 nthgrp1(8),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10139 6 1 ,1 ,imerge ,
ithvar ,
10140 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10141 8 inom_opt(5),inom_opt(8),inom_opt(7),
10142 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10143 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10145 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10146 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10147 e map_tables, 8,inom_opt(31),inom_opt(32),sensors,
10148 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10149 g nsubdom,ipri)
10150
10151 CALL my_alloc(output%TH%ITHBUFH,output%TH%SITHBUFH)
10152 output%TH%ITHBUFH(1:output%TH%SITHBUFH) = ithbuftmp(1:output%TH%SITHBUFH)
10153 ELSE
10154 output%TH%SITHGRPH = 0
10155 output%TH%SITHBUFH = 0
10156 CALL my_alloc(output%TH%ITHBUFH,output%TH%SITHBUFH)
10157 CALL my_alloc(output%TH%ITHGRPH,output%TH%SITHGRPH)
10158 ENDIF
10159
10160
10161
10162 IF(nthgrp01(9) > 0) THEN
10163 output%TH%SITHGRPI = (nthgrp01(9)+nbr_th_monvol)*nithgr
10164 CALL my_alloc(output%TH%ITHGRPI,output%TH%SITHGRPI)
10165 output%TH%ITHGRPI = 0
10166 ithpart = 0
10167 ithsub = 0
10168 ithbuftmp = 0
10169 output%TH%SITHBUFI = 0
10170 ithflag = 9
10171
10172 IF(npart+nthpart>0) THEN
10173 ipartthi=>ipartth(1+16*(npart+nthpart):18*(npart+nthpart))
10174 ELSE
10175 ipartthi=>ipartth
10176 END IF
10182 5 nthgrp1(9),ithpart ,ithsub ,fxbipm ,ipartthi,2 ,
10183 6 1 ,1 ,imerge ,
ithvar ,
10184 7 1 ,nvarabf ,
nom_opt ,inom_opt(11),inom_opt(3),
10185 8 inom_opt(5),inom_opt(8),inom_opt(7),
10186 9 inom_opt(2),inom_opt(1),inom_opt(10),inom_opt(27),
10187 a inom_opt(28),inom_opt(22),
isphio,srthbuf,t_monvol ,
10189 c iparts ,ipartq ,ipartc ,ipartt ,ipartp ,ipartr ,
10190 d ipartg ,ipartx ,ipartsp ,ipartig3d,lithbufmx,
10191 e map_tables, 9,inom_opt(31),inom_opt(32),sensors,
10192 f interfaces,
ipari ,0,glob_therm%ITHERM_FE,output%CHECKSUM,
10193 g nsubdom,ipri)
10194
10195 CALL my_alloc(output%TH%ITHBUFI,output%TH%SITHBUFI)
10196 output%TH%ITHBUFI = ithbuftmp(1:output%TH%SITHBUFI)
10197 ELSE
10198 output%TH%SITHGRPI = 0
10199 output%TH%SITHBUFI = 0
10200 CALL my_alloc(output%TH%ITHBUFI,output%TH%SITHBUFI)
10201 CALL my_alloc(output%TH%ITHGRPI,output%TH%SITHGRPI)
10202 ENDIF
10203
10204
10205 IF(ALLOCATED(ithpart)) DEALLOCATE(ithpart)
10206 IF(ALLOCATED(ithsub)) DEALLOCATE(ithsub)
10207 IF(ALLOCATED(ithbuftmp)) DEALLOCATE(ithbuftmp)
10208
10209
10210
10211
10213 . sizloadp ,nloadp ,slloadp ,nibcld ,npreld ,
10214 . nsurf ,numnod )
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10265 . 0 ,nthgrp )
10266 IF(nthgrp01(1) > 0)
10268 . i ,nthgrp1(1) )
10269 IF(nthgrp01(2) > 0)
10271 . i ,nthgrp1(2) )
10272 IF(nthgrp01(3) > 0)
10274 . i ,nthgrp1(3) )
10275 IF(nthgrp01(4) > 0)
10277 . i ,nthgrp1(4) )
10278 IF(nthgrp01(5) > 0)
10280 . i ,nthgrp1(5) )
10281 IF(nthgrp01(6) > 0)
10283 . i ,nthgrp1(6) )
10284 IF(nthgrp01(7) > 0)
10286 . i ,nthgrp1(7) )
10287 IF(nthgrp01(8) > 0)
10289 . i ,nthgrp1(8) )
10290 IF(nthgrp01(9) > 0)
10292 . i ,nthgrp1(9) )
10294
10295
10296
10297 IF(nsubdom>0) THEN
10300 ENDIF
10301
10302
10303
10304 err_msg='DYNAMIC STORAGE MADYMO LINK'
10305 err_category='DYNAMIC STORAGE MADYMO LINK'
10306 CALL trace_in1(err_msg,len_trim(err_msg))
10307 srconx = nconx*nrcnx
10308 ALLOCATE(rconx(srconx) ,stat=stat)
10309 rconx = zero
10310
10311
10312
10313 IF(nrbmerge > 0) THEN
10314 nrbody = nrbykin + nrbylag
10315 ENDIF
10316
10317
10318
10319
10320 nrcvvois0 = 0
10321
10323 1 lenwa ,nthwa ,nairwa ,numels ,numelq,
10324 2 numelc,numeltg,numelt ,numelp ,numelr,
10325 3 numnod,nmnt ,l_mul_lag1,l_mul_lag,maxnx ,
10326 4 lwasph,numsph ,lwaspio, nrcvvois0,ngroup,
10327 5 lwamp_l,lwanmp_l ,glob_therm%ITHERM)
10328 lwamp = lwamp_l
10329 lwanmp = lwanmp_l
10330
10331 ALLOCATE(mwa(lenwa) , stat=stat)
10332 mwa = zero
10335
10336
10337
10338
10339
10340 err_msg='INTERFACE INITIALIZATION PHASE 2'
10341 err_category='INTERFACES'
10342 CALL trace_in1(err_msg,len_trim(err_msg))
10343 i2nsnt = 0
10344
10345 ALLOCATE(ms_b(numnod),stat=stat)
10346 ms_b(1:numnod)=ms(1:numnod)
10347 IF(iroddl==1) THEN
10348 ALLOCATE(in_b(numnod),stat=stat)
10349 in_b(1:numnod)=in(1:numnod)
10350 ELSE
10351 ALLOCATE(in_b(1))
10352 ENDIF
10353
10354 IF(ns10e>0.AND.n2d==0)
CALL stifn0_nd(icnds10,stiffn)
10355 IF(ninter > 0) THEN
10359 . mwa ,d ,i2nsnt ,in ,
10361 . intbuf_tab,stifintr,itagnd,icnds10,ms_b,in_b,
nstrf,itagcyc,
10364 . s_nod2els )
10365 ENDIF
10367
10368
10369
10370 IF(ns10e>0.AND.n2d==0)
CALL stifn1_nd(icnds10,stiffn)
10371 IF(ndamp>0)
CALL dampdtnoda(ms_b,in_b,stiffn,stiffn(numnod+1),
10373
10374
10375
10378
10379
10380
10382
10383
10384
10385 err_msg='ADDED MASS ESTIMATION'
10386 err_category='ADDED MASS ESTIMATION'
10387 CALL trace_in1(err_msg,len_trim(err_msg))
10389
10390
10391
10392 IF(nsubdom>0) THEN
10394 . isheoff,itruoff ,ipouoff ,iresoff ,itrioff,
10395 . iquaoff)
10396 ENDIF
10397
10398 DEALLOCATE(stifint)
10399 DEALLOCATE(stifintr)
10400 DEALLOCATE(ms_b)
10401 DEALLOCATE(in_b)
10402 DEALLOCATE(dtelem)
10404
10405
10406
10407 err_msg='RBE3 INITIALIZATION'
10408 err_category='RBE3'
10409 CALL trace_in1(err_msg,len_trim(err_msg))
10410 IF(sirbe3 > 0) THEN
10412 . ms ,in ,
nom_opt(lnopt1*inom_opt(14)+1),
10414 ENDIF
10415 DEALLOCATE(stiffn)
10417
10418 err_msg='KINEMATIC CONDITIONS CHECK'
10419 err_category='KINEMATIC CONDITIONS'
10420 CALL trace_in1(err_msg,len_trim(err_msg))
10421
10422
10423
10424 IF(ns10e>0) THEN
10428 . nnpby,slrbody,nrbe2l ,slrbe2,
10432 END IF
10433
10434
10435
10436
10437
10438
10441 .
nom_opt ,inom_opt(5),inom_opt(13),inom_opt(14) ,
10442 . itagcyc )
10443 IF(ninvel/=0)
10446 2 frbe3,x ,skew ,v ,vr )
10447#ifdef DNC
10448 IF(nexmad/=0)
10449 .
CALL madchk(d ,
itab ,
iconx(7*nconx+1))
10450#endif
10452
10453
10454
10455 err_msg='MASS ARRAY ALLOCATION'
10456 err_category='INIIAL MASS'
10457 CALL trace_in1(err_msg,len_trim(err_msg))
10458 ALLOCATE(ms0(numnod) ,stat=stat)
10459 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
10460 . msgtype=msgerror,
10461 . c1='MS0')
10462 ms0(1:numnod)=ms(1:numnod)
10464
10465
10466
10467
10468 IF(nsphio > 0)THEN
10469 sibufssg_io = 4*nseg_io
10470 ALLOCATE(
ibufssg_io(sibufssg_io) ,stat=stat)
10471 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
10472 . msgtype=msgerror,
10473 . c1='IBUFSSG_IO')
10476 ELSE
10478 sibufssg_io = 0
10479 ENDIF
10480
10481
10482
10483
10484
10485 CALL python_duplicate_nodes(
itab,numnod,nspmd)
10487
10488
10489
10490 err_msg='DOMAIN DECOMPOSITION PHASE 2'
10491 err_category='INTERNAL'
10492 CALL trace_in1(err_msg,len_trim(err_msg))
10493 sfr_iad = (nspmd+1)*2
10494 ALLOCATE(fr_iad(sfr_iad))
10495 IF(i2nsnt>0) THEN
10496 ALLOCATE(celi2(i2nsnt))
10497 ALLOCATE(cepi2(i2nsnt))
10498 ALLOCATE(
addcni2(0:numnod+1))
10499 ENDIF
10500 ALLOCATE(
iskwp(numskw+1))
10501 ALLOCATE(
nskwp(nspmd))
10502 ALLOCATE(
isensp(2*sensors%NSENSOR))
10504 ALLOCATE(
iaccp(naccelm))
10505 ALLOCATE(
naccp(nspmd))
10506 ALLOCATE(
igaup(nbgauge))
10507 ALLOCATE(
ngaup(nspmd))
10508 ALLOCATE(tag_skn(numskw+
nsubmod+1))
10509 ALLOCATE(skews%MULTIPLE_SKEW(numskw+1))
10510 iskwp(1:numskw+1) = 0
10511 tag_skn(1:numskw+
nsubmod+1) = 0
10513
10514 IF(.NOT.
ALLOCATED(
ibvel))
ALLOCATE(
ibvel(0))
10515 IF(.NOT.
ALLOCATED(
lbvel))
ALLOCATE(
lbvel(0))
10516
10523 6
igrsurf,addcne ,lcne ,geo ,
10531 e icnds10,itagnd ,
igeo ,tag_skn ,skews%MULTIPLE_SKEW,
10533 g sensors,scep ,ebcs_tab,loads,
iframe,
10534 h glob_therm%NICONV ,glob_therm%NIRADIA ,glob_therm%NITFLUX,
10535 i glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX,
10536 j sensor_user_struct)
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552 IF(ns10e>0) THEN
10553 IF(ipari0/=0) THEN
10554 ALLOCATE(celcnd(ns10e))
10555 ALLOCATE(cepcnd(ns10e))
10556 ALLOCATE(addcncnd(0:numnod+1))
10557 CALL pre_cndpon(icnds10,addcncnd,cepcnd,celcnd ,itagnd )
10558 lcncnd = addcncnd(numnod+1)-addcncnd(1)
10559 IF(lcncnd>0) THEN
10560 ALLOCATE(cncnd(lcncnd))
10561 cncnd(1:lcncnd)=0
10562 CALL fillcncnd(cncnd ,addcncnd,icnds10,itagnd)
10563 END IF
10564 END IF
10565 END IF
10566
10567
10568
10569 IF(nrbykin > 0) THEN
10570 call hierarchy_rbody_ddm(nrbykin ,nnpby ,
npby ,slrbody ,
lpby ,
10571 . numnod ,nspmd )
10572 ENDIF
10573
10575 err_msg='PROCESS BEM FOR SPMD'
10576 err_category='PROCESS BEM FOR SPMD'
10577 CALL trace_in1(err_msg,len_trim(err_msg))
10578 IF(nflow>0 .AND. nspmd > 1)
CALL flowdec(iflow)
10580
10581
10582
10583 err_msg='CLOSING TMP INPUT FILE'
10584 err_category='INTERNAL'
10585 CALL trace_in1(err_msg,len_trim(err_msg))
10586 IF(ipid/=0) CLOSE (unit=iin)
10588
10589
10590
10591 err_msg='ANIMATION FILE WRITING'
10592 err_category='ANIMATION FILE WRITING'
10593 CALL trace_in1(err_msg,len_trim(err_msg))
10594 WRITE(istdo,'(A)')titre(46)
10595 IF(ioutput>0)
CALL desout(
10598 . geo ,ms ,ixs10 ,
igeo ,
ipm ,
10599 .
kxsp ,
ipart ,ipartsp,names_and_titles )
10600 mwa = zero
10601
10602
10603
10604 ifvani=0
10605 IF(anim_vers>=40.AND.(dsanim==1.OR.
10606 . decani==1.OR.
10607 . nmanim>0.OR.ifvani>0)) THEN
10608 nel3d = numels + numsph + 3*numels16 + 27*numelig3d
10609 nel2d = numelc + numeltg + numelq
10610 nel1d = numelt + numelp + 2*numelr
10611 nel =
max(nel1d,nel2d,nel3d)
10612
10613 siad=npart+1
10614 swaft=
max(3*numnod,6*nel3d,3*nel2d,9*nel1d)
10615 smas=nel+3*numels16
10616 swa4=3*numnod+2*numels16
10617 smater=npart
10618 sel2fa=nel+1
10619 sxnorm=3*numnod+2*numels16
10620 sinvert=nel2d
10621 IF(numelx>0) THEN
10622 snfacptx=npart
10623 sixedge=2*nanim1d
10624 soffx1=nanim1d
10625 snumx1=nanim1d
10626 sfunc1=10*nanim1d
10627 ELSE
10628 snfacptx=1
10629 sixedge=1
10630 soffx1=1
10631 snumx1=1
10632 sfunc1=1
10633 ENDIF
10634
10635 ianim=0
10636 nelem=numelc+numeltg+numels+numelr +
10637 . numelp+numelt +numelq+numelx
10638
10639 CALL my_alloc(dnull,3*numnod)
10640 DO i=1,3*numnod
10641 dnull(i)=zero
10642 ENDDO
10643
10644 DO i=1,mx_ani
10645 anim_n(i)=0
10646 anim_v(i)=0
10647 anim_ce(i)=0
10648 anim_ct(i)=0
10649 anim_se(i)=0
10650 anim_st(i)=0
10651 anim_fe(i)=0
10652 anim_ft(i)=0
10653 ENDDO
10654 anim_m=1
10655 nn_ani=0
10656 nv_ani=nmanim
10657 nce_ani=9*nmanim
10658 nct_ani=2*nmanim
10659 nse_ani=9*nmanim
10660 nst_ani=1*nmanim
10661 nfe_ani=8*nmanim
10662
10668 5
ipart ,iparts ,ipartq ,ipartc ,
10669 6 ipartt ,ipartp ,ipartr ,ipartg ,
10670 7 rby ,swa4 ,
10672 9 ipartsp ,spbuf ,ixs10 ,ixs20 ,ixs16 ,
10673 a
ipm,
igeo, smater, sel2fa, snfacptx,
10674 b sixedge, soffx1, snumx1, sxnorm, sinvert,
10675 c sfunc1, siad , nmanim, dnull, smas,
10676 d ms ,fxani ,mbufel ,mdepl ,nslevel ,
10677 e elsub, dsanim, nelem, cep, cepsp,
10678 f
nom_opt ,inom_opt(5),inom_opt(8),
10680 DEALLOCATE(dnull)
10681
10682 ENDIF
10683
10684
10685
10686
10687 IF((is_dyna /= 0 .OR. nb_dyna_include /= 0) .AND. (ngine+nanim_eng /= 0))THEN
10689 END IF
10690
10691
10692
10705 c skew ,
iskwn ,xframe ,t_monvol ,t_monvol_metadata,
10706 d
i2rupt ,areasl ,intbuf_fric_tab ,npfricorth ,mat_elem ,
10707 e pfricorth ,irepforth ,phiforth ,vforth ,xrefc ,
10708 f xreftg ,xrefs ,tagxref ,
ixs ,
ixc ,
10713 p mgrby ,ixs10 ,isolnod ,
ixr ,r_skew ,
10714 o
ixp ,
ixt ,x ,thke ,sh4ang ,
10715 q thkec ,sh3ang ,
set ,lsubmodel ,
igrnod ,
10722 x xyzref ,sensors ,func2d ,
10724 z ibmpc2 ,ibmpc3 ,ibmpc4 ,rbmpc ,
ljoint ,
10727 c liflow ,lrflow ,iflow ,rflow ,
10730 f gjbufr ,ms ,in ,
lgauge ,gauge ,
10732 h
iconx ,fxbipm ,fxbfile_tab ,eigipm ,eigrpm ,
10733 i
isphio ,vsphio ,ebcs_tab ,inimap1d ,inimap2d ,
10734 j nsigsh ,sigsh ,nsigi ,sigsp ,nsigs ,
10735 k sigi ,nsigbeam ,sigbeam ,nsigtruss ,sigtruss ,
10736 l nsigrs ,sigrs ,merge_node_tab ,merge_node_tol,
10737 m imerge ,nmerge_tot ,
iexlnk ,drapeg ,user_windows ,output ,
10738 n defaults ,glob_therm ,pblast ,ibeam_vector ,rbeam_vector ,
10739 o damp_range_part)
10740
10741 DEALLOCATE(sigi)
10742 DEALLOCATE(sigsh)
10743 DEALLOCATE(sigsp)
10744 DEALLOCATE(sigrs)
10745 DEALLOCATE(sigbeam)
10746 DEALLOCATE(sigtruss)
10747 DEALLOCATE(ibeam_vector)
10748 DEALLOCATE(rbeam_vector)
10749
10750
10751
10752 CALL cpp_delete_model()
10753
10754 IF(ninter > 0) THEN
10756 DEALLOCATE(areasl)
10757 ENDIF
10758 IF(nrbmerge > 0) THEN
10759 DEALLOCATE(mgrby)
10760 ENDIF
10761
10762
10763
10764 IF(nfunc2d > 0) THEN
10765 DO kk = 1, nfunc2d
10766 DEALLOCATE(func2d(kk)%XVAL, func2d(kk)%FVAL)
10767 ENDDO
10768 DEALLOCATE(func2d)
10769 ENDIF
10770 IF(ALLOCATED(rnoise)) DEALLOCATE(rnoise)
10771 IF(ALLOCATED(perturb)) DEALLOCATE(perturb)
10772 IF(ALLOCATED(qp_iperturb)) DEALLOCATE(qp_iperturb)
10773 IF(ALLOCATED(qp_rperturb)) DEALLOCATE(qp_rperturb)
10774
10775
10776 IF(ninter > 0 .AND.ninterfric >0.AND. iorthfricmax > 0) THEN
10777
10778 DEALLOCATE(pfricorth ,irepforth , vforth ,phiforth )
10779
10780 ENDIF
10781
10782
10784 err_msg='RESTART FILE(S) WRITING'
10785 err_category='RESTART FILE(S) WRITING'
10786 CALL trace_in1(err_msg,len_trim(err_msg))
10787 IF(ierr==0) THEN
10788
10789
10790
10793
10794
10795
10796 ilen =
max(numels,numelq,numelc,numelt,numelp,numelr,numeltg)
10797 IF(lcne>0) ALLOCATE(cne(lcne),stat=stat)
10798 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'CNE')
10800 1 cne ,lcne ,
ixs ,ixs10 ,ixs20 ,
10806 7 glob_therm%NICONV ,glob_therm%NIRADIA ,glob_therm%NITFLUX,
10807 8 glob_therm%NUMCONV,glob_therm%NUMRADIA,glob_therm%NFXFLUX)
10808 IF(i2nsnt>0) THEN
10809 IF(lcni2g>0) ALLOCATE(cni2(lcni2g))
10812 ENDIF
10813
10814
10816
10817 lenvolu = nimv*nvolu+licbag+libagjet+libaghol+libagale
10818
10819 lnom_opt=snom_opt
10820 lenpor = snodpor
10821
10822 lenthg = output%TH%SITHBUF
10823 lenthgr = srthbuf
10824
10825 lbufmat = sbufmat
10826 lbufgeo = sbufgeo
10827 lbufsf = sbufsf
10828 pm1shf = 1
10829 pm1sph = 1
10830
10831
10832
10834
10837
10839
10842
10844 ENDIF
10845
10846
10847
10848 IF((nsubdom>0).AND.(flg_r2r_err==0)) THEN
10850 IF(iddom>0) THEN
10851 WRITE(istdo,'(A)')' .. MULTIDOMAINS DOMDEC SYNCHRONIZATION '
10853 ELSE
10855 ENDIF
10856 ENDIF
10857
10858
10859
10860
10861
10862 DEALLOCATE(ikine1lag)
10863 DEALLOCATE(iwcont)
10864 DEALLOCATE(iwcin2)
10865 DEALLOCATE(dsdof)
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10879
10880
10881
10882 IF(nspmd > 1 .AND. iddlevel > 0) THEN
10884 ENDIF
10885
10886
10887
10888
10889
10890
10893
10894
10895 ALLOCATE(
addcsrect(numnor+1),csrect(4*nrtmt_25),stat=stat)
10896 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
10897 . msgtype=msgerror,
10898 . c1='CSRECT')
10900
10901 IF(ninter25 /= 0)
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10923
10924
10925
10926
10927
10928
10929
10930
10932 IF(nplymax > 0)THEN
10934 . ipartc,ipartq,ipartg ,stack )
10935 ENDIF
10936
10937
10938
10940
10942
10944
10945 ALLOCATE( ale_elm(nspmd) )
10946 IF( (numels>0).AND.(iale+ieuler+glob_therm%ITHERM+ialelag/=0) ) THEN
10948 ELSE
10949 size_ale_elm(1:nspmd) = 0
10950 ENDIF
10951
10952
10953 IF(iale+ieuler+glob_therm%ITHERM+ialelag/=0) THEN
10954 ALLOCATE( indx_s(numels) )
10955 ALLOCATE( indx_q(numelq) )
10956 ALLOCATE( indx_tg(numeltg) )
10957 ALLOCATE( face_elm_s(6*numels,2) )
10958 ALLOCATE( face_elm_q(4*numelq,2) )
10959 ALLOCATE( face_elm_tg(3*numeltg,2) )
10960
10961 indx_s(1:numels) = 0
10962 indx_q(1:numelq) = 0
10963 indx_tg(1:numeltg) = 0
10964 face_elm_s(1:6*numels,1:2) = 0
10965 face_elm_q(1:4*numelq,1:2) = 0
10966 face_elm_tg(1:3*numeltg,1:2) = 0
10967 bool_ale_tg = (n2d/=0.AND.multi_fvm%IS_USED)
10969 1 face_elm_s,face_elm_q,face_elm_tg,
10970 2
ixs,
ixq,
ixtg,cep,ale_connectivity,bool_ale_tg)
10971
10972 ELSE
10973 ALLOCATE( indx_s(0) )
10974 ALLOCATE( indx_q(0) )
10975 ALLOCATE( indx_tg(0) )
10976 ALLOCATE( face_elm_s(0,0) )
10977 ALLOCATE( face_elm_q(0,0) )
10978 ALLOCATE( face_elm_tg(0,0) )
10979 ENDIF
10980
10981
10982
10983
10984 CALL split_pcyl(loads%NLOAD_CYL,loads,loads_per_proc)
10985
10986
10987
10988
10989 CALL split_bcs_wall(bcs_per_proc, cep, scep, nspmd)
10990 CALL split_bcs_nrf(bcs_per_proc, cep, scep, nspmd)
10991
10992
10993
10994
10995 call alloc_constraint_struct(nrwall,nspmd,constraint_struct)
10996 call split_rwall(nrwall,nspmd,nnprw,slprw,
nprw,
lprw,constraint_struct)
10997
10998
10999
11000
11001
11002
11003
11004
11005
11007
11008
11009 ALLOCATE(tag_skins6(numels))
11011 p=0
11012 np=p
11013 IF(.NOT. ALLOCATED(partsav)) ALLOCATE(partsav(0))
11014 IF(.NOT. ALLOCATED(admsms)) ALLOCATE(admsms(0))
11015 IF(.NOT. ALLOCATED(dmelc)) ALLOCATE(dmelc(0))
11016 IF(.NOT. ALLOCATED(dmels)) ALLOCATE(dmels(0))
11017 IF(.NOT. ALLOCATED(dmeltg)) ALLOCATE(dmeltg(0))
11018 IF(.NOT. ALLOCATED(dmeltr)) ALLOCATE(dmeltr(0))
11019 IF(.NOT. ALLOCATED(dmelp)) ALLOCATE(dmelp(0))
11020 IF(.NOT. ALLOCATED(dmelrt)) ALLOCATE(dmelrt(0))
11021 IF(.NOT. ALLOCATED(res_sms)) ALLOCATE(res_sms(0))
11022 IF(.NOT. ALLOCATED(diag_sms)) ALLOCATE(diag_sms(0))
11023 IF(.NOT. ALLOCATED(cne_pxfem)) ALLOCATE(cne_pxfem(0))
11024 IF(.NOT. ALLOCATED(cel_pxfem)) ALLOCATE(cel_pxfem(0))
11025 IF(.NOT. ALLOCATED(msz2)) ALLOCATE(msz2(0))
11026 IF(.NOT. ALLOCATED(xfem_phantom)) ALLOCATE(xfem_phantom(0))
11027
11028
11029 nindx_nm = 0
11030 nindx_scrt = 0
11031 IF(ninter>0) THEN
11032 ALLOCATE( tag_nm(numnod) )
11033 ALLOCATE( indx_nm(numnod) )
11034 ALLOCATE( tag_scratch(i24maxnsne2+numnod+numels+numfakenodigeo) )
11035 ALLOCATE(indx_scrt(i24maxnsne2+numnod+numels+numfakenodigeo) )
11036 tag_nm(1:numnod) = 0
11037 indx_nm(1:numnod) = 0
11038 tag_scratch(1:i24maxnsne2+numnod+numels+numfakenodigeo) = 0
11039 indx_scrt(1:i24maxnsne2+numnod+numels+numfakenodigeo) = 0
11040 ELSE
11041 ALLOCATE(tag_nm(0))
11042 ALLOCATE(indx_nm(0))
11043 ALLOCATE( tag_scratch(0) )
11044 ALLOCATE(indx_scrt(0) )
11045 ENDIF
11046
11047 220 CONTINUE
11048
11049
11050 np=np+1
11051 p=np
11052
11053
11054#if defined(_OPENMP)
11055 itask = omp_get_thread_num()
11056#endif
11057
11058 IF(p > nspmd) GOTO 221
11059
11060 NULLIFY(pmemflow) ; IF(nspmd > 0) pmemflow => memflow(1,p)
11061
11062
11064 1 p ,cep ,cel ,
igeo ,mat_elem ,
11067 4 ipartt ,ipartp ,ipartr ,ipartg ,detonators ,
11068 5 ipartx ,
npc ,
ixtg ,group_param_tab,
11069 6
ixtg1 ,
ixs ,ixs10 ,ixs20 ,ixs16 ,
11072 9 ale_connectivity,
11080 h fr_iad ,x ,d ,v ,vr ,
11081 i dr ,thke ,dampr ,damp ,ms ,
11082 j in ,tf ,pm ,skew ,xframe ,
11083 k geo ,eani ,bufmat ,
bufgeo ,bufsf ,
11084 l rbmpc ,gjbufr ,w ,veul ,fill ,
11085 m dfill ,wb ,dsave ,asave ,msnf ,
11086 n spbuf ,forc ,vel ,fsav ,fzero ,
11087 o xlas ,accelm ,fbvel ,grav ,
11088 p fr_wave ,
failwave ,parts0 ,elbuf ,
11089 q rwbuf ,rwsav ,rby ,rivet ,
11090 r secbuf ,volmon ,rconx ,
nloc_dmg ,
11091 s fvmain ,libagale ,lenthg ,lbufmat ,lbufgeo ,
11092 t lbufsf ,sxlas ,lnom_opt ,silas ,
11093 u lenvolu ,npts ,cne ,lcne ,
11094 v addcne ,cni2 ,lcni2g ,
addcni2 ,cepi2 ,
11095 w celi2 ,i2nsnt ,probint ,ddstat(1,p) ,pm1shf,
11098 a nthwa ,nairwa ,nmnt ,l_mul_lag1 ,l_mul_lag ,
11099 b lwaspio ,ipartsp ,
ispcond ,pm1sph ,
11100 c wma ,
11101 d eigipm ,eigibuf ,eigrpm ,
11103 f ipartth ,
11104 j fxbipm ,fxbrpm ,fxbnod ,fxbmod ,fxbglm ,
11105 k fxbcpm ,fxbcps ,fxblm ,fxbfls ,fxbdls ,
11106 l fxbdep ,fxbvit ,fxbacc ,fxbelm ,fxbsig ,
11117 w inc ,intg ,ptg ,mcpc ,mcptg ,
11118 x rcontact ,acontact ,pcontact ,mscnd ,incnd ,
11119 y mssa ,mstr ,msp ,msrt ,
ibcr ,
11120 z fradia ,dmelc ,dmeltg ,dmels ,dmeltr ,
11121 1 dmelp ,dmelrt ,res_sms ,
isphio ,
11124 8 ms_ply,
11128 c msz2 ,itask ,diag_sms,
11137 m i11flag ,xfem_tab ,lenthgr ,rthbuf ,
11139 o ncrkpart ,indx_crk ,crklvset ,crkshell ,crksky ,
11140 p crkavx ,crkedge ,sensors ,
11143 s itagnd ,icnds10 ,addcncnd ,
11144 t cepcnd ,celcnd ,cncnd ,
nativ_sms ,i24maxnsne ,
11148 x poin_part_shell,poin_part_tri,poin_part_sol,mid_pid_shell,mid_pid_tri ,
11149 y mid_pid_sol , tag_nm ,nindx_nm ,indx_nm ,tag_scratch ,
11150 z nindx_scrt , indx_scrt ,flag_24_25 ,numnod_l(p) ,tag_skn ,
11151 a skews%MULTIPLE_SKEW, igrsurf_proc,knotlocpc ,knotlocel ,ale_elm(p),
11152 b size_ale_elm(p),pinch_data ,tag_skins6 ,
ibcscyc ,
lbcscyc ,t_monvol,
11153 c indx_s,indx_q,indx_tg,face_elm_s,face_elm_q,face_elm_tg,nbr_th_monvol, ebcs_tab,
11155 e drapeg ,user_windows ,output ,interfaces ,number_load_cyl ,
11156 f loads_per_proc(p), python,dpl0cld,vel0cld ,names_and_titles,
11157 g bcs_per_proc(p),constraint_struct,glob_therm,pblast,rwstif_pen ,sln_pen )
11158 GOTO 220
11159 221 CONTINUE
11160
11161 DEALLOCATE(tag_nm,tag_scratch)
11162 DEALLOCATE(indx_nm,indx_scrt)
11163
11164 DEALLOCATE(tag_skins6)
11165 ENDIF
11166
11167
11169 DEALLOCATE( igrsurf_proc )
11170
11172
11173 CALL bcs%DEALLOCATE()
11174 DO p=1,nspmd
11175 CALL bcs_per_proc(p)%DEALLOCATE()
11176 ENDDO
11177
11178 DEALLOCATE( ale_elm )
11179
11180 DEALLOCATE( indx_s )
11181 DEALLOCATE( indx_q )
11182 DEALLOCATE( indx_tg )
11183 DEALLOCATE( face_elm_s )
11184 DEALLOCATE( face_elm_q )
11185 DEALLOCATE( face_elm_tg )
11186
11188
11190 err_msg='CLOSING STARTER'
11191 CALL trace_in1(err_msg,len_trim(err_msg))
11192
11193
11194
11195
11197
11198 IF(ALLOCATED(cep)) DEALLOCATE(cep)
11199 IF(ALLOCATED(cel)) DEALLOCATE(cel)
11200
11201 IF(lcne>0)THEN
11202 DEALLOCATE(cne)
11203 END IF
11204
11205 IF(i2nsnt>0) THEN
11206 DEALLOCATE(celi2)
11207 DEALLOCATE(cepi2)
11209 END IF
11219 DEALLOCATE(eigipm, eigibuf, eigrpm)
11220 DEALLOCATE(tag_skn)
11221 DEALLOCATE(skews%MULTIPLE_SKEW)
11222 IF(iddlevel ==1 .OR. ((ninter == 0).AND.(isms == 0))) THEN
11223 DEALLOCATE(tagxref)
11224 DEALLOCATE(tagrefsta)
11225 ENDIF
11226
11227 IF(numsph>0) THEN
11228 DEALLOCATE(cepsp)
11229 END IF
11230 IF(nsphio>0)THEN
11232 DEALLOCATE(reservep)
11233 ENDIF
11234 DEALLOCATE(celsph)
11235
11236 IF(lag_ncf > 0) THEN
11238 DEALLOCATE(lll)
11239 END IF
11240
11241
11242
11244 DEALLOCATE(csrect)
11245 DEALLOCATE(igeo_stack,geo_stack)
11247 IF(ALLOCATED(fxbfile_tab)) DEALLOCATE(fxbfile_tab)
11248
11250 IF(ALLOCATED(tab_ump_old)) DEALLOCATE(tab_ump_old)
11252 IF(ALLOCATED(poin_ump_old)) DEALLOCATE(poin_ump_old)
11253
11254 DEALLOCATE( poin_part_shell )
11255 DEALLOCATE( poin_part_tri )
11256 DEALLOCATE( poin_part_sol )
11257 DO i=1,nummat
11258 IF(ALLOCATED(mid_pid_shell(i)%PID1D))DEALLOCATE( mid_pid_shell(i)%PID1D )
11259 IF(ALLOCATED(mid_pid_shell(i)%COST1D))DEALLOCATE( mid_pid_shell(i)%COST1D )
11260
11261 IF(ALLOCATED(mid_pid_shell(i)%PID1D))DEALLOCATE( mid_pid_tri(i)%PID1D )
11262 IF(ALLOCATED(mid_pid_tri(i)%COST1D))DEALLOCATE( mid_pid_tri(i)%COST1D )
11263 DO j=1,7
11264 IF(ALLOCATED(mid_pid_sol(i,j)%PID1D)) DEALLOCATE( mid_pid_sol(i,j)%PID1D )
11265 IF(ALLOCATED(mid_pid_sol(i,j)%COST1D)) DEALLOCATE( mid_pid_sol(i,j)%COST1D )
11266 ENDDO
11267 ENDDO
11268 DEALLOCATE( mid_pid_shell,mid_pid_tri )
11269 DEALLOCATE( mid_pid_sol )
11270
11271
11274 IF(ALLOCATED(msig3d)) DEALLOCATE(msig3d)
11275 IF(ns10e>0.AND.ipari0/=0) THEN
11276 DEALLOCATE(celcnd)
11277 DEALLOCATE(cepcnd)
11278 DEALLOCATE(addcncnd)
11279 IF(lcncnd>0) DEALLOCATE(cncnd)
11280 END IF
11281 IF(ALLOCATED(itagnd)) DEALLOCATE(itagnd)
11282 IF(ns10e>0) DEALLOCATE(icnds10)
11284 IF(ALLOCATED(t_monvol)) DEALLOCATE(t_monvol)
11286 IF(nbcscyc>0) DEALLOCATE(itagcyc)
11287 IF(ALLOCATED(fvm_inivel)) DEALLOCATE(fvm_inivel)
11288
11289
11290 IF(n_seatbelt > 0) THEN
11291 DO i=1,n_seatbelt
11293 ENDDO
11295 ENDIF
11296
11297 IF(nslipring > 0) THEN
11298 DO i=1,nslipring
11300 ENDDO
11302 ENDIF
11303
11304 IF(nretractor > 0) THEN
11305 DO i=1,nretractor
11307 DO j=1,2
11309 DEALLOCATE(
retractor(i)%TABLE(j)%X(1)%VALUES)
11311 DEALLOCATE(
retractor(i)%TABLE(j)%Y%VALUES)
11313 ENDIF
11314 ENDDO
11315 ENDDO
11317 ENDIF
11318 IF((ipart_stack > 0 .OR. ipart_pcompp > 0) .AND. ndrape > 0) DEALLOCATE(iwork_t)
11319
11320 IF(ALLOCATED(mparam_r2r))THEN
11321 DO i=1,nummat ; CALL mparam_r2r(i)%DESTRUCT() ; ENDDO
11322 DEALLOCATE(mparam_r2r)
11323 ENDIF
11324
11325
11326
11327 call dealloc_constraint_struct(nrwall,constraint_struct)
11328
11329
11330
11331
11332
11334
11335
11336
11337
11339 CALL ddprint(ddstat, memflow)
11340 ELSE
11341 WRITE(iout,*)
11343 ENDIF
11344
11345
11346 ELSE
11347 WRITE(istdo,'(A)')titre(48)
11348 ENDIF
11349
11354
11355 DEALLOCATE(msc,mstg,mssa,mstr,msp,msrt)
11356
11357 DEALLOCATE(mcp,temp)
11359
11362
11363 IF(ALLOCATED(knotlocpc))DEALLOCATE(knotlocpc)
11364 IF(ALLOCATED(knotlocel))DEALLOCATE(knotlocel)
11365
11368
11369 IF(icrack3d > 0) THEN
11372 DEALLOCATE(cel_crkxfem)
11373 DEALLOCATE(cep_crkxfem)
11375 DEALLOCATE(ibordedge)
11379 END IF
11380 IF(ALLOCATED(iedge_tmp)) DEALLOCATE(iedge_tmp)
11385 IF(ALLOCATED(addcne_crkxfem))DEALLOCATE(addcne_crkxfem)
11386
11387
11388
11389 DEALLOCATE(addcne)
11390 DEALLOCATE(addcne_pxfem)
11391 DEALLOCATE(fxbtag)
11392
11393 DEALLOCATE(isolnod)
11394 DEALLOCATE(isoloff)
11395 DEALLOCATE(isheoff)
11396 DEALLOCATE(itruoff)
11397 DEALLOCATE(ipouoff)
11398 DEALLOCATE(iresoff)
11399 DEALLOCATE(itrioff)
11400 DEALLOCATE(igrnrby)
11401 DEALLOCATE(iquaoff)
11402
11403 DEALLOCATE(xrefc)
11404 DEALLOCATE(xreftg)
11405 DEALLOCATE(xrefs)
11407 DEALLOCATE(dflow,vflow,wflow)
11409 IF(ALLOCATED(fillsol)) DEALLOCATE(fillsol)
11410 IF(ALLOCATED(sh3ang)) DEALLOCATE(sh3ang)
11411 IF(ALLOCATED(sh4ang)) DEALLOCATE(sh4ang)
11413 IF(ALLOCATED(multi_fvm%VEL)) DEALLOCATE(multi_fvm%VEL)
11414 IF(ALLOCATED(multi_fvm%ACC)) DEALLOCATE(multi_fvm%ACC)
11415 CALL ale_connectivity%ALE_DEALLOCATE_CONNECTIVITY()
11416 IF(ipart_stack > 0 .OR. ipart_pcompp > 0)
DEALLOCATE(
stack_info)
11418 IF(ALLOCATED(preload)) DEALLOCATE(preload)
11420 IF(ALLOCATED(ipreload_fun)) DEALLOCATE(ipreload_fun)
11421 IF(ALLOCATED(eos_tag))DEALLOCATE(eos_tag)
11424 IF(ALLOCATED(xseed)) DEALLOCATE(xseed)
11425 IF(ALLOCATED(alea)) DEALLOCATE(alea)
11426 IF(ALLOCATED(irand)) DEALLOCATE(irand)
11427 IF(ALLOCATED(sensors%SENSOR_TAB)) DEALLOCATE(sensors%SENSOR_TAB )
11428 IF(ALLOCATED(sensors%LOGICAL_SENSORS_LIST)) DEALLOCATE(sensors%LOGICAL_SENSORS_LIST)
11429 IF(ALLOCATED(damp_range_part)) DEALLOCATE(damp_range_part)
11430
11431 CALL ebcs_tab%destroy()
11432 IF(ninimap1d > 0 .AND. .NOT. multi_fvm%IS_USED) THEN
11433 DO kk = 1, ninimap1d
11434 DEALLOCATE(inimap1d(kk)%TAGNODE)
11435 ENDDO
11436 ENDIF
11437 DEALLOCATE(inimap1d)
11438
11439 IF(ninimap2d > 0 .AND. .NOT. multi_fvm%IS_USED) THEN
11440 DO kk = 1, ninimap2d
11441 DEALLOCATE(inimap2d(kk)%TAGNODE)
11442 ENDDO
11443 ENDIF
11444 DEALLOCATE(inimap2d)
11445
11446
11448
11450
11451 IF(nfxbody>0) THEN
11452 CLOSE(ifxm)
11453 CLOSE(ifxs)
11454 ENDIF
11455
11456 IF(ALLOCATED( dgapint )) DEALLOCATE(dgapint)
11457
11458 IF(ALLOCATED(dpl0cld)) DEALLOCATE(dpl0cld)
11459 IF(ALLOCATED(vel0cld)) DEALLOCATE(vel0cld)
11460 IF(ALLOCATED(ebcs_tag_cell_spmd)) DEALLOCATE(ebcs_tag_cell_spmd)
11461
11462
11463 RETURN
subroutine add_mass_stat(ms, in, stifn, stifr, itab, totmas)
subroutine addmast10(icnds10, ms)
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_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 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, rwstif_pen, sln_pen)
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)
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine fillcncnd(cncnd, addcncnd, icnds10, itagnd)
subroutine bcscycmodif_nd(ibcscyc, lbcscyc, itagnd, itab)
subroutine pre_cndpon(icnds10, adskycnd, cepcnd, celcnd, itagnd)
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 bcsmodif_nd(icode, itagnd, icnds10, itab, nnpby, slrbody, nrbe2l, slrbe2, npby, lpby, irbe2, lrbe2)
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 fillcni2(cni2, lcni2, addcni2, ipari, intbuf_tab)
subroutine ddprint(ddstat, memflow)
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, addcne, 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 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 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, mat_param)
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 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 spdometis(kxsp, ixsp, nod2sp, cepsp, reservep, sph2sol, cep)
subroutine prelec_ddw(filnam, len_filnam, marqueur3)
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_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_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_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_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_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_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_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_move_funct(npc, pld, nfunct, table, ntable, funcrypt, unitab, 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_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, snpc, npc, ipreload_fun)
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, mat_param)
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 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, stifn, stifr, icode, itab)
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_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, igrnod, iskwn, unitab, lsubmodel, hm_nsens, sensor_user_struct)
subroutine hm_read_skw(skew, iskn, x, itab, itabm1, nsn, lsubmodel, rtrans, nom_opt, unitab)
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 hm_read_spcnd(ispcond, iskew, itab, itabm1, ikine, igrnod, nod2sp, iframe, nom_opt, lsubmodel)
subroutine hm_read_sphio(isphio, vsphio, ipart, igrsurf, nod2sp, ipartsp, itab, x, mfi, lwaspio, itabm1, unitab, lsubmodel, rtrans, nrtrans)
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_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_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, itab)
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, 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, iresp)
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, lsigi, lsigsp, srnoise, nprw, lprw, rwstif_pen, sln_pen)
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)
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 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 lecextlnk(iexter, ipart, lsubmodel)
subroutine lecfill(ixs, fillsol, unitab, lsubmodel)
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, iskwn, liskn, skew, lskew, siskwn, sskew)
subroutine lectranssub(x, igrnod, itab, itabm1, unitab, rtrans, lsubmodel, is_dyna, iskwn, liskn, nspcond, numsph, siskwn)
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 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)
for(i8=*sizetab-1;i8 >=0;i8--)
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
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 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
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 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 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 nodm11(pm, ixs, ixq, icode)
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
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 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 preread_rbody_lagmul(slpbyl, igrnod, lsubmodel)
subroutine prescrint(ipari, intbuf_tab, inscr)
subroutine pretag_xfem(iparg, itage, iel_crkxfem, itagn, inod_crkxfem)
void split(mapping_t *, PORD_INT, PORD_INT, PORD_INT, PORD_INT *, PORD_INT *, FLOAT *, PORD_INT)
subroutine qgrhead(ixq, pm, geo, inum, isel, itr1, eadd, index, itri, ipartq, nd, igrsurf, igrquad, cep, mat_param, xep, igeo, ipm, iquaoff, trimat)
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_clean_inter(ipari2, intbuf_tab, ipartc, ipartg, iparts, isolnod)
subroutine r2r_domdec(iexter, igrnod, frontb_r2r, dt_r2r, flag)
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_void(ipartl)
subroutine read_detonators(itabm1, itab, igrnod, pm, ipm, x, unitab, lsubmodel, detonators)
subroutine read_ebcs(igrsurf, multi_fvm, npc1, lsubmodel, ebcs_tab, n2d)
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, lnspen)
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 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 sensor_user_convert_local_id(itabm1, pointer_entity, number_entity, list_entity, mode0, ipart)
subroutine sensor_user_init(sensor_user_struct)
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 setlenwa(lenwa0, nthwa0, nairwa0, numels0, numelq0, numelc0, numeltg0, numelt0, numelp0, numelr0, numnod0, nmnt0, l_mul_lag1, l_mul_lag, maxnx0, lwasph0, numsph0, lwaspio, nrcvvois0, ngroup_l, lwamp_l, lwanmp_l, itherm)
subroutine setmulti(ipari)
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, trimat)
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, ipreload_fun)
subroutine shellthk_upd(drape, stack, thk, ixc, ixtg, igeo, iworksh, indx)
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 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, 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 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 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)