410!|| shell_offset_ini ../
starter/source/elements/shell/shell_offset/shell_offset_ini.f90
529 SUBROUTINE lectur(MULTI_FVM ,LSUBMODEL ,IS_DYNA ,DETONATORS ,EBCS_TAB,
530 . SEATBELT_CONVERTED_ELEMENTS ,NB_SEATBELT_SHELLS ,NB_DYNA_INCLUDE ,USER_WINDOWS ,OUTPUT ,
531 . MAT_ELEM,NAMES_AND_TITLES,DEFAULTS,glob_therm,pblast,
532 . SENSOR_USER_STRUCT)
608 USE read_funct_python_mod
612 USE damping_rby_spmdset_mod
613 USE hm_read_preload_axial_mod
614 USE bcs_mod,
ONLY : bcs, bcs_struct_
616 USE shell_offset_ini_mod,
ONLY: shell_offset_ini
617 USE inter_offset_itag_mod,
ONLY:inter_offset_itag
618 USE chk_shell_offset_mod,
ONLY:chk_shell_offset
619 USE shell_offsetp_mod,
ONLY:shell_offsetp
621 USE random_walk_def_mod
622 use constraint_mod ,
only : constraint_,alloc_constraint_struct,dealloc_constraint_struct
623 use split_rwall_mod ,
only : split_rwall
624 use stifint_icontrol_mod,
only : stifint_icontrol
625 use fractal_elem_renum_mod
626 use hm_preread_inivel_mod,
only : hm_preread_inivel
627 use brokmann_random_def_mod
628 use brokmann_elem_renum_mod
630 use hm_read_inivol_mod
632 use iniebcs_propellant_
634 use python_duplicate_nodes_mod
638#include "implicit_f.inc"
642 TYPE(multi_fvm_struct) :: MULTI_FVM
643 TYPE(SUBMODEL_DATA) :: LSUBMODEL(NSUBMOD)
644 INTEGER,
INTENT(IN) :: IS_DYNA
646 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
647 INTEGER,
INTENT(IN) :: NB_SEATBELT_SHELLS
648 INTEGER,
INTENT(INOUT) :: SEATBELT_CONVERTED_ELEMENTS(3,NB_SEATBELT_SHELLS)
649 INTEGER,
INTENT(IN) :: NB_DYNA_INCLUDE
651 TYPE(output_),
INTENT(INOUT) :: OUTPUT
653 TYPE(defaults_),
INTENT(INOUT) :: DEFAULTS
654 type(glob_therm_) ,
intent(inout) :: glob_therm
655 TYPE(pblast_),
INTENT(INOUT) :: PBLAST
656 TYPE(sensor_user_struct_) :: SENSOR_USER_STRUCT
664#include "hash_id.inc"
665#include "com01_c.inc"
666#include "com04_c.inc"
667#include "com06_c.inc"
668#include "com09_c.inc"
669#include "com10_c.inc"
670#include "com_engcards_c.inc"
671#include "com_xfem1.inc"
673#include "flowcom.inc"
675#include "intstamp_c.inc"
676#include "lagmult.inc"
678#include "param_c.inc"
679#include "remesh_c.inc"
680#include "tabsiz_c.inc"
681#include "tablen_c.inc"
682#include "scr03_c.inc"
683#include "scr05_c.inc"
684#include "scr06_c.inc"
685#include "scr10_c.inc"
686#include "scr12_c.inc"
687#include "scr14_c.inc"
688#include "scr15_c.inc"
689#include "scr16_c.inc"
690#include "scr17_c.inc"
691#include "scr19_c.inc"
692#include "scr23_c.inc"
696#include "ddspmd_c.inc"
697#include "sysunit.inc"
699#include "units_c.inc"
702#include "intread_c.inc"
703#include "elbuf_c.inc"
704#include "userlib.inc"
705#include "drape_c.inc"
706#include "boltpr_c.inc"
707#include "inigrav_c.inc"
708#include "inter18.inc"
709#include "inter22.inc"
710#include "ige3d_c.inc"
711#include "random_c.inc"
723 INTEGER,
DIMENSION(:),
POINTER :: P
724 END
TYPE INTERMASURFEP
726 INTEGER II,I,J,KK,N, NPTS, NMNT, NRTMT_25,MLW,
727 . numel, ifip, is_euler,nb_euler_groups,
728 . nairwa,nthwa, lwaspio, len_g,len_m,len,
729 . iadbuf, iadgeo, nuvar, nuvari,
730 . ns_i7,nel,nd,aux,ns_i21,
732 . svolmon0,flag_goto,
733 . innod,inseg,nsigi, nsigs, nsigsh, nsigsph,
735 . iinu ,nel3d,nel2d,nel1d,imax,jmax,
736 . off, nelem, iddlevel, nelemint,
738 . ids,iun,l_mul_lag,ncmax,nkmax,
740 . maxrtm,lwat, l_mul_lag1,ishif,libagale,
741 . lenthg, lbufmat, lbufgeo, lbufsf,
742 . lnom_opt, lenvolu, ilen, lcne, lcni2g,lenpor,
743 . pm1shf, nfx, aipm, anod, amod, nbno, nbmo,
744 . alm, nels, nelc, neltg, nlgrav, agrvi, agrvr,
745 . nnt, rclen,pm1sph, stat, neldmax, versdd,
746 . dsnism, nslevel,nsdec,nsvmax,nspri,dsarch,nelt,nelp,nsegs,
747 . nnft, ndofmin, nmanim, dsanim,nrcvvois0,nsigrs,
748 . lrbagale,flagg,icount,swaft, swa4, smater, sel2fa,
749 . snfacptx,sixedge,soffx1,snumx1,sxnorm,sinvert,sfunc1,siad,
750 . smas,len_rm,lag_ncf0,lag_nkf0,
751 . lag_nhf0,lag_ncl0,lag_nkl0,maxnnod, ibid,
752 . srtrans,lcne_crkxfem,nsegsmax,xfemon,
753 . in10,in20,snom_opt_old,leni,flag_allocate,
754 . proc_bid,flg_r2r_err,nspcond0,lenthgr,flag_xfem,
755 . iadtabige,ndoublonige,decaligeo,hm_nsensor,
757 . tab_sol(6),istr_24,idel_solid,
758 . lcncnd,i24maxnsne,nsigbeam,nsigtruss,s_loadpinter,
759 . flagf,ithflag,maxrtm_t2,ns_i2,sitage,nctrlmax,inlin,svr_1
760 INTEGER (KIND=8) EMAX
761 INTEGER (KIND=8) K0,K1,K2,K3,K4,K5,K6,K7,K8
763 INTEGER(KIND=8) NUMELCK8
764 INTEGER(KIND=8) NUMELTGK8
765 INTEGER(KIND=8) NUMELSK8
766 INTEGER(KIND=8) NUMELRK8
767 INTEGER(KIND=8) NUMELPK8
768 INTEGER(KIND=8) NUMELTK8
769 INTEGER(KIND=8) NUMELQK8
770 INTEGER(KIND=8) NUMELXK8
771 INTEGER(KIND=8) NUMELIG3DK8
772 INTEGER(KIND=8) NUMSPHK8
773 INTEGER(KIND=8) SVEUL8
777 . iuparam(100),ddstat(50,parasiz),igrnrb2(nrbe2),
781 INTEGER,
DIMENSION(:),
ALLOCATABLE :: POIN_UMP_OLD
782 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAB_UMP_OLD
783 my_real,
DIMENSION(:),
ALLOCATABLE :: CPUTIME_MP_OLD
785 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: POIN_PART_SHELL,POIN_PART_TRI
786 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: POIN_PART_SOL
787 TYPE(MID_PID_TYPE),
DIMENSION(:),
ALLOCATABLE :: MID_PID_SHELL,MID_PID_TRI
788 TYPE(
mid_pid_type),
DIMENSION(:,:),
ALLOCATABLE :: MID_PID_SOL
791 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
792 * iwcont, iwcin2 , ikine1lag ,dsdof, tagxref,
793 * addcne, addcne_pxfem, fxbtag ,addcne_crkxfem,
796 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
797 * ISOLNOD,ISOLOFF,ISHEOFF,,IPOUOFF,
798 * IRESOFF,,IGRNRBY,IQUAOFF
800 INTEGER(KIND=8) :: KVOISPH8,NUMSPH8,SIXSP8,LIMIT8
801 INTEGER :: INTEGER_LIMIT32
803 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CEP,CEL,,
804 . cni2, celi2, cepi2,
805 . cepsp, celsph, itagsh,
806 . cne_pxfem,cel_pxfem
807 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FXBIPM, FXBNOD, FXBELM,
808 . FXBGRVI, EIGIPM, EIGIBUF,
813 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: ELDOM
814 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CEPTMP, NELDOM
815 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LLL
816 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ELSUB
817 INTEGER(KIND=8) ,
TARGET :: DSMEMORY(7,NSPMD)
818 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FXANI,IWORKSH, FXB_MATRIX_ADD
819 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FASTAG,SEGTAG
820 INTEGER(KIND=8),
TARGET :: MEMFLOW(2,NSPMD)
821 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IFLOW
823 INTEGER,
DIMENSION(:),
ALLOCATABLE :: KINWORK
825 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CNE_CRKXFEM,CEL_CRKXFEM,ITAGN,ITAGE,CEP_CRKXFEM,IEDGE_TMP0
826INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IEDGE_TMP
828 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NALE_R2R
829 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FRONTB_R2R
831 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IXS_S ,IXS_S_IND,
832 2 ixq_s,ixq_s_ind,ixc_s,ixc_s_ind,
833 3 ixt_s ,ixt_s_ind,ixp_s,ixp_s_ind,ixr_s,ixr_s_ind,
837 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUFSSG_IO, RESERVEP
839 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IXR_KJ,R_SKEW
842 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBEAM_VECTOR
843 my_real,
DIMENSION(:,:),
ALLOCATABLE :: RBEAM_VECTOR
846 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SOL2SPH_TYP
848 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBCSCYC,LBCSCYC,ITAGCYC
850 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ,
852 . ,
DIMENSION(:,:),
ALLOCATABLE :: qp_rperturb,rby_iniaxis
855 . eanit2(10),cost_r2r,totmas
860 INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS
861 EXTERNAL omp_get_thread_num, omp_get_num_threads
865 . ,
DIMENSION(:),
ALLOCATABLE ::
866 . fxbrpm, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm,
867 . fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbsig,
868 . fxbgrvr, eigrpm ,rmstifn, rmstifr,stiffn,
869 . ms_ply0, zi_ply0,msz20,msz2,lelx,fxb_matrix
871 . ,
DIMENSION(:,:),
ALLOCATABLE :: mbufel, mdepl,rnoise
873 . ,
DIMENSION(:),
ALLOCATABLE :: rflow,cmerge,dnull
875 . probint, flrec6(6), dscutfrq
876 my_real,
DIMENSION(:),
ALLOCATABLE ::
877 . xfiltr,stfac,fric_p,frigap,
i2rupt,areasl,thk_part,
880 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: xrefc,xreftg,xrefs
881 my_real,
DIMENSION(:),
ALLOCATABLE :: xyzref
883 my_real,
DIMENSION(:),
ALLOCATABLE :: dt_r2r
884 TYPE(
intersurfp) ,
DIMENSION(:,:),
ALLOCATABLE :: INTERCEP
886 my_real,
DIMENSION(:),
ALLOCATABLE :: sh4ang,sh3ang
887 my_real,
DIMENSION(:),
ALLOCATABLE :: ms_b,in_b,dtelem
889 TYPE (STACK_PLY) :: STACK
891 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDRAPEID,PERTURB
892 TYPE (FVM_INIVEL_STRUCT),
DIMENSION(:),
ALLOCATABLE :: FVM_INIVEL
893 TYPE (FAILWAVE_STR_) :: FAILWAVE
894 TYPE (NLOCAL_STR_) :: NLOC_DMG
895 TYPE (PINCH) :: PINCH_DATA
896 TYPE (DRAPE_) ,
DIMENSION(:),
ALLOCATABLE :: DRAPE,DRAPE_WRK
897 TYPE (DRAPEG_) :: DRAPEG
898 TYPE(
drape_work_) ,
DIMENSION(:),
ALLOCATABLE :: IWORK_T
900 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGOSET
901 my_real,
DIMENSION(:),
ALLOCATABLETARGET :: xyz
902 my_real,
DIMENSION(:),
POINTER :: x_c
904 INTEGER,
DIMENSION(:),
ALLOCATABLE :: EBCS_TAG_CELL_SPMD
906 TYPE (DYNAIN_DATABASE) :: DYNAIN_DATA
907 TYPE (INTERFACES_) :: INTERFACES
908 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
912 CHARACTER(LEN=4096) :: SCR_FILE_NAME
913 CHARACTER(LEN=ncharline) :: RLINE
915 LOGICAL :: IS_AVAILABLE
916 INTEGER NLINES,NUSERWI,USERWI_ID
917 INTEGER SCR_FILE_NAME_LEN
918 CHARACTER(LEN=ncharkey) :: KEY
920 INTEGER,
DIMENSION(:,:),
ALLOCATABLE ::
921 LOGICAL MAT20_DISCRETE_FILL
922 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FLAG_ELEM_INTER25
923 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LIST_NIN25
930 TYPE :: int_ptr_array
931 INTEGER,
DIMENSION(:),
POINTER :: ptr
932 END
TYPE int_ptr_array
933 TYPE(int_ptr_array) :: IBUFTMP(0:1),NIGE_TMP(0:1)
934 TYPE :: real_ptr_array
935 my_real,
DIMENSION(:),
POINTER :: ptr2
936 END TYPE real_ptr_array
937 TYPE(real_ptr_array) :: RIGE_TMP(0:1),XIGE_TMP(0:1),
939 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
941 . iwork,itri,ksysusr,ptshel,ptsh3n,ptsol,ptquad,
942 . ptsph,isptag,dd_tmp,itag,itagnd_shxfem,
943 . ithpart,ithsub,ithbuftmp,dd_tmp2,
945 . ptspri,ptbeam,pttruss
946 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IPARGTMP
949 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAB_UMP_LOC
950 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: TAB_UMP_LOC2
951 INTEGER,
DIMENSION(:),
POINTER ::
952 . ipartth,iparts,ipartq,ipartc,ipartt,ipartp,ipartr,
953 . ipartg,ipartx,ipartsp,npc1,ixs10,ixs20,ixs16,ipres,
954 . ibmpc2,ibmpc3,ibmpc4,iwork2,
955 . itri1,itri2,itri3,index,
956 . index1,index2,iwd,iweig,inum,eadd,itr1,itr2,xep,
957 . ipartthi,ipartig3d,iedgesh4,iedgesh3,ielcrk4,ielcrk3
958 INTEGER BID13(1),SNPC1
959 INTEGER L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,SIXTG0,
960 . SIXS0,SIXS10,SIXS20,SIXS16,SIWORK,SIWORK2,SIEXTAG,
961 . numcld,numpres,numlink,numgrav,numrbymou,
962 . snrbody,slrbody,lithpart,lithsub,idx,idx1,idx2,idxcnt,
963 . lithbufi,lithbufmx,nthgrpmx,sindex,sitri,ldd_iad,
964 . lsigi,lsigsh,lsigsp,lsigsph,sinscr,
965 . sipart0,sipartth,siparts,sipartq,sipartc,sipartt,sipartp,
966 . sipartr,sipartg,sipartx,sipartsp,iter,
967 . lixint,sbufale,nvartot,
968 . nvartot0,nvartotmax,nvarabf,
969 . pixs10,pixs16,pixs20,numcfield,numloadp,ixel,
970 . sipartig3d,idxige1,idxige2,
971 . idxigecnt,tagsurfige,lsigrs,lsigbeam,lsigtruss,nsetfrictot
972 . iorthfricmax,coefslen,npfricorth,ngrpf,leng,
973 . nimpdisp,nimpvel,nimpacc,nimpv_lagm,nfv0,nsetmax,nfxvel0
974 TYPE(
cluster_),
DIMENSION(:),
ALLOCATABLE :: CLUSTERS
975 TYPE(INTBUF_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: INTBUF_TAB
976 TYPE(SCRATCH_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: INSCR
978 INTEGER SIPRELOAD, SPRELOAD
981 TYPE(elbuf_struct_),
DIMENSION(:) ,
ALLOCATABLE :: ELBUF_TAB
982 TYPE(ELBUF_STRUCT_),
DIMENSION(:,:),
ALLOCATABLE :: XFEM_TAB
983 TYPE(MLAW_TAG_) ,
DIMENSION(:) ,
ALLOCATABLE,
TARGET :: MTAG_INI,MTAG_R2R
984 TYPE(
mlaw_tag_) ,
DIMENSION(:) ,
POINTER :: MLAW_TAG
985 TYPE(
eos_tag_) ,
DIMENSION(:) ,
ALLOCATABLE :: EOS_TAG
986 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
987 TYPE(
fail_tag_) ,
DIMENSION(0:MAXFAIL) :: FAIL_TAG
989 TYPE (XFEM_SHELL_) ,
DIMENSION(:),
ALLOCATABLE :: CRKSHELL
990 TYPE (XFEM_LVSET_) ,
DIMENSION(:),
ALLOCATABLE :: CRKLVSET
991 TYPE (XFEM_SKY_) ,
DIMENSION(:),
ALLOCATABLE :: CRKSKY
992 TYPE (XFEM_AVX_) ,
DIMENSION(:),
ALLOCATABLE :: CRKAVX
993 TYPE (XFEM_EDGE_) ,
DIMENSION(:),
ALLOCATABLE :: CRKEDGE
994 TYPE(
xfem_phantom_),
DIMENSION(:),
ALLOCATABLE :: XFEM_PHANTOM
997 TYPE(int8_struct_) ,
DIMENSION(:,:),
ALLOCATABLE :: INTERT8
999 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDX_CRK
1000 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
1003 TYPE(matparam_struct_) ,
DIMENSION(:),
ALLOCATABLE ,
TARGET :: MPARAM_INI,MPARAM_R2R
1005 TYPE(group_param_) ,
DIMENSION(:),
ALLOCATABLE :: GROUP_PARAM_TAB
1007 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: T2MAIN_SMS
1009 INTEGER :: ,SRNOISE2
1011 INTEGER NSN_MULTI_CONNEC
1012 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: T2_NB_CONNEC
1014 INTEGER,
DIMENSION(:),
ALLOCATABLE :: MGRBY
1018 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: TAG_SKINS6
1019 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: SEATBELT_SHELL_TO_SPRING
1021 INTEGER :: NPRELOAD_A
1022 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ITAGPRLD_SPRING
1023 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ITAGPRLD_BEAM
1024 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ITAGPRLD_TRUSS
1025 TYPE(
prel1d_),
DIMENSION(:),
ALLOCATABLE :: PRELOAD_A
1029 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: DBRWORK
1030 my_real,
DIMENSION(:),
ALLOCATABLE ::
1031 . RWORK,STIFINT,MWA,MSS,MSSX,MSSF,MSQ,MSR,
1032 . inp,inr,ins,vns,vnsx,stc,stt,stp,str,sttg,stur,
1033 . bns,bnsx,volnod,bvolnod,etnod,nshnod,xelemwa,
1034 . xnum,xtmp,rtrans,msig3d,stifintr,strc,
strr,strp,strtg,
1038 my_real,
DIMENSION(:),
POINTER ::
1039 . thkec,eanit,pres,wma
1043 CHARACTER(LEN=NCHARLINE) ::ERR_MSG
1044 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBORDEDGE,INOM_OPT
1045 DOUBLE PRECISION RSIBUFSSG,RNIGE,,RXIGE,RVIGE
1046 INTEGER INTMAX, LLINAL,ITET4_10
1048 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ICNDS10,ITAGND,ADDCNCND,
1049 . cncnd, celcnd, cepcnd
1052 INTEGER(KIND=8) ,
POINTER :: pMEMFLOW
1054 DATA INTMAX /2147483647/
1056 .
DIMENSION(:),
ALLOCATABLE :: fillsol
1059 CHARACTER FILNAM*512,CLAW*4
1062 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IADBOXMAX_NODE,IADBOXMAX_SURF,
1063 . iadboxmax_line,iadboxmax_elem
1065 my_real,
DIMENSION(:,:),
ALLOCATABLE ::
1066 . sigi,sigsh,sigsp,sigsph,sigrs,sigbeam,sigtruss
1067 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
1068 . strsglob,straglob,orthoglob
1069 INTEGER ISIGSH,IYLDINI,KSIGSH3,FAIL_INI(5),IUSOLYLD,IUSERL
1071 INTEGER FVMAIN(NVOLU + NMONVOL),
1073 INTEGER :: MEM_MARGIN
1074 parameter(mem_margin = 250000)
1076 TYPE(intbuf_fric_struct_),
DIMENSION(:),
ALLOCATABLE :: INTBUF_FRIC_TAB
1077 INTEGER,
DIMENSION(:),
ALLOCATABLE ::,TABPARTS_FRIC_TMP,
1078 . TAGPRT_FRIC,NSETINIT,IFRICORTH_TMP,
1079 . pfricorth ,irepforth ,lengrpf
1080 my_real,
DIMENSION(:),
ALLOCATABLE ::tabcoef_fric_tmp , vforth ,phiforth
1082TYPE(INIMAP2D_STRUCT),
DIMENSION(:),
ALLOCATABLE :: INIMAP2D
1084 TYPE(python_) :: PYTHON
1086 LOGICAL :: FLAG_24_25
1087 INTEGER :: NINDX_NM,NINDX_SCRT,I24MAXNSNE2
1088 INTEGER,
DIMENSION(NSPMD) :: NUMNOD_L
1089 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_NM,INDX_NM
1090 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_SCRATCH,INDX_SCRT
1092 INTEGER FXB_LAST_ADRESS(10)
1093 CHARACTER,
DIMENSION(:),
ALLOCATABLE :: FXBFILE_TAB*2148
1108 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_SKN
1109 TYPE(SKEW_) :: SKEWS
1110 TYPE (SENSOR_STR_) ,
DIMENSION(:) ,
ALLOCATABLE :: SENSOR_TMP
1123 TYPE(
surf_),
DIMENSION(:,:),
ALLOCATABLE :: IGRSURF_PROC
1131 INTEGER :: GRNOD_UID
1132 INTEGER,
DIMENSION(NSPMD) :: SIZE_ALE_ELM
1133 TYPE(split_cfd_type),
DIMENSION(:),
ALLOCATABLE :: ALE_ELM
1139 INTEGER :: LEN_TMP_NAME
1140 CHARACTER(len=4096) :: TMP_NAME
1142! len_tmp_name :
integer ; size of TMP_NAME
1147 TYPE(MONVOL_METADATA_) :: T_MONVOL_METADATA
1148 TYPE(t_ale_connectivity) :: ALE_CONNECTIVITY
1150 INTEGER :: NBR_TH_MONVOL,NBR_TH_MONVOL01(9)
1152 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IRAND
1153 my_real,
DIMENSION(:),
ALLOCATABLE :: alea,xseed
1155! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
1161! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
1162 LOGICAL :: BOOL_ALE_TG
1163 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDX_S,INDX_Q,INDX_TG
1164 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG
1169 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
1172 TYPE (LOADS_) :: LOADS
1173 TYPE (LOADS_),
DIMENSION(NSPMD) :: LOADS_PER_PROC
1176 TYPE (bcs_struct_),
DIMENSION(NSPMD) :: BCS_PER_PROC
1183 INTEGER NMERGE_NODE_CAND,,NMERGE_TOT
1184 INTEGER,
DIMENSION(:),
ALLOCATABLE :: MERGE_NODE_TAB
1185 my_real,
DIMENSION(:),
ALLOCATABLE :: MERGE_NODE_TOL
1187 my_real,
DIMENSION(:),
ALLOCATABLE :: dgapint, intgaploadp ,dgaploadint
1189 INTEGER NB_MAT_SEATBELT,NB_MAT
1191 INTEGER :: NUMSH3,NUMSH4, NSLICE,NPT_DRAPE,JJ,ISL, IP,IE, IDSHEL
1192 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: INDXSH
1193 INTEGER :: NUMBER_LOAD_CYL
1194 INTEGER :: S_NOD2ELS,S_NOD2ELTG,S_NOD2EL1D
1196 INTEGER :: NDAMP_VREL_RBY
1197 INTEGER :: NDAMP_FREQ_RANGE
1198 INTEGER ,
DIMENSION(:),
ALLOCATABLE ::
1200 INTEGER :: PRE_SEARCH,SZ_INTP_DIST
1201 my_real :: max_intp_dist_part
1204 TYPE (FAIL_FRACTAL_) :: FAIL_FRACTAL
1205 TYPE (FAIL_BROKMANN_) :: FAIL_BROKMANN
1206 INTEGER DEF_INTER(100)
1208 type(constraint_) :: constraint_struct
1211 python%NB_FUNCTS = 0
1212 python%NB_SENSORS = 0
1214 ddstat(1:50,1:parasiz)=0
1216 fvmain(1:nvolu + nmonvol) = 0
1220 err_category=
'INTERNAL'
1221 CALL trace_in1(err_msg,len_trim(err_msg))
1244 ndamp_freq_range = 0
1266 def_inter(1:100) = defaults%interface%DEF_INTER(1:100)
1274 inter18_autoparam = 0
1275 inter18_is_variable_gap_defined = .false.
1277 ALLOCATE(ebcs_tag_cell_spmd(numelq+numeltg+numels))
1279 ALLOCATE(eos_tag(0:
maxeos))
1283 ALLOCATE(intercep(3,ninter))
1286 NULLIFY(intercep(1,i)%P)
1287 NULLIFY(intercep(2,i)%P)
1288 NULLIFY(intercep(3,i)%P)
1306 ALLOCATE(iwcont(5*numnod),stat=stat)
1307 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1311 ALLOCATE(iwcin2(2*numnod),stat=stat)
1312 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1317 ALLOCATE(ikine1lag(3*numnod),stat=stat)
1318 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1321 ikine1lag(1:3*numnod)=0
1323 ALLOCATE(dsdof(numnod),stat=stat)
1324 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1329 ALLOCATE( addcne(0:numnod+1),stat=stat)
1330 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1334 ALLOCATE(addcne_pxfem(0:numnod +1),stat=stat)
1335 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1337 . c1=
'ADDCNE_PXFEM')
1341 ALLOCATE(fxbtag(numnod),fxbipm(nbipm*nfxbody),stat=stat)
1342 fxbipm(1:nbipm*nfxbody) = zero
1343 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1347 ALLOCATE(fxbfile_tab(nfxbody))
1350 ALLOCATE(fxbtag(1),fxbipm(1),stat=stat)
1351 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1354 ALLOCATE(fxbfile_tab(0))
1357 ALLOCATE(isolnod(numels),stat=stat)
1358 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1361 ALLOCATE(isoloff(numels),stat=stat)
1362 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1365 ALLOCATE(isheoff(numelc),stat=stat)
1366 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1369 ALLOCATE(itruoff(numelt),stat=stat)
1370 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1373 ALLOCATE(ipouoff(numelp),stat=stat)
1374 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1377 ALLOCATE(iresoff(numelr),stat=stat)
1378 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1381 ALLOCATE(itrioff(numeltg),stat=stat)
1382 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1385 ALLOCATE(igrnrby(nrbody),stat=stat)
1386 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1389 igrnrby(1:nrbody) = 0
1390 ALLOCATE(iquaoff(numelq),stat=stat)
1391 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1398 len_g = npropgi*numgeo
1399 len_m = npropmi*nummat
1400 ALLOCATE(
igeo(len_g),stat=stat)
1401 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1404 ALLOCATE(
ipm(len_m),stat=stat)
1405 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1417 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1426 err_category=
'INTERNAL'
1444 ALLOCATE(
ifront%IENTRY(numnod),stat=stat)
1447 ALLOCATE(
ientry2(numnod),stat=stat)
1449 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1454 ALLOCATE(
flagkin(numnod),stat=stat)
1456 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1482 svr = 3*numnod*
max(iroddl,iroddl0)
1483 svr_1 = numnod*
max(iroddl,iroddl0)
1484 sthke = numelc+numeltg
1487 sin = numnod*
max(iroddl,iroddl0)
1488 IF(isecut>0 .OR. iisrot>0 .OR. impose_dr>0 .OR. idrot == 1)
THEN
1489 sdr = 3*numnod*
max(iroddl,iroddl0)
1493 IF(flag_goto == 1)
GOTO 258
1496 sdampr = nrdamp*ndamp
1497 sdamp = 3*(1+
max(iroddl,iroddl0))*numnod
1499 IF (ndamp == ndamp_freq_range) sdamp = 0
1500 ALLOCATE(dampr(sdampr+sdamp) ,stat=stat)
1501 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1504 damp => dampr(sdampr+1:sdampr+sdamp)
1509 ALLOCATE(dampr(sdampr) ,stat=stat)
1510 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1513 ALLOCATE(damp(sdamp) ,stat=stat)
1514 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1518 ALLOCATE(damp_range_part(npart),stat=stat)
1519 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1521 . c1=
'DAMP_RANGE_PART')
1523 ALLOCATE(x(sx) ,stat=stat)
1524 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1527 ALLOCATE(d(sd) ,stat=stat)
1528 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1531 ALLOCATE(v(sv) ,stat=stat)
1532 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1535 ALLOCATE(vr(svr) ,stat=stat)
1536 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1539 ALLOCATE(dr(sdr) ,stat=stat)
1540 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1542 ALLOCATE(thke(sthke) ,stat=stat)
1543 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1546 ALLOCATE(ms(sms) ,stat=stat)
1547 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1550 ALLOCATE(IN(SIN) ,STAT=stat)
1551 ALLOCATE(XYZREF(SX) ,STAT=stat)
1552 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1555 ALLOCATE(SH4ANG(NUMELC) ,STAT=stat)
1556 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1559 ALLOCATE(SH3ANG(NUMELTG) ,STAT=stat)
1560 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1573258 IF(NUMELC<STHKE) THEN
1574 THKEC => THKE(NUMELC+1:STHKE)
1578 IF(STHKE > 0) THKE = 0
1579 IF(NUMELC > 0) SH4ANG = 0
1580 IF(NUMELTG > 0) SH3ANG = 0
1582 CALL NBFUNCT(NFUNCT,NTABLE,NPTS,LSUBMODEL)
1589 SISKWN = LISKN*((NUMSKW+1)+MIN(IUN,NSPCOND)*NUMSPH+(NUMFRAM+1)+NSUBMOD)
1590 SIFRAME = LISKN*(NUMFRAM+1)
1593 SIPART0 = LIPART1*NPART+LIPART1*NTHPART
1594 SIPARTTH= 2*9*NPART+2*9*NTHPART
1604 SIPARTIG3D = NUMELIG3D
1605 SIPART = SIPART0+SIPARTTH+SIPARTS+SIPARTQ+SIPARTC+SIPARTT+SIPARTP
1606 . + SIPARTR+SIPARTG+SIPARTX+SIPARTIG3D+SIPARTSP
1607 NUMEL = NUMELS+NUMELQ+NUMELC+NUMELT+NUMELP+NUMELR
1608 . + NUMELTG+NUMELX+NUMSPH+NUMELIG3D
1611 SIXTG0 = NIXTG*NUMELTG
1615 SIXS20 = NUMELS20*12
1617 SIXS = SIXS0+SIXS10+SIXS20+SIXS16
1625 SGJBUFI = LKJNI*NGJOINT
1628 SNOM_OPT1= NRBODY+NACCELM+NVOLU+NMONVOL+NINTER+NINTSUB+
1629 + NRWALL+NJOINT+NSECT+NLINK+
1630 + NUMSKW+1+NUMFRAM+1+NFXBODY+NFLOW+NRBE2+
1631 + NRBE3+NSUBMOD+NFXVEL+NUMBCS+NUMMPC+
1632 + NGJOINT+NUNIT0+NFUNCT+NADMESH+
1633 + NSPHIO+NSPCOND+NRBYKIN+NEBCS+
1634 + NINICRACK+NODMAS+NBGAUGE+NCLUSTER+NINTERFRIC+
1635 + NRBMERGE+NUMBCSN+NSLIPRING+NRETRACTOR
1636 SNOM_OPT = SNOM_OPT1*LNOPT1+1
1638 SNOM_SECT= ncharline*NSECT
1639 IF(FLAG_GOTO==1) GOTO 209
1642 ALLOCATE(ICODE(SICODE) ,STAT=stat)
1643 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1646 ALLOCATE(ISKEW(SISKEW) ,STAT=stat)
1647 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1650 ALLOCATE(ISKWN(SISKWN) ,STAT=stat)
1651 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1654 ALLOCATE(IBCSLAG(SIBCSLAG) ,STAT=stat)
1655 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1658 ALLOCATE(IPART(SIPART) ,STAT=stat)
1659 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1662 ALLOCATE(NPC (SNPC) ,STAT=stat)
1663 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1666 ALLOCATE(
ixtg(sixtg) ,stat=stat)
1667 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1670 ALLOCATE(
ixs(sixs) ,stat=stat)
1671 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1674 ALLOCATE(
ixq(sixq) ,stat=stat)
1675 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1678 ALLOCATE(
ixc(sixc) ,stat=stat)
1679 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1682 ALLOCATE(
ixt(sixt) ,stat=stat)
1683 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1686 ALLOCATE(
ixp(sixp) ,stat=stat)
1687 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1690 ALLOCATE(
ixr(sixr) ,stat=stat)
1691 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1694 ALLOCATE(
itab(sitab) ,stat=stat)
1695 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1698 ALLOCATE(ITABM1(SITABM1) ,STAT=stat)
1699 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1702 ALLOCATE(GJBUFI(SGJBUFI) ,STAT=stat)
1703 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1706 ALLOCATE(LACCELM(SLACCELM) ,STAT=stat)
1707 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1711 ALLOCATE(NOM_OPT(SNOM_OPT) ,STAT=stat)
1712 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1715 ALLOCATE(INOM_OPT(0:SINOM_OPT) ,STAT=stat)
1716 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1719 ALLOCATE(NOM_SECT(SNOM_SECT) ,STAT=stat)
1720 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1723 ALLOCATE(IXR_KJ(5*(NUMELR+1)) ,STAT=stat)
1724 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1727 ALLOCATE(IWORKSH(3,NUMELC+NUMELTG) ,STAT=stat)
1728 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1731 IF(NUMELIG3D > 0) THEN
1732 ALLOCATE(WIGE(NUMNOD) ,STAT=stat)
1733 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1738 ALLOCATE(WIGE(0) ,STAT=stat)
1740 ALLOCATE(R_SKEW(NUMELR) ,STAT=stat)
1741 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1745 ALLOCATE(IBEAM_VECTOR(NUMELP) ,STAT=stat)
1746 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1748 . C1='ibeam_vector
')
1749 ALLOCATE(RBEAM_VECTOR(3,NUMELP) ,STAT=stat)
1750 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1752 . C1='rbeam_vector
')
1754.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)== 4ABS(ISIGI)==5)THEN
1755 ALLOCATE (PTSHEL(NUMELC) ,STAT=stat)
1757 ALLOCATE (PTSH3N(NUMELTG) ,STAT=stat)
1760 ALLOCATE (PTSHEL(0) ,STAT=stat)
1761 ALLOCATE (PTSH3N(0) ,STAT=stat)
1764 IF(SICODE > 0) ICODE = 0
1765 IF(SISKEW > 0) ISKEW = 0
1766 IF(SISKWN > 0) ISKWN = 0
1767 IF(SIBCSLAG > 0) IBCSLAG = 0
1768 IF(SIPART > 0) IPART = 0
1769 IF(SNPC > 0) NPC = 0
1770 IF(SITAB > 0) ITAB = 0
1771 IF(SITABM1 > 0) ITABM1 = 0
1772 IF(SGJBUFI > 0) GJBUFI = 0
1773 IF(SLACCELM > 0) LACCELM = 0
1774 IF(SNOM_OPT > 0) NOM_OPT = 0
1775 IF(SINOM_OPT > 0) INOM_OPT = 0
1776 IF(NUMELR > 0) IXR_KJ = 0
1777 IF(NUMELC+NUMELTG > 0) IWORKSH = 0
1778 IF(NUMELR > 0) R_SKEW = 0
1779 IF(NUMELP > 0) IBEAM_VECTOR(1:NUMELP) = ZERO
1780 IF(NUMELP > 0) RBEAM_VECTOR(1:3,1:NUMELP) = ZERO
1783 IF(SISKWN-SIFRAME<SISKWN) THEN
1784 IFRAME => ISKWN(SISKWN-SIFRAME+1:SISKWN)
1789 ! ---------------------
1790 INTER_CAND%S_IXINT_2 = 0
1791 ALLOCATE( INTER_CAND%ADDRESS(NINTER+1) )
1792 INTER_CAND%ADDRESS(1:NINTER+1) = 0
1793 ! ---------------------
1795!--- NEW DATA STRUCTE ALLOCATION FOR GROUPS OF ENTITIES
1796 ALLOCATE(SUBSETS(NSUBS))
1797 SUBSETS(1:NSUBS)%ID=0
1798 ALLOCATE(IGRNOD(NGRNOD+NSETS))
1799 ALLOCATE(IGRBRIC(NGRBRIC+NSETS))
1800 ALLOCATE(IGRQUAD(NGRQUAD+NSETS))
1801 ALLOCATE(IGRSH4N(NGRSHEL+NSETS))
1802 ALLOCATE(IGRSH3N(NGRSH3N+2*NSETS))
1803 ALLOCATE(IGRTRUSS(NGRTRUS+NSETS))
1804 ALLOCATE(IGRBEAM(NGRBEAM+NSETS))
1805 ALLOCATE(IGRSPRING(NGRSPRI+NSETS))
1806 ALLOCATE(IGRPART(NGRPART+NSETS))
1807 ALLOCATE(IGRSURF(NSURF+NSETS))
1808 ALLOCATE(IGRSURF_PROC(NSURF+NSETS,NSPMD))
1809 ALLOCATE(IGRSLIN(NSLIN+NSETS))
1810 IGRNOD(1:NGRNOD+NSETS)%ID = 0
1811 IGRNOD(1:NGRNOD+NSETS)%NENTITY = 0
1812 IGRNOD(1:NGRNOD+NSETS)%GRTYPE = 0
1813 IGRNOD(1:NGRNOD+NSETS)%SORTED = 0
1814 IGRNOD(1:NGRNOD+NSETS)%GRPGRP = 0
1815 IGRNOD(1:NGRNOD+NSETS)%LEVEL = 0
1816 IGRNOD(1:NGRNOD+NSETS)%R2R_ALL = 0
1817 IGRNOD(1:NGRNOD+NSETS)%R2R_SHARE = 0
1821 IGRBRIC(1:NGRBRIC+NSETS)%NENTITY = 0
1822 IGRQUAD(1:NGRQUAD+NSETS)%NENTITY = 0
1823 IGRSH4N(1:NGRSHEL+NSETS)%NENTITY = 0
1824 IGRSH3N(1:NGRSH3N+2*NSETS)%NENTITY = 0
1825 IGRTRUSS(1:NGRTRUS+NSETS)%NENTITY = 0
1826 IGRBEAM(1:NGRBEAM+NSETS)%NENTITY = 0
1827 IGRSPRING(1:NGRSPRI+NSETS)%NENTITY = 0
1828 IGRPART(1:NGRPART+NSETS)%NENTITY = 0
1829!-- variable initialization to not printout the empty SET groups
1830 IGRNOD(1:NGRNOD+NSETS)%SET_GROUP = 0
1831 IGRBRIC(1:NGRBRIC+NSETS)%SET_GROUP = 0
1832 IGRQUAD(1:NGRQUAD+NSETS)%SET_GROUP = 0
1833 IGRSH4N(1:NGRSHEL+NSETS)%SET_GROUP = 0
1834 IGRSH3N(1:NGRSH3N+2*NSETS)%SET_GROUP = 0
1835 IGRTRUSS(1:NGRTRUS+NSETS)%SET_GROUP = 0
1836 IGRBEAM(1:NGRBEAM+NSETS)%SET_GROUP = 0
1837 IGRSPRING(1:NGRSPRI+NSETS)%SET_GROUP = 0
1838 IGRPART(1:NGRPART+NSETS)%SET_GROUP = 0
1839 IGRSURF(1:NSURF+NSETS)%SET_GROUP = 0
1840 IGRSLIN(1:NSLIN+NSETS)%SET_GROUP = 0
1842 IGRSURF(1:NSURF+NSETS)%NSEG = 0
1843 IGRSURF(1:NSURF+NSETS)%NSEG_IGE = 0
1844 IGRSURF(1:NSURF+NSETS)%SET_GROUP = 0
1845 IGRSURF(1:NSURF+NSETS)%NB_MADYMO = 0
1846 IGRSURF(1:NSURF+NSETS)%NSEG_R2R_ALL = 0
1847 IGRSURF(1:NSURF+NSETS)%NSEG_R2R_SHARE = 0
1848 IGRSURF(1:NSURF+NSETS)%EXT_ALL = 0
1850! IF(NBOX > 0) CALL MY_ALLOC(IGRBOX,NBOX)
1864 L12= L11+ SIPARTIG3D
1866 IPARTTH => IPART(L0+1:L1)
1871 IPARTS => IPART(L1+1:L2)
1876 IPARTQ => IPART(L2+1:L3)
1881 IPARTC => IPART(L3+1:L4)
1886 IPARTT => IPART(L4+1:L5)
1891 IPARTP => IPART(L5+1:L6)
1896 IPARTR => IPART(L6+1:L7)
1901 IPARTG => IPART(L8+1:L9)
1906 IPARTX => IPART(L9+1:L10)
1911 IPARTSP=> IPART(L10+1:L11)
1916 IPARTIG3D=> IPART(L11+1:L12)
1920 IF(FLAG_GOTO==1) GOTO 217
1922 IF(NFUNCT+2<=SNPC-NFUNCT) THEN
1923 NPC1 => NPC(NFUNCT+2:SNPC-NFUNCT)
1924 SNPC1 = SNPC-2*NFUNCT+1
1930212 IF(SIXS0+SIXS10>SIXS0) THEN
1931 IXS10 => IXS(SIXS0+1:SIXS0+SIXS10)
1937 IF(SIXS0+SIXS10+SIXS20>SIXS0+SIXS10) THEN
1938 IXS20 => IXS(SIXS0+SIXS10+1:SIXS0+SIXS10+SIXS20)
1943 IF(SIXS>SIXS0+SIXS10+SIXS20) THEN
1944 IXS16 => IXS(SIXS0+SIXS10+SIXS20+1:SIXS)
1950 PIXS10 = MIN(SIXS,SIXS0+1 )
1951 PIXS20 = MIN(SIXS,SIXS0+SIXS10+1 )
1952 PIXS16 = MIN(SIXS,SIXS0+SIXS10+SIXS20+1)
1954 IF(FLAG_GOTO==1) GOTO 213
1957210 INOM_OPT(1) = NRBODY
1958 INOM_OPT(2) = INOM_OPT(1) + NACCELM
1959 INOM_OPT(3) = INOM_OPT(2) + NVOLU + NMONVOL
1960 INOM_OPT(4) = INOM_OPT(3) + NINTER
1961 INOM_OPT(5) = INOM_OPT(4) + NINTSUB
1962 INOM_OPT(6) = INOM_OPT(5) + NRWALL
1963 INOM_OPT(7) = INOM_OPT(6) + 0 !obsolete option removed
1964 INOM_OPT(8) = INOM_OPT(7) + NJOINT
1965 INOM_OPT(9) = INOM_OPT(8) + NSECT
1966 INOM_OPT(10)= INOM_OPT(9) + NLINK
1967 INOM_OPT(11)= INOM_OPT(10)+ NUMSKW+1+NUMFRAM+1+NSUBMOD
1968 INOM_OPT(12)= INOM_OPT(11)+ NFXBODY
1969 INOM_OPT(13)= INOM_OPT(12)+ NFLOW
1970 INOM_OPT(14)= INOM_OPT(13)+ NRBE2
1971 INOM_OPT(15)= INOM_OPT(14)+ NRBE3
1973 INOM_OPT(16)= INOM_OPT(15)+ NFXVEL
1974 INOM_OPT(17)= INOM_OPT(16)+ NUMBCS + NUMBCSN
1975 INOM_OPT(18)= INOM_OPT(17)+ NUMMPC
1976 INOM_OPT(19)= INOM_OPT(18)+ NGJOINT
1977 INOM_OPT(20)= INOM_OPT(19)+ NUNIT0
1978 INOM_OPT(21)= INOM_OPT(20)+ NFUNCT
1979 INOM_OPT(22)= INOM_OPT(21)+ NADMESH
1980 INOM_OPT(23)= INOM_OPT(22)+ NSPHIO
1981 INOM_OPT(24)= INOM_OPT(23)+ NSPCOND
1982 INOM_OPT(25)= INOM_OPT(24)+ NEBCS
1983 INOM_OPT(26)= INOM_OPT(25)+ NINICRACK
1984 INOM_OPT(27)= INOM_OPT(26)+ NODMAS
1985 INOM_OPT(28)= INOM_OPT(27)+ NBGAUGE
1986 INOM_OPT(29)= INOM_OPT(28)+ NCLUSTER
1987 INOM_OPT(30)= INOM_OPT(29)+ NINTERFRIC
1988 INOM_OPT(31)= INOM_OPT(30)+ NRBMERGE
1989 INOM_OPT(32)= INOM_OPT(31)+ NSLIPRING
1990 INOM_OPT(33)= INOM_OPT(32)+ NRETRACTOR
1992 IF(FLAG_GOTO==1) GOTO 211
1994 CALL ANODIN( NUMNOD)
1996 CALL APARTIN(NPART+1)
2003 ERR_MSG='functions & tables
'
2004 ERR_CATEGORY='functions & tables
'
2005 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2007 PYTHON%nb_functs = 0
2008.OR.
IF(NFUNCT > 0 NTABLE > 0) THEN
2011 WRITE(ISTDO,'(a)
')' .. functions & tables
'
2012 ALLOCATE(TABLE(NTABLE) ,STAT=stat)
2013 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2016 CALL TABLE_ZERO(TABLE)
2019 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2020 ALLOCATE(TF(NPTS) ,STAT=stat)
2021 ALLOCATE(FUNCRYPT(NFUNCT) ,STAT=stat)
2023 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2027 CALL HM_READ_FUNCT(NPC ,TF ,NFUNCT ,TABLE, NPTS,
2028 . NOM_OPT(LNOPT1*INOM_OPT(20)+1) ,FUNCRYPT, UNITAB, LSUBMODEL)
2033 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2034 CALL HM_READ_TABLE1 (NTABLE, TABLE ,NFUNCT ,NPC ,TF ,
2035 . NOM_OPT(LNOPT1*INOM_OPT(20)+1), UNITAB, LSUBMODEL)
2037 CALL HM_READ_FUNCT_PYTHON(PYTHON,NPC,SNPC,NFUNCT,LSUBMODEL,NSUBMOD,TF,NPTS,TABLE, NTABLE)
2038 CALL CHKFUNCT (NFUNCT, NPC,NOM_OPT(LNOPT1*INOM_OPT(20)+1))
2040 CALL HM_READ_MOVE_FUNCT(NPC ,TF ,NFUNCT ,TABLE, NTABLE,FUNCRYPT, UNITAB, LSUBMODEL)
2041 DEALLOCATE(FUNCRYPT)
2043 CALL HM_READ_TABLE2 (NTABLE, TABLE ,NFUNCT , UNITAB, LSUBMODEL )
2048 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2050 ALLOCATE(TF(NPTS) ,STAT=stat)
2051 ALLOCATE(TABLE(0) ,STAT=stat)
2062 ALLOCATE(FUNC2D(NFUNC2D))
2063 IF(NFUNC2D > 0) THEN
2064 CALL HM_READ_FUNC2D(FUNC2D, LSUBMODEL, UNITAB)
2069 ERR_MSG='dynamic storage
'
2071 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2073 SSKEW = LSKEW*(NUMSKW+1)
2074 IF(NSPCOND > 0) SSKEW = SSKEW + LSKEW*NUMSPH
2075 IF(NSUBMOD > 0) SSKEW = SSKEW + LSKEW*NSUBMOD
2076 SXFRAME = NXFRAME*(NUMFRAM+1)
2077 SSKEW = SSKEW + SXFRAME
2078 SGEO = NUMGEO*NPROPG
2079 SEANI = NUMELS+NUMELQ+NUMELC+NUMELTG
2080 ISHIF = NUMELS+NUMELQ+NUMELC
2082 ALLOCATE(PM(SPM) ,STAT=stat)
2083 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='pm
')
2084 ALLOCATE(GEO(SGEO),STAT=stat)
2085 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='geo
')
2087 ALLOCATE(SKEW(SSKEW) ,STAT=stat)
2088 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='skew
')
2089 IF(SSKEW-SXFRAME<SSKEW) THEN
2090 XFRAME => SKEW(SSKEW-SXFRAME+1:SSKEW)
2095 ALLOCATE(EANI(SEANI) ,STAT=stat)
2096 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='eani
')
2097 IF(SEANI > 0) EANI = 0
2098 IF(NUMELTG > 0) THEN
2099 EANIT => EANI(ISHIF+1:SEANI)
2106 ISHIF =NUMELS+NUMELQ+NUMELC
2109 ERR_MSG='kinematic initialization
'
2110 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2117 ERR_CATEGORY='materials
'
2118 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2119 CALL SAV_BUF_POINT(NPC,5)
2120 CALL SAV_BUF_POINT(TF,6)
2121 WRITE(ISTDO,'(a)
')TITRE(11)
2122 SRWORK = MAX(NUMMAT*10000,1000000)
2124 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
2125 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='rwork
')
2126 IF(SRWORK > 0) RWORK = ZERO
2128 ALLOCATE(MTAG_INI (NUMMAT))
2129 ALLOCATE(MPARAM_INI (NUMMAT))
2130 CALL INIT_MLAW_TAG(MTAG_INI,NUMMAT)
2131 MAT_ELEM%MAT_PARAM(1:NUMMAT) => MPARAM_INI(1:NUMMAT)
2132 MLAW_TAG(1:NUMMAT) => MTAG_INI(1:NUMMAT)
2135 CALL READ_MATERIAL_MODELS(
2136 . MAT_ELEM ,MLAW_TAG ,FAIL_TAG ,EOS_TAG ,
2137 . RWORK ,SRWORK ,IPM ,PM ,UNITAB ,
2138 . MULTI_FVM ,FAILWAVE ,NLOC_DMG ,LSUBMODEL ,TABLE ,
2139 . LTITR ,USERL_AVAIL,MAT_NUMBER,
2140 . NPC ,TF ,SNPC ,NPTS ,SBUFMAT )
2142 ALLOCATE(BUFMAT(SBUFMAT) ,STAT=stat)
2143 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2146 BUFMAT = RWORK(1:SBUFMAT)
2147 IF(ALLOCATED(RWORK)) DEALLOCATE(RWORK)
2152 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2158 CALL SAV_BUF_POINT(PM ,1)
2159 CALL SAV_BUF_POINT(BUFMAT ,2)
2160 CALL SAV_BUF_POINT(GEO ,3)
2163 CALL SAV_BUF_POINT(ISKWN ,7)
2164 CALL SAV_BUF_POINT(SKEW ,8)
2165 CALL SAV_BUF_POINT(IPM ,11)
2166 CALL SAV_BUF_POINT(IGEO,12)
2173 ERR_CATEGORY='nodes
'
2174 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2175 ALLOCATE(CMERGE(NUMCNOD),STAT=stat)
2177 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
2182 WRITE(ISTDO,'(a)
')TITRE(12)
2183 CALL HM_READ_NODE(X ,ITAB ,ITABM1 ,CMERGE ,UNITAB ,
2184 . WIGE ,LSUBMODEL,IS_DYNA)
2191 ERR_CATEGORY='submodels
'
2192 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2194 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2195 SRTRANS = NRTRANS * NTRANSF
2196 ALLOCATE(RTRANS(SRTRANS) ,STAT=stat)
2197 IF(SRTRANS > 0) RTRANS = ZERO
2200 WRITE(ISTDO,'(a)
')' .. submodels
'
2201 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2204 CALL LECTRANSSUB(X ,IGRNOD ,ITAB ,ITABM1 ,UNITAB,
2205 . RTRANS ,LSUBMODEL,IS_DYNA)
2206 CALL LECSUBMOD(ISUBMOD,X,UNITAB,ITABM1,RTRANS,ITAB,LSUBMODEL,IS_DYNA)
2216 ERR_CATEGORY='skews
'
2217 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2218 IF(NUMSKW/=0)WRITE(ISTDO,'(a)
')TITRE(14)
2219 CALL HM_READ_SKW(SKEW ,ISKWN ,X ,
2220 . ITAB ,ITABM1 ,BID13 ,
2222 . NOM_OPT(LNOPT1*INOM_OPT(10)+1),UNITAB)
2224 CALL HM_READ_FRM(ISKWN ,X ,ITAB ,ITABM1 ,XFRAME ,
2226 . NOM_OPT(LNOPT1*INOM_OPT(10)+1),UNITAB)
2232 ALLOCATE(IDRAPEID(NDRAPE) ,STAT=stat)
2233 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2237 CALL HM_READ_PRELECDRAPE(IDRAPEID,LSUBMODEL)
2239 ALLOCATE(IDRAPEID(0))
2245 CALL HM_PREREAD_PART(IPART,IGEO,LSUBMODEL)
2251 ERR_MSG='properties
'
2252 ERR_CATEGORY='properties
'
2253 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2256 WRITE(ISTDO,'(a)
')TITRE(31)
2257 SRWORK = NUMGEO*(BGEOSIZE+MAXFUNC+MAXMAT+MAXPID+MAXTAB)
2259 ALLOCATE(DBRWORK(SRWORK) ,STAT=stat)
2260 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2264 ALLOCATE(KNOT(SKNOT) ,STAT=stat)
2265 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2268 CALL SAV_BUF_POINT(DBRWORK,4)
2271 CALL HM_READ_PROPERTIES(GEO , X , IXC , PM ,ITABM1 ,
2272 . DBRWORK , SBUFGEO , ISKWN , IGEO ,IPM ,
2273 . NPC , TF , UNITAB , RTRANS ,LSUBMODEL ,
2274 . PROP_TAG , IPART , KNOT , IDRAPEID ,STACK_INFO,
2275 . NUMGEOSTACK, NPROP_STACK , MULTI_FVM, IADGEO ,DEFAULTS)
2277 ALLOCATE(BUFGEO(SBUFGEO) ,STAT=stat)
2278 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2281 BUFGEO(1:SBUFGEO) = DBRWORK(1:SBUFGEO)
2283 CALL SAV_BUF_POINT(BUFGEO,4)
2285 ALLOCATE(BUFGEO(SBUFGEO) ,STAT=stat)
2288 IF(NUMPLY /= 0) THEN
2289 ALLOCATE(PLY_INFO(3,NUMPLY),STAT=stat)
2290 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2295 ALLOCATE(PLY_INFO(0,0))
2298 IF(NUMSTACK > 0) THEN
2300 LEN_G = NPROPGI*(NUMSTACK + NUMPLY)
2301 ALLOCATE(IGEO_STACK(LEN_G),STAT=stat)
2303 LEN_G = NPROPG*(NUMSTACK + NUMPLY )
2304 ALLOCATE(GEO_STACK(LEN_G),STAT=stat)
2306 CALL LECSTACK_PLY(GEO_STACK ,X ,IXC ,PM ,ITABM1 ,
2307 . ISKWN ,IGEO_STACK ,IPM ,NPC ,TF ,
2308 . UNITAB , RTRANS ,LSUBMODEL,IPART ,IDRAPEID,
2309 . PLY_INFO ,STACK_INFO,NUMGEOSTACK, NPROP_STACK ,
2312 ALLOCATE(IGEO_STACK(0),STAT=stat)
2313 ALLOCATE(GEO_STACK(0),STAT=stat)
2316.AND.
IF(SDR==0 IDROT == 1) THEN
2317 SDR = 3*NUMNOD*MAX(IRODDL,IRODDL0)
2318 IF(ALLOCATED(DR)) DEALLOCATE(DR)
2319 ALLOCATE(DR(SDR) ,STAT=stat)
2320 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2329 ALLOCATE(PINCH_DATA%XPINCH(3,SPINCH) ,STAT=stat)
2330 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2333 ALLOCATE(PINCH_DATA%DPINCH(3,SPINCH) ,STAT=stat)
2334 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2337 ALLOCATE(PINCH_DATA%VPINCH(3,SPINCH) ,STAT=stat)
2338 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2341 ALLOCATE(PINCH_DATA%MSPINCH(SPINCH) ,STAT=stat)
2342 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2347 PINCH_DATA%XPINCH(1:3,1:SPINCH) = ZERO
2348 PINCH_DATA%DPINCH(1:3,1:SPINCH) = ZERO
2349 PINCH_DATA%VPINCH(1:3,1:SPINCH) = ZERO
2350 PINCH_DATA%MSPINCH(1:SPINCH) = ZERO
2361 ERR_CATEGORY='parts
'
2362 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2363 SIWORK = MAX(2*NUMELS,2*NUMELQ,3*(NPART+NTHPART),3*NUMSKW,NUMELS,
2364 * NUMELC,NUMELTG,NUMMAT+NUMGEO,NUMELT+NUMELP+NUMELR+
2366 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
2367 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2371 ALLOCATE(THK_PART(NPART) ,STAT=stat)
2373 CALL HM_READ_PART(IPART ,PM ,GEO ,IPM ,IGEO ,IWORK ,THK_PART,
2374 . UNITAB,LSUBMODEL,MULTI_FVM ,MLAW_TAG,MAT_ELEM%MAT_PARAM,GLOB_THERM)
2381 ALE%GLOBAL%SNALE = MAX(IALE,IEULER,IALELAG)*NUMNOD
2382 ALE%GLOBAL%SIELVS = 6*NUMELS+MAX(IALE,GLOB_THERM%ITHERM,IEULER,IALELAG)* (4 * NUMELQ + 3 * NUMELTG)
2383 SIFILL = NMULT*NUMNOD
2386 ALLOCATE(IFILL(SIFILL),STAT=stat)
2387 IF(STAT /= 0) CALL ANCMSG(MSGID = 268,
2389 . MSGTYPE = MSGERROR,
2392 ALLOCATE(IMS(SIMS),STAT=stat)
2393 IF(STAT /= 0) CALL ANCMSG(MSGID = 268,
2395 . MSGTYPE = MSGERROR,
2399 IF(SIFILL > 0) IFILL = 0
2400 IF(SIMS > 0) IMS = 0
2402 ALLOCATE(DFLOW(3*NUMNOD*IALELAG) ,STAT=stat)
2403 ALLOCATE(VFLOW(3*NUMNOD*IALELAG) ,STAT=stat)
2404 ALLOCATE(WFLOW(3*NUMNOD*IALELAG) ,STAT=stat)
2406 IF(IALELAG > 0) THEN
2412 IF(ALEFVM_Param%IEnabled > 0)THEN
2413 ALLOCATE(ALEFVM_Buffer%FCELL(6,NUMELS) ,STAT=stat)
2414 ALEFVM_Buffer%FCELL(:,:) = ZERO
2421 ERR_MSG='multidomains
'
2422 ERR_CATEGORY='multidomains
'
2423 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2426 SIEXLNK = NR2R*NR2RLNK
2427 IF((NR2RLNK+NSUBDOM)>0) THEN
2428 ALLOCATE(IEXLNK(SIEXLNK) ,STAT=stat)
2429 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2433 WRITE(ISTDO,'(a)
') ' ..
EXTERNAL coupling
'
2434 CALL LECEXTLNK(IEXLNK,IPART,LSUBMODEL)
2439 IF(NSUBDOM > 0) THEN
2440 ALLOCATE(TAG_PART(NPART),IPART_R2R(4,NPART))
2442 CALL R2R_VOID(IPART)
2446 IF(NUMMAT > NUMMAT0) THEN
2447 ALLOCATE(MTAG_R2R(NUMMAT))
2448 ALLOCATE(MPARAM_R2R(NUMMAT))
2449 CALL INIT_MLAW_TAG(MTAG_R2R ,NUMMAT)
2450 MTAG_R2R(1:NUMMAT0) = MTAG_INI(1:NUMMAT0)
2451 CALL R2R_MATPARAM_COPY(MPARAM_R2R, MPARAM_INI ,NUMMAT0 ,NUMMAT)
2452 MLAW_TAG(1:NUMMAT) => MTAG_R2R(1:NUMMAT)
2453 MAT_ELEM%MAT_PARAM(1:NUMMAT) => MPARAM_R2R(1:NUMMAT)
2454 MAT_ELEM%NUMMAT = NUMMAT
2455 DEALLOCATE(MTAG_INI)
2456 IF(ALLOCATED(MPARAM_INI))THEN
2457 DO I=1,NUMMAT0 ; CALL MPARAM_INI(I)%DESTRUCT() ; ENDDO
2458 DEALLOCATE(MPARAM_INI)
2462 ALLOCATE(TAG_PART(0),IPART_R2R(4,0))
2469! TABMP_L defined in tabsiz_c
2472 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2473 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2477 ALLOCATE( POIN_PART_SHELL(2,NPART) )
2478 ALLOCATE( POIN_PART_TRI(2,NPART) )
2479 ALLOCATE( POIN_PART_SOL(2,NPART,7) )
2480 ALLOCATE( MID_PID_SHELL(NUMMAT),MID_PID_TRI(NUMMAT) )
2481 ALLOCATE( MID_PID_SOL(NUMMAT,7) )
2482 POIN_PART_SHELL(1:2,1:NPART) = 0
2483 POIN_PART_TRI(1:2,1:NPART) = 0
2484 POIN_PART_SOL(1:2,1:NPART,1:7) = 0
2486 ALLOCATE(POIN_UMP(NUMMAT), STAT=stat)
2487 POIN_UMP(1:NUMMAT) = 0
2488 ALLOCATE(TAB_UMP_LOC(5,NPART), STAT=stat)
2489 TAB_UMP_LOC(1:5,1:NPART) = 0
2491 CALL SET_POIN_UMP(IPART,IPM,TAB_UMP_LOC,POIN_UMP,TAILLE2)
2497 ERR_CATEGORY='elements
'
2498 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2500 WRITE(ISTDO,'(a)
')TITRE(15)
2502 CALL HM_READ_SOLID(IXS ,PM ,ITAB ,ITABM1 ,
2503 . IPART ,IPARTS ,EANI ,IXS10 ,IXS20 ,IXS16 ,
2504 . IGEO ,LSUBMODEL,IS_DYNA,X )
2512 WRITE(ISTDO,'(a)
')TITRE(16)
2513 CALL HM_READ_QUAD(IXQ ,ITAB ,ITABM1 ,IPART ,IPARTQ ,
2514 . IPM ,IGEO ,UNITAB ,LSUBMODEL)
2519 ALLOCATE(ITAG(NUMNOD),STAT=stat)
2520 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2526 WRITE(ISTDO,'(a)
')TITRE(17)
2527 CALL HM_READ_SHELL(IXC ,ITAB ,ITABM1 ,IPART ,IPARTC ,
2528 . THKE ,IPM ,IGEO ,UNITAB ,ITAG ,SH4ANG, LSUBMODEL)
2539 WRITE(ISTDO,'(a)
')TITRE(18)
2540 CALL HM_READ_TRUSS(IXT ,ITAB ,ITABM1 ,IPART ,IPARTT ,
2541 . IPM ,IGEO ,LSUBMODEL)
2547 WRITE(ISTDO,'(a)
')TITRE(19)
2548 CALL HM_READ_BEAM(IXP ,ITAB ,ITABM1 ,IPART ,IPARTP ,
2549 . IPM ,IGEO ,LSUBMODEL,IBEAM_VECTOR,RBEAM_VECTOR)
2556 WRITE(ISTDO,'(a)
')TITRE(20)
2557 CALL HM_READ_SPRING(IXR ,ITAB ,ITABM1 ,IPART ,IPARTR ,
2558 . IGEO ,IXR_KJ ,LSUBMODEL,ISKWN,R_SKEW,IPM)
2564.AND.
IF(N2D==0 NUMELTRIA==0)THEN
2565 WRITE(ISTDO,'(a)
')TITRE(21)
2566 CALL HM_READ_SH3N( IXTG ,ITAB ,ITABM1 ,IPART ,IPARTG ,
2567 . THKEC ,PM ,GEO ,EANIT ,IGEO ,
2568 . IPM ,UNITAB ,SH3ANG , LSUBMODEL)
2569 ELSEIF(NUMELTRIA==NUMELTG)THEN
2570 WRITE(ISTDO,'(a)
')TITRE(23)
2571 CALL HM_READ_TRIA(IXTG ,ITAB ,ITABM1 ,IPART ,IPARTG ,
2572 . PM ,GEO ,EANIT ,IGEO ,IPM ,
2573 . UNITAB , LSUBMODEL)
2575 !check is IXTG array is used with proper modeling : 2D-TRIA or 3D-SH3N
2576.AND..AND.
IF(NUMELTG>0 N2D>0 NUMELTRIA==0)THEN
2577 CALL ANCMSG(MSGID=66,
2583.AND..AND.
ELSEIF(NUMELTG>0 N2D==0 NUMELTRIA==NUMELTG)THEN
2584 CALL ANCMSG(MSGID=66,
2596 IF(NUMELTG + NUMELC == 0) ICRACK3D = 0
2601 IF(NUMELIG3D/=0)THEN
2603 SKXIG3D = NIXIG3D*NUMELIG3D
2604 WRITE(ISTDO,'(a)
')TITRE(22)
2606 CALL PRELECIG3D(SIXIG3D)
2608 ALLOCATE(KXIG3D(SKXIG3D) ,STAT=stat)
2609 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2612 ALLOCATE(IXIG3D(SIXIG3D+ADDSIXIG3D) ,STAT=stat)
2613 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2616 ALLOCATE(TABCONPATCH(NBPART_IG3D),STAT=stat)
2617 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2619 . C1='tabcon_patch_ig3d
')
2623 . ITAB ,IPART ,IPARTIG3D ,IPM ,IGEO ,
2624 . KXIG3D ,IXIG3D ,ITABM1 ,NCTRLMAX,TABCONPATCH)
2626 SKNOTLOCPC = DEG_MAX*3*(NUMNOD+L_TAB_NEWFCT)*NUMGEO ! IL FAUDRAIT AVOIR ONE NOMBRE DE POINT IGE ET DES INDICES
2628.OR.
IF(SKNOTLOCPC > INTMAX SKNOTLOCPC < ZERO) THEN ! L_TAB_NEWFCT pour se laisser la taille de travail
2631 SKNOTLOCPC = INT(SKNOTLOCPC)
2633 ALLOCATE(KNOTLOCPC(SKNOTLOCPC) ,STAT=stat)
2634 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2639 SKNOTLOCEL = 2*3*NUMELIG3D
2640.OR.
IF(SKNOTLOCEL > INTMAX SKNOTLOCEL < ZERO) THEN
2643 SKNOTLOCEL = INT(SKNOTLOCEL)
2645 ALLOCATE(KNOTLOCEL(SKNOTLOCEL) ,STAT=stat)
2646 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2651 CALL PRERAFIG3D(KNOT,KNOTLOCPC,KNOTLOCEL,
2652 . KXIG3D,IXIG3D,IGEO,
2654 . X,V,D,MS,WIGE,TABCONPATCH,1)
2656 SIXIG3D=SIXIG3D+ADDSIXIG3D
2657 ALLOCATE(MSIG3D(NUMELIG3D*NCTRLMAX) ,STAT=stat)
2658 MSIG3D(1:NUMELIG3D*NCTRLMAX) = ZERO
2660 ALLOCATE(KXIG3D(0) ,STAT=stat)
2661 ALLOCATE(MSIG3D(0) ,STAT=stat)
2662 ALLOCATE(IXIG3D(0) ,STAT=stat)
2663 ALLOCATE(KNOTLOCEL(0) ,STAT=stat)
2664 ALLOCATE(KNOTLOCPC(0) ,STAT=stat)
2669.AND.
IF(NUMELX > 0 NGRNOD > 0 )THEN
2670 WRITE(ISTDO,'(a)
')' .. nodens group
'
2671 CALL HM_PRELECGRNS(ITABM1 ,IGRNOD, LSUBMODEL)
2676 ERR_MSG='multi-purpose elements
'
2677 ERR_CATEGORY='multi-purpose elements
'
2678 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2681 CALL HM_PREREAD_XELEM(SIXX, IGRNOD,LSUBMODEL)
2682 ALLOCATE(KXX(SKXX) ,STAT=stat)
2683 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2686 ALLOCATE(IXX(SIXX+150) ,STAT=stat)
2687 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2692 ALLOCATE(LELX(NUMELX) ,STAT=stat)
2693 LELX(1:NUMELX) = ZERO
2694 CALL HM_READ_XELEM(IGRNOD ,ITAB ,ITABM1 ,IPART ,IPARTX,
2695 . IPM ,IGEO ,KXX ,IXX ,LSUBMODEL)
2699 ALLOCATE(KXX(SKXX) ,STAT=stat)
2700 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2703 ALLOCATE(IXX(SIXX) ,STAT=stat)
2704 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2707 ALLOCATE(LELX(NUMELX) ,STAT=stat)
2713 ERR_MSG='adaptive meshing
'
2714 ERR_CATEGORY='adaptive meshing
'
2715 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2721 ALLOCATE(SH4TREE(KSH4TREE,NUMELC),STAT=stat)
2722 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2726 ALLOCATE(SH3TREE(KSH3TREE,NUMELTG),STAT=stat)
2727 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2731 ALLOCATE(IPADMESH(KIPADMESH,NPART),STAT=stat)
2732 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2737 ALLOCATE(PADMESH(KPADMESH,NPART),STAT=stat)
2738 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2743 CALL SET_ADMESH(IPART ,IPADMESH,PADMESH,UNITAB,LSUBMODEL )
2747 ALLOCATE(SH4TRIM(LSH4TRIM),STAT=stat)
2748 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2753 ALLOCATE(SH3TRIM(LSH3TRIM),STAT=stat)
2754 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2759 . IPART ,IPARTC ,IPARTG ,IXC ,IXTG ,
2760 . SH4TREE, SH3TREE, SH4TRIM, SH3TRIM,
2764 . IPART ,IPARTC ,IPARTG ,IXC ,IXTG ,
2765 . X ,ITAB ,ITABM1 ,SH4TREE, SH3TREE,
2768 ALLOCATE(SH4TREE(0,0))
2769 ALLOCATE(SH3TREE(0,0))
2770 ALLOCATE(IPADMESH(0,0))
2771 ALLOCATE(PADMESH(0,0))
2772 ALLOCATE(SH4TRIM(0))
2773 ALLOCATE(SH3TRIM(0))
2777 ALLOCATE(MSCND(NUMNOD),INCND(NUMNOD),STAT=stat)
2778 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2784 ALLOCATE(MSCND(0),INCND(0))
2793 ALLOCATE(TAB_UMP_LOC2(7+6,TAILLE2,2),STAT=stat)
2795 CALL REINI_MATPROP(TAILLE,TAILLE2,TAB_UMP_LOC,TAB_UMP_LOC2,
2796 . IXS,IXQ,IXC,IXT,IXP,IXR,
2797 . IXTG,EANI,POIN_UMP)
2799 ALLOCATE( TAB_UMP(7,TAILLE), STAT=stat)
2802 CALL REINI_MATPROP2(TAILLE,TAILLE2,
2803 . TAB_UMP_LOC,TAB_UMP_LOC2,TAB_UMP,TAB_SOL,
2806 DEALLOCATE(TAB_UMP_LOC2)
2808 DEALLOCATE(TAB_UMP_LOC)
2813 IF(ICRACK3D > 0) THEN
2814 NXEL = 3 ! nb of phantom elements within one layer (change to NXEL=3)
2816 IF(IPARI0 /= 1) IPARI0=1 ! force flag parith/on pour XFEM (pareil engine)
2822 ERR_MSG='xfem
for shells - allocations
'
2823 ERR_CATEGORY='internal
'
2824 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2827 ALLOCATE(ADDCNE_CRKXFEM(0:LEN+1),STAT=stat)
2828 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2829 . MSGTYPE=MSGERROR,C1='addcne_crkxfem
')
2830 ADDCNE_CRKXFEM(0:LEN+1) = 0
2832 ALLOCATE(ITAGN(LEN),STAT=stat)
2833 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2834 . MSGTYPE=MSGERROR,C1='itagn
')
2835 ALLOCATE(INOD_CRKXFEM(LEN),STAT=stat)
2836 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2838 ALLOCATE(IBORDNODE(LEN),STAT=stat)
2839 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
2841 LEN = XFEMON*(NUMELC+NUMELTG)
2843 ALLOCATE(ITAGE(LEN),STAT=stat)
2844 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2845 . MSGTYPE=MSGERROR,C1='itage
')
2846 ALLOCATE(IEL_CRKXFEM(LEN),STAT=stat)
2847 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2862 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2864 ALLOCATE(SPH2SOL(NUMSPH) ,STAT=stat)
2865 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2869 ALLOCATE(SOL2SPH(2*NUMELS8) ,STAT=stat)
2870 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2874 ALLOCATE(IRST(3*NSPHSOL) ,STAT=stat)
2875 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2879 ALLOCATE(SOL2SPH_TYP(NUMELS8) ,STAT=stat)
2880 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2885 ALLOCATE(SPH2SOL(0) ,STAT=stat)
2886 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2889 ALLOCATE(SOL2SPH(0) ,STAT=stat)
2890 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2893 ALLOCATE(IRST(0) ,STAT=stat)
2894 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2897 ALLOCATE(SOL2SPH_TYP(0) ,STAT=stat)
2898 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2903 SSPBUF = NSPBUF*NUMSPH
2905 SIXSP = KVOISPH*NUMSPH
2911 SIXSP8 = (NUMSPH8/(NSPMD))*KVOISPH8
2912 LIMIT8 = (HUGE(INTEGER_LIMIT32)-1)*0.95!((2**31)-1)*0.95
2913 IF(SIXSP8>LIMIT8)THEN
2914 CALL ANCMSG(MSGID=981,
2920 ALLOCATE(KXSP(SKXSP) ,STAT=stat)
2921 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2924 ALLOCATE(IXSP(KVOISPH,NUMSPH) ,STAT=stat)
2925 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2928 ALLOCATE(NOD2SP(SNOD2SP) ,STAT=stat)
2929 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2932 ALLOCATE(SPBUF(SSPBUF) ,STAT=stat)
2933 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2937.AND.
IF(NSPHIO>0NBPARTINLET>0)THEN
2938 ALLOCATE(RESERVEP(NBPARTINLET) ,STAT=stat)
2939 IF(STAT /= 0) CALL ANCMSG(MSGID=268,
2943 RESERVEP(1:NBPARTINLET) = 0
2945 ALLOCATE(RESERVEP(1))
2952 WRITE(ISTDO,'(a)
')' .. sph particles definition
'
2953 CALL HM_READ_SPHCEL(ITAB ,ITABM1 ,IPART ,
2954 2 IPARTSP ,IPM ,IGEO ,KXSP ,IXSP ,
2955 3 NOD2SP, RESERVEP,IXS ,IPARTS ,EANI ,
2956 4 SPH2SOL,SOL2SPH ,IRST ,X ,SOL2SPH_TYP,
2957 5 LSUBMODEL,SPBUF ,UNITAB ,IPRI )
2964 ALLOCATE(KXSP(SKXSP) ,STAT=stat)
2965 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2968 ALLOCATE(IXSP(0,0) ,STAT=stat)
2969 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2972 ALLOCATE(NOD2SP(SNOD2SP) ,STAT=stat)
2973 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2976 ALLOCATE(SPBUF(SSPBUF) ,STAT=stat)
2977 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2986 ERR_MSG='connectivity
'
2987 ERR_CATEGORY='connectivity
'
2988 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2989 ! -------------------
2990 ! initialisation of invert_group structure, used in
2991 ! HM_READ_SET and in HM_READ_SENSORS for user sensor
2992 CALL INVERTED_GROUP_INIT(0,INV_GROUP,NUMSPH)
2994 CALL COMPUTE_CONNECT_PARTELM(IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP,
2995 . IPARTG ,IPARTR ,IPARTSP ,INV_GROUP,NUMSPH,
2997 ! -------------------
2998 IF(NUMELTG6 ==0 )THEN
3003 ALLOCATE(IXTG1(SIXTG1), STAT=stat)
3004 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3009214 ALLOCATE(KNOD2ELS(NUMNOD+1),STAT=stat)
3010 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3014 ALLOCATE(KNOD2ELC(NUMNOD+1),STAT=stat)
3015 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3018 ALLOCATE(KNOD2ELTG(NUMNOD+1),STAT=stat)
3019 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3023 ALLOCATE(KNOD2EL1D(NUMNOD+1),STAT=stat)
3024 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3029 ALLOCATE(KNOD2ELQ(NUMNOD+1),STAT=stat)
3030 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3035 S_NOD2ELS = 8*NUMELS+6*NUMELS10+12*NUMELS20+8*NUMELS16
3036 ALLOCATE(NOD2ELS(S_NOD2ELS),STAT=stat)
3037 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3041 ALLOCATE(NOD2ELC(4*NUMELC),STAT=stat)
3042 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3046 S_NOD2ELTG = 3*NUMELTG+3*NUMELTG6
3047 ALLOCATE(NOD2ELTG(S_NOD2ELTG),STAT=stat)
3048 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3052 S_NOD2EL1D=2*NUMELT+2*NUMELP+3*NUMELR+2*SIXX
3053 ALLOCATE(NOD2EL1D(S_NOD2EL1D),STAT=stat)
3054 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3058 ALLOCATE(KNOD2ELIG3D(NUMNOD+1),STAT=stat)
3059 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3063 ALLOCATE(NOD2ELIG3D(NCTRLMAX*NUMELIG3D),
3065 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3069 ALLOCATE(NOD2ELQ(4*NUMELQ),STAT=stat)
3070 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3075 IF(FLAG_GOTO==1) GOTO 215
3079 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
3080 3 IXR ,IXTG ,IXS10 ,IXS20 ,
3081 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
3082 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
3083 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
3084 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
3086 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
3092 SIBUFSSG = 0 ! to be removed
3096 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3098 WRITE(ISTDO,'(a)
')' ..
subsets'
3100 CALL HM_READ_SUBSET(SUBSETS,IPART,NSUBS,NPART,LSUBMODEL)
3101 CALL SUBSET_INI(SUBSETS)
3111 ERR_CATEGORY='boxes
'
3112 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3114 ALLOCATE(IBOX (NBBOX))
3116 WRITE(ISTDO,'(a)
')' .. box
'
3118 CALL HM_READ_BOX(IBOX ,UNITAB ,ITABM1 ,ISKWN ,SKEW ,
3119 . X ,RTRANS ,LSUBMODEL)
3128 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3132 WRITE(ISTDO,'(a)
')' .. element groups
'
3133 ERR_CATEGORY='element groups
'
3137 ALLOCATE(IXS_S(NUMELS),IXS_S_IND(NUMELS),IXQ_S(NUMELQ),
3138 2 IXQ_S_IND(NUMELQ),IXC_S(NUMELC),IXC_S_IND(NUMELC),
3139 3 IXT_S(NUMELT),IXT_S_IND(NUMELT),IXP_S(NUMELP),
3140 4 IXP_S_IND(NUMELP),IXR_S(NUMELR),IXR_S_IND(NUMELR),
3141 5 IXTG_S(NUMELTG),IXTG_S_IND(NUMELTG))
3144 1 ITAB ,ITABM1 ,ISUBMOD ,
3145 2 X ,IXS ,IXQ ,IXC ,IXT ,IXP ,
3146 3 IXR ,IXTG , IPART ,
3147 4 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
3148 5 IPARTG ,FLAGG ,SH4TREE ,SH3TREE ,
3149 6 SKEW ,ISKWN ,UNITAB ,IBOX ,
3150 7 IXS10 ,IXS16 ,IXS20 ,RTRANS,LSUBMODEL,
3151 8 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3152 9 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3153 A IXTG_S,IXTG_S_IND,IADBOXMAX,SUBSETS,IGRBRIC,IGRQUAD,
3154 B IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING)
3156 LENI=MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,NUMELTG)
3159 1 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3160 2 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3161 3 IXTG_S,IXTG_S_IND,IXS,IXQ,IXC,IXT,IXP,IXR,IXTG,LENI)
3165 1 ITAB ,ITABM1 ,ISUBMOD ,
3166 2 X ,IXS ,IXQ ,IXC ,IXT ,IXP ,
3167 3 IXR ,IXTG , IPART ,
3168 4 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
3169 5 IPARTG ,FLAGG ,SH4TREE ,SH3TREE ,
3170 6 SKEW ,ISKWN ,UNITAB ,IBOX ,
3171 7 IXS10 ,IXS16,IXS20,RTRANS,LSUBMODEL,
3172 8 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3173 9 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3174 A IXTG_S,IXTG_S_IND,IADBOXMAX,SUBSETS,IGRBRIC,IGRQUAD,
3175 B IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING)
3177 DEALLOCATE(IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3178 2 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3179 3 IXTG_S,IXTG_S_IND)
3183 WRITE(ISTDO,'(a)
')' .. part groups
'
3184 ERR_CATEGORY='part groups
'
3186 FLAGG = 0 !TAG ENTITY & ALLOCATE
3187 CALL HM_READ_GRPART(IGRPART , IPART, ISUBMOD, FLAGG ,NGRPART,LSUBMODEL, SUBSETS )
3189 FLAGG = 1 !BUILD GROUPS
3190 CALL HM_READ_GRPART(IGRPART , IPART, ISUBMOD, FLAGG ,NGRPART,LSUBMODEL, SUBSETS )
3194 ERR_CATEGORY='group of groups
'
3197 DO WHILE (ICOUNT > 0)
3203 . ICOUNT ,ITER ,IGRBRIC,IGRQUAD ,IGRSH4N,
3204 . IGRSH3N ,IGRTRUSS,IGRBEAM,IGRSPRING,IGRPART,
3211 . ICOUNT ,ITER ,IGRBRIC,IGRQUAD ,IGRSH4N,
3212 . IGRSH3N ,IGRTRUSS,IGRBEAM,IGRSPRING,IGRPART,
3219 ! allocation for pre-read of Rbody needed for /SET
3221 ALLOCATE(RBY_MSN(2,NRBODY))
3222 CALL PREREAD_RBODY_SET(LSUBMODEL,ITABM1,RBY_MSN)
3224 ALLOCATE(RBY_MSN(0,0))
3227 ! PART UID to Internal ID conversion
3229 CALL CREATE_MAP_TABLES ( MAP_TABLES ,1 ,
3230 * LSUBMODEL ,SUBSETS,
3232 * IXS ,IXQ ,IXC ,IXTG ,
3233 * IXT ,IXP ,IXR ,KXSP,IBID,
3238 IF(NSURF+NSETS > 0)THEN
3239 ALLOCATE(RWORK(LISURF1*(NSURF+NSETS)) ,STAT=stat)
3241 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3247 WRITE(ISTDO,'(a)
')' .. surfaces
'
3248 ERR_CATEGORY='surfaces definition
'
3255 RNIGE=(1+NSURF*NUMELIG3D*16*6)
3256.OR.
IF(RNIGE > INTMAX RNIGE < ZERO) THEN
3261 ALLOCATE(NIGE_TMP(IDXIGE1)%ptr(SNIGE) ,STAT=stat)
3263 CALL ANCMSG(MSGID=727,
3268 RRIGE=(1+NSURF*NUMELIG3D*3*16*6)
3269.OR.
IF(RRIGE > INTMAX RRIGE < ZERO) THEN
3274 ALLOCATE(RIGE_TMP(IDXIGE1)%ptr2(SRIGE) ,STAT=stat)
3276 CALL ANCMSG(MSGID=727,
3281 RXIGE=(1+NSURF*NUMELIG3D*3*16*6)
3282.OR.
IF(RXIGE > INTMAX RXIGE < ZERO) THEN
3287 ALLOCATE(XIGE_TMP(IDXIGE1)%ptr2(SXIGE) ,STAT=stat)
3289 CALL ANCMSG(MSGID=727,
3294 RVIGE=(1+NSURF*NUMELIG3D*3*16*6)
3295.OR.
IF(RVIGE > INTMAX RVIGE < ZERO) THEN
3300 ALLOCATE(VIGE_TMP(IDXIGE1)%ptr2(SVIGE) ,STAT=stat)
3302 CALL ANCMSG(MSGID=727,
3312 IDXIGECNT = IDXIGECNT + 1
3313 IDXIGE1 = MOD(IDXIGECNT,2)
3314 IDXIGE2 = MOD(IDXIGECNT+1,2)
3322 2 IGRSURF ,IXS ,IXQ ,IXC ,IXT ,
3324 4 ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3325 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,X ,
3326 6 SBUFSF ,ISKWN ,SKEW ,
3327 7 RWORK ,KNOD2ELS ,NOD2ELS ,SH4TREE ,SH3TREE ,
3328 8 ISUBMOD ,FLAGG ,UNITAB ,IBOX ,
3329 9 IXS10 ,IXS16 ,IXS20 ,RTRANS,
3330 A LSUBMODEL ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG,
3331 B KXIG3D ,IXIG3D ,IPARTIG3D ,
3332 C KNOT ,IGEO ,WIGE ,KNOD2ELIG3D,NOD2ELIG3D,
3333 D V ,NIGE_TMP(IDXIGE1)%ptr,
3334 E RIGE_TMP(IDXIGE1)%ptr2,XIGE_TMP(IDXIGE1)%ptr2,
3335 F VIGE_TMP(IDXIGE1)%ptr2,IADTABIGE,DECALIGEO,IADBOXMAX,KNOD2ELQ,
3336 G NOD2ELQ ,SUBSETS ,IGRBRIC ,IGRSH4N ,IGRSH3N ,
3337 F KNOTLOCPC ,KNOTLOCEL ,NSETS ,MAP_TABLES)
3340 ALLOCATE(NIGE_TMP(IDXIGE2)%ptr(SNIGE+NUMFAKENODIGEO) ,STAT=stat)
3342 CALL ANCMSG(MSGID=727,
3347 SNIGE = SNIGE + NUMFAKENODIGEO
3348 DEALLOCATE(NIGE_TMP(IDXIGE1)%ptr)
3350 ALLOCATE(RIGE_TMP(IDXIGE2)%ptr2(SRIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3352 CALL ANCMSG(MSGID=727,
3357 SRIGE = SRIGE + 3*NUMFAKENODIGEO
3358 DEALLOCATE(RIGE_TMP(IDXIGE1)%ptr2)
3360 ALLOCATE(XIGE_TMP(IDXIGE2)%ptr2(SXIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3362 CALL ANCMSG(MSGID=727,
3367 SXIGE = SXIGE + 3*NUMFAKENODIGEO
3368 DEALLOCATE(XIGE_TMP(IDXIGE1)%ptr2)
3370 ALLOCATE(VIGE_TMP(IDXIGE2)%ptr2(SVIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3372 CALL ANCMSG(MSGID=727,
3377 SVIGE = SVIGE + 3*NUMFAKENODIGEO
3378 DEALLOCATE(VIGE_TMP(IDXIGE1)%ptr2)
3385 2 IGRSURF ,IXS ,IXQ ,IXC ,IXT ,
3387 4 ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3388 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,X ,
3389 6 SBUFSF ,ISKWN ,SKEW ,
3390 7 RWORK ,KNOD2ELS ,NOD2ELS ,SH4TREE ,SH3TREE ,
3391 8 ISUBMOD ,FLAGG ,UNITAB ,IBOX ,
3392 9 IXS10 ,IXS16 ,IXS20 ,RTRANS,
3393 A LSUBMODEL ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG ,
3394 B KXIG3D ,IXIG3D ,IPARTIG3D ,
3395 C KNOT ,IGEO ,WIGE ,KNOD2ELIG3D,NOD2ELIG3D,
3396 D V ,NIGE_TMP(IDXIGE2)%ptr,
3397 E RIGE_TMP(IDXIGE2)%ptr2,XIGE_TMP(IDXIGE2)%ptr2,
3398 F VIGE_TMP(IDXIGE2)%ptr2,IADTABIGE,DECALIGEO,IADBOXMAX,KNOD2ELQ,
3399 G NOD2ELQ ,SUBSETS ,IGRBRIC ,IGRSH4N ,IGRSH3N ,
3400 H KNOTLOCPC ,KNOTLOCEL ,NSETS ,MAP_TABLES)
3403 IF(NUMFAKENODIGEO>0) THEN
3404 ALLOCATE(PERMIGE(NUMFAKENODIGEO) ,STAT=stat)
3407 CALL PRESEARCHIGEO3D(IGRSURF,XIGE_TMP(IDXIGE2)%ptr2,PERMIGE)
3410 ALLOCATE(NIGE_TMP(IDXIGE1)%ptr(SNIGE) ,STAT=stat)
3412 CALL ANCMSG(MSGID=727,
3418 ALLOCATE(RIGE_TMP(IDXIGE1)%ptr2(SRIGE) ,STAT=stat)
3420 CALL ANCMSG(MSGID=727,
3426 ALLOCATE(XIGE_TMP(IDXIGE1)%ptr2(SXIGE) ,STAT=stat)
3428 CALL ANCMSG(MSGID=727,
3434 ALLOCATE(VIGE_TMP(IDXIGE1)%ptr2(SVIGE) ,STAT=stat)
3436 CALL ANCMSG(MSGID=727,
3449 CALL SEARCHIGEO3D(IGRSURF ,IADTABIGE ,PERMIGE ,
3450 . NIGE_TMP(IDXIGE2)%ptr ,NIGE_TMP(IDXIGE1)%ptr,
3451 . RIGE_TMP(IDXIGE2)%ptr2 ,RIGE_TMP(IDXIGE1)%ptr2,
3452 . XIGE_TMP(IDXIGE2)%ptr2 ,XIGE_TMP(IDXIGE1)%ptr2,
3453 . VIGE_TMP(IDXIGE2)%ptr2 ,VIGE_TMP(IDXIGE1)%ptr2,
3457 DEALLOCATE(RIGE_TMP(IDXIGE2)%ptr2,XIGE_TMP(IDXIGE2)%ptr2,VIGE_TMP(IDXIGE2)%ptr2)
3459 SNIGE = NUMFAKENODIGEO
3460 SRIGE = 3*NUMFAKENODIGEO
3461 SXIGE = 3*NUMFAKENODIGEO
3462 SVIGE = 3*NUMFAKENODIGEO
3469 ALLOCATE(NIGE_TMP(IDXIGE2)%ptr(SNIGE) ,STAT=stat)
3471 CALL ANCMSG(MSGID=727,
3477 NIGE_TMP(IDXIGE2)%ptr(I) = NIGE_TMP(IDXIGE1)%ptr(I)
3480 ALLOCATE(RIGE_TMP(IDXIGE2)%ptr2(SRIGE) ,STAT=stat)
3482 CALL ANCMSG(MSGID=727,
3488 RIGE_TMP(IDXIGE2)%ptr2(I) = RIGE_TMP(IDXIGE1)%ptr2(I)
3491 ALLOCATE(XIGE_TMP(IDXIGE2)%ptr2(SXIGE) ,STAT=stat)
3493 CALL ANCMSG(MSGID=727,
3499 XIGE_TMP(IDXIGE2)%ptr2(I) = XIGE_TMP(IDXIGE1)%ptr2(I)
3502 ALLOCATE(VIGE_TMP(1)%ptr2(SVIGE) ,STAT=stat)
3504 CALL ANCMSG(MSGID=727,
3510 VIGE_TMP(IDXIGE2)%ptr2(I) = VIGE_TMP(IDXIGE1)%ptr2(I)
3514 DEALLOCATE(RIGE_TMP(IDXIGE1)%ptr2,XIGE_TMP(IDXIGE1)%ptr2,
3515 . VIGE_TMP(IDXIGE1)%ptr2)
3525 DO WHILE (ICOUNT == 1)
3530 CALL HM_READ_SURFSURF(IGRSURF, INSEG, FLAGG, ICOUNT, ITER, NSETS, LSUBMODEL)
3535 CALL HM_READ_SURFSURF(IGRSURF, INSEG, FLAGG, ICOUNT, ITER, NSETS, LSUBMODEL)
3544 NSEGS=NSEGS+IGRSURF(I)%NSEG
3547 NSEGSMAX= MAX(NSEGSMAX,IGRNOD(I)%NENTITY)
3550 NSEGSMAX= MAX(NSEGSMAX,IGRBRIC(I)%NENTITY)
3553 NSEGSMAX= MAX(NSEGSMAX,IGRQUAD(I)%NENTITY)
3556 NSEGSMAX= MAX(NSEGSMAX,IGRSH4N(I)%NENTITY)
3559 NSEGSMAX= MAX(NSEGSMAX,IGRSH3N(I)%NENTITY)
3562 NSEGSMAX= MAX(NSEGSMAX,IGRTRUSS(I)%NENTITY)
3565 NSEGSMAX= MAX(NSEGSMAX,IGRBEAM(I)%NENTITY)
3568 NSEGSMAX= MAX(NSEGSMAX,IGRSPRING(I)%NENTITY)
3571 NSEGSMAX= MAX(NSEGSMAX,IGRPART(I)%NENTITY)
3573 NSEGS=NSEGS+NSEGSMAX
3578 WRITE(ISTDO,'(a)
')' .. lines
'
3579 ERR_CATEGORY='lines
'
3585 2 ISUBMOD ,IGRSLIN ,IGRSURF ,X ,IXS ,
3586 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3587 4 IXTG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3588 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
3589 6 NSEGS , FLAGG ,SKEW ,ISKWN ,
3590 7 UNITAB ,IBOX ,RTRANS ,LSUBMODEL,
3591 8 IPARTX ,KXX ,IXX ,IADBOXMAX,SUBSETS,
3592 9 IGRTRUSS,IGRBEAM,IGRSPRING,NSETS ,MAP_TABLES)
3598 2 ISUBMOD ,IGRSLIN ,IGRSURF ,X ,IXS ,
3599 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3600 4 IXTG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3601 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
3602 6 NSEGS , FLAGG ,SKEW ,ISKWN ,
3603 7 UNITAB ,IBOX ,RTRANS ,LSUBMODEL,
3604 8 IPARTX ,KXX ,IXX ,IADBOXMAX,SUBSETS,
3605 9 IGRTRUSS,IGRBEAM,IGRSPRING,NSETS ,MAP_TABLES)
3611 DO WHILE (ICOUNT == 1)
3616 CALL HM_LINES_OF_LINES(IGRSLIN ,INSEG ,FLAGG ,ICOUNT ,ITER ,NSETS, LSUBMODEL)
3619 CALL HM_LINES_OF_LINES(IGRSLIN ,INSEG ,FLAGG ,ICOUNT ,ITER ,NSETS, LSUBMODEL)
3626 IF(NINICRACK > 0) THEN
3627 WRITE(ISTDO,'(a)
')' .. initial crack
'
3628 ERR_CATEGORY='initial cracks
'
3629 SILEVSET = NINICRACK
3630 ALLOCATE(INICRACK(SILEVSET) ,STAT=stat)
3631 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3634 ! Reading /INICRACK cards
3635 CALL HM_READ_INICRACK(ITABM1 ,INICRACK ,UNITAB ,LSUBMODEL)
3639 ALLOCATE(INICRACK(SILEVSET))
3646 WRITE(ISTDO,'(a)
')' .. node group
'
3647 ERR_CATEGORY='node groups
'
3652 FLAGG = 0 !TAGNODES & ALLOCATE
3654 1 ITAB ,ITABM1 ,IGRNOD ,
3655 2 ISUBMOD ,X ,GEO ,IXS ,
3656 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3658 5 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
3659 6 IPARTR ,IPARTG ,IPARTSP ,KXSP ,
3660 7 FLAGG ,MAXNNOD ,SKEW ,ISKWN ,
3661 8 UNITAB ,IBOX ,IXS10 ,IXS20 ,
3662 9 IXS16 ,RTRANS ,LSUBMODEL,IXX,
3663 A KXX ,IPARTX ,IADBOXMAX,IGRSLIN,SUBSETS ,
3664 B IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
3665 C IGRBEAM ,IGRSPRING,IGRSURF,NSETS )
3667 FLAGG = 1 !BUILD GROUPS
3669 1 ITAB ,ITABM1 ,IGRNOD ,
3670 2 ISUBMOD ,X ,GEO ,IXS ,
3671 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3673 5 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
3674 6 IPARTR ,IPARTG ,IPARTSP ,KXSP ,
3675 7 FLAGG ,MAXNNOD ,SKEW ,ISKWN ,
3676 8 UNITAB ,IBOX ,IXS10 ,IXS20 ,
3677 9 IXS16 ,RTRANS ,LSUBMODEL,IXX,
3678 A KXX ,IPARTX ,IADBOXMAX,IGRSLIN,SUBSETS ,
3679 B IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
3680 C IGRBEAM ,IGRSPRING,IGRSURF,NSETS )
3686 DO WHILE (ICOUNT == 1)
3689 CALL HM_GROGRONOD(IGRNOD ,ICOUNT ,FLAGG ,ITER,'node
',LSUBMODEL)
3692 CALL HM_GROGRONOD(IGRNOD ,ICOUNT ,FLAGG ,ITER,'node
',LSUBMODEL)
3704 ALLOCATE(SET (NSETS))
3706 WRITE(ISTDO,'(a)
')' ..
set'
3709 CALL HM_SET(SET ,LSUBMODEL ,INV_GROUP ,MAP_TABLES ,IPART ,
3710 * IGRSURF ,IGRNOD ,IGRSLIN ,IGRPART ,IGRBRIC ,
3711 * IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,IGRBEAM ,
3712 * IGRSPRING,IXS ,IXS10 ,IXC ,IXTG ,
3713 * KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,
3714 * NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,SH4TREE ,
3715 * SH3TREE ,IXQ ,KNOD2ELQ ,NOD2ELQ ,X ,
3716 * IXT ,IXP ,IXR ,IXX ,KXX ,
3717 * KXSP ,IXS20 ,IXS16 ,GEO ,ITABM1 ,
3718 * IBOX ,SKEW ,IPARTQ ,IPARTT ,IPARTP ,
3719 * IPARTR ,SUBSETS ,RBY_MSN ,ISKWN ,RTRANS ,
3720 * UNITAB ,RWORK ,SBUFSF ,SISKWN ,SSKEW ,
3721 * ROOTNAM ,ROOTLEN ,INFILE_NAME ,INFILE_NAME_LEN )
3727 IF (NSURF+NSETS > 0) THEN
3729 ALLOCATE(BUFSF(SBUFSF) ,STAT=stat)
3730 BUFSF = RWORK(1:SBUFSF)
3732 CALL ANCMSG(MSGID=727,
3741 IF(ALLOCATED(RWORK)) DEALLOCATE(RWORK)
3748 ERR_CATEGORY='drape
'
3749 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3753 WRITE(ISTDO,'(a)
')' .. drape
'
3754 ALLOCATE(DRAPE_WRK(NUMELC + NUMELTG),DRAPEG%INDX(NUMELC + NUMELTG))
3756 ALLOCATE(INDXSH(NUMELC + NUMELTG))
3765.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3766 ALLOCATE(IWORK_T(NUMELC+NUMELTG))
3767 CALL PRE_STACKGROUP(
3768 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3769 . IGEO ,GEO ,IGEO_STACK ,IWORKSH ,
3773 CALL HM_READ_DRAPE(DRAPE_WRK ,IWORK_T ,IWORKSH ,IGRSH3N ,IGRSH4N ,
3774 . IXC ,IXTG ,IGEO ,IGEO_STACK,LSUBMODEL,
3776 IF( NUMELC_DRAPE > 0) SCDRAPE = NUMELC
3777 IF( NUMELTG_DRAPE > 0) STDRAPE = NUMELTG
3778 ALLOCATE(DRAPE(NUMELC_DRAPE +NUMELTG_DRAPE) )
3779 IF( (NUMELC_DRAPE + NUMELTG_DRAPE )> 0) THEN
3780 DRAPEG%NUMSH4 = NUMELC_DRAPE
3781 DRAPEG%NUMSH3 = NUMELTG_DRAPE
3782 DO I=1,NUMELC_DRAPE + NUMELTG_DRAPE
3784 NPT_DRAPE = DRAPE_WRK(IDSHEL)%NPLY_DRAPE
3785 DRAPE(I)%NPLY_DRAPE = NPT_DRAPE
3786 NPT = IWORKSH(1,IDSHEL)
3788 DRAPEG%INDX(IDSHEL) = I
3789 ALLOCATE(DRAPE(I)%DRAPE_PLY(NPT_DRAPE))
3790 ALLOCATE(DRAPE(I)%INDX_PLY(NPT))
3791 DRAPE(I)%INDX_PLY = 0
3793 IP = DRAPE_WRK(IDSHEL)%INDX_PLY(JJ)
3794 DRAPE(I)%INDX_PLY(IP) = JJ
3795 NSLICE = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%NSLICE
3796 DRAPE(I)%DRAPE_PLY(JJ)%NSLICE = NSLICE
3797 DRAPE(I)%DRAPE_PLY(JJ)%IPID = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IPID
3798 ALLOCATE(DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(NSLICE,2))
3799 ALLOCATE(DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(NSLICE,2))
3801 DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(ISL,1) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE(ISL,1)
3802 DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(ISL,2) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE(ISL,2)
3803 DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(ISL,1) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE(ISL,1)
3804 DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(ISL,2) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE(ISL,2)
3805 ENDDO ! nbre of slice
3808 !! Deallocation of work drape memory
3809 DO I=1,NUMELC_DRAPE + NUMELTG_DRAPE
3811 NPT = IWORKSH(1,IDSHEL)
3812 IF(ALLOCATED(DRAPE_WRK(IDSHEL)%DRAPE_PLY)) THEN
3813 NPT_DRAPE = DRAPE_WRK(IDSHEL)%NPLY_DRAPE
3815 IP = DRAPE_WRK(IDSHEL)%INDX_PLY(JJ)
3816 DEALLOCATE(DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE,DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE)
3818 DEALLOCATE(DRAPE_WRK(IDSHEL)%DRAPE_PLY)
3821 DEALLOCATE(DRAPE_WRK)
3824 IF(ALLOCATED(IDRAPEID)) DEALLOCATE(IDRAPEID)
3826.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3827 CALL STACKGROUP_DRAPE(DRAPE, DRAPEG , IWORK_T , IWORKSH ,
3828 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3829 . IGEO ,GEO ,THKE , STACK ,
3830 . IGEO_STACK ,GEO_STACK , STACK_INFO ,
3831 . NUMGEOSTACK,NPROP_STACK,PLY_INFO)
3833 ALLOCATE(STACK%GEO(0,0))
3834 ALLOCATE(STACK%IGEO(0,0))
3835 ALLOCATE(STACK%PM(0,0))
3837 ELSE ! with out drape
3839 ALLOCATE(DRAPEG%INDX(0))
3840.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3842 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3843 . IGEO ,GEO ,IWORKSH ,THKE ,
3844 . STACK ,IPM ,IGEO_STACK ,GEO_STACK ,
3845 . STACK_INFO ,NUMGEOSTACK,NPROP_STACK)
3847 ALLOCATE(STACK%GEO(0,0))
3848 ALLOCATE(STACK%IGEO(0,0))
3849 ALLOCATE(STACK%PM(0,0))
3853 IF(NSUBDOM==0) GOTO 218
3857 WRITE(ISTDO,'(a)
')' .. multidomains interfaces detection
'
3858 IDXCNT= 1 ! used by temporary local array "IBUFTMP"
3861 IDX1 = MOD(IDXCNT,2)
3862 IDX2 = MOD(IDXCNT+1,2)
3869 RSIBUFSSG=NUMNOD+NSUBDOM
3870.OR.
IF(RSIBUFSSG > INTMAX RSIBUFSSG < ZERO) THEN
3873 SIBUFSSG = INT(RSIBUFSSG)
3875 ALLOCATE(IBUFTMP(IDX1)%ptr(SIBUFSSG),STAT=stat)
3877 CALL ANCMSG(MSGID=727,
3884 ALLOCATE(TAGNO(2*NUMNOD+NPART),STAT=stat)
3885 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3889 ALLOCATE(NALE_R2R(ALE%GLOBAL%SNALE),STAT=stat)
3890 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3894 ALLOCATE(DT_R2R(4*NSUBDOM),STAT=stat)
3895 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3900 CALL R2R_GROUP(NGRNOD,
3901 1 INNOD,FLAGG,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,
3902 2 IPARTR,IPARTG,IPARTSP,IXS10,IXS20,IXS16,1,
3903 3 IBUFTMP(IDX1)%ptr,IXR_KJ,INOM_OPT,IPART,
3904 4 IADBUF,NALE_R2R,FLG_R2R_ERR ,
3905 5 STACK%PM ,IWORKSH ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
3906 6 IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRNOD ,
3907 7 IGRSURF ,IGRSLIN, LSUBMODEL,ALE_EULER ,IGEO ,
3908 8 NLOC_DMG ,DETONATORS,SENSORS%NSENSOR,SEATBELT_SHELL_TO_SPRING,
3909 9 NB_SEATBELT_SHELLS,MAT_ELEM%MAT_PARAM)
3911 ALLOCATE(IBUFTMP(IDX2)%ptr(SIBUFSSG+INNOD) ,STAT=stat)
3913 CALL ANCMSG(MSGID=727,
3918 IBUFTMP(IDX2)%ptr = 0
3920 IBUFTMP(IDX2)%ptr(I) = IBUFTMP(IDX1)%ptr(I)
3922 SIBUFSSG = SIBUFSSG+INNOD
3923 DEALLOCATE(IBUFTMP(IDX1)%ptr)
3928 CALL R2R_GROUP(NGRNOD,
3929 1 INNOD,FLAGG,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,
3930 2 IPARTR,IPARTG,IPARTSP,IXS10,IXS20,IXS16,2,
3931 3 IBUFTMP(IDX2)%ptr,IXR_KJ,INOM_OPT,IPART,
3932 4 IADBUF,NALE_R2R,FLG_R2R_ERR ,
3933 5 STACK%PM ,IWORKSH ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
3934 6 IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRNOD ,
3935 7 IGRSURF ,IGRSLIN, LSUBMODEL,ALE_EULER ,IGEO ,
3936 8 NLOC_DMG ,DETONATORS,SENSORS%NSENSOR,SEATBELT_SHELL_TO_SPRING,
3937 9 NB_SEATBELT_SHELLS,MAT_ELEM%MAT_PARAM)
3941 WRITE(ISTDO,'(a)
')' .. multidomains
DATA split '
3945 2 NSURF,0,EANI,IBUFTMP(IDX2)%ptr,IXR_KJ,
3946 3 INOM_OPT,RESERVEP,NALE_R2R,NSPCOND0,
3947 4 SUBSETS,IGRSURF,IGRNOD,IGRBRIC,IGRQUAD,
3948 5 IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING,
3949 6 IGRPART,IGRSLIN,LSUBMODEL,RBY_MSN,IWORKSH,
3950 7 SEATBELT_SHELL_TO_SPRING,NB_SEATBELT_SHELLS)
3954 2 NSURF,1,EANI,IBUFTMP(IDX2)%ptr,IXR_KJ,
3955 3 INOM_OPT,RESERVEP,NALE_R2R,NSPCOND0,
3956 4 SUBSETS,IGRSURF,IGRNOD,IGRBRIC,IGRQUAD,
3957 5 IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING,
3958 6 IGRPART,IGRSLIN,LSUBMODEL,RBY_MSN,IWORKSH,
3959 7 SEATBELT_SHELL_TO_SPRING,NB_SEATBELT_SHELLS)
3960 DEALLOCATE(IBUFTMP(IDX2)%ptr)
3965 WRITE(ISTDO,'(a)
')' .. multidomains
DATA update
'
3966 DEALLOCATE(KNOD2ELS,KNOD2ELC,KNOD2ELTG,KNOD2EL1D,KNOD2ELIG3D,KNOD2ELQ)
3967 DEALLOCATE(NOD2ELS,NOD2ELC,NOD2ELTG,NOD2EL1D,NOD2ELIG3D,NOD2ELQ)
3969 ALLOCATE(XYZREF(3*NUMNOD) ,STAT=stat)
3970 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3977 IENTRY2(1:NUMNOD) = -1
3978 FLAGKIN(1:NUMNOD) = 0
3982 IF(FRONT_R2R(I)==1)THEN
3983 CALL IFRONTPLUS(I,1)
3984 !FLAGKIN array to identify boundary nodes with
3985 !kinematic constraints (old FRONT TAG=10)
3986 IF(FLAGKIN_R2R(I)==1)FLAGKIN(I)=1
3990 DEALLOCATE(FRONT_R2R,FLAGKIN_R2R)
3991 SFRONTB_R2R = NUMNOD
3992 SNOM_OPT_OLD = SNOM_OPT
4003 CALL R2R_NOM_OPT(NOM_OPT,INOM_OPT,IN10,IN20,SNOM_OPT_OLD)
4020 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
4021 3 IXR ,IXTG ,IXS10 ,IXS20 ,
4022 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
4023 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
4024 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
4025 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
4027 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
4030 CALL SAV_BUF_POINT(PM ,1)
4031 CALL SAV_BUF_POINT(BUFMAT ,2)
4032 CALL SAV_BUF_POINT(GEO ,3)
4033 CALL SAV_BUF_POINT(ISKWN ,7)
4034 CALL SAV_BUF_POINT(SKEW ,8)
4035 CALL SAV_BUF_POINT(IPM ,11)
4036 CALL SAV_BUF_POINT(IGEO,12)
4041.NOT.
IF( ALLOCATED(TAGNO)) ALLOCATE(TAGNO(0))
4042.NOT.
IF( ALLOCATED(NALE_R2R)) ALLOCATE(NALE_R2R(0))
4043.NOT.
IF( ALLOCATED(DT_R2R)) ALLOCATE(DT_R2R(0))
4050 CALL R2R_CHECK(IEXLNK,IGRNOD,IPART)
4053 ALLOCATE(FRONTB_R2R(SFRONTB_R2R,NSPMD),STAT=stat)
4054 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4062 CALL SORT_SURF(IGRSURF,IXS,IXC,IXTG,IXQ,IXP,IXR,IXT, KXX,NIXX)
4065 1 ITAB ,ITABM1 ,IGRNOD ,NINICRACK,BUFSF ,
4066 2 IGRSURF ,IGRSLIN ,INICRACK ,IXS ,IXQ ,
4067 3 IXC ,IXT ,IXP ,IXR ,IXTG ,
4068 4 IXS10 ,IXS20 ,IXS16 ,IPART ,
4069 5 KXX ,IXIG3D ,KXIG3D ,
4070 6 IGRQUAD ,IGRBRIC ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
4071 7 IGRBEAM ,IGRSPRING,IGRPART )
4073 DEALLOCATE(KXX,IXX,LELX)
4077 ERR_MSG='transformations
'
4078 ERR_CATEGORY='transformations
'
4079 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4080 CALL LECTRANS(X ,IGRNOD ,ITAB ,ITABM1 ,UNITAB,
4087 ERR_MSG='/
merge/node
'
4088 ERR_CATEGORY='/
merge/node
'
4090 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4092 ALLOCATE(MERGE_NODE_TAB(4*NB_MERGE_NODE),STAT=stat)
4093 ALLOCATE(MERGE_NODE_TOL(NB_MERGE_NODE),STAT=stat)
4095 MERGE_NODE_TOL = ZERO
4096 NMERGE_NODE_CAND = 0
4097 NMERGE_NODE_DEST = 0
4099 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4102 IF(NB_MERGE_NODE > 0) THEN
4103 CALL HM_READ_MERGE_NODE(X,LSUBMODEL,UNITAB,IGRNOD,MERGE_NODE_TAB,
4104 . MERGE_NODE_TOL,NMERGE_NODE_CAND,NMERGE_NODE_DEST)
4111 ERR_MSG='merging nodes
'
4112 ERR_CATEGORY='merging nodes
'
4113 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4115 NMERGE_TOT = NUMCNOD + NMERGE_NODE_DEST
4116 ALLOCATE(IMERGE(3*NMERGE_TOT),STAT=stat)
4117 ALLOCATE(IMERGE2(NUMNOD+1),STAT=stat)
4118 ALLOCATE(IADMERGE2(NUMNOD+1),STAT=stat)
4120 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4131 . CALL MERGE(X ,ITAB ,ITABM1 ,CMERGE ,IMERGE,
4132 . IMERGE2,IADMERGE2,NMERGE_TOT)
4136 IF(NB_MERGE_NODE > 0)
4137 . CALL MERGE_NODE(X ,ITAB ,ITABM1 ,IMERGE,IMERGE2,
4138 . IADMERGE2,NMERGE_TOT,MERGE_NODE_TAB,MERGE_NODE_TOL,
4139 . NMERGE_NODE_CAND,NMERGE_NODE_DEST,IXS,IXS10,IXS20,
4140 . IXS16,IXQ,IXC,IXT,IXP,
4141 . IXR,IXTG,EANI,IGRNOD)
4147 ERR_MSG='reinit connectivity
'
4148 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4149 IF(NMERGED > 0) THEN
4151 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
4152 . IXC ,IXT ,IXP ,IXR ,IXTG ,
4153 . IGRNOD ,IGRSURF ,IGRSLIN ,
4154 . ISKWN ,IMERGE ,NMERGE_TOT)
4169 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
4170 3 IXR ,IXTG ,IXS10 ,IXS20 ,
4171 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
4172 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
4173 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
4174 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
4181 ERR_MSG='random
noise'
4182 ERR_CATEGORY='random
noise'
4183 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4187 IF(RAND_STRUCT%CMD) NRAND = NRAND + 1
4188 ALLOCATE(IRAND(NRAND),STAT=stat)
4189 ALLOCATE(ALEA(NRAND) ,STAT=stat)
4190 ALLOCATE(XSEED(NRAND),STAT=stat)
4192 CALL HM_READ_RAND(X ,IGRNOD ,ITAB,IRAND,ALEA,XSEED,
4200 ERR_CATEGORY='seatbelts
'
4201 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4204 CALL HM_OPTION_COUNT('/mat
',NB_MAT)
4205 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4206 CALL HM_OPTION_COUNT('/mat/spr_seatbelt
',NB_MAT)
4207 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4208 CALL HM_OPTION_COUNT('/mat/law119
',NB_MAT)
4209 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4210 CALL HM_OPTION_COUNT('/mat/sh_seatbelt
',NB_MAT)
4211 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4214 IF(NSLIPRING > 0) CALL HM_READ_SLIPRING(
4215 1 LSUBMODEL,ITABM1,IXR,ITAB,UNITAB,
4216 2 X,NPC1,NOM_OPT(LNOPT1*INOM_OPT(31)+1),ALEA,IGRNOD,
4218 IF(NRETRACTOR > 0) CALL HM_READ_RETRACTOR(
4219 1 LSUBMODEL,ITABM1,IXR,ITAB,UNITAB,
4220 2 X,NPC1,NOM_OPT(LNOPT1*INOM_OPT(32)+1),ALEA,IPM)
4227 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4229 CALL HM_PREREAD_BCSCYC(IGRNOD ,NOM_OPT(LNOPT1*INOM_OPT(16)+1),LSUBMODEL,SLBCSCYC)
4231 SIBCSCYC = 4*NBCSCYC
4232 ALLOCATE(IBCSCYC(SIBCSCYC),LBCSCYC(SLBCSCYC),STAT=stat)
4234.OR..OR.
IF(NUMBCS /= 0 NALEBCS /= 0 NUMBCSN /= 0) THEN
4235 WRITE(ISTDO,'(a)
')TITRE(13)
4237 CALL HM_READ_BCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4238 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4239 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),
4240 . UNITAB ,LSUBMODEL,IBCSCYC,LBCSCYC)
4242 CALL HM_READ_ALEBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4243 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4244 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),
4247 CALL HM_READ_NBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4248 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4249 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),LSUBMODEL)
4251 CALL PRINTBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4252 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4253 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1), NBCSLAG)
4258 ALLOCATE(ICODEP(0),ISKEWP(0))
4261 ERR_MSG='adaptive meshing bcs
'
4262 ERR_CATEGORY='adaptive meshing bcs
'
4263 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4265 CALL ADMBCS(IXC ,IPARTC,IXTG,IPARTG,IPART ,
4266 . ICODE,ISKEW,ITAB,SH4TREE,SH3TREE)
4272 ERR_MSG='solids sort
'
4273 ERR_CATEGORY='internal
'
4274 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4275 SIWORK = 2*MAX(NUMELS,NUMELQ)
4276 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
4277 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4282 . IXS ,BID13 ,PM ,IWORK ,ITAB ,ITABM1 ,
4283 . ICODE ,IPARTS ,IGRBRIC ,GEO ,EANI ,
4284 . IXS10 ,IPART ,IXS20 ,IXS16 ,KNOD2ELS,NOD2ELS ,
4285 . IGRSURF,SPH2SOL ,SOL2SPH )
4288 . IXQ ,BID13 ,PM ,IWORK ,ITAB ,ITABM1 ,
4289 . ICODE ,IPARTQ ,IGRQUAD ,IPM ,IGEO )
4290 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
4296 ERR_CATEGORY='mpcs 1'
4297 CALL trace_in1(err_msg,len_trim(err_msg))
4304 ALLOCATE(rbmpc(srbmpc) ,stat=stat)
4305 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4308 IF(srbmpc > 0) rbmpc = zero
4313 err_msg=
'DYNAMIC STORAGE REAL'
4314 err_category=
'INTERNAL'
4315 CALL trace_in1(err_msg,len_trim(err_msg))
4316 sgjbufr = lkjnr*ngjoint
4320 sveul = (lveul*numels+10*numelq)*ieuler
4321 sveul8 = (int(lveul,kind(sveul8))*numelsk8+10*numelqk8)*int(ieuler,kind(sveul8))
4322 sfill = nmult*numnod
4323 sdfill = nmult*numnod
4324 salph = 2*nmult*(numelq+numels)
4326 IF(
ale%GRID%NWALE == 2)
THEN
4328 ELSEIF(
ale%GRID%NWALE == 4)
THEN
4331 ALLOCATE(wb(swb) ,stat=stat)
4332 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4335 IF(swb > 0) wb = zero
4336 IF(
ale%GRID%NWALE == 4)
THEN
4337 wma => wb(3*numnod+1:swb)
4344 IF(ilag == 1 .AND. (iale+ieuler) > 0)
THEN
4348 ALLOCATE(gjbufr(sgjbufr) ,stat=stat)
4349 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4352 ALLOCATE(w(sw) ,stat=stat)
4353 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4356 ALLOCATE(veul(sveul8) ,stat=stat)
4357 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4360 ALLOCATE(fill(sfill) ,stat=stat)
4361 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4364 ALLOCATE(dfill(sdfill) ,stat=stat)
4365 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4368 ALLOCATE(alph(salph) ,stat=stat)
4369 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4372 ALLOCATE(dsave(sdsave) ,stat=stat)
4373 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4376 ALLOCATE(asave(sasave) ,stat=stat)
4377 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
4380 IF(sgjbufr > 0) gjbufr = zero
4382 IF(sveul8 > 0) veul = zero
4383 IF(sfill > 0) fill = zero
4384 IF(sdfill > 0) dfill = zero
4385 IF(salph > 0) alph = zero
4386 IF(sdsave > 0) dsave = zero
4387 IF(sasave > 0) asave = zero
4393 err_category=
'GJOINTS'
4394 CALL trace_in1(err_msg,len_trim(err_msg))
4399 2 ms ,in ,lag_ncf ,lag_nkf ,lag_nhf ,
4400 3 d ,
unitab ,ikine1lag,
nom_opt(lnopt1*inom_opt(18)+1),lsubmodel)
4405 err_msg=
'DETONATORS'
4406 err_category=
'DETONATORS'
4407 CALL trace_in1(err_msg,len_trim(err_msg))
4411 . lsubmodel,detonators)
4418 CALL ale_connectivity%ALE_CONNECTIVITY_INIT()
4421 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4423 WRITE(ISTDO,'(a)
')TITRE(29)
4426 ALLOCATE(LINALE(SLINALE),STAT=stat)
4428 WRITE(IOUT,*) ' ** error in memory allocation
'
4429 WRITE(ISTDO,*)' ** error in memory allocation
'
4431 CALL HM_READ_ALE_LINK(ICODE, ISKEW, ITAB, ITABM1, D,
4432 . IGRNOD, IBCSLAG, LAG_NCF, LAG_NKF, LAG_NHF,
4433 . IKINE1LAG, LINALE, LSUBMODEL, UNITAB)
4437 ERR_MSG='ale neighbours
'
4438 IF(IALE+IEULER+IALELAG /= 0)THEN
4439 WRITE(ISTDO,'(a)
')TITRE(30)
4441 1 ICODE ,IXS ,IXQ ,IXC ,IXT ,
4442 2 IXTG ,PM ,IGEO ,ITAB ,GEO ,
4443 3 NALE_R2R ,NSUBDOM ,MULTI_FVM ,ALE_CONNECTIVITY,GLOB_THERM%ITHERM,DETONATORS%IS_SHADOWING_REQUIRED)
4447 IF(MULTI_FVM%IS_USED) THEN
4448 CALL MULTI_UNPLUG_NEIGHBORS(ALE_CONNECTIVITY, IXS, IXQ, IXTG)
4455 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4457 WRITE(ISTDO,'(
'' .. multimaterials
'')
')
4459 . CALL INIMU3(PM ,IXS ,FILL ,DFILL )
4461 . CALL INIMU2(PM ,IXQ ,FILL ,DFILL )
4462 CALL INIMUL (PM ,FILL ,DFILL ,MAT20_DISCRETE_FILL)
4470 ERR_CATEGORY='cfd boundary elements
'
4471 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4473 + CALL PAROI(PM ,IXS ,IXQ ,ICODE ,ALE_CONNECTIVITY%NALE )
4480 ERR_MSG='multi-purpose elements
'
4481 ERR_CATEGORY='multi-purpose elements
'
4482 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4485 CALL HM_PREREAD_XELEM(SIXX, IGRNOD,LSUBMODEL)
4486 ALLOCATE(KXX(SKXX) ,STAT=stat)
4487 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4490 ALLOCATE(IXX(SIXX+150) ,STAT=stat)
4491 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4496 ALLOCATE(LELX(NUMELX) ,STAT=stat)
4498 CALL HM_READ_XELEM(IGRNOD ,ITAB ,ITABM1 ,IPART ,IPARTX,
4499 . IPM ,IGEO ,KXX ,IXX ,LSUBMODEL)
4503 ALLOCATE(KXX(SKXX) ,STAT=stat)
4504 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4507 ALLOCATE(IXX(SIXX) ,STAT=stat)
4508 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4511 ALLOCATE(LELX(NUMELX) ,STAT=stat)
4518 ERR_CATEGORY='sph sym
'
4519 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4520 SISPSYM = NSPCOND*NUMSPH
4521 SISPCOND = NSPCOND*NISPCOND
4522 ALLOCATE(ISPSYM(SISPSYM) ,STAT=stat)
4523 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4526 ALLOCATE(ISPCOND(SISPCOND) ,STAT=stat)
4527 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4530 IF(NSPCOND > 0) THEN
4533 WRITE(ISTDO,'(a)
')' .. sph symmetry conditions
'
4534 CALL HM_READ_SPCND(ISPCOND ,ISKEW ,ITAB ,ITABM1 ,D ,
4535 . IGRNOD ,NOD2SP ,IFRAME ,NOM_OPT(LNOPT1*INOM_OPT(23)+1),
4543 ERR_CATEGORY='sph i/o
'
4544 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4546 SISPHIO = NISPHIO*NSPHIO
4547 SSPHVELN= NSPHIO*NUMSPH*2
4548 ALLOCATE(ISPHIO(SISPHIO) ,STAT=stat)
4549 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4552 ALLOCATE(SPHVELN(SSPHVELN) ,STAT=stat)
4553 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4558 WRITE(ISTDO,'(a)
')' .. sph inlet/outlet definition
'
4561 CALL HM_PREREAD_SPHIO(IGRSURF ,SVSPHIO ,
4562 . NOM_OPT(LNOPT1*INOM_OPT(22)+1),
4564 ALLOCATE(VSPHIO(SVSPHIO) ,STAT=stat)
4565 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4568 VSPHIO(1:SVSPHIO)=ZERO
4573 CALL HM_READ_SPHIO(ISPHIO ,VSPHIO ,IPART ,IGRSURF ,
4574 . NOD2SP ,IPARTSP ,ITAB ,X ,
4575 . LVSPHIO ,LWASPIO ,ITABM1 ,UNITAB ,
4576 . LSUBMODEL,RTRANS ,NRTRANS )
4580 SLPRTSPH = 2*(NPART+1)
4582 ALLOCATE(LPRTSPH(SLPRTSPH) ,STAT=stat)
4583 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4586 ALLOCATE(LONFSPH(SLONFSPH) ,STAT=stat)
4587 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4592 CALL SPHONF0(KXSP ,IXSP ,NOD2SP ,IPART ,IPARTSP ,
4593 . LPRTSPH ,LONFSPH )
4604 ALLOCATE(LPRTSPH(SLPRTSPH) ,STAT=stat)
4605 ALLOCATE(LONFSPH(SLONFSPH) ,STAT=stat)
4606 ALLOCATE(VSPHIO(SVSPHIO) ,STAT=stat)
4613 CALL SPINIH(KXSP ,IPART ,IPARTSP ,SPBUF ,PM,
4614 . IXSP ,NOD2SP ,X ,LPRTSPH,LONFSPH,
4615 . SNOD2SP ,SLONFSPH,NUMNOD,NPART,ITAB)
4620 SZ_INTP_DIST = 1 ! Array MAX_INTP_DIST_PART not used for full search siz=1
4621 CALL SPTRI(KXSP ,IXSP ,NOD2SP ,X ,SPBUF ,
4622 . LPRTSPH ,LONFSPH ,IPARTSP ,SZ_INTP_DIST,MAX_INTP_DIST_PART,
4629 ERR_MSG='fluid nodal masses
'
4630 ERR_CATEGORY='fluid nodal masses
'
4631 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4632 SMSNF = NUMNOD*MAX(IALE,IEULER,IALELAG)
4633 ALLOCATE(MSNF(SMSNF) ,STAT=stat)
4634 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4642 ERR_MSG='concentred loads
'
4643 ERR_CATEGORY='concentred loads
'
4644 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4647 LOADS%NLOAD_CLOAD = 0
4648 LOADS%NLOAD_PLOAD = 0
4649 IF(NSUBDOM>0) ALLOCATE(NNCL(NCONLD+NPRELD))
4650 CALL HM_PREREAD_CLOAD(NUMCLD, IGRNOD ,IGRSURF,LSUBMODEL)
4651 CALL HM_PREREAD_PLOAD(NUMPRES,IGRNOD ,IGRSURF,LSUBMODEL)
4652 SIBCL = (NUMCLD + NUMPRES)*NIBCLD
4653 SFORC = (NUMCLD + NUMPRES)*LFACCLD
4654 ALLOCATE(IBCL(SIBCL) ,STAT=stat)
4655 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4658 ALLOCATE(FORC(SFORC) ,STAT=stat)
4659 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4662 ALLOCATE(DPL0CLD(6*(NUMCLD+NUMPRES)) ,STAT=stat)
4663 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4666 ALLOCATE(VEL0CLD(6*(NUMCLD+NUMPRES)) ,STAT=stat)
4667 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4671 IPRES => IBCL(NUMCLD*NIBCLD+1:SIBCL)
4683 WRITE(ISTDO,'(a)
')TITRE(33)
4685 CALL HM_READ_CLOAD(IBCL ,FORC ,NCONLD,ITAB ,ITABM1 ,
4686 . IGRNOD ,IBCL ,UNITAB,ISKWN ,LSUBMODEL,
4688 IF(NCONLD*LFACCLD<SFORC) THEN
4689 PRES => FORC(NCONLD*LFACCLD+1:SFORC)
4694 IF(NCONLD*LFACCLD<SFORC) THEN
4695 PRES => FORC(NCONLD*LFACCLD+1:SFORC)
4703 ERR_MSG='pressure loads
'
4704 ERR_CATEGORY='pressure loads
'
4705 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4707 WRITE(ISTDO,'(a)
')TITRE(34)
4708 CALL HM_READ_PLOAD(IPRES ,PRES ,NPRELD ,ITAB ,ITABM1,
4709 . IGRSURF ,UNITAB ,LSUBMODEL ,LOADS )
4710 NCONLD=NCONLD+NPRELD
4714 IF(NSUBDOM>0) DEALLOCATE(NNCL)
4718 CALL HM_READ_PCYL(LOADS ,IGRSURF ,SENSORS%NSENSOR,SENSORS%SENSOR_TAB ,TABLE ,
4719 . IFRAME ,UNITAB ,LSUBMODEL,NUMBER_LOAD_CYL )
4723 ERR_MSG = 'load fields
'
4724 ERR_CATEGORY = 'load fields
'
4725 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4728 CALL HM_PREREAD_LOAD_CENTRI(NUMCFIELD,IGRNOD,IGRSURF,LSUBMODEL)
4729 SCFIELD = LFACLOAD*NLOADC
4730 SICFIELD = SIZFIELD*NLOADC
4731 SLCFIELD = NUMCFIELD
4736 CALL HM_PREREAD_PFLUID(NUMLOADP,IGRNOD,IGRSURF,LSUBMODEL)
4737 CALL HM_PREREAD_PBLAST(PBLAST,NUMLOADP,IGRSURF,LSUBMODEL,NSURF)
4738 CALL HM_PREREAD_LOAD_PRESSURE(NUMLOADP,IGRSURF,LSUBMODEL)
4739 NLOADP = NLOADP_F+PBLAST%NLOADP_B+NLOADP_HYD
4740 SLOADP = LFACLOAD*NLOADP
4741 SILOADP = SIZLOADP*NLOADP
4748 ERR_MSG='imposed velocities
'
4749 ERR_CATEGORY='imposed velocities
'
4750 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4752 NFVLAG = 0 ! Lagrangian multiplier flag
4762 CALL HM_PREREAD_IMPDISP(NIMPDISP ,IGRNOD ,IPART ,IPARTR ,
4763 . UNITAB ,LSUBMODEL)
4765 CALL HM_PREREAD_IMPVEL(NIMPVEL ,IGRNOD ,IPART ,IPARTR , NFVLAG,
4766 . UNITAB ,LSUBMODEL)
4768 CALL HM_PREREAD_IMPACC(NIMPACC ,IGRNOD ,LSUBMODEL)
4770 NFXVEL = NIMPDISP + NIMPVEL + NIMPACC
4779 SIBFV = NFXVEL * NIFV
4780 SVEL = NFXVEL * LFXVELR
4782 ALLOCATE(IBFV(SIBFV) ,STAT=stat)
4783 ALLOCATE(VEL(SVEL ) ,STAT=stat)
4790 WRITE(ISTDO,'(a)
')TITRE(44)
4792 CALL HM_READ_IMPVEL(
4793 . VEL ,IBFV ,D ,IKINE1LAG,
4794 . ITAB ,ITABM1 ,IGRNOD ,X ,IXR ,
4795 . IPART ,IPARTR ,ISKWN ,NOM_OPT(LNOPT1*INOM_OPT(15)+1),
4796 . NIMPDISP ,NIMPVEL ,UNITAB ,LSUBMODEL)
4802 IF(NIMPACC > 0) THEN
4803 CALL HM_READ_IMPACC(
4804 . VEL ,IBFV ,NFXVEL0 ,ITAB ,ITABM1 ,
4805 . D ,IGRNOD ,ISKWN ,UNITAB ,LSUBMODEL,
4810 IF(NBCSCYC > 0) THEN
4811 ALLOCATE(ITAGCYC(NUMNOD) ,STAT=stat)
4812 CALL INI_BCSCYC(IBCSCYC,LBCSCYC,SKEW,X,ITAB,ICODE,IBFV,ITAGCYC)
4814 ALLOCATE(ITAGCYC(0))
4817 SFSAV = NTHVKI * (NINTER+NRWALL+NRBODY+NSECT+NJOINT+NRBAG+NVOLU+NMONVOL+NFXBODY+NINTSUB)
4818 ALLOCATE(FSAV(SFSAV) ,STAT=stat)
4828 NINTEMP = GLOB_THERM%NINTEMP
4829 IF (IALE + IEULER /= 0) THEN
4830.AND..OR.
IF (GLOB_THERM%ITHERM_FE == 0 (GLOB_THERM%NIMTEMP /= 0 NINTEMP /= 0)) THEN
4831 CALL ANCMSG(MSGID=1724, ANMODE=ANINFO, MSGTYPE=MSGWARNING)
4834 ERR_MSG='initial temperatures
'
4835 ERR_CATEGORY='initial temperatures
'
4836 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4838 IF (GLOB_THERM%NINTEMP > 0) THEN
4839 WRITE(ISTDO,'(a)
')TITRE(35)
4840 ALLOCATE(TEMP(NUMNOD))
4841 TEMP(1:NUMNOD) = ZERO
4842 ALLOCATE(INTIDS(NINTEMP))
4843 CALL HM_READ_INITEMP(TEMP ,NINTEMP ,GLOB_THERM%ITHERM_FE,ITAB ,ITABM1 ,
4844 . IGRNOD ,INTIDS ,UNITAB,LSUBMODEL )
4848 IF (GLOB_THERM%ITHERM_FE > 0 ) THEN
4849 ALLOCATE(MCP(NUMNOD))
4850.NOT.
IF (ALLOCATED(TEMP)) THEN
4851 ALLOCATE(TEMP(NUMNOD))
4852 TEMP(1:NUMNOD) = ZERO
4854 MCP (1:NUMNOD) = ZERO
4856 CALL HM_PREREAD_IMPTEMP(IGRSURF, IGRNOD, IGRBRIC, UNITAB, LSUBMODEL,
4857 . GLOB_THERM%NIMTEMP,GLOB_THERM%NFXTEMP)
4859 CALL HM_PREREAD_CONVEC(IGRSURF, IGRNOD, IGRBRIC, UNITAB, LSUBMODEL,
4860 . GLOB_THERM%NCONVEC ,GLOB_THERM%NUMCONV )
4862 CALL HM_PREREAD_RADIATION(IGRSURF, IGRNOD, IGRBRIC,UNITAB, LSUBMODEL,
4863 . GLOB_THERM%NRADIA ,GLOB_THERM%NUMRADIA)
4865 CALL HM_PREREAD_IMPFLUX(IGRSURF, IGRNOD, IGRBRIC,UNITAB, LSUBMODEL,
4866 . GLOB_THERM%NIMPFLUX,GLOB_THERM%NFXFLUX)
4869 ALLOCATE(IBCV(GLOB_THERM%NICONV*GLOB_THERM%NUMCONV) ,STAT=stat)
4870 ALLOCATE(FCONV(GLOB_THERM%LFACTHER*GLOB_THERM%NUMCONV) ,STAT=stat)
4871 ALLOCATE(IBFTEMP(GLOB_THERM%NIFT*GLOB_THERM%NFXTEMP) ,STAT=stat)
4872 ALLOCATE(FBFTEMP(GLOB_THERM%LFACTHER*GLOB_THERM%NFXTEMP),STAT=stat)
4873 ALLOCATE(IBFFLUX(GLOB_THERM%NITFLUX*GLOB_THERM%NFXFLUX) ,STAT=stat)
4874 ALLOCATE(FBFFLUX(GLOB_THERM%LFACTHER*GLOB_THERM%NFXFLUX),STAT=stat)
4875 ALLOCATE(IBCR(GLOB_THERM%NIRADIA*GLOB_THERM%NUMRADIA) ,STAT=stat)
4876 ALLOCATE(FRADIA(GLOB_THERM%LFACTHER*GLOB_THERM%NUMRADIA),STAT=stat)
4878 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4880 . C1='thermal data
')
4881 IBCR(1:GLOB_THERM%NIRADIA*GLOB_THERM%NUMRADIA) = 0
4883 IF (GLOB_THERM%NUMCONV > 0 ) THEN
4886 CALL HM_READ_CONVEC(IBCV,FCONV,ITAB,IXS,IGRSURF,UNITAB,LSUBMODEL,
4887 . GLOB_THERM%NCONVEC ,GLOB_THERM%NICONV,GLOB_THERM%NUMCONV,GLOB_THERM%LFACTHER)
4890 IF (GLOB_THERM%NUMRADIA > 0 ) THEN
4891 CALL HM_READ_RADIATION(IBCR,FRADIA,ITAB,IXS,IGRSURF,UNITAB,LSUBMODEL,
4892 . GLOB_THERM%NRADIA ,GLOB_THERM%NUMRADIA,GLOB_THERM%NIRADIA,GLOB_THERM%LFACTHER)
4895 IF (GLOB_THERM%NFXTEMP > 0) THEN
4898 CALL HM_READ_IMPTEMP(IBFTEMP,FBFTEMP,GLOB_THERM%NFXTEMP,ITABM1,
4899 . IGRNOD ,IBFTEMP,ITAB ,UNITAB,LSUBMODEL,
4900 . GLOB_THERM%NIMTEMP,GLOB_THERM%NIFT,GLOB_THERM%LFACTHER)
4903 IF (GLOB_THERM%NFXFLUX > 0 ) THEN
4906 CALL HM_READ_IMPFLUX(IBFFLUX ,FBFFLUX ,ITAB ,IXS ,IGRSURF ,
4907 . UNITAB ,IGRNOD ,IGRBRIC, LSUBMODEL,
4908 . GLOB_THERM%NIMPFLUX,GLOB_THERM%NITFLUX,GLOB_THERM%LFACTHER)
4913 ALLOCATE(IBCV(0),FCONV(0),IBFTEMP(0),FBFTEMP(0),
4914 . IBFFLUX(0),FBFFLUX(0),IBCR(0),FRADIA(0))
4915.NOT.
IF ( ALLOCATED(TEMP)) ALLOCATE(TEMP(0))
4920.OR.
IF(ISIGI==2 ISIGI==4) THEN
4922 ELSEIF(IABS(ISIGI)==5) THEN
4923 SFZERO = 3*4*(NUMELC+NUMELTG)
4927 ALLOCATE(FZERO(SFZERO) ,STAT=stat)
4928 IF(SFZERO > 0) FZERO = ZERO
4932 ERR_MSG='laser impacts
'
4933 ERR_CATEGORY='laser impacts
'
4934 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4935 CALL LECLAS(LSUBMODEL)
4942 ERR_MSG='elementary boundary conditions
'
4943 ERR_CATEGORY='elementary boundary conditions
'
4944 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4945 EBCS_TAG_CELL_SPMD(1:NUMELQ+NUMELTG+NUMELS)=0
4946 CALL READ_EBCS(IGRSURF,MULTI_FVM,NPC1,LSUBMODEL,EBCS_TAB)
4949.NOT.
IF( ALLOCATED(SENSOR_TMP)) ALLOCATE( SENSOR_TMP(0) )
4950 CALL INIEBCS(ALE_CONNECTIVITY, 0, IGRSURF, IXS, IXQ, IXTG,
4951 . PM, IGEO, X, SENSOR_TMP, MONVOl, MULTI_FVM%IS_USED,
4952 . EBCS_TAB, EBCS_TAG_CELL_SPMD)
4953 DEALLOCATE(SENSOR_TMP)
4959 ERR_MSG='accelerometers
'
4960 ERR_CATEGORY='accelerometers
'
4961 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4962 SACCELM = NACCELM * LLACCELM
4963 ALLOCATE(ACCELM(SACCELM) ,STAT=stat)
4964 IF(SACCELM > 0) ACCELM = ZERO
4965 IF(NACCELM > 0) CALL LECACC(
4966 1 LACCELM,ACCELM ,ITABM1 ,UNITAB,IXC,
4967 2 ISKWN,NOM_OPT(LNOPT1*INOM_OPT(1)+1), LSUBMODEL)
4973 ERR_CATEGORY='gauges
'
4974 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4975 ALLOCATE(LGAUGE(3*NBGAUGE) ,STAT=stat)
4976 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4979 IF(NBGAUGE > 0) LGAUGE=0
4980 ALLOCATE(GAUGE(LLGAUGE*NBGAUGE) ,STAT=stat)
4981 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4984 IF(NBGAUGE > 0) GAUGE=ZERO
4985 IF(NBGAUGE > 0) CALL HM_READ_GAUGE(LGAUGE,GAUGE,ITABM1,UNITAB,IXC,NOM_OPT(LNOPT1*INOM_OPT(27)+1),LSUBMODEL)
4991 ERR_CATEGORY='sensors
'
4992 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4995 ! size initialization for user sensor
4996 CALL SENSOR_USER_INIT(SENSOR_USER_STRUCT)
4999 PYTHON%NB_SENSORS = 0
5000 CALL HM_READ_SENSORS(PYTHON,
5001 . SENSORS ,LACCELM ,ITABM1 ,IPART ,LGAUGE ,
5002 . SUBSETS ,NSETS ,IGRSURF ,IGRNOD ,BUFSF ,
5003 . SKEW ,ISKWN ,UNITAB ,LSUBMODEL ,HM_NSENSOR,
5004 . SENSOR_USER_STRUCT)
5006 ! check if a user sensor is used with a list of node
5007 ! convert the list of User node ID into Local node ID
5009 IF(SENSOR_USER_STRUCT%IS_USED) THEN
5010 IF(SENSOR_USER_STRUCT%POINTER_NODE > 0) THEN
5011 CALL SENSOR_USER_CONVERT_LOCAL_ID(
5012 . ITABM1,SENSOR_USER_STRUCT%POINTER_NODE,SENSOR_USER_STRUCT%NUMBER_NODE,
5013 . SENSOR_USER_STRUCT%NODE_LIST,1,IPART)
5022 ERR_MSG='initial velocities
'
5023 ERR_CATEGORY='initial velocities
'
5024 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5027 ALLOCATE(RBY_INIAXIS(7,NRBODY))
5030 ALLOCATE(RBY_INIAXIS(0,0))
5033 NINIVELT = 0 ! /INIVEL w/ T_start
5034 IF(NINVEL > 0 ) CALL HM_PREREAD_INIVEL(LSUBMODEL,UNITAB,HM_NINVEL,NINIVELT)
5035 LOADS%NINIVELT = NINIVELT
5036.OR.
IF(NINVEL/=0ISIGI>=3)THEN
5038 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
5040 WRITE(ISTDO,'(a)
')TITRE(35)
5041 ALLOCATE(FVM_INIVEL(NINVEL))
5043 FVM_INIVEL(I)%FLAG = .FALSE.
5045 ALLOCATE(LOADS%INIVELT(NINIVELT) ,STAT=stat)
5047 CALL HM_READ_INIVEL(V , W , ITAB , ITABM1 , VR ,
5048 . IGRNOD , IGRBRIC, ISKWN , SKEW , IWORK ,
5049 . X , UNITAB , LSUBMODEL, RTRANS , XFRAME ,
5050 . IFRAME , VFLOW , WFLOW , KXSP , MULTI_FVM ,
5051 . FVM_INIVEL, IGRQUAD, IGRSH3N , RBY_MSN, RBY_INIAXIS,
5052 . SENSORS ,NINIVELT,LOADS%INIVELT)
5053 CALL INIVEL(V, VR, SVR_1, ITABM1)
5055 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
5059 ALLOCATE(FVM_INIVEL(0:0))
5062 IF(ALLOCATED(RBY_MSN)) DEALLOCATE(RBY_MSN)
5070 IF(BCS%NUM_WALL /= 0) THEN
5072 CALL HM_READ_BCS_WALL(UNITAB, LSUBMODEL, IGRNOD, NGRNOD, SENSORS, ITABM1, NUMNOD, MULTI_FVM)
5078 ERR_MSG='bolt preloading
'
5079 ERR_CATEGORY='bolt preloading
'
5080 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5082 NPRELOAD_A = NPRELOAD
5083 CALL HM_PRE_READ_PRELOAD_AXIAL(NGRSPRI,IGRSPRING,NPRELOAD_A,LSUBMODEL)
5084 NUMPRELOAD = NPRELOAD
5085 IF(NPRELOAD > NPRELOAD_A) THEN
5087 CALL PRELECSEC4BOLT(SNSTRF,SSECBUF,IGRNOD,ITABM1,0,
5088 . NOM_OPT(LNOPT1*INOM_OPT(8)+1),IGRBRIC,LSUBMODEL)
5089 ALLOCATE(NSTRF(SNSTRF) ,STAT=stat)
5090 ALLOCATE(SECBUF(SSECBUF) ,STAT=stat)
5093 CALL LECSEC4BOLT(IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
5094 2 IXTG ,X ,NSTRF ,ITAB ,ITABM1 ,
5096 4 IPARI ,IXS10 ,IXS20 ,IXS16 ,UNITAB ,
5097 5 ISKWN ,XFRAME ,EANI,NOM_SECT,RTRANS,
5098 6 LSUBMODEL,NOM_OPT(LNOPT1*INOM_OPT(8)+1),IGRBRIC)
5100 CALL HM_PRE_READ_PRELOAD(NSTRF,LSUBMODEL) !to calculate NUMPRELOAD = NUMPRELOAD + NN (NN = NSTRF(K0+7) = NSEGS)
5101 SIPRELOAD = 3*NUMPRELOAD !! sb - A ajuster
5102 SPRELOAD = 6*NUMPRELOAD !! sb - A ajuster
5103 ALLOCATE(IPRELOAD(SIPRELOAD) ,STAT=stat)
5104 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5107 ALLOCATE(PRELOAD(SPRELOAD) ,STAT=stat)
5108 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5111 ALLOCATE(IFLAG_BPRELOAD(NUMELS) ,STAT=stat)
5112 IF(STAT /= 0) CALL ANCMSG(MSGID= 268,ANMODE=ANINFO,
5113 . MSGTYPE= MSGERROR,
5119 WRITE(ISTDO,'(a)
')TITRE(34)
5120 CALL HM_READ_PRELOAD(IXS ,IXS10 ,IPRELOAD ,PRELOAD,IFLAG_BPRELOAD,
5121 . NSTRF ,SENSORS ,UNITAB ,X ,
5122 . EANI ,ITAB ,LSUBMODEL)
5124 IF(ALLOCATED(NSTRF)) DEALLOCATE(NSTRF)
5125 IF(ALLOCATED(SECBUF)) DEALLOCATE(SECBUF)
5129 ALLOCATE(IPRELOAD(0) ,STAT=stat)
5130 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5133 ALLOCATE(PRELOAD(0) ,STAT=stat)
5134 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5137 ALLOCATE(IFLAG_BPRELOAD(0) ,STAT=stat)
5138 IF(STAT /= 0) CALL ANCMSG(MSGID= 268,ANMODE=ANINFO,
5139 . MSGTYPE= MSGERROR,
5142! /PRELOAD/AXIAL 2 int 2 real per preload, itag_spring...
5143 ALLOCATE(PRELOAD_A(NPRELOAD_A) ,STAT=stat)
5144 ALLOCATE(ITAGPRLD_SPRING(NUMELR) ,STAT=stat)
5145 ALLOCATE(ITAGPRLD_BEAM(NUMELP) ,STAT=stat)
5146 ALLOCATE(ITAGPRLD_TRUSS(NUMELT) ,STAT=stat)
5147 IF(STAT /= 0) CALL ANCMSG(MSGID= 268,ANMODE=ANINFO,
5148 . MSGTYPE= MSGERROR,
5149 . C1= 'preload_axial
')
5150! itagprld_spring(nsprint), itagpre_beam(nbeam) : id of preload/axial; used for element grouping
5154 IF (NPRELOAD_A > 0) THEN
5155 CALL HM_READ_PRELOAD_AXIAL(
5156 . NPRELOAD_A, NGRSPRI, IGRSPRING, ITAGPRLD_SPRING,
5157 . UNITAB , LSUBMODEL, PRELOAD_A, NUMELR ,
5158 . SNPC , NPC , NFUNCT , SENSORS ,
5159 . NGRBEAM , IGRBEAM , NUMELP , ITAGPRLD_BEAM ,
5160 . NGRTRUS , IGRTRUSS , NUMELT , ITAGPRLD_TRUSS ,
5162 NPRELOAD = NPRELOAD - NPRELOAD_A
5168 ERR_MSG='rigid links
'
5169 ERR_CATEGORY='rigid links
'
5170 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5171 CALL HM_PRE_READ_LINK(NUMLINK, IGRNOD,LSUBMODEL)
5174 ALLOCATE(NNLINK(SNNLINK) ,STAT=stat)
5175 ALLOCATE(LNLINK(SLNLINK) ,STAT=stat)
5176 IF(SNNLINK > 0) NNLINK = 0
5177 IF(SLNLINK > 0) LNLINK = 0
5180 1 NNLINK ,LNLINK ,ITAB ,ITABM1 ,D ,
5181 2 IGRNOD ,ISKWN ,IFRAME ,NOM_OPT(LNOPT1*INOM_OPT(9)+1),LSUBMODEL)
5185 SGRAV = LFACGRV*NGRAV
5186 SFR_WAVE = NUMNOD*IFRWV
5188 ALLOCATE(FBVEL(SFBVEL) ,STAT=stat)
5189 ALLOCATE(GRAV (SGRAV ) ,STAT=stat)
5190 ALLOCATE(FR_WAVE(SFR_WAVE) ,STAT=stat)
5191 ALLOCATE(PARTS0(SPARTS0) ,STAT=stat)
5192 IF(SFBVEL > 0) FBVEL = ZERO
5193 IF(SGRAV > 0) GRAV = ZERO
5194 IF(SFR_WAVE > 0) FR_WAVE = ZERO
5195 IF(SPARTS0 > 0) PARTS0 = ZERO
5201 CALL PRELEC_DDW(FILNAM,LEN_FILNAM,MARQUEUR3)
5203 WRITE(IOUT,'(a)
')' '
5205 . ' --------------------------------------
'
5207 . ' ddw option
for the domain decomposition
'
5209 . ' --------------------------------------
'
5211 . '.. ddw option
for the domain decomposition
'
5213 ALLOCATE(TAB_UMP_OLD(7,TAILLE_OLD),STAT=stat)
5214 ALLOCATE(CPUTIME_MP_OLD(TAILLE_OLD),STAT=stat)
5216 CPUTIME_MP_OLD = ZERO
5218 CALL LEC_DDW(FILNAM,LEN_FILNAM,TAB_UMP_OLD,CPUTIME_MP_OLD)
5220 CALL PRELEC_DDW_POIN(FILNAM,LEN_FILNAM)
5221 ALLOCATE(POIN_UMP_OLD(NUMMAT_OLD), STAT=stat)
5224 CALL LEC_DDW_POIN(FILNAM,LEN_FILNAM,POIN_UMP_OLD)
5226 ALLOCATE(TAB_UMP_OLD(0,0),STAT=stat)
5227 ALLOCATE(CPUTIME_MP_OLD(0),STAT=stat)
5228 ALLOCATE(POIN_UMP_OLD(0), STAT=stat)
5233 ERR_MSG='user windows
'
5234 ERR_CATEGORY='user windows
'
5235 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5237 IF(USER_WINDOWS%HAS_USER_WINDOW /= 0 ) THEN
5240 CALL HM_READ_WINDOW_USER(USER_WINDOWS,LSUBMODEL,ITAB,
5249 ERR_MSG='rigid bodies on
'
5250 ERR_CATEGORY='rigid bodies
'
5251 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5252 IF(NUMELS /=0) ISOLOFF = 0
5253 IF(NUMELC /=0) ISHEOFF = 0
5254 IF(NUMELT /=0) ITRUOFF = 0
5255 IF(NUMELP /=0) IPOUOFF = 0
5256 IF(NUMELR /=0) IRESOFF = 0
5257 IF(NUMELTG /=0) ITRIOFF = 0
5258 IF(NUMELQ /=0) IQUAOFF = 0
5260 1 IXS ,IXC ,IXTG ,IGRNOD ,IGRNRBY ,
5261 2 ISOLOFF ,ISHEOFF ,ITRIOFF,KNOD2ELS,KNOD2ELC,
5262 5 KNOD2ELTG,NOD2ELS ,NOD2ELC,NOD2ELTG,IXQ ,
5263 6 IQUAOFF ,KNOD2ELQ,NOD2ELQ,LSUBMODEL)
5270 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5272 1 IXS ,IXC ,IXTG ,IGRNOD ,
5273 2 IGRNRB2,ISOLOFF,ISHEOFF,ITRIOFF,ITABM1,
5279 ERR_MSG='flexible bodies on
'
5280 ERR_CATEGORY='flexible bodies
'
5281 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5284 CALL HM_SETFXRBYON(ITABM1,IXS,ISOLOFF,IXC,ISHEOFF,
5285 1 IXT,ITRUOFF,IXP,IPOUOFF,IXR,IRESOFF,
5286 2 IXTG,ITRIOFF,FXBIPM,LSUBMODEL)
5293 ERR_CATEGORY='clusters
'
5294 ALLOCATE(CLUSTERS(NCLUSTER), STAT=Stat)
5295 CALL HM_READ_CLUSTER(
5296 . CLUSTERS ,UNITAB ,ISKWN ,IGRBRIC ,IGRSPRING,
5297 . IXS ,IXR ,NOM_OPT(LNOPT1*INOM_OPT(28)+1),
5302 CALL HM_READ_INIVOL(INIVOL, KVOL, IGRSURF ,IPART, MULTI_FVM, BUFMAT,
5303 * IPM, NBSUBMAT, LSUBMODEL, UNITAB,
5304 * N2D ,NUMELTG,NUMELS,NUMELQ,NUMMAT,
5305 * NPART,NSURF,LIPART1,NPROPMI,SIPART,SINIVOL,
5306 * NSUBDOM,SBUFMAT,IGRNOD,NGRNOD)
5310 IF(TAGSURFIGE>0) THEN
5312 NIGE => NIGE_TMP(IDXIGE2)%ptr
5315 RIGE => RIGE_TMP(IDXIGE2)%ptr2
5318 XIGE => XIGE_TMP(IDXIGE2)%ptr2
5321 VIGE => VIGE_TMP(IDXIGE2)%ptr2
5329 CALL CHECK_SURF(IGRSURF)
5333 ERR_MSG='monitored volumes
'
5334 ERR_CATEGORY='monitored volumes
'
5335 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5340 ALLOCATE(T_MONVOL(NVOLU + NMONVOL))
5341 CALL MONVOL_ALLOCATE(NVOLU + NMONVOL, T_MONVOL, T_MONVOL_METADATA)
5342 IF(NVOLU + NMONVOL> 0) THEN
5343 WRITE(ISTDO,'(a)
') ' .. monitored volumes
'
5345 CALL READ_MONVOL(T_MONVOL, T_MONVOL_METADATA, ITAB, ITABM1, IPM, IGEO,
5346 . X, PM, GEO, IXC, IXTG, SENSORS,
5347 . UNITAB, NPC1, NPC, TF, IGRSURF, IGRBRIC, NOM_OPT(LNOPT1*INOM_OPT(2)+1),IFRAME, XFRAME,
5350 CALL INIT_MONVOL(T_MONVOL, T_MONVOL_METADATA,
5351 3 IXC , IXTG ,X ,NPC1 ,
5353 5 SENSORS , IGRBRIC ,SBUFALE ,
5354 6 IXS , V ,LIBAGALE,
5362 LICBAG = NICBAG * NVOLU * NVOLU
5364 LIBAGJET = LIBAGJET + NIBJET * T_MONVOL(II)%NJET
5365 LRBAGJET = LRBAGJET + NRBJET * T_MONVOL(II)%NJET
5366 LIBAGHOL = LIBAGHOL + NIBHOL * T_MONVOL(II)%NVENT
5367 LRBAGHOL = LRBAGHOL + NRBHOL * T_MONVOL(II)%NVENT
5368.OR.
IF(T_MONVOL(II)%TYPE == 5 T_MONVOL(II)%TYPE == 9) THEN
5369 LRCBAG = LRCBAG + T_MONVOL(II)%NCA * NRCBAG
5373 SVOLMON0 = NRVOLU * NVOLU + LRCBAG + LRBAGJET + LRBAGHOL
5374 SVOLMON = SVOLMON0 + SBUFALE + 1
5375 ALLOCATE(VOLMON(SVOLMON), STAT = stat)
5376 VOLMON(1:SVOLMON) = ZERO
5378 SMONVOL = NIMV * NVOLU + LICBAG + LIBAGJET + LIBAGHOL + LIBAGALE
5379 ALLOCATE(MONVOL(SMONVOL), STAT = stat)
5380 MONVOL(1:SMONVOL) = 0
5389 ERR_MSG='IMPLICIT domain decomposition
'
5390 ERR_CATEGORY='IMPLICIT domain decomposition
'
5391 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5393 1 DSDOF,IXS , IXQ, IXC , IXT,
5394 2 IXP ,IXR , IXTG, KXX,
5411 IWCONT(NUMNOD+I) = 0
5417 IENTRY2(I) = IFRONT%IENTRY(I)
5454.AND..OR.
IF(NDRAPE > 0 (IPART_STACK > 0 IPART_PCOMPP > 0)) THEN
5455 CALL SHELLTHK_UPD(DRAPE ,STACK ,THKE ,IXC ,IXTG ,
5456 . IGEO ,IWORKSH ,DRAPEG%INDX)
5462 ERR_CATEGORY='perturb
'
5463 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5465 IF(IPERTURB /= 0) THEN
5467 SRNOISE2=NUMELC+NUMELTG+NUMELS+NUMSPH
5468 ALLOCATE(RNOISE(NPERTURB,NUMELC+NUMELTG+NUMELS+NUMSPH))
5469 RNOISE(1:NPERTURB,1:NUMELC+NUMELTG+NUMELS+NUMSPH) = ZERO
5470 ALLOCATE(PERTURB(NPERTURB))
5471 PERTURB(1:NPERTURB) = 0
5472 ALLOCATE(QP_IPERTURB(NPERTURB,6))
5473 QP_IPERTURB(1:NPERTURB,1:6) = 0
5474 ALLOCATE(QP_RPERTURB(NPERTURB,4))
5475 QP_RPERTURB(1:NPERTURB,1:4) = ZERO
5476 CALL HM_READ_PERTURB(MAT_ELEM%MAT_PARAM,
5477 . IPART ,RNOISE ,IPARTC ,IPARTG ,IPARTSP ,
5478 . IGRPART ,IPM ,IPARTS ,PERTURB ,QP_IPERTURB,
5479 . QP_RPERTURB ,LSUBMODEL,UNITAB )
5483 ALLOCATE(RNOISE(1,1))
5485 ALLOCATE(PERTURB(1))
5487 ALLOCATE(QP_IPERTURB(0,0))
5488 ALLOCATE(QP_RPERTURB(0,0))
5495!! IF(IGLOBMAT > 0) THEN ! global flag can be added
5496 CALL GLOBMAT(IGEO , GEO ,PM ,STACK%PM, STACK%GEO,STACK%IGEO)
5503 ALLOCATE(PERMUTATION%SOLID(MAX(2*NUMELS,1)))
5504 ALLOCATE(PERMUTATION%SHELL(MAX(2*NUMELC,1)))
5505 ALLOCATE(PERMUTATION%TRIANGLE(MAX(2*NUMELTG,1)))
5506 PERMUTATION%TRIANGLE = 0
5507 PERMUTATION%SHELL = 0
5508 PERMUTATION%SOLID = 0
5513 ERR_MSG='user to system renumbering
'
5514 ERR_CATEGORY='internal
'
5515 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5516 CALL FSDCOD(PYTHON, BUFMAT ,PM ,GEO ,IBCL ,IPRES ,
5517 . IBFV ,ISKEW ,ISKWN ,SENSORS ,MAT_ELEM%MAT_PARAM ,
5518 . ITABM1 ,SKEW ,LACCELM ,BID13 ,BUFGEO ,
5519 . IBCSLAG ,IGEO ,IPM ,
5520 . IBFTEMP ,IBCV ,IBFV ,
5521 . IBCR ,TABLE ,NPC1 ,NPC ,TF ,
5522 . NOM_OPT(LNOPT1*INOM_OPT(3)+1),IBFFLUX ,GLOB_THERM,NIMPVEL,NIMPDISP,
5528 CALL UPDMAT(BUFMAT ,PM ,IPM ,TABLE ,NPC1 ,
5529 . NPC ,TF ,SENSORS ,NLOC_DMG ,MLAW_TAG ,
5530 . MAT_ELEM%MAT_PARAM)
5532 CALL UPDFAIL(MAT_ELEM%MAT_PARAM ,NUMMAT ,NFUNCT ,NTABLE ,NPC1 ,TABLE ,
5533 . FAIL_FRACTAL,NGRSHEL ,NGRSH3N,IGRSH4N ,IGRSH3N ,
5534 . NIXC ,IXC ,NIXTG ,IXTG ,NUMELC ,NUMELTG ,
5535 . IWORKSH ,STACK ,IGEO ,NPROPGI ,NUMGEO ,FAIL_BROKMANN)
5542 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5544 . CALL SPHDCOD(NPC1,ISPHIO,NOM_OPT(LNOPT1*INOM_OPT(22)+1))
5557 CALL INIT_PERMUTATION()
5559 IF(IDDLEVEL==1) THEN
5566 IF((NSUBDOM>0)) THEN
5569 IF(TAGNO(I+N_PART) > 1) THEN
5571 IF(IRODDL==1) IN(I)=1e-20
5583 IF(NB_MAT_SEATBELT > 0) THEN
5585 ERR_CATEGORY='seatbelts
'
5586 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5587 WRITE(ISTDO,'(a)
')' .. seatbelt initialization
'
5588 CALL CREATE_SEATBELT(IXR,ITAB,KNOD2EL1D,NOD2EL1D,IPM,
5589 . X,SENSORS,BUFMAT,PM,GEO,
5590 . IDDLEVEL,KNOD2ELC,NOD2ELC,IXC,IGEO,
5602 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5603 IF(NDAMP > 0) CALL HM_READ_DAMP(DAMPR,IGRNOD,ISKWN,LSUBMODEL,UNITAB,
5604 . SNPC1,NPC1,NDAMP_VREL_RBY,IGRPART,DAMP_RANGE_PART)
5612.NOT.
IF( ALLOCATED(TAGPRT_SMS)) THEN
5613 ALLOCATE(TAGPRT_SMS(0))
5614 ALLOCATE(NATIV_SMS(0))
5615 ALLOCATE(T2MAIN_SMS(4,0))
5620 WRITE(ISTDO,'(a)
')' .. ams initialization
'
5621 IF(IDDLEVEL==0) THEN
5623 ERR_MSG='ams initialization phase i
'
5624 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5626 ALLOCATE(TAGPRT_SMS(NPART),NATIV_SMS(NUMNOD),T2MAIN_SMS(4,NUMNOD),STAT=stat)
5628 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5632 NATIV_SMS(1:NUMNOD)=0
5635 CALL INISMS(IGRPART ,IPARTS ,IPARTQ ,IPARTC ,
5636 . IPARTT ,IPARTP ,IPARTR ,IPARTG ,
5637 . IPARTX ,TAGPRT_SMS )
5645 ERR_MSG='ams initialization phase ii
'
5646 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5648 ALLOCATE(KINWORK(NUMNOD),STAT=STAT)
5649 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5652 CALL KINREM(D ,KINWORK ,RWBUF ,ITAB ,NPRW ,
5653 . LPRW ,NPBY ,LPBY )
5655 ALLOCATE(TAGREL_SMS(NGROUP),TAGSLV_RBY_SMS(NUMNOD),TAGMSR_RBY_SMS(NUMNOD),
5656 . KAD_SMS(NUMNOD+1), JAD_SMS(NUMNOD+1), IAD_SMS(NUMNOD+1), LAD_SMS(NUMNOD+1),
5657 . JADC_SMS(4*NUMELC),
5658 . JADS_SMS(8*NUMELS), JADS10_SMS(6*NUMELS10),
5659 . JADT_SMS(2*NUMELT),
5660 . JADP_SMS(2*NUMELP),
5661 . JADR_SMS(3*NUMELR),
5662 . JADTG_SMS(3*NUMELTG), JADRB_SMS(NRBODY),
5664 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5670 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
5671 2 IXR ,IXTG ,IXTG1 ,IXS10 ,IXS16 ,
5672 3 IXS20 ,IPARG ,DSDOF ,
5673 4 ICODT ,ICODR ,KINWORK ,
5674 5 IPARTS ,IPARTQ ,IPARTC ,
5675 6 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
5676 7 IPARTX ,TAGPRT_SMS ,ITAB ,IRBE2 ,
5677 8 IRBE3 ,LRBE2 ,LRBE3 ,NPRW ,LPRW ,
5678 9 IPART ,IGEO ,IPM ,NATIV_SMS,NPBY ,
5679 A LPBY ,TAGMSR_RBY_SMS,TAGSLV_RBY_SMS,NOM_OPT)
5682 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
5683 2 IXR ,IXTG ,IXTG1 ,IXS10 ,IXS16 ,
5684 3 IXS20 ,IPARG ,MS ,MS0 ,DSDOF ,
5685 4 ICODT ,ICODR ,KINET ,
5686 5 KAD_SMS ,IPARTS ,IPARTQ ,
5687 6 IPARTC ,IPARTT ,IPARTP ,IPARTR ,
5688 7 IPARTG ,IPARTX ,TAGPRT_SMS,TAGREL_SMS,ITAB ,
5689 8 IRBE2 ,IRBE3 ,LRBE2 ,LRBE3 ,
5690 9 NPRW ,LPRW ,IPART ,IGEO ,NATIV_SMS)
5693 ALLOCATE(KDI_SMS(KNZ_SMS),PK_SMS(KNZ_SMS),
5695 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5700 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5701 3 IXR ,IXTG ,IXS10 ,DSDOF ,KAD_SMS ,
5702 4 KDI_SMS ,JADC_SMS,JADS_SMS ,JADS10_SMS ,
5703 5 JADT_SMS ,JADP_SMS,
5704 6 JADR_SMS,JADTG_SMS,TAGPRT_SMS,IAD_SMS ,
5705 7 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5706 8 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5707 9 NPBY ,LPBY ,KINET ,TAGSLV_RBY_SMS,IPARI ,
5708 A INTBUF_TAB,LAD_SMS ,IPART ,IGEO ,NATIV_SMS)
5710 ALLOCATE(IDI_SMS(NNZ_SMS),JDI_SMS(NNZ_SMS),STAT=STAT)
5711 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5716 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5717 3 IXR ,IXTG ,IXS10 ,DSDOF ,JADC_SMS ,
5718 4 JADS_SMS ,JADS10_SMS,JADT_SMS ,JADP_SMS,JADR_SMS ,
5719 5 JADTG_SMS,TAGPRT_SMS,KAD_SMS,KDI_SMS ,PK_SMS ,
5720 6 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5721 7 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5722 8 NPBY ,LPBY ,KINET ,TAGSLV_RBY_SMS,IPARI ,
5723 9 INTBUF_TAB,LAD_SMS ,IPART ,IGEO ,NATIV_SMS ,
5724 A IAD_SMS ,IDI_SMS,JAD_SMS ,JDI_SMS ,T2MAIN_SMS)
5728 ALLOCATE(JDI_SMS(NNZ_SMS),STAT=STAT)
5730 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5737 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5738 3 IXR ,IXTG ,IXS10 ,DSDOF ,JADC_SMS ,
5739 4 JADS_SMS ,JADS10_SMS,JADT_SMS,JADP_SMS,JADR_SMS ,
5740 5 JADTG_SMS,TAGPRT_SMS,KAD_SMS,KDI_SMS ,
5741 7 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5742 8 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5743 9 NPBY ,LPBY ,KINET ,TAGSLV_RBY_SMS,IPARI ,
5744 A INTBUF_TAB,LAD_SMS ,NPRW ,LPRW ,TAGMSR_RBY_SMS,
5745 C INTSTAMP ,IPART ,IGEO ,NATIV_SMS,IRBE2 ,
5746 D LRBE2 ,IAD_SMS ,IDI_SMS,JAD_SMS ,JDI_SMS ,
5751 ALLOCATE(JDI_SMS(NNZ_SMS),STAT=STAT)
5753 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5758 ALLOCATE(JSM_SMS(NNZ_SMS),STAT=STAT)
5760 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5767 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5768 3 IXR ,IXTG ,IXS10 ,DSDOF ,JADC_SMS,
5769 4 JADS_SMS ,JADS10_SMS,JADT_SMS ,JADP_SMS,JADR_SMS ,
5770 5 JADTG_SMS,TAGPRT_SMS,KAD_SMS ,KDI_SMS ,
5771 6 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5772 7 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5773 8 NPBY ,LPBY ,KINET ,
5774 9 TAGSLV_RBY_SMS,IPARI ,INTBUF_TAB,
5775 A LAD_SMS ,JSM_SMS ,INTSTAMP ,IPART ,
5776 B IGEO ,TAGMSR_RBY_SMS,NATIV_SMS,
5777 C IAD_SMS ,IDI_SMS,JAD_SMS ,JDI_SMS ,T2MAIN_SMS)
5780 DEALLOCATE(T2MAIN_SMS)
5784.AND.
IF((ISMS_SELEC >= 2)(NNZ_SMS == 0)) ISMS_SELEC = 0
5790 NELEM = NUMELC+NUMELTG+NUMELS+NUMELR
5791 + + NUMELP+NUMELT+NUMELQ+NUMELX+NUMELIG3D
5794 ALLOCATE(IELEM21(NELEM),STAT=stat)
5795 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5800 ERR_MSG='domain decomposition
'
5801 ERR_CATEGORY='domain decomposition
'
5802 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5803 IF(IDDLEVEL==1) THEN
5812 IF(IENTRY2(I)/=-1)THEN
5813 CALL IFRONTPLUS(I,1)
5819 ELSEIF(IDDLEVEL==0) THEN
5820 IF(NELEM+NCONLD+GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX+SLCFIELD>0) THEN
5821 SCEP = NELEM+NCONLD+GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX+SLLOADP+NUMBER_LOAD_CYL
5822 SCEL = NELEM+NCONLD+GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX+SLLOADP+NUMBER_LOAD_CYL
5832 EMAX = MAX(NUMELC,NUMELTG,NUMELS,NUMELR,
5833 . NUMELP,NUMELT,NUMELQ,NUMELX,NUMELIG3D)
5843 LDD_IAD = ((NELEM+NUMSPH)/NVSIZ/2)*(NSPMD+1)
5844 ALLOCATE(DD_TMP(LDD_IAD) ,STAT=stat)
5848 ALLOCATE(IWORK(K8) ,STAT=stat)
5850 ITRI1 => IWORK(1:K2)
5851 ITRI2 => IWORK(K2+1:K3)
5852 INDEX1 => IWORK(K3+1:K4)
5853 INDEX2 => IWORK(K4+1:K5)
5861 INUM => IWORK(K5+1:K6)
5862 IWD => IWORK(K6+1:K7)
5863 IWEIG => IWORK(K7+1:K8)
5870.NOT.
IF(ALLOCATED(INTER_CAND%IXINT)) ALLOCATE(INTER_CAND%IXINT(INTER_CAND%S_IXINT_1,INTER_CAND%S_IXINT_2))
5871.NOT.
IF( ALLOCATED(NPBY)) ALLOCATE(NPBY(0))
5872.NOT.
IF( ALLOCATED(LPBY)) ALLOCATE(LPBY(0))
5873.NOT.
IF( ALLOCATED( RBY)) ALLOCATE( RBY(0))
5876 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
5877 2 IXR ,IXTG ,CEP ,GEO ,
5878 3 ITRI1 ,ITRI2 ,INDEX1 ,INDEX2 ,INUM ,
5879 4 IWD ,IWCONT ,NELEM ,IDDLEVEL,NELEMINT ,
5880 5 INTER_CAND,PM ,X ,KXX ,IXX ,
5881 6 ADDCNE ,IGEO ,EANI ,IWCIN2 ,DSDOF ,
5882 7 ISOLOFF ,ISHEOFF ,ITRIOFF ,ITRUOFF ,IPOUOFF ,
5883 8 IRESOFF ,IELEM21 ,IPM ,IXS10 ,D ,
5884 9 CLUSTERS ,KXIG3D ,IXIG3D ,COST_R2R,BUFMAT,
5885 1 TAILLE ,POIN_UMP,TAB_UMP ,
5886 2 POIN_UMP_OLD,TAB_UMP_OLD,CPUTIME_MP_OLD,
5887 3 NSNT, NMNT_2,TABMP_L,IQUAOFF,
5889 5 ITAB ,IPART ,IPARTC ,IPARTG ,IPARTS,
5890 6 POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,
5891 7 MID_PID_SHELL,MID_PID_TRI,MID_PID_SOL,T_MONVOL,
5892 8 EBCS_TAG_CELL_SPMD,NPBY,LPBY,MAT_ELEM%MAT_PARAM)
5899 IF(IDDLEVEL==0) THEN
5900 ALLOCATE(CEPSP(NUMSPH),STAT=stat)
5901 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5905 ALLOCATE(CELSPH(NUMSPH),STAT=stat)
5906 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5911 CALL SPDOMETIS(KXSP, IXSP, NOD2SP, CEPSP, RESERVEP,
5914 IF(IDDLEVEL==0) ALLOCATE(CELSPH(1))
5915.NOT.
IF((ALLOCATED(CEPSP))) ALLOCATE(CEPSP(0),STAT=stat)
5921 CALL LASERP1(ILAS ,CEP,IXQ )
5928 ERR_MSG='elements groups
'
5929 ERR_CATEGORY='elem/prop/mat compatibility
'
5930 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5940 NUMELIG3DK8 = NUMELIG3D
5942! working int8 to avoid integer overflow for large models
5943 EMAX = MAX(24*NUMELCK8,25*NUMELTGK8+1,30*NUMELSK8+1,19*NUMELRK8,
5944 . 19*NUMELPK8+1,17*NUMELTK8,19*NUMELQK8,
5945 . 15*NUMELXK8+1,24*NUMELIG3DK8+1,NUMSPHK8) + 1
5947 ALLOCATE(IPARGTMP(NPARG,NUMEL) ,STAT=stat)
5949 ALLOCATE(IWORK(EMAX) ,STAT=stat)
5951 CALL ANCMSG(MSGID=727,
5957 IF(IDDLEVEL == 0) CALL M20DCOD(MLAW_TAG,IPM, PM, MAT_ELEM%MAT_PARAM)
5965 WRITE(ISTDO,'(a)
')TITRE(37)
5979 !warning: please also update any index change
5980 ! for MODIF option (MODIF_SPMD.F)
5983 ITRI1 => IWORK(K1+1:K2)
5984 EADD => IWORK(K2+1:K3)
5985 INDEX1 => IWORK(K3+1:K4)
5986 ITRI2 => IWORK(K4+1:K5)
5987 ITRI3 => IWORK(K5+1:K6)
5991 1 IXS ,PM ,GEO ,INUM ,BID13 ,
5992 2 ITRI1 ,EADD ,INDEX1 ,ITRI2 ,IPARTS ,
5993 3 ND ,IGRSURF,IGRBRIC,EANI ,
5994 4 CEP(OFF),ITRI3 ,IXS10 ,IXS20 ,IXS16 ,
5995 5 IGEO ,IPM ,NOD2ELS,ISOLOFF ,
5996 6 TAGPRT_SMS,SPH2SOL,SOL2SPH,MAT_ELEM%MAT_PARAM,
5997 7 SOL2SPH_TYP ,IFLAG_BPRELOAD, CLUSTERS ,
5998 8 RNOISE(1,MIN(SRNOISE2,NUMELC+NUMELTG+1)),
6004 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6005 ALLOCATE(DD_TMP2(IDX-1))
6007 DD_TMP2(I)=DD_TMP(I)
6010 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6012 DD_TMP(I)=DD_TMP2(I)
6019 1 IXS ,PM ,IPARGTMP ,GEO ,
6020 2 EADD ,ND ,IPARTS ,DD_TMP(IDX),
6021 3 IDX ,EANI ,INUM ,INDEX1 ,
6022 4 CEP(OFF) ,ITRI1 ,IXS10 ,IGRSURF ,IGRBRIC ,
6023 5 IXS20 ,IXS16 ,IGEO ,IDDLEVEL,
6024 6 IPM ,NOD2ELS ,ISOLOFF ,ISOLNOD ,
6025 7 TAGPRT_SMS,INIVOL ,SPH2SOL ,SOL2SPH ,SOL2SPH_TYP,
6026 8 IFLAG_BPRELOAD, CLUSTERS ,MAT_ELEM%MAT_PARAM ,RNOISE(1,MIN(SRNOISE2,NUMELC+NUMELTG+1)),
6027 9 IPRI ,DAMP_RANGE_PART)
6029 NGR_SOL = GRSOL_ID2 - GRSOL_ID1
6034 N=PERMUTATION%SOLID(I)
6035 PERMUTATION%SOLID(NUMELS+N)=I
6037! already done in SGRHEAD / SGRTAILS
6038! CALL APPLYSORT2CLUSTER(CLUSTERS,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6039 CALL APPLYSORT2FLUX(IBFFLUX,GLOB_THERM%NITFLUX,GLOB_THERM%NFXFLUX,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6040 CALL APPLYSORT2FLUX(IBCR,GLOB_THERM%NIRADIA,GLOB_THERM%NUMRADIA,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6041 CALL APPLYSORT2FLUX(IBCV,GLOB_THERM%NICONV,GLOB_THERM%NUMCONV,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6054 !warning: please also update any index change
6055 ! for MODIF option (MODIF_SPMD.F)
6058 ITR1 => IWORK(K1+1:K2)
6059 EADD => IWORK(K2+1:K3)
6060 INDEX1 => IWORK(K3+1:K4)
6061 ITRI1 => IWORK(K4+1:K5)
6062 XEP => IWORK(K5+1:K6)
6065 1 IXQ ,PM ,GEO ,INUM ,BID13 ,
6066 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,IPARTQ ,
6067 4 ND ,IGRSURF ,IGRQUAD ,CEP(OFF) ,MAT_ELEM%MAT_PARAM,
6068 5 XEP ,IGEO ,IPM ,IQUAOFF )
6073 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6074 ALLOCATE(DD_TMP2(IDX-1))
6076 DD_TMP2(I)=DD_TMP(I)
6079 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6081 DD_TMP(I)=DD_TMP2(I)
6087 1 IXQ ,PM ,IPARGTMP ,GEO ,
6088 2 EADD ,ND ,DD_TMP(IDX),IDX ,
6089 3 INUM ,INDEX1 ,CEP(OFF) ,IPARTQ ,
6090 4 ITR1 ,IGRSURF ,IGRQUAD ,MAT_ELEM%MAT_PARAM,
6091 5 IGEO ,IPM ,IQUAOFF ,INIVOL, IPRI)
6109 !warning: please also update any index change
6110 ! for MODIF option (MODIF_SPMD.F)
6113 ITR1 => IWORK(K1+1:K1+NUMELC)
6114 ITR2 => IWORK(K1+NUMELC+1:K2)
6115 EADD => IWORK(K2+1:K3)
6116 INDEX1 => IWORK(K3+1:K4)
6117 ITRI1 => IWORK(K4+1:K5)
6118 XEP => IWORK(K5+1:K6)
6119 ALLOCATE(XNUM(NUMELC) ,STAT=stat)
6123 1 IXC ,PM ,GEO ,INUM ,BID13 ,
6124 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,XNUM ,
6125 3 IPARTC ,ND ,THKE ,IGRSURF ,IGRSH4N ,
6126 4 CEP(OFF),XEP ,IGEO ,IPM ,
6127 5 IPART ,SH4TREE ,NOD2ELC ,ISHEOFF ,SH4TRIM ,
6128 6 TAGPRT_SMS,LGAUGE,IWORKSH ,MAT_ELEM%MAT_PARAM,
6129 7 STACK ,DRAPE ,RNOISE ,SH4ANG,DRAPEG, PTSHEL,
6136 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6137 ALLOCATE(DD_TMP2(IDX-1))
6139 DD_TMP2(I)=DD_TMP(I)
6142 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6144 DD_TMP(I)=DD_TMP2(I)
6151 1 IXC ,PM ,IPARGTMP ,GEO ,
6152 2 EADD ,ND ,IPARTC ,DD_TMP ,
6154 4 INDEX1 ,CEP(OFF) ,THKE ,XNUM ,
6155 5 IGRSURF ,IGRSH4N ,IGEO ,IPM ,
6156 6 IPART ,SH4TREE ,NOD2ELC ,ISHEOFF ,
6157 7 SH4TRIM ,TAGPRT_SMS, LGAUGE,IWORKSH ,
6158 8 STACK ,DRAPE ,RNOISE ,MAT_ELEM%MAT_PARAM,
6159 9 SH4ANG, IDDLEVEL , DRAPEG,IPRI, PTSHEL,DAMP_RANGE_PART)
6164 N=PERMUTATION%SHELL(I)
6165 PERMUTATION%SHELL(NUMELC+N)=I
6178 !warning: please also update any index change
6179 ! for MODIF option (MODIF_SPMD.F)
6182 ITR1 => IWORK(K1+1:K2)
6183 EADD => IWORK(K2+1:K3)
6184 INDEX1 => IWORK(K3+1:K4)
6185 ITRI1 => IWORK(K4+1:K5)
6186 XEP => IWORK(K5+1:K6)
6189 1 IXT ,PM ,GEO ,INUM ,BID13 ,
6190 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,
6191 3 IPARTT ,ND ,IGRSURF,IGRTRUSS,
6192 4 CEP(OFF),XEP ,ITRUOFF,
6193 5 TAGPRT_SMS,ITAGPRLD_TRUSS)
6198 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6199 ALLOCATE(DD_TMP2(IDX-1))
6201 DD_TMP2(I)=DD_TMP(I)
6204 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6206 DD_TMP(I)=DD_TMP2(I)
6212 1 IXT ,IPARGTMP,PM ,GEO ,
6213 2 EADD ,ND ,DD_TMP ,IDX ,
6214 3 INUM ,INDEX1 ,CEP(OFF) ,IPARTT ,
6215 4 ITR1 ,IGRSURF ,IGRTRUSS ,ITRUOFF ,
6216 5 TAGPRT_SMS,NOD2EL1D,IPRI,ITAGPRLD_TRUSS,
6217 6 PRELOAD_A,NPRELOAD_A)
6229 !warning: please also update any index change
6230 ! for MODIF option (MODIF_SPMD.F)
6233 ITR1 => IWORK(K1+1:K2)
6234 EADD => IWORK(K2+1:K3)
6235 INDEX1 => IWORK(K3+1:K4)
6236 ITRI1 => IWORK(K4+1:K5)
6237 XEP => IWORK(K5+1:K6)
6239 ALLOCATE(XNUM(3*NUMELP) ,STAT=stat)
6240 XNUM(1:3*NUMELP) = ZERO
6243 1 IXP ,PM ,GEO ,INUM ,
6244 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,IPARTP ,
6245 3 ND ,IGRSURF ,IGRBEAM ,CEP(OFF) ,
6246 4 XEP ,IGEO ,IPOUOFF ,TAGPRT_SMS , IPM ,
6247 5 ITAGPRLD_BEAM,IBEAM_VECTOR,RBEAM_VECTOR,XNUM)
6252 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6253 ALLOCATE(DD_TMP2(IDX-1))
6255 DD_TMP2(I)=DD_TMP(I)
6258 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6260 DD_TMP(I)=DD_TMP2(I)
6265 CALL PGRTAILS(MAT_ELEM%MAT_PARAM,
6266 1 IXP ,IPARGTMP,PM ,GEO ,
6267 2 EADD ,ND ,DD_TMP ,IDX ,
6268 3 INUM ,INDEX1 ,CEP(OFF) ,IPARTP ,
6269 4 ITR1 ,IGRSURF ,IGRBEAM ,IGEO ,
6270 5 IPM ,IPOUOFF ,TAGPRT_SMS,
6271 6 NOD2EL1D, IPRI ,ITAGPRLD_BEAM,PRELOAD_A,
6272 7 NPRELOAD_A,IBEAM_VECTOR,RBEAM_VECTOR,XNUM)
6288 !warning: please also update any index change
6289 ! for MODIF option (MODIF_SPMD.F)
6292 ITR1 => IWORK(K1+1:K2)
6293 EADD => IWORK(K2+1:K3)
6294 INDEX1 => IWORK(K3+1:K4)
6295 ITRI1 => IWORK(K4+1:K5)
6296 XEP => IWORK(K5+1:K6)
6299 1 IXR ,GEO ,INUM ,BID13 ,IGEO ,
6300 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,
6301 4 IPARTR ,ND ,IGRSURF,IGRSPRING,
6302 5 CEP(OFF),XEP ,IRESOFF,
6303 6 TAGPRT_SMS, CLUSTERS,IPM,R_SKEW,ITAGPRLD_SPRING)
6308 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6309 ALLOCATE(DD_TMP2(IDX-1))
6311 DD_TMP2(I)=DD_TMP(I)
6314 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6316 DD_TMP(I)=DD_TMP2(I)
6322 1 IXR ,IPARGTMP ,GEO ,EADD ,IGEO ,
6323 2 ND ,DD_TMP ,IDX ,INUM ,
6324 3 INDEX1 ,CEP(OFF) ,IPARTR ,ITR1 ,
6325 4 IGRSURF ,IGRSPRING ,IRESOFF ,TAGPRT_SMS ,NOD2EL1D,
6326 5 IPM , CLUSTERS,R_SKEW,IPRI ,ITAGPRLD_SPRING,
6327 6 PRELOAD_A,NPRELOAD_A)
6343 !warning: please also update any index change
6344 ! for MODIF option (MODIF_SPMD.F)
6347 ITR1 => IWORK(K1+1:K2)
6348 EADD => IWORK(K2+1:K3)
6349 INDEX1 => IWORK(K3+1:K4)
6350 ITRI1 => IWORK(K4+1:K5)
6351 XEP => IWORK(K5+1:K6)
6353 ALLOCATE(XNUM(NUMELTG) ,STAT=stat)
6357 CALL CDK6INX(IXTG ,IXTG1 ,EANIT )
6361 1 IXTG ,PM ,GEO ,INUM ,BID13 ,
6362 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,XNUM ,
6363 3 IPARTG ,ND ,THKEC ,IGRSURF ,IGRSH3N ,
6364 4 CEP(OFF),XEP ,IXTG1 ,EANIT ,
6365 5 IGEO ,IPM ,IPART ,SH3TREE ,NOD2ELTG,
6366 6 ITRIOFF ,SH3TRIM ,TAGPRT_SMS,
6367 7 IWORKSH , STACK ,DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)),
6368 8 MULTI_FVM , SH3ANG,DRAPEG,PTSH3N,MAT_ELEM%MAT_PARAM,
6372 1 IXTG ,PM ,GEO ,INUM ,BID13 ,
6373 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,XNUM ,
6374 3 IPARTG ,ND ,THKEC ,IGRSURF ,IGRSH3N ,
6375 4 CEP(OFF),XEP ,IXTG1 ,EANIT ,
6376 5 IGEO ,IPM ,IPART ,SH3TREE ,NOD2ELTG,
6377 6 ITRIOFF ,SH3TRIM ,TAGPRT_SMS,MAT_ELEM%MAT_PARAM,
6378 7 IWORKSH , STACK ,DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)),
6379 8 MULTI_FVM ,SH3ANG,DRAPEG,PTSH3N)
6385 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6386 ALLOCATE(DD_TMP2(IDX-1))
6388 DD_TMP2(I)=DD_TMP(I)
6391 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6393 DD_TMP(I)=DD_TMP2(I)
6400 1 IXTG ,PM ,IPARGTMP ,GEO ,
6401 2 EADD ,ND ,IPARTG ,DD_TMP ,
6402 3 IDX ,INUM ,INDEX1 ,CEP(OFF) ,
6403 4 THKEC ,XNUM ,ITR1 ,IGRSURF ,IGRSH3N ,
6404 5 EANIT ,IGEO ,IPM ,IXTG1 ,
6405 6 IPART ,SH3TREE ,NOD2ELTG ,ITRIOFF ,
6406 7 SH3TRIM ,TAGPRT_SMS,IWORKSH ,STACK ,
6407 8 DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)) ,
6408 9 MAT_ELEM%MAT_PARAM,SH3ANG,DRAPEG,IPRI ,PTSH3N,DAMP_RANGE_PART)
6411 1 IXTG ,PM ,IPARGTMP ,GEO ,
6412 2 EADD ,ND ,IPARTG ,DD_TMP ,
6413 3 IDX ,INUM ,INDEX1 ,CEP(OFF) ,
6414 4 THKEC ,XNUM ,ITR1 ,IGRSURF ,IGRSH3N ,
6415 5 EANIT ,IGEO ,IPM ,IXTG1 ,
6416 6 IPART ,SH3TREE ,NOD2ELTG ,ITRIOFF ,
6417 7 SH3TRIM ,TAGPRT_SMS,IWORKSH ,STACK ,
6418 8 DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)) ,INIVOL,
6419 9 MAT_ELEM%MAT_PARAM,SH3ANG ,DRAPEG,IPRI,PTSH3N)
6423 N=PERMUTATION%TRIANGLE(I)
6424 PERMUTATION%TRIANGLE(NUMELTG+N)=I
6430 CALL APPLYSORT2FVM(T_MONVOL)
6434.NOT.
if ( ALLOCATED(IXSPS) ) ALLOCATE(IXSPS(KVOISPH,NUMSPH),STAT=stat)
6435 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6440 EADD => IWORK(1:NUMSPH+1)
6441 CALL SPGRHEAD(KXSP ,IXSP ,IPARGTMP,PM ,IPART ,
6442 2 IPARTSP ,EADD ,CEPSP ,ND ,IPM ,
6443 3 IGEO ,SPBUF ,SPH2SOL,
6444 4 SOL2SPH ,IRST ,MAT_ELEM%MAT_PARAM,IXSPS)
6449 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6450 ALLOCATE(DD_TMP2(IDX-1))
6452 DD_TMP2(I)=DD_TMP(I)
6455 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6457 DD_TMP(I)=DD_TMP2(I)
6462 CALL SPGRTAILS(KXSP ,IPARGTMP,PM ,IPART ,
6463 2 IPARTSP ,EADD ,ND ,CEPSP,DD_TMP ,
6464 3 IDX ,IXSP ,IPM , IGEO ,
6465 4 SPBUF ,SPH2SOL,SOL2SPH ,
6466 5 IRST ,NOD2SP ,IPRI ,MAT_ELEM%MAT_PARAM,
6468 IF (ALLOCATED(IXSPS)) DEALLOCATE(IXSPS)
6479 !warning: please also update any index change
6480 ! for MODIF option (MODIF_SPMD.F)
6483 ITR1 => IWORK(K1+1:K2)
6484 EADD => IWORK(K2+1:K3)
6485 INDEX1 => IWORK(K3+1:K4)
6486 ITRI1 => IWORK(K4+1:K5)
6487 XEP => IWORK(K5+1:K6)
6490 1 KXX, GEO, INUM, ITR1,
6491 2 EADD, INDEX1, ITRI1, IPARTX,
6493 4 CEP(OFF), XEP,IPM)
6498 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6499 ALLOCATE(DD_TMP2(IDX-1))
6501 DD_TMP2(I)=DD_TMP(I)
6504 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6506 DD_TMP(I)=DD_TMP2(I)
6512 1 KXX ,IPARGTMP ,GEO ,EADD ,
6513 2 ND ,DD_TMP ,IDX ,LB_MAX ,INUM ,
6514 3 INDEX1 ,CEP(OFF) ,IPARTX ,ITR1 ,IGRSURF ,
6535 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
6536 3 IXR ,IXTG ,IXS10 ,IXS20 ,
6537 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
6538 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
6539 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
6540 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
6544 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6545 IF(NUMELIG3D>0) THEN
6547 K1=(NIXIG3D+1)*NUMELIG3D
6556 ITR1 => IWORK(K1+1:K2)
6557 EADD => IWORK(K2+1:K3)
6558 INDEX1 => IWORK(K3+1:K4)
6559 ITRI1 => IWORK(K4+1:K5)
6560 XEP => IWORK(K5+1:K6)
6563 1 KXIG3D ,GEO ,INUM ,ITR1 ,EADD ,
6564 2 INDEX1 ,ITRI1 ,IPARTIG3D ,ND ,IGRSURF ,
6565 3 CEP(OFF) ,XEP ,IGEO ,
6566 4 IPM ,PM ,NIGE ,KNOTLOCEL)
6571 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6572 ALLOCATE(DD_TMP2(IDX-1))
6574 DD_TMP2(I)=DD_TMP(I)
6577 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6579 DD_TMP(I)=DD_TMP2(I)
6585 1 KXIG3D ,IPARGTMP ,GEO ,EADD ,ND ,
6586 2 DD_TMP ,IDX ,LB_MAX ,INUM ,INDEX1 ,
6587 3 CEP(OFF) ,IPARTIG3D ,ITR1 ,IGRSURF ,
6589 5 PM ,NIGE ,KNOTLOCEL, MAT_ELEM%MAT_PARAM)
6590 OFF = OFF + NUMELIG3D
6598 ERR_MSG='reference metrics
'
6599 ERR_CATEGORY='reference metrics
'
6600 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6606.OR..OR.
IF(NXREF > 0 NEREF > 0 IREFSTA > 0) THEN
6607 ALLOCATE(XREFC(4,3,NUMELC))
6608 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6609 . MSGTYPE=MSGERROR,C1='xrefc
')
6610 ALLOCATE(XREFTG(3,3,NUMELTG))
6611 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6612 . MSGTYPE=MSGERROR,C1='xreftg
')
6613 ALLOCATE(XREFS(8,3,NUMELS8))
6614 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6615 . MSGTYPE=MSGERROR,C1='xrefs
')
6616 ALLOCATE(TAGXREF(NUMNOD))
6617 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6618 . MSGTYPE=MSGERROR,C1='tagxref
')
6619 ALLOCATE(TAGREFSTA(NUMNOD))
6620 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6621 . MSGTYPE=MSGERROR,C1='tagrefsta
')
6623 ALLOCATE(XREFC(1,1,1))
6624 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6625 . MSGTYPE=MSGERROR,C1='xrefc
')
6626 ALLOCATE(XREFTG(1,1,1))
6627 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6628 . MSGTYPE=MSGERROR,C1='xreftg
')
6629 ALLOCATE(XREFS(1,1,1))
6630 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6631 . MSGTYPE=MSGERROR,C1='xrefs
')
6632 ALLOCATE(TAGXREF(1))
6633 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6634 . MSGTYPE=MSGERROR,C1='tagxref
')
6635 ALLOCATE(TAGREFSTA(1))
6636 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6637 . MSGTYPE=MSGERROR,C1='tagrefsta
')
6645 WRITE(ISTDO,'(a)
')' .. reference state(xref)
'
6646 CALL HM_READ_XREF(ITABM1 ,IPART ,IPARTC ,IPARTG ,IPARTS ,
6647 . UNITAB ,IXC ,IXTG ,IXS ,X ,
6648 . XREFC ,XREFTG ,XREFS ,RTRANS ,LSUBMODEL ,
6649 . TAGXREF ,IDDLEVEL ,EANI ,IPM ,IGEO )
6651 IF(IREFSTA > 0) THEN
6652 WRITE(ISTDO,'(a)
')' .. reference state(refsta)
'
6653 CALL LECREFSTA(ITABM1 ,UNITAB ,IXC ,IXTG ,IXS ,
6654 . XYZREF ,XREFC ,XREFTG ,XREFS ,TAGXREF ,
6655 . IDDLEVEL,TAGREFSTA )
6657.AND..OR.
IF(IDDLEVEL==0 ((NINTER > 0)(ISMS == 1))) THEN
6660 IF(IPID /= 0) CLOSE(IIN6)
6667 WRITE(ISTDO,'(a)
')' .. reference state(eref)
'
6668 CALL HM_READ_EREF(ITABM1 ,IPART ,IPARTC ,IPARTG ,IPARTS ,
6669 . IXC ,IXTG ,IXS ,X ,XREFC ,
6670 . XREFTG ,XREFS ,LSUBMODEL,IDDLEVEL,ITAB ,
6671 . TAGXREF ,TAGREFSTA )
6673.OR..AND.
IF(IDDLEVEL ==1 ((NINTER == 0)(ISMS == 0))) NXREF = 1
6676 !check if a law 151 is associated to any PART
6677 MULTI_FVM%IS_ASSOCIATED_TO_A_PART = .FALSE.
6679 MLW = IPARGTMP(1,NG)
6681 MULTI_FVM%IS_ASSOCIATED_TO_A_PART = .TRUE.
6686 !check if all part are using law 151
6687 MULTI_FVM%ARE_ALL_PARTS_151 = .TRUE.
6690 MLW = IPARGTMP(1,NG)
6691 IS_EULER = IPARGTMP(11,NG)
6692 IF(IS_EULER == 1 ) NB_EULER_GROUPS=NB_EULER_GROUPS+1
6693.AND.
IF(MLW /= 151 IS_EULER == 1)THEN
6694 MULTI_FVM%ARE_ALL_PARTS_151 = .FALSE.
6698 IF(NB_EULER_GROUPS == 0)MULTI_FVM%ARE_ALL_PARTS_151 = .FALSE.
6700 !copy IPARG <- IPARGTMP, and Deallocate IPARGTMP
6701 SIPARG = NPARG*NGROUP
6702 IF(ALLOCATED(IPARG))DEALLOCATE(IPARG)
6703 ALLOCATE(IPARG(SIPARG) ,STAT=stat)
6706 IPARG((I-1)*NPARG + J) = IPARGTMP(J,I)
6709 DEALLOCATE(IPARGTMP)
6714 IPARG(NPARG*(N-1)+52)=1
6720 !---------------------------------------------------
6721 ! element renumbering after domdec for /fail/fractal
6722 !---------------------------------------------------
6723 call fractal_elem_renum(fail_fractal,numelc,numeltg)
6725 !---------------------------------------------------
6726 ! element renumbering after domdec for /fail/alter + brokmann
6727 !---------------------------------------------------
6728 if (iddlevel==1) call brokmann_elem_renum(fail_brokmann,numelc,numeltg)
6732 IF(ALLOCATED(GROUP_PARAM_TAB)) DEALLOCATE(GROUP_PARAM_TAB)
6733 ALLOCATE(GROUP_PARAM_TAB(NGROUP) ,STAT=stat)
6735 CALL SET_ELGROUP_PARAM(GROUP_PARAM_TAB ,IPARG ,NGROUP ,N2D ,
6736 . IPM ,IGEO ,PM ,GEO ,BUFMAT )
6743 IF(ALLOCATED(ITAGND)) DEALLOCATE(ITAGND)
6744 ALLOCATE(ITAGND(NUMNOD),STAT=stat)
6746 CALL DIM_S10EDG(NS10E, IXS10 ,IPARG,ITAGND)
6748 IF(ALLOCATED(ICNDS10)) DEALLOCATE(ICNDS10)
6749 ALLOCATE(ICNDS10(3*NS10E),STAT=stat)
6750 ICNDS10(1:3*NS10E)=0
6752 CALL IND_S10EDG(ICNDS10, IXS, IXS10 ,IPARG,ITAGND)
6753 IF(IPARI0/=0) CALL REORD_ICND(ICNDS10, ITAGND)
6754 CALL S10EDG_RLINK(NLINK, NUMLINK,NNLINK,LNLINK,
6755 . ITAGND,ICNDS10,ITAB,IPRI,NUMNOD,NS10E)
6758 IF(ALLOCATED(ITAGND)) DEALLOCATE(ITAGND)
6759 ALLOCATE(ITAGND(0),STAT=stat)
6766 ERR_MSG='domain decomposition arrays
'
6767 ERR_CATEGORY='domain decomposition
'
6768 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6769 SDD_IAD = (NSPMD+1)*NSPGROUP
6770 ALLOCATE(DD_IAD(SDD_IAD) ,STAT=stat)
6773 1 IPARG ,IXS ,IXQ ,IXC ,IXT ,
6774 2 IXP ,IXR ,IXTG ,DD_IAD ,
6775 3 X ,DD_TMP ,IXS10 ,IXS20 ,
6776 4 IXS16 ,KXX ,IXX ,KXSP ,IXSP ,
6784 ERR_MSG='multidomains
'
6785 ERR_CATEGORY='multidomains
'
6786.AND..AND.
IF((NSUBDOM>0)(IDDOM==0)(FLG_R2R_ERR==0)) THEN
6787 WRITE(ISTDO,'(a)
')' .. multidomains domdec synchronization
'
6788 CALL R2R_DOMDEC(IEXLNK,IGRNOD,FRONTB_R2R,DT_R2R,0)
6793 ERR_MSG='element buffer allocation
'
6794 ERR_CATEGORY='internal
'
6795 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6797 ALLOCATE(ELBUF(SELBUF) ,STAT=stat)
6798 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6807 ERR_CATEGORY='gravity
'
6808 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6810 CALL HM_PREREAD_GRAV(NUMGRAV ,IGRNOD , LSUBMODEL)
6814 ALLOCATE(IGRV(SIGRV) ,STAT=stat)
6815 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6818 ALLOCATE(LGRAV(SLGRAV) ,STAT=stat)
6819 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6824 CALL HM_READ_GRAV(IGRV ,LGRAV ,GRAV ,ITAB ,ITABM1 ,
6825 . IGRNOD ,NPC ,SENSORS ,UNITAB ,ISKWN ,
6826 . ITAGND ,LSUBMODEL)
6832 ERR_CATEGORY='gravity
'
6833 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6834 IF(NINIGRAV > 0) SINIGRAV = NINIGRAV
6835 IF(IDDLEVEL == 0) THEN
6836 ALLOCATE(INIGRV(04,SINIGRAV) ,STAT=stat)
6837 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6840 ALLOCATE(LINIGRAV(11,SINIGRAV) ,STAT=stat)
6841 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6845 IF(NINIGRAV > 0) THEN
6846 IF(IDDLEVEL == 0) THEN
6848 WRITE(ISTDO,'(a)
') ' .. initial gravity loading
'
6849 CALL HM_READ_INIGRAV(IGRV ,LGRAV ,GRAV ,ITAB ,ITABM1 ,
6850 . IGRPART ,NPC ,UNITAB ,ISKWN ,
6851 . ITAGND ,IGRSURF ,TF ,BUFSF ,LSUBMODEL)
6858 ERR_MSG = 'inimap1d
'
6859 ERR_CATEGORY= 'initialization
'
6860 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6862.AND.
IF(IDDLEVEL==0 NINIMAP1D+NINIMAP2D>0)WRITE(ISTDO,'(a)
')TITRE(54)
6865 ALLOCATE(INIMAP1D(NINIMAP1D))
6866 IF(NINIMAP1D > 0) THEN
6867 CALL HM_READ_INIMAP1D(INIMAP1D ,NPC , ITABM1, X, IGRBRIC,
6868 . IGRQUAD ,IGRSH3N, MULTI_FVM, UNITAB, LSUBMODEL)
6869.NOT.
IF( MULTI_FVM%IS_USED) THEN
6870 DO KK = 1, NINIMAP1D
6871 ALLOCATE(INIMAP1D(KK)%TAGNODE(NUMNOD))
6872 INIMAP1D(KK)%TAGNODE(1:NUMNOD) = 0
6881 ERR_MSG = 'inimap2d
'
6882 ERR_CATEGORY= 'initialization
'
6883 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6885 ALLOCATE(INIMAP2D(NINIMAP2D))
6886 IF(NINIMAP2D > 0) THEN
6887 CALL HM_READ_INIMAP2D(INIMAP2D, FUNC2D, ITABM1, X, IGRBRIC,
6888 . IGRQUAD , IGRSH3N, UNITAB, LSUBMODEL)
6889.NOT.
IF( MULTI_FVM%IS_USED) THEN
6890 DO KK = 1, NINIMAP2D
6891 ALLOCATE(INIMAP2D(KK)%TAGNODE(NUMNOD))
6892 INIMAP2D(KK)%TAGNODE(1:NUMNOD) = 0
6902 ERR_MSG='load fields
'
6903 ERR_CATEGORY='load fields
'
6904 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6905 IF(IDDLEVEL == 0)THEN
6908 ALLOCATE(ICFIELD(SICFIELD) ,STAT=stat)
6909 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='icfield')
6910 ALLOCATE(LCFIELD(SLCFIELD) ,STAT=stat)
6911 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='lcfield')
6912 ALLOCATE(CFIELD(SCFIELD) ,STAT=stat)
6913 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='cfield
')
6915 IF(ALLOCATED(ICFIELD)) ICFIELD(:) = 0
6916 IF(ALLOCATED(LCFIELD)) LCFIELD(:) = 0
6917 IF(ALLOCATED(CFIELD )) CFIELD(:) = ZERO
6918!READING CARDS & STORING DATA
6920 CALL HM_READ_LOAD_CENTRI(ICFIELD ,LCFIELD ,CFIELD ,ITAB ,ITABM1 ,
6921 . IGRNOD ,NPC ,SENSORS ,UNITAB ,IFRAME ,
6926 ALLOCATE(ILOADP(SILOADP) ,STAT=stat)
6927 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='iloadp')
6928 ALLOCATE(LLOADP(SLLOADP) ,STAT=stat)
6929 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='lloadp')
6930 ALLOCATE(LOADP(SLOADP) ,STAT=stat)
6931 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='loadp
')
6932 ALLOCATE(INTERLOADP(NINTLOADP) ,STAT=stat)
6933 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='interloadp')
6934 ALLOCATE(INTGAPLOADP(NINTLOADP) ,STAT=stat)
6935 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='intgaploadp
')
6938 IF(NINTLOADP > 0) THEN
6939 S_LOADPINTER = NINTER*NLOADP_HYD
6940 ALLOCATE(KLOADPINTER(NINTER + 1) ,STAT=stat)
6941 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='kloadpinter')
6942 ALLOCATE(LOADPINTER(S_LOADPINTER) ,STAT=stat)
6943 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='loadpinter')
6944 ALLOCATE(DGAPINT(NINTER) ,STAT=stat)
6945 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='dgapint
')
6946 ALLOCATE(DGAPLOADINT(S_LOADPINTER) ,STAT=stat)
6947 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='dgaploadint
')
6949 ALLOCATE(KLOADPINTER(0))
6950 ALLOCATE(LOADPINTER(0))
6951 ALLOCATE(DGAPINT(0))
6952 ALLOCATE(DGAPLOADINT(0))
6956 IF(ALLOCATED(ILOADP )) ILOADP(:) = 0
6957 IF(ALLOCATED(LLOADP )) LLOADP(:) = 0
6958 IF(ALLOCATED(LOADP )) LOADP(:) = ZERO
6959 IF(ALLOCATED(INTERLOADP )) INTERLOADP(:) = 0
6960 IF(ALLOCATED(KLOADPINTER )) KLOADPINTER(:) = 0
6961 IF(ALLOCATED(LOADPINTER )) LOADPINTER(:) = 0
6962 IF(ALLOCATED( INTGAPLOADP )) INTGAPLOADP(:)=ZERO
6963 IF(ALLOCATED( DGAPINT )) DGAPINT(:)=ZERO
6964 IF(ALLOCATED( DGAPLOADINT )) DGAPLOADINT(:)=ZERO
6965!READING CARDS & STORING DATA
6970 CALL HM_READ_PFLUID(NUMLOADP ,ILOADP ,LLOADP ,LOADP ,NPC ,
6971 . SENSORS ,IGRSURF ,UNITAB ,IFRAME ,LSUBMODEL)
6973 IF(PBLAST%NLOADP_B/=0)THEN
6974 CALL HM_READ_PBLAST( PBLAST,
6975 . ITAB ,ITABM1 ,UNITAB ,IGRSURF, NUMLOADP,
6976 . ILOADP ,LLOADP ,LOADP ,X , BUFSF ,
6979 IF(NLOADP_HYD/=0)THEN
6980 CALL HM_READ_LOAD_PRESSURE(
6981 . NUMLOADP ,ILOADP ,LLOADP ,INTERLOADP ,LOADP ,
6982 . KLOADPINTER,LOADPINTER ,NPC ,SENSORS ,IGRSURF ,
6983 . UNITAB ,ISKWN ,LSUBMODEL ,DGAPINT ,INTGAPLOADP,
6984 . DGAPLOADINT,S_LOADPINTER,PBLAST)
6988 DEALLOCATE( INTERLOADP,INTGAPLOADP )
6996 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6997 CALL HM_PREREAD_RBE2(SIRBE2,SLRBE2,IGRNOD,LSUBMODEL)
6999 ALLOCATE(IRBE2(SIRBE2) ,STAT=stat)
7000 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7005 ALLOCATE(LRBE2(SLRBE2) ,STAT=stat)
7006 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7014 . IRBE2 ,LRBE2 ,ITAB ,ITABM1 ,IGRNOD,
7015 . ISKWN ,D ,IDDLEVEL ,NOM_OPT(LNOPT1*INOM_OPT(13)+1),ITAGND,
7016 . ICNDS10 ,LSUBMODEL)
7020 CALL C_NEW_HASH(GRNOD_UID,NGRNOD)
7022 CALL C_HASH_INSERT(GRNOD_UID,IGRNOD(I)%ID,I)
7031 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7032 CALL HM_PREREAD_RBE3(SIRBE3,SLRBE3,IGRNOD,GRNOD_UID,LSUBMODEL)
7035 SFRBE3 = (3+1)*SLRBE3
7037 ALLOCATE(IRBE3(SIRBE3) ,STAT=stat)
7038 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7041 ALLOCATE(LRBE3(SLRBE3), FRBE3(SFRBE3) ,STAT=stat)
7042 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7050 CALL HM_READ_RBE3(IRBE3 ,LRBE3 ,FRBE3 ,ITAB ,ITABM1 ,
7051 . IGRNOD ,ISKWN ,LXINTD ,D ,IDDLEVEL,
7052 . NOM_OPT(LNOPT1*INOM_OPT(14)+1),ITAGND ,
7053 . GRNOD_UID,UNITAB,LSUBMODEL)
7056 CALL C_DELETE_HASH(GRNOD_UID)
7063 DYNAIN_DATA%DYNAIN_CHECK = 0
7064 CALL CHECK_DYNAIN(IPART,IPARTC,IPARTG,IXC,IXTG,DYNAIN_DATA%DYNAIN_CHECK)
7069 CALL INI_H3DTMAX_ENGINE(IPARG,IPART,IPARTS,IPARTC,IPARTG,IDDLEVEL)
7074 IF(NUMELC/=0) CALL CHECK_QEPH_STRA(ISTR_24)
7078 ERR_MSG='elements deactivation
'
7079 ERR_CATEGORY='elements deactivation
'
7080 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7081 SIACTIV = LACTIV*NACTIV
7083 ALLOCATE(IACTIV(SIACTIV), FACTIV(LRACTIV*NACTIV) ,STAT=stat)
7084 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7085 . MSGTYPE=MSGERROR, C1='iactiv')
7088 IF(NACTIV > 0) CALL HM_READ_ACTIV(IACTIV ,FACTIV ,SENSORS,IGRBRIC,
7089 . IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,IGRBEAM,
7090 . IGRSPRING,LSUBMODEL,UNITAB)
7092 SIBMPC = NUMMPC + LMPC*3
7094 ALLOCATE(IBMPC(SIBMPC) ,STAT=stat)
7095 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7101 IBMPC2 => IBMPC(NUMMPC+1:NUMMPC+LMPC)
7102 IBMPC3 => IBMPC(NUMMPC+LMPC+1:NUMMPC+LMPC*2)
7103 IBMPC4 => IBMPC(NUMMPC+LMPC*2+1:SIBMPC)
7112 ALLOCATE(KINET(SKINET) ,STAT=stat)
7113 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7119 SIPARI = NPARI*NINTER
7121 ALLOCATE(IPARI(SIPARI) ,STAT=stat)
7122 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7131 ERR_MSG='solid elements faces
'
7132 ERR_CATEGORY='solid elements faces
'
7133 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7134 ALLOCATE(FASTAG(NUMELS) ,STAT=stat)
7135 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7138 CALL ANI_FASOLFR1(IXS,IXC,IXTG,FASTAG,ISOLNOD)
7139 SFASOLFR = 2*NFASOLFR
7141 ALLOCATE(FASOLFR(SFASOLFR),STAT=stat)
7142 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7146 CALL ANI_FASOLFR2(FASTAG,FASOLFR,ISOLNOD)
7152 ERR_MSG='quad elements segs
'
7153 ERR_CATEGORY='quad elements segs
'
7154 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7155 ALLOCATE(SEGTAG(4*NUMELQ) ,STAT=stat)
7156 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7159 SEGTAG (1:4*NUMELQ) = 0
7160 CALL ANI_SEGQUADFR1(IXQ ,SEGTAG ,KNOD2ELQ ,NOD2ELQ ,X ,NSEGQUADFR)
7161 SSEGQUADFR = 2*NSEGQUADFR
7163 ALLOCATE(SEGQUADFR(SSEGQUADFR),STAT=stat)
7164 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7168 CALL ANI_SEGQUADFR2(SEGTAG,SEGQUADFR)
7176 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7177 IF(NUMMPC > 0) CALL HM_READ_MPC (
7178 1 RBMPC ,IBMPC ,IBMPC2 ,IBMPC3 ,IBMPC4 ,
7179 2 ISKWN ,ITAB ,ITABM1 ,LAG_NCF ,LAG_NKF ,
7180 3 LAG_NHF ,D ,IKINE1LAG,
7181 4 NOM_OPT(LNOPT1*INOM_OPT(17)+1),ITAGND,
7187 IF(ALLOCATED(TAGPRT_FRIC)) DEALLOCATE(TAGPRT_FRIC)
7188 ALLOCATE(TAGPRT_FRIC(NPART),STAT=stat)
7189 TAGPRT_FRIC(1:NPART) = 0
7196 IF(NINTERFRIC > 0) THEN
7198 IF(IDDLEVEL == 0) ALLOCATE(INTBUF_FRIC_TAB(NINTERFRIC), STAT=Stat)
7201 ALLOCATE(TABCOUPLEPARTS_FRIC_TMP(1),STAT=stat)
7202 ALLOCATE(TABCOEF_FRIC_TMP(1),STAT=stat)
7203 ALLOCATE(IFRICORTH_TMP(1),STAT=stat)
7204 ALLOCATE(LENGRPF(NPART),STAT=stat)
7205 LENGRPF(1:NPART) = 0
7209 LENG = MAX (LENG,IGRPART(N)%NENTITY)
7218 CALL HM_READ_FRICTION_MODELS(
7219 1 NOM_OPT(LNOPT1*INOM_OPT(29)+1),UNITAB,IGRPART ,IPART ,TAGPRT_FRIC,
7220 2 TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB,NSETFRICTOT ,
7221 3 FLAGF ,COEFSLEN , IORTHFRICMAX ,IFRICORTH_TMP ,NGRPF ,
7222 4 LENGRPF ,LENG , NSETMAX ,LSUBMODEL )
7224 DEALLOCATE(TABCOUPLEPARTS_FRIC_TMP)
7225 DEALLOCATE(TABCOEF_FRIC_TMP)
7226 DEALLOCATE(IFRICORTH_TMP)
7229 ALLOCATE(TABCOUPLEPARTS_FRIC_TMP(2*NINTERFRIC*NSETMAX),STAT=stat)
7230 COEFSLEN = NINTERFRIC*(2*NSETMAX+1)
7231 ALLOCATE(TABCOEF_FRIC_TMP(8*COEFSLEN),STAT=stat)
7232 TABCOUPLEPARTS_FRIC_TMP(1:2*NINTERFRIC*NSETMAX) = 0
7233 TABCOEF_FRIC_TMP(1:8*COEFSLEN) = ZERO
7235 ALLOCATE(IFRICORTH_TMP(NINTERFRIC*NSETMAX),STAT=stat)
7236 IFRICORTH_TMP(1:NINTERFRIC*NSETMAX) = 0
7243 CALL HM_READ_FRICTION_MODELS(
7244 1 NOM_OPT(LNOPT1*INOM_OPT(29)+1),UNITAB,IGRPART ,IPART ,TAGPRT_FRIC,
7245 2 TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB,NSETFRICTOT ,
7246 3 FLAGF ,COEFSLEN , IORTHFRICMAX ,IFRICORTH_TMP ,NGRPF ,
7247 4 LENGRPF ,LENG , NSETMAX , LSUBMODEL )
7251 COEFSLEN = NINTERFRIC*(2*NSETMAX+1)
7252 ALLOCATE(NSETINIT(NINTERFRIC),STAT=stat)
7253 ALLOCATE(TABPARTS_FRIC_TMP(2*NINTERFRIC*NSETMAX),STAT=stat)
7254 NSETINIT(1:NINTERFRIC) = 0
7255 TABPARTS_FRIC_TMP (1:2*NINTERFRIC*NSETMAX) = 0
7258 . TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB ,
7259 . TABPARTS_FRIC_TMP,NSETFRICTOT,NSETINIT,IORTHFRICMAX,IFRICORTH_TMP,
7264 IF(IDDLEVEL == 0) CALL INTBUF_FRIC_INI_STARTER(INTBUF_FRIC_TAB )
7267 CALL INTBUF_FRIC_COPY(
7268 . TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP,TABPARTS_FRIC_TMP ,
7269 . NSETINIT ,IFRICORTH_TMP , INTBUF_FRIC_TAB )
7271 DEALLOCATE(TABCOUPLEPARTS_FRIC_TMP)
7272 DEALLOCATE(TABCOEF_FRIC_TMP)
7273 DEALLOCATE(TABPARTS_FRIC_TMP )
7275 DEALLOCATE( NSETINIT )
7276 DEALLOCATE(IFRICORTH_TMP)
7277 DEALLOCATE(LENGRPF )
7281 IF(IORTHFRICMAX > 0) THEN
7286.NOT.
IF(ALLOCATED(PFRICORTH))ALLOCATE(PFRICORTH(NPART),STAT=stat)
7287.NOT.
IF(ALLOCATED(IREPFORTH))ALLOCATE(IREPFORTH(1),STAT=stat)
7288.NOT.
IF(ALLOCATED(VFORTH))ALLOCATE(VFORTH(1),STAT=stat)
7289.NOT.
IF(ALLOCATED(PHIFORTH))ALLOCATE(PHIFORTH(1),STAT=stat)
7291 PFRICORTH(1:NPART) = 0
7293 CALL HM_READ_FRICTION_ORIENTATIONS (INTBUF_FRIC_TAB ,
7294 1 NPFRICORTH ,IGRPART ,IPART ,PFRICORTH ,
7295 2 IREPFORTH ,ISKWN ,PHIFORTH ,VFORTH ,SKEW ,
7296 3 FLAGF ,TAGPRT_FRIC ,RTRANS ,LSUBMODEL ,UNITAB )
7298 DEALLOCATE(IREPFORTH,VFORTH,PHIFORTH)
7300 ALLOCATE(IREPFORTH(NPFRICORTH),STAT=stat)
7301 ALLOCATE(VFORTH(3*NPFRICORTH),STAT=stat)
7302 ALLOCATE(PHIFORTH(NPFRICORTH),STAT=stat)
7304 IREPFORTH(1:NPFRICORTH) = 0
7305 VFORTH(1:3*NPFRICORTH) = ZERO
7306 PHIFORTH(1:NPFRICORTH) = ZERO
7309 CALL HM_READ_FRICTION_ORIENTATIONS (INTBUF_FRIC_TAB ,
7310 1 NPFRICORTH ,IGRPART ,IPART ,PFRICORTH ,
7311 2 IREPFORTH ,ISKWN ,PHIFORTH ,VFORTH ,SKEW ,
7312 3 FLAGF ,TAGPRT_FRIC ,RTRANS ,LSUBMODEL ,UNITAB )
7315 ELSEIF(IDDLEVEL == 0) THEN !NINTERFRIC = 0
7316 ALLOCATE(INTBUF_FRIC_TAB(0))
7318.NOT.
IF(ALLOCATED(PFRICORTH))ALLOCATE(PFRICORTH(0))
7319.NOT.
IF(ALLOCATED(IREPFORTH))ALLOCATE(IREPFORTH(1))
7320.NOT.
IF(ALLOCATED(VFORTH)) ALLOCATE(VFORTH(1))
7321.NOT.
IF(ALLOCATED(PHIFORTH)) ALLOCATE(PHIFORTH(1))
7327 CALL ALE_CONNECTIVITY%ALE_CONNECTIVITY_INIT()
7328 IF(ALE_CONNECTIVITY%has_ne_connect) THEN
7329 CALL ALE_CONNECTIVITY%ALE_COMPUTE_CONNECTIVITY(NUMNOD, NUMELQ, NUMELTG, NUMELS,
7330 . NIXQ, NIXTG, NIXS,
7333 CALL ALE_CONNECTIVITY%ALE_COMPUTE_EE_CONNECTIVITY(PM,IGEO,
7334 . NPROPGI,NUMGEO, NPROPM, NUMMAT , NUMNOD, NUMELQ, NUMELTG, NUMELS, N2D,
7335 . IALE , IEULER, GLOB_THERM%ITHERM, IALELAG,DETONATORS%IS_SHADOWING_REQUIRED,
7336 . NIXQ , NIXTG , NIXS ,
7337 . IXQ , IXTG , IXS )
7339 IF(NSUBDOM > 0) THEN
7341 IF(ALE_EULER == 0) THEN
7353 CALL CHK_SHELL_OFFSET(
7354 . NGROUP, NPARG, IPARG, NPROPG,
7355 . NUMGEO, GEO, DEFAULTS%SHELL%IOFFSET)
7356 IF (DEFAULTS%SHELL%IOFFSET>0) THEN
7357 IF (IDDLEVEL == 0) THEN
7359 IF (DEFAULTS%SHELL%IOFFSET==1) THEN
7360 ALLOCATE(ITAGOSET(NUMELC+NUMELTG), STAT=Stat)
7362 ALLOCATE(XYZ(3*NUMNOD), STAT=Stat)
7363 XYZ(1:3*NUMNOD) = X(1:3*NUMNOD)
7366 ALLOCATE(ITAGOSET(0), STAT=Stat)
7370 . NGROUP, NPARG, IPARG, NPROPG,
7371 . NUMGEO, GEO, NUMELC, NIXC,
7372 . IXC, NUMELTG, NIXTG, IXTG,
7373 . NUMNOD, X_C, THKE, ITAGOSET,
7376 ELSEIF (IDDLEVEL == 0) THEN
7384 ERR_MSG='interfaces
'
7385 ERR_CATEGORY='interfaces
'
7386 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7389 INTERFACES%PARAMETERS%ISTIF_DT = 0
7392 INTERFACES%PARAMETERS%INT25_EROSION_SOLID = 0
7394.AND.
IF(NINTER == 0NINTERFRIC > 0 )THEN
7395 CALL ANCMSG(MSGID=1593,
7396 . MSGTYPE=MSGWARNING,
7397 . ANMODE=ANINFO_BLIND_1)
7401 IF(IDDLEVEL == 0) THEN
7402 ALLOCATE(XFILTR(NINTER) ,STAT=stat)
7403 ALLOCATE(STFAC(NINTER) ,STAT=stat)
7404 ALLOCATE(FRIC_P(10*NINTER) ,STAT=stat)
7405 ALLOCATE(I2RUPT(6*NINTER) ,STAT=stat)
7406 ALLOCATE(AREASL(NINTER) ,STAT=stat)
7407 ALLOCATE(FRIGAP(NPARIR*NINTER),STAT=stat)
7408 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7419 IF(IDDLEVEL == 0) CALL STARTIME(10,1)
7420 IF(IDDLEVEL == 1) CALL STARTIME(11,1)
7422 WRITE(ISTDO,'(a)
')TITRE(38)
7424 CALL HM_READ_INTSUB(IGRNOD ,IGRSURF,NOM_OPT(LNOPT1*INOM_OPT(3)+1),IGRSLIN,LSUBMODEL)
7430 NSN_MULTI_CONNEC = 0
7431 ALLOCATE(T2_NB_CONNEC(NUMNOD))
7432 T2_NB_CONNEC(1:NUMNOD) = 0
7437 CALL HM_READ_INTERFACES(
7438 1 IPARI ,FRIGAP ,ITAB ,ITABM1 ,
7439 2 IGRNOD ,IGRSURF ,IGRSLIN ,IGRBRIC ,IGRSH3N ,
7440 3 IGRTRUSS ,NPC ,ISKWN ,XFILTR ,STFAC ,
7441 4 FRIC_P ,I2RUPT ,AREASL ,UNITAB ,NOM_OPT(LNOPT1*INOM_OPT(3)+1) ,
7442 5 DEF_INTER ,NPC1 ,SENSORS ,MULTI_FVM ,NOM_OPT(LNOPT1*INOM_OPT(29)+1),
7443 6 INTBUF_FRIC_TAB ,LSUBMODEL,TF ,NPTS ,NPARI ,
7444 7 KLOADPINTER ,DGAPINT ,INTERFACES ,SITAB ,NPARIR ,
7445 8 SITABM1 ,SISKWN ,LISKN ,SNPC ,SNPC1 ,
7446 9 GLOB_THERM%ITHERM_FE,GLOB_THERM%INTHEAT)
7448.NOT.
IF( ALLOCATED(ALE_CONNECTIVITY%NALE)) ALLOCATE(ALE_CONNECTIVITY%NALE(0))
7451 ALLOCATE(LIST_NIN25(NINTER))
7452 LIST_NIN25(1:NINTER) = 0
7454.AND.
IF(NINTER25 >0NUMELS > 0) THEN
7455 ALLOCATE(FLAG_ELEM_INTER25(NINTER25,NUMELS))
7456 FLAG_ELEM_INTER25 (1:NINTER25,1:NUMELS) = 0
7458 ALLOCATE(FLAG_ELEM_INTER25(0,0))
7461 CALL LECINT (IPARI ,NINTER ,IPM ,BUFMAT ,
7462 . NMNT ,ITAB ,ITABM1 ,GEO ,
7463 . PM ,X ,IGRNOD ,IGRSURF ,IGRSLIN ,
7464 . NPC ,PROBINT ,LAG_NCF ,
7465 . LAG_NKF ,LAG_NCL ,LAG_NKL ,LAG_NHF ,MAXRTM ,
7466 . ISKWN ,MAXRTMS ,IGEO ,
7467 . XFILTR ,STFAC ,FRIC_P ,FRIGAP ,
7468 . I2RUPT ,AREASL ,UNITAB ,IXS ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),
7469 . ITAG ,IXC ,IXTG ,KNOD2ELC ,KNOD2ELTG,
7470 . NOD2ELC ,NOD2ELTG ,KNOD2ELS ,NOD2ELS ,IXS10 ,
7471 . IXS16 ,IXS20 ,DEF_INTER ,MAXNSNE ,
7472 . NPC1 ,MULTI_FVM ,NOM_OPT(LNOPT1*INOM_OPT(29)+1),INTBUF_FRIC_TAB,
7473 . IGRBRIC ,IGRSH3N ,IGRTRUSS ,MAXRTM_T2 ,NSN_MULTI_CONNEC,
7474 . T2_NB_CONNEC,IDDLEVEL ,ALE_CONNECTIVITY%NALE ,INTERFACES ,SNPC1 ,
7475 . FLAG_ELEM_INTER25 ,LIST_NIN25)
7477 !need to allocate only once at first passage in lectur
7479 !PROC argument is used only for call in ddsplit
7482 IF(IDDLEVEL == 0) THEN
7483 !--------------------------------------------!
7484 ! NEW INTERFACE BUFFER STRUCTURE ALLOCATION
7485 !--------------------------------------------!
7486 ALLOCATE(INTBUF_TAB(NINTER), STAT=Stat)
7487 !--------------------------------------------!
7489 !--------------------------------------------!
7490 !NEW INTERFACE BUFFER STRUCTURE INITIALIZATION
7491 !--------------------------------------------!
7492 CALL INTBUF_INI_STARTER(INTBUF_TAB, IPARI, NUMNOD,
7493 . I11FLAG, FLAG_ALLOCATE, PROC_BID ,INTBUF_FRIC_TAB)
7494 !--------------------------------------------!
7496 CALL INT8_INI(INTBUF_TAB,IPARI,NBT8)
7497 ALLOCATE(INTERT8(NSPMD,NBT8))
7500 ALLOCATE(INTERT8(P,I)%BUFFER(NSPMD))
7502 INTERT8(P,I)%BUFFER(J)%NBMAIN = -1
7503 INTERT8(P,I)%BUFFER(J)%NBSECND_TOT = 0
7507 ! -------------------
7508 ! allocation of arrays for the interface 18 with law 151
7509 CALL INT18_LAW151_ALLOC(NPARI,NINTER,NUMNOD,NUMELS,MULTI_FVM,IPARI)
7510 ! -------------------
7515 IF(NINTSTAMP/=0)THEN
7516 IF(IDDLEVEL == 0) THEN
7517 ALLOCATE(INTSTAMP(NINTSTAMP) ,STAT=stat)
7518 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7521 CALL INTSTAMP_ZERO(INTSTAMP)
7524 IF(IDDLEVEL == 0) THEN
7525 ALLOCATE(INTSTAMP(0))
7529 CALL LECINS(IPARI ,ITAB ,PM ,IPM ,BUFMAT ,
7530 . IGRNOD ,IGRSURF ,IGRSLIN ,XFILTR ,STFAC ,
7531 . FRIC_P ,FRIGAP ,I2RUPT ,AREASL ,LIXINT ,
7532 . X ,NINTER ,IXS ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),
7533 . IXC ,IXTG ,KNOD2ELC ,KNOD2ELTG ,NOD2ELC,
7534 . NOD2ELTG ,INTBUF_TAB,KNOD2ELS ,NOD2ELS ,IXS10 ,
7535 . IXS16 ,IXS20 ,NIGE ,RIGE ,XIGE ,
7536 . VIGE ,IGRBRIC ,MULTI_FVM,ALE_CONNECTIVITY%NALE ,IGEO ,
7537 . INTERFACES,S_NOD2ELS,S_NOD2ELTG,FLAG_ELEM_INTER25 ,LIST_NIN25)
7551 . ITAB ,IGRNOD ,IGRSURF ,
7552 . IPARI ,MAXRTM,NOM_OPT(LNOPT1*INOM_OPT(3)+1),
7553 . INTBUF_TAB,MAXRTMS ,IGRSLIN ,MAXNSNE)
7556 IF(IDDLEVEL == 0) THEN
7557 ALLOCATE(INSCR(NINTER) ,STAT=stat)
7558 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7564 CALL PRESCRINT(IPARI,INTBUF_TAB,INSCR)
7566 IF(IDDLEVEL == 0) THEN
7569 ALLOCATE(INSCR(I)%WA(INSCR(I)%SINSCR) ,STAT=stat)
7570 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7580 CALL SCRINT(IPARI ,INSCR, INTBUF_TAB)
7582 IF(IDDLEVEL == 0) CALL STOPTIME(10,1)
7583 IF(IDDLEVEL == 1) CALL STOPTIME(11,1)
7585 WRITE(ISTDO,'(a)
')TITRE(68)
7587 AUX = MAX( NUMNOD , NUMELT+NUMELP+NUMELR+NUMELTG+NUMELC+100 ,
7589 NS_I7 = 2*NUMNOD + 2002 + 4*AUX
7591 NS_I11 = 2002 + NMNT
7592 AUX = 2002 + 8*MAXRTMS
7593 NS_I11 = MAX(NS_I11,AUX)
7596 AUX = MAX( NUMNOD , MAXRTM_T2+100 )
7597 NS_I2 = 2*NUMNOD + 2002 + 4*AUX
7599 IFIP=MAX(NS_I7,NS_I11,
7600 . NUMNOD+2+4*NUMELC+4*NUMELTG+8*NUMELS
7601 . +2*NUMELT+2*NUMELP+2*NUMELR)
7603 SIWORK = MAX(NS_I7,NS_I11,NUMNOD+2+4*NUMELC+4*NUMELTG+8*NUMELS
7604 . + 2*NUMELT+2*NUMELP+2*NUMELR+16*NUMELS10+ 2*(SIXX-1)
7607 SRWORK = MAX(6000,NUMNOD)
7608 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
7609 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
7613.AND.
IF(LXINTD>0NSPMD>1) LIXINT = LIXINT + LXINTD
7615 INTER_CAND%S_IXINT_2 = LIXINT
7617 IF( ALLOCATED(INTER_CAND%IXINT) ) DEALLOCATE( INTER_CAND%IXINT )
7618 ALLOCATE(INTER_CAND%IXINT(INTER_CAND%S_IXINT_1,INTER_CAND%S_IXINT_2))
7619 ALLOCATE(XTMP(3*NUMNOD) ,STAT=stat)
7620 XTMP = D(1:3*NUMNOD)
7628.NOT.
IF(ALLOCATED(FILLSOL)) ALLOCATE(FILLSOL(NUMELS),STAT=stat)
7629 IF(STAT/=0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7632 IF(NUMELS/=0) CALL LECFILL(IXS,FILLSOL,UNITAB,LSUBMODEL)
7634 IF(IDDLEVEL == 0) CALL STARTIME(12,1)
7635 IF(IDDLEVEL == 1) CALL STARTIME(13,1)
7637 CALL INT18_LAW151_INIT(MULTI_FVM%S_APPEND_ARRAY,NINTER,NPARI,
7638 1 NUMNOD,NUMELS,NGRBRIC,
7639 2 MULTI_FVM,IGRBRIC,IPARI,IXS,
7641 5 MULTI_FVM%X_APPEND,MULTI_FVM%V_APPEND,MULTI_FVM%MASS_APPEND,MULTI_FVM%KINET_APPEND)
7647 CALL FILL_INTERCEP(IPARI,INTBUF_TAB,INTERCEP)
7649 CALL ININTR(IPARI ,INSCR ,X_C ,V ,IXS ,IXQ ,
7650 2 IXC ,PM ,GEO ,ITAB ,MS ,
7651 3 IWORK ,RWORK ,IXTG ,D ,IXT ,
7652 4 IXP ,IXR ,ALE_CONNECTIVITY ,NELEMINT ,IDDLEVEL ,
7653 5 LIXINT ,IGRBRIC ,IWCONT ,IWCIN2 ,KNOD2ELS ,
7654 7 KNOD2ELC ,KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,
7655 8 IGRSURF ,IELEM21 ,SH4TREE ,SH3TREE ,IPART ,
7656 9 IPARTC ,IPARTG ,THKE ,THK_PART ,NOD2EL1D ,
7657 A KNOD2EL1D ,IXS10 ,INTER_CAND ,FRIGAP ,IXS16 ,
7658 B IXS20 ,IPM ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),IPARTS ,SISKWN ,
7659 C KXX ,IXX ,IGEO ,INTERCEP ,LELX ,
7660 D INTBUF_TAB,FILLSOL ,STACK%PM ,IWORKSH ,NSNT ,
7661 E NMNT_2 ,KXIG3D ,IXIG3D ,KNOD2ELQ ,NOD2ELQ ,
7662 F SEGQUADFR ,TAGPRT_FRIC,INTBUF_FRIC_TAB ,IPARTT ,
7663 G IPARTP ,IPARTX ,IPARTR ,NSN_MULTI_CONNEC ,T2_NB_CONNEC,
7664 H SICODE ,ICODE ,ISKEW ,MULTI_FVM ,S_NOD2ELS ,
7665 I SITAB ,SITABM1 ,FLAG_ELEM_INTER25 ,LIST_NIN25 )
7666 IF(IDDLEVEL == 0) CALL STOPTIME(12,1)
7667 IF(IDDLEVEL == 1) CALL STOPTIME(13,1)
7671.AND.
IF(IPARI(NPARI*(I-1)+7)==25IPARI(NPARI*(I-1)+100)>0) THEN
7672 IDEL_SOLID = IDEL_SOLID + 1
7675 IF(IDEL_SOLID == 0) INTERFACES%PARAMETERS%INT25_EROSION_SOLID = 0
7677 DEALLOCATE (FLAG_ELEM_INTER25)
7678 DEALLOCATE (LIST_NIN25)
7680 DEALLOCATE (T2_NB_CONNEC)
7684 IF(IDDLEVEL==1) THEN
7690.AND.
IF(LXINTD>0NSPMD>1)THEN
7691 IF(LIXINT+LXINTD > INTER_CAND%S_IXINT_2)THEN
7692 CALL UPGRADE_IXINT(INTER_CAND,NELEMINT,LXINTD)
7695 CALL UPDATE_WEIGHT_RBE3(NELEMINT,LIXINT,SLRBE3,NRBE3L,NRBE3,
7696 . LRBE3,IRBE3,INTER_CAND)
7701 D(1:3*NUMNOD) = XTMP(1:3*NUMNOD)
7705 ELSEIF(IDDLEVEL == 0) THEN !NINTER = 0
7708 ALLOCATE(INTSTAMP(0))
7710 !--------------------------------------------!
7711 ! NEW INTERFACE BUFFER STRUCTURE ALLOCATION
7712 !--------------------------------------------!
7713 ALLOCATE(INTBUF_TAB(0), STAT=Stat)
7714 !--------------------------------------------!
7722 ERR_MSG='rigid walls
'
7723 ERR_CATEGORY='rigid walls
'
7724 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7725 SNPRW = NRWALL*NNPRW
7726 SIWORK = NRWALL*NUMNOD
7728 IF(IDDLEVEL==0) THEN
7729 ALLOCATE(NPRW(SNPRW) ,STAT=stat)
7731 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
7735 SRWBUF = NRWLP*NRWALL
7737 SRWORK = 3*NUMNOD*NRWALL+SRWBUF
7738 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
7743 WRITE(ISTDO,'(a)
')TITRE(39)
7745 1 RWORK ,NPRW ,IWORK ,SLPRW ,MS ,
7746 2 V ,ITAB ,ITABM1 ,X ,IXS ,
7747 3 IXQ ,NPC1 ,D ,IGRNOD ,
7748 4 SRWBUF ,IMERGE ,UNITAB ,
7749 5 IKINE1LAG,IDDLEVEL ,LSUBMODEL ,RTRANS ,
7750 6 NOM_OPT(LNOPT1*INOM_OPT(5)+1),ITAGND)
7754 IF(IDDLEVEL==0) THEN
7755 ALLOCATE(LPRW(SLPRW) ,STAT=stat)
7757 LPRW = IWORK(1:SLPRW)
7759 IF(IDDLEVEL==0) THEN
7760 ALLOCATE(RWBUF(SRWBUF) ,STAT=stat)
7762 CALL ANCMSG(MSGID=727,
7768 RWBUF = RWORK(1:SRWBUF)
7770 IF(ALLOCATED(RWSAV)) DEALLOCATE(RWSAV)
7771 ALLOCATE(RWSAV(SRWSAV) ,STAT=stat)
7777 ERR_MSG='added masses
'
7778 ERR_CATEGORY='added masses
'
7779 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7781 WRITE(ISTDO,'(a)
')TITRE(43)
7782 IF(IDDLEVEL==0) THEN
7783 ALLOCATE(IPMAS(NODMAS),STAT=stat)
7784 IPMAS(1:NODMAS)%NPART = 0
7785 IPMAS(1:NODMAS)%WEIGHT_FLAG = 0
7786 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7794 . MS ,ITABM1 ,IGRNOD ,UNITAB ,IGRSURF,
7795 . IPART ,IPMAS ,TOTADDMAS,FLAGG ,IGRPART,
7801 . MS ,ITABM1 ,IGRNOD ,UNITAB ,IGRSURF,
7802 . IPART ,IPMAS ,TOTADDMAS,FLAGG ,IGRPART,
7805 IF(NS10E>0) CALL ADDMAST10(ICNDS10, MS )
7808 IF(IDDLEVEL==0) THEN
7816 ERR_MSG='rigid entities
'
7817 ERR_CATEGORY='rigid body
'
7818 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7819 CALL HM_PREREAD_RBODY (SLPBY ,IGRNOD ,LSUBMODEL)
7820 CALL PREREAD_RBODY_LAGMUL(SLPBYL ,IGRNOD ,LSUBMODEL)
7821 CALL HM_PREREAD_MERGE(SMGRBY, SLPBY, IGRNOD, LSUBMODEL)
7822 SNPBY = NNPBY*NRBYKIN
7823 SNPBYL = NNPBY*NRBYLAG
7824 SNRBODY = SNPBY + SNPBYL
7825 SLRBODY = SLPBY + SLPBYL
7827 IF(IDDLEVEL==0) THEN
7828 IF(ALLOCATED(NPBY)) DEALLOCATE(NPBY)
7829 IF(ALLOCATED(LPBY)) DEALLOCATE(LPBY)
7830 IF(ALLOCATED(RBY)) DEALLOCATE(RBY)
7831 ALLOCATE(NPBY(SNRBODY),STAT=stat)
7832 ALLOCATE(LPBY(SLRBODY),STAT=stat)
7833 ALLOCATE(RBY(SRBY) ,STAT=stat)
7835 IF(NRBMERGE > 0) THEN
7836 ALLOCATE(MGRBY(NMGRBY*SMGRBY),STAT=stat)
7838 ALLOCATE(MGRBY(0),STAT=stat)
7844 IF(SNPBY<SNRBODY) THEN
7845 NPBYL => NPBY(SNPBY+1:SNRBODY)
7849 IF(SLPBY<SLRBODY) THEN
7850 LPBYL => LPBY(SLPBY+1:SLRBODY)
7854 IF(NRBY *NRBYKIN<SRBY) THEN
7855 RBYL => RBY(NRBY *NRBYKIN+1:SRBY)
7860 IF(NRBODY > 0) WRITE(ISTDO,'(a)
')TITRE(41)
7861 IF(NRBYKIN > 0) THEN
7863 1 RBY ,NPBY ,LPBY ,ITAB ,ITABM1 ,
7864 2 IGRNOD ,IGRSURF ,IBFV ,IGRV ,LGRAV ,
7865 3 SENSORS ,IMERGE ,UNITAB ,ISKWN ,NOM_OPT ,
7866 4 SLRBODY ,KNOD2ELS,KNOD2ELC,KNOD2ELTG,KNOD2EL1D,
7867 5 KNOD2ELQ ,ITAGND ,ICNDS10 ,LSUBMODEL,ICFIELD ,
7873 IF(NRBMERGE > 0) THEN
7875 . MGRBY,SMGRBY ,NPBY,LPBY ,SLRBODY,
7876 . RBY ,NOM_OPT,INOM_OPT(30),IGRNOD ,
7877 . ITAB ,ITABM1 ,LGRAV ,IGRV ,
7883 IF(NRBYKIN > 0) THEN
7885 1 RBY ,NPBY ,LPBY ,ITAB ,
7886 2 D ,IDDLEVEL,NOM_OPT,SLRBODY)
7891 IF(NRBYLAG > 0) THEN
7892 CALL HM_READ_RBODY_LAGMUL(RBYL ,NPBYL ,LPBYL ,IGRNOD ,LSUBMODEL ,
7893 . ITAB ,ITABM1 ,D ,IKINE1LAG,NOM_OPT)
7900 IF(NINTSTAMP/=0)THEN
7901 ERR_MSG='interfaces type21
'
7902 ERR_CATEGORY='interfaces
'
7903 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7905 CALL LECSTAMP(IPARI ,INTSTAMP ,UNITAB, NPBY,
7906 . ICODE ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),LSUBMODEL)
7913 ERR_CATEGORY='internal
'
7916 + CALL PAROI(PM ,IXS ,IXQ ,ICODE ,ALE_CONNECTIVITY%NALE )
7918 + CALL LCE16S4(IXS ,PM ,ICODE )
7937.AND.
IF((SEANI > 0)(IDDLEVEL==1)) EANI = 0
7944 ERR_MSG='madymo interfaced fem
'
7945 ERR_CATEGORY='madymo interfaced fem
'
7946 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7948 SIWORK2 = MAX(NPART,NUMNOD,2*NUMNOD+NUMELC+NUMELTG+NUMELS)
7949 SIWORK = NPART+NUMNOD+2*(NUMELC+NUMELTG+NUMELS)
7951 ALLOCATE(IWORK(SIWORK+SIWORK2),STAT=stat)
7953 IF(SIWORK<SIWORK+SIWORK2) THEN
7954 IWORK2 => IWORK(SIWORK+1:SIWORK+SIWORK2)
7959 IF(ALLOCATED(ICONX)) DEALLOCATE(ICONX)
7961 WRITE(ISTDO,'(a)
')' .. fem interfaced to madymo
'
7962 CALL HM_READ_MADYMO_EXFEM(IWORK(7*NCONX+1),ITAB ,ITABM1 ,IPART ,IPARTC,
7963 . IPARTG ,IPARTS ,IXC ,IXTG ,IXS ,
7964 . IWORK2 ,GEO ,PM ,IWORK ,IGEO ,
7973 SMADFAIL= NUMELC+NUMELTG+NUMELS
7975 SIEXTAG = 2*NMADNOD+NMADSH4+NMADSH3+NMADSOL
7977 SIEXMAD = NMADPRT+NMADSH4+NMADSH3+NMADSOL+NMADNOD
7978 . + NUMELC+NUMELTG+NUMELS
7980 SICONX = 7*NCONX+SIEXMAD+SIEXTAG
7981 ALLOCATE(ICONX(SICONX),STAT=stat)
7983 DO I=1,7*NCONX+SIEXMAD
7988 ALLOCATE(ICONX(SICONX),STAT=stat)
7990 ICONX(1:7*NCONX)=IWORK(1:7*NCONX)
7993 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
7996.NOT.
IF( ALLOCATED(ICONX)) ALLOCATE(ICONX(0))
8001 ERR_MSG='flexible bodies
'
8002 ERR_CATEGORY='flexible bodies
'
8003 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8006 IF(NFXBODY == 0) THEN
8007 IF(IDDLEVEL==0) THEN
8008 ALLOCATE(FXBNOD(0),FXB_MATRIX(0),FXB_MATRIX_ADD(4,0))
8009 ALLOCATE(FXBGLM(0), FXBCPM(0) , FXBRPM(0),
8010 . FXBCPS(0) , FXBLM(0) , FXBFLS(0),
8011 . FXBDLS(0), FXBDEP(0), FXBVIT(0),
8012 . FXBACC(0), FXBMOD(0), FXBELM(0),
8013 . FXBSIG(0), FXBGRVI(0), FXBGRVR(0))
8015 ELSE IF(NFXBODY>0) THEN
8017 IF(IDDLEVEL==1) THEN
8033 IF(IDDLEVEL==0) THEN
8034 INQUIRE(IOLENGTH=RCLEN) FLREC6
8035 OPEN(UNIT=IFXM,STATUS='scratch
',
8036 . ACCESS='direct
',RECL=RCLEN)
8037 OPEN(UNIT=IFXS,STATUS='scratch
',
8038 . ACCESS='direct
',RECL=RCLEN)
8039 WRITE(ISTDO,'(a)
')TITRE(51)
8040 ALLOCATE(FXBNOD(LENNOD),FXB_MATRIX(LENMAT),FXB_MATRIX_ADD(4,LENMAT))
8043 CALL HM_READ_FXB1(NOM_OPT(LNOPT1*INOM_OPT(11)+1),FXBNOD,FXBIPM,FXB_MATRIX,FXB_MATRIX_ADD,
8044 . NMANIM,ITAB,ITABM1,FXBFILE_TAB,LSUBMODEL)
8050 NBMO=FXBIPM(AIPM+4)+FXBIPM(AIPM+17)
8051 FXBIPM(AIPM+19)=LENELM+1
8052 FXBIPM(AIPM+20)=LENSIG+1
8053 FXBIPM(AIPM+26)=LENGRVI+1
8054 FXBIPM(AIPM+27)=LENGRVR+1
8057 . FXBNOD(ANOD), NBNO, FXBIPM(AIPM+18), IBCL , IPRES ,
8058 . IXS , IXC , IXT , IXP , IXR ,
8059 . IXTG , IPARG , FXBTAG, NBMO, FXBIPM(AIPM+4),
8060 . NELS , NELC, NELTG, IGRV ,LGRAV ,
8061 . NLGRAV , IPARI , INTBUF_TAB , FXBIPM(AIPM+29), NELT,
8063 FXBIPM(AIPM+21)=NELS
8064 FXBIPM(AIPM+22)=NELC
8065 FXBIPM(AIPM+23)=NELTG
8066 FXBIPM(AIPM+34)=NELT
8067 FXBIPM(AIPM+35)=NELP
8069 FXBIPM(AIPM+25)=NLGRAV
8072 IF(IDDLEVEL==0) THEN
8073 ALLOCATE(FXBGLM(LENGLM), FXBCPM(LENCP) , FXBRPM(LENRPM),
8074 . FXBCPS(LENCP) , FXBLM(LENLM) , FXBFLS(LENFLS),
8075 . FXBDLS(LENDLS), FXBDEP(LENVAR), FXBVIT(LENVAR),
8076 . FXBACC(LENVAR), FXBMOD(LENMOD*6), FXBELM(LENELM),
8077 . FXBSIG(LENSIG), FXBGRVI(LENGRVI), FXBGRVR(LENGRVR))
8086 IF(FXBIPM(AIPM+4)>0) CALL FXBELNUM(
8087 . FXBNOD(ANOD), NBNO, IPARG , FXBTAG, FXBELM(ALM),
8088 . IXS , IXC , IXTG , IPARTS ,IPARTC ,
8089 . IPARTG , IXT , IXP , IPARTT ,IPARTP )
8092 CALL HM_READ_FXB2(FXBIPM, FXBRPM, FXBNOD, FXBGLM,
8093 . FXBCPM, FXBCPS, FXBLM, FXBFLS, FXBDLS,
8094 . FXBMOD, ITAB , ITABM1 , NOM_OPT(LNOPT1*INOM_OPT(11)+1),FXB_LAST_ADRESS,
8098 ELSEIF(IDDLEVEL==0) THEN
8099 ALLOCATE(FXBNOD(0) , FXBMOD(0), FXBGLM(0), FXBGRVI(0),
8100 . FXBCPM(0) , FXBCPS(0), FXBLM(0) , FXBFLS(0) ,
8101 . FXBDLS(0) , FXBDEP(0), FXBVIT(0), FXBACC(0) ,
8102 . FXBRPM(0) , FXBELM(0), FXBSIG(0),
8107 ERR_MSG='eigen modes
'
8108 ERR_CATEGORY='eigen modes
'
8109 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8112 INQUIRE(IOLENGTH=RCLEN) FLREC6
8113 OPEN(UNIT=IEIGM,STATUS='scratch
',
8114 . ACCESS='direct
',RECL=RCLEN)
8116 WRITE(ISTDO,'(a)
')TITRE(52)
8117 CALL HM_PREREAD_EIG(IGRNOD ,NNT ,LSUBMODEL)
8121 IF(IDDLEVEL==0) THEN
8122 ALLOCATE(EIGIPM(NEIPM*NEIG), EIGIBUF(NNT))
8123 ALLOCATE(EIGRPM(NERPM*NEIG))
8129 CALL HM_READ_EIG(EIGIPM, EIGIBUF, EIGRPM, IGRNOD ,ITABM1 ,
8130 . UNITAB, LSUBMODEL)
8131 ELSEIF(IDDLEVEL==0) THEN
8132 ALLOCATE(EIGIPM(0), EIGIBUF(0))
8136 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8138 WRITE(6,*) "ERROR Deprecated Linear solver"
8140 ELSEIF(IDDLEVEL==0) THEN
8142 ALLOCATE(CEPTMP(0), NELDOM(0), ELDOM(0,0,0),
8149 ERR_MSG='composite shells
'
8150 ERR_CATEGORY='composite shells
'
8151 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8153 IF(IDDLEVEL==0) THEN
8154 IF(IPLYXFEM > 0) THEN
8155 ALLOCATE(MS_PLY0(NUMNOD*NPLYMAX),STAT=stat)
8156 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8160 ALLOCATE(ZI_PLY0(NUMNOD*NPLYMAX),STAT=stat)
8161 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8165 ALLOCATE(MSZ20(NUMNOD),STAT=stat)
8166 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8170 ALLOCATE(ITAGND_SHXFEM(NUMNOD),STAT=stat)
8171 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8173 . C1='itagnd_shxfem
')
8175 ALLOCATE(ITAGSH(NUMELC),STAT=stat)
8176 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8180 ALLOCATE(INOD_PXFEM(NUMNOD),STAT=stat)
8181 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8185 ALLOCATE(IEL_PXFEM(NUMELC),STAT=stat)
8186 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8191 ALLOCATE(MS_PLY0(0),ZI_PLY0(0),ITAGND_SHXFEM(0),
8192 . ITAGSH(0),INOD_PXFEM(0),IEL_PXFEM(0))
8193 ALLOCATE(MS_PLY(0),ZI_PLY(0),MSZ20(0))
8201 ERR_MSG='arrays allocation
for intia
'
8202 ERR_CATEGORY='internal
'
8203 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8206 IF(IDDLEVEL == 0) THEN
8207 ALLOCATE(MSC(NUMELC) ,STAT=stat)
8208 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8211 ALLOCATE(MSTG(NUMELTG) ,STAT=stat)
8212 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8215 ALLOCATE(INC(NUMELC) ,STAT=stat)
8216 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8219 ALLOCATE(INTG(NUMELTG) ,STAT=stat)
8220 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8223 ALLOCATE(PTG(3,NUMELTG) ,STAT=stat)
8224 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8227 IF(GLOB_THERM%ITHERM_FE > 0)THEN
8228 ALLOCATE(MCPC(NUMELC) ,STAT=stat)
8229 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8232 ALLOCATE(MCPTG(NUMELTG) ,STAT=stat)
8233 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8237 ALLOCATE(MCPC(0),MCPTG(0))
8251 IF(IDDLEVEL == 0) THEN
8252 IF(IREST_MSELT/=0)THEN
8253 ALLOCATE(MSSA(NUMELS) ,STAT=stat)
8254 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8257 ALLOCATE(MSRT(NUMELR) ,STAT=stat)
8258 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8262 ALLOCATE(MSSA(0) ,STAT=stat)
8263 ALLOCATE(MSRT(0) ,STAT=stat)
8267 ALLOCATE(STIFINT(NUMNOD+NUMFAKENODIGEO) ,STAT=stat)
8268 ALLOCATE(STIFINTR(NUMNOD) ,STAT=stat)
8270 ALLOCATE(STIFINT(0) ,STAT=stat)
8271 ALLOCATE(STIFINTR(0) ,STAT=stat)
8274 IF(IRIGID_MAT > 0) THEN
8275 ALLOCATE(SLNRBM(NUMNOD) ,NSLNRBM(NUMNOD))
8276 ALLOCATE( RMSTIFN(NUMNOD), RMSTIFR(NUMNOD))
8278 ALLOCATE( SLNRBM(0),NSLNRBM(0),RMSTIFN(0), RMSTIFR(0))
8279 ALLOCATE( FRONT_RM(0))
8282 ALLOCATE(FXANI(2,NMANIM), MBUFEL(LBUFEL,NMANIM),
8283 . MDEPL(3*NUMNOD,NMANIM))
8284 ALLOCATE(STIFFN(NUMNOD*2) ,STAT=stat)
8291 IF(NUMNOD > 0) STIFFN = EM20
8295 ! still need for *Y00, *sty files - not yet covered by CFG files (hm_reader)
8296 IF(IDDLEVEL == 0) CALL YCTRL(IGRBRIC)
8298 IF (IDDLEVEL == 0) CALL HM_YCTRL(UNITAB,LSUBMODEL,IGRBRIC,IXC,IXTG, PTSHEL,PTSH3N,NUSPHCEL)
8305.OR..OR..AND.
IF((IDDLEVEL == 1)(ISMS_SELEC >= 3)((NINTER == 0)(ISMS == 0))) THEN
8311 ERR_MSG='element buffer initialization
'
8312 ERR_CATEGORY='internal
'
8313 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8314 WRITE(ISTDO,'(a)
')TITRE(45)
8315 NUMEL=2*(NUMELC+NUMELQ+NUMELT+NUMELS+NUMELP+NUMELR+
8316 & NUMELTG+NUMELX+NUMSPH+NUMELIG3D)
8323 ALLOCATE(ELBUF_TAB(NGROUP), STAT=Stat)
8325 CALL ELBUF_INI(ELBUF_TAB,MAT_ELEM%MAT_PARAM,
8326 . MLAW_TAG ,PROP_TAG ,FAIL_TAG ,
8327 . IGEO ,IPM ,PM ,IPARG ,IPART ,
8328 . IPARTSP ,IXS ,IXQ ,IXC ,IXTG ,
8329 . FLAG_XFEM,IPARTIG3D,STACK ,IGEO_STACK ,
8330 . IXT ,IXP ,IXR ,KXX ,GEO ,
8331 . EOS_TAG ,ISTR_24 ,IPRI ,DEFAULTS)
8335 IF(ICRACK3D > 0) THEN
8338 ALLOCATE(XFEM_TAB(NGROUP,NXEL), STAT=Stat)
8341 CALL ELBUF_INI(XFEM_TAB(1:NGROUP,IXEL),MAT_ELEM%MAT_PARAM,
8342 . MLAW_TAG ,PROP_TAG ,FAIL_TAG ,
8343 . IGEO ,IPM ,PM ,IPARG ,IPART ,
8344 . IPARTSP ,IXS ,IXQ ,IXC ,IXTG ,
8345 . FLAG_XFEM ,IPARTIG3D,STACK ,IGEO_STACK,
8346 . IXT ,IXP ,IXR ,KXX ,GEO ,
8347 . EOS_TAG ,ISTR_24 ,IPRI ,DEFAULTS)
8350 ALLOCATE(XFEM_TAB(0,0), STAT=Stat)
8355 CALL CHECK_PTHICKFAIL(ELBUF_TAB,MAT_ELEM%MAT_PARAM ,IPARG ,GEO ,
8356 . IPM ,STACK ,IGEO ,NUMMAT ,NUMGEO ,
8357 . NGROUP ,NPARG ,NPROPMI ,NPROPGI ,NPROPG )
8361 CALL CHECK_MAT_ELEM_PROP_COMPATIBILITY(
8362 . ELBUF_TAB,IPARG ,IPM ,IGEO ,NUMMAT ,NUMGEO ,
8363 . NGROUP ,NPARG ,NPROPMI ,NPROPGI ,MAT_ELEM%MAT_PARAM ,
8364 . N2D ,IXT ,NUMELT ,IXP ,NUMELP ,IXR ,
8365 . NUMELR ,KXX ,NUMELX )
8371 CALL CHK_DTTSH(ELBUF_TAB,IXS ,IPARG ,D )
8373!-------ini of shell offset treatment
8374 IF (DEFAULTS%SHELL%IOFFSET>0) THEN
8375 IF (DEFAULTS%SHELL%IOFFSET==1) CALL INTER_OFFSET_ITAG(
8376 . NINTER, IPARI, NPARI, IGRSURF,
8377 . NSURF, NUMELC, NUMELTG, ITAGOSET)
8378 CALL SHELL_OFFSET_INI(
8379 . NGROUP, NPARG, IPARG, NPROPG,
8380 . NUMGEO, GEO, NUMELC, NUMELTG,
8381 . NPROPGI, IGEO, ITAGOSET, ELBUF_TAB,
8392 LSIGI = MAX (NUMELS+NUMELQ,NUMSOL+NUMQUAD)
8407 IF(NUBEAM > 0) NSIGBEAM = NSIGBEAM + NUBEAM
8408 IF(IUSHELL/=0) NSIGSH = NSIGSH + NUSHELL
8409 IF(IORTSHEL/=0) NSIGSH = NSIGSH + NORTSHEL
8410 IF(NVSHELL1/=0)NSIGSH = NSIGSH + NVSHELL1
8411 IF(NVSHELL2 /= 0)NSIGSH = NSIGSH + NVSHELL2 + 3
8412 IF(NUSPHCEL /= 0)NSIGSPH = NSIGSPH + NUSPHCEL
8413 NSIGI= NVSOLID1 + NVSOLID2 + NVSOLID3 + NUSOLID + 4 + NVSOLID4 +
8414 . NVSOLID5 + NVSOLID6 + 7
8417.OR..OR.
IF(IABS(ISIGI) == 3 IABS(ISIGI) == 4
8418 . IABS(ISIGI) == 5) THEN
8419 LSIGSH = NUMSHEL+NUMSH3N
8420 LSIGSP = MAX(NUMSOL+NUMQUAD,NUMELS+NUMELQ)
8426 LSIGSH = NUMELC+NUMELTG
8427 LSIGSP = NUMELS+NUMELQ
8435.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)==4ABS(ISIGI)==5)THEN
8436 IMAX = MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,
8437 . NUMELTG,NUMSOL,NUMQUAD,NUMSHEL,NUMSH3N,
8438 . NUMSPHY,NUMSPRI,NUMBEAM,NUMTRUS)
8440 IMAX = MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,
8441 . NUMELTG,NUMELIG3D)
8445.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)==4ABS(ISIGI)==5)THEN
8446 JMAX=MAX(NUMELC,NUMSOL,NUMQUAD,NUMSHEL,NUMSH3N,NUMSPHY,
8447 . NUMELR,NUMSPRI,NUMELP,NUMBEAM,NUMTRUS)
8453.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)==4ABS(ISIGI)==5)THEN
8454 ALLOCATE (PTSOL(NUMELS) ,STAT=stat)
8455 ALLOCATE (PTQUAD(NUMELQ) ,STAT=stat)
8456 ALLOCATE (PTSPH(NUMSPH) ,STAT=stat)
8457 ALLOCATE (PTSPRI(NUMELR) ,STAT=stat)
8458 ALLOCATE (PTBEAM(NUMELP) ,STAT=stat)
8459 ALLOCATE (PTTRUSS(NUMELT) ,STAT=stat)
8467 ALLOCATE (PTSOL(0) ,STAT=stat)
8468 ALLOCATE (PTQUAD(0) ,STAT=stat)
8469 ALLOCATE (PTSPH(0) ,STAT=stat)
8470 ALLOCATE (PTSPRI(0) ,STAT=stat)
8471 ALLOCATE (PTBEAM(0) ,STAT=stat)
8472 ALLOCATE (PTTRUSS(0) ,STAT=stat)
8477 CALL TET4_10(IGEO,ITET4_10)
8478.OR..OR..OR.
IF(NUMELS10/=0NUMELS16/=0NUMELS20/=0ITET4_10/=0) THEN
8483 ALLOCATE(MSS(8*NUMELS) ,STAT=stat)
8484 ALLOCATE(MSSX(ICO*NUMELS) ,STAT=stat)
8485 ALLOCATE(MSSF(8*NUMELS*MAX(IALE,IEULER,IALELAG)) ,STAT=stat)
8486 ALLOCATE(MSQ(NUMELQ) ,STAT=stat)
8487.NOT.
IF(ALLOCATED(MSTR)) ALLOCATE(MSTR(NUMELT) ,STAT=stat)
8488.NOT.
IF(ALLOCATED(MSP)) ALLOCATE(MSP(NUMELP) ,STAT=stat)
8489 ALLOCATE(MSR(NUMELR*3) ,STAT=stat)
8490 ALLOCATE(INP(NUMELP) ,STAT=stat)
8491 ALLOCATE(INR(NUMELR*3) ,STAT=stat)
8492 ALLOCATE(INS(NUMELS*8) ,STAT=stat)
8517 ALLOCATE(XELEMWA(MAXNX*16) ,STAT=stat)
8521.OR..OR..OR.
IF(NUMELS10/=0NUMELS16/=0NUMELS20/=0ITET4_10/=0) THEN
8524 ALLOCATE(VNS(NUMELS*8+NUMELIG3D*NCTRLMAX) ,STAT=stat)
8525 ALLOCATE(VNSX(NUMELS*ICO) ,STAT=stat)
8526 ALLOCATE(STC(NUMELC) ,STAT=stat)
8527 ALLOCATE(STT(NUMELT) ,STAT=stat)
8528 ALLOCATE(STP(NUMELP) ,STAT=stat)
8529 ALLOCATE(STR(NUMELR) ,STAT=stat)
8530 ALLOCATE(STTG(NUMELTG) ,STAT=stat)
8531 ALLOCATE(STUR(0) ,STAT=stat)
8532 ALLOCATE(BNS(NUMELS*8+NUMELIG3D*NCTRLMAX) ,STAT=stat)
8533 ALLOCATE(BNSX(NUMELS*ICO) ,STAT=stat)
8534 ALLOCATE(VNIGE(NUMELIG3D*NCTRLMAX) ,STAT=stat)
8535 ALLOCATE(BNIGE(NUMELIG3D*NCTRLMAX) ,STAT=stat)
8563 ALLOCATE(VOLNOD(NUMNOD+NUMFAKENODIGEO) ,STAT=stat)
8564 ALLOCATE(BVOLNOD(NUMNOD+NUMFAKENODIGEO) ,STAT=stat)
8565 ALLOCATE(ETNOD(NUMNOD) ,STAT=stat)
8566 ALLOCATE(NSHNOD(NUMNOD) ,STAT=stat)
8574 ALLOCATE(VOLNOD(0) ,STAT=stat)
8575 ALLOCATE(BVOLNOD(0) ,STAT=stat)
8576 ALLOCATE(ETNOD(0) ,STAT=stat)
8577 ALLOCATE(NSHNOD(0) ,STAT=stat)
8581 ALLOCATE(STRC(NUMELC) ,STAT=stat)
8582 ALLOCATE(STRP(NUMELP) ,STAT=stat)
8583 ALLOCATE(STRR(NUMELR) ,STAT=stat)
8584 ALLOCATE(STRTG(NUMELTG) ,STAT=stat)
8590 ALLOCATE(INDEX(SINDEX) ,STAT=stat)
8591 ALLOCATE(ITRI(SITRI) ,STAT=stat)
8592 ALLOCATE(KSYSUSR(2*JMAX) ,STAT=stat)
8593 ALLOCATE(ISPTAG(NUMSPH) ,STAT=stat)
8594 IF(SINDEX > 0) INDEX = 0
8595 IF(SITRI > 0) ITRI = 0
8596 IF(JMAX > 0) KSYSUSR = 0
8597 IF(NUMSPH > 0) ISPTAG = 0
8600 ALLOCATE(IWA(NUMNOD),STAT=stat)
8602 ALLOCATE(IWA(0),STAT=stat)
8607 ERR_MSG='initialization
'
8608 ERR_CATEGORY='element initialization
'
8609 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8615 ALLOCATE(SIGI(NSIGS,LSIGI) ,STAT=stat)
8616 ALLOCATE(SIGSH(MAX(1,NSIGSH),MAX(1,LSIGSH)) ,STAT=stat)
8617 ALLOCATE(SIGSP(NSIGI,LSIGSP) ,STAT=stat)
8618 ALLOCATE(SIGSPH(NSIGSPH,LSIGSPH) ,STAT=stat)
8619 ALLOCATE(SIGRS(NSIGRS,LSIGRS) ,STAT=stat)
8620 ALLOCATE(SIGBEAM(NSIGBEAM,LSIGBEAM) ,STAT=stat)
8621 ALLOCATE(SIGTRUSS(NSIGTRUSS,LSIGTRUSS) ,STAT=stat)
8622 ALLOCATE(STRSGLOB(NUMELS) ,STAT=stat)
8623 ALLOCATE(STRAGLOB(NUMELS) ,STAT=stat)
8624 ALLOCATE(ORTHOGLOB(NUMELS) ,STAT=stat)
8626 IF(LSIGI > 0) SIGI = ZERO
8627 IF(LSIGSH > 0) SIGSH = ZERO
8628 IF(LSIGSP > 0) SIGSP = ZERO
8629 IF(LSIGSPH > 0) SIGSPH = ZERO
8630 IF(LSIGRS > 0) SIGRS = ZERO
8631 IF(LSIGBEAM > 0)SIGBEAM= ZERO
8632 IF(LSIGTRUSS > 0)SIGTRUSS= ZERO
8633 IF(NUMELS > 0) STRSGLOB = -1
8634 IF(NUMELS > 0) STRAGLOB = -1
8635 IF(NUMELS > 0) ORTHOGLOB = 0
8638.NOT.
IF( ALLOCATED(IDRAPE)) ALLOCATE(IDRAPE(0))
8640 CALL LEC_INISTATE( IXS ,IXQ ,IXC ,IXT ,
8641 1 IXP ,IXR ,GEO ,PM ,KXSP ,
8642 2 IXTG ,INDEX ,ITRI ,
8643 3 NSIGSH ,IGEO ,IPM ,NSIGS ,NSIGSPH ,
8644 4 KSYSUSR ,PTSHEL ,PTSH3N ,PTSOL ,PTQUAD ,
8645 5 PTSPH ,NUMEL ,NSIGRS ,UNITAB ,ISOLNOD ,
8646 6 LSUBMODEL,RTRANS ,IDRAPE ,NSIGI ,
8647 7 PTSPRI ,NSIGBEAM,PTBEAM ,NSIGTRUSS,PTTRUSS ,
8648 8 SIGI ,SIGSH ,SIGSP ,SIGSPH ,SIGRS ,
8649 9 SIGBEAM ,SIGTRUSS,STRSGLOB,STRAGLOB,ORTHOGLOB,
8650 A ISIGSH ,IYLDINI ,KSIGSH3 ,FAIL_INI,IUSOLYLD,
8651 B IUSERL ,IGRBRIC ,MAP_TABLES,IPARG ,STACK ,IWORKSH,
8652 C MAT_ELEM%MAT_PARAM,NUMSPH,NISP)
8658 ALLOCATE(DTELEM(2*NUMEL) ,STAT=stat)
8660 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
8663 IF(NUMEL > 0) DTELEM = ZERO
8667 CALL INITIA(IPARG , ELBUF , MS , IN , V ,
8668 & X , IXS , IXQ , IXC , IXT ,
8669 & IXP , IXR , DETONATORS , GEO , PM ,
8670 & RBY , NPBY , LPBY , NPC , NPTS ,
8671 & TF , VEUL , ALE_CONNECTIVITY , SKEW , FILL ,
8672 & IPART , ITAB , SENSORS , SKVOL ,
8673 & IXTG , THKE , NLOC_DMG , GROUP_PARAM_TAB ,GLOB_THERM,
8674 & IGRNOD , IGRSURF , BUFSF , VR ,
8675 & BUFMAT , XLAS , ILAS , DTELEM , MSS ,
8676 & MSQ , MSC , MSTR , MSP , MSR ,
8677 & MSTG , PTG , INC , NOD2ELTG , KNOD2ELTG,
8678 & INP , INR , INTG , INDEX ,
8679 & ITRI , KXX , IXX , XELEMWA ,
8680 & IWA , NOD2ELQ , KNOD2ELQ , NOD2ELS , KNOD2ELS ,
8681 & KXSP , IXSP , NOD2SP , ISPCOND , ICODE ,
8682 & ISKEW , ISKWN , ISPSYM , XFRAME , ISPTAG ,
8683 & SPBUF , MSSX , NSIGI ,
8684 & NPBYL , LPBYL , RBYL , MSNF , MSSF ,
8685 & NSIGSH , IGEO , IPM , NSIGS ,
8686 & NSIGSPH , VNS , VNSX , STC , STT ,
8687 & STP , STR , STTG , STUR , BNS ,
8688 & BNSX , VOLNOD , BVOLNOD , ETNOD , NSHNOD ,
8689 & STIFINT , FXBDEP , FXBVIT , FXBACC , FXBIPM ,
8690 & FXBRPM , FXBELM , FXBSIG , FXBMOD , INS ,
8691 & PTSHEL , PTSH3N , PTSOL , PTQUAD ,
8692 & WMA , PTSPH , FXBNOD , MBUFEL , MDEPL ,
8693 & FXANI , NUMEL , NSIGRS ,
8694 & SH4TREE , SH3TREE , MCP , TEMP ,
8695 & IMERGE2 , IADMERGE2 ,
8696 & SLNRBM , NSLNRBM , RMSTIFN , RMSTIFR ,
8697 & MS_PLY0 , ZI_PLY0 , ITAGND_SHXFEM , ITAGSH , MCPC ,
8698 & MCPTG , XREFC , XREFTG , XREFS , MSSA ,
8699 & MSRT , IRBE2 , LRBE2 , INIVOL , KVOL , NBSUBMAT,
8700 & IXS10 , IXS16 , IXS20 , TOTADDMAS ,
8701 & IPMAS , STIFFN , MSZ20 , ITAGN , SITAGE ,
8702 & ITAGE , IXR_KJ , ELBUF_TAB ,
8703 & NOM_OPT , INOM_OPT(13) , INOM_OPT(21) , INOM_OPT(20),
8704 & SOL2SPH , IRST , SH3TRIM , XFEM_TAB ,
8705 & KXIG3D , IXIG3D , MSIG3D , KNOT , NCTRLMAX,
8707 & RNOISE , DRAPE , SH4ANG , SH3ANG ,
8708 & GEO_STACK , IGEO_STACK , STIFINTR , STRC , STRP ,
8709 & STRR , STRTG , PERTURB , ITAGND , NATIV_SMS,
8710 & ILOADP , LOADP , PTSPRI , NSIGBEAM ,
8711 & PTBEAM , NSIGTRUSS , PTTRUSS ,
8712 & MULTI_FVM , SIGI , SIGSH , SIGSP ,
8713 & SIGSPH , SIGRS , SIGBEAM , SIGTRUSS , STRSGLOB ,
8714 & STRAGLOB , ORTHOGLOB , ISIGSH , IYLDINI , KSIGSH3 ,
8715 & FAIL_INI , IUSOLYLD , IUSERL , IDDLEVEL , INIMAP1D ,
8716 & INIMAP2D , FUNC2D , FVM_INIVEL , TAGPRT_SMS , IGRBRIC ,
8717 & IGRQUAD , IGRSH4N , IGRSH3N , IGRPART , TOTMAS ,
8718 & KNOTLOCPC , KNOTLOCEL , VNIGE , BNIGE , FXBGLM ,
8719 & FXBCPM , FXBCPS , FXBLM , FXBFLS , FXBDLS ,
8720 & FXB_MATRIX , FXB_MATRIX_ADD , FXB_LAST_ADRESS , INOM_OPT(11) , R_SKEW ,
8721 & KNOD2EL1D , NOD2EL1D , EBCS_TAB , RBY_INIAXIS , ALEA ,
8722 & KNOD2ELC , NOD2ELC , DR , SLRBODY , DRAPEG ,
8723 & IPARI , INTBUF_TAB , INTERFACES , MAT_ELEM%MAT_PARAM ,
8724 & NPRELOAD_A , PRELOAD_A , FAIL_FRACTAL ,FAIL_BROKMANN ,DEFAULTS ,
8725 & NDAMP_FREQ_RANGE,DAMPR , IBEAM_VECTOR , RBEAM_VECTOR ,D)
8728.AND.
IF(NINTER>0NUMELIG3D>0) THEN
8729 CALL FICTIVMASSIGEO(INTBUF_TAB,NCTRLMAX,MSIG3D ,KXIG3D)
8731 CALL BULKFAKEIGEO3(ELBUF_TAB,IPARG,PM,KXIG3D,IGRSURF,STIFINT)
8745 ERR_MSG='group entities buffer initialization
'
8746 ERR_CATEGORY='internal
'
8747 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8748!! WRITE(ISTDO,'(a)
')TITRE(45)
8750 CALL GROUP_INI(IGRNOD ,IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N,
8751 . IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRPART )
8752 CALL ISURF_INI(IGRSURF)
8753 CALL ISLIN_INI(IGRSLIN)
8763!! DEALLOCATE(SIGBEAM)
8764!! DEALLOCATE(SIGTRUSS)
8766 DEALLOCATE(STRSGLOB)
8767 DEALLOCATE(STRAGLOB)
8768 DEALLOCATE(ORTHOGLOB)
8770 IF(ALLOCATED(PTSHEL))DEALLOCATE(PTSHEL)
8771 IF(ALLOCATED(PTSH3N))DEALLOCATE(PTSH3N)
8783 IF(ALLOCATED(MSIG3D)) DEALLOCATE(MSIG3D)
8784 IF(ALLOCATED(TABCONPATCH)) DEALLOCATE(TABCONPATCH)
8813 IF (DEFAULTS%SHELL%IOFFSET==1) THEN
8814 DEALLOCATE(ITAGOSET)
8821.OR.
ENDIF !IF((IDDLEVEL == 1)(ISMS_SELEC >= 3))
8825.AND..OR.
IF((IDDLEVEL == 0)((NINTER > 0)(ISMS == 1))) THEN
8828 . '.. returns to domain decomposition
for optimization
'
8835 IF(IALE+IEULER/=0) CALL PAROI(PM ,IXS ,IXQ ,ICODE ,ALE_CONNECTIVITY%NALE )
8836 IF(NUMELS/=0) CALL LCE16S4(IXS ,PM ,ICODE )
8847 IF(ISMS_SELEC >= 3) THEN
8853 CALL DEALLOCATE_ELBUF(
8854 . ELBUF_TAB, IGEO ,IPARG ,IXS ,IXC ,IXTG ,
8855 . FLAG_XFEM, IXT ,IXP ,IXR ,KXX )
8856 DEALLOCATE(ELBUF_TAB)
8858 IF(ICRACK3D > 0) THEN
8861 CALL DEALLOCATE_ELBUF(
8862 . XFEM_TAB(1:NGROUP,IXEL),IGEO ,IPARG ,IXS ,IXC ,IXTG ,
8863 . FLAG_XFEM ,IXT ,IXP ,IXR ,KXX )
8879 ERR_CATEGORY='interfaces
'
8880 CALL CHKTYP2 (IPARI, ITAB ,
8881 . NOM_OPT(LNOPT1*INOM_OPT(3)+1),INTBUF_TAB,NATIV_SMS)
8885 CALL FAILWAVE_INIT(FAILWAVE,IPARG,IXC,IXTG,NUMNOD)
8892 ERR_MSG='rigid materials
'
8893 ERR_CATEGORY='rigid materials
'
8894 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8895 IF(IRIGID_MAT > 0) THEN
8899 ALLOCATE(RBYM(NFRBYM*NRBYM),IRBYM(NRBYM*NIRBYM),LNRBYM(NGSLNRBYM))
8904 CALL RIGID_MAT(NRBYM ,NGSLNRBYM ,SLNRBM, NSLNRBM ,RMSTIFN,
8905 . RMSTIFR ,X ,V ,MS , IN ,
8906 . RBYM ,IRBYM ,LNRBYM ,NOM_OPT)
8908 LEN_RM = NRBYM*NSPMD
8909 ALLOCATE(FRONT_RM(LEN_RM))
8911 ALLOCATE(WEIGHT_RM(NRBYM))
8914 ALLOCATE( RBYM(0),IRBYM(0),LNRBYM(0), WEIGHT_RM(0))
8917 ERR_MSG='deallocation
'
8918 ERR_CATEGORY='internal
'
8919 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8920 DEALLOCATE(SLNRBM,NSLNRBM,RMSTIFN,RMSTIFR )
8922 IF(ALLOCATED(MSIG3D)) DEALLOCATE(MSIG3D)
8923 IF(ALLOCATED(ITAG)) DEALLOCATE(ITAG)
8928 ERR_MSG='xfem
for composit
'
8929 ERR_CATEGORY='xfem
for composit
'
8930 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8931 IF(IPLYXFEM > 0) THEN
8935 IF(ITAGND_SHXFEM(I) > 0 )THEN
8936 NPLYXFE = NPLYXFE + 1
8937 INOD_PXFEM(I) = NPLYXFE
8942 IF(ITAGSH(I) > 0) THEN
8943 EPLYXFE = EPLYXFE + 1
8944 IEL_PXFEM(I) = EPLYXFE
8947 ALLOCATE(MS_PLY(NPLYXFE*NPLYMAX),STAT=stat)
8948 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8952 ALLOCATE(ZI_PLY(NPLYXFE*NPLYMAX),STAT=stat)
8953 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8958 ALLOCATE(MSZ2(NPLYXFE),STAT=stat)
8959 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8964 CALL PREPLYXFEM(MS_PLY0,ZI_PLY0,IEL_PXFEM,INOD_PXFEM,IXC,
8965 . MS_PLY,ZI_PLY,ADDCNE_PXFEM,MSZ20,MSZ2)
8966 LCNE_PXFEM = ADDCNE_PXFEM(NPLYXFE+1) - 1
8967 ALLOCATE(CNE_PXFEM(LCNE_PXFEM),CEL_PXFEM(EPLYXFE))
8971 CALL FILLCNE_PXFEM(IEL_PXFEM,INOD_PXFEM,IXC,CEP,ADDCNE_PXFEM,
8972 . CNE_PXFEM, CEL_PXFEM)
8976 DEALLOCATE(MS_PLY0,ZI_PLY0,MSZ20,ITAGSH)
8977 DEALLOCATE(ITAGND_SHXFEM)
8982 IF (NDAMP_VREL_RBY > 0) THEN
8983 CALL damping_rby_spmdset(IGRNOD,NGRNOD,NDAMP,NRDAMP,DAMPR,NNPBY,
8984 . NRBODY,NPBY,NRBMERGE)
8990 ERR_MSG='xfem
for shells
'
8991 ERR_CATEGORY='xfem
for shells
'
8992 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8995 ALLOCATE(CRKLVSET(NLEVMAX) ,STAT=stat)
8996 ALLOCATE(CRKSHELL(NLEVMAX) ,STAT=stat)
8997 ALLOCATE(CRKSKY(NLEVMAX) ,STAT=stat)
8998 ALLOCATE(CRKAVX(NLEVMAX) ,STAT=stat)
8999 ALLOCATE(INDX_CRK(NLEVMAX) ,STAT=stat)
9001 INDX_CRK = 0 ! For Anim
9002 NCRKPART = 0 ! Nombre des parts xfem (local proc)
9003 NCRKXFE = 0 ! Nombre des noeuds xfem
9004 ECRKXFE = 0 ! Nombre des elements xfem
9005 ECRKXFEC = 0 ! Nombre des shells 4N xfem
9006 ECRKXFETG= 0 ! Nombre des shells 3N xfem
9008 IF(ICRACK3D > 0) THEN
9010 IF(ICRACK3D == 1) THEN
9011 WRITE(ISTDO,'(a)
')' .. xfem multi-layer shell
'
9012 ELSEIF(ICRACK3D == 2)THEN
9013 WRITE(ISTDO,'(a)
')' .. xfem mono-layer shell
'
9014 ELSEIF(ICRACK3D == 3)THEN
9015 WRITE(ISTDO,'(a)
')' .. xfem mixed mono/multi-layer shell
'
9023 CALL PRETAG_XFEM(IPARG ,ITAGE ,IEL_CRKXFEM,ITAGN ,INOD_CRKXFEM)
9026 CALL PRECRKXFEM(IPARG ,IXC ,IXTG ,NCRKXFE ,
9027 . IEL_CRKXFEM ,INOD_CRKXFEM ,ADDCNE_CRKXFEM)
9030 LCNE_CRKXFEM = ADDCNE_CRKXFEM(NCRKXFE+1) - 1 ! longueur tableau sky CNE_CRKXFEM
9031 ALLOCATE(CRKNODIAD(LCNE_CRKXFEM) ,STAT=stat)
9032 ALLOCATE(CNE_CRKXFEM(LCNE_CRKXFEM) ,STAT=stat)
9033 ALLOCATE(CEL_CRKXFEM(ECRKXFE) ,STAT=stat)
9034 ALLOCATE(CEP_CRKXFEM(ECRKXFE) ,STAT=stat)
9035 ALLOCATE(NODLEVXF(NCRKXFE) ,STAT=stat)
9036 ALLOCATE(CRKEDGE(NXLAYMAX) ,STAT=stat)
9037 ALLOCATE(XFEM_PHANTOM(NXLAYMAX) ,STAT=stat)
9038 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='nodlevxf')
9042 CEP_CRKXFEM = 0 ! Proc num of each xfem element
9046 CALL FILLCNE_XFEM(LCNE_CRKXFEM,IPARG,
9047 . IEL_CRKXFEM ,INOD_CRKXFEM ,IXC ,IXTG ,CEP ,
9048 . ADDCNE_CRKXFEM,CNE_CRKXFEM ,CEL_CRKXFEM,CEP_CRKXFEM,CRKNODIAD)
9050 CALL XFEM_CRACK_INIT(IPARG ,IXC ,IXTG ,INOD_CRKXFEM,NODLEVXF,
9051 . INDX_CRK,NCRKPART,CRKSHELL)
9053 DEALLOCATE(ITAGN,ITAGE)
9055 SNODGLOBXFE = 4*ECRKXFE*NLEVMAX ! nb max de noeuds phant, tous les plis. faux si mixte
9057 NUMEDGES = 0 ! nb des edges glob (pareil tous les plis)
9058 SIEDGESH = 4*ECRKXFEC + 3*ECRKXFETG
9060 ALLOCATE(IEDGESH(SIEDGESH),STAT=stat)
9061 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='iedgesh')
9062 ALLOCATE(IBORDEDGE(SIEDGESH) ,STAT=stat)
9063 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='ibordedge
')
9064 ALLOCATE(NODEDGE(2*SIEDGESH),STAT=stat)
9065 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='nodedge')
9066 ALLOCATE(IEDGE(SIEDGESH),STAT=stat)
9067 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='iedge')
9068 ALLOCATE(IEDGE_TMP0(SIEDGESH),STAT=stat)
9069 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='iedge_tmp0
')
9076 IF(ECRKXFEC > 0) THEN
9077 IEDGESH4 => IEDGESH(1:4*ECRKXFEC)
9078 IELCRK4 => IEL_CRKXFEM(1:NUMELC)
9081 IELCRK4 => IEL_CRKXFEM
9084 IF(ECRKXFETG > 0) THEN
9085 IEDGESH3 => IEDGESH(1+4*ECRKXFEC:SIEDGESH)
9086 IELCRK3 => IEL_CRKXFEM(1+NUMELC:NUMELC+NUMELTG)
9089 IELCRK3 => IEL_CRKXFEM
9093 . IBORDNODE ,IXC ,IXTG ,IEDGESH4 ,IEDGESH3 ,
9094 . IBORDEDGE ,NODEDGE ,IELCRK4 ,IELCRK3 ,IEDGE ,
9095 . CEP_CRKXFEM,IEDGE_TMP0)
9097 CALL ALLOCXFEM(IXC ,IXTG ,IPARG ,LCNE_CRKXFEM,CRKLVSET,
9098 . CRKSKY ,CRKAVX,CRKEDGE,XFEM_PHANTOM)
9100 IF(NINICRACK > 0) ! initial cracks
9101 . CALL INICRKFILL (ELBUF_TAB,XFEM_TAB,
9102 . IXC ,IXTG ,IPARG ,INICRACK,
9103 . X ,IEL_CRKXFEM,INOD_CRKXFEM,XREFC ,XREFTG ,
9104 . IEDGESH4 ,IEDGESH3,NODEDGE ,CRKLVSET,
9105 . CRKSHELL,CRKEDGE ,XFEM_PHANTOM ,ITAB )
9107 ALLOCATE(IEDGE_TMP(3,NUMEDGES),STAT=stat)
9108 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9109 . MSGTYPE=MSGERROR,C1='iedge_tmp
')
9110 IF(NUMEDGES > 0) THEN
9114 IEDGE_TMP(3,I) = IEDGE_TMP0(I)
9117 DEALLOCATE(IEDGE_TMP0)
9119 ALLOCATE(ELCUTC(2*(NUMELC+NUMELTG)) ,STAT=stat)
9120 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9121 . MSGTYPE=MSGERROR,C1='elcutc')
9124 ALLOCATE(NODENR(NCRKXFE) ,STAT=stat)
9125 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9126 . MSGTYPE=MSGERROR,C1='nodenr')
9129 ALLOCATE(KXFENOD2ELC(NCRKXFE) ,STAT=stat)
9130 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9134 ALLOCATE(ENRTAG(NUMNOD*IENRNOD) ,STAT=stat)
9135 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9136 . MSGTYPE=MSGERROR,C1='enrtag')
9143 ALLOCATE(CNE_CRKXFEM(0),CEL_CRKXFEM(0),CEP_CRKXFEM(0))
9144 ALLOCATE(IEDGESH(0))
9145 ALLOCATE(IBORDEDGE(0))
9146 ALLOCATE(NODEDGE(0))
9148 ALLOCATE(IEDGE_TMP(0,0))
9149 ALLOCATE(CRKNODIAD(0))
9150 ALLOCATE(NODLEVXF(0))
9151 ALLOCATE(CRKEDGE(0))
9155 ALLOCATE(KXFENOD2ELC(0))
9157 ENDIF ! ICRACK3D > 0 (Xfem)
9163 ERR_MSG='rigid body element deactivation
'
9164 ERR_CATEGORY='rigid body
'
9165 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9166 CALL SETELOFF2(IXS ,IXC ,IXT ,IXP ,IXR ,
9167 2 IXTG ,IPARG ,ISOLOFF,ISHEOFF,
9168 3 ITRUOFF,IPOUOFF,IRESOFF,ITRIOFF,IGRNRB2,
9173 CALL SETELOFF(IXS ,IXC ,IXT ,IXP ,IXR ,
9174 2 IXTG ,IPARG , ISOLOFF,ISHEOFF,
9175 3 ITRUOFF,IPOUOFF,IRESOFF,ITRIOFF,IGRNRBY,
9176 4 IGRNOD ,ELBUF_TAB,IQUAOFF,IXQ )
9181 ERR_MSG='stamping initialization
'
9182 ERR_CATEGORY='interfaces
'
9183 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9186 AUX = MAX( NUMNOD , NUMELT+NUMELP+NUMELR+NUMELTG+NUMELC+100 ,
9188 NS_I21 = 2*NUMNOD + 2002 + 4*AUX
9190 SRWORK = MAX(6000,NUMNOD)
9191 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
9192 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
9196 CALL ININTR_THKVAR(ELBUF_TAB,
9197 1 IPARI ,INTBUF_TAB ,INSCR ,X ,
9198 2 IXS ,IXC ,PM ,GEO ,ITAB ,
9199 3 IWORK ,RWORK ,IXTG ,D ,
9201 5 KNOD2ELC,KNOD2ELTG,NOD2ELS,NOD2ELC ,NOD2ELTG,
9202 6 INTSTAMP,SKEW ,MS ,IN ,V ,
9203 7 VR ,RBY ,NPBY ,LPBY ,IPARTS ,
9204 8 IPARTC ,IPARTG,THK_PART,NOM_OPT,INOM_OPT(3))
9211 DEALLOCATE(THK_PART)
9216 CALL SET_INTERCEP(IPARI,INTERCEP,0,INTBUF_TAB,ITAB,CEP) ! this call is maintained here to avoid a bug
9221 CALL I24SETNODES(IPARI,INTBUF_TAB,INTERCEP,ITAB,I24MAXNSNE)
9227 ERR_MSG='interfaces stiffness
'
9228 ERR_CATEGORY='interfaces
'
9229 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9231 IF (I7STIFS/=0) THEN
9232 CALL STIFINT_ICONTROL(
9233 1 NUMNOD, STIFINT, NPARI, NINTER,
9234 2 IPARI, NPROPGI, NUMGEO, IGEO,
9235 3 NUMELS, NIXS, IXS, NUMELS8,
9236 4 NUMELS10, IXS10, NUMELS16, IXS16,
9237 5 NUMELS20, IXS20, NPROPM, NUMMAT,
9239 CALL ININTR1 (IPARI ,STIFINT, INTBUF_TAB ,STFAC)
9246.AND..AND.
IF(NINTER > 0 NINTERFRIC >0 IORTHFRICMAX > 0) THEN
9248 CALL ININTR_ORTHDIRFRIC(
9249 A IPARI ,INTBUF_TAB,INTBUF_FRIC_TAB,IGEO ,GEO ,
9250 B X , IXTG ,IXC ,IPARTG , IPARTC ,
9251 C PFRICORTH,IREPFORTH,PHIFORTH , VFORTH ,KNOD2ELC ,
9252 D KNOD2ELTG,NOD2ELTG ,NOD2ELC ,IWORKSH ,PM ,
9253 E STACK%PM ,THKE ,SKEW ,ITAB ,IPART )
9259 DEALLOCATE(TAGPRT_FRIC)
9263 ERR_MSG='laser impact phase 2
'
9265 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9267 CALL LASERP3(ILAS ,IPARG )
9274 ERR_CATEGORY='rivets
'
9275 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9277 SRIVET = NRIVET*NRIVF
9278 ALLOCATE(LRIVET(SLRIVET) ,STAT=stat)
9279 ALLOCATE(RIVET(SRIVET) ,STAT=stat)
9284 WRITE(ISTDO,'(a)
') ' .. rivets
'
9285 CALL HM_READ_RIVET(LRIVET ,V ,VR ,MS ,IN ,
9286 2 RIVET ,GEO ,ITAB ,ITABM1 ,D ,
9287 3 IPART ,IGEO ,LSUBMODEL)
9294 IF(NB_SEATBELT_SHELLS /= 0)THEN
9295 CALL MY_ALLOC(SEATBELT_SHELL_TO_SPRING,NUMELC,2)
9297 SEATBELT_SHELL_TO_SPRING(1:NUMELC,1) = 0
9298 SEATBELT_SHELL_TO_SPRING(1:NUMELC,2) = 0
9301 DO I=1,NB_SEATBELT_SHELLS
9304 IF(SEATBELT_CONVERTED_ELEMENTS(2,I) /= 0) THEN
9305 L0 = SET_USRTOS(SEATBELT_CONVERTED_ELEMENTS(1,I),MAP_TABLES%ISH4NM,NUMELC)
9309 IF(SEATBELT_CONVERTED_ELEMENTS(2,I) /= 0) THEN
9310 L1 = SET_USRTOS(SEATBELT_CONVERTED_ELEMENTS(2,I),MAP_TABLES%ISPRINGM,NUMELR)
9314 IF(SEATBELT_CONVERTED_ELEMENTS(3,I) /= 0) THEN
9315 L2 = SET_USRTOS(SEATBELT_CONVERTED_ELEMENTS(3,I),MAP_TABLES%ISPRINGM,NUMELR)
9319 SEATBELT_SHELL_TO_SPRING(L0,1) = L1
9320 SEATBELT_SHELL_TO_SPRING(L0,2) = L2
9325 CALL MY_ALLOC(SEATBELT_SHELL_TO_SPRING,1,2)
9326 SEATBELT_SHELL_TO_SPRING(1,1) = 0
9327 SEATBELT_SHELL_TO_SPRING(1,2) = 0
9333 ERR_CATEGORY='sections
'
9334 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9336 WRITE(ISTDO,'(a)
') ' .. sections
'
9338 1 SNSTRF ,SSECBUF ,ITABM1 ,0 ,NOM_OPT(LNOPT1*INOM_OPT(8)+1),
9339 2 IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
9340 3 IGRBEAM ,IGRSPRING ,IGRNOD ,LSUBMODEL, SEATBELT_SHELL_TO_SPRING,
9341 4 NB_SEATBELT_SHELLS)
9342 ALLOCATE(NSTRF(SNSTRF) ,STAT=stat)
9343 ALLOCATE(SECBUF(SSECBUF) ,STAT=stat)
9346 CALL LECSEC42(IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9347 2 IXTG ,X ,ITAB ,ITABM1 ,
9349 4 IPARI ,IXS10 ,IXS20 ,IXS16 ,UNITAB ,
9350 5 ISKWN ,XFRAME ,ISOLNOD,NOM_SECT,RTRANS,
9351 6 LSUBMODEL,NOM_OPT(LNOPT1*INOM_OPT(8)+1),IGRBRIC,IGRQUAD,IGRSH4N,
9352 7 IGRTRUSS ,IGRBEAM,IGRSPRING,IGRSH3N,SEATBELT_SHELL_TO_SPRING,
9353 8 NB_SEATBELT_SHELLS)
9354 SNSTRF = SIZE(NSTRF)
9358 ALLOCATE(NSTRF(SNSTRF) ,STAT=stat)
9359 ALLOCATE(SECBUF(SSECBUF) ,STAT=stat)
9361 IF(ALLOCATED(SEATBELT_SHELL_TO_SPRING)) DEALLOCATE(SEATBELT_SHELL_TO_SPRING)
9367 CALL INISEN(SENSORS ,IPARI,NOM_OPT,INOM_OPT(5),
9368 . INOM_OPT(8),INOM_OPT(4),IXR ,R_SKEW ,NUMELR,
9369 . NSECT ,NINTER ,NINTSUB ,NRWALL ,NRBODY )
9375 ERR_CATEGORY='joints
'
9376 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9377 CALL HM_PRELECJOI(SLJOINT ,IGRNOD,LSUBMODEL)
9378 ALLOCATE(LJOINT(SLJOINT) ,STAT=stat)
9381 ALLOCATE( CYL_JOIN(NJOINT) )
9384 WRITE(ISTDO,'(a)
') ' .. cylindrical joints
'
9385 CALL INIT_JOINT(NJOINT)
9386 CALL HM_READ_CYLJOINT(LJOINT ,ITABM1 ,D ,ITAB ,IGRNOD ,
9387 . NOM_OPT(LNOPT1*INOM_OPT(7)+1),LSUBMODEL)
9394 ERR_MSG='block boundary material nodes
'
9395 ERR_CATEGORY='block boundary material nodes
'
9396 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9397.AND.
IF(IALE+IEULER /= 0 NUMELQ+NUMELS > 0) THEN
9398 CALL NODM11(PM,IXS,IXQ,ICODE)
9404 ERR_MSG='porous nodes
'
9405 ERR_CATEGORY='porous nodes
'
9406 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9407.AND.
IF(IALE+IEULER /=0 NUMELQ+NUMELS >0)THEN
9408 SIWORK = NUMNOD+4*NFACX
9409 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
9411 CALL PORNOD(GEO ,IXS ,IXQ ,IWORK ,ICODE ,
9412 + ITAB ,NPBY ,LPBY ,IGEO)
9414 ALLOCATE(NODPOR(SNODPOR) ,STAT=stat)
9415 NODPOR = IWORK(1:SNODPOR)
9419 ALLOCATE(NODPOR(SNODPOR) ,STAT=stat)
9426 ALLOCATE(ICONTACT(SICONTACT))
9429 ALLOCATE(ICONTACT(0))
9433 ALLOCATE(RCONTACT(SRCONTACT))
9435 ALLOCATE(ACONTACT(SRCONTACT))
9437 ALLOCATE(PCONTACT(SRCONTACT))
9440 ALLOCATE(RCONTACT(0))
9441 ALLOCATE(ACONTACT(0))
9442 ALLOCATE(PCONTACT(0))
9445 CALL FVDIM(T_MONVOL)
9446 ALLOCATE(FVDATA(NFVBAG))
9449 ERR_MSG='fvmbag meshing
'
9450 ERR_CATEGORY='fvmbag meshing
'
9451 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9452 IF(TETRAMESHER_USED) THEN
9453 CALL FVMESH0(T_MONVOL, NODE_COORD, IXS_TEMP, IXC, IXTG, PM,IPM, IGRSURF, XYZREF ,NB_TOTAL_NODE)
9455 CALL FVMESH0(T_MONVOL, X, IXS, IXC, IXTG, PM,IPM, IGRSURF, XYZREF ,NUMNOD)
9458 CALL COPY_TO_VOLMON(T_MONVOL, LRCBAG, T_MONVOL_METADATA%RCBAG, SVOLMON, VOLMON)
9460 CALL COPY_TO_MONVOL(T_MONVOL, LICBAG, T_MONVOL_METADATA%ICBAG, SMONVOL, MONVOL)
9464 ERR_CATEGORY='bem flow
'
9465 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9470 CALL HM_PREREAD_BEM(IGRSURF, IGRNOD , NNFT ,
9471 . UNITAB , NOM_OPT(LNOPT1*INOM_OPT(12)+1), LSUBMODEL)
9473 ALLOCATE(IFLOW(LIFLOW), RFLOW(LRFLOW))
9475 RFLOW(1:LRFLOW) = ZERO
9482 CALL HM_READ_BEM(IGRSURF, IFLOW, RFLOW,
9483 . NPC1 , IGRNOD , MEMFLOW(1,1),UNITAB,
9484 . X, NOM_OPT(LNOPT1*INOM_OPT(12)+1),LGAUGE, IGRV, LSUBMODEL,IRESP)
9487 ALLOCATE(IFLOW(0), RFLOW(0))
9490 ERR_MSG='eulerian boundary conditions
'
9491 ERR_CATEGORY='eulerian boundary conditions
'
9492 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9496 !update due to domain decomposition
9497 CALL INIEBCS(ALE_CONNECTIVITY, 1,IGRSURF, IXS, IXQ, IXTG,
9498 . PM, IGEO, X, SENSORS, MONVOl, MULTI_FVM%IS_USED, EBCS_TAB, EBCS_TAG_CELL_SPMD)
9500 CALL INIEBCSP0(X, IPARG, ELBUF_TAB, EBCS_TAB, IXS, IXQ, IXTG, IPARTS, IPARTQ, IPARTG, PM, IPM, MAT_ELEM%MAT_PARAM)
9501 CALL INIEBCS_PROPELLANT(IXS,IXQ,IXTG,MULTI_FVM%IS_USED,EBCS_TAB,MAT_ELEM%MAT_PARAM,SIXS,SIXQ,SIXTG,NUMMAT)
9507 ERR_MSG='lagrange multipliers
'
9508 ERR_CATEGORY='lagrange multipliers
'
9509 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9510 NCMAX = LAG_NCF + LAG_NCL
9511 NKMAX = LAG_NKF + LAG_NKL
9512 LAG_NHL = LAG_NCL * 10
9514 IF( ALLOCATED(IADHF) ) DEALLOCATE(IADHF)
9515 IF( ALLOCATED(IADLL) ) DEALLOCATE(IADLL)
9516 IF( ALLOCATED(LLL) ) DEALLOCATE(LLL)
9517 IF( ALLOCATED(JLL) ) DEALLOCATE(JLL)
9518 ALLOCATE(IADHF(LAG_NCF + 1))
9519 ALLOCATE(IADLL(LAG_NCF + 1))
9520 ALLOCATE(LLL(LAG_NKF))
9521 ALLOCATE(JLL(LAG_NKF))
9522 IF(LAG_NCF > 0) THEN
9524 CALL LAGM_INI(LAG_NHF ,IADHF ,IADLL ,JLL ,LLL ,
9525 2 IPARI ,INTBUF_TAB,IGRNOD, IBCSLAG ,
9526 3 MS ,IN ,GJBUFI ,IBMPC ,IBMPC2 ,
9527 4 IBMPC3 ,IBMPC4 ,IBFV ,VEL ,ITAB ,
9528 5 NOM_OPT,INOM_OPT(3),INOM_OPT(15),INOM_OPT(16),
9529 6 INOM_OPT(17),INOM_OPT(18))
9530 ALLOCATE(JCIHF(LAG_NHF), STAT=stat)
9531 CALL LAGM_NHF(LAG_NCF, IADLL ,JLL ,LLL ,JCIHF )
9533 SLAGBUF = LAG_NHF + 3*LAG_NCF+2
9534 ALLOCATE(LAGBUF(SLAGBUF), STAT=stat)
9537 L3 = L2 + LAG_NCF + 1
9541 LAGBUF(1:L1) = IADHF(1:LAG_NCF + 1)
9542 LAGBUF(L1+1:L2) = JCIHF(1:LAG_NHF)
9548 ALLOCATE(LAGBUF(SLAGBUF))
9552 . CALL LGMINI_RWL(NPRW , LPRW , MS , ITAB,
9553 . NOM_OPT(LNOPT1*INOM_OPT(5)+1))
9555 . CALL LGMINI_I7(IPARI ,INTBUF_TAB , MS , ITAB , IGRNOD,
9556 . NOM_OPT(LNOPT1*INOM_OPT(3)+1))
9557 NHMAX = LAG_NHF + LAG_NHL
9559 IF(LAG_NCL/=0) LWAT = MAX(6*(NUMELS16+NUMELS20),6*NUMNOD)
9560 L_MUL_LAG1 = 2*NCMAX + 4*NKMAX + LWAT + NUMNOD + 2
9562 L_MUL_LAG = MAX(L_MUL_LAG1,
9563 . 11*NCMAX + 4*NKMAX + 3*NHMAX + 6*NUMNOD + 2)
9566 ALLOCATE(LAMBDA(SLAMBDA), STAT=stat)
9567 IF(SLAMBDA > 0) LAMBDA = ZERO
9572 ERR_MSG='gravity nodal forces
'
9573 ERR_CATEGORY='gravity nodal forces
'
9574 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9579 NLGRAV=FXBIPM(AIPM+25)
9580 AGRVI=FXBIPM(AIPM+26)
9581 AGRVR=FXBIPM(AIPM+27)
9585 . IGRV , LGRAV , FXBIPM(AIPM+18), FXBNOD(ANOD),
9586 . FXBGRVI(AGRVI), FXBGRVR(AGRVR), FXBIPM(AIPM+3), FXBMOD(AMOD),
9587 . FXBIPM(AIPM+4), FXBIPM(AIPM+17), MS , GRAV ,
9588 . SKEW , FXBIPM(AIPM+29), NFX , FXBIPM(AIPM+30))
9596 ERR_MSG='time history parts
'
9597 ERR_CATEGORY='time history
'
9598 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9600 CALL HM_READ_THPART(IPART ,IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N,
9601 . IGRTRUSS ,IGRBEAM ,IGRSPRING, LSUBMODEL)
9605 CALL CREATE_MAP_TABLES ( MAP_TABLES ,2 ,
9606 * LSUBMODEL ,SUBSETS,
9608 * IXS ,IXQ ,IXC ,IXTG ,
9609 * IXT ,IXP ,IXR ,KXSP,LRIVET,
9614 ERR_MSG='time history groups
'
9615 ERR_CATEGORY='time history
'
9616 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9618 ! Number of /TH read by hm reader
9619 CALL HM_OPTION_COUNT('/th
' ,NTHGRP0)
9620 CALL HM_OPTION_COUNT('/ath
',NTHGRP01(1))
9621 CALL HM_OPTION_COUNT('/bth
',NTHGRP01(2))
9622 CALL HM_OPTION_COUNT('/cth
',NTHGRP01(3))
9623 CALL HM_OPTION_COUNT('/dth
',NTHGRP01(4))
9624 CALL HM_OPTION_COUNT('/eth
',NTHGRP01(5))
9625 CALL HM_OPTION_COUNT('/fth
',NTHGRP01(6))
9626 CALL HM_OPTION_COUNT('/gth
',NTHGRP01(7))
9627 CALL HM_OPTION_COUNT('/hth
',NTHGRP01(8))
9628 CALL HM_OPTION_COUNT('/ith
',NTHGRP01(9))
9630 NTHGRPMX = MAX(NTHGRP0,NTHGRP01(I))
9633 ! Number of /TH/MONV
9635 NBR_TH_MONVOL01(1:9) = 0
9636 CALL HM_OPTION_COUNT('/th/monv
' ,NBR_TH_MONVOL)
9637 CALL HM_OPTION_COUNT('/ath/monv
',NBR_TH_MONVOL01(1))
9638 CALL HM_OPTION_COUNT('/bth/monv
',NBR_TH_MONVOL01(2))
9639 CALL HM_OPTION_COUNT('/cth/monv
',NBR_TH_MONVOL01(3))
9640 CALL HM_OPTION_COUNT('/dth/monv
',NBR_TH_MONVOL01(4))
9641 CALL HM_OPTION_COUNT('/eth/monv
',NBR_TH_MONVOL01(5))
9642 CALL HM_OPTION_COUNT('/fth/monv
',NBR_TH_MONVOL01(6))
9643 CALL HM_OPTION_COUNT('/gth/monv
',NBR_TH_MONVOL01(7))
9644 CALL HM_OPTION_COUNT('/hth/monv
',NBR_TH_MONVOL01(8))
9645 CALL HM_OPTION_COUNT('/ith/monv
',NBR_TH_MONVOL01(9))
9647 NBR_TH_MONVOL = MAX(NBR_TH_MONVOL,NBR_TH_MONVOL01(I))
9650 OUTPUT%TH%SITHGRP = (NTHGRP0+NBR_TH_MONVOL)*NITHGR
9651 LITHPART = NTHGRPMX*(NPART+NTHPART)
9652 LITHSUB = NTHGRPMX*NSUBS
9658 ! New routine to pre-read /TH with hm_reader and old reader
9659 ! (needed to estimate sizes of buffers)
9660 CALL HM_READ_PRETHGROU(LITHBUFMX,NVARTOT0,LSUBMODEL,0,OUTPUT)
9662 CALL HM_READ_PRETHGROU(LITHBUFI,NVARTOT,LSUBMODEL,I,OUTPUT)
9663 LITHBUFMX = MAX(LITHBUFMX,LITHBUFI,NVARTOT,NVARTOT0)
9664 NVARTOTMAX = MAX(NVARTOTMAX,NVARTOT,NVARTOT0)
9667 SITHVAR = NVARTOT0*10+NVARTOT*10+NVOLU*10
9668 ALLOCATE(ITHPART(LITHPART) , STAT=stat)
9669 ALLOCATE(ITHSUB(LITHSUB) , STAT=stat)
9670 ALLOCATE(ITHBUFTMP(LITHBUFMX), STAT=stat)
9671 ALLOCATE(ITHVAR(SITHVAR) , STAT=stat)
9672 IF(SITHVAR > 0) ITHVAR(1:SITHVAR) = 0
9673 CALL MY_ALLOC(OUTPUT%TH%ITHGRP,OUTPUT%TH%SITHGRP)
9675 OUTPUT%TH%ITHGRP(1:OUTPUT%TH%SITHGRP) = 0
9679 OUTPUT%TH%SITHBUF = 0
9682 INTERFACES%PARAMETERS%INTCAREA =0
9683 ! New routine to read /TH with hm_reader and old reader
9684 CALL HM_READ_THGROU(
9685 1 OUTPUT%TH%ITHGRP ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9686 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9687 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUF,
9688 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9689 5 NTHGRP ,ITHPART ,ITHSUB ,FXBIPM ,IPART ,LIPART1 ,
9690 6 8 ,12 ,IMERGE ,ITHVAR ,
9691 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9692 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9693 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9694 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9695 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9696 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9697 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9698 E MAP_TABLES, 0,INOM_OPT(31),INOM_OPT(32),SENSORS ,
9699 F INTERFACES,IPARI ,OUTPUT%TH%DUMP_THNMS1_FILE,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9702 CALL MY_ALLOC(OUTPUT%TH%ITHBUF,OUTPUT%TH%SITHBUF)
9703 OUTPUT%TH%ITHBUF(1:OUTPUT%TH%SITHBUF) = ITHBUFTMP(1:OUTPUT%TH%SITHBUF)
9705 If (LITHBUFMX < OUTPUT%TH%SITHBUF) then
9706 print*,'allocation error :lithbufmx, sithbuf=
',LITHBUFMX,OUTPUT%TH%SITHBUF
9708 ALLOCATE(RTHBUF(SRTHBUF), STAT=stat)
9709 IF(SRTHBUF > 0) CALL THSKEWC(
9710 1 RTHBUF ,OUTPUT%TH%ITHGRP ,OUTPUT%TH%ITHBUF,X ,IXC ,IXTG ,SKEW,NTHGRP)
9715 IF(NTHGRP01(1) > 0) THEN
9716 OUTPUT%TH%SITHGRPA = (NTHGRP01(1)+NBR_TH_MONVOL)*NITHGR
9717 CALL MY_ALLOC(OUTPUT%TH%ITHGRPA,OUTPUT%TH%SITHGRPA)
9718 OUTPUT%TH%ITHGRPA = 0
9722 OUTPUT%TH%SITHBUFA = 0
9725 IF(NPART+NTHPART>0) THEN
9726 IPARTTHI=>IPARTTH(1:2*(NPART+NTHPART))
9730 CALL HM_READ_THGROU(
9731 1 OUTPUT%TH%ITHGRPA ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9732 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9733 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFA ,
9734 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9735 5 NTHGRP1(1),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9736 6 1 ,1 ,IMERGE ,ITHVAR ,
9737 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9738 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9739 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9740 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9741 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9742 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9743 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9744 E MAP_TABLES, 1,INOM_OPT(31),INOM_OPT(32),SENSORS,
9745 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9748 CALL MY_ALLOC(OUTPUT%TH%ITHBUFA,OUTPUT%TH%SITHBUFA)
9749 OUTPUT%TH%ITHBUFA = ITHBUFTMP(1:OUTPUT%TH%SITHBUFA)
9751 OUTPUT%TH%SITHGRPA = 0
9752 OUTPUT%TH%SITHBUFA = 0
9753 CALL MY_ALLOC(OUTPUT%TH%ITHGRPA,OUTPUT%TH%SITHGRPA)
9754 CALL MY_ALLOC(OUTPUT%TH%ITHBUFA,OUTPUT%TH%SITHBUFA)
9759 IF(NTHGRP01(2) > 0) THEN
9760 OUTPUT%TH%SITHGRPB = (NTHGRP01(2)+NBR_TH_MONVOL)*NITHGR
9761 CALL MY_ALLOC(OUTPUT%TH%ITHGRPB,OUTPUT%TH%SITHGRPB)
9762 OUTPUT%TH%ITHGRPB = 0
9766 OUTPUT%TH%SITHBUFB = 0
9769 IF(NPART+NTHPART>0) THEN
9770 IPARTTHI=>IPARTTH(1+2*(NPART+NTHPART):4*(NPART+NTHPART))
9774 CALL HM_READ_THGROU(
9775 1 OUTPUT%TH%ITHGRPB ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9776 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9777 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFB ,
9778 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9779 5 NTHGRP1(2),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9780 6 1 ,1 ,IMERGE ,ITHVAR ,
9781 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9782 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9783 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9784 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9785 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9786 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9787 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9788 E MAP_TABLES, 2,INOM_OPT(31),INOM_OPT(32),SENSORS,
9789 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9792 CALL MY_ALLOC(OUTPUT%TH%ITHBUFB,OUTPUT%TH%SITHBUFB)
9793 OUTPUT%TH%ITHBUFB = ITHBUFTMP(1:OUTPUT%TH%SITHBUFB)
9795 OUTPUT%TH%SITHGRPB = 0
9796 OUTPUT%TH%SITHBUFB = 0
9797 CALL MY_ALLOC(OUTPUT%TH%ITHGRPB,OUTPUT%TH%SITHGRPB)
9798 CALL MY_ALLOC(OUTPUT%TH%ITHBUFB,OUTPUT%TH%SITHBUFB)
9803 IF(NTHGRP01(3) > 0) THEN
9804 OUTPUT%TH%SITHGRPC = (NTHGRP01(3)+NBR_TH_MONVOL)*NITHGR
9805 CALL MY_ALLOC(OUTPUT%TH%ITHGRPC,OUTPUT%TH%SITHGRPC)
9806 OUTPUT%TH%ITHGRPC = 0
9810 OUTPUT%TH%SITHBUFC = 0
9813 IF(NPART+NTHPART>0) THEN
9814 IPARTTHI=>IPARTTH(1+4*(NPART+NTHPART):6*(NPART+NTHPART))
9818 CALL HM_READ_THGROU(
9819 1 OUTPUT%TH%ITHGRPC ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9820 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9821 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFC ,
9822 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9823 5 NTHGRP1(3),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9824 6 1 ,1 ,IMERGE ,ITHVAR ,
9825 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9826 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9827 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9828 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9829 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9830 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9831 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9832 E MAP_TABLES, 3,INOM_OPT(31),INOM_OPT(32),SENSORS,
9833 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9836 CALL MY_ALLOC(OUTPUT%TH%ITHBUFC, OUTPUT%TH%SITHBUFC)
9837 OUTPUT%TH%ITHBUFC(1:OUTPUT%TH%SITHBUFC) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFC)
9839 OUTPUT%TH%SITHGRPC = 0
9840 OUTPUT%TH%SITHBUFC = 0
9841 CALL MY_ALLOC(OUTPUT%TH%ITHBUFC, OUTPUT%TH%SITHBUFC)
9842 CALL MY_ALLOC(OUTPUT%TH%ITHGRPC, OUTPUT%TH%SITHGRPC)
9847 IF(NTHGRP01(4) > 0) THEN
9848 OUTPUT%TH%SITHGRPD = (NTHGRP01(4)+NBR_TH_MONVOL)*NITHGR
9849 CALL MY_ALLOC(OUTPUT%TH%ITHGRPD,OUTPUT%TH%SITHGRPD)
9850 OUTPUT%TH%ITHGRPD = 0
9854 OUTPUT%TH%SITHBUFD = 0
9857 IF(NPART+NTHPART>0) THEN
9858 IPARTTHI=>IPARTTH(1+6*(NPART+NTHPART):8*(NPART+NTHPART))
9862 CALL HM_READ_THGROU(
9863 1 OUTPUT%TH%ITHGRPD ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9864 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9865 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFD ,
9866 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9867 5 NTHGRP1(4),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9868 6 1 ,1 ,IMERGE ,ITHVAR ,
9869 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9870 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9871 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9872 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9873 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9874 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9875 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9876 E MAP_TABLES, 4,INOM_OPT(31),INOM_OPT(32),SENSORS,
9877 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9880 CALL MY_ALLOC(OUTPUT%TH%ITHBUFD,OUTPUT%TH%SITHBUFD)
9881 OUTPUT%TH%ITHBUFD(1:OUTPUT%TH%SITHBUFD) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFD)
9883 OUTPUT%TH%SITHGRPD = 0
9884 OUTPUT%TH%SITHBUFD = 0
9885 ALLOCATE(OUTPUT%TH%ITHBUFD(OUTPUT%TH%SITHBUFD), STAT=stat)
9886 ALLOCATE(OUTPUT%TH%ITHGRPD(OUTPUT%TH%SITHGRPD), STAT=stat)
9891 IF(NTHGRP01(5) > 0) THEN
9892 OUTPUT%TH%SITHGRPE = (NTHGRP01(5)+NBR_TH_MONVOL)*NITHGR
9893 CALL MY_ALLOC(OUTPUT%TH%ITHGRPE,OUTPUT%TH%SITHGRPE)
9894 OUTPUT%TH%ITHGRPE = 0
9898 OUTPUT%TH%SITHBUFE = 0
9901 IF(NPART+NTHPART>0) THEN
9902 IPARTTHI=>IPARTTH(1+8*(NPART+NTHPART):10*(NPART+NTHPART))
9907 CALL HM_READ_THGROU(
9908 1 OUTPUT%TH%ITHGRPE ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9909 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9910 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFE ,
9911 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9912 5 NTHGRP1(5),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9913 6 1 ,1 ,IMERGE ,ITHVAR ,
9914 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9915 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9916 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9917 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9918 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9919 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9920 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9921 E MAP_TABLES, 5,INOM_OPT(31),INOM_OPT(32),SENSORS,
9922 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9925 CALL MY_ALLOC(OUTPUT%TH%ITHBUFE,OUTPUT%TH%SITHBUFE)
9926 OUTPUT%TH%ITHBUFE = ITHBUFTMP(1:OUTPUT%TH%SITHBUFE)
9928 OUTPUT%TH%SITHGRPE = 0
9929 OUTPUT%TH%SITHBUFE = 0
9930 CALL MY_ALLOC(OUTPUT%TH%ITHBUFE,OUTPUT%TH%SITHBUFE)
9931 CALL MY_ALLOC(OUTPUT%TH%ITHGRPE,OUTPUT%TH%SITHGRPE)
9936 IF(NTHGRP01(6) > 0) THEN
9937 OUTPUT%TH%SITHGRPF = (NTHGRP01(6)+NBR_TH_MONVOL)*NITHGR
9938 CALL MY_ALLOC(OUTPUT%TH%ITHGRPF,OUTPUT%TH%SITHGRPF)
9939 OUTPUT%TH%ITHGRPF = 0
9943 OUTPUT%TH%SITHBUFF = 0
9946 IF(NPART+NTHPART>0) THEN
9947 IPARTTHI=>IPARTTH(1+10*(NPART+NTHPART):12*(NPART+NTHPART))
9951 CALL HM_READ_THGROU(
9952 1 OUTPUT%TH%ITHGRPF ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9953 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9954 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFF ,
9955 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9956 5 NTHGRP1(6),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9957 6 1 ,1 ,IMERGE ,ITHVAR ,
9958 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9959 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9960 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9961 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9962 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9963 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9964 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9965 E MAP_TABLES, 6,INOM_OPT(31),INOM_OPT(32),SENSORS,
9966 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9969 CALL MY_ALLOC(OUTPUT%TH%ITHBUFF,OUTPUT%TH%SITHBUFF)
9970 OUTPUT%TH%ITHBUFF(1:OUTPUT%TH%SITHBUFF) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFF)
9972 OUTPUT%TH%SITHGRPF = 0
9973 OUTPUT%TH%SITHBUFF = 0
9974 CALL MY_ALLOC(OUTPUT%TH%ITHBUFF,OUTPUT%TH%SITHBUFF)
9975 CALL MY_ALLOC(OUTPUT%TH%ITHGRPF,OUTPUT%TH%SITHGRPF)
9980 IF(NTHGRP01(7) > 0) THEN
9981 OUTPUT%TH%SITHGRPG = (NTHGRP01(7)+NBR_TH_MONVOL)*NITHGR
9982 CALL MY_ALLOC(OUTPUT%TH%ITHGRPG,OUTPUT%TH%SITHGRPG)
9983 OUTPUT%TH%ITHGRPG = 0
9984 OUTPUT%TH%SITHBUFG = 0
9990 IF(NPART+NTHPART>0) THEN
9991 IPARTTHI=>IPARTTH(1+12*(NPART+NTHPART):14*(NPART+NTHPART))
9995 CALL HM_READ_THGROU(
9996 1 OUTPUT%TH%ITHGRPG ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9997 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9998 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFG ,
9999 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10000 5 NTHGRP1(7),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10001 6 1 ,1 ,IMERGE ,ITHVAR ,
10002 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10003 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10004 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10005 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10006 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10007 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10008 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10009 E MAP_TABLES, 7,INOM_OPT(31),INOM_OPT(32),SENSORS,
10010 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10013 CALL MY_ALLOC(OUTPUT%TH%ITHBUFG,OUTPUT%TH%SITHBUFG)
10014 OUTPUT%TH%ITHBUFG(1:OUTPUT%TH%SITHBUFG) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFG)
10016 OUTPUT%TH%SITHGRPG = 0
10017 OUTPUT%TH%SITHBUFG = 0
10018 CALL MY_ALLOC(OUTPUT%TH%ITHBUFG,OUTPUT%TH%SITHBUFG)
10019 CALL MY_ALLOC(OUTPUT%TH%ITHGRPG,OUTPUT%TH%SITHGRPG)
10024 IF(NTHGRP01(8) > 0) THEN
10025 OUTPUT%TH%SITHGRPH = (NTHGRP01(8)+NBR_TH_MONVOL)*NITHGR
10026 CALL MY_ALLOC(OUTPUT%TH%ITHGRPH,OUTPUT%TH%SITHGRPH)
10027 OUTPUT%TH%ITHGRPH = 0
10031 OUTPUT%TH%SITHBUFH = 0
10034 IF(NPART+NTHPART>0) THEN
10035 IPARTTHI=>IPARTTH(1+14*(NPART+NTHPART):16*(NPART+NTHPART))
10039 CALL HM_READ_THGROU(
10040 1 OUTPUT%TH%ITHGRPH ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10041 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10042 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFH ,
10043 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10044 5 NTHGRP1(8),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10045 6 1 ,1 ,IMERGE ,ITHVAR ,
10046 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10047 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10048 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10049 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10050 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10051 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10052 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10053 E MAP_TABLES, 8,INOM_OPT(31),INOM_OPT(32),SENSORS,
10054 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10057 CALL MY_ALLOC(OUTPUT%TH%ITHBUFH,OUTPUT%TH%SITHBUFH)
10058 OUTPUT%TH%ITHBUFH(1:OUTPUT%TH%SITHBUFH) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFH)
10060 OUTPUT%TH%SITHGRPH = 0
10061 OUTPUT%TH%SITHBUFH = 0
10062 CALL MY_ALLOC(OUTPUT%TH%ITHBUFH,OUTPUT%TH%SITHBUFH)
10063 CALL MY_ALLOC(OUTPUT%TH%ITHGRPH,OUTPUT%TH%SITHGRPH)
10068 IF(NTHGRP01(9) > 0) THEN
10069 OUTPUT%TH%SITHGRPI = (NTHGRP01(9)+NBR_TH_MONVOL)*NITHGR
10070 CALL MY_ALLOC(OUTPUT%TH%ITHGRPI,OUTPUT%TH%SITHGRPI)
10071 OUTPUT%TH%ITHGRPI = 0
10075 OUTPUT%TH%SITHBUFI = 0
10078 IF(NPART+NTHPART>0) THEN
10079 IPARTTHI=>IPARTTH(1+16*(NPART+NTHPART):18*(NPART+NTHPART))
10083 CALL HM_READ_THGROU(
10084 1 OUTPUT%TH%ITHGRPI ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10085 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10086 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFI ,
10087 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10088 5 NTHGRP1(9),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10089 6 1 ,1 ,IMERGE ,ITHVAR ,
10090 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10091 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10092 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10093 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10094 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10095 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10096 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10097 E MAP_TABLES, 9,INOM_OPT(31),INOM_OPT(32),SENSORS,
10098 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10101 CALL MY_ALLOC(OUTPUT%TH%ITHBUFI,OUTPUT%TH%SITHBUFI)
10102 OUTPUT%TH%ITHBUFI = ITHBUFTMP(1:OUTPUT%TH%SITHBUFI)
10104 OUTPUT%TH%SITHGRPI = 0
10105 OUTPUT%TH%SITHBUFI = 0
10106 CALL MY_ALLOC(OUTPUT%TH%ITHBUFI,OUTPUT%TH%SITHBUFI)
10107 CALL MY_ALLOC(OUTPUT%TH%ITHGRPI,OUTPUT%TH%SITHGRPI)
10111 IF(ALLOCATED(ITHPART)) DEALLOCATE(ITHPART)
10112 IF(ALLOCATED(ITHSUB)) DEALLOCATE(ITHSUB)
10113 IF(ALLOCATED(ITHBUFTMP)) DEALLOCATE(ITHBUFTMP)
10118 CALL TH_SURF_LOAD_PRESSURE(IGRSURF , OUTPUT%TH%TH_SURF , IPRES ,ILOADP ,LLOADP ,
10119 . SIZLOADP ,NLOADP ,SLLOADP ,NIBCLD ,NPRELD ,
10170 CALL THPINIT(OUTPUT%TH%ITHGRP,OUTPUT%TH%ITHBUF,IPARG ,DD_IAD ,LRIVET ,
10172 IF(NTHGRP01(1) > 0)
10173 . CALL THPINIT(OUTPUT%TH%ITHGRPA,OUTPUT%TH%ITHBUFA,IPARG ,DD_IAD ,LRIVET ,
10175 IF(NTHGRP01(2) > 0)
10176 . CALL THPINIT(OUTPUT%TH%ITHGRPB,OUTPUT%TH%ITHBUFB,IPARG ,DD_IAD ,LRIVET ,
10178 IF(NTHGRP01(3) > 0)
10179 . CALL THPINIT(OUTPUT%TH%ITHGRPC,OUTPUT%TH%ITHBUFC,IPARG ,DD_IAD ,LRIVET ,
10181 IF(NTHGRP01(4) > 0)
10182 . CALL THPINIT(OUTPUT%TH%ITHGRPD,OUTPUT%TH%ITHBUFD,IPARG ,DD_IAD ,LRIVET ,
10184 IF(NTHGRP01(5) > 0)
10185 . CALL THPINIT(OUTPUT%TH%ITHGRPE,OUTPUT%TH%ITHBUFE,IPARG ,DD_IAD ,LRIVET ,
10187 IF(NTHGRP01(6) > 0)
10188 . CALL THPINIT(OUTPUT%TH%ITHGRPF,OUTPUT%TH%ITHBUFF,IPARG ,DD_IAD ,LRIVET ,
10190 IF(NTHGRP01(7) > 0)
10191 . CALL THPINIT(OUTPUT%TH%ITHGRPG,OUTPUT%TH%ITHBUFG,IPARG ,DD_IAD ,LRIVET ,
10193 IF(NTHGRP01(8) > 0)
10194 . CALL THPINIT(OUTPUT%TH%ITHGRPH,OUTPUT%TH%ITHBUFH,IPARG ,DD_IAD ,LRIVET ,
10196 IF(NTHGRP01(9) > 0)
10197 . CALL THPINIT(OUTPUT%TH%ITHGRPI,OUTPUT%TH%ITHBUFI,IPARG ,DD_IAD ,LRIVET ,
10204 DEALLOCATE(TAG_PART,TAGMON,TAGRBY,TAGINT,TAGCYL,TAGLNK)
10205 DEALLOCATE(TAGRB3,TAGRB2,TAGJOIN,TAGMPC,TAG_MAT)
10210 ERR_MSG='dynamic storage madymo link
'
10211 ERR_CATEGORY='dynamic storage madymo link
'
10212 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10213 SRCONX = NCONX*NRCNX
10214 ALLOCATE(RCONX(SRCONX) ,STAT=stat)
10219 IF(NRBMERGE > 0) THEN
10220 NRBODY = NRBYKIN + NRBYLAG
10229 1 LENWA ,NTHWA ,NAIRWA ,NUMELS ,NUMELQ,
10230 2 NUMELC,NUMELTG,NUMELT ,NUMELP ,NUMELR,
10231 3 NUMNOD,NMNT ,L_MUL_LAG1,L_MUL_LAG,MAXNX ,
10232 4 LWASPH,NUMSPH ,LWASPIO, NRCVVOIS0,
10233 5 LWAMP_L,LWANMP_L ,GLOB_THERM%ITHERM)
10234 LWAMP = LWAMP_L !< Copy values in common
10235 LWANMP = LWANMP_L !< Copy values in common
10237 ALLOCATE(MWA(LENWA) , STAT=stat)
10239 CALL SETMULTI(IPARI )
10246 ERR_MSG='INTERFACE initialization phase 2
'
10247 ERR_CATEGORY='interfaces
'
10248 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10251 ALLOCATE(MS_B(NUMNOD),STAT=stat)
10252 MS_B(1:NUMNOD)=MS(1:NUMNOD)
10254 ALLOCATE(IN_B(NUMNOD),STAT=stat)
10255 IN_B(1:NUMNOD)=IN(1:NUMNOD)
10260.AND.
IF(NS10E>0N2D==0) CALL STIFN0_ND(ICNDS10,STIFFN)
10261 IF(NINTER > 0) THEN
10262 CALL ININTR2(IPARI ,INSCR ,X ,
10263 . IXS ,IXQ ,IXC ,PM ,GEO ,
10264 . INSCR ,ITAB ,MS ,NPBY ,LPBY ,
10265 . MWA ,D ,I2NSNT ,IN ,
10266 . STIFFN,STIFINT ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),INOD_PXFEM ,MS_PLY,
10267 . INTBUF_TAB,STIFINTR,ITAGND,ICNDS10,MS_B,IN_B,NSTRF,ITAGCYC,
10268 . IRBE2 ,IRBE3 ,LRBE3 ,
10269 . KNOD2ELS ,NOD2ELS , IXS10 ,IXS16 ,IXS20,
10276.AND.
IF(NS10E>0N2D==0) CALL STIFN1_ND(ICNDS10,STIFFN)
10277 IF(NDAMP>0) CALL DAMPDTNODA(MS_B,IN_B,STIFFN,STIFFN(NUMNOD+1),
10282 CALL OUTRI(DTELEM,IXS,IXQ,IXC,IXT,IXP,IXR,IXTG,
10283 . KXX,KXSP,KXIG3D,IGEO,NUMEL)
10287 CALL OUTRIN(MS_B,IN_B,STIFFN,STIFFN(NUMNOD+1),ITAB,DTNODA)
10291 ERR_MSG='added mass estimation
'
10292 ERR_CATEGORY='added mass estimation
'
10293 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10294 IF(N2D==0) CALL ADD_MASS_STAT(MS_B,IN_B,STIFFN,STIFFN(NUMNOD+1),ITAB,TOTMAS)
10299 CALL R2R_SPEEDUP(DTELEM,DTNODA,DT_R2R,COST_R2R,ISOLOFF,
10300 . ISHEOFF,ITRUOFF ,IPOUOFF ,IRESOFF ,ITRIOFF,
10305 DEALLOCATE(STIFINT)
10306 DEALLOCATE(STIFINTR)
10314 ERR_MSG='rbe3 initialization
'
10315 ERR_CATEGORY='rbe3
'
10316 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10317 IF(SIRBE3 > 0) THEN
10318 CALL INIRBE3(IRBE3 ,LRBE3 ,FRBE3 ,SKEW ,X ,
10320 . NOM_OPT(LNOPT1*INOM_OPT(14)+1))
10324 ERR_MSG='kinematic conditions check
'
10325 ERR_CATEGORY='kinematic conditions
'
10326 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10331 CALL RIGMODIF1_ND(NPBY,LPBY,ITAGND)
10332 CALL RBE2MODIF1_ND(IRBE2,LRBE2,ITAGND)
10333 CALL BCSMODIF_ND(ICODE, ITAGND,ICNDS10,ITAB)
10334 CALL FIXMODIF_ND(IBFV , ITAGND,ICNDS10,ITAB)
10335 CALL BCSCYCMODIF_ND(IBCSCYC,LBCSCYC,ITAGND,ITAB)
10343 CALL KINCHK(D ,RWBUF ,ITAB ,NPRW ,LPRW ,KINET ,
10344 . NPBY , LPBY ,IRBE2 ,LRBE2 ,IRBE3 ,LRBE3 ,
10345 . NOM_OPT ,INOM_OPT(5),INOM_OPT(13),INOM_OPT(14) ,
10348 . CALL INIVCHK(D ,RWBUF,ITAB,NPRW,LPRW,KINET,
10349 1 NPBY, LPBY,IRBE2,LRBE2,IRBE3,LRBE3,
10350 2 FRBE3,X ,SKEW ,V ,VR )
10353 . CALL MADCHK(D ,ITAB ,ICONX(7*NCONX+1))
10359 ERR_MSG='mass array allocation
'
10360 ERR_CATEGORY='iniial mass
'
10361 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10362 ALLOCATE(MS0(NUMNOD) ,STAT=stat)
10363 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
10364 . MSGTYPE=MSGERROR,
10366 MS0(1:NUMNOD)=MS(1:NUMNOD)
10373 SIBUFSSG_IO = 4*NSEG_IO
10374 ALLOCATE(IBUFSSG_IO(SIBUFSSG_IO) ,STAT=stat)
10375 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
10376 . MSGTYPE=MSGERROR,
10378 IBUFSSG_IO(1:SIBUFSSG_IO) = 0
10379 CALL SET_IBUFSSG_IO(ISPHIO, IGRSURF, IBUFSSG_IO)
10381 ALLOCATE(IBUFSSG_IO(1))
10385!--------------------------------------------
10386! Split the surface & add the MONVOL nodes
10387! on a given processor
10388!--------------------------------------------
10389 CALL PYTHON_DUPLICATE_NODES(ITAB,NUMNOD,NSPMD) ! nodes used in the python functions must be on all processors
10390 CALL IGRSURF_SPLIT(SCEP,CEP,T_MONVOL,IGRSURF,IGRSURF_PROC)
10394 ERR_MSG='domain decomposition phase 2
'
10395 ERR_CATEGORY='internal
'
10396 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10397 SFR_IAD = (NSPMD+1)*2
10398 ALLOCATE(FR_IAD(SFR_IAD))
10400 ALLOCATE(CELI2(I2NSNT))
10401 ALLOCATE(CEPI2(I2NSNT))
10402 ALLOCATE(ADDCNI2(0:NUMNOD+1))
10404 ALLOCATE(ISKWP(NUMSKW+1))
10405 ALLOCATE(NSKWP(NSPMD))
10406 ALLOCATE(ISENSP(2*SENSORS%NSENSOR))
10407 ALLOCATE(NSENSP(NSPMD))
10408 ALLOCATE(IACCP(NACCELM))
10409 ALLOCATE(NACCP(NSPMD))
10410 ALLOCATE(IGAUP(NBGAUGE))
10411 ALLOCATE(NGAUP(NSPMD))
10412 ALLOCATE(TAG_SKN(NUMSKW+NSUBMOD+1))
10413 ALLOCATE(SKEWS%MULTIPLE_SKEW(NUMSKW+1))
10414 ISKWP(1:NUMSKW+1) = 0
10415 TAG_SKN(1:NUMSKW+NSUBMOD+1) = 0
10418.NOT.
IF( ALLOCATED(IBVEL)) ALLOCATE(IBVEL(0)) ! Deprecated option?
10419.NOT.
IF( ALLOCATED(LBVEL)) ALLOCATE(LBVEL(0)) ! Deprecated option?
10422 1 DD_IAD ,IPARI ,IBCL ,NPBY ,
10423 2 LPBY ,LRIVET ,IBVEL ,LBVEL ,
10424 3 IPARG ,CEL ,IXS ,IXS10 ,IXS20 ,
10425 4 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
10426 5 IXR ,IXTG ,IXTG1 ,T_MONVOL ,
10427 6 IGRSURF,ADDCNE ,LCNE ,GEO ,
10428 7 NPRW ,LPRW ,LCNI2G ,ADDCNI2 ,CEPI2 ,
10429 8 CELI2 ,I2NSNT ,ISKWN ,ISKWP ,NSKWP ,
10430 9 ISENSP ,NSENSP ,IACCP ,NACCP ,
10431 A LACCELM,IBCV ,IRBE3 ,LRBE3 ,FRONT_RM,
10432 B IRBYM ,LNRBYM ,CEP ,IBCR ,IRBE2 ,
10433 C LRBE2 ,CEPSP ,CELSPH ,ILOADP ,LLOADP ,
10434 D LGAUGE ,IGAUP ,NGAUP ,INTBUF_TAB,IBFFLUX ,
10435 E ICNDS10,ITAGND ,IGEO ,TAG_SKN ,SKEWS%MULTIPLE_SKEW,
10436 F IBFV ,IBCSCYC ,LBCSCYC,R_SKEW ,IPM,
10437 G SENSORS,SCEP ,EBCS_TAB,LOADS,IFRAME,
10438 H GLOB_THERM%NICONV ,GLOB_THERM%NIRADIA ,GLOB_THERM%NITFLUX,
10439 I GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX,
10440 J SENSOR_USER_STRUCT)
10458 ALLOCATE(CELCND(NS10E))
10459 ALLOCATE(CEPCND(NS10E))
10460 ALLOCATE(ADDCNCND(0:NUMNOD+1))
10461 CALL PRE_CNDPON(ICNDS10,ADDCNCND,CEPCND,CELCND ,ITAGND )
10462 LCNCND = ADDCNCND(NUMNOD+1)-ADDCNCND(1)
10464 ALLOCATE(CNCND(LCNCND))
10466 CALL FILLCNCND(CNCND ,ADDCNCND,ICNDS10,ITAGND)
10472 ERR_MSG='process bem
for spmd
'
10473 ERR_CATEGORY='process bem
for spmd
'
10474 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10475.AND.
IF(NFLOW>0 NSPMD > 1) CALL FLOWDEC(IFLOW)
10480 ERR_MSG='closing tmp input file
'
10481 ERR_CATEGORY='internal
'
10482 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10483 IF(IPID/=0) CLOSE (UNIT=IIN)
10488 ERR_MSG='animation file writing
'
10489 ERR_CATEGORY='animation file writing
'
10490 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10491 WRITE(ISTDO,'(a)
')TITRE(46)
10492 IF(IOUTPUT>0) CALL DESOUT(
10493 . X ,IXS ,IXQ ,IXC ,IXT ,
10494 . IXP ,IXR ,IXTG ,ITAB ,PM ,
10495 . GEO ,MS ,IXS10 ,IGEO ,IPM ,
10496 . KXSP ,IPART ,IPARTSP,NAMES_AND_TITLES )
10502.AND..OR.
IF(ANIM_VERS>=40(DSANIM==1
10504.OR.
. NMANIM>0IFVANI>0)) THEN
10505 NEL3D = NUMELS + NUMSPH + 3*NUMELS16 + 27*NUMELIG3D
10506 NEL2D = NUMELC + NUMELTG + NUMELQ
10507 NEL1D = NUMELT + NUMELP + 2*NUMELR
10508 NEL = MAX(NEL1D,NEL2D,NEL3D)
10511 SWAFT=MAX(3*NUMNOD,6*NEL3D,3*NEL2D,9*NEL1D)
10512 SMAS=NEL+3*NUMELS16
10513 SWA4=3*NUMNOD+2*NUMELS16
10516 SXNORM=3*NUMNOD+2*NUMELS16
10533 NELEM=NUMELC+NUMELTG+NUMELS+NUMELR +
10534 . NUMELP+NUMELT +NUMELQ+NUMELX
10536 CALL MY_ALLOC(DNULL,3*NUMNOD)
10561 1 X ,ELBUF ,IXS ,IXQ ,IXC ,
10562 2 IXT ,IXP ,IXR ,IXTG ,SWAFT ,
10563 3 IPARG ,PM ,GEO ,SKEW ,ITAB ,
10564 4 LPBY ,NPBY ,NSTRF ,RWBUF ,NPRW ,
10565 5 IPART ,IPARTS ,IPARTQ ,IPARTC ,
10566 6 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
10568 8 IGRSURF ,BUFSF ,IPARTX ,KXSP ,IXSP ,
10569 9 IPARTSP ,SPBUF ,IXS10 ,IXS20 ,IXS16 ,
10570 A IPM, IGEO, SMATER, SEL2FA, SNFACPTX,
10571 B SIXEDGE, SOFFX1, SNUMX1, SXNORM, SINVERT,
10572 C SFUNC1, SIAD , NMANIM, DNULL, SMAS,
10573 D MS ,FXANI ,MBUFEL ,MDEPL ,NSLEVEL ,
10574 E ELSUB, DSANIM, NELEM, CEP, CEPSP,
10575 F NOM_OPT ,INOM_OPT(5),INOM_OPT(8),
10576 G ELBUF_TAB,SPH2SOL ,SUBSETS )
10584.OR..AND.
IF((IS_DYNA /= 0 NB_DYNA_INCLUDE /= 0) (NGINE+NANIM_ENG /= 0))THEN
10585 CALL READ_ENGINE_DRIVER(IGRPART,IS_DYNA,NB_DYNA_INCLUDE)
10590 CALL ST_QAPRINT_DRIVER(
10591 1 IGEO ,GEO ,BUFGEO ,IPM ,PM ,
10592 2 BUFMAT ,NOM_OPT ,INOM_OPT(1) ,NUMLOADP ,ILOADP ,
10593 3 LLOADP ,LOADP ,IBCL ,FORC ,IPRES ,
10594 4 PRES ,NPBY ,LPBY ,RBY ,IBCR ,
10595 5 FRADIA ,IBCV ,FCONV ,IBFTEMP ,FBFTEMP ,
10596 6 IGRV ,LGRAV ,GRAV ,IBFFLUX ,FBFFLUX ,
10597 7 ITAB ,V , VR ,W ,ICODE ,
10598 8 ISKEW ,ICFIELD ,LCFIELD ,CFIELD ,DAMPR ,
10599 9 TEMP ,IBCSLAG ,IPARI ,INTBUF_TAB ,CLUSTERS ,
10600 A IBOX ,IPMAS ,IBFV ,VEL ,NIMPACC ,
10601 B LACCELM ,ACCELM ,NOM_SECT ,NSTRF ,SECBUF ,
10602 C SKEW ,ISKWN ,XFRAME ,T_MONVOL ,T_MONVOL_METADATA,
10603 D I2RUPT ,AREASL ,INTBUF_FRIC_TAB ,NPFRICORTH ,MAT_ELEM ,
10604 E PFRICORTH ,IREPFORTH ,PHIFORTH ,VFORTH ,XREFC ,
10605 F XREFTG ,XREFS ,TAGXREF ,IXS ,IXC ,
10606 G IXTG ,RWBUF ,NPRW ,LPRW ,ITHVAR ,
10607 H IPART ,SUBSETS ,IPARTTH ,NTHGRPMX ,NIMPDISP ,
10608 M NIMPVEL ,DETONATORS ,IBCSCYC ,NPC ,TF ,
10609 N TABLE ,NPTS ,IRBE3 ,LRBE3 ,FRBE3 ,
10610 P MGRBY ,IXS10 ,ISOLNOD ,IXR ,R_SKEW ,
10611 O IXP ,IXT ,X ,THKE ,SH4ANG ,
10612 Q THKEC ,SH3ANG ,SET ,LSUBMODEL ,IGRNOD ,
10613 R IGRPART ,IGRBRIC ,IGRSH4N ,IGRSH3N ,IGRQUAD ,
10614 S IGRBEAM ,IGRTRUSS ,IGRSPRING ,IGRSURF ,IGRSLIN ,
10615 T IXQ ,ISPCOND ,RTRANS ,IRAND ,ALEA ,
10616 U XSEED ,XLAS ,ILAS ,IRBE2 ,LRBE2 ,
10617 V KXSP ,IPARTSP ,DRAPE ,IXR_KJ ,IACTIV ,
10618 W FACTIV ,UNITAB ,NPBYL ,LPBYL ,RBYL ,
10619 X XYZREF ,SENSORS ,FUNC2D ,
10620 Y INICRACK ,IPRELOAD ,PRELOAD ,IFLAG_BPRELOAD,IBMPC ,
10621 Z IBMPC2 ,IBMPC3 ,IBMPC4 ,RBMPC ,LJOINT ,
10622 A NNLINK ,LNLINK ,BUFSF ,SBUFSF ,STACK%PM ,
10623 B STACK%GEO ,STACK%IGEO ,IPARG ,IPADMESH ,PADMESH ,
10624 C LIFLOW ,LRFLOW ,IFLOW ,RFLOW ,
10625 D SH4TREE ,SH3TREE ,SH4TRIM ,SH3TRIM ,QP_IPERTURB ,
10626 E QP_RPERTURB ,LLINAL ,LINALE ,FVM_INIVEL ,GJBUFI ,
10627 F GJBUFR ,MS ,IN ,LGAUGE ,GAUGE ,
10628 G KXX ,IXX ,IPARTX ,LRIVET ,IXS16 ,
10629 H ICONX ,FXBIPM ,FXBFILE_TAB ,EIGIPM ,EIGRPM ,
10630 I ISPHIO ,VSPHIO ,EBCS_TAB ,INIMAP1D ,INIMAP2D ,
10631 J NSIGSH ,SIGSH ,NSIGI ,SIGSP ,NSIGS ,
10632 K SIGI ,NSIGBEAM ,SIGBEAM ,NSIGTRUSS ,SIGTRUSS ,
10633 L NSIGRS ,SIGRS ,MERGE_NODE_TAB ,MERGE_NODE_TOL,
10634 M IMERGE ,NMERGE_TOT ,IEXLNK ,DRAPEG ,USER_WINDOWS ,OUTPUT ,
10635 N DEFAULTS ,GLOB_THERM ,PBLAST ,IBEAM_VECTOR ,RBEAM_VECTOR ,
10642 DEALLOCATE(SIGBEAM)
10643 DEALLOCATE(SIGTRUSS)
10644 DEALLOCATE(IBEAM_VECTOR)
10645 DEALLOCATE(RBEAM_VECTOR)
10649 CALL CPP_DELETE_MODEL()
10651 IF(NINTER > 0) THEN
10655 IF(NRBMERGE > 0) THEN
10661 IF(NFUNC2D > 0) THEN
10663 DEALLOCATE(FUNC2D(KK)%XVAL, FUNC2D(KK)%FVAL)
10667 IF(ALLOCATED(RNOISE)) DEALLOCATE(RNOISE)
10668 IF(ALLOCATED(PERTURB)) DEALLOCATE(PERTURB)
10669 IF(ALLOCATED(QP_IPERTURB)) DEALLOCATE(QP_IPERTURB)
10670 IF(ALLOCATED(QP_RPERTURB)) DEALLOCATE(QP_RPERTURB)
10673.AND..AND.
IF(NINTER > 0 NINTERFRIC >0 IORTHFRICMAX > 0) THEN
10675 DEALLOCATE(PFRICORTH ,IREPFORTH , VFORTH ,PHIFORTH )
10681 ERR_MSG='restart file(s) writing
'
10682 ERR_CATEGORY='restart file(s) writing
'
10683 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10688 IF(RESTART_FILE==1) WRITE(ISTDO,'(a)
')TITRE(50)
10689 IF(RESTART_FILE==0) WRITE(ISTDO,'(a)
')CHECK_MESSAGE(1)( 1:len_trim(CHECK_MESSAGE(1)) )
10693 ILEN = MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,NUMELTG)
10694 IF(LCNE>0) ALLOCATE(CNE(LCNE),STAT=stat)
10695 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='cne
')
10697 1 CNE ,LCNE ,IXS ,IXS10 ,IXS20 ,
10698 2 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
10699 3 IXR ,IXTG ,IXTG1 ,T_MONVOL ,
10700 4 IGRSURF,IBCL ,ADDCNE ,CEP ,
10701 5 ILEN ,GEO ,IBCV ,IBCR ,IBFFLUX ,
10702 6 ILOADP ,LLOADP ,CEL ,EBCS_TAB,LOADS,
10703 7 GLOB_THERM%NICONV ,GLOB_THERM%NIRADIA ,GLOB_THERM%NITFLUX,
10704 8 GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX)
10706 IF(LCNI2G>0) ALLOCATE(CNI2(LCNI2G))
10708 1 CNI2 ,LCNI2G,ADDCNI2,IPARI, INTBUF_TAB )
10714 LENVOLU = NIMV*NVOLU+LICBAG+LIBAGJET+LIBAGHOL+LIBAGALE
10719 LENTHG = OUTPUT%TH%SITHBUF
10729 ! Allocation and filling of specific ADDCNE and CNE for non-local
10730 IF(NLOC_DMG%IMOD>0) THEN
10731 ! Allocation of ADDCNE for non-local nodes
10732.NOT.
IF(ALLOCATED(NLOC_DMG%ADDCNE)) ALLOCATE(NLOC_DMG%ADDCNE(0:NLOC_DMG%NNOD+1))
10733 NLOC_DMG%ADDCNE(0:NLOC_DMG%NNOD+1) = 0
10734 ! Filling ADDCNE for non-local nodes
10735 CALL BUILD_ADDCNEL_SUB(ADDCNE ,CNE ,NLOC_DMG%ADDCNE,NLOC_DMG%INDX,NLOC_DMG%NNOD)
10736 ! Allocation of CNE for non-local nodes
10737.NOT.
IF(ALLOCATED(NLOC_DMG%CNE)) ALLOCATE(NLOC_DMG%CNE(NLOC_DMG%ADDCNE(NLOC_DMG%NNOD+1)-1))
10738 NLOC_DMG%CNE(1:NLOC_DMG%ADDCNE(NLOC_DMG%NNOD+1)-1) = 0
10739 ! Filling CNE for non-local nodes
10740 CALL BUILD_CNEL_SUB(NLOC_DMG%CNE,NLOC_DMG%ADDCNE,CNE,ADDCNE,NLOC_DMG%INDX,NLOC_DMG%NNOD)
10745.AND.
IF((NSUBDOM>0)(FLG_R2R_ERR==0)) THEN
10746 CALL R2R_CLEAN_INTER(IPARI,INTBUF_TAB,IPARTC,IPARTG,IPARTS,ISOLNOD)
10748 WRITE(ISTDO,'(a)
')' .. multidomains domdec synchronization
'
10749 CALL R2R_DOMDEC(IEXLNK,IGRNOD,FRONTB_R2R,DT_R2R,1)
10751 CALL R2R_DOMDEC(IEXLNK,IGRNOD,FRONTB_R2R,DT_R2R,2)
10759 DEALLOCATE(IKINE1LAG)
10775 CALL SET_INTERCEP(IPARI,INTERCEP,1,INTBUF_TAB,ITAB,CEP)
10779.AND.
IF(NSPMD > 1 IDDLEVEL > 0) THEN
10780 CALL SET_FRONT8(IPARI,INTERCEP,INTBUF_TAB,INTERT8,NBT8,ITAB)
10788 CALL PREPARE_INT25(INTBUF_TAB, IPARI, INTERCEP, NRTMT_25)
10789 CALL PREPARE_SPLIT_I25E2E(NSPMD,INTBUF_TAB,IPARI,INTERCEP)
10792 ALLOCATE(ADDCSRECT(NUMNOR+1),CSRECT(4*NRTMT_25),STAT=stat)
10793 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
10794 . MSGTYPE=MSGERROR,
10796 ADDCSRECT(1:NUMNOR+1)=0
10799 . CALL BUILD_CSRECT(INTBUF_TAB,IPARI,CSRECT,ADDCSRECT)
10803! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10811! /LINE are not used in the engine and the split is wrong in
10812! case of useless line (ie. when a line is defined but not
10813! used by an interface or other stuffs) -->
10814! 2 nodes (defining a segment) can be on 2 different processors
10815! in this case, the segment is not written in the restart file
10816! one could also define the nodes on the same processor but
10817! it will increase the comm.
10818! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10819 CALL LINE_DECOMP(IGRSLIN)
10820!--------------------------------------------
10828 CALL GLOBVARS(IGEO,IXR ,NSTRF )
10829 IF(NPLYMAX > 0)THEN
10830 CALL SPMD_ANIM_PLY_INIT(IGEO, GEO ,IPARG ,IXC ,IXTG ,
10831 . IPARTC,IPARTQ,IPARTG ,STACK )
10837! compute the size of TAG_SCRATCH and check if /INTER/24 or /25 is used
10838 CALL GET_SIZE_INTER24(I24MAXNSNE2,NINTER,NPARI,IPARI,FLAG_24_25)
10839! compute the local number of element
10840 CALL GET_SIZE_NUMNOD_LOCAL(NUMNOD,NUMNOD_L)
10842 ALLOCATE( ALE_ELM(NSPMD) )
10843.AND.
IF( (NUMELS>0)(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG/=0) ) THEN
10844 CALL SPLIT_CFD_SOLIDE(NUMELS,ALE_CONNECTIVITY,IXS,ALE_ELM,SIZE_ALE_ELM)
10846 SIZE_ALE_ELM(1:NSPMD) = 0
10848 ! -----------------------------------------
10849 ! reverse connectivity for FVM solver : useful to ensure the parith/on
10850 IF(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG/=0) THEN
10851 ALLOCATE( INDX_S(NUMELS) )
10852 ALLOCATE( INDX_Q(NUMELQ) )
10853 ALLOCATE( INDX_TG(NUMELTG) )
10854 ALLOCATE( FACE_ELM_S(6*NUMELS,2) )
10855 ALLOCATE( FACE_ELM_Q(4*NUMELQ,2) )
10856 ALLOCATE( FACE_ELM_TG(3*NUMELTG,2) )
10858 INDX_S(1:NUMELS) = 0
10859 INDX_Q(1:NUMELQ) = 0
10860 INDX_TG(1:NUMELTG) = 0
10861 FACE_ELM_S(1:6*NUMELS,1:2) = 0
10862 FACE_ELM_Q(1:4*NUMELQ,1:2) = 0
10863 FACE_ELM_TG(1:3*NUMELTG,1:2) = 0
10864.AND.
BOOL_ALE_TG = (N2D/=0MULTI_FVM%IS_USED)
10865 CALL MULTI_CONNECTIVITY( INDX_S,INDX_Q,INDX_TG,
10866 1 FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,
10867 2 IXS,IXQ,IXTG,CEP,ALE_CONNECTIVITY,BOOL_ALE_TG)
10870 ALLOCATE( INDX_S(0) )
10871 ALLOCATE( INDX_Q(0) )
10872 ALLOCATE( INDX_TG(0) )
10873 ALLOCATE( FACE_ELM_S(0,0) )
10874 ALLOCATE( FACE_ELM_Q(0,0) )
10875 ALLOCATE( FACE_ELM_TG(0,0) )
10877 ! -----------------------------------------
10879 ! -----------------------------------------
10880 ! split the LOADS structure on the different processors
10881 CALL SPLIT_PCYL(LOADS%NLOAD_CYL,LOADS,LOADS_PER_PROC)
10882 ! -----------------------------------------
10884 ! -----------------------------------------
10885 ! split the BCs wall data structure
10886 CALL SPLIT_BCS_WALL(BCS_PER_PROC, CEP, SCEP, NSPMD)
10887 ! -----------------------------------------
10889 ! -----------------------------------------
10890 ! prepare the rwall splitting
10891 call alloc_constraint_struct(nrwall,nspmd,constraint_struct)
10892 call split_rwall(nrwall,nspmd,nnprw,slprw,nprw,lprw,constraint_struct)
10893 ! -----------------------------------------
10897! -------------------------------------------------------------
10898! RESTART FILE WRITING
10899! if -norst cdl is used or if /RFILE/OFF is used, then
10900! restart files are not generated
10901! -------------------------------------
10902 IF(RESTART_FILE==1) THEN
10905 ALLOCATE(TAG_SKINS6(NUMELS))
10906 CALL SURFEXT_TAGN(IXS ,KNOD2ELS,NOD2ELS ,IXS10 ,TAG_SKINS6,itab)
10909.NOT.
IF( ALLOCATED(PARTSAV)) ALLOCATE(PARTSAV(0))
10910.NOT.
IF( ALLOCATED(ADMSMS)) ALLOCATE(ADMSMS(0))
10911.NOT.
IF( ALLOCATED(DMELC)) ALLOCATE(DMELC(0))
10912.NOT.
IF( ALLOCATED(DMELS)) ALLOCATE(DMELS(0))
10913.NOT.
IF( ALLOCATED(DMELTG)) ALLOCATE(DMELTG(0))
10914.NOT.
IF( ALLOCATED(DMELTR)) ALLOCATE(DMELTR(0))
10915.NOT.
IF( ALLOCATED(DMELP)) ALLOCATE(DMELP(0))
10916.NOT.
IF( ALLOCATED(DMELRT)) ALLOCATE(DMELRT(0))
10917.NOT.
IF( ALLOCATED(RES_SMS)) ALLOCATE(RES_SMS(0))
10918.NOT.
IF( ALLOCATED(DIAG_SMS)) ALLOCATE(DIAG_SMS(0))
10919.NOT.
IF( ALLOCATED(CNE_PXFEM)) ALLOCATE(CNE_PXFEM(0))
10920.NOT.
IF( ALLOCATED(CEL_PXFEM)) ALLOCATE(CEL_PXFEM(0))
10921.NOT.
IF( ALLOCATED(MSZ2)) ALLOCATE(MSZ2(0))
10922.NOT.
IF( ALLOCATED(XFEM_PHANTOM)) ALLOCATE(XFEM_PHANTOM(0))
10923!$OMP PARALLEL PRIVATE(ITASK,P,pMEMFLOW,INDX_NM,NINDX_NM,TAG_NM)
10924!$OMP+ PRIVATE(NINDX_SCRT,INDX_SCRT,TAG_SCRATCH)
10928 ALLOCATE( TAG_NM(NUMNOD) )
10929 ALLOCATE( INDX_NM(NUMNOD) )
10930 ALLOCATE( TAG_SCRATCH(I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) )
10931 ALLOCATE(INDX_SCRT(I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) )
10932 TAG_NM(1:NUMNOD) = 0
10933 INDX_NM(1:NUMNOD) = 0
10934 TAG_SCRATCH(1:I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) = 0
10935 INDX_SCRT(1:I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) = 0
10937 ALLOCATE(TAG_NM(0))
10938 ALLOCATE(INDX_NM(0))
10939 ALLOCATE( TAG_SCRATCH(0) )
10940 ALLOCATE(INDX_SCRT(0) )
10950#if defined(_OPENMP)
10951 ITASK = OMP_GET_THREAD_NUM()
10954 IF(P > NSPMD) GOTO 221
10955 !Sending clean addresses for unallocated arrays in case P=0
10956 NULLIFY(pMEMFLOW) ; IF(NSPMD > 0) pMEMFLOW => MEMFLOW(1,P) !MEMFLOW(2,1:NSPMD) ; NSPMD =0 => MEMFLOW(1,0) is undefined
10960 1 P ,CEP ,CEL ,IGEO ,MAT_ELEM ,
10961 2 IPM ,ICODE ,ISKEW ,ISKWN ,BID13 ,
10962 3 IBCSLAG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
10963 4 IPARTT ,IPARTP ,IPARTR ,IPARTG ,DETONATORS ,
10964 5 IPARTX ,NPC ,IXTG ,GROUP_PARAM_TAB,
10965 6 IXTG1 ,IXS ,IXS10 ,IXS20 ,IXS16 ,
10966 7 IXQ ,IXC ,IXT ,IXP ,IXR ,
10967 8 ITAB ,ITABM1 ,GJBUFI ,ALE_CONNECTIVITY%NALE ,
10968 9 ALE_CONNECTIVITY,
10969 A KXX ,IXX ,IBCL ,IBFV ,
10970 B ILAS ,LACCELM ,NNLINK ,LNLINK ,
10971 C IPARG ,IGRV ,LGRAV ,IBVEL ,LBVEL ,
10972 D IACTIV ,FACTIV ,KINET ,IPARI ,NPRW ,
10973 E LPRW ,ICONX ,NPBY ,
10974 F LPBY ,LRIVET ,NSTRF ,LJOINT ,NODPOR ,
10975 G MONVOL ,ICONTACT ,LAGBUF ,
10976 H FR_IAD ,X ,D ,V ,VR ,
10977 I DR ,THKE ,DAMPR ,DAMP ,MS ,
10978 J IN ,TF ,PM ,SKEW ,XFRAME ,
10979 K GEO ,EANI ,BUFMAT ,BUFGEO ,BUFSF ,
10980 L RBMPC ,GJBUFR ,W ,VEUL ,FILL ,
10981 M DFILL ,WB ,DSAVE ,ASAVE ,MSNF ,
10982 N SPBUF ,FORC ,VEL ,FSAV ,FZERO ,
10983 O XLAS ,ACCELM ,FBVEL ,GRAV ,
10984 P FR_WAVE ,FAILWAVE ,PARTS0 ,ELBUF ,
10985 Q RWBUF ,RWSAV ,RBY ,RIVET ,
10986 R SECBUF ,VOLMON ,RCONX ,NLOC_DMG ,
10987 S FVMAIN ,LIBAGALE ,LENTHG ,LBUFMAT ,LBUFGEO ,
10988 T LBUFSF ,SXLAS ,LNOM_OPT ,SILAS ,
10989 U LENVOLU ,NPTS ,CNE ,LCNE ,
10990 V ADDCNE ,CNI2 ,LCNI2G ,ADDCNI2 ,CEPI2 ,
10991 W CELI2 ,I2NSNT ,PROBINT ,DDSTAT(1,P) ,PM1SHF,
10993 Z KXSP ,IXSP ,NOD2SP ,CEPSP ,
10994 a NTHWA ,NAIRWA ,NMNT ,L_MUL_LAG1 ,L_MUL_LAG ,
10995 b LWASPIO ,IPARTSP ,ISPCOND ,PM1SPH ,
10997 d EIGIPM ,EIGIBUF ,EIGRPM ,
10998 e IFLOW ,RFLOW ,pMEMFLOW ,IEXLNK ,FASOLFR ,
11000 j FXBIPM ,FXBRPM ,FXBNOD ,FXBMOD ,FXBGLM ,
11001 k FXBCPM ,FXBCPS ,FXBLM ,FXBFLS ,FXBDLS ,
11002 l FXBDEP ,FXBVIT ,FXBACC ,FXBELM ,FXBSIG ,
11003 m FXBGRVI ,FXBGRVR ,IADLL ,LLL ,IBMPC ,
11004 n LAMBDA ,LRBAGALE ,ISKWP ,NSKWP ,ISENSP ,
11005 o NSENSP ,IACCP ,NACCP ,IPART_STATE ,MCP ,
11006 p TEMP ,UNITAB ,INTSTAMP ,IFRAME ,CLUSTERS ,
11007 q PARTSAV ,IBFTEMP ,FBFTEMP ,IBCV ,
11008 r FCONV ,IRBE3 ,LRBE3 ,FRBE3 ,FRONT_RM ,
11009 s RBYM ,IRBYM ,LNRBYM ,INOISE ,FNOISE ,
11010 t MS0 ,ADMSMS ,NOM_SECT ,ISPSYM ,
11011 u SH4TREE ,SH3TREE ,IPADMESH ,IBFFLUX ,FBFFLUX ,
11012 v SH4TRIM ,SH3TRIM ,PADMESH ,MSC ,MSTG ,
11013 w INC ,INTG ,PTG ,MCPC ,MCPTG ,
11014 x RCONTACT ,ACONTACT ,PCONTACT ,MSCND ,INCND ,
11015 y MSSA ,MSTR ,MSP ,MSRT ,IBCR ,
11016 z FRADIA ,DMELC ,DMELTG ,DMELS ,DMELTR ,
11017 1 DMELP ,DMELRT ,RES_SMS ,ISPHIO ,
11018 2 LPRTSPH ,LONFSPH ,VSPHIO ,SPHVELN ,ALPH ,
11019 3 IFILL ,IMS ,IRBE2 ,LRBE2 ,
11021 9 ZI_PLY ,INOD_PXFEM ,IEL_PXFEM ,ICODEP ,ISKEWP ,
11022 A ADDCNE_PXFEM ,CNE_PXFEM ,CEL_PXFEM ,ITHVAR ,XDP,TABLE ,
11023 B CELSPH ,ICFIELD ,LCFIELD ,CFIELD ,
11024 C MSZ2 ,ITASK ,DIAG_SMS,
11025 D ILOADP ,LLOADP ,LOADP,
11026 E INOD_CRKXFEM ,IEL_CRKXFEM ,ADDCNE_CRKXFEM ,CNE_CRKXFEM ,CEL_CRKXFEM,
11027 F IBUFSSG_IO ,INTERCEP ,IBORDNODE ,IEDGESH ,IBORDEDGE ,
11028 G LINALE ,NODEDGE ,IEDGE ,CEP_CRKXFEM ,IEDGE_TMP ,
11029 H CRKNODIAD ,ELBUF_TAB ,NOM_OPT ,LGAUGE ,GAUGE ,
11030 I IGAUP ,NGAUP ,NODLEVXF ,FRONTB_R2R ,DFLOW ,
11031 J VFLOW ,WFLOW ,SPH2SOL ,SOL2SPH ,IRST ,
11032 K ELCUTC ,NODENR ,KXFENOD2ELC ,ENRTAG ,INTBUF_TAB ,
11033 M I11FLAG ,XFEM_TAB ,LENTHGR ,RTHBUF ,
11034 N IXIG3D ,KXIG3D ,KNOT ,IPARTIG3D ,WIGE ,
11035 O NCRKPART ,INDX_CRK ,CRKLVSET ,CRKSHELL ,CRKSKY ,
11036 P CRKAVX ,CRKEDGE ,SENSORS ,
11037 Q STACK ,XFEM_PHANTOM, INTERT8 ,TAB_UMP ,POIN_UMP ,
11038 R SOL2SPH_TYP ,ADDCSRECT ,CSRECT ,DRAPE ,LOADS ,
11039 S ITAGND ,ICNDS10 ,ADDCNCND ,
11040 T CEPCND ,CELCND ,CNCND ,NATIV_SMS ,I24MAXNSNE ,
11041 U MULTI_FVM ,SEGQUADFR ,INTBUF_FRIC_TAB,SUBSETS ,IGRNOD ,
11042 V IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
11043 W IGRBEAM ,IGRSPRING ,IGRPART ,IGRSURF ,IGRSLIN ,
11044 X POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,MID_PID_SHELL,MID_PID_TRI ,
11045 Y MID_PID_SOL , TAG_NM ,NINDX_NM ,INDX_NM ,TAG_SCRATCH ,
11046 Z NINDX_SCRT , INDX_SCRT ,FLAG_24_25 ,NUMNOD_L(P) ,TAG_SKN ,
11047 A SKEWS%MULTIPLE_SKEW, IGRSURF_PROC,KNOTLOCPC ,KNOTLOCEL ,ALE_ELM(P),
11048 B SIZE_ALE_ELM(P),PINCH_DATA ,TAG_SKINS6 ,IBCSCYC ,LBCSCYC ,T_MONVOL,
11049 C INDX_S,INDX_Q,INDX_TG,FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,NBR_TH_MONVOL, EBCS_TAB,
11050 D KLOADPINTER ,LOADPINTER ,DGAPLOADINT ,S_LOADPINTER, SCEP,DYNAIN_DATA,
11051 E DRAPEG ,USER_WINDOWS ,OUTPUT ,INTERFACES ,NUMBER_LOAD_CYL ,
11052 F LOADS_PER_PROC(P), PYTHON,DPL0CLD,VEL0CLD ,NAMES_AND_TITLES,
11053 G BCS_PER_PROC(P),constraint_struct,glob_therm,PBLAST)
11057 DEALLOCATE(TAG_NM,TAG_SCRATCH)
11058 DEALLOCATE(INDX_NM,INDX_SCRT)
11060 DEALLOCATE(TAG_SKINS6)
11061 ENDIF ! <-- end of restart file writing
11062! -------------------------------------------------------------
11064 CALL DEALLOCATE_IGRSURF_SPLIT(T_MONVOL,IGRSURF_PROC)
11065 DEALLOCATE( IGRSURF_PROC )
11067.AND.
IF( (NUMELS>0)(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG/=0) ) CALL DEALLOCATE_SPLIT_CFD_SOLIDE(ALE_ELM)
11069 CALL BCS%DEALLOCATE()
11071 CALL BCS_PER_PROC(P)%DEALLOCATE()
11074 DEALLOCATE( ALE_ELM )
11076 DEALLOCATE( INDX_S )
11077 DEALLOCATE( INDX_Q )
11078 DEALLOCATE( INDX_TG )
11079 DEALLOCATE( FACE_ELM_S )
11080 DEALLOCATE( FACE_ELM_Q )
11081 DEALLOCATE( FACE_ELM_TG )
11087 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
11092 DEALLOCATE(ICONTACT)
11094 IF(ALLOCATED(CEP)) DEALLOCATE(CEP)
11095 IF(ALLOCATED(CEL)) DEALLOCATE(CEL)
11104 DEALLOCATE(ADDCNI2)
11114 DEALLOCATE(IPART_STATE)
11115 DEALLOCATE(EIGIPM, EIGIBUF, EIGRPM)
11116 DEALLOCATE(TAG_SKN)
11117 DEALLOCATE(SKEWS%MULTIPLE_SKEW)
11118.OR..AND.
IF(IDDLEVEL ==1 ((NINTER == 0)(ISMS == 0))) THEN
11119 DEALLOCATE(TAGXREF)
11120 DEALLOCATE(TAGREFSTA)
11127 DEALLOCATE(IBUFSSG_IO)
11128 DEALLOCATE(RESERVEP)
11132 IF(LAG_NCF > 0) THEN
11139 DEALLOCATE(ADDCSRECT)
11141 DEALLOCATE(IGEO_STACK,GEO_STACK)
11142 IF(ALLOCATED(PLY_INFO))DEALLOCATE(PLY_INFO)
11143 IF(ALLOCATED(FXBFILE_TAB)) DEALLOCATE(FXBFILE_TAB)
11145 IF(ALLOCATED(TAB_UMP)) DEALLOCATE(TAB_UMP)
11146 IF(ALLOCATED(TAB_UMP_OLD)) DEALLOCATE(TAB_UMP_OLD)
11147 IF(ALLOCATED(POIN_UMP)) DEALLOCATE(POIN_UMP)
11148 IF(ALLOCATED(POIN_UMP_OLD)) DEALLOCATE(POIN_UMP_OLD)
11150 DEALLOCATE( POIN_PART_SHELL )
11151 DEALLOCATE( POIN_PART_TRI )
11152 DEALLOCATE( POIN_PART_SOL )
11154 IF(ALLOCATED(MID_PID_SHELL(I)%PID1D))DEALLOCATE( MID_PID_SHELL(I)%PID1D )
11155 IF(ALLOCATED(MID_PID_SHELL(I)%COST1D))DEALLOCATE( MID_PID_SHELL(I)%COST1D )
11157 IF(ALLOCATED(MID_PID_SHELL(I)%PID1D))DEALLOCATE( MID_PID_TRI(I)%PID1D )
11158 IF(ALLOCATED(MID_PID_TRI(I)%COST1D))DEALLOCATE( MID_PID_TRI(I)%COST1D )
11160 IF(ALLOCATED(MID_PID_SOL(I,J)%PID1D)) DEALLOCATE( MID_PID_SOL(I,J)%PID1D )
11161 IF(ALLOCATED(MID_PID_SOL(I,J)%COST1D)) DEALLOCATE( MID_PID_SOL(I,J)%COST1D )
11164 DEALLOCATE( MID_PID_SHELL,MID_PID_TRI )
11165 DEALLOCATE( MID_PID_SOL )
11168 IF(ALLOCATED(IXIG3D)) DEALLOCATE(IXIG3D)
11169 IF(ALLOCATED(KXIG3D)) DEALLOCATE(KXIG3D)
11170 IF(ALLOCATED(MSIG3D)) DEALLOCATE(MSIG3D)
11171.AND.
IF(NS10E>0IPARI0/=0) THEN
11174 DEALLOCATE(ADDCNCND)
11175 IF(LCNCND>0) DEALLOCATE(CNCND)
11177 IF(ALLOCATED(ITAGND)) DEALLOCATE(ITAGND)
11178 IF(NS10E>0) DEALLOCATE(ICNDS10)
11179 CALL MONVOL_DEALLOCATE(NVOLU, T_MONVOL)
11180 IF(ALLOCATED(T_MONVOL)) DEALLOCATE(T_MONVOL)
11181 DEALLOCATE(IBCSCYC,LBCSCYC)
11182 IF(NBCSCYC>0) DEALLOCATE(ITAGCYC)
11183 IF(ALLOCATED(FVM_INIVEL)) DEALLOCATE(FVM_INIVEL)
11186 IF(N_SEATBELT > 0) THEN
11188 DEALLOCATE(SEATBELT_TAB(I)%SPRING)
11190 DEALLOCATE(SEATBELT_TAB)
11193 IF(NSLIPRING > 0) THEN
11195 DEALLOCATE(SLIPRING(I)%FRAM)
11197 DEALLOCATE(SLIPRING)
11200 IF(NRETRACTOR > 0) THEN
11202 DEALLOCATE(RETRACTOR(I)%INACTI_NODE)
11204 IF (RETRACTOR(I)%IFUNC(J) > 0) THEN
11205 DEALLOCATE(RETRACTOR(I)%TABLE(J)%X(1)%VALUES)
11206 DEALLOCATE(RETRACTOR(I)%TABLE(J)%X)
11207 DEALLOCATE(RETRACTOR(I)%TABLE(J)%Y%VALUES)
11208 DEALLOCATE(RETRACTOR(I)%TABLE(J)%Y)
11212 DEALLOCATE(RETRACTOR)
11214.OR..AND.
IF((IPART_STACK > 0 IPART_PCOMPP > 0) NDRAPE > 0) DEALLOCATE(IWORK_T)
11216 IF(ALLOCATED(MPARAM_R2R))THEN
11217 DO I=1,NUMMAT ; CALL MPARAM_R2R(I)%DESTRUCT() ; ENDDO
11218 DEALLOCATE(MPARAM_R2R)
11221 ! -----------------------------------------
11222 ! deallocation of constraint_struct
11223 call dealloc_constraint_struct(nrwall,constraint_struct)
11224 ! -----------------------------------------
11229 CALL PRINTSTSZ(DETONATORS)
11234 IF(RESTART_FILE==1) THEN
11235 CALL DDPRINT(DDSTAT, MEMFLOW)
11238 WRITE(IOUT,*) CHECK_MESSAGE(3)(1:len_trim(CHECK_MESSAGE(3)))
11243 WRITE(ISTDO,'(a)
')TITRE(48)
11246 DEALLOCATE(KNOD2ELS,KNOD2ELC,KNOD2ELTG,
11247 . NOD2ELS ,NOD2ELC ,NOD2ELTG,
11248 . KNOD2EL1D,NOD2EL1D,KNOD2ELIG3D,
11249 . NOD2ELIG3D,KNOD2ELQ,NOD2ELQ)
11251 DEALLOCATE(MSC,MSTG,MSSA,MSTR,MSP,MSRT)
11253 DEALLOCATE(MCP,TEMP)
11254 DEALLOCATE(IBCV, FCONV, IBCR, FRADIA, IBFTEMP, FBFTEMP, IBFFLUX, FBFFLUX)
11256 DEALLOCATE(RBYM ,IRBYM ,LNRBYM,WEIGHT_RM)
11257 DEALLOCATE(MS_PLY,ZI_PLY,ICODE,ISKEW)
11259 IF(ALLOCATED(KNOTLOCPC))DEALLOCATE(KNOTLOCPC)
11260 IF(ALLOCATED(KNOTLOCEL))DEALLOCATE(KNOTLOCEL)
11263 IF(ALLOCATED(IPMAS))DEALLOCATE(IPMAS)
11265 IF(ICRACK3D > 0) THEN
11266 DEALLOCATE(INOD_CRKXFEM,IEL_CRKXFEM)
11267 DEALLOCATE(CNE_CRKXFEM)
11268 DEALLOCATE(CEL_CRKXFEM)
11269 DEALLOCATE(CEP_CRKXFEM)
11270 DEALLOCATE(IEDGESH)
11271 DEALLOCATE(IBORDEDGE)
11272 DEALLOCATE(NODEDGE)
11274 DEALLOCATE(IBORDNODE)
11276 IF(ALLOCATED(IEDGE_TMP)) DEALLOCATE(IEDGE_TMP)
11277 IF(ALLOCATED(ELCUTC)) DEALLOCATE(ELCUTC)
11278 IF(ALLOCATED(NODENR)) DEALLOCATE(NODENR)
11279 IF(ALLOCATED(KXFENOD2ELC)) DEALLOCATE(KXFENOD2ELC)
11280 IF(ALLOCATED(ENRTAG)) DEALLOCATE(ENRTAG)
11281 IF(ALLOCATED(ADDCNE_CRKXFEM))DEALLOCATE(ADDCNE_CRKXFEM)
11286 DEALLOCATE(ADDCNE_PXFEM)
11289 DEALLOCATE(ISOLNOD)
11290 DEALLOCATE(ISOLOFF)
11291 DEALLOCATE(ISHEOFF)
11292 DEALLOCATE(ITRUOFF)
11293 DEALLOCATE(IPOUOFF)
11294 DEALLOCATE(IRESOFF)
11295 DEALLOCATE(ITRIOFF)
11296 DEALLOCATE(IGRNRBY)
11297 DEALLOCATE(IQUAOFF)
11302 DEALLOCATE(IFRONT%P,IFRONT%IENTRY,IENTRY2)
11303 DEALLOCATE(DFLOW,VFLOW,WFLOW)
11304 DEALLOCATE(PERMUTATION%SOLID)
11305 IF(ALLOCATED(FILLSOL)) DEALLOCATE(FILLSOL)
11306 IF(ALLOCATED(SH3ANG)) DEALLOCATE(SH3ANG)
11307 IF(ALLOCATED(SH4ANG)) DEALLOCATE(SH4ANG)
11308 IF(ALLOCATED(NATIV_SMS)) DEALLOCATE(NATIV_SMS)
11309 IF(ALLOCATED(MULTI_FVM%VEL)) DEALLOCATE(MULTI_FVM%VEL)
11310 IF(ALLOCATED(MULTI_FVM%ACC)) DEALLOCATE(MULTI_FVM%ACC)
11311 CALL ALE_CONNECTIVITY%ALE_DEALLOCATE_CONNECTIVITY()
11312.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) DEALLOCATE(STACK_INFO)
11313 IF(ALLOCATED(IPRELOAD)) DEALLOCATE(IPRELOAD)
11314 IF(ALLOCATED(PRELOAD)) DEALLOCATE(PRELOAD)
11315 IF(ALLOCATED(IFLAG_BPRELOAD)) DEALLOCATE(IFLAG_BPRELOAD)
11316 IF(ALLOCATED(EOS_TAG))DEALLOCATE(EOS_TAG)
11317 CALL C_DELETE_HASH(H_NODE)
11318 CALL DEALLOCATE_DETONATORS(DETONATORS)
11319 IF(ALLOCATED(XSEED)) DEALLOCATE(XSEED)
11320 IF(ALLOCATED(ALEA)) DEALLOCATE(ALEA)
11321 IF(ALLOCATED(IRAND)) DEALLOCATE(IRAND)
11322 IF(ALLOCATED(SENSORS%SENSOR_TAB)) DEALLOCATE(SENSORS%SENSOR_TAB )
11323 IF(ALLOCATED(SENSORS%LOGICAL_SENSORS_LIST)) DEALLOCATE(SENSORS%LOGICAL_SENSORS_LIST)
11324 IF(ALLOCATED(DAMP_RANGE_PART)) DEALLOCATE(DAMP_RANGE_PART)
11326 CALL EBCS_TAB%destroy()
11327.AND..NOT.
IF(NINIMAP1D > 0 MULTI_FVM%IS_USED) THEN
11328 DO KK = 1, NINIMAP1D
11329 DEALLOCATE(INIMAP1D(KK)%TAGNODE)
11332 DEALLOCATE(INIMAP1D)
11334.AND..NOT.
IF(NINIMAP2D > 0 MULTI_FVM%IS_USED) THEN
11335 DO KK = 1, NINIMAP2D
11336 DEALLOCATE(INIMAP2D(KK)%TAGNODE)
11339 DEALLOCATE(INIMAP2D)
11342 CALL INVERTED_GROUP_DEALLOC(INV_GROUP)
11344 CALL DEALLOCATE_JOINT( )
11351 IF(ALLOCATED( DGAPINT )) DEALLOCATE(DGAPINT)
11353 IF(ALLOCATED(DPL0CLD)) DEALLOCATE(DPL0CLD)
11354 IF(ALLOCATED(VEL0CLD)) DEALLOCATE(VEL0CLD)
11355 IF(ALLOCATED(EBCS_TAG_CELL_SPMD)) DEALLOCATE(EBCS_TAG_CELL_SPMD)
11360!||====================================================================
11361!|| set_ibufssg_io ../starter/source/starter/lectur.F
11362!||--- called by ------------------------------------------------------
11363!|| lectur ../starter/source/starter/lectur.F
11364!||--- calls -----------------------------------------------------
11365!|| ifrontplus ../starter/source/spmd/node/frontplus.F
11366!||--- uses -----------------------------------------------------
11367!||====================================================================
11368 SUBROUTINE SET_IBUFSSG_IO(ISPHIO, IGRSURF, IBUFSSG_IO)
11376#include "implicit_f.inc"
11380#include "com01_c.inc"
11381#include "com04_c.inc"
11382#include "sphcom.inc"
11383#include "units_c.inc"
11384#include "warn_c.inc"
11385#include "param_c.inc"
11389 INTEGER ISPHIO(NISPHIO,*),
11390 . IBUFSSG_IO(SIBUFSSG_IO),
11391 . N,J,NSEG,IN1,IN2,IN3,IN4,
11392 . ISU,PROC,IAD2,ITYPE
11393 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
11400 ITYPE = ISPHIO(1,N)
11401 IF(ISPHIO(12,N)==0) THEN
11403 NSEG= IGRSURF(ISU)%NSEG
11404 ISPHIO(10,N) = NSEG
11405 ISPHIO(11,N) = IAD2
11407 IN1=IGRSURF(ISU)%NODES(J+1,1)
11408 IN2=IGRSURF(ISU)%NODES(J+1,2)
11409 IN3=IGRSURF(ISU)%NODES(J+1,3)
11410 IN4=IGRSURF(ISU)%NODES(J+1,4)
11411 IBUFSSG_IO(IAD2+NIBSPH*J) = IN1
11412 IBUFSSG_IO(IAD2+NIBSPH*J+1) = IN2
11413 IBUFSSG_IO(IAD2+NIBSPH*J+2) = IN3
11414 IBUFSSG_IO(IAD2+NIBSPH*J+3) = IN4
11416 CALL IFRONTPLUS(IN1,PROC)
11417 CALL IFRONTPLUS(IN2,PROC)
11418 CALL IFRONTPLUS(IN3,PROC)
11419 CALL IFRONTPLUS(IN4,PROC)
11422 IAD2 = IAD2 + 4*NSEG
11423 ELSEIF(ISPHIO(12,N)==2) THEN
11428 CALL IFRONTPLUS(IN1,PROC)
11429 CALL IFRONTPLUS(IN2,PROC)
11430 CALL IFRONTPLUS(IN3,PROC)
11437!||====================================================================
11438!|| init_permutation ../starter/source/starter/lectur.F
11439!||--- called by ------------------------------------------------------
11440!|| lectur ../starter/source/starter/lectur.F
11441!||--- uses -----------------------------------------------------
11442!|| reorder_mod ../starter/share/modules1/reorder_mod.F
11443!||====================================================================
11444 SUBROUTINE INIT_PERMUTATION()
11453#include "implicit_f.inc"
11457#include "com04_c.inc"
11464 PERMUTATION%SOLID(I)=I
11467 PERMUTATION%SHELL(I)=I
11470 PERMUTATION%TRIANGLE(I)=I
11475!||====================================================================
11476!|| tet4_10 ../starter/source/starter/lectur.F
11477!||--- called by ------------------------------------------------------
11478!|| lectur ../starter/source/starter/lectur.F
11479!||====================================================================
11480 SUBROUTINE TET4_10(IGEO,ITET4_10)
11484#include "implicit_f.inc"
11488#include "com04_c.inc"
11489#include "param_c.inc"
11493 INTEGER IGEO(NPROPGI,*),ITET4_10
11497 INTEGER I,IGTYP,ITET4
11502.OR..AND.
IF((IGTYP==14IGTYP==6)ITET4==1) ITET4_10 = 1
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 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 contrl(multi_fvm, lsubmodel, is_dyna, detonators, user_windows, mat_elem, names_and_titles, lipart1, defaults, glob_therm, pblast, output)
subroutine ini_h3dtmax_engine(iparg, ipart, iparts, ipartc, ipartg, iddlevel)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine ind_s10edg(icnds10, ixs, ixs10, iparg, itagnd)
subroutine dim_s10edg(nedg, ixs10, iparg, itagnd)
subroutine domdec2(dd_iad, ipari, ib, npby, lpby, ixri, ibvel, lbvel, iparg, cel, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg6, t_monvol, igrsurf, adsky, lcne, geo, nprw, lprw, lcni2, adskyi2, cepi2, celi2, i2nsnt, iskn, iskwp, nskwp, isensp, nsensp, iaccp, naccp, laccelm, ibcv, irbe3, lrbe3, front_rm, irbym, lcrbym, cep, ibcr, irbe2, lrbe2, cepsp, celsph, iloadp, lloadp, lgauge, igaup, ngaup, intbuf_tab, ibfflux, icnds10, itagnd, igeo, tag_skn, multiple_skew, ibfv, ibcscyc, lbcscyc, r_skew, ipm, sensors, len_cep, ebcs_tab, loads, iframe, niconv, niradia, nitflux, numconv, numradia, nfxflux, sensor_user_struct)
subroutine fillcni2(cni2, lcni2, addcni2, ipari, intbuf_tab)
subroutine 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 dometis(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, cep, geo, itri1, itri2, index1, index2, num, wd, iwcont, nelem, iddlevel, nelemint, inter_cand, pm, x, kxx, ixx, adsky, igeo, isolnod, iwcin2, dsdof, isoloff, isheoff, itrioff, itruoff, ipouoff, iresoff, ielem21, ipm, ixs10, ikine, clusters, kxig3d, ixig3d, cost_r2r, bufmat, taille, poin_ump, tab_ump, poin_ump_old, tab_ump_old, cputime_mp_old, nsnt, nmnt, tabmp_l, iquaoff, igrsurf, fvmain, itab, ipart, ipartc, ipartg, iparts, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, t_monvol, ebcs_tag_cell_spmd, npby, lpby, mat_param)
subroutine reini_matprop(taille, taille2, tab_ump_loc, tab_ump_loc2, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, isolnod, poin_ump)
subroutine hm_option_count(entity_type, hm_option_number)
subroutine hm_preread_impvel0(impose_dr, unitab, lsubmodel)
subroutine hm_read_drape(drape_wrk, iwork_t, iworksh, igrsh3n, igrsh4n, ixc, ixtg, igeo, igeo_stack, lsubmodel, unitab, indxsh)
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_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_mpc0(len, lsubmodel)
subroutine hm_read_pcyl(loads, igrsurf, nsensor, sensor_tab, table, iframe, unitab, lsubmodel, number_load_cyl)
subroutine lecsec0(lsubmodel)
subroutine hm_read_sensors(python, sensors, laccelm, itabm1, ipart, lgauge, subset, nsets, igrsurf, igrnod, bufsf, skew, iskwn, unitab, lsubmodel, hm_nsens, sensor_user_struct)
subroutine hm_read_solid(ixs, pm, itab, itabm1, ipart, iparts, isolnod, ixs10, ixs20, ixs16, igeo, lsubmodel, is_dyna, x)
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_truss(ixt, itab, itabm1, ipart, ipartt, ipm, igeo, lsubmodel)
subroutine hm_setfxrbyon(itabm1, ixs, isoloff, ixc, isheoff, ixt, itruoff, ixp, ipouoff, ixr, iresoff, ixtg, itrioff, fxbipm, lsubmodel)
subroutine igrsurf_split(scep, cep, t_monvol, igrsurf, igrsurf_proc)
subroutine iniebcsp0(x, iparg, elbuf_str, ebcs_tab, ixs, ixq, ixtg, iparts, ipartq, iparttg, pm, ipm, mat_param)
subroutine init_joint(njoint)
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine)
subroutine 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)
integer function set_usrtos(iu, ipartm1, npart)
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 merge(x, itab, itabm1, cmerge, imerge, imerge2, iadmerge2, nmerge_tot)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, dimension(:), allocatable iflag_bpreload
integer, dimension(:), allocatable ipreload
integer, dimension(:), allocatable flagkin
integer, dimension(:), allocatable ientry2
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)
integer, dimension(:), allocatable ielem21
type(intstamp_data), dimension(:), allocatable intstamp
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 knod2eltg
type(admas_), dimension(:), allocatable, target ipmas
type(inicrack_), dimension(:), allocatable, target inicrack
integer, dimension(:), allocatable tagno
integer, dimension(:), allocatable front_r2r
integer, dimension(:), allocatable irbe3
integer, dimension(:), allocatable, target igrv
integer, dimension(:), allocatable ixx
integer, dimension(:), allocatable, target ixs
integer, dimension(:), allocatable icode
integer, dimension(:), allocatable interloadp
integer, dimension(:), allocatable lgrav
integer, dimension(:), allocatable kxig3d
integer, dimension(:), allocatable nodenr
integer, dimension(:), pointer nige
integer, dimension(:), allocatable lrbe3
integer, dimension(:,:), allocatable ipadmesh
integer, dimension(:), allocatable lprtsph
integer, dimension(:), allocatable ixig3d
integer, dimension(:), allocatable iactiv
integer, dimension(:), allocatable ibcslag
integer, dimension(:,:), allocatable sh4tree
integer, dimension(:), allocatable ispsym
integer, dimension(:), allocatable sh4trim
integer, dimension(:), allocatable ipm
integer, dimension(:), allocatable, target ipart
integer, dimension(:), allocatable isphio
integer, dimension(:), allocatable, target ipari
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 inoise
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
integer, dimension(:), allocatable iexlnk
integer, dimension(:), allocatable, target ixtg
integer, dimension(:), allocatable, target ibcl
integer, dimension(:), allocatable ifill
integer, dimension(:), allocatable kxfenod2elc
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 gjbufi
integer, dimension(:), allocatable, target itabm1
integer, dimension(:), allocatable, target iskwn
integer, dimension(:), allocatable, target iloadp
integer, dimension(:), allocatable itab
integer, dimension(:), allocatable nod2sp
integer, dimension(:), allocatable weight_rm
integer, dimension(:), allocatable ixp
integer, dimension(:), allocatable laccelm
integer, dimension(:), allocatable, target nom_opt
double precision, dimension(:), allocatable bufgeo
integer, dimension(:), allocatable fasolfr
integer, dimension(:), allocatable, target npc
integer, dimension(:), allocatable igeo
integer, dimension(:), allocatable, target ibmpc
integer, dimension(:), allocatable ixtg1
integer, dimension(:), allocatable ims
integer, dimension(:), allocatable, target icfield
integer, dimension(:), allocatable kinet
integer, dimension(:), allocatable lgauge
integer, dimension(:,:), allocatable ixsp
integer, dimension(:), allocatable iparg
integer, dimension(:), allocatable ixq
integer, dimension(:), allocatable iedge
integer, dimension(:), allocatable nodedge
integer, dimension(:), allocatable lloadp
integer, dimension(:), allocatable lcfield
integer, dimension(:), allocatable kxx
integer, dimension(:), allocatable nom_sect
integer, dimension(:), allocatable iel_pxfem
integer, dimension(:), allocatable lrbe2
integer, dimension(:), allocatable ixc
integer, dimension(:), allocatable ipart_state
type(retractor_struct), dimension(:), allocatable retractor
type(slipring_struct), dimension(:), allocatable slipring
type(set_), dimension(:), allocatable, target set
integer, dimension(:), allocatable tagprt_sms
integer, dimension(:), allocatable nativ_sms
integer, dimension(:), allocatable tagrel_sms
integer, dimension(:), allocatable jsm_sms
integer, dimension(:), allocatable kdi_sms
integer, dimension(:), allocatable jdi_sms
integer, dimension(:), allocatable sph2sol
integer, dimension(:), allocatable irst
integer, dimension(:), allocatable sol2sph
type(ttable), dimension(:), allocatable table
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
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 printbcs(icode, iskew, itab, itabm1, ikine, igrnod, ibcslag, lag_ncf, lag_nkf, lag_nhf, ikine1lag, iskn, nom_opt, nbcslag)
void split(mapping_t *, PORD_INT, PORD_INT, PORD_INT, PORD_INT *, PORD_INT *, FLOAT *, PORD_INT)
subroutine read_detonators(itabm1, itab, igrnod, pm, ipm, x, unitab, lsubmodel, detonators)
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_rwall(rwl, nprw, lprw, ifi, ms, v, itab, itabm1, x, ixs, ixq, npc, ikine, igrnod, mfi, imerge, unitab, ikine1lag, iddlevel, lsubmodel, rtrans, nom_opt, itagnd)
subroutine init_mat_weight(nummat)
subroutine spinih(kxsp, ipart, ipartsp, spbuf, pm, ixsp, nod2sp, x, lprtsph, lonfsph, snod2sp, slonfsph, numnod, npart, itab)
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 lectur(multi_fvm, lsubmodel, is_dyna, detonators, ebcs_tab, seatbelt_converted_elements, nb_seatbelt_shells, nb_dyna_include, user_windows, output, mat_elem, names_and_titles, defaults, glob_therm, pblast, sensor_user_struct)
subroutine trace_in1(my_char, ilen)